diff --git a/.github/renovate.json b/.github/renovate.json index e349630..a57a7a8 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -23,5 +23,5 @@ "groupSlug": "gh-actions-deps" } ], - "labels": ["area/ci", "bots", "kind/chore"] + "labels": ["area/dependencies", "bots", "kind/chore"] } diff --git a/buf.gen.yaml b/buf.gen.yaml index 03e8ade..99e5d39 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -2,11 +2,11 @@ version: v2 managed: enabled: false plugins: - - remote: buf.build/protocolbuffers/csharp:v27.2 + - remote: buf.build/protocolbuffers/csharp:v29.0 opt: - base_namespace= - file_extension=.g.cs out: ./src/Sdk - - remote: buf.build/grpc/csharp:v1.65.0 - out: ./src/Sdk \ No newline at end of file + - remote: buf.build/grpc/csharp:v1.68.1 + out: ./src/Sdk diff --git a/protos/buf/validate/expression.proto b/protos/buf/validate/expression.proto deleted file mode 100644 index 72ce36d..0000000 --- a/protos/buf/validate/expression.proto +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2023 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. - -syntax = "proto3"; - -package buf.validate; - -option go_package = "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"; -option java_multiple_files = true; -option java_outer_classname = "ExpressionProto"; -option java_package = "build.buf.validate"; - -// `Constraint` represents a validation rule written in the Common Expression -// Language (CEL) syntax. Each Constraint includes a unique identifier, an -// optional error message, and the CEL expression to evaluate. For more -// information on CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). -// -// ```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; -// } -// ``` -message Constraint { - // `id` is a string that serves as a machine-readable name for this Constraint. - // It should be unique within its scope, which could be either a message or a field. - string id = 1; - - // `message` is an optional field that provides a human-readable error message - // for this Constraint when the CEL expression evaluates to false. If a - // non-empty message is provided, any strings resulting from the CEL - // expression evaluation are ignored. - string message = 2; - - // `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. - string expression = 3; -} - -// `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 `Constraint` validation rules. -// Each individual violation is represented by a `Violation` message. -message Violations { - // `violations` is a repeated field that contains all the `Violation` messages corresponding to the violations detected. - repeated Violation violations = 1; -} - -// `Violation` represents a single instance where a validation rule, expressed -// as a `Constraint`, was not met. It provides information about the field that -// caused the violation, the specific constraint that wasn't fulfilled, and a -// human-readable error message. -// -// ```json -// { -// "fieldPath": "bar", -// "constraintId": "foo.bar", -// "message": "bar must be greater than 0" -// } -// ``` -message Violation { - // `field_path` is a machine-readable identifier that points to the specific field that failed the 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. - string field_path = 1; - - // `constraint_id` is the unique identifier of the `Constraint` that was not fulfilled. - // This is the same `id` that was specified in the `Constraint` message, allowing easy tracing of which rule was violated. - string constraint_id = 2; - - // `message` is a human-readable error message that describes the nature of the violation. - // This can be the default error message from the violated `Constraint`, or it can be a custom message that gives more context about the violation. - string message = 3; - - // `for_key` indicates whether the violation was caused by a map key, rather than a value. - bool for_key = 4; -} diff --git a/protos/buf/validate/priv/private.proto b/protos/buf/validate/priv/private.proto deleted file mode 100644 index ddaf938..0000000 --- a/protos/buf/validate/priv/private.proto +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2023 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. - -syntax = "proto3"; - -package buf.validate.priv; - -import "google/protobuf/descriptor.proto"; - -option go_package = "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate/priv"; -option java_multiple_files = true; -option java_outer_classname = "PrivateProto"; -option java_package = "build.buf.validate.priv"; - -extend google.protobuf.FieldOptions { - // Do not use. Internal to protovalidate library - optional FieldConstraints field = 1160; -} - -// Do not use. Internal to protovalidate library -message FieldConstraints { - repeated Constraint cel = 1; -} - -// Do not use. Internal to protovalidate library -message Constraint { - string id = 1; - string message = 2; - string expression = 3; -} diff --git a/protos/buf/validate/validate.proto b/protos/buf/validate/validate.proto index 6d11ea6..7236347 100644 --- a/protos/buf/validate/validate.proto +++ b/protos/buf/validate/validate.proto @@ -12,12 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -syntax = "proto3"; +syntax = "proto2"; package buf.validate; -import "buf/validate/expression.proto"; -import "buf/validate/priv/private.proto"; import "google/protobuf/descriptor.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; @@ -55,6 +53,57 @@ extend google.protobuf.FieldOptions { // Rules specify the validations to be performed on this field. By default, // no validation is performed against a field. optional FieldConstraints field = 1159; + + // Specifies predefined rules. When extending a standard constraint 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 PredefinedConstraints predefined = 1160; +} + +// `Constraint` represents a validation rule written in the Common Expression +// Language (CEL) syntax. Each Constraint includes a unique identifier, an +// optional error message, and the CEL expression to evaluate. For more +// information on CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). +// +// ```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; +// } +// ``` +message Constraint { + // `id` is a string that serves as a machine-readable name for this Constraint. + // It should be unique within its scope, which could be either a message or a field. + optional string id = 1; + + // `message` is an optional field that provides a human-readable error message + // for this Constraint when the CEL expression evaluates to false. If a + // non-empty message is provided, any strings resulting from the CEL + // expression evaluation are ignored. + optional string message = 2; + + // `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. + optional string expression = 3; } // MessageConstraints represents validation rules that are applied to the entire message. @@ -113,8 +162,8 @@ message OneofConstraints { optional bool required = 1; } -// FieldRules encapsulates the rules for each type of field. Depending on the -// field, the correct set should be used to ensure proper validations. +// FieldConstraints encapsulates the rules for each type of field. Depending on +// the field, the correct set should be used to ensure proper validations. message FieldConstraints { // `cel` is a repeated field used to represent a textual expression // in the Common Expression Language (CEL) syntax. For more information on @@ -131,27 +180,16 @@ message FieldConstraints { // } // ``` repeated Constraint cel = 23; - // `skipped` is an optional boolean attribute that specifies that the - // validation rules of this field should not be evaluated. If skipped is set to - // true, any validation rules set for the field will be ignored. + // If `required` is true, the field must be populated. A populated field can be + // described as "serialized in the wire format," which includes: // - // ```proto - // message MyMessage { - // // The field `value` must not be set. - // optional MyOtherMessage value = 1 [(buf.validate.field).skipped = true]; - // } - // ``` - bool skipped = 24; - // If `required` is true, the field must be populated. Field presence can be - // described as "serialized in the wire format," which follows the following rules: - // - // - the following "nullable" fields must be explicitly set to be considered present: - // - singular message fields (may be their empty value) + // - the following "nullable" fields must be explicitly set to be considered populated: + // - singular message fields (whose fields may be unpopulated/default values) // - member fields of a oneof (may be their default value) // - proto3 optional fields (may be their default value) - // - proto2 scalar fields - // - proto3 scalar fields must be non-zero to be considered present - // - repeated and map fields must be non-empty to be considered present + // - proto2 scalar fields (both optional and required) + // - proto3 scalar fields must be non-zero to be considered populated + // - repeated and map fields must be non-empty to be considered populated // // ```proto // message MyMessage { @@ -159,23 +197,22 @@ message FieldConstraints { // optional MyOtherMessage value = 1 [(buf.validate.field).required = true]; // } // ``` - bool required = 25; - // If `ignore_empty` is true and applied to a non-nullable field (see - // `required` for more details), validation is skipped on the field if it is - // the default or empty value. Adding `ignore_empty` to a "nullable" field is - // a noop as these unset fields already skip validation (with the exception - // of `required`). + optional bool required = 25; + // Skip validation on the field if its value matches the specified criteria. + // See Ignore enum for details. // // ```proto - // message MyRepeated { - // // The field `value` min_len rule is only applied if the field isn't empty. - // repeated string value = 1 [ - // (buf.validate.field).ignore_empty = true, - // (buf.validate.field).min_len = 5 + // message UpdateRequest { + // // The uri rule only applies if the field is populated and not an empty + // // string. + // optional string url = 1 [ + // (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE, + // (buf.validate.field).string.uri = true, // ]; // } // ``` - bool ignore_empty = 26; + optional Ignore ignore = 27; + oneof type { // Scalar Field Types FloatRules float = 1; @@ -204,6 +241,185 @@ message FieldConstraints { DurationRules duration = 21; TimestampRules timestamp = 22; } + + // DEPRECATED: use ignore=IGNORE_ALWAYS instead. TODO: remove this field pre-v1. + optional bool skipped = 24 [deprecated = true]; + // DEPRECATED: use ignore=IGNORE_IF_UNPOPULATED instead. TODO: remove this field pre-v1. + optional bool ignore_empty = 26 [deprecated = true]; +} + +// PredefinedConstraints are custom constraints that can be re-used with +// multiple fields. +message PredefinedConstraints { + // `cel` is a repeated field used to represent a textual expression + // in the Common Expression Language (CEL) syntax. For more information on + // CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). + // + // ```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", + // }]; + // } + // ``` + repeated Constraint cel = 1; +} + +// Specifies how FieldConstraints.ignore behaves. See the documentation for +// FieldConstraints.required for definitions of "populated" and "nullable". +enum Ignore { + // buf:lint:ignore ENUM_NO_ALLOW_ALIAS // allowance for deprecations. TODO: remove pre-v1. + option allow_alias = true; + // Validation is only skipped if it's an unpopulated nullable fields. + // + // ```proto + // syntax="proto3"; + // + // message Request { + // // The uri rule applies to any value, including the empty string. + // string foo = 1 [ + // (buf.validate.field).string.uri = true + // ]; + // + // // The uri rule only applies if the field is set, including if it's + // // set to the empty string. + // optional string bar = 2 [ + // (buf.validate.field).string.uri = true + // ]; + // + // // The min_items rule always applies, even if the list is empty. + // repeated string baz = 3 [ + // (buf.validate.field).repeated.min_items = 3 + // ]; + // + // // The custom CEL rule applies only if the field is set, including if + // // it's the "zero" value of that message. + // SomeMessage quux = 4 [ + // (buf.validate.field).cel = {/* ... */} + // ]; + // } + // ``` + IGNORE_UNSPECIFIED = 0; + + // Validation is skipped if the field is unpopulated. This rule is redundant + // if the field is already nullable. This value is equivalent behavior to the + // deprecated ignore_empty rule. + // + // ```proto + // syntax="proto3 + // + // message Request { + // // The uri rule applies only if the value is not the empty string. + // string foo = 1 [ + // (buf.validate.field).string.uri = true, + // (buf.validate.field).ignore = IGNORE_IF_UNPOPULATED + // ]; + // + // // IGNORE_IF_UNPOPULATED is equivalent to IGNORE_UNSPECIFIED in this + // // case: the uri rule only applies if the field is set, including if + // // it's set to the empty string. + // optional string bar = 2 [ + // (buf.validate.field).string.uri = true, + // (buf.validate.field).ignore = IGNORE_IF_UNPOPULATED + // ]; + // + // // The min_items rule only applies if the list has at least one item. + // repeated string baz = 3 [ + // (buf.validate.field).repeated.min_items = 3, + // (buf.validate.field).ignore = IGNORE_IF_UNPOPULATED + // ]; + // + // // IGNORE_IF_UNPOPULATED is equivalent to IGNORE_UNSPECIFIED in this + // // case: the custom CEL rule applies only if the field is set, including + // // if it's the "zero" value of that message. + // SomeMessage quux = 4 [ + // (buf.validate.field).cel = {/* ... */}, + // (buf.validate.field).ignore = IGNORE_IF_UNPOPULATED + // ]; + // } + // ``` + IGNORE_IF_UNPOPULATED = 1; + + // Validation is skipped if the field is unpopulated or if it is a nullable + // field populated with its default value. This is typically the zero or + // empty value, but proto2 scalars support custom defaults. For messages, the + // default is a non-null message with all its fields unpopulated. + // + // ```proto + // syntax="proto3 + // + // message Request { + // // IGNORE_IF_DEFAULT_VALUE is equivalent to IGNORE_IF_UNPOPULATED in + // // this case; the uri rule applies only if the value is not the empty + // // string. + // string foo = 1 [ + // (buf.validate.field).string.uri = true, + // (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + // ]; + // + // // The uri rule only applies if the field is set to a value other than + // // the empty string. + // optional string bar = 2 [ + // (buf.validate.field).string.uri = true, + // (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + // ]; + // + // // IGNORE_IF_DEFAULT_VALUE is equivalent to IGNORE_IF_UNPOPULATED in + // // this case; the min_items rule only applies if the list has at least + // // one item. + // repeated string baz = 3 [ + // (buf.validate.field).repeated.min_items = 3, + // (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + // ]; + // + // // The custom CEL rule only applies if the field is set to a value other + // // than an empty message (i.e., fields are unpopulated). + // SomeMessage quux = 4 [ + // (buf.validate.field).cel = {/* ... */}, + // (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + // ]; + // } + // ``` + // + // This rule is affected by proto2 custom default values: + // + // ```proto + // syntax="proto2"; + // + // message Request { + // // The gt rule only applies if the field is set and it's value is not + // the default (i.e., not -42). The rule even applies if the field is set + // to zero since the default value differs. + // optional int32 value = 1 [ + // default = -42, + // (buf.validate.field).int32.gt = 0, + // (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + // ]; + // } + IGNORE_IF_DEFAULT_VALUE = 2; + + // The validation rules of this field will be skipped and not evaluated. This + // is useful for situations that necessitate turning off the rules of a field + // containing a message that may not make sense in the current context, or to + // temporarily disable constraints during development. + // + // ```proto + // message MyMessage { + // // The field's rules will always be ignored, including any validation's + // // on value's fields. + // MyOtherMessage value = 1 [ + // (buf.validate.field).ignore = IGNORE_ALWAYS]; + // } + // ``` + IGNORE_ALWAYS = 3; + + // Deprecated: Use IGNORE_IF_UNPOPULATED instead. TODO: Remove this value pre-v1. + IGNORE_EMPTY = 1 [deprecated = true]; + // Deprecated: Use IGNORE_IF_DEFAULT_VALUE. TODO: Remove this value pre-v1. + IGNORE_DEFAULT = 2 [deprecated = true]; } // FloatRules describes the constraints applied to `float` values. These @@ -218,9 +434,9 @@ message FloatRules { // float value = 1 [(buf.validate.field).float.const = 42.0]; // } // ``` - optional float const = 1 [(priv.field).cel = { - id: "float.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional float const = 1 [(predefined).cel = { + id: "float.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { @@ -234,8 +450,8 @@ message FloatRules { // float value = 1 [(buf.validate.field).float.lt = 10.0]; // } // ``` - float lt = 2 [(priv.field).cel = { - id: "float.lt", + float lt = 2 [(predefined).cel = { + id: "float.lt" expression: "!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -251,8 +467,8 @@ message FloatRules { // float value = 1 [(buf.validate.field).float.lte = 10.0]; // } // ``` - float lte = 3 [(priv.field).cel = { - id: "float.lte", + float lte = 3 [(predefined).cel = { + id: "float.lte" expression: "!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -279,32 +495,32 @@ message FloatRules { // } // ``` float gt = 4 [ - (priv.field).cel = { - id: "float.gt", + (predefined).cel = { + id: "float.gt" expression: "!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "float.gt_lt", + (predefined).cel = { + id: "float.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "float.gt_lt_exclusive", + (predefined).cel = { + id: "float.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "float.gt_lte", + (predefined).cel = { + id: "float.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "float.gt_lte_exclusive", + (predefined).cel = { + id: "float.gt_lte_exclusive" expression: "has(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]) : ''" @@ -330,32 +546,32 @@ message FloatRules { // } // ``` float gte = 5 [ - (priv.field).cel = { - id: "float.gte", + (predefined).cel = { + id: "float.gte" expression: "!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "float.gte_lt", + (predefined).cel = { + id: "float.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "float.gte_lt_exclusive", + (predefined).cel = { + id: "float.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "float.gte_lte", + (predefined).cel = { + id: "float.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "float.gte_lte_exclusive", + (predefined).cel = { + id: "float.gte_lte_exclusive" expression: "has(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]) : ''" @@ -373,9 +589,9 @@ message FloatRules { // repeated float value = 1 (buf.validate.field).float = { in: [1.0, 2.0, 3.0] }; // } // ``` - repeated float in = 6 [(priv.field).cel = { - id: "float.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated float in = 6 [(predefined).cel = { + id: "float.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `in` requires the field value to not be equal to any of the specified @@ -388,17 +604,46 @@ message FloatRules { // repeated float value = 1 (buf.validate.field).float = { not_in: [1.0, 2.0, 3.0] }; // } // ``` - repeated float not_in = 7 [(priv.field).cel = { - id: "float.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated float not_in = 7 [(predefined).cel = { + id: "float.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; // `finite` requires the field value to be finite. If the field value is // infinite or NaN, an error message is generated. - bool finite = 8 [(priv.field).cel = { - id: "float.finite", - expression: "this.isNan() || this.isInf() ? 'value must be finite' : ''", + optional bool finite = 8 [(predefined).cel = { + id: "float.finite" + expression: "rules.finite ? (this.isNan() || this.isInf() ? 'value must be finite' : '') : ''" + }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 = "Infinity" + // ]; + // } + // ``` + repeated float example = 9 [(predefined).cel = { + id: "float.example" + expression: "true" }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // DoubleRules describes the constraints applied to `double` values. These @@ -413,9 +658,9 @@ message DoubleRules { // double value = 1 [(buf.validate.field).double.const = 42.0]; // } // ``` - optional double const = 1 [(priv.field).cel = { - id: "double.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional double const = 1 [(predefined).cel = { + id: "double.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field < @@ -428,8 +673,8 @@ message DoubleRules { // double value = 1 [(buf.validate.field).double.lt = 10.0]; // } // ``` - double lt = 2 [(priv.field).cel = { - id: "double.lt", + double lt = 2 [(predefined).cel = { + id: "double.lt" expression: "!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -445,8 +690,8 @@ message DoubleRules { // double value = 1 [(buf.validate.field).double.lte = 10.0]; // } // ``` - double lte = 3 [(priv.field).cel = { - id: "double.lte", + double lte = 3 [(predefined).cel = { + id: "double.lte" expression: "!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -472,32 +717,32 @@ message DoubleRules { // } // ``` double gt = 4 [ - (priv.field).cel = { - id: "double.gt", + (predefined).cel = { + id: "double.gt" expression: "!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "double.gt_lt", + (predefined).cel = { + id: "double.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "double.gt_lt_exclusive", + (predefined).cel = { + id: "double.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "double.gt_lte", + (predefined).cel = { + id: "double.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "double.gt_lte_exclusive", + (predefined).cel = { + id: "double.gt_lte_exclusive" expression: "has(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]) : ''" @@ -523,32 +768,32 @@ message DoubleRules { // } // ``` double gte = 5 [ - (priv.field).cel = { - id: "double.gte", + (predefined).cel = { + id: "double.gte" expression: "!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "double.gte_lt", + (predefined).cel = { + id: "double.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "double.gte_lt_exclusive", + (predefined).cel = { + id: "double.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "double.gte_lte", + (predefined).cel = { + id: "double.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "double.gte_lte_exclusive", + (predefined).cel = { + id: "double.gte_lte_exclusive" expression: "has(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]) : ''" @@ -565,9 +810,9 @@ message DoubleRules { // repeated double value = 1 (buf.validate.field).double = { in: [1.0, 2.0, 3.0] }; // } // ``` - repeated double in = 6 [(priv.field).cel = { - id: "double.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated double in = 6 [(predefined).cel = { + id: "double.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -580,17 +825,46 @@ message DoubleRules { // repeated double value = 1 (buf.validate.field).double = { not_in: [1.0, 2.0, 3.0] }; // } // ``` - repeated double not_in = 7 [(priv.field).cel = { - id: "double.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated double not_in = 7 [(predefined).cel = { + id: "double.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; // `finite` requires the field value to be finite. If the field value is // infinite or NaN, an error message is generated. - bool finite = 8 [(priv.field).cel = { - id: "double.finite", - expression: "this.isNan() || this.isInf() ? 'value must be finite' : ''", + optional bool finite = 8 [(predefined).cel = { + id: "double.finite" + expression: "rules.finite ? (this.isNan() || this.isInf() ? 'value must be finite' : '') : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 = "Infinity" + // ]; + // } + // ``` + repeated double example = 9 [(predefined).cel = { + id: "double.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // Int32Rules describes the constraints applied to `int32` values. These @@ -605,9 +879,9 @@ message Int32Rules { // int32 value = 1 [(buf.validate.field).int32.const = 42]; // } // ``` - optional int32 const = 1 [(priv.field).cel = { - id: "int32.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional int32 const = 1 [(predefined).cel = { + id: "int32.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field @@ -620,8 +894,8 @@ message Int32Rules { // int32 value = 1 [(buf.validate.field).int32.lt = 10]; // } // ``` - int32 lt = 2 [(priv.field).cel = { - id: "int32.lt", + int32 lt = 2 [(predefined).cel = { + id: "int32.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -637,8 +911,8 @@ message Int32Rules { // int32 value = 1 [(buf.validate.field).int32.lte = 10]; // } // ``` - int32 lte = 3 [(priv.field).cel = { - id: "int32.lte", + int32 lte = 3 [(predefined).cel = { + id: "int32.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -664,32 +938,32 @@ message Int32Rules { // } // ``` int32 gt = 4 [ - (priv.field).cel = { - id: "int32.gt", + (predefined).cel = { + id: "int32.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "int32.gt_lt", + (predefined).cel = { + id: "int32.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int32.gt_lt_exclusive", + (predefined).cel = { + id: "int32.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int32.gt_lte", + (predefined).cel = { + id: "int32.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int32.gt_lte_exclusive", + (predefined).cel = { + id: "int32.gt_lte_exclusive" expression: "has(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]) : ''" @@ -715,32 +989,32 @@ message Int32Rules { // } // ``` int32 gte = 5 [ - (priv.field).cel = { - id: "int32.gte", + (predefined).cel = { + id: "int32.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "int32.gte_lt", + (predefined).cel = { + id: "int32.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int32.gte_lt_exclusive", + (predefined).cel = { + id: "int32.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int32.gte_lte", + (predefined).cel = { + id: "int32.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int32.gte_lte_exclusive", + (predefined).cel = { + id: "int32.gte_lte_exclusive" expression: "has(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]) : ''" @@ -758,9 +1032,9 @@ message Int32Rules { // repeated int32 value = 1 (buf.validate.field).int32 = { in: [1, 2, 3] }; // } // ``` - repeated int32 in = 6 [(priv.field).cel = { - id: "int32.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated int32 in = 6 [(predefined).cel = { + id: "int32.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -773,10 +1047,39 @@ message Int32Rules { // repeated int32 value = 1 (buf.validate.field).int32 = { not_in: [1, 2, 3] }; // } // ``` - repeated int32 not_in = 7 [(priv.field).cel = { - id: "int32.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated int32 not_in = 7 [(predefined).cel = { + id: "int32.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" + }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated int32 example = 8 [(predefined).cel = { + id: "int32.example" + expression: "true" }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // Int64Rules describes the constraints applied to `int64` values. These @@ -791,9 +1094,9 @@ message Int64Rules { // int64 value = 1 [(buf.validate.field).int64.const = 42]; // } // ``` - optional int64 const = 1 [(priv.field).cel = { - id: "int64.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional int64 const = 1 [(predefined).cel = { + id: "int64.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field < @@ -806,8 +1109,8 @@ message Int64Rules { // int64 value = 1 [(buf.validate.field).int64.lt = 10]; // } // ``` - int64 lt = 2 [(priv.field).cel = { - id: "int64.lt", + int64 lt = 2 [(predefined).cel = { + id: "int64.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -823,8 +1126,8 @@ message Int64Rules { // int64 value = 1 [(buf.validate.field).int64.lte = 10]; // } // ``` - int64 lte = 3 [(priv.field).cel = { - id: "int64.lte", + int64 lte = 3 [(predefined).cel = { + id: "int64.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -850,32 +1153,32 @@ message Int64Rules { // } // ``` int64 gt = 4 [ - (priv.field).cel = { - id: "int64.gt", + (predefined).cel = { + id: "int64.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "int64.gt_lt", + (predefined).cel = { + id: "int64.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int64.gt_lt_exclusive", + (predefined).cel = { + id: "int64.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int64.gt_lte", + (predefined).cel = { + id: "int64.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int64.gt_lte_exclusive", + (predefined).cel = { + id: "int64.gt_lte_exclusive" expression: "has(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]) : ''" @@ -901,32 +1204,32 @@ message Int64Rules { // } // ``` int64 gte = 5 [ - (priv.field).cel = { - id: "int64.gte", + (predefined).cel = { + id: "int64.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "int64.gte_lt", + (predefined).cel = { + id: "int64.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int64.gte_lt_exclusive", + (predefined).cel = { + id: "int64.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int64.gte_lte", + (predefined).cel = { + id: "int64.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "int64.gte_lte_exclusive", + (predefined).cel = { + id: "int64.gte_lte_exclusive" expression: "has(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]) : ''" @@ -944,9 +1247,9 @@ message Int64Rules { // repeated int64 value = 1 (buf.validate.field).int64 = { in: [1, 2, 3] }; // } // ``` - repeated int64 in = 6 [(priv.field).cel = { - id: "int64.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated int64 in = 6 [(predefined).cel = { + id: "int64.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -959,10 +1262,39 @@ message Int64Rules { // repeated int64 value = 1 (buf.validate.field).int64 = { not_in: [1, 2, 3] }; // } // ``` - repeated int64 not_in = 7 [(priv.field).cel = { - id: "int64.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated int64 not_in = 7 [(predefined).cel = { + id: "int64.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" + }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated int64 example = 9 [(predefined).cel = { + id: "int64.example" + expression: "true" }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // UInt32Rules describes the constraints applied to `uint32` values. These @@ -977,9 +1309,9 @@ message UInt32Rules { // uint32 value = 1 [(buf.validate.field).uint32.const = 42]; // } // ``` - optional uint32 const = 1 [(priv.field).cel = { - id: "uint32.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional uint32 const = 1 [(predefined).cel = { + id: "uint32.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field < @@ -992,8 +1324,8 @@ message UInt32Rules { // uint32 value = 1 [(buf.validate.field).uint32.lt = 10]; // } // ``` - uint32 lt = 2 [(priv.field).cel = { - id: "uint32.lt", + uint32 lt = 2 [(predefined).cel = { + id: "uint32.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -1009,8 +1341,8 @@ message UInt32Rules { // uint32 value = 1 [(buf.validate.field).uint32.lte = 10]; // } // ``` - uint32 lte = 3 [(priv.field).cel = { - id: "uint32.lte", + uint32 lte = 3 [(predefined).cel = { + id: "uint32.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -1036,32 +1368,32 @@ message UInt32Rules { // } // ``` uint32 gt = 4 [ - (priv.field).cel = { - id: "uint32.gt", + (predefined).cel = { + id: "uint32.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "uint32.gt_lt", + (predefined).cel = { + id: "uint32.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint32.gt_lt_exclusive", + (predefined).cel = { + id: "uint32.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint32.gt_lte", + (predefined).cel = { + id: "uint32.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint32.gt_lte_exclusive", + (predefined).cel = { + id: "uint32.gt_lte_exclusive" expression: "has(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]) : ''" @@ -1087,32 +1419,32 @@ message UInt32Rules { // } // ``` uint32 gte = 5 [ - (priv.field).cel = { - id: "uint32.gte", + (predefined).cel = { + id: "uint32.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "uint32.gte_lt", + (predefined).cel = { + id: "uint32.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint32.gte_lt_exclusive", + (predefined).cel = { + id: "uint32.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint32.gte_lte", + (predefined).cel = { + id: "uint32.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint32.gte_lte_exclusive", + (predefined).cel = { + id: "uint32.gte_lte_exclusive" expression: "has(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]) : ''" @@ -1130,9 +1462,9 @@ message UInt32Rules { // repeated uint32 value = 1 (buf.validate.field).uint32 = { in: [1, 2, 3] }; // } // ``` - repeated uint32 in = 6 [(priv.field).cel = { - id: "uint32.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated uint32 in = 6 [(predefined).cel = { + id: "uint32.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -1145,10 +1477,39 @@ message UInt32Rules { // repeated uint32 value = 1 (buf.validate.field).uint32 = { not_in: [1, 2, 3] }; // } // ``` - repeated uint32 not_in = 7 [(priv.field).cel = { - id: "uint32.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated uint32 not_in = 7 [(predefined).cel = { + id: "uint32.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" + }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated uint32 example = 8 [(predefined).cel = { + id: "uint32.example" + expression: "true" }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // UInt64Rules describes the constraints applied to `uint64` values. These @@ -1163,9 +1524,9 @@ message UInt64Rules { // uint64 value = 1 [(buf.validate.field).uint64.const = 42]; // } // ``` - optional uint64 const = 1 [(priv.field).cel = { - id: "uint64.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional uint64 const = 1 [(predefined).cel = { + id: "uint64.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field < @@ -1178,8 +1539,8 @@ message UInt64Rules { // uint64 value = 1 [(buf.validate.field).uint64.lt = 10]; // } // ``` - uint64 lt = 2 [(priv.field).cel = { - id: "uint64.lt", + uint64 lt = 2 [(predefined).cel = { + id: "uint64.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -1195,8 +1556,8 @@ message UInt64Rules { // uint64 value = 1 [(buf.validate.field).uint64.lte = 10]; // } // ``` - uint64 lte = 3 [(priv.field).cel = { - id: "uint64.lte", + uint64 lte = 3 [(predefined).cel = { + id: "uint64.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -1222,32 +1583,32 @@ message UInt64Rules { // } // ``` uint64 gt = 4 [ - (priv.field).cel = { - id: "uint64.gt", + (predefined).cel = { + id: "uint64.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "uint64.gt_lt", + (predefined).cel = { + id: "uint64.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint64.gt_lt_exclusive", + (predefined).cel = { + id: "uint64.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint64.gt_lte", + (predefined).cel = { + id: "uint64.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint64.gt_lte_exclusive", + (predefined).cel = { + id: "uint64.gt_lte_exclusive" expression: "has(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]) : ''" @@ -1273,32 +1634,32 @@ message UInt64Rules { // } // ``` uint64 gte = 5 [ - (priv.field).cel = { - id: "uint64.gte", + (predefined).cel = { + id: "uint64.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "uint64.gte_lt", + (predefined).cel = { + id: "uint64.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint64.gte_lt_exclusive", + (predefined).cel = { + id: "uint64.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint64.gte_lte", + (predefined).cel = { + id: "uint64.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "uint64.gte_lte_exclusive", + (predefined).cel = { + id: "uint64.gte_lte_exclusive" expression: "has(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]) : ''" @@ -1315,9 +1676,9 @@ message UInt64Rules { // repeated uint64 value = 1 (buf.validate.field).uint64 = { in: [1, 2, 3] }; // } // ``` - repeated uint64 in = 6 [(priv.field).cel = { - id: "uint64.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated uint64 in = 6 [(predefined).cel = { + id: "uint64.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -1330,10 +1691,39 @@ message UInt64Rules { // repeated uint64 value = 1 (buf.validate.field).uint64 = { not_in: [1, 2, 3] }; // } // ``` - repeated uint64 not_in = 7 [(priv.field).cel = { - id: "uint64.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated uint64 not_in = 7 [(predefined).cel = { + id: "uint64.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated uint64 example = 8 [(predefined).cel = { + id: "uint64.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // SInt32Rules describes the constraints applied to `sint32` values. @@ -1347,9 +1737,9 @@ message SInt32Rules { // sint32 value = 1 [(buf.validate.field).sint32.const = 42]; // } // ``` - optional sint32 const = 1 [(priv.field).cel = { - id: "sint32.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional sint32 const = 1 [(predefined).cel = { + id: "sint32.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field @@ -1362,8 +1752,8 @@ message SInt32Rules { // sint32 value = 1 [(buf.validate.field).sint32.lt = 10]; // } // ``` - sint32 lt = 2 [(priv.field).cel = { - id: "sint32.lt", + sint32 lt = 2 [(predefined).cel = { + id: "sint32.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -1379,8 +1769,8 @@ message SInt32Rules { // sint32 value = 1 [(buf.validate.field).sint32.lte = 10]; // } // ``` - sint32 lte = 3 [(priv.field).cel = { - id: "sint32.lte", + sint32 lte = 3 [(predefined).cel = { + id: "sint32.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -1406,32 +1796,32 @@ message SInt32Rules { // } // ``` sint32 gt = 4 [ - (priv.field).cel = { - id: "sint32.gt", + (predefined).cel = { + id: "sint32.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "sint32.gt_lt", + (predefined).cel = { + id: "sint32.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint32.gt_lt_exclusive", + (predefined).cel = { + id: "sint32.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint32.gt_lte", + (predefined).cel = { + id: "sint32.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint32.gt_lte_exclusive", + (predefined).cel = { + id: "sint32.gt_lte_exclusive" expression: "has(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]) : ''" @@ -1457,32 +1847,32 @@ message SInt32Rules { // } // ``` sint32 gte = 5 [ - (priv.field).cel = { - id: "sint32.gte", + (predefined).cel = { + id: "sint32.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "sint32.gte_lt", + (predefined).cel = { + id: "sint32.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint32.gte_lt_exclusive", + (predefined).cel = { + id: "sint32.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint32.gte_lte", + (predefined).cel = { + id: "sint32.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint32.gte_lte_exclusive", + (predefined).cel = { + id: "sint32.gte_lte_exclusive" expression: "has(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]) : ''" @@ -1500,9 +1890,9 @@ message SInt32Rules { // repeated sint32 value = 1 (buf.validate.field).sint32 = { in: [1, 2, 3] }; // } // ``` - repeated sint32 in = 6 [(priv.field).cel = { - id: "sint32.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated sint32 in = 6 [(predefined).cel = { + id: "sint32.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -1515,10 +1905,39 @@ message SInt32Rules { // repeated sint32 value = 1 (buf.validate.field).sint32 = { not_in: [1, 2, 3] }; // } // ``` - repeated sint32 not_in = 7 [(priv.field).cel = { - id: "sint32.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated sint32 not_in = 7 [(predefined).cel = { + id: "sint32.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated sint32 example = 8 [(predefined).cel = { + id: "sint32.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // SInt64Rules describes the constraints applied to `sint64` values. @@ -1532,9 +1951,9 @@ message SInt64Rules { // sint64 value = 1 [(buf.validate.field).sint64.const = 42]; // } // ``` - optional sint64 const = 1 [(priv.field).cel = { - id: "sint64.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional sint64 const = 1 [(predefined).cel = { + id: "sint64.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field @@ -1547,8 +1966,8 @@ message SInt64Rules { // sint64 value = 1 [(buf.validate.field).sint64.lt = 10]; // } // ``` - sint64 lt = 2 [(priv.field).cel = { - id: "sint64.lt", + sint64 lt = 2 [(predefined).cel = { + id: "sint64.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -1564,8 +1983,8 @@ message SInt64Rules { // sint64 value = 1 [(buf.validate.field).sint64.lte = 10]; // } // ``` - sint64 lte = 3 [(priv.field).cel = { - id: "sint64.lte", + sint64 lte = 3 [(predefined).cel = { + id: "sint64.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -1591,32 +2010,32 @@ message SInt64Rules { // } // ``` sint64 gt = 4 [ - (priv.field).cel = { - id: "sint64.gt", + (predefined).cel = { + id: "sint64.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "sint64.gt_lt", + (predefined).cel = { + id: "sint64.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint64.gt_lt_exclusive", + (predefined).cel = { + id: "sint64.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint64.gt_lte", + (predefined).cel = { + id: "sint64.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint64.gt_lte_exclusive", + (predefined).cel = { + id: "sint64.gt_lte_exclusive" expression: "has(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]) : ''" @@ -1642,32 +2061,32 @@ message SInt64Rules { // } // ``` sint64 gte = 5 [ - (priv.field).cel = { - id: "sint64.gte", + (predefined).cel = { + id: "sint64.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "sint64.gte_lt", + (predefined).cel = { + id: "sint64.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint64.gte_lt_exclusive", + (predefined).cel = { + id: "sint64.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint64.gte_lte", + (predefined).cel = { + id: "sint64.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sint64.gte_lte_exclusive", + (predefined).cel = { + id: "sint64.gte_lte_exclusive" expression: "has(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]) : ''" @@ -1685,9 +2104,9 @@ message SInt64Rules { // repeated sint64 value = 1 (buf.validate.field).sint64 = { in: [1, 2, 3] }; // } // ``` - repeated sint64 in = 6 [(priv.field).cel = { - id: "sint64.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated sint64 in = 6 [(predefined).cel = { + id: "sint64.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -1700,10 +2119,39 @@ message SInt64Rules { // repeated sint64 value = 1 (buf.validate.field).sint64 = { not_in: [1, 2, 3] }; // } // ``` - repeated sint64 not_in = 7 [(priv.field).cel = { - id: "sint64.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated sint64 not_in = 7 [(predefined).cel = { + id: "sint64.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated sint64 example = 8 [(predefined).cel = { + id: "sint64.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // Fixed32Rules describes the constraints applied to `fixed32` values. @@ -1717,9 +2165,9 @@ message Fixed32Rules { // fixed32 value = 1 [(buf.validate.field).fixed32.const = 42]; // } // ``` - optional fixed32 const = 1 [(priv.field).cel = { - id: "fixed32.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional fixed32 const = 1 [(predefined).cel = { + id: "fixed32.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field < @@ -1732,8 +2180,8 @@ message Fixed32Rules { // fixed32 value = 1 [(buf.validate.field).fixed32.lt = 10]; // } // ``` - fixed32 lt = 2 [(priv.field).cel = { - id: "fixed32.lt", + fixed32 lt = 2 [(predefined).cel = { + id: "fixed32.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -1749,8 +2197,8 @@ message Fixed32Rules { // fixed32 value = 1 [(buf.validate.field).fixed32.lte = 10]; // } // ``` - fixed32 lte = 3 [(priv.field).cel = { - id: "fixed32.lte", + fixed32 lte = 3 [(predefined).cel = { + id: "fixed32.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -1776,32 +2224,32 @@ message Fixed32Rules { // } // ``` fixed32 gt = 4 [ - (priv.field).cel = { - id: "fixed32.gt", + (predefined).cel = { + id: "fixed32.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "fixed32.gt_lt", + (predefined).cel = { + id: "fixed32.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed32.gt_lt_exclusive", + (predefined).cel = { + id: "fixed32.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed32.gt_lte", + (predefined).cel = { + id: "fixed32.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed32.gt_lte_exclusive", + (predefined).cel = { + id: "fixed32.gt_lte_exclusive" expression: "has(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]) : ''" @@ -1827,32 +2275,32 @@ message Fixed32Rules { // } // ``` fixed32 gte = 5 [ - (priv.field).cel = { - id: "fixed32.gte", + (predefined).cel = { + id: "fixed32.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "fixed32.gte_lt", + (predefined).cel = { + id: "fixed32.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed32.gte_lt_exclusive", + (predefined).cel = { + id: "fixed32.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed32.gte_lte", + (predefined).cel = { + id: "fixed32.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed32.gte_lte_exclusive", + (predefined).cel = { + id: "fixed32.gte_lte_exclusive" expression: "has(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]) : ''" @@ -1870,9 +2318,9 @@ message Fixed32Rules { // repeated fixed32 value = 1 (buf.validate.field).fixed32 = { in: [1, 2, 3] }; // } // ``` - repeated fixed32 in = 6 [(priv.field).cel = { - id: "fixed32.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated fixed32 in = 6 [(predefined).cel = { + id: "fixed32.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -1885,10 +2333,39 @@ message Fixed32Rules { // repeated fixed32 value = 1 (buf.validate.field).fixed32 = { not_in: [1, 2, 3] }; // } // ``` - repeated fixed32 not_in = 7 [(priv.field).cel = { - id: "fixed32.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated fixed32 not_in = 7 [(predefined).cel = { + id: "fixed32.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" + }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated fixed32 example = 8 [(predefined).cel = { + id: "fixed32.example" + expression: "true" }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // Fixed64Rules describes the constraints applied to `fixed64` values. @@ -1902,9 +2379,9 @@ message Fixed64Rules { // fixed64 value = 1 [(buf.validate.field).fixed64.const = 42]; // } // ``` - optional fixed64 const = 1 [(priv.field).cel = { - id: "fixed64.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional fixed64 const = 1 [(predefined).cel = { + id: "fixed64.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field < @@ -1917,8 +2394,8 @@ message Fixed64Rules { // fixed64 value = 1 [(buf.validate.field).fixed64.lt = 10]; // } // ``` - fixed64 lt = 2 [(priv.field).cel = { - id: "fixed64.lt", + fixed64 lt = 2 [(predefined).cel = { + id: "fixed64.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -1934,8 +2411,8 @@ message Fixed64Rules { // fixed64 value = 1 [(buf.validate.field).fixed64.lte = 10]; // } // ``` - fixed64 lte = 3 [(priv.field).cel = { - id: "fixed64.lte", + fixed64 lte = 3 [(predefined).cel = { + id: "fixed64.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -1961,32 +2438,32 @@ message Fixed64Rules { // } // ``` fixed64 gt = 4 [ - (priv.field).cel = { - id: "fixed64.gt", + (predefined).cel = { + id: "fixed64.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "fixed64.gt_lt", + (predefined).cel = { + id: "fixed64.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed64.gt_lt_exclusive", + (predefined).cel = { + id: "fixed64.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed64.gt_lte", + (predefined).cel = { + id: "fixed64.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed64.gt_lte_exclusive", + (predefined).cel = { + id: "fixed64.gt_lte_exclusive" expression: "has(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]) : ''" @@ -2012,32 +2489,32 @@ message Fixed64Rules { // } // ``` fixed64 gte = 5 [ - (priv.field).cel = { - id: "fixed64.gte", + (predefined).cel = { + id: "fixed64.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "fixed64.gte_lt", + (predefined).cel = { + id: "fixed64.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed64.gte_lt_exclusive", + (predefined).cel = { + id: "fixed64.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed64.gte_lte", + (predefined).cel = { + id: "fixed64.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "fixed64.gte_lte_exclusive", + (predefined).cel = { + id: "fixed64.gte_lte_exclusive" expression: "has(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]) : ''" @@ -2055,9 +2532,9 @@ message Fixed64Rules { // repeated fixed64 value = 1 (buf.validate.field).fixed64 = { in: [1, 2, 3] }; // } // ``` - repeated fixed64 in = 6 [(priv.field).cel = { - id: "fixed64.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated fixed64 in = 6 [(predefined).cel = { + id: "fixed64.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -2070,10 +2547,39 @@ message Fixed64Rules { // repeated fixed64 value = 1 (buf.validate.field).fixed64 = { not_in: [1, 2, 3] }; // } // ``` - repeated fixed64 not_in = 7 [(priv.field).cel = { - id: "fixed64.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated fixed64 not_in = 7 [(predefined).cel = { + id: "fixed64.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated fixed64 example = 8 [(predefined).cel = { + id: "fixed64.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // SFixed32Rules describes the constraints applied to `fixed32` values. @@ -2087,9 +2593,9 @@ message SFixed32Rules { // sfixed32 value = 1 [(buf.validate.field).sfixed32.const = 42]; // } // ``` - optional sfixed32 const = 1 [(priv.field).cel = { - id: "sfixed32.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional sfixed32 const = 1 [(predefined).cel = { + id: "sfixed32.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field < @@ -2102,8 +2608,8 @@ message SFixed32Rules { // sfixed32 value = 1 [(buf.validate.field).sfixed32.lt = 10]; // } // ``` - sfixed32 lt = 2 [(priv.field).cel = { - id: "sfixed32.lt", + sfixed32 lt = 2 [(predefined).cel = { + id: "sfixed32.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -2119,8 +2625,8 @@ message SFixed32Rules { // sfixed32 value = 1 [(buf.validate.field).sfixed32.lte = 10]; // } // ``` - sfixed32 lte = 3 [(priv.field).cel = { - id: "sfixed32.lte", + sfixed32 lte = 3 [(predefined).cel = { + id: "sfixed32.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -2146,32 +2652,32 @@ message SFixed32Rules { // } // ``` sfixed32 gt = 4 [ - (priv.field).cel = { - id: "sfixed32.gt", + (predefined).cel = { + id: "sfixed32.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "sfixed32.gt_lt", + (predefined).cel = { + id: "sfixed32.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed32.gt_lt_exclusive", + (predefined).cel = { + id: "sfixed32.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed32.gt_lte", + (predefined).cel = { + id: "sfixed32.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed32.gt_lte_exclusive", + (predefined).cel = { + id: "sfixed32.gt_lte_exclusive" expression: "has(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]) : ''" @@ -2197,32 +2703,32 @@ message SFixed32Rules { // } // ``` sfixed32 gte = 5 [ - (priv.field).cel = { - id: "sfixed32.gte", + (predefined).cel = { + id: "sfixed32.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "sfixed32.gte_lt", + (predefined).cel = { + id: "sfixed32.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed32.gte_lt_exclusive", + (predefined).cel = { + id: "sfixed32.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed32.gte_lte", + (predefined).cel = { + id: "sfixed32.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed32.gte_lte_exclusive", + (predefined).cel = { + id: "sfixed32.gte_lte_exclusive" expression: "has(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]) : ''" @@ -2240,9 +2746,9 @@ message SFixed32Rules { // repeated sfixed32 value = 1 (buf.validate.field).sfixed32 = { in: [1, 2, 3] }; // } // ``` - repeated sfixed32 in = 6 [(priv.field).cel = { - id: "sfixed32.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated sfixed32 in = 6 [(predefined).cel = { + id: "sfixed32.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -2255,10 +2761,39 @@ message SFixed32Rules { // repeated sfixed32 value = 1 (buf.validate.field).sfixed32 = { not_in: [1, 2, 3] }; // } // ``` - repeated sfixed32 not_in = 7 [(priv.field).cel = { - id: "sfixed32.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated sfixed32 not_in = 7 [(predefined).cel = { + id: "sfixed32.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated sfixed32 example = 8 [(predefined).cel = { + id: "sfixed32.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // SFixed64Rules describes the constraints applied to `fixed64` values. @@ -2272,9 +2807,9 @@ message SFixed64Rules { // sfixed64 value = 1 [(buf.validate.field).sfixed64.const = 42]; // } // ``` - optional sfixed64 const = 1 [(priv.field).cel = { - id: "sfixed64.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional sfixed64 const = 1 [(predefined).cel = { + id: "sfixed64.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` requires the field value to be less than the specified value (field < @@ -2287,8 +2822,8 @@ message SFixed64Rules { // sfixed64 value = 1 [(buf.validate.field).sfixed64.lt = 10]; // } // ``` - sfixed64 lt = 2 [(priv.field).cel = { - id: "sfixed64.lt", + sfixed64 lt = 2 [(predefined).cel = { + id: "sfixed64.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -2304,8 +2839,8 @@ message SFixed64Rules { // sfixed64 value = 1 [(buf.validate.field).sfixed64.lte = 10]; // } // ``` - sfixed64 lte = 3 [(priv.field).cel = { - id: "sfixed64.lte", + sfixed64 lte = 3 [(predefined).cel = { + id: "sfixed64.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -2331,32 +2866,32 @@ message SFixed64Rules { // } // ``` sfixed64 gt = 4 [ - (priv.field).cel = { - id: "sfixed64.gt", + (predefined).cel = { + id: "sfixed64.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "sfixed64.gt_lt", + (predefined).cel = { + id: "sfixed64.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed64.gt_lt_exclusive", + (predefined).cel = { + id: "sfixed64.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed64.gt_lte", + (predefined).cel = { + id: "sfixed64.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed64.gt_lte_exclusive", + (predefined).cel = { + id: "sfixed64.gt_lte_exclusive" expression: "has(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]) : ''" @@ -2382,32 +2917,32 @@ message SFixed64Rules { // } // ``` sfixed64 gte = 5 [ - (priv.field).cel = { - id: "sfixed64.gte", + (predefined).cel = { + id: "sfixed64.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "sfixed64.gte_lt", + (predefined).cel = { + id: "sfixed64.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed64.gte_lt_exclusive", + (predefined).cel = { + id: "sfixed64.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed64.gte_lte", + (predefined).cel = { + id: "sfixed64.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "sfixed64.gte_lte_exclusive", + (predefined).cel = { + id: "sfixed64.gte_lte_exclusive" expression: "has(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]) : ''" @@ -2425,9 +2960,9 @@ message SFixed64Rules { // repeated sfixed64 value = 1 (buf.validate.field).sfixed64 = { in: [1, 2, 3] }; // } // ``` - repeated sfixed64 in = 6 [(priv.field).cel = { - id: "sfixed64.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated sfixed64 in = 6 [(predefined).cel = { + id: "sfixed64.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to not be equal to any of the specified @@ -2440,10 +2975,39 @@ message SFixed64Rules { // repeated sfixed64 value = 1 (buf.validate.field).sfixed64 = { not_in: [1, 2, 3] }; // } // ``` - repeated sfixed64 not_in = 7 [(priv.field).cel = { - id: "sfixed64.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated sfixed64 not_in = 7 [(predefined).cel = { + id: "sfixed64.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated sfixed64 example = 8 [(predefined).cel = { + id: "sfixed64.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // BoolRules describes the constraints applied to `bool` values. These rules @@ -2458,10 +3022,39 @@ message BoolRules { // bool value = 1 [(buf.validate.field).bool.const = true]; // } // ``` - optional bool const = 1 [(priv.field).cel = { - id: "bool.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional bool const = 1 [(predefined).cel = { + id: "bool.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" + }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // ]; + // } + // ``` + repeated bool example = 2 [(predefined).cel = { + id: "bool.example" + expression: "true" }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // StringRules describes the constraints applied to `string` values These @@ -2476,8 +3069,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.const = "hello"]; // } // ``` - optional string const = 1 [(priv.field).cel = { - id: "string.const", + optional string const = 1 [(predefined).cel = { + id: "string.const" expression: "this != rules.const ? 'value must equal `%s`'.format([rules.const]) : ''" }]; @@ -2492,8 +3085,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.len = 5]; // } // ``` - optional uint64 len = 19 [(priv.field).cel = { - id: "string.len", + optional uint64 len = 19 [(predefined).cel = { + id: "string.len" expression: "uint(this.size()) != rules.len ? 'value length must be %s characters'.format([rules.len]) : ''" }]; @@ -2508,8 +3101,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.min_len = 3]; // } // ``` - optional uint64 min_len = 2 [(priv.field).cel = { - id: "string.min_len", + optional uint64 min_len = 2 [(predefined).cel = { + id: "string.min_len" expression: "uint(this.size()) < rules.min_len ? 'value length must be at least %s characters'.format([rules.min_len]) : ''" }]; @@ -2524,8 +3117,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.max_len = 10]; // } // ``` - optional uint64 max_len = 3 [(priv.field).cel = { - id: "string.max_len", + optional uint64 max_len = 3 [(predefined).cel = { + id: "string.max_len" expression: "uint(this.size()) > rules.max_len ? 'value length must be at most %s characters'.format([rules.max_len]) : ''" }]; @@ -2539,8 +3132,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.len_bytes = 6]; // } // ``` - optional uint64 len_bytes = 20 [(priv.field).cel = { - id: "string.len_bytes", + optional uint64 len_bytes = 20 [(predefined).cel = { + id: "string.len_bytes" expression: "uint(bytes(this).size()) != rules.len_bytes ? 'value length must be %s bytes'.format([rules.len_bytes]) : ''" }]; @@ -2555,8 +3148,8 @@ message StringRules { // } // // ``` - optional uint64 min_bytes = 4 [(priv.field).cel = { - id: "string.min_bytes", + optional uint64 min_bytes = 4 [(predefined).cel = { + id: "string.min_bytes" expression: "uint(bytes(this).size()) < rules.min_bytes ? 'value length must be at least %s bytes'.format([rules.min_bytes]) : ''" }]; @@ -2570,9 +3163,9 @@ message StringRules { // string value = 1 [(buf.validate.field).string.max_bytes = 8]; // } // ``` - optional uint64 max_bytes = 5 [(priv.field).cel = { - id: "string.max_bytes", - expression: "uint(bytes(this).size()) > rules.max_bytes ? 'value length must be at most %s bytes'.format([rules.max_bytes]) : ''", + optional uint64 max_bytes = 5 [(predefined).cel = { + id: "string.max_bytes" + expression: "uint(bytes(this).size()) > rules.max_bytes ? 'value length must be at most %s bytes'.format([rules.max_bytes]) : ''" }]; // `pattern` specifies that the field value must match the specified @@ -2586,8 +3179,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.pattern = "^[a-zA-Z]//$"]; // } // ``` - optional string pattern = 6 [(priv.field).cel = { - id: "string.pattern", + optional string pattern = 6 [(predefined).cel = { + id: "string.pattern" expression: "!this.matches(rules.pattern) ? 'value does not match regex pattern `%s`'.format([rules.pattern]) : ''" }]; @@ -2602,8 +3195,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.prefix = "pre"]; // } // ``` - optional string prefix = 7 [(priv.field).cel = { - id: "string.prefix", + optional string prefix = 7 [(predefined).cel = { + id: "string.prefix" expression: "!this.startsWith(rules.prefix) ? 'value does not have prefix `%s`'.format([rules.prefix]) : ''" }]; @@ -2617,8 +3210,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.suffix = "post"]; // } // ``` - optional string suffix = 8 [(priv.field).cel = { - id: "string.suffix", + optional string suffix = 8 [(predefined).cel = { + id: "string.suffix" expression: "!this.endsWith(rules.suffix) ? 'value does not have suffix `%s`'.format([rules.suffix]) : ''" }]; @@ -2632,8 +3225,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.contains = "inside"]; // } // ``` - optional string contains = 9 [(priv.field).cel = { - id: "string.contains", + optional string contains = 9 [(predefined).cel = { + id: "string.contains" expression: "!this.contains(rules.contains) ? 'value does not contain substring `%s`'.format([rules.contains]) : ''" }]; @@ -2647,8 +3240,8 @@ message StringRules { // string value = 1 [(buf.validate.field).string.not_contains = "inside"]; // } // ``` - optional string not_contains = 23 [(priv.field).cel = { - id: "string.not_contains", + optional string not_contains = 23 [(predefined).cel = { + id: "string.not_contains" expression: "this.contains(rules.not_contains) ? 'value contains substring `%s`'.format([rules.not_contains]) : ''" }]; @@ -2662,8 +3255,8 @@ message StringRules { // repeated string value = 1 [(buf.validate.field).string.in = "apple", (buf.validate.field).string.in = "banana"]; // } // ``` - repeated string in = 10 [(priv.field).cel = { - id: "string.in", + repeated string in = 10 [(predefined).cel = { + id: "string.in" expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; @@ -2676,8 +3269,8 @@ message StringRules { // repeated string value = 1 [(buf.validate.field).string.not_in = "orange", (buf.validate.field).string.not_in = "grape"]; // } // ``` - repeated string not_in = 11 [(priv.field).cel = { - id: "string.not_in", + repeated string not_in = 11 [(predefined).cel = { + id: "string.not_in" expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; @@ -2694,11 +3287,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.email = true]; // } // ``` - bool email = 12 [(priv.field).cel = { - id: "string.email", - message: "value must be a valid email address", - expression: "this.isEmail()" - }]; + bool email = 12 [ + (predefined).cel = { + id: "string.email" + message: "value must be a valid email address" + expression: "!rules.email || this == '' || this.isEmail()" + }, + (predefined).cel = { + id: "string.email_empty" + message: "value is empty, which is not a valid email address" + expression: "!rules.email || this != ''" + } + ]; // `hostname` specifies that the field value must be a valid // hostname as defined by [RFC 1034](https://tools.ietf.org/html/rfc1034#section-3.5). This constraint doesn't support @@ -2711,11 +3311,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.hostname = true]; // } // ``` - bool hostname = 13 [(priv.field).cel = { - id: "string.hostname", - message: "value must be a valid hostname", - expression: "this.isHostname()", - }]; + bool hostname = 13 [ + (predefined).cel = { + id: "string.hostname" + message: "value must be a valid hostname" + expression: "!rules.hostname || this == '' || this.isHostname()" + }, + (predefined).cel = { + id: "string.hostname_empty" + message: "value is empty, which is not a valid hostname" + expression: "!rules.hostname || this != ''" + } + ]; // `ip` specifies that the field value must be a valid IP // (v4 or v6) address, without surrounding square brackets for IPv6 addresses. @@ -2728,11 +3335,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.ip = true]; // } // ``` - bool ip = 14 [(priv.field).cel = { - id: "string.ip", - message: "value must be a valid IP address", - expression: "this.isIp()", - }]; + bool ip = 14 [ + (predefined).cel = { + id: "string.ip" + message: "value must be a valid IP address" + expression: "!rules.ip || this == '' || this.isIp()" + }, + (predefined).cel = { + id: "string.ip_empty" + message: "value is empty, which is not a valid IP address" + expression: "!rules.ip || this != ''" + } + ]; // `ipv4` specifies that the field value must be a valid IPv4 // address. If the field value isn't a valid IPv4 address, an error message @@ -2744,11 +3358,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.ipv4 = true]; // } // ``` - bool ipv4 = 15 [(priv.field).cel = { - id: "string.ipv4", - message: "value must be a valid IPv4 address", - expression: "this.isIp(4)" - }]; + bool ipv4 = 15 [ + (predefined).cel = { + id: "string.ipv4" + message: "value must be a valid IPv4 address" + expression: "!rules.ipv4 || this == '' || this.isIp(4)" + }, + (predefined).cel = { + id: "string.ipv4_empty" + message: "value is empty, which is not a valid IPv4 address" + expression: "!rules.ipv4 || this != ''" + } + ]; // `ipv6` specifies that the field value must be a valid // IPv6 address, without surrounding square brackets. If the field value is @@ -2760,11 +3381,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.ipv6 = true]; // } // ``` - bool ipv6 = 16 [(priv.field).cel = { - id: "string.ipv6", - message: "value must be a valid IPv6 address", - expression: "this.isIp(6)", - }]; + bool ipv6 = 16 [ + (predefined).cel = { + id: "string.ipv6" + message: "value must be a valid IPv6 address" + expression: "!rules.ipv6 || this == '' || this.isIp(6)" + }, + (predefined).cel = { + id: "string.ipv6_empty" + message: "value is empty, which is not a valid IPv6 address" + expression: "!rules.ipv6 || this != ''" + } + ]; // `uri` specifies that the field value must be a valid, // absolute URI as defined by [RFC 3986](https://tools.ietf.org/html/rfc3986#section-3). If the field value isn't a valid, @@ -2776,11 +3404,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.uri = true]; // } // ``` - bool uri = 17 [(priv.field).cel = { - id: "string.uri", - message: "value must be a valid URI", - expression: "this.isUri()", - }]; + bool uri = 17 [ + (predefined).cel = { + id: "string.uri" + message: "value must be a valid URI" + expression: "!rules.uri || this == '' || this.isUri()" + }, + (predefined).cel = { + id: "string.uri_empty" + message: "value is empty, which is not a valid URI" + expression: "!rules.uri || this != ''" + } + ]; // `uri_ref` specifies that the field value must be a valid URI // as defined by [RFC 3986](https://tools.ietf.org/html/rfc3986#section-3) and may be either relative or absolute. If the @@ -2792,10 +3427,10 @@ message StringRules { // string value = 1 [(buf.validate.field).string.uri_ref = true]; // } // ``` - bool uri_ref = 18 [(priv.field).cel = { - id: "string.uri_ref", - message: "value must be a valid URI", - expression: "this.isUriRef()", + bool uri_ref = 18 [(predefined).cel = { + id: "string.uri_ref" + message: "value must be a valid URI" + expression: "!rules.uri_ref || this.isUriRef()" }]; // `address` specifies that the field value must be either a valid hostname @@ -2810,11 +3445,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.address = true]; // } // ``` - bool address = 21 [(priv.field).cel = { - id: "string.address", - message: "value must be a valid hostname, or ip address", - expression: "this.isHostname() || this.isIp()", - }]; + bool address = 21 [ + (predefined).cel = { + id: "string.address" + message: "value must be a valid hostname, or ip address" + expression: "!rules.address || this == '' || this.isHostname() || this.isIp()" + }, + (predefined).cel = { + id: "string.address_empty" + message: "value is empty, which is not a valid hostname, or ip address" + expression: "!rules.address || this != ''" + } + ]; // `uuid` specifies that the field value must be a valid UUID as defined by // [RFC 4122](https://tools.ietf.org/html/rfc4122#section-4.1.2). If the @@ -2826,10 +3468,42 @@ message StringRules { // string value = 1 [(buf.validate.field).string.uuid = true]; // } // ``` - bool uuid = 22 [(priv.field).cel = { - id: "string.uuid", - expression: "!this.matches('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') ? 'value must be a valid UUID' : ''" - }]; + bool uuid = 22 [ + (predefined).cel = { + id: "string.uuid" + message: "value must be a valid UUID" + expression: "!rules.uuid || this == '' || this.matches('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$')" + }, + (predefined).cel = { + id: "string.uuid_empty" + message: "value is empty, which is not a valid UUID" + expression: "!rules.uuid || this != ''" + } + ]; + + // `tuuid` (trimmed UUID) specifies that the field value must be a valid UUID as + // defined by [RFC 4122](https://tools.ietf.org/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]; + // } + // ``` + bool tuuid = 33 [ + (predefined).cel = { + id: "string.tuuid" + message: "value must be a valid trimmed UUID" + expression: "!rules.tuuid || this == '' || this.matches('^[0-9a-fA-F]{32}$')" + }, + (predefined).cel = { + id: "string.tuuid_empty" + message: "value is empty, which is not a valid trimmed UUID" + expression: "!rules.tuuid || this != ''" + } + ]; // `ip_with_prefixlen` specifies that the field value must be a valid IP (v4 or v6) // address with prefix length. If the field value isn't a valid IP with prefix @@ -2842,11 +3516,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.ip_with_prefixlen = true]; // } // ``` - bool ip_with_prefixlen = 26 [(priv.field).cel = { - id: "string.ip_with_prefixlen", - message: "value must be a valid IP prefix", - expression: "this.isIpPrefix()", - }]; + bool ip_with_prefixlen = 26 [ + (predefined).cel = { + id: "string.ip_with_prefixlen" + message: "value must be a valid IP prefix" + expression: "!rules.ip_with_prefixlen || this == '' || this.isIpPrefix()" + }, + (predefined).cel = { + id: "string.ip_with_prefixlen_empty" + message: "value is empty, which is not a valid IP prefix" + expression: "!rules.ip_with_prefixlen || this != ''" + } + ]; // `ipv4_with_prefixlen` specifies that the field value must be a valid // IPv4 address with prefix. @@ -2855,15 +3536,22 @@ message StringRules { // // ```proto // message MyString { - // // value must be a valid IPv4 address with prefix lentgh + // // value must be a valid IPv4 address with prefix length // string value = 1 [(buf.validate.field).string.ipv4_with_prefixlen = true]; // } // ``` - bool ipv4_with_prefixlen = 27 [(priv.field).cel = { - id: "string.ipv4_with_prefixlen", - message: "value must be a valid IPv4 address with prefix length", - expression: "this.isIpPrefix(4)" - }]; + bool ipv4_with_prefixlen = 27 [ + (predefined).cel = { + id: "string.ipv4_with_prefixlen" + message: "value must be a valid IPv4 address with prefix length" + expression: "!rules.ipv4_with_prefixlen || this == '' || this.isIpPrefix(4)" + }, + (predefined).cel = { + id: "string.ipv4_with_prefixlen_empty" + message: "value is empty, which is not a valid IPv4 address with prefix length" + expression: "!rules.ipv4_with_prefixlen || this != ''" + } + ]; // `ipv6_with_prefixlen` specifies that the field value must be a valid // IPv6 address with prefix length. @@ -2876,11 +3564,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.ipv6_with_prefixlen = true]; // } // ``` - bool ipv6_with_prefixlen = 28 [(priv.field).cel = { - id: "string.ipv6_with_prefixlen", - message: "value must be a valid IPv6 address with prefix length", - expression: "this.isIpPrefix(6)", - }]; + bool ipv6_with_prefixlen = 28 [ + (predefined).cel = { + id: "string.ipv6_with_prefixlen" + message: "value must be a valid IPv6 address with prefix length" + expression: "!rules.ipv6_with_prefixlen || this == '' || this.isIpPrefix(6)" + }, + (predefined).cel = { + id: "string.ipv6_with_prefixlen_empty" + message: "value is empty, which is not a valid IPv6 address with prefix length" + expression: "!rules.ipv6_with_prefixlen || this != ''" + } + ]; // `ip_prefix` specifies that the field value must be a valid IP (v4 or v6) prefix. // If the field value isn't a valid IP prefix, an error message will be @@ -2893,11 +3588,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.ip_prefix = true]; // } // ``` - bool ip_prefix = 29 [(priv.field).cel = { - id: "string.ip_prefix", - message: "value must be a valid IP prefix", - expression: "this.isIpPrefix(true)", - }]; + bool ip_prefix = 29 [ + (predefined).cel = { + id: "string.ip_prefix" + message: "value must be a valid IP prefix" + expression: "!rules.ip_prefix || this == '' || this.isIpPrefix(true)" + }, + (predefined).cel = { + id: "string.ip_prefix_empty" + message: "value is empty, which is not a valid IP prefix" + expression: "!rules.ip_prefix || this != ''" + } + ]; // `ipv4_prefix` specifies that the field value must be a valid IPv4 // prefix. If the field value isn't a valid IPv4 prefix, an error message @@ -2910,11 +3612,18 @@ message StringRules { // string value = 1 [(buf.validate.field).string.ipv4_prefix = true]; // } // ``` - bool ipv4_prefix = 30 [(priv.field).cel = { - id: "string.ipv4_prefix", - message: "value must be a valid IPv4 prefix", - expression: "this.isIpPrefix(4, true)" - }]; + bool ipv4_prefix = 30 [ + (predefined).cel = { + id: "string.ipv4_prefix" + message: "value must be a valid IPv4 prefix" + expression: "!rules.ipv4_prefix || this == '' || this.isIpPrefix(4, true)" + }, + (predefined).cel = { + id: "string.ipv4_prefix_empty" + message: "value is empty, which is not a valid IPv4 prefix" + expression: "!rules.ipv4_prefix || this != ''" + } + ]; // `ipv6_prefix` specifies that the field value must be a valid IPv6 prefix. // If the field value is not a valid IPv6 prefix, an error message will be @@ -2927,11 +3636,35 @@ message StringRules { // string value = 1 [(buf.validate.field).string.ipv6_prefix = true]; // } // ``` - bool ipv6_prefix = 31 [(priv.field).cel = { - id: "string.ipv6_prefix", - message: "value must be a valid IPv6 prefix", - expression: "this.isIpPrefix(6, true)", - }]; + bool ipv6_prefix = 31 [ + (predefined).cel = { + id: "string.ipv6_prefix" + message: "value must be a valid IPv6 prefix" + expression: "!rules.ipv6_prefix || this == '' || this.isIpPrefix(6, true)" + }, + (predefined).cel = { + id: "string.ipv6_prefix_empty" + message: "value is empty, which is not a valid IPv6 prefix" + expression: "!rules.ipv6_prefix || this != ''" + } + ]; + + // `host_and_port` specifies the field value must be a valid host and port + // pair. The host must be a valid hostname or IP address while the port + // must be in the range of 0-65535, inclusive. IPv6 addresses must be delimited + // with square brackets (e.g., `[::1]:1234`). + bool host_and_port = 32 [ + (predefined).cel = { + id: "string.host_and_port" + message: "value must be a valid host (hostname or IP address) and port pair" + expression: "!rules.host_and_port || this == '' || this.isHostAndPort(true)" + }, + (predefined).cel = { + id: "string.host_and_port_empty" + message: "value is empty, which is not a valid host and port pair" + expression: "!rules.host_and_port || this != ''" + } + ]; // `well_known_regex` specifies a common well-known pattern // defined as a regex. If the field value doesn't match the well-known @@ -2940,7 +3673,7 @@ message StringRules { // ```proto // message MyString { // // value must be a valid HTTP header value - // string value = 1 [(buf.validate.field).string.well_known_regex = 2]; + // string value = 1 [(buf.validate.field).string.well_known_regex = KNOWN_REGEX_HTTP_HEADER_VALUE]; // } // ``` // @@ -2954,19 +3687,26 @@ message StringRules { // | KNOWN_REGEX_HTTP_HEADER_NAME | 1 | HTTP header name as defined by [RFC 7230](https://tools.ietf.org/html/rfc7230#section-3.2) | // | KNOWN_REGEX_HTTP_HEADER_VALUE | 2 | HTTP header value as defined by [RFC 7230](https://tools.ietf.org/html/rfc7230#section-3.2.4) | KnownRegex well_known_regex = 24 [ - (priv.field).cel = { + (predefined).cel = { id: "string.well_known_regex.header_name" + message: "value must be a valid HTTP header name" expression: - "rules.well_known_regex == 1 && !this.matches(!has(rules.strict) || rules.strict ?" + "rules.well_known_regex != 1 || this == '' || this.matches(!has(rules.strict) || rules.strict ?" "'^:?[0-9a-zA-Z!#$%&\\'*+-.^_|~\\x60]+$' :" - "'^[^\\u0000\\u000A\\u000D]+$') ? 'value must be a valid HTTP header name' : ''", + "'^[^\\u0000\\u000A\\u000D]+$')" }, - (priv.field).cel = { - id: "string.well_known_regex.header_value", + (predefined).cel = { + id: "string.well_known_regex.header_name_empty" + message: "value is empty, which is not a valid HTTP header name" + expression: "rules.well_known_regex != 1 || this != ''" + }, + (predefined).cel = { + id: "string.well_known_regex.header_value" + message: "value must be a valid HTTP header value" expression: - "rules.well_known_regex == 2 && !this.matches(!has(rules.strict) || rules.strict ?" + "rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?" "'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$' :" - "'^[^\\u0000\\u000A\\u000D]*$') ? 'value must be a valid HTTP header value' : ''", + "'^[^\\u0000\\u000A\\u000D]*$')" } ]; } @@ -2984,6 +3724,35 @@ message StringRules { // } // ``` optional bool strict = 25; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 = 1, + // (buf.validate.field).string.example = 2 + // ]; + // } + // ``` + repeated string example = 34 [(predefined).cel = { + id: "string.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // WellKnownRegex contain some well-known patterns. @@ -3009,8 +3778,8 @@ message BytesRules { // bytes value = 1 [(buf.validate.field).bytes.const = "\x01\x02\x03\x04"]; // } // ``` - optional bytes const = 1 [(priv.field).cel = { - id: "bytes.const", + optional bytes const = 1 [(predefined).cel = { + id: "bytes.const" expression: "this != rules.const ? 'value must be %x'.format([rules.const]) : ''" }]; @@ -3023,8 +3792,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.len = 4]; // } // ``` - optional uint64 len = 13 [(priv.field).cel = { - id: "bytes.len", + optional uint64 len = 13 [(predefined).cel = { + id: "bytes.len" expression: "uint(this.size()) != rules.len ? 'value length must be %s bytes'.format([rules.len]) : ''" }]; @@ -3038,8 +3807,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.min_len = 2]; // } // ``` - optional uint64 min_len = 2 [(priv.field).cel = { - id: "bytes.min_len", + optional uint64 min_len = 2 [(predefined).cel = { + id: "bytes.min_len" expression: "uint(this.size()) < rules.min_len ? 'value length must be at least %s bytes'.format([rules.min_len]) : ''" }]; @@ -3053,8 +3822,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.max_len = 6]; // } // ``` - optional uint64 max_len = 3 [(priv.field).cel = { - id: "bytes.max_len", + optional uint64 max_len = 3 [(predefined).cel = { + id: "bytes.max_len" expression: "uint(this.size()) > rules.max_len ? 'value must be at most %s bytes'.format([rules.max_len]) : ''" }]; @@ -3070,8 +3839,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.pattern = "^[a-zA-Z0-9]+$"]; // } // ``` - optional string pattern = 4 [(priv.field).cel = { - id: "bytes.pattern", + optional string pattern = 4 [(predefined).cel = { + id: "bytes.pattern" expression: "!string(this).matches(rules.pattern) ? 'value must match regex pattern `%s`'.format([rules.pattern]) : ''" }]; @@ -3085,8 +3854,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.prefix = "\x01\x02"]; // } // ``` - optional bytes prefix = 5 [(priv.field).cel = { - id: "bytes.prefix", + optional bytes prefix = 5 [(predefined).cel = { + id: "bytes.prefix" expression: "!this.startsWith(rules.prefix) ? 'value does not have prefix %x'.format([rules.prefix]) : ''" }]; @@ -3100,8 +3869,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.suffix = "\x03\x04"]; // } // ``` - optional bytes suffix = 6 [(priv.field).cel = { - id: "bytes.suffix", + optional bytes suffix = 6 [(predefined).cel = { + id: "bytes.suffix" expression: "!this.endsWith(rules.suffix) ? 'value does not have suffix %x'.format([rules.suffix]) : ''" }]; @@ -3115,8 +3884,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.contains = "\x02\x03"]; // } // ``` - optional bytes contains = 7 [(priv.field).cel = { - id: "bytes.contains", + optional bytes contains = 7 [(predefined).cel = { + id: "bytes.contains" expression: "!this.contains(rules.contains) ? 'value does not contain %x'.format([rules.contains]) : ''" }]; @@ -3130,8 +3899,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.in = {"\x01\x02", "\x02\x03", "\x03\x04"}]; // } // ``` - repeated bytes in = 8 [(priv.field).cel = { - id: "bytes.in", + repeated bytes in = 8 [(predefined).cel = { + id: "bytes.in" expression: "dyn(rules)['in'].size() > 0 && !(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; @@ -3146,8 +3915,8 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.not_in = {"\x01\x02", "\x02\x03", "\x03\x04"}]; // } // ``` - repeated bytes not_in = 9 [(priv.field).cel = { - id: "bytes.not_in", + repeated bytes not_in = 9 [(predefined).cel = { + id: "bytes.not_in" expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; @@ -3163,10 +3932,18 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.ip = true]; // } // ``` - bool ip = 10 [(priv.field).cel = { - id: "bytes.ip", - expression: "this.size() != 4 && this.size() != 16 ? 'value must be a valid IP address' : ''" - }]; + bool ip = 10 [ + (predefined).cel = { + id: "bytes.ip" + message: "value must be a valid IP address" + expression: "!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16" + }, + (predefined).cel = { + id: "bytes.ip_empty" + message: "value is empty, which is not a valid IP address" + expression: "!rules.ip || this.size() != 0" + } + ]; // `ipv4` ensures that the field `value` is a valid IPv4 address in byte format. // If the field value doesn't meet this constraint, an error message is generated. @@ -3177,10 +3954,18 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.ipv4 = true]; // } // ``` - bool ipv4 = 11 [(priv.field).cel = { - id: "bytes.ipv4", - expression: "this.size() != 4 ? 'value must be a valid IPv4 address' : ''" - }]; + bool ipv4 = 11 [ + (predefined).cel = { + id: "bytes.ipv4" + message: "value must be a valid IPv4 address" + expression: "!rules.ipv4 || this.size() == 0 || this.size() == 4" + }, + (predefined).cel = { + id: "bytes.ipv4_empty" + message: "value is empty, which is not a valid IPv4 address" + expression: "!rules.ipv4 || this.size() != 0" + } + ]; // `ipv6` ensures that the field `value` is a valid IPv6 address in byte format. // If the field value doesn't meet this constraint, an error message is generated. @@ -3190,11 +3975,48 @@ message BytesRules { // optional bytes value = 1 [(buf.validate.field).bytes.ipv6 = true]; // } // ``` - bool ipv6 = 12 [(priv.field).cel = { - id: "bytes.ipv6", - expression: "this.size() != 16 ? 'value must be a valid IPv6 address' : ''" - }]; + bool ipv6 = 12 [ + (predefined).cel = { + id: "bytes.ipv6" + message: "value must be a valid IPv6 address" + expression: "!rules.ipv6 || this.size() == 0 || this.size() == 16" + }, + (predefined).cel = { + id: "bytes.ipv6_empty" + message: "value is empty, which is not a valid IPv6 address" + expression: "!rules.ipv6 || this.size() != 0" + } + ]; } + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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" + // ]; + // } + // ``` + repeated bytes example = 14 [(predefined).cel = { + id: "bytes.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // EnumRules describe the constraints applied to `enum` values. @@ -3214,9 +4036,9 @@ message EnumRules { // MyEnum value = 1 [(buf.validate.field).enum.const = 1]; // } // ``` - optional int32 const = 1 [(priv.field).cel = { - id: "enum.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional int32 const = 1 [(predefined).cel = { + id: "enum.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; // `defined_only` requires the field value to be one of the defined values for @@ -3252,9 +4074,9 @@ message EnumRules { // MyEnum value = 1 [(buf.validate.field).enum = { in: [1, 2]}]; // } // ``` - repeated int32 in = 3 [(priv.field).cel = { - id: "enum.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated int32 in = 3 [(predefined).cel = { + id: "enum.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` requires the field value to be not equal to any of the @@ -3273,10 +4095,43 @@ message EnumRules { // MyEnum value = 1 [(buf.validate.field).enum = { not_in: [1, 2]}]; // } // ``` - repeated int32 not_in = 4 [(priv.field).cel = { - id: "enum.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated int32 not_in = 4 [(predefined).cel = { + id: "enum.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 + // } + // ``` + repeated int32 example = 5 [(predefined).cel = { + id: "enum.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // RepeatedRules describe the constraints applied to `repeated` values. @@ -3292,7 +4147,7 @@ message RepeatedRules { // repeated string value = 1 [(buf.validate.field).repeated.min_items = 2]; // } // ``` - optional uint64 min_items = 1 [(priv.field).cel = { + optional uint64 min_items = 1 [(predefined).cel = { id: "repeated.min_items" expression: "uint(this.size()) < rules.min_items ? 'value must contain at least %d item(s)'.format([rules.min_items]) : ''" }]; @@ -3308,7 +4163,7 @@ message RepeatedRules { // repeated string value = 1 [(buf.validate.field).repeated.max_items = 3]; // } // ``` - optional uint64 max_items = 2 [(priv.field).cel = { + optional uint64 max_items = 2 [(predefined).cel = { id: "repeated.max_items" expression: "uint(this.size()) > rules.max_items ? 'value must contain no more than %s item(s)'.format([rules.max_items]) : ''" }]; @@ -3323,10 +4178,10 @@ message RepeatedRules { // repeated string value = 1 [(buf.validate.field).repeated.unique = true]; // } // ``` - optional bool unique = 3 [(priv.field).cel = { + optional bool unique = 3 [(predefined).cel = { id: "repeated.unique" message: "repeated value must contain unique items" - expression: "this.unique()" + expression: "!rules.unique || this.unique()" }]; // `items` details the constraints to be applied to each item @@ -3345,6 +4200,18 @@ message RepeatedRules { // } // ``` optional FieldConstraints items = 4; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // MapRules describe the constraints applied to `map` values. @@ -3358,7 +4225,7 @@ message MapRules { // map value = 1 [(buf.validate.field).map.min_pairs = 2]; // } // ``` - optional uint64 min_pairs = 1 [(priv.field).cel = { + optional uint64 min_pairs = 1 [(predefined).cel = { id: "map.min_pairs" expression: "uint(this.size()) < rules.min_pairs ? 'map must be at least %d entries'.format([rules.min_pairs]) : ''" }]; @@ -3372,7 +4239,7 @@ message MapRules { // map value = 1 [(buf.validate.field).map.max_pairs = 3]; // } // ``` - optional uint64 max_pairs = 2 [(priv.field).cel = { + optional uint64 max_pairs = 2 [(predefined).cel = { id: "map.max_pairs" expression: "uint(this.size()) > rules.max_pairs ? 'map must be at most %d entries'.format([rules.max_pairs]) : ''" }]; @@ -3408,6 +4275,18 @@ message MapRules { // } // ``` optional FieldConstraints values = 5; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // AnyRules describe constraints applied exclusively to the `google.protobuf.Any` well-known type. @@ -3447,9 +4326,9 @@ message DurationRules { // google.protobuf.Duration value = 1 [(buf.validate.field).duration.const = "5s"]; // } // ``` - optional google.protobuf.Duration const = 2 [(priv.field).cel = { - id: "duration.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional google.protobuf.Duration const = 2 [(predefined).cel = { + id: "duration.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // `lt` stipulates that the field must be less than the specified value of the `google.protobuf.Duration` type, @@ -3462,8 +4341,8 @@ message DurationRules { // google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = "5s"]; // } // ``` - google.protobuf.Duration lt = 3 [(priv.field).cel = { - id: "duration.lt", + google.protobuf.Duration lt = 3 [(predefined).cel = { + id: "duration.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -3479,8 +4358,8 @@ message DurationRules { // google.protobuf.Duration value = 1 [(buf.validate.field).duration.lte = "10s"]; // } // ``` - google.protobuf.Duration lte = 4 [(priv.field).cel = { - id: "duration.lte", + google.protobuf.Duration lte = 4 [(predefined).cel = { + id: "duration.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -3506,32 +4385,32 @@ message DurationRules { // } // ``` google.protobuf.Duration gt = 5 [ - (priv.field).cel = { - id: "duration.gt", + (predefined).cel = { + id: "duration.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "duration.gt_lt", + (predefined).cel = { + id: "duration.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "duration.gt_lt_exclusive", + (predefined).cel = { + id: "duration.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "duration.gt_lte", + (predefined).cel = { + id: "duration.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "duration.gt_lte_exclusive", + (predefined).cel = { + id: "duration.gt_lte_exclusive" expression: "has(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]) : ''" @@ -3557,32 +4436,32 @@ message DurationRules { // } // ``` google.protobuf.Duration gte = 6 [ - (priv.field).cel = { - id: "duration.gte", + (predefined).cel = { + id: "duration.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "duration.gte_lt", + (predefined).cel = { + id: "duration.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "duration.gte_lt_exclusive", + (predefined).cel = { + id: "duration.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "duration.gte_lte", + (predefined).cel = { + id: "duration.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "duration.gte_lte_exclusive", + (predefined).cel = { + id: "duration.gte_lte_exclusive" expression: "has(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]) : ''" @@ -3600,9 +4479,9 @@ message DurationRules { // google.protobuf.Duration value = 1 [(buf.validate.field).duration.in = ["1s", "2s", "3s"]]; // } // ``` - repeated google.protobuf.Duration in = 7 [(priv.field).cel = { - id: "duration.in", - expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''", + repeated google.protobuf.Duration in = 7 [(predefined).cel = { + id: "duration.in" + expression: "!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''" }]; // `not_in` denotes that the field must not be equal to @@ -3616,10 +4495,39 @@ message DurationRules { // google.protobuf.Duration value = 1 [(buf.validate.field).duration.not_in = ["1s", "2s", "3s"]]; // } // ``` - repeated google.protobuf.Duration not_in = 8 [(priv.field).cel = { - id: "duration.not_in", - expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''", + repeated google.protobuf.Duration not_in = 8 [(predefined).cel = { + id: "duration.not_in" + expression: "this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 }, + // ]; + // } + // ``` + repeated google.protobuf.Duration example = 9 [(predefined).cel = { + id: "duration.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; } // TimestampRules describe the constraints applied exclusively to the `google.protobuf.Timestamp` well-known type. @@ -3632,9 +4540,9 @@ message TimestampRules { // google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.const = {seconds: 1727998800}]; // } // ``` - optional google.protobuf.Timestamp const = 2 [(priv.field).cel = { - id: "timestamp.const", - expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''", + optional google.protobuf.Timestamp const = 2 [(predefined).cel = { + id: "timestamp.const" + expression: "this != rules.const ? 'value must equal %s'.format([rules.const]) : ''" }]; oneof less_than { // 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. @@ -3645,8 +4553,8 @@ message TimestampRules { // google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = { seconds: 259200 }]; // } // ``` - google.protobuf.Timestamp lt = 3 [(priv.field).cel = { - id: "timestamp.lt", + google.protobuf.Timestamp lt = 3 [(predefined).cel = { + id: "timestamp.lt" expression: "!has(rules.gte) && !has(rules.gt) && this >= rules.lt" "? 'value must be less than %s'.format([rules.lt]) : ''" @@ -3660,8 +4568,8 @@ message TimestampRules { // google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.lte = { seconds: 1678867200 }]; // } // ``` - google.protobuf.Timestamp lte = 4 [(priv.field).cel = { - id: "timestamp.lte", + google.protobuf.Timestamp lte = 4 [(predefined).cel = { + id: "timestamp.lte" expression: "!has(rules.gte) && !has(rules.gt) && this > rules.lte" "? 'value must be less than or equal to %s'.format([rules.lte]) : ''" @@ -3675,9 +4583,9 @@ message TimestampRules { // google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.lt_now = true]; // } // ``` - bool lt_now = 7 [(priv.field).cel = { - id: "timestamp.lt_now", - expression: "this > now ? 'value must be less than now' : ''" + bool lt_now = 7 [(predefined).cel = { + id: "timestamp.lt_now" + expression: "(rules.lt_now && this > now) ? 'value must be less than now' : ''" }]; } oneof greater_than { @@ -3700,32 +4608,32 @@ message TimestampRules { // } // ``` google.protobuf.Timestamp gt = 5 [ - (priv.field).cel = { - id: "timestamp.gt", + (predefined).cel = { + id: "timestamp.gt" expression: "!has(rules.lt) && !has(rules.lte) && this <= rules.gt" "? 'value must be greater than %s'.format([rules.gt]) : ''" }, - (priv.field).cel = { - id: "timestamp.gt_lt", + (predefined).cel = { + id: "timestamp.gt_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "timestamp.gt_lt_exclusive", + (predefined).cel = { + id: "timestamp.gt_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "timestamp.gt_lte", + (predefined).cel = { + id: "timestamp.gt_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "timestamp.gt_lte_exclusive", + (predefined).cel = { + id: "timestamp.gt_lte_exclusive" expression: "has(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]) : ''" @@ -3751,32 +4659,32 @@ message TimestampRules { // } // ``` google.protobuf.Timestamp gte = 6 [ - (priv.field).cel = { - id: "timestamp.gte", + (predefined).cel = { + id: "timestamp.gte" expression: "!has(rules.lt) && !has(rules.lte) && this < rules.gte" "? 'value must be greater than or equal to %s'.format([rules.gte]) : ''" }, - (priv.field).cel = { - id: "timestamp.gte_lt", + (predefined).cel = { + id: "timestamp.gte_lt" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "timestamp.gte_lt_exclusive", + (predefined).cel = { + id: "timestamp.gte_lt_exclusive" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "timestamp.gte_lte", + (predefined).cel = { + id: "timestamp.gte_lte" expression: "has(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]) : ''" }, - (priv.field).cel = { - id: "timestamp.gte_lte_exclusive", + (predefined).cel = { + id: "timestamp.gte_lte_exclusive" expression: "has(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]) : ''" @@ -3791,9 +4699,9 @@ message TimestampRules { // google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.gt_now = true]; // } // ``` - bool gt_now = 8 [(priv.field).cel = { - id: "timestamp.gt_now", - expression: "this < now ? 'value must be greater than now' : ''" + bool gt_now = 8 [(predefined).cel = { + id: "timestamp.gt_now" + expression: "(rules.gt_now && this < now) ? 'value must be greater than now' : ''" }]; } @@ -3805,8 +4713,75 @@ message TimestampRules { // google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.within = {seconds: 3600}]; // } // ``` - optional google.protobuf.Duration within = 9 [(priv.field).cel = { - id: "timestamp.within", + optional google.protobuf.Duration within = 9 [(predefined).cel = { + id: "timestamp.within" expression: "this < now-rules.within || this > now+rules.within ? 'value must be within %s of now'.format([rules.within]) : ''" }]; + + // `example` specifies values that the field may have. These values SHOULD + // conform to other constraints. `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 }, + // ]; + // } + // ``` + + repeated google.protobuf.Timestamp example = 10 [(predefined).cel = { + id: "timestamp.example" + expression: "true" + }]; + + // Extension fields in this range that have the (buf.validate.predefined) + // option set will be treated as predefined field constraints that can then be + // set on the field options of other fields to apply field constraints. + // Extension numbers 1000 to 99999 are reserved for extension numbers that are + // defined in the [Protobuf Global Extension Registry][1]. Extension numbers + // above this range are reserved for extension numbers that are not explicitly + // assigned. For rules defined in publicly-consumed schemas, use of extensions + // above 99999 is discouraged due to the risk of conflicts. + // + // [1]: https://github.com/protocolbuffers/protobuf/blob/main/docs/options.md + extensions 1000 to max; +} + +// `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 `Constraint` validation rules. +// Each individual violation is represented by a `Violation` message. +message Violations { + // `violations` is a repeated field that contains all the `Violation` messages corresponding to the violations detected. + repeated Violation violations = 1; +} + +// `Violation` represents a single instance where a validation rule, expressed +// as a `Constraint`, was not met. It provides information about the field that +// caused the violation, the specific constraint that wasn't fulfilled, and a +// human-readable error message. +// +// ```json +// { +// "fieldPath": "bar", +// "constraintId": "foo.bar", +// "message": "bar must be greater than 0" +// } +// ``` +message Violation { + // `field_path` is a machine-readable identifier that points to the specific field that failed the 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. + optional string field_path = 1; + + // `constraint_id` is the unique identifier of the `Constraint` that was not fulfilled. + // This is the same `id` that was specified in the `Constraint` message, allowing easy tracing of which rule was violated. + optional string constraint_id = 2; + + // `message` is a human-readable error message that describes the nature of the violation. + // This can be the default error message from the violated `Constraint`, or it can be a custom message that gives more context about the violation. + optional string message = 3; + + // `for_key` indicates whether the violation was caused by a map key, rather than a value. + optional bool for_key = 4; } diff --git a/protos/cerbos/audit/v1/audit.proto b/protos/cerbos/audit/v1/audit.proto index 1927598..73cc214 100644 --- a/protos/cerbos/audit/v1/audit.proto +++ b/protos/cerbos/audit/v1/audit.proto @@ -39,11 +39,11 @@ message DecisionLogEntry { google.protobuf.Timestamp timestamp = 2; Peer peer = 3; // Deprecated. Use method.check_resources.inputs instead. - repeated cerbos.engine.v1.CheckInput inputs = 4; + repeated cerbos.engine.v1.CheckInput inputs = 4 [deprecated = true]; // Deprecated. Use method.check_resources.outputs instead. - repeated cerbos.engine.v1.CheckOutput outputs = 5; + repeated cerbos.engine.v1.CheckOutput outputs = 5 [deprecated = true]; // Deprecated. Use method.check_resources.error instead. - string error = 6; + string error = 6 [deprecated = true]; oneof method { CheckResources check_resources = 7; PlanResources plan_resources = 8; diff --git a/protos/cerbos/engine/v1/engine.proto b/protos/cerbos/engine/v1/engine.proto index f56a5db..6ae6411 100644 --- a/protos/cerbos/engine/v1/engine.proto +++ b/protos/cerbos/engine/v1/engine.proto @@ -306,6 +306,7 @@ message Trace { KIND_VARIABLE = 12; KIND_VARIABLES = 13; KIND_OUTPUT = 14; + KIND_ROLE_POLICY_SCOPE = 15; } message Variable { @@ -325,6 +326,7 @@ message Trace { string scope = 9; Variable variable = 10; string output = 11; + string role_policy_scope = 12; } } @@ -352,12 +354,16 @@ message Request { string id = 1; repeated string roles = 2; map attr = 3; + string policy_version = 4; + string scope = 5; } message Resource { string kind = 1; string id = 2; map attr = 3; + string policy_version = 4; + string scope = 5; } Principal principal = 1; diff --git a/protos/cerbos/policy/v1/policy.proto b/protos/cerbos/policy/v1/policy.proto index 2d4a49b..84ebfb7 100644 --- a/protos/cerbos/policy/v1/policy.proto +++ b/protos/cerbos/policy/v1/policy.proto @@ -16,6 +16,22 @@ option csharp_namespace = "Cerbos.Api.V1.Policy"; option go_package = "github.com/cerbos/cerbos/api/genpb/cerbos/policy/v1;policyv1"; option java_package = "dev.cerbos.api.v1.policy"; +enum Kind { + KIND_UNSPECIFIED = 0; + KIND_DERIVED_ROLES = 1; + KIND_EXPORT_VARIABLES = 2; + KIND_PRINCIPAL = 3; + KIND_RESOURCE = 4; + KIND_ROLE_POLICY = 5; + KIND_EXPORT_CONSTANTS = 6; +} + +enum ScopePermissions { + SCOPE_PERMISSIONS_UNSPECIFIED = 0; + SCOPE_PERMISSIONS_OVERRIDE_PARENT = 1; + SCOPE_PERMISSIONS_REQUIRE_PARENTAL_CONSENT_FOR_ALLOWS = 2; +} + message Policy { string api_version = 1 [ (buf.validate.field).required = true, @@ -30,6 +46,8 @@ message Policy { PrincipalPolicy principal_policy = 6; DerivedRoles derived_roles = 7; ExportVariables export_variables = 10; + RolePolicy role_policy = 11; + ExportConstants export_constants = 12; } map variables = 8 [deprecated = true]; string json_schema = 9 [json_name = "$schema"]; @@ -67,6 +85,8 @@ message ResourcePolicy { string scope = 5 [(buf.validate.field).string.pattern = "^([[:alnum:]][[:word:]\\-]*(\\.[[:word:]\\-]*)*)*$"]; Schemas schemas = 6; Variables variables = 7; + ScopePermissions scope_permissions = 8; + Constants constants = 9; } message ResourceRule { @@ -106,6 +126,47 @@ message ResourceRule { Output output = 7; } +message RolePolicy { + oneof policy_type { + option (buf.validate.oneof).required = true; + string role = 1 [(buf.validate.field).string = {min_len: 1}]; + } + repeated string parent_roles = 5 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; + string scope = 2 [(buf.validate.field).string.pattern = "^([[:alnum:]][[:word:]\\-]*(\\.[[:word:]\\-]*)*)*$"]; + repeated RoleRule rules = 3; + ScopePermissions scope_permissions = 4 [ + (buf.validate.field).enum = { + in: [ + 1, + 2 + ] + }, + (buf.validate.field).required = true + ]; +} + +message RoleRule { + string resource = 1 [ + (buf.validate.field).required = true, + (buf.validate.field).string = {min_len: 1} + ]; + repeated string allow_actions = 2 [ + (buf.validate.field).repeated = { + min_items: 1 + unique: true + items: { + string: {min_len: 1} + } + }, + (buf.validate.field).required = true + ]; +} + message PrincipalPolicy { string principal = 1 [ (buf.validate.field).required = true, @@ -118,6 +179,8 @@ message PrincipalPolicy { repeated PrincipalRule rules = 3; string scope = 4 [(buf.validate.field).string.pattern = "^([[:alnum:]][[:word:]\\-]*(\\.[[:word:]\\-]*)*)*$"]; Variables variables = 5; + ScopePermissions scope_permissions = 6; + Constants constants = 7; } message PrincipalRule { @@ -163,6 +226,7 @@ message DerivedRoles { (buf.validate.field).required = true ]; Variables variables = 3; + Constants constants = 4; } message RoleDef { @@ -183,6 +247,27 @@ message RoleDef { Condition condition = 3; } +message ExportConstants { + string name = 1 [ + (buf.validate.field).required = true, + (buf.validate.field).string = { + pattern: "^[[:word:]\\-\\.]+$" + min_len: 1 + } + ]; + map definitions = 2; +} + +message Constants { + repeated string import = 1 [(buf.validate.field).repeated = { + unique: true + items: { + string: {pattern: "^[[:word:]\\-\\.]+$"} + } + }]; + map local = 2; +} + message ExportVariables { string name = 1 [ (buf.validate.field).required = true, @@ -269,11 +354,13 @@ message TestFixture { message Principals { map principals = 1; string json_schema = 2 [json_name = "$schema"]; + map principal_groups = 3; } message Resources { map resources = 1; string json_schema = 2 [json_name = "$schema"]; + map resource_groups = 3; } message AuxData { @@ -282,10 +369,39 @@ message TestFixture { } } +message TestFixtureGroup { + message Principals { + repeated string principals = 1 [ + (buf.validate.field).repeated = { + min_items: 1 + unique: true + items: { + string: {min_len: 1} + } + }, + (buf.validate.field).required = true + ]; + } + + message Resources { + repeated string resources = 1 [ + (buf.validate.field).repeated = { + min_items: 1 + unique: true + items: { + string: {min_len: 1} + } + }, + (buf.validate.field).required = true + ]; + } +} + message TestOptions { google.protobuf.Timestamp now = 1; bool lenient_scope_search = 2; map globals = 3; + string default_policy_version = 4; } message TestSuite { @@ -305,30 +421,24 @@ message TestSuite { map aux_data = 8; TestOptions options = 9; string json_schema = 10 [json_name = "$schema"]; + map principal_groups = 11; + map resource_groups = 12; } message TestTable { message Input { - repeated string principals = 1 [ - (buf.validate.field).repeated = { - min_items: 1 - unique: true - items: { - string: {min_len: 1} - } - }, - (buf.validate.field).required = true - ]; - repeated string resources = 2 [ - (buf.validate.field).repeated = { - min_items: 1 - unique: true - items: { - string: {min_len: 1} - } - }, - (buf.validate.field).required = true - ]; + repeated string principals = 1 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; + repeated string resources = 2 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; repeated string actions = 3 [ (buf.validate.field).repeated = { min_items: 1 @@ -340,6 +450,30 @@ message TestTable { (buf.validate.field).required = true ]; string aux_data = 4; + repeated string principal_groups = 5 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; + repeated string resource_groups = 6 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; + + option (buf.validate.message).cel = { + id: "input.principals" + message: "principals or principalGroups must be present" + expression: "size(this.principals) > 0 || size(this.principal_groups) > 0" + }; + + option (buf.validate.message).cel = { + id: "input.resources" + message: "resources or resourceGroups must be present" + expression: "size(this.resources) > 0 || size(this.resource_groups) > 0" + }; } message OutputExpectations { @@ -354,14 +488,8 @@ message TestTable { } message Expectation { - string principal = 1 [ - (buf.validate.field).required = true, - (buf.validate.field).string.min_len = 1 - ]; - string resource = 2 [ - (buf.validate.field).required = true, - (buf.validate.field).string.min_len = 1 - ]; + string principal = 1; + string resource = 2; map actions = 3 [ (buf.validate.field).map = { min_pairs: 1 @@ -380,6 +508,54 @@ message TestTable { (buf.validate.field).required = true ]; repeated OutputExpectations outputs = 4; + repeated string principals = 5 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; + repeated string resources = 6 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; + repeated string principal_groups = 7 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; + repeated string resource_groups = 8 [(buf.validate.field).repeated = { + unique: true + items: { + string: {min_len: 1} + } + }]; + + option (buf.validate.message).cel = { + id: "expectation.principals" + message: "principal, principals, or principalGroups must be present" + expression: "this.principal != '' || size(this.principals) > 0 || size(this.principal_groups) > 0" + }; + + option (buf.validate.message).cel = { + id: "expectation.principal_nand_principals" + message: "principal and principals may not both be present" + expression: "!(this.principal != '' && size(this.principals) > 0)" + }; + + option (buf.validate.message).cel = { + id: "expectation.resources" + message: "resource, resources, or resourceGroups must be present" + expression: "this.resource != '' || size(this.resources) > 0 || size(this.resource_groups) > 0" + }; + + option (buf.validate.message).cel = { + id: "expectation.resource_nand_resources" + message: "resource and resources may not both be present" + expression: "!(this.resource != '' && size(this.resources) > 0)" + }; } string name = 1 [ @@ -471,6 +647,7 @@ message TestResults { string error = 5; repeated TestCase test_cases = 6; string description = 7; + string skip_reason = 8; } message TestCase { @@ -499,6 +676,7 @@ message TestResults { Failure failure = 2; string error = 3; Success success = 5; + string skip_reason = 6; } repeated cerbos.engine.v1.Trace engine_trace = 4; } diff --git a/protos/cerbos/response/v1/response.proto b/protos/cerbos/response/v1/response.proto index 6cf787b..322329b 100644 --- a/protos/cerbos/response/v1/response.proto +++ b/protos/cerbos/response/v1/response.proto @@ -11,6 +11,7 @@ import "cerbos/engine/v1/engine.proto"; import "cerbos/policy/v1/policy.proto"; import "cerbos/schema/v1/schema.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/struct.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; option csharp_namespace = "Cerbos.Api.V1.Response"; @@ -445,6 +446,17 @@ message InspectPoliciesResponse { json_schema: {description: "Inspect policies response"} }; + message Attribute { + enum Kind { + KIND_UNSPECIFIED = 0; + KIND_PRINCIPAL_ATTRIBUTE = 1; + KIND_RESOURCE_ATTRIBUTE = 2; + } + + Kind kind = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Kind of the attribute being referenced."}]; + string name = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Name of the attribute being referenced."}]; + } + message DerivedRole { enum Kind { KIND_UNSPECIFIED = 0; @@ -458,6 +470,23 @@ message InspectPoliciesResponse { string source = 3 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Source of the derived role defined in the policy."}]; } + message Constant { + enum Kind { + KIND_UNSPECIFIED = 0; + KIND_EXPORTED = 1; + KIND_IMPORTED = 2; + KIND_LOCAL = 3; + KIND_UNDEFINED = 4; + KIND_UNKNOWN = 5; + } + + string name = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Constant name defined in the policy."}]; + google.protobuf.Value value = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Raw value of the constant defined in the policy."}]; + Kind kind = 3 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Kind of the constant defined in the policy."}]; + string source = 4 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Source of the constant defined in the policy. Only exists if the kind is imported."}]; + bool used = 5 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Whether the constant is used in a condition."}]; + } + message Variable { enum Kind { KIND_UNSPECIFIED = 0; @@ -480,6 +509,8 @@ message InspectPoliciesResponse { repeated Variable variables = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Variables referenced in the policy."}]; string policy_id = 3 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "For blob, disk, and git stores policy ID is the file name. For other stores it is ../."}]; repeated DerivedRole derived_roles = 4 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Derived roles referenced in the policy."}]; + repeated Attribute attributes = 5 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Attributes referenced in the policy."}]; + repeated Constant constants = 6 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "Constants referenced in the policy."}]; } map results = 1; diff --git a/protos/google/api/annotations.proto b/protos/google/api/annotations.proto index efdab3d..84c4816 100644 --- a/protos/google/api/annotations.proto +++ b/protos/google/api/annotations.proto @@ -1,4 +1,4 @@ -// Copyright 2015 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/api/expr/v1alpha1/checked.proto b/protos/google/api/expr/v1alpha1/checked.proto index 930dc4f..c684934 100644 --- a/protos/google/api/expr/v1alpha1/checked.proto +++ b/protos/google/api/expr/v1alpha1/checked.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/google/api/expr/v1alpha1/syntax.proto b/protos/google/api/expr/v1alpha1/syntax.proto index 8219ba6..7b6668d 100644 --- a/protos/google/api/expr/v1alpha1/syntax.proto +++ b/protos/google/api/expr/v1alpha1/syntax.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -44,21 +44,24 @@ message ParsedExpr { // operators with the exception of the '.' operator are modelled as function // calls. This makes it easy to represent new operators into the existing AST. // -// All references within expressions must resolve to a [Decl][google.api.expr.v1alpha1.Decl] provided at -// type-check for an expression to be valid. A reference may either be a bare -// identifier `name` or a qualified identifier `google.api.name`. References -// may either refer to a value or a function declaration. +// All references within expressions must resolve to a +// [Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an +// expression to be valid. A reference may either be a bare identifier `name` or +// a qualified identifier `google.api.name`. References may either refer to a +// value or a function declaration. // // For example, the expression `google.api.name.startsWith('expr')` references -// the declaration `google.api.name` within a [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and -// the function declaration `startsWith`. +// the declaration `google.api.name` within a +// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the +// function declaration `startsWith`. message Expr { // An identifier expression. e.g. `request`. message Ident { // Required. Holds a single, unqualified identifier, possibly preceded by a // '.'. // - // Qualified names are represented by the [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression. + // Qualified names are represented by the + // [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression. string name = 1; } @@ -181,11 +184,49 @@ message Expr { // messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the // macro tests whether the property is set to its default. For map and struct // types, the macro tests whether the property `x` is defined on `m`. + // + // Comprehensions for the standard environment macros evaluation can be best + // visualized as the following pseudocode: + // + // ``` + // let `accu_var` = `accu_init` + // for (let `iter_var` in `iter_range`) { + // if (!`loop_condition`) { + // break + // } + // `accu_var` = `loop_step` + // } + // return `result` + // ``` + // + // Comprehensions for the optional V2 macros which support map-to-map + // translation differ slightly from the standard environment macros in that + // they expose both the key or index in addition to the value for each list + // or map entry: + // + // ``` + // let `accu_var` = `accu_init` + // for (let `iter_var`, `iter_var2` in `iter_range`) { + // if (!`loop_condition`) { + // break + // } + // `accu_var` = `loop_step` + // } + // return `result` + // ``` message Comprehension { - // The name of the iteration variable. + // The name of the first iteration variable. + // When the iter_range is a list, this variable is the list element. + // When the iter_range is a map, this variable is the map entry key. string iter_var = 1; - // The range over which var iterates. + // The name of the second iteration variable, empty if not set. + // When the iter_range is a list, this variable is the integer index. + // When the iter_range is a map, this variable is the map entry value. + // This field is only set for comprehension v2 macros. + string iter_var2 = 8; + + // The range over which the comprehension iterates. Expr iter_range = 2; // The name of the variable used for accumulation of the result. @@ -194,13 +235,13 @@ message Expr { // The initial value of the accumulator. Expr accu_init = 4; - // An expression which can contain iter_var and accu_var. + // An expression which can contain iter_var, iter_var2, and accu_var. // // Returns false when the result has been computed and may be used as // a hint to short-circuit the remainder of the comprehension. Expr loop_condition = 5; - // An expression which can contain iter_var and accu_var. + // An expression which can contain iter_var, iter_var2, and accu_var. // // Computes the next value of accu_var. Expr loop_step = 6; @@ -250,7 +291,8 @@ message Expr { // primitives. // // Lists and structs are not included as constants as these aggregate types may -// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require evaluation and are thus not constant. +// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require +// evaluation and are thus not constant. // // Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`, // `true`, `null`. @@ -292,6 +334,50 @@ message Constant { // Source information collected at parse time. message SourceInfo { + // An extension that was requested for the source expression. + message Extension { + // Version + message Version { + // Major version changes indicate different required support level from + // the required components. + int64 major = 1; + + // Minor version changes must not change the observed behavior from + // existing implementations, but may be provided informationally. + int64 minor = 2; + } + + // CEL component specifier. + enum Component { + // Unspecified, default. + COMPONENT_UNSPECIFIED = 0; + + // Parser. Converts a CEL string to an AST. + COMPONENT_PARSER = 1; + + // Type checker. Checks that references in an AST are defined and types + // agree. + COMPONENT_TYPE_CHECKER = 2; + + // Runtime. Evaluates a parsed and optionally checked CEL AST against a + // context. + COMPONENT_RUNTIME = 3; + } + + // Identifier for the extension. Example: constant_folding + string id = 1; + + // If set, the listed components must understand the extension for the + // expression to evaluate correctly. + // + // This field has set semantics, repeated values should be deduplicated. + repeated Component affected_components = 2; + + // Version info. May be skipped if it isn't meaningful for the extension. + // (for example constant_folding might always be v0.0). + Version version = 3; + } + // The syntax version of the source, e.g. `cel1`. string syntax_version = 1; @@ -323,6 +409,15 @@ message SourceInfo { // in the map corresponds to the expression id of the expanded macro, and the // value is the call `Expr` that was replaced. map macro_calls = 5; + + // A list of tags for extensions that were used while parsing or type checking + // the source expression. For example, optimizations that require special + // runtime support may be specified. + // + // These are used to check feature support between components in separate + // implementations. This can be used to either skip redundant work or + // report an error if the extension is unsupported. + repeated Extension extensions = 6; } // A specific position in source. diff --git a/protos/google/api/field_behavior.proto b/protos/google/api/field_behavior.proto index 344cb0b..2865ba0 100644 --- a/protos/google/api/field_behavior.proto +++ b/protos/google/api/field_behavior.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ extend google.protobuf.FieldOptions { // google.protobuf.Timestamp expire_time = 1 // [(google.api.field_behavior) = OUTPUT_ONLY, // (google.api.field_behavior) = IMMUTABLE]; - repeated google.api.FieldBehavior field_behavior = 1052; + repeated google.api.FieldBehavior field_behavior = 1052 [packed = false]; } // An indicator of the behavior of a given field (for example, that a field diff --git a/protos/google/api/http.proto b/protos/google/api/http.proto index 31d867a..e327037 100644 --- a/protos/google/api/http.proto +++ b/protos/google/api/http.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,7 +41,7 @@ message Http { bool fully_decode_reserved_expansion = 2; } -// # gRPC Transcoding +// gRPC Transcoding // // gRPC Transcoding is a feature for mapping between a gRPC method and one or // more HTTP REST endpoints. It allows developers to build a single API service @@ -82,9 +82,8 @@ message Http { // // This enables an HTTP REST to gRPC mapping as below: // -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` +// - HTTP: `GET /v1/messages/123456` +// - gRPC: `GetMessage(name: "messages/123456")` // // Any fields in the request message which are not bound by the path template // automatically become HTTP query parameters if there is no HTTP request body. @@ -108,11 +107,9 @@ message Http { // // This enables a HTTP JSON to RPC mapping as below: // -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | -// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: -// "foo"))` +// - HTTP: `GET /v1/messages/123456?revision=2&sub.subfield=foo` +// - gRPC: `GetMessage(message_id: "123456" revision: 2 sub: +// SubMessage(subfield: "foo"))` // // Note that fields which are mapped to URL query parameters must have a // primitive type or a repeated primitive type or a non-repeated message type. @@ -142,10 +139,8 @@ message Http { // representation of the JSON in the request body is determined by // protos JSON encoding: // -// HTTP | gRPC -// -----|----- -// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" message { text: "Hi!" })` +// - HTTP: `PATCH /v1/messages/123456 { "text": "Hi!" }` +// - gRPC: `UpdateMessage(message_id: "123456" message { text: "Hi!" })` // // The special name `*` can be used in the body mapping to define that // every field not bound by the path template should be mapped to the @@ -168,10 +163,8 @@ message Http { // // The following HTTP JSON to RPC mapping is enabled: // -// HTTP | gRPC -// -----|----- -// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" text: "Hi!")` +// - HTTP: `PATCH /v1/messages/123456 { "text": "Hi!" }` +// - gRPC: `UpdateMessage(message_id: "123456" text: "Hi!")` // // Note that when using `*` in the body mapping, it is not possible to // have HTTP parameters, as all fields not bound by the path end in @@ -199,13 +192,13 @@ message Http { // // This enables the following two alternative HTTP JSON to RPC mappings: // -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` -// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: -// "123456")` +// - HTTP: `GET /v1/messages/123456` +// - gRPC: `GetMessage(message_id: "123456")` // -// ## Rules for HTTP mapping +// - HTTP: `GET /v1/users/me/messages/123456` +// - gRPC: `GetMessage(user_id: "me" message_id: "123456")` +// +// Rules for HTTP mapping // // 1. Leaf request fields (recursive expansion nested messages in the request // message) are classified into three categories: @@ -224,7 +217,7 @@ message Http { // request body, all // fields are passed via URL path and URL query parameters. // -// ### Path template syntax +// Path template syntax // // Template = "/" Segments [ Verb ] ; // Segments = Segment { "/" Segment } ; @@ -263,7 +256,7 @@ message Http { // Document](https://developers.google.com/discovery/v1/reference/apis) as // `{+var}`. // -// ## Using gRPC API Service Configuration +// Using gRPC API Service Configuration // // gRPC API Service Configuration (service config) is a configuration language // for configuring a gRPC service to become a user-facing product. The @@ -278,15 +271,14 @@ message Http { // specified in the service config will override any matching transcoding // configuration in the proto. // -// Example: +// The following example selects a gRPC method and applies an `HttpRule` to it: // // http: // rules: -// # Selects a gRPC method and applies HttpRule to it. // - selector: example.v1.Messaging.GetMessage // get: /v1/messages/{message_id}/{sub.subfield} // -// ## Special notes +// Special notes // // When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the // proto to JSON conversion must follow the [proto3 diff --git a/protos/google/api/visibility.proto b/protos/google/api/visibility.proto index 8b1f946..bb378bf 100644 --- a/protos/google/api/visibility.proto +++ b/protos/google/api/visibility.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/protos/protoc-gen-openapiv2/options/openapiv2.proto b/protos/protoc-gen-openapiv2/options/openapiv2.proto index 9a17f02..88f9ffd 100644 --- a/protos/protoc-gen-openapiv2/options/openapiv2.proto +++ b/protos/protoc-gen-openapiv2/options/openapiv2.proto @@ -195,7 +195,7 @@ message Parameters { // `HeaderParameter` a HTTP header parameter. // See: https://swagger.io/specification/v2/#parameter-object message HeaderParameter { - // `Type` is a a supported HTTP header type. + // `Type` is a supported HTTP header type. // See https://swagger.io/specification/v2/#parameterType. enum Type { UNKNOWN = 0; diff --git a/src/Sdk/Buf/Validate/Expression.g.cs b/src/Sdk/Buf/Validate/Expression.g.cs deleted file mode 100644 index 5c884b9..0000000 --- a/src/Sdk/Buf/Validate/Expression.g.cs +++ /dev/null @@ -1,892 +0,0 @@ -// -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: buf/validate/expression.proto -// -#pragma warning disable 1591, 0612, 3021, 8981 -#region Designer generated code - -using pb = global::Google.Protobuf; -using pbc = global::Google.Protobuf.Collections; -using pbr = global::Google.Protobuf.Reflection; -using scg = global::System.Collections.Generic; -namespace Buf.Validate { - - /// Holder for reflection information generated from buf/validate/expression.proto - public static partial class ExpressionReflection { - - #region Descriptor - /// File descriptor for buf/validate/expression.proto - public static pbr::FileDescriptor Descriptor { - get { return descriptor; } - } - private static pbr::FileDescriptor descriptor; - - static ExpressionReflection() { - byte[] descriptorData = global::System.Convert.FromBase64String( - string.Concat( - "Ch1idWYvdmFsaWRhdGUvZXhwcmVzc2lvbi5wcm90bxIMYnVmLnZhbGlkYXRl", - "IlYKCkNvbnN0cmFpbnQSDgoCaWQYASABKAlSAmlkEhgKB21lc3NhZ2UYAiAB", - "KAlSB21lc3NhZ2USHgoKZXhwcmVzc2lvbhgDIAEoCVIKZXhwcmVzc2lvbiJF", - "CgpWaW9sYXRpb25zEjcKCnZpb2xhdGlvbnMYASADKAsyFy5idWYudmFsaWRh", - "dGUuVmlvbGF0aW9uUgp2aW9sYXRpb25zIoIBCglWaW9sYXRpb24SHQoKZmll", - "bGRfcGF0aBgBIAEoCVIJZmllbGRQYXRoEiMKDWNvbnN0cmFpbnRfaWQYAiAB", - "KAlSDGNvbnN0cmFpbnRJZBIYCgdtZXNzYWdlGAMgASgJUgdtZXNzYWdlEhcK", - "B2Zvcl9rZXkYBCABKAhSBmZvcktleUJwChJidWlsZC5idWYudmFsaWRhdGVC", - "D0V4cHJlc3Npb25Qcm90b1ABWkdidWYuYnVpbGQvZ2VuL2dvL2J1ZmJ1aWxk", - "L3Byb3RvdmFsaWRhdGUvcHJvdG9jb2xidWZmZXJzL2dvL2J1Zi92YWxpZGF0", - "ZWIGcHJvdG8z")); - descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { }, - new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Constraint), global::Buf.Validate.Constraint.Parser, new[]{ "Id", "Message", "Expression" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Violations), global::Buf.Validate.Violations.Parser, new[]{ "Violations_" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Violation), global::Buf.Validate.Violation.Parser, new[]{ "FieldPath", "ConstraintId", "Message", "ForKey" }, null, null, null, null) - })); - } - #endregion - - } - #region Messages - /// - /// `Constraint` represents a validation rule written in the Common Expression - /// Language (CEL) syntax. Each Constraint includes a unique identifier, an - /// optional error message, and the CEL expression to evaluate. For more - /// information on CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). - /// - /// ```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; - /// } - /// ``` - /// - [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Constraint : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Constraint()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ExpressionReflection.Descriptor.MessageTypes[0]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Constraint() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Constraint(Constraint other) : this() { - id_ = other.id_; - message_ = other.message_; - expression_ = other.expression_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Constraint Clone() { - return new Constraint(this); - } - - /// Field number for the "id" field. - public const int IdFieldNumber = 1; - private string id_ = ""; - /// - /// `id` is a string that serves as a machine-readable name for this Constraint. - /// It should be unique within its scope, which could be either a message or a field. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Id { - get { return id_; } - set { - id_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "message" field. - public const int MessageFieldNumber = 2; - private string message_ = ""; - /// - /// `message` is an optional field that provides a human-readable error message - /// for this Constraint when the CEL expression evaluates to false. If a - /// non-empty message is provided, any strings resulting from the CEL - /// expression evaluation are ignored. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Message { - get { return message_; } - set { - message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "expression" field. - public const int ExpressionFieldNumber = 3; - private string expression_ = ""; - /// - /// `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. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Expression { - get { return expression_; } - set { - expression_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Constraint); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Constraint other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Id != other.Id) return false; - if (Message != other.Message) return false; - if (Expression != other.Expression) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (Id.Length != 0) hash ^= Id.GetHashCode(); - if (Message.Length != 0) hash ^= Message.GetHashCode(); - if (Expression.Length != 0) hash ^= Expression.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (Id.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Id); - } - if (Message.Length != 0) { - output.WriteRawTag(18); - output.WriteString(Message); - } - if (Expression.Length != 0) { - output.WriteRawTag(26); - output.WriteString(Expression); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Id.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Id); - } - if (Message.Length != 0) { - output.WriteRawTag(18); - output.WriteString(Message); - } - if (Expression.Length != 0) { - output.WriteRawTag(26); - output.WriteString(Expression); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (Id.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); - } - if (Message.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); - } - if (Expression.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Expression); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Constraint other) { - if (other == null) { - return; - } - if (other.Id.Length != 0) { - Id = other.Id; - } - if (other.Message.Length != 0) { - Message = other.Message; - } - if (other.Expression.Length != 0) { - Expression = other.Expression; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - Id = input.ReadString(); - break; - } - case 18: { - Message = input.ReadString(); - break; - } - case 26: { - Expression = input.ReadString(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - Id = input.ReadString(); - break; - } - case 18: { - Message = input.ReadString(); - break; - } - case 26: { - Expression = input.ReadString(); - break; - } - } - } - } - #endif - - } - - /// - /// `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 `Constraint` validation rules. - /// Each individual violation is represented by a `Violation` message. - /// - [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Violations : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Violations()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ExpressionReflection.Descriptor.MessageTypes[1]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Violations() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Violations(Violations other) : this() { - violations_ = other.violations_.Clone(); - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Violations Clone() { - return new Violations(this); - } - - /// Field number for the "violations" field. - public const int Violations_FieldNumber = 1; - private static readonly pb::FieldCodec _repeated_violations_codec - = pb::FieldCodec.ForMessage(10, global::Buf.Validate.Violation.Parser); - private readonly pbc::RepeatedField violations_ = new pbc::RepeatedField(); - /// - /// `violations` is a repeated field that contains all the `Violation` messages corresponding to the violations detected. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Violations_ { - get { return violations_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Violations); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Violations other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if(!violations_.Equals(other.violations_)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - hash ^= violations_.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - violations_.WriteTo(output, _repeated_violations_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - violations_.WriteTo(ref output, _repeated_violations_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - size += violations_.CalculateSize(_repeated_violations_codec); - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Violations other) { - if (other == null) { - return; - } - violations_.Add(other.violations_); - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - violations_.AddEntriesFrom(input, _repeated_violations_codec); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - violations_.AddEntriesFrom(ref input, _repeated_violations_codec); - break; - } - } - } - } - #endif - - } - - /// - /// `Violation` represents a single instance where a validation rule, expressed - /// as a `Constraint`, was not met. It provides information about the field that - /// caused the violation, the specific constraint that wasn't fulfilled, and a - /// human-readable error message. - /// - /// ```json - /// { - /// "fieldPath": "bar", - /// "constraintId": "foo.bar", - /// "message": "bar must be greater than 0" - /// } - /// ``` - /// - [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Violation : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Violation()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ExpressionReflection.Descriptor.MessageTypes[2]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Violation() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Violation(Violation other) : this() { - fieldPath_ = other.fieldPath_; - constraintId_ = other.constraintId_; - message_ = other.message_; - forKey_ = other.forKey_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Violation Clone() { - return new Violation(this); - } - - /// Field number for the "field_path" field. - public const int FieldPathFieldNumber = 1; - private string fieldPath_ = ""; - /// - /// `field_path` is a machine-readable identifier that points to the specific field that failed the 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. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string FieldPath { - get { return fieldPath_; } - set { - fieldPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "constraint_id" field. - public const int ConstraintIdFieldNumber = 2; - private string constraintId_ = ""; - /// - /// `constraint_id` is the unique identifier of the `Constraint` that was not fulfilled. - /// This is the same `id` that was specified in the `Constraint` message, allowing easy tracing of which rule was violated. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string ConstraintId { - get { return constraintId_; } - set { - constraintId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "message" field. - public const int MessageFieldNumber = 3; - private string message_ = ""; - /// - /// `message` is a human-readable error message that describes the nature of the violation. - /// This can be the default error message from the violated `Constraint`, or it can be a custom message that gives more context about the violation. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Message { - get { return message_; } - set { - message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "for_key" field. - public const int ForKeyFieldNumber = 4; - private bool forKey_; - /// - /// `for_key` indicates whether the violation was caused by a map key, rather than a value. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool ForKey { - get { return forKey_; } - set { - forKey_ = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Violation); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Violation other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (FieldPath != other.FieldPath) return false; - if (ConstraintId != other.ConstraintId) return false; - if (Message != other.Message) return false; - if (ForKey != other.ForKey) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (FieldPath.Length != 0) hash ^= FieldPath.GetHashCode(); - if (ConstraintId.Length != 0) hash ^= ConstraintId.GetHashCode(); - if (Message.Length != 0) hash ^= Message.GetHashCode(); - if (ForKey != false) hash ^= ForKey.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (FieldPath.Length != 0) { - output.WriteRawTag(10); - output.WriteString(FieldPath); - } - if (ConstraintId.Length != 0) { - output.WriteRawTag(18); - output.WriteString(ConstraintId); - } - if (Message.Length != 0) { - output.WriteRawTag(26); - output.WriteString(Message); - } - if (ForKey != false) { - output.WriteRawTag(32); - output.WriteBool(ForKey); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (FieldPath.Length != 0) { - output.WriteRawTag(10); - output.WriteString(FieldPath); - } - if (ConstraintId.Length != 0) { - output.WriteRawTag(18); - output.WriteString(ConstraintId); - } - if (Message.Length != 0) { - output.WriteRawTag(26); - output.WriteString(Message); - } - if (ForKey != false) { - output.WriteRawTag(32); - output.WriteBool(ForKey); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (FieldPath.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(FieldPath); - } - if (ConstraintId.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(ConstraintId); - } - if (Message.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); - } - if (ForKey != false) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Violation other) { - if (other == null) { - return; - } - if (other.FieldPath.Length != 0) { - FieldPath = other.FieldPath; - } - if (other.ConstraintId.Length != 0) { - ConstraintId = other.ConstraintId; - } - if (other.Message.Length != 0) { - Message = other.Message; - } - if (other.ForKey != false) { - ForKey = other.ForKey; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - FieldPath = input.ReadString(); - break; - } - case 18: { - ConstraintId = input.ReadString(); - break; - } - case 26: { - Message = input.ReadString(); - break; - } - case 32: { - ForKey = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - FieldPath = input.ReadString(); - break; - } - case 18: { - ConstraintId = input.ReadString(); - break; - } - case 26: { - Message = input.ReadString(); - break; - } - case 32: { - ForKey = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - #endregion - -} - -#endregion Designer generated code diff --git a/src/Sdk/Buf/Validate/Priv/Private.g.cs b/src/Sdk/Buf/Validate/Priv/Private.g.cs deleted file mode 100644 index 58f3218..0000000 --- a/src/Sdk/Buf/Validate/Priv/Private.g.cs +++ /dev/null @@ -1,527 +0,0 @@ -// -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: buf/validate/priv/private.proto -// -#pragma warning disable 1591, 0612, 3021, 8981 -#region Designer generated code - -using pb = global::Google.Protobuf; -using pbc = global::Google.Protobuf.Collections; -using pbr = global::Google.Protobuf.Reflection; -using scg = global::System.Collections.Generic; -namespace Buf.Validate.Priv { - - /// Holder for reflection information generated from buf/validate/priv/private.proto - public static partial class PrivateReflection { - - #region Descriptor - /// File descriptor for buf/validate/priv/private.proto - public static pbr::FileDescriptor Descriptor { - get { return descriptor; } - } - private static pbr::FileDescriptor descriptor; - - static PrivateReflection() { - byte[] descriptorData = global::System.Convert.FromBase64String( - string.Concat( - "Ch9idWYvdmFsaWRhdGUvcHJpdi9wcml2YXRlLnByb3RvEhFidWYudmFsaWRh", - "dGUucHJpdhogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8iQwoQ", - "RmllbGRDb25zdHJhaW50cxIvCgNjZWwYASADKAsyHS5idWYudmFsaWRhdGUu", - "cHJpdi5Db25zdHJhaW50UgNjZWwiVgoKQ29uc3RyYWludBIOCgJpZBgBIAEo", - "CVICaWQSGAoHbWVzc2FnZRgCIAEoCVIHbWVzc2FnZRIeCgpleHByZXNzaW9u", - "GAMgASgJUgpleHByZXNzaW9uOlwKBWZpZWxkEh0uZ29vZ2xlLnByb3RvYnVm", - "LkZpZWxkT3B0aW9ucxiICSABKAsyIy5idWYudmFsaWRhdGUucHJpdi5GaWVs", - "ZENvbnN0cmFpbnRzUgVmaWVsZIgBAUJ3ChdidWlsZC5idWYudmFsaWRhdGUu", - "cHJpdkIMUHJpdmF0ZVByb3RvUAFaTGJ1Zi5idWlsZC9nZW4vZ28vYnVmYnVp", - "bGQvcHJvdG92YWxpZGF0ZS9wcm90b2NvbGJ1ZmZlcnMvZ28vYnVmL3ZhbGlk", - "YXRlL3ByaXZiBnByb3RvMw==")); - descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(null, new pb::Extension[] { PrivateExtensions.Field }, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Priv.FieldConstraints), global::Buf.Validate.Priv.FieldConstraints.Parser, new[]{ "Cel" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Priv.Constraint), global::Buf.Validate.Priv.Constraint.Parser, new[]{ "Id", "Message", "Expression" }, null, null, null, null) - })); - } - #endregion - - } - /// Holder for extension identifiers generated from the top level of buf/validate/priv/private.proto - public static partial class PrivateExtensions { - /// - /// Do not use. Internal to protovalidate library - /// - public static readonly pb::Extension Field = - new pb::Extension(1160, pb::FieldCodec.ForMessage(9282, global::Buf.Validate.Priv.FieldConstraints.Parser)); - } - - #region Messages - /// - /// Do not use. Internal to protovalidate library - /// - [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class FieldConstraints : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FieldConstraints()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.Priv.PrivateReflection.Descriptor.MessageTypes[0]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldConstraints() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldConstraints(FieldConstraints other) : this() { - cel_ = other.cel_.Clone(); - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldConstraints Clone() { - return new FieldConstraints(this); - } - - /// Field number for the "cel" field. - public const int CelFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_cel_codec - = pb::FieldCodec.ForMessage(10, global::Buf.Validate.Priv.Constraint.Parser); - private readonly pbc::RepeatedField cel_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Cel { - get { return cel_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as FieldConstraints); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(FieldConstraints other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if(!cel_.Equals(other.cel_)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - hash ^= cel_.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - cel_.WriteTo(output, _repeated_cel_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - cel_.WriteTo(ref output, _repeated_cel_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - size += cel_.CalculateSize(_repeated_cel_codec); - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(FieldConstraints other) { - if (other == null) { - return; - } - cel_.Add(other.cel_); - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - cel_.AddEntriesFrom(input, _repeated_cel_codec); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - cel_.AddEntriesFrom(ref input, _repeated_cel_codec); - break; - } - } - } - } - #endif - - } - - /// - /// Do not use. Internal to protovalidate library - /// - [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Constraint : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Constraint()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.Priv.PrivateReflection.Descriptor.MessageTypes[1]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Constraint() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Constraint(Constraint other) : this() { - id_ = other.id_; - message_ = other.message_; - expression_ = other.expression_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Constraint Clone() { - return new Constraint(this); - } - - /// Field number for the "id" field. - public const int IdFieldNumber = 1; - private string id_ = ""; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Id { - get { return id_; } - set { - id_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "message" field. - public const int MessageFieldNumber = 2; - private string message_ = ""; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Message { - get { return message_; } - set { - message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - /// Field number for the "expression" field. - public const int ExpressionFieldNumber = 3; - private string expression_ = ""; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Expression { - get { return expression_; } - set { - expression_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Constraint); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Constraint other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Id != other.Id) return false; - if (Message != other.Message) return false; - if (Expression != other.Expression) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (Id.Length != 0) hash ^= Id.GetHashCode(); - if (Message.Length != 0) hash ^= Message.GetHashCode(); - if (Expression.Length != 0) hash ^= Expression.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (Id.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Id); - } - if (Message.Length != 0) { - output.WriteRawTag(18); - output.WriteString(Message); - } - if (Expression.Length != 0) { - output.WriteRawTag(26); - output.WriteString(Expression); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Id.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Id); - } - if (Message.Length != 0) { - output.WriteRawTag(18); - output.WriteString(Message); - } - if (Expression.Length != 0) { - output.WriteRawTag(26); - output.WriteString(Expression); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (Id.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); - } - if (Message.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); - } - if (Expression.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Expression); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Constraint other) { - if (other == null) { - return; - } - if (other.Id.Length != 0) { - Id = other.Id; - } - if (other.Message.Length != 0) { - Message = other.Message; - } - if (other.Expression.Length != 0) { - Expression = other.Expression; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - Id = input.ReadString(); - break; - } - case 18: { - Message = input.ReadString(); - break; - } - case 26: { - Expression = input.ReadString(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - Id = input.ReadString(); - break; - } - case 18: { - Message = input.ReadString(); - break; - } - case 26: { - Expression = input.ReadString(); - break; - } - } - } - } - #endif - - } - - #endregion - -} - -#endregion Designer generated code diff --git a/src/Sdk/Buf/Validate/Validate.g.cs b/src/Sdk/Buf/Validate/Validate.g.cs index 84c5bcd..72885d4 100644 --- a/src/Sdk/Buf/Validate/Validate.g.cs +++ b/src/Sdk/Buf/Validate/Validate.g.cs @@ -24,1128 +24,1228 @@ public static partial class ValidateReflection { static ValidateReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZRod", - "YnVmL3ZhbGlkYXRlL2V4cHJlc3Npb24ucHJvdG8aH2J1Zi92YWxpZGF0ZS9w", - "cml2L3ByaXZhdGUucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9y", - "LnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aH2dvb2ds", - "ZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8ibgoSTWVzc2FnZUNvbnN0cmFp", - "bnRzEh8KCGRpc2FibGVkGAEgASgISABSCGRpc2FibGVkiAEBEioKA2NlbBgD", - "IAMoCzIYLmJ1Zi52YWxpZGF0ZS5Db25zdHJhaW50UgNjZWxCCwoJX2Rpc2Fi", - "bGVkIkAKEE9uZW9mQ29uc3RyYWludHMSHwoIcmVxdWlyZWQYASABKAhIAFII", - "cmVxdWlyZWSIAQFCCwoJX3JlcXVpcmVkIvUJChBGaWVsZENvbnN0cmFpbnRz", - "EioKA2NlbBgXIAMoCzIYLmJ1Zi52YWxpZGF0ZS5Db25zdHJhaW50UgNjZWwS", - "GAoHc2tpcHBlZBgYIAEoCFIHc2tpcHBlZBIaCghyZXF1aXJlZBgZIAEoCFII", - "cmVxdWlyZWQSIQoMaWdub3JlX2VtcHR5GBogASgIUgtpZ25vcmVFbXB0eRIw", - "CgVmbG9hdBgBIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GbG9hdFJ1bGVzSABSBWZs", - "b2F0EjMKBmRvdWJsZRgCIAEoCzIZLmJ1Zi52YWxpZGF0ZS5Eb3VibGVSdWxl", - "c0gAUgZkb3VibGUSMAoFaW50MzIYAyABKAsyGC5idWYudmFsaWRhdGUuSW50", - "MzJSdWxlc0gAUgVpbnQzMhIwCgVpbnQ2NBgEIAEoCzIYLmJ1Zi52YWxpZGF0", - "ZS5JbnQ2NFJ1bGVzSABSBWludDY0EjMKBnVpbnQzMhgFIAEoCzIZLmJ1Zi52", - "YWxpZGF0ZS5VSW50MzJSdWxlc0gAUgZ1aW50MzISMwoGdWludDY0GAYgASgL", - "MhkuYnVmLnZhbGlkYXRlLlVJbnQ2NFJ1bGVzSABSBnVpbnQ2NBIzCgZzaW50", - "MzIYByABKAsyGS5idWYudmFsaWRhdGUuU0ludDMyUnVsZXNIAFIGc2ludDMy", - "EjMKBnNpbnQ2NBgIIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TSW50NjRSdWxlc0gA", - "UgZzaW50NjQSNgoHZml4ZWQzMhgJIAEoCzIaLmJ1Zi52YWxpZGF0ZS5GaXhl", - "ZDMyUnVsZXNIAFIHZml4ZWQzMhI2CgdmaXhlZDY0GAogASgLMhouYnVmLnZh", - "bGlkYXRlLkZpeGVkNjRSdWxlc0gAUgdmaXhlZDY0EjkKCHNmaXhlZDMyGAsg", - "ASgLMhsuYnVmLnZhbGlkYXRlLlNGaXhlZDMyUnVsZXNIAFIIc2ZpeGVkMzIS", - "OQoIc2ZpeGVkNjQYDCABKAsyGy5idWYudmFsaWRhdGUuU0ZpeGVkNjRSdWxl", - "c0gAUghzZml4ZWQ2NBItCgRib29sGA0gASgLMhcuYnVmLnZhbGlkYXRlLkJv", - "b2xSdWxlc0gAUgRib29sEjMKBnN0cmluZxgOIAEoCzIZLmJ1Zi52YWxpZGF0", - "ZS5TdHJpbmdSdWxlc0gAUgZzdHJpbmcSMAoFYnl0ZXMYDyABKAsyGC5idWYu", - "dmFsaWRhdGUuQnl0ZXNSdWxlc0gAUgVieXRlcxItCgRlbnVtGBAgASgLMhcu", - "YnVmLnZhbGlkYXRlLkVudW1SdWxlc0gAUgRlbnVtEjkKCHJlcGVhdGVkGBIg", - "ASgLMhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXNIAFIIcmVwZWF0ZWQS", - "KgoDbWFwGBMgASgLMhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzSABSA21hcBIq", - "CgNhbnkYFCABKAsyFi5idWYudmFsaWRhdGUuQW55UnVsZXNIAFIDYW55EjkK", - "CGR1cmF0aW9uGBUgASgLMhsuYnVmLnZhbGlkYXRlLkR1cmF0aW9uUnVsZXNI", - "AFIIZHVyYXRpb24SPAoJdGltZXN0YW1wGBYgASgLMhwuYnVmLnZhbGlkYXRl", - "LlRpbWVzdGFtcFJ1bGVzSABSCXRpbWVzdGFtcEIGCgR0eXBlIqIXCgpGbG9h", - "dFJ1bGVzEnUKBWNvbnN0GAEgASgCQlrCSFcKVQoLZmxvYXQuY29uc3QaRnRo", - "aXMgIT0gcnVsZXMuY29uc3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9y", - "bWF0KFtydWxlcy5jb25zdF0pIDogJydIAlIFY29uc3SIAQESowEKAmx0GAIg", - "ASgCQpABwkiMAQqJAQoIZmxvYXQubHQafSFoYXMocnVsZXMuZ3RlKSAmJiAh", - "aGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVs", - "ZXMubHQpPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChb", - "cnVsZXMubHRdKSA6ICcnSABSAmx0ErQBCgNsdGUYAyABKAJCnwHCSJsBCpgB", - "CglmbG9hdC5sdGUaigEhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5n", - "dCkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlKT8gJ3Zh", - "bHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQo", - "W3J1bGVzLmx0ZV0pIDogJydIAFIDbHRlEvMHCgJndBgEIAEoAkLgB8JI3AcK", - "jQEKCGZsb2F0Lmd0GoABIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5s", - "dGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2", - "YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5n", - "dF0pIDogJycKwwEKC2Zsb2F0Lmd0X2x0GrMBaGFzKHJ1bGVzLmx0KSAmJiBy", - "dWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMg", - "Pj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", - "IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQo", - "W3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzQEKFWZsb2F0Lmd0X2x0X2V4", - "Y2x1c2l2ZRqzAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5n", - "dCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRo", - "aXMgPD0gcnVsZXMuZ3QpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFu", - "ICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMu", - "bHRdKSA6ICcnCtMBCgxmbG9hdC5ndF9sdGUawgFoYXMocnVsZXMubHRlKSAm", - "JiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0", + "ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZRog", + "Z29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8aHmdvb2dsZS9wcm90", + "b2J1Zi9kdXJhdGlvbi5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFt", + "cC5wcm90byJWCgpDb25zdHJhaW50Eg4KAmlkGAEgASgJUgJpZBIYCgdtZXNz", + "YWdlGAIgASgJUgdtZXNzYWdlEh4KCmV4cHJlc3Npb24YAyABKAlSCmV4cHJl", + "c3Npb24iXAoSTWVzc2FnZUNvbnN0cmFpbnRzEhoKCGRpc2FibGVkGAEgASgI", + "UghkaXNhYmxlZBIqCgNjZWwYAyADKAsyGC5idWYudmFsaWRhdGUuQ29uc3Ry", + "YWludFIDY2VsIi4KEE9uZW9mQ29uc3RyYWludHMSGgoIcmVxdWlyZWQYASAB", + "KAhSCHJlcXVpcmVkIqsKChBGaWVsZENvbnN0cmFpbnRzEioKA2NlbBgXIAMo", + "CzIYLmJ1Zi52YWxpZGF0ZS5Db25zdHJhaW50UgNjZWwSGgoIcmVxdWlyZWQY", + "GSABKAhSCHJlcXVpcmVkEiwKBmlnbm9yZRgbIAEoDjIULmJ1Zi52YWxpZGF0", + "ZS5JZ25vcmVSBmlnbm9yZRIwCgVmbG9hdBgBIAEoCzIYLmJ1Zi52YWxpZGF0", + "ZS5GbG9hdFJ1bGVzSABSBWZsb2F0EjMKBmRvdWJsZRgCIAEoCzIZLmJ1Zi52", + "YWxpZGF0ZS5Eb3VibGVSdWxlc0gAUgZkb3VibGUSMAoFaW50MzIYAyABKAsy", + "GC5idWYudmFsaWRhdGUuSW50MzJSdWxlc0gAUgVpbnQzMhIwCgVpbnQ2NBgE", + "IAEoCzIYLmJ1Zi52YWxpZGF0ZS5JbnQ2NFJ1bGVzSABSBWludDY0EjMKBnVp", + "bnQzMhgFIAEoCzIZLmJ1Zi52YWxpZGF0ZS5VSW50MzJSdWxlc0gAUgZ1aW50", + "MzISMwoGdWludDY0GAYgASgLMhkuYnVmLnZhbGlkYXRlLlVJbnQ2NFJ1bGVz", + "SABSBnVpbnQ2NBIzCgZzaW50MzIYByABKAsyGS5idWYudmFsaWRhdGUuU0lu", + "dDMyUnVsZXNIAFIGc2ludDMyEjMKBnNpbnQ2NBgIIAEoCzIZLmJ1Zi52YWxp", + "ZGF0ZS5TSW50NjRSdWxlc0gAUgZzaW50NjQSNgoHZml4ZWQzMhgJIAEoCzIa", + "LmJ1Zi52YWxpZGF0ZS5GaXhlZDMyUnVsZXNIAFIHZml4ZWQzMhI2CgdmaXhl", + "ZDY0GAogASgLMhouYnVmLnZhbGlkYXRlLkZpeGVkNjRSdWxlc0gAUgdmaXhl", + "ZDY0EjkKCHNmaXhlZDMyGAsgASgLMhsuYnVmLnZhbGlkYXRlLlNGaXhlZDMy", + "UnVsZXNIAFIIc2ZpeGVkMzISOQoIc2ZpeGVkNjQYDCABKAsyGy5idWYudmFs", + "aWRhdGUuU0ZpeGVkNjRSdWxlc0gAUghzZml4ZWQ2NBItCgRib29sGA0gASgL", + "MhcuYnVmLnZhbGlkYXRlLkJvb2xSdWxlc0gAUgRib29sEjMKBnN0cmluZxgO", + "IAEoCzIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlc0gAUgZzdHJpbmcSMAoF", + "Ynl0ZXMYDyABKAsyGC5idWYudmFsaWRhdGUuQnl0ZXNSdWxlc0gAUgVieXRl", + "cxItCgRlbnVtGBAgASgLMhcuYnVmLnZhbGlkYXRlLkVudW1SdWxlc0gAUgRl", + "bnVtEjkKCHJlcGVhdGVkGBIgASgLMhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVk", + "UnVsZXNIAFIIcmVwZWF0ZWQSKgoDbWFwGBMgASgLMhYuYnVmLnZhbGlkYXRl", + "Lk1hcFJ1bGVzSABSA21hcBIqCgNhbnkYFCABKAsyFi5idWYudmFsaWRhdGUu", + "QW55UnVsZXNIAFIDYW55EjkKCGR1cmF0aW9uGBUgASgLMhsuYnVmLnZhbGlk", + "YXRlLkR1cmF0aW9uUnVsZXNIAFIIZHVyYXRpb24SPAoJdGltZXN0YW1wGBYg", + "ASgLMhwuYnVmLnZhbGlkYXRlLlRpbWVzdGFtcFJ1bGVzSABSCXRpbWVzdGFt", + "cBIcCgdza2lwcGVkGBggASgIQgIYAVIHc2tpcHBlZBIlCgxpZ25vcmVfZW1w", + "dHkYGiABKAhCAhgBUgtpZ25vcmVFbXB0eUIGCgR0eXBlIkMKFVByZWRlZmlu", + "ZWRDb25zdHJhaW50cxIqCgNjZWwYASADKAsyGC5idWYudmFsaWRhdGUuQ29u", + "c3RyYWludFIDY2VsIuoXCgpGbG9hdFJ1bGVzEnAKBWNvbnN0GAEgASgCQlrC", + "SFcKVQoLZmxvYXQuY29uc3QaRnRoaXMgIT0gcnVsZXMuY29uc3QgPyAndmFs", + "dWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtydWxlcy5jb25zdF0pIDogJydS", + "BWNvbnN0EqMBCgJsdBgCIAEoAkKQAcJIjAEKiQEKCGZsb2F0Lmx0Gn0haGFz", + "KHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgKHRoaXMuaXNOYW4o", + "KSB8fCB0aGlzID49IHJ1bGVzLmx0KT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0", + "aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAUgJsdBK0AQoDbHRl", + "GAMgASgCQp8BwkibAQqYAQoJZmxvYXQubHRlGooBIWhhcyhydWxlcy5ndGUp", + "ICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+", + "IHJ1bGVzLmx0ZSk/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVh", + "bCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSABSA2x0ZRLzBwoC", + "Z3QYBCABKAJC4AfCSNwHCo0BCghmbG9hdC5ndBqAASFoYXMocnVsZXMubHQp", + "ICYmICFoYXMocnVsZXMubHRlKSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMg", + "PD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMn", + "LmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCsMBCgtmbG9hdC5ndF9sdBqzAWhh", + "cyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMu", + "aXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMu", + "Z3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3Mg", + "dGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCs0B", + "ChVmbG9hdC5ndF9sdF9leGNsdXNpdmUaswFoYXMocnVsZXMubHQpICYmIHJ1", + "bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMu", + "bHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChb", + "cnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrTAQoMZmxvYXQuZ3RfbHRlGsIB", + "aGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0", + "aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1", + "bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBs", + "ZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1", + "bGVzLmx0ZV0pIDogJycK3QEKFmZsb2F0Lmd0X2x0ZV9leGNsdXNpdmUawgFo", + "YXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAodGhp", + "cy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVs", + "ZXMuZ3QpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxl", + "c3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVs", + "ZXMubHRlXSkgOiAnJ0gBUgJndBK/CAoDZ3RlGAUgASgCQqoIwkimCAqbAQoJ", + "ZmxvYXQuZ3RlGo0BIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUp", + "ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1", + "ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0", + "KFtydWxlcy5ndGVdKSA6ICcnCtIBCgxmbG9hdC5ndGVfbHQawQFoYXMocnVs", + "ZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05h", + "bigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/", + "ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBh", + "bmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRd", + "KSA6ICcnCtwBChZmbG9hdC5ndGVfbHRfZXhjbHVzaXZlGsEBaGFzKHJ1bGVz", + "Lmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigp", + "IHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8g", + "J3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9y", + "IGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkg", + "OiAnJwriAQoNZmxvYXQuZ3RlX2x0ZRrQAWhhcyhydWxlcy5sdGUpICYmIHJ1", + "bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlz", + "ID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVz", + "dCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhh", + "biBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0", + "ZV0pIDogJycK7AEKF2Zsb2F0Lmd0ZV9sdGVfZXhjbHVzaXZlGtABaGFzKHJ1", + "bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmICh0aGlzLmlz", + "TmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0", + "ZSkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g", + "JXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVz", + "Lmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBUgNndGUSeQoCaW4YBiADKAJCacJI", + "ZgpkCghmbG9hdC5pbhpYISh0aGlzIGluIGR5bihydWxlcylbJ2luJ10pID8g", + "J3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtkeW4ocnVsZXMp", + "WydpbiddXSkgOiAnJ1ICaW4SfQoGbm90X2luGAcgAygCQmbCSGMKYQoMZmxv", + "YXQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0", + "IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDog", + "JydSBW5vdEluEn0KBmZpbml0ZRgIIAEoCEJlwkhiCmAKDGZsb2F0LmZpbml0", + "ZRpQcnVsZXMuZmluaXRlID8gKHRoaXMuaXNOYW4oKSB8fCB0aGlzLmlzSW5m", + "KCkgPyAndmFsdWUgbXVzdCBiZSBmaW5pdGUnIDogJycpIDogJydSBmZpbml0", + "ZRI0CgdleGFtcGxlGAkgAygCQhrCSBcKFQoNZmxvYXQuZXhhbXBsZRoEdHJ1", + "ZVIHZXhhbXBsZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVy", + "X3RoYW4i/BcKC0RvdWJsZVJ1bGVzEnEKBWNvbnN0GAEgASgBQlvCSFgKVgoM", + "ZG91YmxlLmNvbnN0GkZ0aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11", + "c3QgZXF1YWwgJXMnLmZvcm1hdChbcnVsZXMuY29uc3RdKSA6ICcnUgVjb25z", + "dBKkAQoCbHQYAiABKAFCkQHCSI0BCooBCglkb3VibGUubHQafSFoYXMocnVs", + "ZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8", + "IHRoaXMgPj0gcnVsZXMubHQpPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4g", + "JXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSABSAmx0ErUBCgNsdGUYAyAB", + "KAFCoAHCSJwBCpkBCgpkb3VibGUubHRlGooBIWhhcyhydWxlcy5ndGUpICYm", + "ICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1", + "bGVzLmx0ZSk/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0", + "byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSABSA2x0ZRL4BwoCZ3QY", + "BCABKAFC5QfCSOEHCo4BCglkb3VibGUuZ3QagAEhaGFzKHJ1bGVzLmx0KSAm", + "JiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDw9", + "IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5m", + "b3JtYXQoW3J1bGVzLmd0XSkgOiAnJwrEAQoMZG91YmxlLmd0X2x0GrMBaGFz", + "KHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcy5p", + "c05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5n", + "dCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0", + "aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzgEK", + "FmRvdWJsZS5ndF9sdF9leGNsdXNpdmUaswFoYXMocnVsZXMubHQpICYmIHJ1", + "bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMu", + "bHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChb", + "cnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrUAQoNZG91YmxlLmd0X2x0ZRrC", + "AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAo", + "dGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBy", + "dWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQg", + "bGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBy", + "dWxlcy5sdGVdKSA6ICcnCt4BChdkb3VibGUuZ3RfbHRlX2V4Y2x1c2l2ZRrC", + "AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmICh0", + "aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBy", + "dWxlcy5ndCkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3Ig", + "bGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBy", + "dWxlcy5sdGVdKSA6ICcnSAFSAmd0EsQICgNndGUYBSABKAFCrwjCSKsICpwB", + "Cgpkb3VibGUuZ3RlGo0BIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5s", + "dGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2", + "YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9y", + "bWF0KFtydWxlcy5ndGVdKSA6ICcnCtMBCg1kb3VibGUuZ3RlX2x0GsEBaGFz", + "KHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMu", + "aXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5n", + "dGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g", + "JXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVz", + "Lmx0XSkgOiAnJwrdAQoXZG91YmxlLmd0ZV9sdF9leGNsdXNpdmUawQFoYXMo", + "cnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmICh0aGlzLmlz", + "TmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0", + "ZSkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g", + "JXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMu", + "bHRdKSA6ICcnCuMBCg5kb3VibGUuZ3RlX2x0ZRrQAWhhcyhydWxlcy5sdGUp", + "ICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8", + "fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFs", + "dWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxl", + "c3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1", + "bGVzLmx0ZV0pIDogJycK7QEKGGRvdWJsZS5ndGVfbHRlX2V4Y2x1c2l2ZRrQ", + "AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAo", + "dGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBy", + "dWxlcy5ndGUpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVx", + "dWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0", + "KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIAVIDZ3RlEnoKAmluGAYg", + "AygBQmrCSGcKZQoJZG91YmxlLmluGlghKHRoaXMgaW4gZHluKHJ1bGVzKVsn", + "aW4nXSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2R5", + "bihydWxlcylbJ2luJ11dKSA6ICcnUgJpbhJ+CgZub3RfaW4YByADKAFCZ8JI", + "ZApiCg1kb3VibGUubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2", + "YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5v", + "dF9pbl0pIDogJydSBW5vdEluEn4KBmZpbml0ZRgIIAEoCEJmwkhjCmEKDWRv", + "dWJsZS5maW5pdGUaUHJ1bGVzLmZpbml0ZSA/ICh0aGlzLmlzTmFuKCkgfHwg", + "dGhpcy5pc0luZigpID8gJ3ZhbHVlIG11c3QgYmUgZmluaXRlJyA6ICcnKSA6", + "ICcnUgZmaW5pdGUSNQoHZXhhbXBsZRgJIAMoAUIbwkgYChYKDmRvdWJsZS5l", + "eGFtcGxlGgR0cnVlUgdleGFtcGxlKgkI6AcQgICAgAJCCwoJbGVzc190aGFu", + "Qg4KDGdyZWF0ZXJfdGhhbiKUFQoKSW50MzJSdWxlcxJwCgVjb25zdBgBIAEo", + "BUJawkhXClUKC2ludDMyLmNvbnN0GkZ0aGlzICE9IHJ1bGVzLmNvbnN0ID8g", + "J3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbcnVsZXMuY29uc3RdKSA6", + "ICcnUgVjb25zdBKOAQoCbHQYAiABKAVCfMJIeQp3CghpbnQzMi5sdBprIWhh", + "cyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVs", + "ZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFty", + "dWxlcy5sdF0pIDogJydIAFICbHQSoQEKA2x0ZRgDIAEoBUKMAcJIiAEKhQEK", + "CWludDMyLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3Qp", + "ICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhh", + "biBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSABS", + "A2x0ZRKbBwoCZ3QYBCABKAVCiAfCSIQHCnoKCGludDMyLmd0Gm4haGFzKHJ1", + "bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5n", + "dD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1", + "bGVzLmd0XSkgOiAnJwqzAQoLaW50MzIuZ3RfbHQaowFoYXMocnVsZXMubHQp", + "ICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0", + "IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVy", + "IHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwg", + "cnVsZXMubHRdKSA6ICcnCrsBChVpbnQzMi5ndF9sdF9leGNsdXNpdmUaoQFo", + "YXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVz", + "Lmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChb", + "cnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrDAQoMaW50MzIuZ3RfbHRlGrIB", + "aGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0", "aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUg", "bXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVh", - "bCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrd", - "AQoWZmxvYXQuZ3RfbHRlX2V4Y2x1c2l2ZRrCAWhhcyhydWxlcy5sdGUpICYm", - "IHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1", - "bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAndmFsdWUg", - "bXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFs", - "IHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAFS", - "Amd0Er8ICgNndGUYBSABKAJCqgjCSKYICpsBCglmbG9hdC5ndGUajQEhaGFz", - "KHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4o", - "KSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRl", - "ciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDog", - "JycK0gEKDGZsb2F0Lmd0ZV9sdBrBAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMu", - "bHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBy", - "dWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUg", - "Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMn", - "LmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK3AEKFmZsb2F0", - "Lmd0ZV9sdF9leGNsdXNpdmUawQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0", - "IDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9", - "IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAndmFsdWUgbXVzdCBiZSBn", - "cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5m", - "b3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCuIBCg1mbG9hdC5n", - "dGVfbHRlGtABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVz", - "Lmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwg", + "bCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrL", + "AQoWaW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYm", + "IHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYm", + "IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRo", + "YW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1", + "bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAFSAmd0EugHCgNndGUYBSABKAVC", + "0wfCSM8HCogBCglpbnQzMi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMo", + "cnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBi", + "ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMu", + "Z3RlXSkgOiAnJwrCAQoMaW50MzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAm", + "JiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQg", + "fHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIg", + "dGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQo", + "W3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsoBChZpbnQzMi5ndGVfbHRf", + "ZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVz", + "Lmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3Rl", + "KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVz", + "IG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0", + "XSkgOiAnJwrSAQoNaW50MzIuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYm", + "IHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUg", + "fHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIg", + "dGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRv", + "ICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwraAQoX", + "aW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBy", + "dWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYg", "dGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhh", - "biBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVz", - "Jy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrsAQoXZmxv", - "YXQuZ3RlX2x0ZV9leGNsdXNpdmUa0AFoYXMocnVsZXMubHRlKSAmJiBydWxl", - "cy5sdGUgPCBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMu", - "bHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKSk/ICd2YWx1ZSBtdXN0", - "IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4g", + "biBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMn", + "LmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAFSA2d0ZRJ5", + "CgJpbhgGIAMoBUJpwkhmCmQKCGludDMyLmluGlghKHRoaXMgaW4gZHluKHJ1", + "bGVzKVsnaW4nXSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3Jt", + "YXQoW2R5bihydWxlcylbJ2luJ11dKSA6ICcnUgJpbhJ9CgZub3RfaW4YByAD", + "KAVCZsJIYwphCgxpbnQzMi5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2lu", + "ID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVs", + "ZXMubm90X2luXSkgOiAnJ1IFbm90SW4SNAoHZXhhbXBsZRgIIAMoBUIawkgX", + "ChUKDWludDMyLmV4YW1wbGUaBHRydWVSB2V4YW1wbGUqCQjoBxCAgICAAkIL", + "CglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIpQVCgpJbnQ2NFJ1bGVzEnAK", + "BWNvbnN0GAEgASgDQlrCSFcKVQoLaW50NjQuY29uc3QaRnRoaXMgIT0gcnVs", + "ZXMuY29uc3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtydWxl", + "cy5jb25zdF0pIDogJydSBWNvbnN0Eo4BCgJsdBgCIAEoA0J8wkh5CncKCGlu", + "dDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYg", + "dGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVz", + "Jy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAUgJsdBKhAQoDbHRlGAMgASgD", + "QowBwkiIAQqFAQoJaW50NjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhh", + "cyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3Qg", + "YmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0", + "ZV0pIDogJydIAFIDbHRlEpsHCgJndBgEIAEoA0KIB8JIhAcKegoIaW50NjQu", + "Z3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlz", + "IDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMn", + "LmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrMBCgtpbnQ2NC5ndF9sdBqjAWhh", + "cyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMg", + "Pj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQo", + "W3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKuwEKFWludDY0Lmd0X2x0X2V4", + "Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5n", + "dCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8g", + "J3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAl", + "cycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsMBCgxpbnQ2", + "NC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVs", + "ZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5n", + "dCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0", + "aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5s", + "dGVdKSA6ICcnCssBChZpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1", + "bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0", + "ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJl", + "IGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMn", + "LmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIAVICZ3QS6AcK", + "A2d0ZRgFIAEoA0LTB8JIzwcKiAEKCWludDY0Lmd0ZRp7IWhhcyhydWxlcy5s", + "dCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2", + "YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9y", + "bWF0KFtydWxlcy5ndGVdKSA6ICcnCsIBCgxpbnQ2NC5ndGVfbHQasQFoYXMo", + "cnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+", + "PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3Qg", + "YmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4g", + "JXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKygEKFmlu", + "dDY0Lmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVz", + "Lmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMg", + "PCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3Ig", + "ZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0", + "ZSwgcnVsZXMubHRdKSA6ICcnCtIBCg1pbnQ2NC5ndGVfbHRlGsABaGFzKHJ1", + "bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+", + "IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3Qg", + "YmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4g", "b3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVd", - "KSA6ICcnSAFSA2d0ZRJ5CgJpbhgGIAMoAkJpwkhmCmQKCGZsb2F0LmluGlgh", - "KHRoaXMgaW4gZHluKHJ1bGVzKVsnaW4nXSkgPyAndmFsdWUgbXVzdCBiZSBp", - "biBsaXN0ICVzJy5mb3JtYXQoW2R5bihydWxlcylbJ2luJ11dKSA6ICcnUgJp", - "bhJ9CgZub3RfaW4YByADKAJCZsJIYwphCgxmbG9hdC5ub3RfaW4aUXRoaXMg", - "aW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3Qg", - "JXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJ1IFbm90SW4SZwoGZmlu", - "aXRlGAggASgIQk/CSEwKSgoMZmxvYXQuZmluaXRlGjp0aGlzLmlzTmFuKCkg", - "fHwgdGhpcy5pc0luZigpID8gJ3ZhbHVlIG11c3QgYmUgZmluaXRlJyA6ICcn", - "UgZmaW5pdGVCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbkIICgZfY29u", - "c3QisxcKC0RvdWJsZVJ1bGVzEnYKBWNvbnN0GAEgASgBQlvCSFgKVgoMZG91", - "YmxlLmNvbnN0GkZ0aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11c3Qg", - "ZXF1YWwgJXMnLmZvcm1hdChbcnVsZXMuY29uc3RdKSA6ICcnSAJSBWNvbnN0", - "iAEBEqQBCgJsdBgCIAEoAUKRAcJIjQEKigEKCWRvdWJsZS5sdBp9IWhhcyhy", - "dWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkg", - "fHwgdGhpcyA+PSBydWxlcy5sdCk/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhh", - "biAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIAFICbHQStQEKA2x0ZRgD", - "IAEoAUKgAcJInAEKmQEKCmRvdWJsZS5sdGUaigEhaGFzKHJ1bGVzLmd0ZSkg", - "JiYgIWhhcyhydWxlcy5ndCkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4g", - "cnVsZXMubHRlKT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFs", - "IHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIAFIDbHRlEvgHCgJn", - "dBgEIAEoAULlB8JI4QcKjgEKCWRvdWJsZS5ndBqAASFoYXMocnVsZXMubHQp", - "ICYmICFoYXMocnVsZXMubHRlKSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMg", - "PD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMn", - "LmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCsQBCgxkb3VibGUuZ3RfbHQaswFo", - "YXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlz", - "LmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVz", + "KSA6ICcnCtoBChdpbnQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxl", + "cy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRl", + "IDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUg", + "Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBl", + "cXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDog", + "JydIAVIDZ3RlEnkKAmluGAYgAygDQmnCSGYKZAoIaW50NjQuaW4aWCEodGhp", + "cyBpbiBkeW4ocnVsZXMpWydpbiddKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxp", + "c3QgJXMnLmZvcm1hdChbZHluKHJ1bGVzKVsnaW4nXV0pIDogJydSAmluEn0K", + "Bm5vdF9pbhgHIAMoA0JmwkhjCmEKDGludDY0Lm5vdF9pbhpRdGhpcyBpbiBy", + "dWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycu", + "Zm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnUgVub3RJbhI0CgdleGFtcGxl", + "GAkgAygDQhrCSBcKFQoNaW50NjQuZXhhbXBsZRoEdHJ1ZVIHZXhhbXBsZSoJ", + "COgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4ipRUKC1VJ", + "bnQzMlJ1bGVzEnEKBWNvbnN0GAEgASgNQlvCSFgKVgoMdWludDMyLmNvbnN0", + "GkZ0aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMn", + "LmZvcm1hdChbcnVsZXMuY29uc3RdKSA6ICcnUgVjb25zdBKPAQoCbHQYAiAB", + "KA1CfcJIegp4Cgl1aW50MzIubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFz", + "KHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBi", + "ZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSABSAmx0", + "EqIBCgNsdGUYAyABKA1CjQHCSIkBCoYBCgp1aW50MzIubHRlGnghaGFzKHJ1", + "bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0", + "ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5m", + "b3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIAFIDbHRlEqAHCgJndBgEIAEoDUKN", + "B8JIiQcKewoJdWludDMyLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1", + "bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUg", + "Z3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq0AQoM", + "dWludDMyLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBy", + "dWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVz", "Lmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNz", - "IHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrO", - "AQoWZG91YmxlLmd0X2x0X2V4Y2x1c2l2ZRqzAWhhcyhydWxlcy5sdCkgJiYg", - "cnVsZXMubHQgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxl", - "cy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ3ZhbHVlIG11", - "c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0", - "KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCtQBCg1kb3VibGUuZ3RfbHRl", - "GsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYm", - "ICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9", - "IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFu", - "ZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3Qs", - "IHJ1bGVzLmx0ZV0pIDogJycK3gEKF2RvdWJsZS5ndF9sdGVfZXhjbHVzaXZl", - "GsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYg", - "KHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9", - "IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBv", - "ciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3Qs", - "IHJ1bGVzLmx0ZV0pIDogJydIAVICZ3QSxAgKA2d0ZRgFIAEoAUKvCMJIqwgK", - "nAEKCmRvdWJsZS5ndGUajQEhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVz", - "Lmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8g", - "J3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5m", - "b3JtYXQoW3J1bGVzLmd0ZV0pIDogJycK0wEKDWRvdWJsZS5ndGVfbHQawQFo", - "YXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhp", - "cy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVz", - "Lmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0", - "byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVs", - "ZXMubHRdKSA6ICcnCt0BChdkb3VibGUuZ3RlX2x0X2V4Y2x1c2l2ZRrBAWhh", - "cyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHRoaXMu", - "aXNOYW4oKSB8fCAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMu", - "Z3RlKSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0", - "byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxl", - "cy5sdF0pIDogJycK4wEKDmRvdWJsZS5ndGVfbHRlGtABaGFzKHJ1bGVzLmx0", - "ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigp", - "IHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2", - "YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQg", - "bGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwg", - "cnVsZXMubHRlXSkgOiAnJwrtAQoYZG91YmxlLmd0ZV9sdGVfZXhjbHVzaXZl", - "GtABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYm", - "ICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8", - "IHJ1bGVzLmd0ZSkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3Ig", - "ZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3Jt", - "YXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBUgNndGUSegoCaW4Y", - "BiADKAFCasJIZwplCglkb3VibGUuaW4aWCEodGhpcyBpbiBkeW4ocnVsZXMp", - "WydpbiddKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChb", - "ZHluKHJ1bGVzKVsnaW4nXV0pIDogJydSAmluEn4KBm5vdF9pbhgHIAMoAUJn", - "wkhkCmIKDWRvdWJsZS5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8g", - "J3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMu", - "bm90X2luXSkgOiAnJ1IFbm90SW4SaAoGZmluaXRlGAggASgIQlDCSE0KSwoN", - "ZG91YmxlLmZpbml0ZRo6dGhpcy5pc05hbigpIHx8IHRoaXMuaXNJbmYoKSA/", - "ICd2YWx1ZSBtdXN0IGJlIGZpbml0ZScgOiAnJ1IGZmluaXRlQgsKCWxlc3Nf", - "dGhhbkIOCgxncmVhdGVyX3RoYW5CCAoGX2NvbnN0IuIUCgpJbnQzMlJ1bGVz", - "EnUKBWNvbnN0GAEgASgFQlrCSFcKVQoLaW50MzIuY29uc3QaRnRoaXMgIT0g", - "cnVsZXMuY29uc3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFty", - "dWxlcy5jb25zdF0pIDogJydIAlIFY29uc3SIAQESjgEKAmx0GAIgASgFQnzC", - "SHkKdwoIaW50MzIubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVz", - "Lmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNz", - "IHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSABSAmx0EqEBCgNs", - "dGUYAyABKAVCjAHCSIgBCoUBCglpbnQzMi5sdGUaeCFoYXMocnVsZXMuZ3Rl", - "KSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFs", - "dWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChb", - "cnVsZXMubHRlXSkgOiAnJ0gAUgNsdGUSmwcKAmd0GAQgASgFQogHwkiEBwp6", - "CghpbnQzMi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUp", - "ICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIg", - "dGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKswEKC2ludDMyLmd0", - "X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAm", - "JiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3Zh", - "bHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMn", - "LmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq7AQoVaW50MzIu", - "Z3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8", - "IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVs", - "ZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVz", - "cyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycK", - "wwEKDGludDMyLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0", - "ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9", - "IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFu", - "ZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3Qs", - "IHJ1bGVzLmx0ZV0pIDogJycKywEKFmludDMyLmd0X2x0ZV9leGNsdXNpdmUa", - "sAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAo", - "cnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVl", - "IG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVh", - "bCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gB", - "UgJndBLoBwoDZ3RlGAUgASgFQtMHwkjPBwqIAQoJaW50MzIuZ3RlGnshaGFz", - "KHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVz", - "Lmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRv", - "ICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwgEKDGludDMyLmd0ZV9s", - "dBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYm", - "ICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFs", - "dWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxl", - "c3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAn", - "JwrKAQoWaW50MzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkg", - "JiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMg", - "JiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIg", - "dGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChb", - "cnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0gEKDWludDMyLmd0ZV9sdGUa", - "wAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYm", - "ICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFs", - "dWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxl", - "c3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1", - "bGVzLmx0ZV0pIDogJycK2gEKF2ludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGr4B", + "IHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq8", + "AQoWdWludDMyLmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYg", + "cnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0", + "aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFu", + "ICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMu", + "bHRdKSA6ICcnCsQBCg11aW50MzIuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkg", + "JiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRl", + "IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVy", + "IHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0", + "KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrMAQoXdWludDMyLmd0X2x0", + "ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBy", + "dWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVz", + "Lmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3Mg", + "dGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMu", + "bHRlXSkgOiAnJ0gBUgJndBLtBwoDZ3RlGAUgASgNQtgHwkjUBwqJAQoKdWlu", + "dDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYm", + "IHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhh", + "biBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMB", + "Cg11aW50MzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+", + "PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1", + "bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVh", + "bCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwg", + "cnVsZXMubHRdKSA6ICcnCssBChd1aW50MzIuZ3RlX2x0X2V4Y2x1c2l2ZRqv", + "AWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1", + "bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBt", + "dXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRo", + "YW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEK", + "DnVpbnQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRl", + "ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwg", + "cnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVx", + "dWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1h", + "dChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChh1aW50MzIuZ3Rl", + "X2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUg", + "PCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1", + "bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVh", + "bCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChb", + "cnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAFSA2d0ZRJ6CgJpbhgGIAMo", + "DUJqwkhnCmUKCXVpbnQzMi5pbhpYISh0aGlzIGluIGR5bihydWxlcylbJ2lu", + "J10pID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtkeW4o", + "cnVsZXMpWydpbiddXSkgOiAnJ1ICaW4SfgoGbm90X2luGAcgAygNQmfCSGQK", + "YgoNdWludDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFs", + "dWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3Rf", + "aW5dKSA6ICcnUgVub3RJbhI1CgdleGFtcGxlGAggAygNQhvCSBgKFgoOdWlu", + "dDMyLmV4YW1wbGUaBHRydWVSB2V4YW1wbGUqCQjoBxCAgICAAkILCglsZXNz", + "X3RoYW5CDgoMZ3JlYXRlcl90aGFuIqUVCgtVSW50NjRSdWxlcxJxCgVjb25z", + "dBgBIAEoBEJbwkhYClYKDHVpbnQ2NC5jb25zdBpGdGhpcyAhPSBydWxlcy5j", + "b25zdCA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW3J1bGVzLmNv", + "bnN0XSkgOiAnJ1IFY29uc3QSjwEKAmx0GAIgASgEQn3CSHoKeAoJdWludDY0", + "Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhp", + "cyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5m", + "b3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAUgJsdBKiAQoDbHRlGAMgASgEQo0B", + "wkiJAQqGAQoKdWludDY0Lmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMo", + "cnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJl", + "IGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVd", + "KSA6ICcnSABSA2x0ZRKgBwoCZ3QYBCABKARCjQfCSIkHCnsKCXVpbnQ2NC5n", + "dBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMg", + "PD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycu", + "Zm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHVpbnQ2NC5ndF9sdBqjAWhh", + "cyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMg", + "Pj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQo", + "W3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnVpbnQ2NC5ndF9sdF9l", + "eGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMu", + "Z3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/", + "ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4g", + "JXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNdWlu", + "dDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBy", + "dWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVz", + "Lmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNz", + "IHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVz", + "Lmx0ZV0pIDogJycKzAEKF3VpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFz", + "KHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVz", + "Lmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g", + "JXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIAVICZ3QS", + "7QcKA2d0ZRgFIAEoBELYB8JI1AcKiQEKCnVpbnQ2NC5ndGUaeyFoYXMocnVs", + "ZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3Rl", + "PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMn", + "LmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrDAQoNdWludDY0Lmd0ZV9sdBqx", + "AWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0", + "aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUg", + "bXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3Mg", + "dGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrL", + "AQoXdWludDY0Lmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYm", + "IHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYm", + "IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRo", + "YW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1", + "bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtMBCg51aW50NjQuZ3RlX2x0ZRrA", + "AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYg", + "KHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1", + "ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVz", + "cyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVs", + "ZXMubHRlXSkgOiAnJwrbAQoYdWludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGr4B", "aGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChy", "dWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUg", "bXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0", "aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMu", - "bHRlXSkgOiAnJ0gBUgNndGUSeQoCaW4YBiADKAVCacJIZgpkCghpbnQzMi5p", - "bhpYISh0aGlzIGluIGR5bihydWxlcylbJ2luJ10pID8gJ3ZhbHVlIG11c3Qg", - "YmUgaW4gbGlzdCAlcycuZm9ybWF0KFtkeW4ocnVsZXMpWydpbiddXSkgOiAn", - "J1ICaW4SfQoGbm90X2luGAcgAygFQmbCSGMKYQoMaW50MzIubm90X2luGlF0", - "aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBs", - "aXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJydSBW5vdEluQgsK", - "CWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW5CCAoGX2NvbnN0IuIUCgpJbnQ2", - "NFJ1bGVzEnUKBWNvbnN0GAEgASgDQlrCSFcKVQoLaW50NjQuY29uc3QaRnRo", - "aXMgIT0gcnVsZXMuY29uc3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9y", - "bWF0KFtydWxlcy5jb25zdF0pIDogJydIAlIFY29uc3SIAQESjgEKAmx0GAIg", - "ASgDQnzCSHkKdwoIaW50NjQubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFz", - "KHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBi", - "ZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSABSAmx0", - "EqEBCgNsdGUYAyABKANCjAHCSIgBCoUBCglpbnQ2NC5sdGUaeCFoYXMocnVs", - "ZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRl", - "PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZv", - "cm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAUgNsdGUSmwcKAmd0GAQgASgDQogH", - "wkiEBwp6CghpbnQ2NC5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxl", - "cy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdy", - "ZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKswEKC2lu", - "dDY0Lmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxl", - "cy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0", - "KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRo", - "YW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq7AQoV", - "aW50NjQuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxl", - "cy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMg", - "PD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMg", - "b3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0p", - "IDogJycKwwEKDGludDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1", - "bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0", - "aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFu", - "ICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVs", - "ZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKywEKFmludDY0Lmd0X2x0ZV9leGNs", + "bHRlXSkgOiAnJ0gBUgNndGUSegoCaW4YBiADKARCasJIZwplCgl1aW50NjQu", + "aW4aWCEodGhpcyBpbiBkeW4ocnVsZXMpWydpbiddKSA/ICd2YWx1ZSBtdXN0", + "IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZHluKHJ1bGVzKVsnaW4nXV0pIDog", + "JydSAmluEn4KBm5vdF9pbhgHIAMoBEJnwkhkCmIKDXVpbnQ2NC5ub3RfaW4a", + "UXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGlu", + "IGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJ1IFbm90SW4S", + "NQoHZXhhbXBsZRgIIAMoBEIbwkgYChYKDnVpbnQ2NC5leGFtcGxlGgR0cnVl", + "UgdleGFtcGxlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJf", + "dGhhbiKlFQoLU0ludDMyUnVsZXMScQoFY29uc3QYASABKBFCW8JIWApWCgxz", + "aW50MzIuY29uc3QaRnRoaXMgIT0gcnVsZXMuY29uc3QgPyAndmFsdWUgbXVz", + "dCBlcXVhbCAlcycuZm9ybWF0KFtydWxlcy5jb25zdF0pIDogJydSBWNvbnN0", + "Eo8BCgJsdBgCIAEoEUJ9wkh6CngKCXNpbnQzMi5sdBprIWhhcyhydWxlcy5n", + "dGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2", + "YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0p", + "IDogJydIAFICbHQSogEKA2x0ZRgDIAEoEUKNAcJIiQEKhgEKCnNpbnQzMi5s", + "dGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlz", + "ID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1", + "YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAUgNsdGUSoAcK", + "Amd0GAQgASgRQo0HwkiJBwp7CglzaW50MzIuZ3QabiFoYXMocnVsZXMubHQp", + "ICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFs", + "dWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3Rd", + "KSA6ICcnCrQBCgxzaW50MzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1", + "bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRo", + "aXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4g", + "JXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMu", + "bHRdKSA6ICcnCrwBChZzaW50MzIuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1", + "bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8", + "PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBn", + "cmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVz", + "Lmd0LCBydWxlcy5sdF0pIDogJycKxAEKDXNpbnQzMi5ndF9sdGUasgFoYXMo", + "cnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMg", + "PiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRv", + "ICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCswBChdz", + "aW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1", + "bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRo", + "aXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4g", + "JXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVz", + "Lmd0LCBydWxlcy5sdGVdKSA6ICcnSAFSAmd0Eu0HCgNndGUYBSABKBFC2AfC", + "SNQHCokBCgpzaW50MzIuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1", + "bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUg", + "Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0", + "ZV0pIDogJycKwwEKDXNpbnQzMi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYm", + "IHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8", + "fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0", + "aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChb", + "cnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKywEKF3NpbnQzMi5ndGVfbHRf", + "ZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVz", + "Lmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3Rl", + "KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVz", + "IG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0", + "XSkgOiAnJwrTAQoOc2ludDMyLmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAm", + "JiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRl", + "IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVy", + "IHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0", + "byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2wEK", + "GHNpbnQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYm", + "IHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAm", + "JiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0", + "aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAl", + "cycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIAVIDZ3Rl", + "EnoKAmluGAYgAygRQmrCSGcKZQoJc2ludDMyLmluGlghKHRoaXMgaW4gZHlu", + "KHJ1bGVzKVsnaW4nXSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5m", + "b3JtYXQoW2R5bihydWxlcylbJ2luJ11dKSA6ICcnUgJpbhJ+CgZub3RfaW4Y", + "ByADKBFCZ8JIZApiCg1zaW50MzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5v", + "dF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQo", + "W3J1bGVzLm5vdF9pbl0pIDogJydSBW5vdEluEjUKB2V4YW1wbGUYCCADKBFC", + "G8JIGAoWCg5zaW50MzIuZXhhbXBsZRoEdHJ1ZVIHZXhhbXBsZSoJCOgHEICA", + "gIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4ipRUKC1NJbnQ2NFJ1", + "bGVzEnEKBWNvbnN0GAEgASgSQlvCSFgKVgoMc2ludDY0LmNvbnN0GkZ0aGlz", + "ICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1h", + "dChbcnVsZXMuY29uc3RdKSA6ICcnUgVjb25zdBKPAQoCbHQYAiABKBJCfcJI", + "egp4CglzaW50NjQubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVz", + "Lmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNz", + "IHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSABSAmx0EqIBCgNs", + "dGUYAyABKBJCjQHCSIkBCoYBCgpzaW50NjQubHRlGnghaGFzKHJ1bGVzLmd0", + "ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3Zh", + "bHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQo", + "W3J1bGVzLmx0ZV0pIDogJydIAFIDbHRlEqAHCgJndBgEIAEoEkKNB8JIiQcK", + "ewoJc2ludDY0Lmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0", + "ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRl", + "ciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq0AQoMc2ludDY0", + "Lmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5n", + "dCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8g", + "J3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4g", + "JXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq8AQoWc2lu", + "dDY0Lmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMu", + "bHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9", + "IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9y", + "IGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6", + "ICcnCsQBCg1zaW50NjQuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVs", + "ZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRo", + "aXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4g", + "JXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxl", + "cy5ndCwgcnVsZXMubHRlXSkgOiAnJwrMAQoXc2ludDY0Lmd0X2x0ZV9leGNs", "dXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5n", "dCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8g", "J3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBv", "ciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkg", - "OiAnJ0gBUgJndBLoBwoDZ3RlGAUgASgDQtMHwkjPBwqIAQoJaW50NjQuZ3Rl", - "GnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8", - "IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVx", - "dWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwgEKDGludDY0", - "Lmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMu", - "Z3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUp", - "PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMg", - "YW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0", - "XSkgOiAnJwrKAQoWaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxl", - "cy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9", - "IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdy", - "ZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZv", - "cm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0gEKDWludDY0Lmd0", + "OiAnJ0gBUgJndBLtBwoDZ3RlGAUgASgSQtgHwkjUBwqJAQoKc2ludDY0Lmd0", + "ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMg", + "PCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBl", + "cXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg1zaW50", + "NjQuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxl", + "cy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0", + "ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAl", + "cyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMu", + "bHRdKSA6ICcnCssBChdzaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhy", + "dWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0", + "IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJl", + "IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMn", + "LmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnNpbnQ2", + "NC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1", + "bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMu", + "Z3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRv", + "ICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVs", + "ZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChhzaW50NjQuZ3RlX2x0ZV9l", + "eGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxl", + "cy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0", + "ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAl", + "cyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMu", + "Z3RlLCBydWxlcy5sdGVdKSA6ICcnSAFSA2d0ZRJ6CgJpbhgGIAMoEkJqwkhn", + "CmUKCXNpbnQ2NC5pbhpYISh0aGlzIGluIGR5bihydWxlcylbJ2luJ10pID8g", + "J3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtkeW4ocnVsZXMp", + "WydpbiddXSkgOiAnJ1ICaW4SfgoGbm90X2luGAcgAygSQmfCSGQKYgoNc2lu", + "dDY0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVz", + "dCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6", + "ICcnUgVub3RJbhI1CgdleGFtcGxlGAggAygSQhvCSBgKFgoOc2ludDY0LmV4", + "YW1wbGUaBHRydWVSB2V4YW1wbGUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5C", + "DgoMZ3JlYXRlcl90aGFuIrYVCgxGaXhlZDMyUnVsZXMScgoFY29uc3QYASAB", + "KAdCXMJIWQpXCg1maXhlZDMyLmNvbnN0GkZ0aGlzICE9IHJ1bGVzLmNvbnN0", + "ID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbcnVsZXMuY29uc3Rd", + "KSA6ICcnUgVjb25zdBKQAQoCbHQYAiABKAdCfsJIewp5CgpmaXhlZDMyLmx0", + "GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+", + "PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3Jt", + "YXQoW3J1bGVzLmx0XSkgOiAnJ0gAUgJsdBKjAQoDbHRlGAMgASgHQo4BwkiK", + "AQqHAQoLZml4ZWQzMi5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1", + "bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBs", + "ZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkg", + "OiAnJ0gAUgNsdGUSpQcKAmd0GAQgASgHQpIHwkiOBwp8CgpmaXhlZDMyLmd0", + "Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8", + "PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5m", + "b3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq1AQoNZml4ZWQzMi5ndF9sdBqjAWhh", + "cyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMg", + "Pj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQo", + "W3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKF2ZpeGVkMzIuZ3RfbHRf", + "ZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVz", + "Lmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3Qp", + "PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFu", + "ICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxQEKDmZp", + "eGVkMzIuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49", + "IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVs", + "ZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxl", + "c3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVs", + "ZXMubHRlXSkgOiAnJwrNAQoYZml4ZWQzMi5ndF9sdGVfZXhjbHVzaXZlGrAB", + "aGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1", + "bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBt", + "dXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwg", + "dG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIAVIC", + "Z3QS8gcKA2d0ZRgFIAEoB0LdB8JI2QcKigEKC2ZpeGVkMzIuZ3RlGnshaGFz", + "KHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVz", + "Lmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRv", + "ICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKxAEKDmZpeGVkMzIuZ3Rl", + "X2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUg", + "JiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2", + "YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQg", + "bGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6", + "ICcnCswBChhmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMu", + "bHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0", + "aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVh", + "dGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3Jt", + "YXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtQBCg9maXhlZDMyLmd0", "ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMu", "Z3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUp", "PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMg", "YW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5n", - "dGUsIHJ1bGVzLmx0ZV0pIDogJycK2gEKF2ludDY0Lmd0ZV9sdGVfZXhjbHVz", - "aXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3Rl", - "ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAn", - "dmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3Ig", - "bGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwg", - "cnVsZXMubHRlXSkgOiAnJ0gBUgNndGUSeQoCaW4YBiADKANCacJIZgpkCghp", - "bnQ2NC5pbhpYISh0aGlzIGluIGR5bihydWxlcylbJ2luJ10pID8gJ3ZhbHVl", - "IG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtkeW4ocnVsZXMpWydpbidd", - "XSkgOiAnJ1ICaW4SfQoGbm90X2luGAcgAygDQmbCSGMKYQoMaW50NjQubm90", - "X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBi", - "ZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJydSBW5v", - "dEluQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW5CCAoGX2NvbnN0IvIU", - "CgtVSW50MzJSdWxlcxJ2CgVjb25zdBgBIAEoDUJbwkhYClYKDHVpbnQzMi5j", - "b25zdBpGdGhpcyAhPSBydWxlcy5jb25zdCA/ICd2YWx1ZSBtdXN0IGVxdWFs", - "ICVzJy5mb3JtYXQoW3J1bGVzLmNvbnN0XSkgOiAnJ0gCUgVjb25zdIgBARKP", - "AQoCbHQYAiABKA1CfcJIegp4Cgl1aW50MzIubHQaayFoYXMocnVsZXMuZ3Rl", - "KSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFs", - "dWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6", - "ICcnSABSAmx0EqIBCgNsdGUYAyABKA1CjQHCSIkBCoYBCgp1aW50MzIubHRl", - "GnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+", - "IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFs", - "IHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIAFIDbHRlEqAHCgJn", - "dBgEIAEoDUKNB8JIiQcKewoJdWludDMyLmd0Gm4haGFzKHJ1bGVzLmx0KSAm", - "JiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVl", - "IG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkg", - "OiAnJwq0AQoMdWludDMyLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxl", - "cy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlz", - "IDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVz", - "IGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0", - "XSkgOiAnJwq8AQoWdWludDMyLmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxl", - "cy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0g", - "dGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3Jl", - "YXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5n", - "dCwgcnVsZXMubHRdKSA6ICcnCsQBCg11aW50MzIuZ3RfbHRlGrIBaGFzKHJ1", - "bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4g", - "cnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBi", - "ZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAl", - "cycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrMAQoXdWlu", - "dDMyLmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxl", - "cy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlz", - "IDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVz", - "IG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5n", - "dCwgcnVsZXMubHRlXSkgOiAnJ0gBUgJndBLtBwoDZ3RlGAUgASgNQtgHwkjU", - "BwqJAQoKdWludDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxl", - "cy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdy", - "ZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVd", - "KSA6ICcnCsMBCg11aW50MzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBy", - "dWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwg", - "dGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhh", - "biBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1", - "bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChd1aW50MzIuZ3RlX2x0X2V4", - "Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5n", - "dGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/", + "dGUsIHJ1bGVzLmx0ZV0pIDogJycK3AEKGWZpeGVkMzIuZ3RlX2x0ZV9leGNs", + "dXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5n", + "dGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/", "ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBv", - "ciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0p", - "IDogJycK0wEKDnVpbnQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYg", - "cnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8", - "fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0", - "aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g", - "JXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChh1", - "aW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBy", - "dWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYg", - "dGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhh", - "biBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMn", - "LmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAFSA2d0ZRJ6", - "CgJpbhgGIAMoDUJqwkhnCmUKCXVpbnQzMi5pbhpYISh0aGlzIGluIGR5bihy", - "dWxlcylbJ2luJ10pID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9y", - "bWF0KFtkeW4ocnVsZXMpWydpbiddXSkgOiAnJ1ICaW4SfgoGbm90X2luGAcg", - "AygNQmfCSGQKYgoNdWludDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3Rf", - "aW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFty", - "dWxlcy5ub3RfaW5dKSA6ICcnUgVub3RJbkILCglsZXNzX3RoYW5CDgoMZ3Jl", - "YXRlcl90aGFuQggKBl9jb25zdCLyFAoLVUludDY0UnVsZXMSdgoFY29uc3QY", - "ASABKARCW8JIWApWCgx1aW50NjQuY29uc3QaRnRoaXMgIT0gcnVsZXMuY29u", - "c3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtydWxlcy5jb25z", - "dF0pIDogJydIAlIFY29uc3SIAQESjwEKAmx0GAIgASgEQn3CSHoKeAoJdWlu", - "dDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYg", - "dGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVz", - "Jy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAUgJsdBKiAQoDbHRlGAMgASgE", - "Qo0BwkiJAQqGAQoKdWludDY0Lmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFo", - "YXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0", - "IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5s", - "dGVdKSA6ICcnSABSA2x0ZRKgBwoCZ3QYBCABKARCjQfCSIkHCnsKCXVpbnQ2", - "NC5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRo", - "aXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAl", - "cycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHVpbnQ2NC5ndF9sdBqj", - "AWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRo", - "aXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBt", - "dXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3Jt", - "YXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnVpbnQ2NC5ndF9s", - "dF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVs", - "ZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5n", - "dCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRo", - "YW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoN", - "dWludDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+", - "PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1", - "bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBs", - "ZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1", - "bGVzLmx0ZV0pIDogJycKzAEKF3VpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrAB", + "ciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3Rl", + "LCBydWxlcy5sdGVdKSA6ICcnSAFSA2d0ZRJ7CgJpbhgGIAMoB0JrwkhoCmYK", + "CmZpeGVkMzIuaW4aWCEodGhpcyBpbiBkeW4ocnVsZXMpWydpbiddKSA/ICd2", + "YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZHluKHJ1bGVzKVsn", + "aW4nXV0pIDogJydSAmluEn8KBm5vdF9pbhgHIAMoB0JowkhlCmMKDmZpeGVk", + "MzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0", + "IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDog", + "JydSBW5vdEluEjYKB2V4YW1wbGUYCCADKAdCHMJIGQoXCg9maXhlZDMyLmV4", + "YW1wbGUaBHRydWVSB2V4YW1wbGUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5C", + "DgoMZ3JlYXRlcl90aGFuIrYVCgxGaXhlZDY0UnVsZXMScgoFY29uc3QYASAB", + "KAZCXMJIWQpXCg1maXhlZDY0LmNvbnN0GkZ0aGlzICE9IHJ1bGVzLmNvbnN0", + "ID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbcnVsZXMuY29uc3Rd", + "KSA6ICcnUgVjb25zdBKQAQoCbHQYAiABKAZCfsJIewp5CgpmaXhlZDY0Lmx0", + "GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+", + "PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3Jt", + "YXQoW3J1bGVzLmx0XSkgOiAnJ0gAUgJsdBKjAQoDbHRlGAMgASgGQo4BwkiK", + "AQqHAQoLZml4ZWQ2NC5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1", + "bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBs", + "ZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkg", + "OiAnJ0gAUgNsdGUSpQcKAmd0GAQgASgGQpIHwkiOBwp8CgpmaXhlZDY0Lmd0", + "Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8", + "PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5m", + "b3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq1AQoNZml4ZWQ2NC5ndF9sdBqjAWhh", + "cyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMg", + "Pj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQo", + "W3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKF2ZpeGVkNjQuZ3RfbHRf", + "ZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVz", + "Lmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3Qp", + "PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFu", + "ICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxQEKDmZp", + "eGVkNjQuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49", + "IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVs", + "ZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxl", + "c3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVs", + "ZXMubHRlXSkgOiAnJwrNAQoYZml4ZWQ2NC5ndF9sdGVfZXhjbHVzaXZlGrAB", "aGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1", "bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBt", "dXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwg", "dG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIAVIC", - "Z3QS7QcKA2d0ZRgFIAEoBELYB8JI1AcKiQEKCnVpbnQ2NC5ndGUaeyFoYXMo", - "cnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMu", - "Z3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g", - "JXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrDAQoNdWludDY0Lmd0ZV9s", - "dBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYm", - "ICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFs", - "dWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxl", - "c3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAn", - "JwrLAQoXdWludDY0Lmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQp", - "ICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlz", - "ICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVy", - "IHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQo", - "W3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtMBCg51aW50NjQuZ3RlX2x0", - "ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUg", - "JiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2", + "Z3QS8gcKA2d0ZRgFIAEoBkLdB8JI2QcKigEKC2ZpeGVkNjQuZ3RlGnshaGFz", + "KHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVz", + "Lmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRv", + "ICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKxAEKDmZpeGVkNjQuZ3Rl", + "X2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUg", + "JiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2", "YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQg", - "bGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwg", - "cnVsZXMubHRlXSkgOiAnJwrbAQoYdWludDY0Lmd0ZV9sdGVfZXhjbHVzaXZl", - "Gr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYm", - "IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFs", - "dWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVz", - "cyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVs", - "ZXMubHRlXSkgOiAnJ0gBUgNndGUSegoCaW4YBiADKARCasJIZwplCgl1aW50", - "NjQuaW4aWCEodGhpcyBpbiBkeW4ocnVsZXMpWydpbiddKSA/ICd2YWx1ZSBt", - "dXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZHluKHJ1bGVzKVsnaW4nXV0p", - "IDogJydSAmluEn4KBm5vdF9pbhgHIAMoBEJnwkhkCmIKDXVpbnQ2NC5ub3Rf", - "aW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJl", - "IGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJ1IFbm90", - "SW5CCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbkIICgZfY29uc3Qi8hQK", - "C1NJbnQzMlJ1bGVzEnYKBWNvbnN0GAEgASgRQlvCSFgKVgoMc2ludDMyLmNv", - "bnN0GkZ0aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11c3QgZXF1YWwg", - "JXMnLmZvcm1hdChbcnVsZXMuY29uc3RdKSA6ICcnSAJSBWNvbnN0iAEBEo8B", - "CgJsdBgCIAEoEUJ9wkh6CngKCXNpbnQzMi5sdBprIWhhcyhydWxlcy5ndGUp", - "ICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1", - "ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDog", - "JydIAFICbHQSogEKA2x0ZRgDIAEoEUKNAcJIiQEKhgEKCnNpbnQzMi5sdGUa", - "eCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4g", - "cnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwg", - "dG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAUgNsdGUSoAcKAmd0", - "GAQgASgRQo0HwkiJBwp7CglzaW50MzIuZ3QabiFoYXMocnVsZXMubHQpICYm", - "ICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUg", - "bXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6", - "ICcnCrQBCgxzaW50MzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVz", - "Lmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMg", - "PD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMg", - "YW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRd", - "KSA6ICcnCrwBChZzaW50MzIuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVz", - "Lmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0", - "aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVh", - "dGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0", - "LCBydWxlcy5sdF0pIDogJycKxAEKDXNpbnQzMi5ndF9sdGUasgFoYXMocnVs", - "ZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBy", - "dWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJl", - "IGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVz", - "Jy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCswBChdzaW50", - "MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVz", - "Lmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMg", - "PD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMg", - "b3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0", - "LCBydWxlcy5sdGVdKSA6ICcnSAFSAmd0Eu0HCgNndGUYBSABKBFC2AfCSNQH", - "CokBCgpzaW50MzIuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVz", - "Lmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3Jl", - "YXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0p", - "IDogJycKwwEKDXNpbnQzMi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1", - "bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0", - "aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFu", - "IG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVs", - "ZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKywEKF3NpbnQzMi5ndGVfbHRfZXhj", - "bHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0", - "ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8g", - "J3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9y", - "IGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkg", - "OiAnJwrTAQoOc2ludDMyLmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBy", - "dWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8", - "IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRo", - "YW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAl", - "cycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2wEKGHNp", - "bnQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1", - "bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0", - "aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFu", - "IG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycu", - "Zm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIAVIDZ3RlEnoK", - "AmluGAYgAygRQmrCSGcKZQoJc2ludDMyLmluGlghKHRoaXMgaW4gZHluKHJ1", - "bGVzKVsnaW4nXSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3Jt", - "YXQoW2R5bihydWxlcylbJ2luJ11dKSA6ICcnUgJpbhJ+CgZub3RfaW4YByAD", - "KBFCZ8JIZApiCg1zaW50MzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9p", - "biA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1", - "bGVzLm5vdF9pbl0pIDogJydSBW5vdEluQgsKCWxlc3NfdGhhbkIOCgxncmVh", - "dGVyX3RoYW5CCAoGX2NvbnN0IvIUCgtTSW50NjRSdWxlcxJ2CgVjb25zdBgB", - "IAEoEkJbwkhYClYKDHNpbnQ2NC5jb25zdBpGdGhpcyAhPSBydWxlcy5jb25z", - "dCA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW3J1bGVzLmNvbnN0", - "XSkgOiAnJ0gCUgVjb25zdIgBARKPAQoCbHQYAiABKBJCfcJIegp4CglzaW50", - "NjQubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0", - "aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMn", - "LmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSABSAmx0EqIBCgNsdGUYAyABKBJC", - "jQHCSIkBCoYBCgpzaW50NjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhh", + "bGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6", + "ICcnCswBChhmaXhlZDY0Lmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMu", + "bHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0", + "aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVh", + "dGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3Jt", + "YXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtQBCg9maXhlZDY0Lmd0", + "ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMu", + "Z3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUp", + "PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMg", + "YW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5n", + "dGUsIHJ1bGVzLmx0ZV0pIDogJycK3AEKGWZpeGVkNjQuZ3RlX2x0ZV9leGNs", + "dXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5n", + "dGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/", + "ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBv", + "ciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3Rl", + "LCBydWxlcy5sdGVdKSA6ICcnSAFSA2d0ZRJ7CgJpbhgGIAMoBkJrwkhoCmYK", + "CmZpeGVkNjQuaW4aWCEodGhpcyBpbiBkeW4ocnVsZXMpWydpbiddKSA/ICd2", + "YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZHluKHJ1bGVzKVsn", + "aW4nXV0pIDogJydSAmluEn8KBm5vdF9pbhgHIAMoBkJowkhlCmMKDmZpeGVk", + "NjQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0", + "IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDog", + "JydSBW5vdEluEjYKB2V4YW1wbGUYCCADKAZCHMJIGQoXCg9maXhlZDY0LmV4", + "YW1wbGUaBHRydWVSB2V4YW1wbGUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5C", + "DgoMZ3JlYXRlcl90aGFuIsgVCg1TRml4ZWQzMlJ1bGVzEnMKBWNvbnN0GAEg", + "ASgPQl3CSFoKWAoOc2ZpeGVkMzIuY29uc3QaRnRoaXMgIT0gcnVsZXMuY29u", + "c3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtydWxlcy5jb25z", + "dF0pIDogJydSBWNvbnN0EpEBCgJsdBgCIAEoD0J/wkh8CnoKC3NmaXhlZDMy", + "Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhp", + "cyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5m", + "b3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAUgJsdBKkAQoDbHRlGAMgASgPQo8B", + "wkiLAQqIAQoMc2ZpeGVkMzIubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhh", "cyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3Qg", "YmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0", - "ZV0pIDogJydIAFIDbHRlEqAHCgJndBgEIAEoEkKNB8JIiQcKewoJc2ludDY0", - "Lmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhp", - "cyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVz", - "Jy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq0AQoMc2ludDY0Lmd0X2x0GqMB", - "aGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhp", - "cyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11", - "c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1h", - "dChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq8AQoWc2ludDY0Lmd0X2x0", - "X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxl", - "cy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0", - "KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhh", - "biAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsQBCg1z", - "aW50NjQuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49", - "IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVs", - "ZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxl", - "c3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVs", - "ZXMubHRlXSkgOiAnJwrMAQoXc2ludDY0Lmd0X2x0ZV9leGNsdXNpdmUasAFo", - "YXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVs", - "ZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11", - "c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0", - "byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBUgJn", - "dBLtBwoDZ3RlGAUgASgSQtgHwkjUBwqJAQoKc2ludDY0Lmd0ZRp7IWhhcyhy", - "dWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5n", - "dGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAl", - "cycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg1zaW50NjQuZ3RlX2x0", - "GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYg", - "KHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1", - "ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVz", - "cyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcn", - "CssBChdzaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkg", - "JiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMg", - "JiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIg", - "dGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChb", - "cnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnNpbnQ2NC5ndGVfbHRl", - "GsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAm", - "JiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3Zh", - "bHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBs", - "ZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBy", - "dWxlcy5sdGVdKSA6ICcnCtsBChhzaW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUa", - "vgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYg", - "KHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1", - "ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNz", - "IHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxl", - "cy5sdGVdKSA6ICcnSAFSA2d0ZRJ6CgJpbhgGIAMoEkJqwkhnCmUKCXNpbnQ2", - "NC5pbhpYISh0aGlzIGluIGR5bihydWxlcylbJ2luJ10pID8gJ3ZhbHVlIG11", - "c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtkeW4ocnVsZXMpWydpbiddXSkg", - "OiAnJ1ICaW4SfgoGbm90X2luGAcgAygSQmfCSGQKYgoNc2ludDY0Lm5vdF9p", - "bhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUg", - "aW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnUgVub3RJ", - "bkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuQggKBl9jb25zdCKCFQoM", - "Rml4ZWQzMlJ1bGVzEncKBWNvbnN0GAEgASgHQlzCSFkKVwoNZml4ZWQzMi5j", - "b25zdBpGdGhpcyAhPSBydWxlcy5jb25zdCA/ICd2YWx1ZSBtdXN0IGVxdWFs", - "ICVzJy5mb3JtYXQoW3J1bGVzLmNvbnN0XSkgOiAnJ0gCUgVjb25zdIgBARKQ", - "AQoCbHQYAiABKAdCfsJIewp5CgpmaXhlZDMyLmx0GmshaGFzKHJ1bGVzLmd0", - "ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3Zh", - "bHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkg", - "OiAnJ0gAUgJsdBKjAQoDbHRlGAMgASgHQo4BwkiKAQqHAQoLZml4ZWQzMi5s", - "dGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlz", - "ID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1", - "YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAUgNsdGUSpQcK", - "Amd0GAQgASgHQpIHwkiOBwp8CgpmaXhlZDMyLmd0Gm4haGFzKHJ1bGVzLmx0", - "KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3Zh", - "bHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0", - "XSkgOiAnJwq1AQoNZml4ZWQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYg", - "cnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwg", + "ZV0pIDogJydIAFIDbHRlEqoHCgJndBgEIAEoD0KXB8JIkwcKfQoLc2ZpeGVk", + "MzIuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0", + "aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4g", + "JXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrYBCg5zZml4ZWQzMi5ndF9s", + "dBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYg", + "KHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1", + "ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5m", + "b3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvgEKGHNmaXhlZDMy", + "Lmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQg", + "PCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1", + "bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxl", + "c3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcn", + "CsYBCg9zZml4ZWQzMi5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxl", + "cy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhp", + "cyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAl", + "cyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVz", + "Lmd0LCBydWxlcy5sdGVdKSA6ICcnCs4BChlzZml4ZWQzMi5ndF9sdGVfZXhj", + "bHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMu", + "Z3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/", + "ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4g", + "b3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0p", + "IDogJydIAVICZ3QS9wcKA2d0ZRgFIAEoD0LiB8JI3gcKiwEKDHNmaXhlZDMy", + "Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRo", + "aXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBv", + "ciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsUBCg9z", + "Zml4ZWQzMi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49", + "IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVs", + "ZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFs", + "IHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBy", + "dWxlcy5sdF0pIDogJycKzQEKGXNmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUa", + "rwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChy", + "dWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUg", + "bXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0", + "aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtUB", + "ChBzZml4ZWQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMu", + "bHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlz", + "IDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9y", + "IGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZv", + "cm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCt0BChpzZml4ZWQz", + "Mi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVz", + "Lmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlz", + "IDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9y", + "IGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9y", + "bWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIAVIDZ3RlEnwKAmlu", + "GAYgAygPQmzCSGkKZwoLc2ZpeGVkMzIuaW4aWCEodGhpcyBpbiBkeW4ocnVs", + "ZXMpWydpbiddKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1h", + "dChbZHluKHJ1bGVzKVsnaW4nXV0pIDogJydSAmluEoABCgZub3RfaW4YByAD", + "KA9CacJIZgpkCg9zZml4ZWQzMi5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90", + "X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChb", + "cnVsZXMubm90X2luXSkgOiAnJ1IFbm90SW4SNwoHZXhhbXBsZRgIIAMoD0Id", + "wkgaChgKEHNmaXhlZDMyLmV4YW1wbGUaBHRydWVSB2V4YW1wbGUqCQjoBxCA", + "gICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIsgVCg1TRml4ZWQ2", + "NFJ1bGVzEnMKBWNvbnN0GAEgASgQQl3CSFoKWAoOc2ZpeGVkNjQuY29uc3Qa", + "RnRoaXMgIT0gcnVsZXMuY29uc3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycu", + "Zm9ybWF0KFtydWxlcy5jb25zdF0pIDogJydSBWNvbnN0EpEBCgJsdBgCIAEo", + "EEJ/wkh8CnoKC3NmaXhlZDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhh", + "cyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3Qg", + "YmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAUgJs", + "dBKkAQoDbHRlGAMgASgQQo8BwkiLAQqIAQoMc2ZpeGVkNjQubHRlGnghaGFz", + "KHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVz", + "Lmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVz", + "Jy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIAFIDbHRlEqoHCgJndBgEIAEo", + "EEKXB8JIkwcKfQoLc2ZpeGVkNjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFo", + "YXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVz", + "dCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcn", + "CrYBCg5zZml4ZWQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMu", + "bHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8", + "PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBh", + "bmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0p", + "IDogJycKvgEKGHNmaXhlZDY0Lmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxl", + "cy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0g", + "dGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3Jl", + "YXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5n", + "dCwgcnVsZXMubHRdKSA6ICcnCsYBCg9zZml4ZWQ2NC5ndF9sdGUasgFoYXMo", + "cnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMg", + "PiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRv", + "ICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCs4BChlz", + "Zml4ZWQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYg", + "cnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYg", "dGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhh", - "biAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxl", - "cy5sdF0pIDogJycKvQEKF2ZpeGVkMzIuZ3RfbHRfZXhjbHVzaXZlGqEBaGFz", - "KHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5s", - "dCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBi", - "ZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1", - "bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxQEKDmZpeGVkMzIuZ3RfbHRlGrIB", - "aGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0", - "aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUg", - "bXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVh", - "bCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrN", - "AQoYZml4ZWQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkg", - "JiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMg", - "JiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIg", - "dGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChb", - "cnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIAVICZ3QS8gcKA2d0ZRgFIAEo", - "B0LdB8JI2QcKigEKC2ZpeGVkMzIuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAh", - "aGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11", - "c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1", - "bGVzLmd0ZV0pIDogJycKxAEKDmZpeGVkMzIuZ3RlX2x0GrEBaGFzKHJ1bGVz", - "Lmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVs", - "ZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdy", - "ZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5m", - "b3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCswBChhmaXhlZDMy", + "biAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVs", + "ZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIAVICZ3QS9wcKA2d0ZRgFIAEoEELi", + "B8JI3gcKiwEKDHNmaXhlZDY0Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhh", + "cyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxl", + "cy5ndGVdKSA6ICcnCsUBCg9zZml4ZWQ2NC5ndGVfbHQasQFoYXMocnVsZXMu", + "bHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxl", + "cy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3Jl", + "YXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZv", + "cm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzQEKGXNmaXhlZDY0", "Lmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0", "IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBy", "dWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1", "YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwg", - "cnVsZXMubHRdKSA6ICcnCtQBCg9maXhlZDMyLmd0ZV9sdGUawAFoYXMocnVs", - "ZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4g", - "cnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBi", - "ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBv", + "cnVsZXMubHRdKSA6ICcnCtUBChBzZml4ZWQ2NC5ndGVfbHRlGsABaGFzKHJ1", + "bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+", + "IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3Qg", + "YmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4g", + "b3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVd", + "KSA6ICcnCt0BChpzZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhy", + "dWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMu", + "bHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3Qg", + "YmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBv", "ciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0p", - "IDogJycK3AEKGWZpeGVkMzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVs", - "ZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0", - "ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJl", - "IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3Ig", - "ZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6", - "ICcnSAFSA2d0ZRJ7CgJpbhgGIAMoB0JrwkhoCmYKCmZpeGVkMzIuaW4aWCEo", + "IDogJydIAVIDZ3RlEnwKAmluGAYgAygQQmzCSGkKZwoLc2ZpeGVkNjQuaW4a", + "WCEodGhpcyBpbiBkeW4ocnVsZXMpWydpbiddKSA/ICd2YWx1ZSBtdXN0IGJl", + "IGluIGxpc3QgJXMnLmZvcm1hdChbZHluKHJ1bGVzKVsnaW4nXV0pIDogJydS", + "AmluEoABCgZub3RfaW4YByADKBBCacJIZgpkCg9zZml4ZWQ2NC5ub3RfaW4a", + "UXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGlu", + "IGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJ1IFbm90SW4S", + "NwoHZXhhbXBsZRgIIAMoEEIdwkgaChgKEHNmaXhlZDY0LmV4YW1wbGUaBHRy", + "dWVSB2V4YW1wbGUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRl", + "cl90aGFuIrwBCglCb29sUnVsZXMSbwoFY29uc3QYASABKAhCWcJIVgpUCgpi", + "b29sLmNvbnN0GkZ0aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11c3Qg", + "ZXF1YWwgJXMnLmZvcm1hdChbcnVsZXMuY29uc3RdKSA6ICcnUgVjb25zdBIz", + "CgdleGFtcGxlGAIgAygIQhnCSBYKFAoMYm9vbC5leGFtcGxlGgR0cnVlUgdl", + "eGFtcGxlKgkI6AcQgICAgAIioTkKC1N0cmluZ1J1bGVzEnMKBWNvbnN0GAEg", + "ASgJQl3CSFoKWAoMc3RyaW5nLmNvbnN0Gkh0aGlzICE9IHJ1bGVzLmNvbnN0", + "ID8gJ3ZhbHVlIG11c3QgZXF1YWwgYCVzYCcuZm9ybWF0KFtydWxlcy5jb25z", + "dF0pIDogJydSBWNvbnN0EoMBCgNsZW4YEyABKARCccJIbgpsCgpzdHJpbmcu", + "bGVuGl51aW50KHRoaXMuc2l6ZSgpKSAhPSBydWxlcy5sZW4gPyAndmFsdWUg", + "bGVuZ3RoIG11c3QgYmUgJXMgY2hhcmFjdGVycycuZm9ybWF0KFtydWxlcy5s", + "ZW5dKSA6ICcnUgNsZW4SoQEKB21pbl9sZW4YAiABKARChwHCSIMBCoABCg5z", + "dHJpbmcubWluX2xlbhpudWludCh0aGlzLnNpemUoKSkgPCBydWxlcy5taW5f", + "bGVuID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJh", + "Y3RlcnMnLmZvcm1hdChbcnVsZXMubWluX2xlbl0pIDogJydSBm1pbkxlbhKf", + "AQoHbWF4X2xlbhgDIAEoBEKFAcJIgQEKfwoOc3RyaW5nLm1heF9sZW4abXVp", + "bnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICd2YWx1ZSBsZW5n", + "dGggbXVzdCBiZSBhdCBtb3N0ICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVs", + "ZXMubWF4X2xlbl0pIDogJydSBm1heExlbhKlAQoJbGVuX2J5dGVzGBQgASgE", + "QocBwkiDAQqAAQoQc3RyaW5nLmxlbl9ieXRlcxpsdWludChieXRlcyh0aGlz", + "KS5zaXplKCkpICE9IHJ1bGVzLmxlbl9ieXRlcyA/ICd2YWx1ZSBsZW5ndGgg", + "bXVzdCBiZSAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5sZW5fYnl0ZXNdKSA6", + "ICcnUghsZW5CeXRlcxKtAQoJbWluX2J5dGVzGAQgASgEQo8BwkiLAQqIAQoQ", + "c3RyaW5nLm1pbl9ieXRlcxp0dWludChieXRlcyh0aGlzKS5zaXplKCkpIDwg", + "cnVsZXMubWluX2J5dGVzID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlIGF0IGxl", + "YXN0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1pbl9ieXRlc10pIDogJydS", + "CG1pbkJ5dGVzEqwBCgltYXhfYnl0ZXMYBSABKARCjgHCSIoBCocBChBzdHJp", + "bmcubWF4X2J5dGVzGnN1aW50KGJ5dGVzKHRoaXMpLnNpemUoKSkgPiBydWxl", + "cy5tYXhfYnl0ZXMgPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgYXQgbW9zdCAl", + "cyBieXRlcycuZm9ybWF0KFtydWxlcy5tYXhfYnl0ZXNdKSA6ICcnUghtYXhC", + "eXRlcxKWAQoHcGF0dGVybhgGIAEoCUJ8wkh5CncKDnN0cmluZy5wYXR0ZXJu", + "GmUhdGhpcy5tYXRjaGVzKHJ1bGVzLnBhdHRlcm4pID8gJ3ZhbHVlIGRvZXMg", + "bm90IG1hdGNoIHJlZ2V4IHBhdHRlcm4gYCVzYCcuZm9ybWF0KFtydWxlcy5w", + "YXR0ZXJuXSkgOiAnJ1IHcGF0dGVybhKMAQoGcHJlZml4GAcgASgJQnTCSHEK", + "bwoNc3RyaW5nLnByZWZpeBpeIXRoaXMuc3RhcnRzV2l0aChydWxlcy5wcmVm", + "aXgpID8gJ3ZhbHVlIGRvZXMgbm90IGhhdmUgcHJlZml4IGAlc2AnLmZvcm1h", + "dChbcnVsZXMucHJlZml4XSkgOiAnJ1IGcHJlZml4EooBCgZzdWZmaXgYCCAB", + "KAlCcsJIbwptCg1zdHJpbmcuc3VmZml4GlwhdGhpcy5lbmRzV2l0aChydWxl", + "cy5zdWZmaXgpID8gJ3ZhbHVlIGRvZXMgbm90IGhhdmUgc3VmZml4IGAlc2An", + "LmZvcm1hdChbcnVsZXMuc3VmZml4XSkgOiAnJ1IGc3VmZml4EpoBCghjb250", + "YWlucxgJIAEoCUJ+wkh7CnkKD3N0cmluZy5jb250YWlucxpmIXRoaXMuY29u", + "dGFpbnMocnVsZXMuY29udGFpbnMpID8gJ3ZhbHVlIGRvZXMgbm90IGNvbnRh", + "aW4gc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMuY29udGFpbnNdKSA6", + "ICcnUghjb250YWlucxKlAQoMbm90X2NvbnRhaW5zGBcgASgJQoEBwkh+CnwK", + "E3N0cmluZy5ub3RfY29udGFpbnMaZXRoaXMuY29udGFpbnMocnVsZXMubm90", + "X2NvbnRhaW5zKSA/ICd2YWx1ZSBjb250YWlucyBzdWJzdHJpbmcgYCVzYCcu", + "Zm9ybWF0KFtydWxlcy5ub3RfY29udGFpbnNdKSA6ICcnUgtub3RDb250YWlu", + "cxJ6CgJpbhgKIAMoCUJqwkhnCmUKCXN0cmluZy5pbhpYISh0aGlzIGluIGR5", + "bihydWxlcylbJ2luJ10pID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycu", + "Zm9ybWF0KFtkeW4ocnVsZXMpWydpbiddXSkgOiAnJ1ICaW4SfgoGbm90X2lu", + "GAsgAygJQmfCSGQKYgoNc3RyaW5nLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5u", + "b3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0", + "KFtydWxlcy5ub3RfaW5dKSA6ICcnUgVub3RJbhLmAQoFZW1haWwYDCABKAhC", + "zQHCSMkBCmEKDHN0cmluZy5lbWFpbBIjdmFsdWUgbXVzdCBiZSBhIHZhbGlk", + "IGVtYWlsIGFkZHJlc3MaLCFydWxlcy5lbWFpbCB8fCB0aGlzID09ICcnIHx8", + "IHRoaXMuaXNFbWFpbCgpCmQKEnN0cmluZy5lbWFpbF9lbXB0eRIydmFsdWUg", + "aXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3Ma", + "GiFydWxlcy5lbWFpbCB8fCB0aGlzICE9ICcnSABSBWVtYWlsEvEBCghob3N0", + "bmFtZRgNIAEoCELSAcJIzgEKZQoPc3RyaW5nLmhvc3RuYW1lEh52YWx1ZSBt", + "dXN0IGJlIGEgdmFsaWQgaG9zdG5hbWUaMiFydWxlcy5ob3N0bmFtZSB8fCB0", + "aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpCmUKFXN0cmluZy5ob3N0", + "bmFtZV9lbXB0eRItdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZh", + "bGlkIGhvc3RuYW1lGh0hcnVsZXMuaG9zdG5hbWUgfHwgdGhpcyAhPSAnJ0gA", + "Ughob3N0bmFtZRLLAQoCaXAYDiABKAhCuAHCSLQBClUKCXN0cmluZy5pcBIg", + "dmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQIGFkZHJlc3MaJiFydWxlcy5pcCB8", + "fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCgpClsKD3N0cmluZy5pcF9lbXB0", + "eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFk", + "ZHJlc3MaFyFydWxlcy5pcCB8fCB0aGlzICE9ICcnSABSAmlwEtwBCgRpcHY0", + "GA8gASgIQsUBwkjBAQpcCgtzdHJpbmcuaXB2NBIidmFsdWUgbXVzdCBiZSBh", + "IHZhbGlkIElQdjQgYWRkcmVzcxopIXJ1bGVzLmlwdjQgfHwgdGhpcyA9PSAn", + "JyB8fCB0aGlzLmlzSXAoNCkKYQoRc3RyaW5nLmlwdjRfZW1wdHkSMXZhbHVl", + "IGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY0IGFkZHJlc3Ma", + "GSFydWxlcy5pcHY0IHx8IHRoaXMgIT0gJydIAFIEaXB2NBLcAQoEaXB2NhgQ", + "IAEoCELFAcJIwQEKXAoLc3RyaW5nLmlwdjYSInZhbHVlIG11c3QgYmUgYSB2", + "YWxpZCBJUHY2IGFkZHJlc3MaKSFydWxlcy5pcHY2IHx8IHRoaXMgPT0gJycg", + "fHwgdGhpcy5pc0lwKDYpCmEKEXN0cmluZy5pcHY2X2VtcHR5EjF2YWx1ZSBp", + "cyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NiBhZGRyZXNzGhkh", + "cnVsZXMuaXB2NiB8fCB0aGlzICE9ICcnSABSBGlwdjYSxAEKA3VyaRgRIAEo", + "CEKvAcJIqwEKUQoKc3RyaW5nLnVyaRIZdmFsdWUgbXVzdCBiZSBhIHZhbGlk", + "IFVSSRooIXJ1bGVzLnVyaSB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNVcmko", + "KQpWChBzdHJpbmcudXJpX2VtcHR5Eih2YWx1ZSBpcyBlbXB0eSwgd2hpY2gg", + "aXMgbm90IGEgdmFsaWQgVVJJGhghcnVsZXMudXJpIHx8IHRoaXMgIT0gJydI", + "AFIDdXJpEm4KB3VyaV9yZWYYEiABKAhCU8JIUApOCg5zdHJpbmcudXJpX3Jl", + "ZhIZdmFsdWUgbXVzdCBiZSBhIHZhbGlkIFVSSRohIXJ1bGVzLnVyaV9yZWYg", + "fHwgdGhpcy5pc1VyaVJlZigpSABSBnVyaVJlZhKZAgoHYWRkcmVzcxgVIAEo", + "CEL8AcJI+AEKgQEKDnN0cmluZy5hZGRyZXNzEi12YWx1ZSBtdXN0IGJlIGEg", + "dmFsaWQgaG9zdG5hbWUsIG9yIGlwIGFkZHJlc3MaQCFydWxlcy5hZGRyZXNz", + "IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0hvc3RuYW1lKCkgfHwgdGhpcy5p", + "c0lwKCkKcgoUc3RyaW5nLmFkZHJlc3NfZW1wdHkSPHZhbHVlIGlzIGVtcHR5", + "LCB3aGljaCBpcyBub3QgYSB2YWxpZCBob3N0bmFtZSwgb3IgaXAgYWRkcmVz", + "cxocIXJ1bGVzLmFkZHJlc3MgfHwgdGhpcyAhPSAnJ0gAUgdhZGRyZXNzEp4C", + "CgR1dWlkGBYgASgIQocCwkiDAgqlAQoLc3RyaW5nLnV1aWQSGnZhbHVlIG11", + "c3QgYmUgYSB2YWxpZCBVVUlEGnohcnVsZXMudXVpZCB8fCB0aGlzID09ICcn", + "IHx8IHRoaXMubWF0Y2hlcygnXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZd", + "ezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZd", + "ezEyfSQnKQpZChFzdHJpbmcudXVpZF9lbXB0eRIpdmFsdWUgaXMgZW1wdHks", + "IHdoaWNoIGlzIG5vdCBhIHZhbGlkIFVVSUQaGSFydWxlcy51dWlkIHx8IHRo", + "aXMgIT0gJydIAFIEdXVpZBL3AQoFdHV1aWQYISABKAhC3gHCSNoBCnMKDHN0", + "cmluZy50dXVpZBIidmFsdWUgbXVzdCBiZSBhIHZhbGlkIHRyaW1tZWQgVVVJ", + "RBo/IXJ1bGVzLnR1dWlkIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVz", + "KCdeWzAtOWEtZkEtRl17MzJ9JCcpCmMKEnN0cmluZy50dXVpZF9lbXB0eRIx", + "dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIHRyaW1tZWQg", + "VVVJRBoaIXJ1bGVzLnR1dWlkIHx8IHRoaXMgIT0gJydIAFIFdHV1aWQSpwIK", + "EWlwX3dpdGhfcHJlZml4bGVuGBogASgIQvgBwkj0AQp4ChhzdHJpbmcuaXBf", + "d2l0aF9wcmVmaXhsZW4SH3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUCBwcmVm", + "aXgaOyFydWxlcy5pcF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8", + "IHRoaXMuaXNJcFByZWZpeCgpCngKHnN0cmluZy5pcF93aXRoX3ByZWZpeGxl", + "bl9lbXB0eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlk", + "IElQIHByZWZpeBomIXJ1bGVzLmlwX3dpdGhfcHJlZml4bGVuIHx8IHRoaXMg", + "IT0gJydIAFIPaXBXaXRoUHJlZml4bGVuEuICChNpcHY0X3dpdGhfcHJlZml4", + "bGVuGBsgASgIQq8CwkirAgqTAQoac3RyaW5nLmlwdjRfd2l0aF9wcmVmaXhs", + "ZW4SNXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3Mgd2l0aCBw", + "cmVmaXggbGVuZ3RoGj4hcnVsZXMuaXB2NF93aXRoX3ByZWZpeGxlbiB8fCB0", + "aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg0KQqSAQogc3RyaW5nLmlw", + "djRfd2l0aF9wcmVmaXhsZW5fZW1wdHkSRHZhbHVlIGlzIGVtcHR5LCB3aGlj", + "aCBpcyBub3QgYSB2YWxpZCBJUHY0IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVu", + "Z3RoGighcnVsZXMuaXB2NF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcn", + "SABSEWlwdjRXaXRoUHJlZml4bGVuEuICChNpcHY2X3dpdGhfcHJlZml4bGVu", + "GBwgASgIQq8CwkirAgqTAQoac3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW4S", + "NXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVm", + "aXggbGVuZ3RoGj4hcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlz", + "ID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg2KQqSAQogc3RyaW5nLmlwdjZf", + "d2l0aF9wcmVmaXhsZW5fZW1wdHkSRHZhbHVlIGlzIGVtcHR5LCB3aGljaCBp", + "cyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3Ro", + "GighcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcnSABS", + "EWlwdjZXaXRoUHJlZml4bGVuEvwBCglpcF9wcmVmaXgYHSABKAhC3AHCSNgB", + "CmwKEHN0cmluZy5pcF9wcmVmaXgSH3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBJ", + "UCBwcmVmaXgaNyFydWxlcy5pcF9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0", + "aGlzLmlzSXBQcmVmaXgodHJ1ZSkKaAoWc3RyaW5nLmlwX3ByZWZpeF9lbXB0", + "eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIHBy", + "ZWZpeBoeIXJ1bGVzLmlwX3ByZWZpeCB8fCB0aGlzICE9ICcnSABSCGlwUHJl", + "Zml4Eo8CCgtpcHY0X3ByZWZpeBgeIAEoCELrAcJI5wEKdQoSc3RyaW5nLmlw", + "djRfcHJlZml4EiF2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NCBwcmVmaXga", + "PCFydWxlcy5pcHY0X3ByZWZpeCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJ", + "cFByZWZpeCg0LCB0cnVlKQpuChhzdHJpbmcuaXB2NF9wcmVmaXhfZW1wdHkS", + "MHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY0IHBy", + "ZWZpeBogIXJ1bGVzLmlwdjRfcHJlZml4IHx8IHRoaXMgIT0gJydIAFIKaXB2", + "NFByZWZpeBKPAgoLaXB2Nl9wcmVmaXgYHyABKAhC6wHCSOcBCnUKEnN0cmlu", + "Zy5pcHY2X3ByZWZpeBIhdmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQdjYgcHJl", + "Zml4GjwhcnVsZXMuaXB2Nl9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0aGlz", + "LmlzSXBQcmVmaXgoNiwgdHJ1ZSkKbgoYc3RyaW5nLmlwdjZfcHJlZml4X2Vt", + "cHR5EjB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2", + "NiBwcmVmaXgaICFydWxlcy5pcHY2X3ByZWZpeCB8fCB0aGlzICE9ICcnSABS", + "CmlwdjZQcmVmaXgSwgIKDWhvc3RfYW5kX3BvcnQYICABKAhCmwLCSJcCCpkB", + "ChRzdHJpbmcuaG9zdF9hbmRfcG9ydBJBdmFsdWUgbXVzdCBiZSBhIHZhbGlk", + "IGhvc3QgKGhvc3RuYW1lIG9yIElQIGFkZHJlc3MpIGFuZCBwb3J0IHBhaXIa", + "PiFydWxlcy5ob3N0X2FuZF9wb3J0IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5p", + "c0hvc3RBbmRQb3J0KHRydWUpCnkKGnN0cmluZy5ob3N0X2FuZF9wb3J0X2Vt", + "cHR5Ejd2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgaG9z", + "dCBhbmQgcG9ydCBwYWlyGiIhcnVsZXMuaG9zdF9hbmRfcG9ydCB8fCB0aGlz", + "ICE9ICcnSABSC2hvc3RBbmRQb3J0ErgFChB3ZWxsX2tub3duX3JlZ2V4GBgg", + "ASgOMhguYnVmLnZhbGlkYXRlLktub3duUmVnZXhC8QTCSO0ECvABCiNzdHJp", + "bmcud2VsbF9rbm93bl9yZWdleC5oZWFkZXJfbmFtZRImdmFsdWUgbXVzdCBi", + "ZSBhIHZhbGlkIEhUVFAgaGVhZGVyIG5hbWUaoAFydWxlcy53ZWxsX2tub3du", + "X3JlZ2V4ICE9IDEgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoIWhh", + "cyhydWxlcy5zdHJpY3QpIHx8IHJ1bGVzLnN0cmljdCA/J146P1swLTlhLXpB", + "LVohIyQlJlwnKistLl5ffH5ceDYwXSskJyA6J15bXlx1MDAwMFx1MDAwQVx1", + "MDAwRF0rJCcpCo0BCilzdHJpbmcud2VsbF9rbm93bl9yZWdleC5oZWFkZXJf", + "bmFtZV9lbXB0eRI1dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZh", + "bGlkIEhUVFAgaGVhZGVyIG5hbWUaKXJ1bGVzLndlbGxfa25vd25fcmVnZXgg", + "IT0gMSB8fCB0aGlzICE9ICcnCucBCiRzdHJpbmcud2VsbF9rbm93bl9yZWdl", + "eC5oZWFkZXJfdmFsdWUSJ3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBIVFRQIGhl", + "YWRlciB2YWx1ZRqVAXJ1bGVzLndlbGxfa25vd25fcmVnZXggIT0gMiB8fCB0", + "aGlzLm1hdGNoZXMoIWhhcyhydWxlcy5zdHJpY3QpIHx8IHJ1bGVzLnN0cmlj", + "dCA/J15bXlx1MDAwMC1cdTAwMDhcdTAwMEEtXHUwMDFGXHUwMDdGXSokJyA6", + "J15bXlx1MDAwMFx1MDAwQVx1MDAwRF0qJCcpSABSDndlbGxLbm93blJlZ2V4", + "EhYKBnN0cmljdBgZIAEoCFIGc3RyaWN0EjUKB2V4YW1wbGUYIiADKAlCG8JI", + "GAoWCg5zdHJpbmcuZXhhbXBsZRoEdHJ1ZVIHZXhhbXBsZSoJCOgHEICAgIAC", + "QgwKCndlbGxfa25vd24ioxEKCkJ5dGVzUnVsZXMSbQoFY29uc3QYASABKAxC", + "V8JIVApSCgtieXRlcy5jb25zdBpDdGhpcyAhPSBydWxlcy5jb25zdCA/ICd2", + "YWx1ZSBtdXN0IGJlICV4Jy5mb3JtYXQoW3J1bGVzLmNvbnN0XSkgOiAnJ1IF", + "Y29uc3QSfQoDbGVuGA0gASgEQmvCSGgKZgoJYnl0ZXMubGVuGll1aW50KHRo", + "aXMuc2l6ZSgpKSAhPSBydWxlcy5sZW4gPyAndmFsdWUgbGVuZ3RoIG11c3Qg", + "YmUgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubGVuXSkgOiAnJ1IDbGVuEpgB", + "CgdtaW5fbGVuGAIgASgEQn/CSHwKegoNYnl0ZXMubWluX2xlbhppdWludCh0", + "aGlzLnNpemUoKSkgPCBydWxlcy5taW5fbGVuID8gJ3ZhbHVlIGxlbmd0aCBt", + "dXN0IGJlIGF0IGxlYXN0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1pbl9s", + "ZW5dKSA6ICcnUgZtaW5MZW4SkAEKB21heF9sZW4YAyABKARCd8JIdApyCg1i", + "eXRlcy5tYXhfbGVuGmF1aW50KHRoaXMuc2l6ZSgpKSA+IHJ1bGVzLm1heF9s", + "ZW4gPyAndmFsdWUgbXVzdCBiZSBhdCBtb3N0ICVzIGJ5dGVzJy5mb3JtYXQo", + "W3J1bGVzLm1heF9sZW5dKSA6ICcnUgZtYXhMZW4SmQEKB3BhdHRlcm4YBCAB", + "KAlCf8JIfAp6Cg1ieXRlcy5wYXR0ZXJuGmkhc3RyaW5nKHRoaXMpLm1hdGNo", + "ZXMocnVsZXMucGF0dGVybikgPyAndmFsdWUgbXVzdCBtYXRjaCByZWdleCBw", + "YXR0ZXJuIGAlc2AnLmZvcm1hdChbcnVsZXMucGF0dGVybl0pIDogJydSB3Bh", + "dHRlcm4SiQEKBnByZWZpeBgFIAEoDEJxwkhuCmwKDGJ5dGVzLnByZWZpeBpc", + "IXRoaXMuc3RhcnRzV2l0aChydWxlcy5wcmVmaXgpID8gJ3ZhbHVlIGRvZXMg", + "bm90IGhhdmUgcHJlZml4ICV4Jy5mb3JtYXQoW3J1bGVzLnByZWZpeF0pIDog", + "JydSBnByZWZpeBKHAQoGc3VmZml4GAYgASgMQm/CSGwKagoMYnl0ZXMuc3Vm", + "Zml4GlohdGhpcy5lbmRzV2l0aChydWxlcy5zdWZmaXgpID8gJ3ZhbHVlIGRv", + "ZXMgbm90IGhhdmUgc3VmZml4ICV4Jy5mb3JtYXQoW3J1bGVzLnN1ZmZpeF0p", + "IDogJydSBnN1ZmZpeBKNAQoIY29udGFpbnMYByABKAxCccJIbgpsCg5ieXRl", + "cy5jb250YWlucxpaIXRoaXMuY29udGFpbnMocnVsZXMuY29udGFpbnMpID8g", + "J3ZhbHVlIGRvZXMgbm90IGNvbnRhaW4gJXgnLmZvcm1hdChbcnVsZXMuY29u", + "dGFpbnNdKSA6ICcnUghjb250YWlucxKbAQoCaW4YCCADKAxCigHCSIYBCoMB", + "CghieXRlcy5pbhp3ZHluKHJ1bGVzKVsnaW4nXS5zaXplKCkgPiAwICYmICEo", "dGhpcyBpbiBkeW4ocnVsZXMpWydpbiddKSA/ICd2YWx1ZSBtdXN0IGJlIGlu", "IGxpc3QgJXMnLmZvcm1hdChbZHluKHJ1bGVzKVsnaW4nXV0pIDogJydSAmlu", - "En8KBm5vdF9pbhgHIAMoB0JowkhlCmMKDmZpeGVkMzIubm90X2luGlF0aGlz", - "IGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0", - "ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJydSBW5vdEluQgsKCWxl", - "c3NfdGhhbkIOCgxncmVhdGVyX3RoYW5CCAoGX2NvbnN0IoIVCgxGaXhlZDY0", - "UnVsZXMSdwoFY29uc3QYASABKAZCXMJIWQpXCg1maXhlZDY0LmNvbnN0GkZ0", - "aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZv", - "cm1hdChbcnVsZXMuY29uc3RdKSA6ICcnSAJSBWNvbnN0iAEBEpABCgJsdBgC", - "IAEoBkJ+wkh7CnkKCmZpeGVkNjQubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAh", - "aGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVz", - "dCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSABS", - "Amx0EqMBCgNsdGUYAyABKAZCjgHCSIoBCocBCgtmaXhlZDY0Lmx0ZRp4IWhh", - "cyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxl", - "cy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAl", - "cycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSABSA2x0ZRKlBwoCZ3QYBCAB", - "KAZCkgfCSI4HCnwKCmZpeGVkNjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFo", - "YXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVz", - "dCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcn", - "CrUBCg1maXhlZDY0Lmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5s", - "dCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9", - "IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFu", - "ZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkg", - "OiAnJwq9AQoXZml4ZWQ2NC5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMu", - "bHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRo", - "aXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0", - "ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3Qs", - "IHJ1bGVzLmx0XSkgOiAnJwrFAQoOZml4ZWQ2NC5ndF9sdGUasgFoYXMocnVs", - "ZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBy", - "dWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJl", - "IGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVz", - "Jy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCs0BChhmaXhl", - "ZDY0Lmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxl", - "cy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlz", - "IDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVz", - "IG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5n", - "dCwgcnVsZXMubHRlXSkgOiAnJ0gBUgJndBLyBwoDZ3RlGAUgASgGQt0HwkjZ", - "BwqKAQoLZml4ZWQ2NC5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVs", - "ZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBn", - "cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3Rl", - "XSkgOiAnJwrEAQoOZml4ZWQ2NC5ndGVfbHQasQFoYXMocnVsZXMubHQpICYm", - "IHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8", - "fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0", - "aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChb", - "cnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzAEKGGZpeGVkNjQuZ3RlX2x0", - "X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxl", - "cy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0", - "ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAl", - "cyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5s", - "dF0pIDogJycK1AEKD2ZpeGVkNjQuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUp", - "ICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5s", - "dGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0", - "ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFs", - "IHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrc", - "AQoZZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUp", - "ICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhp", - "cyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRl", - "ciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0", - "byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIAVID", - "Z3RlEnsKAmluGAYgAygGQmvCSGgKZgoKZml4ZWQ2NC5pbhpYISh0aGlzIGlu", - "IGR5bihydWxlcylbJ2luJ10pID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAl", - "cycuZm9ybWF0KFtkeW4ocnVsZXMpWydpbiddXSkgOiAnJ1ICaW4SfwoGbm90", - "X2luGAcgAygGQmjCSGUKYwoOZml4ZWQ2NC5ub3RfaW4aUXRoaXMgaW4gcnVs", - "ZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZv", - "cm1hdChbcnVsZXMubm90X2luXSkgOiAnJ1IFbm90SW5CCwoJbGVzc190aGFu", - "Qg4KDGdyZWF0ZXJfdGhhbkIICgZfY29uc3QikxUKDVNGaXhlZDMyUnVsZXMS", - "eAoFY29uc3QYASABKA9CXcJIWgpYCg5zZml4ZWQzMi5jb25zdBpGdGhpcyAh", - "PSBydWxlcy5jb25zdCA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQo", - "W3J1bGVzLmNvbnN0XSkgOiAnJ0gCUgVjb25zdIgBARKRAQoCbHQYAiABKA9C", - "f8JIfAp6CgtzZml4ZWQzMi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMo", - "cnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJl", - "IGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIAFICbHQS", - "pAEKA2x0ZRgDIAEoD0KPAcJIiwEKiAEKDHNmaXhlZDMyLmx0ZRp4IWhhcyhy", - "dWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5s", - "dGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycu", - "Zm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSABSA2x0ZRKqBwoCZ3QYBCABKA9C", - "lwfCSJMHCn0KC3NmaXhlZDMyLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFz", + "En0KBm5vdF9pbhgJIAMoDEJmwkhjCmEKDGJ5dGVzLm5vdF9pbhpRdGhpcyBp", + "biBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAl", + "cycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnUgVub3RJbhLvAQoCaXAY", + "CiABKAhC3AHCSNgBCnQKCGJ5dGVzLmlwEiB2YWx1ZSBtdXN0IGJlIGEgdmFs", + "aWQgSVAgYWRkcmVzcxpGIXJ1bGVzLmlwIHx8IHRoaXMuc2l6ZSgpID09IDAg", + "fHwgdGhpcy5zaXplKCkgPT0gNCB8fCB0aGlzLnNpemUoKSA9PSAxNgpgCg5i", + "eXRlcy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBh", + "IHZhbGlkIElQIGFkZHJlc3MaHSFydWxlcy5pcCB8fCB0aGlzLnNpemUoKSAh", + "PSAwSABSAmlwEuoBCgRpcHY0GAsgASgIQtMBwkjPAQplCgpieXRlcy5pcHY0", + "EiJ2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzGjMhcnVsZXMu", + "aXB2NCB8fCB0aGlzLnNpemUoKSA9PSAwIHx8IHRoaXMuc2l6ZSgpID09IDQK", + "ZgoQYnl0ZXMuaXB2NF9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlz", + "IG5vdCBhIHZhbGlkIElQdjQgYWRkcmVzcxofIXJ1bGVzLmlwdjQgfHwgdGhp", + "cy5zaXplKCkgIT0gMEgAUgRpcHY0EusBCgRpcHY2GAwgASgIQtQBwkjQAQpm", + "CgpieXRlcy5pcHY2EiJ2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NiBhZGRy", + "ZXNzGjQhcnVsZXMuaXB2NiB8fCB0aGlzLnNpemUoKSA9PSAwIHx8IHRoaXMu", + "c2l6ZSgpID09IDE2CmYKEGJ5dGVzLmlwdjZfZW1wdHkSMXZhbHVlIGlzIGVt", + "cHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3MaHyFydWxl", + "cy5pcHY2IHx8IHRoaXMuc2l6ZSgpICE9IDBIAFIEaXB2NhI0CgdleGFtcGxl", + "GA4gAygMQhrCSBcKFQoNYnl0ZXMuZXhhbXBsZRoEdHJ1ZVIHZXhhbXBsZSoJ", + "COgHEICAgIACQgwKCndlbGxfa25vd24i1wMKCUVudW1SdWxlcxJvCgVjb25z", + "dBgBIAEoBUJZwkhWClQKCmVudW0uY29uc3QaRnRoaXMgIT0gcnVsZXMuY29u", + "c3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtydWxlcy5jb25z", + "dF0pIDogJydSBWNvbnN0EiEKDGRlZmluZWRfb25seRgCIAEoCFILZGVmaW5l", + "ZE9ubHkSeAoCaW4YAyADKAVCaMJIZQpjCgdlbnVtLmluGlghKHRoaXMgaW4g", + "ZHluKHJ1bGVzKVsnaW4nXSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVz", + "Jy5mb3JtYXQoW2R5bihydWxlcylbJ2luJ11dKSA6ICcnUgJpbhJ8CgZub3Rf", + "aW4YBCADKAVCZcJIYgpgCgtlbnVtLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5u", + "b3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0", + "KFtydWxlcy5ub3RfaW5dKSA6ICcnUgVub3RJbhIzCgdleGFtcGxlGAUgAygF", + "QhnCSBYKFAoMZW51bS5leGFtcGxlGgR0cnVlUgdleGFtcGxlKgkI6AcQgICA", + "gAIipAQKDVJlcGVhdGVkUnVsZXMSqAEKCW1pbl9pdGVtcxgBIAEoBEKKAcJI", + "hgEKgwEKEnJlcGVhdGVkLm1pbl9pdGVtcxptdWludCh0aGlzLnNpemUoKSkg", + "PCBydWxlcy5taW5faXRlbXMgPyAndmFsdWUgbXVzdCBjb250YWluIGF0IGxl", + "YXN0ICVkIGl0ZW0ocyknLmZvcm1hdChbcnVsZXMubWluX2l0ZW1zXSkgOiAn", + "J1IIbWluSXRlbXMSrAEKCW1heF9pdGVtcxgCIAEoBEKOAcJIigEKhwEKEnJl", + "cGVhdGVkLm1heF9pdGVtcxpxdWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5t", + "YXhfaXRlbXMgPyAndmFsdWUgbXVzdCBjb250YWluIG5vIG1vcmUgdGhhbiAl", + "cyBpdGVtKHMpJy5mb3JtYXQoW3J1bGVzLm1heF9pdGVtc10pIDogJydSCG1h", + "eEl0ZW1zEngKBnVuaXF1ZRgDIAEoCEJgwkhdClsKD3JlcGVhdGVkLnVuaXF1", + "ZRIocmVwZWF0ZWQgdmFsdWUgbXVzdCBjb250YWluIHVuaXF1ZSBpdGVtcxoe", + "IXJ1bGVzLnVuaXF1ZSB8fCB0aGlzLnVuaXF1ZSgpUgZ1bmlxdWUSNAoFaXRl", + "bXMYBCABKAsyHi5idWYudmFsaWRhdGUuRmllbGRDb25zdHJhaW50c1IFaXRl", + "bXMqCQjoBxCAgICAAiK4AwoITWFwUnVsZXMSmQEKCW1pbl9wYWlycxgBIAEo", + "BEJ8wkh5CncKDW1hcC5taW5fcGFpcnMaZnVpbnQodGhpcy5zaXplKCkpIDwg", + "cnVsZXMubWluX3BhaXJzID8gJ21hcCBtdXN0IGJlIGF0IGxlYXN0ICVkIGVu", + "dHJpZXMnLmZvcm1hdChbcnVsZXMubWluX3BhaXJzXSkgOiAnJ1IIbWluUGFp", + "cnMSmAEKCW1heF9wYWlycxgCIAEoBEJ7wkh4CnYKDW1hcC5tYXhfcGFpcnMa", + "ZXVpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X3BhaXJzID8gJ21hcCBt", + "dXN0IGJlIGF0IG1vc3QgJWQgZW50cmllcycuZm9ybWF0KFtydWxlcy5tYXhf", + "cGFpcnNdKSA6ICcnUghtYXhQYWlycxIyCgRrZXlzGAQgASgLMh4uYnVmLnZh", + "bGlkYXRlLkZpZWxkQ29uc3RyYWludHNSBGtleXMSNgoGdmFsdWVzGAUgASgL", + "Mh4uYnVmLnZhbGlkYXRlLkZpZWxkQ29uc3RyYWludHNSBnZhbHVlcyoJCOgH", + "EICAgIACIjEKCEFueVJ1bGVzEg4KAmluGAIgAygJUgJpbhIVCgZub3RfaW4Y", + "AyADKAlSBW5vdEluIqIXCg1EdXJhdGlvblJ1bGVzEo4BCgVjb25zdBgCIAEo", + "CzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkJdwkhaClgKDmR1cmF0aW9u", + "LmNvbnN0GkZ0aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11c3QgZXF1", + "YWwgJXMnLmZvcm1hdChbcnVsZXMuY29uc3RdKSA6ICcnUgVjb25zdBKsAQoC", + "bHQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25Cf8JIfAp6Cgtk", + "dXJhdGlvbi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3Qp", + "ICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhh", + "biAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIAFICbHQSvwEKA2x0ZRgE", + "IAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkKPAcJIiwEKiAEKDGR1", + "cmF0aW9uLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3Qp", + "ICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhh", + "biBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSABS", + "A2x0ZRLFBwoCZ3QYBSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25C", + "lwfCSJMHCn0KC2R1cmF0aW9uLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFz", "KHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3Qg", "YmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq2", - "AQoOc2ZpeGVkMzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0", + "AQoOZHVyYXRpb24uZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0", "ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0g", "cnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5k", "IGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6", - "ICcnCr4BChhzZml4ZWQzMi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMu", + "ICcnCr4BChhkdXJhdGlvbi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMu", "bHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRo", "aXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0", "ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3Qs", - "IHJ1bGVzLmx0XSkgOiAnJwrGAQoPc2ZpeGVkMzIuZ3RfbHRlGrIBaGFzKHJ1", + "IHJ1bGVzLmx0XSkgOiAnJwrGAQoPZHVyYXRpb24uZ3RfbHRlGrIBaGFzKHJ1", "bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4g", "cnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBi", "ZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAl", - "cycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrOAQoZc2Zp", - "eGVkMzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1", + "cycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrOAQoZZHVy", + "YXRpb24uZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1", "bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRo", "aXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4g", "JXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVz", - "Lmd0LCBydWxlcy5sdGVdKSA6ICcnSAFSAmd0EvcHCgNndGUYBSABKA9C4gfC", - "SN4HCosBCgxzZml4ZWQzMi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMo", - "cnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBi", - "ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMu", - "Z3RlXSkgOiAnJwrFAQoPc2ZpeGVkMzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0", - "KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMu", - "bHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0", - "ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3Jt", - "YXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BChlzZml4ZWQzMi5n", - "dGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8", - "IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVs", - "ZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFs", - "IHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1", - "bGVzLmx0XSkgOiAnJwrVAQoQc2ZpeGVkMzIuZ3RlX2x0ZRrAAWhhcyhydWxl", - "cy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBy", - "dWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJl", - "IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9y", - "IGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkg", - "OiAnJwrdAQoac2ZpeGVkMzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVs", - "ZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0", - "ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJl", - "IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3Ig", - "ZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6", - "ICcnSAFSA2d0ZRJ8CgJpbhgGIAMoD0JswkhpCmcKC3NmaXhlZDMyLmluGlgh", - "KHRoaXMgaW4gZHluKHJ1bGVzKVsnaW4nXSkgPyAndmFsdWUgbXVzdCBiZSBp", - "biBsaXN0ICVzJy5mb3JtYXQoW2R5bihydWxlcylbJ2luJ11dKSA6ICcnUgJp", - "bhKAAQoGbm90X2luGAcgAygPQmnCSGYKZAoPc2ZpeGVkMzIubm90X2luGlF0", - "aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBs", - "aXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJydSBW5vdEluQgsK", - "CWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW5CCAoGX2NvbnN0IpMVCg1TRml4", - "ZWQ2NFJ1bGVzEngKBWNvbnN0GAEgASgQQl3CSFoKWAoOc2ZpeGVkNjQuY29u", - "c3QaRnRoaXMgIT0gcnVsZXMuY29uc3QgPyAndmFsdWUgbXVzdCBlcXVhbCAl", - "cycuZm9ybWF0KFtydWxlcy5jb25zdF0pIDogJydIAlIFY29uc3SIAQESkQEK", - "Amx0GAIgASgQQn/CSHwKegoLc2ZpeGVkNjQubHQaayFoYXMocnVsZXMuZ3Rl", - "KSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFs", - "dWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6", - "ICcnSABSAmx0EqQBCgNsdGUYAyABKBBCjwHCSIsBCogBCgxzZml4ZWQ2NC5s", - "dGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlz", - "ID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1", - "YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAUgNsdGUSqgcK", - "Amd0GAQgASgQQpcHwkiTBwp9CgtzZml4ZWQ2NC5ndBpuIWhhcyhydWxlcy5s", - "dCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2", - "YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5n", - "dF0pIDogJycKtgEKDnNmaXhlZDY0Lmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAm", - "JiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8", - "fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0", - "aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1", - "bGVzLmx0XSkgOiAnJwq+AQoYc2ZpeGVkNjQuZ3RfbHRfZXhjbHVzaXZlGqEB", - "aGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxl", - "cy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVz", - "dCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQo", - "W3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxgEKD3NmaXhlZDY0Lmd0X2x0", - "ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAm", - "JiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3Zh", - "bHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3Ig", - "ZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDog", - "JycKzgEKGXNmaXhlZDY0Lmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMu", - "bHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwg", - "dGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3Jl", - "YXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9y", - "bWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBUgJndBL3BwoDZ3Rl", - "GAUgASgQQuIHwkjeBwqLAQoMc2ZpeGVkNjQuZ3RlGnshaGFzKHJ1bGVzLmx0", - "KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3Zh", - "bHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3Jt", - "YXQoW3J1bGVzLmd0ZV0pIDogJycKxQEKD3NmaXhlZDY0Lmd0ZV9sdBqxAWhh", - "cyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlz", - "ID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVz", - "dCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhh", - "biAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoZ", - "c2ZpeGVkNjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYg", - "cnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYg", - "dGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhh", - "biBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVs", - "ZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK1QEKEHNmaXhlZDY0Lmd0ZV9sdGUa", - "wAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYm", - "ICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFs", - "dWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxl", - "c3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1", - "bGVzLmx0ZV0pIDogJycK3QEKGnNmaXhlZDY0Lmd0ZV9sdGVfZXhjbHVzaXZl", - "Gr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYm", - "IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFs", - "dWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVz", - "cyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVs", - "ZXMubHRlXSkgOiAnJ0gBUgNndGUSfAoCaW4YBiADKBBCbMJIaQpnCgtzZml4", - "ZWQ2NC5pbhpYISh0aGlzIGluIGR5bihydWxlcylbJ2luJ10pID8gJ3ZhbHVl", + "Lmd0LCBydWxlcy5sdGVdKSA6ICcnSAFSAmd0EpIICgNndGUYBiABKAsyGS5n", + "b29nbGUucHJvdG9idWYuRHVyYXRpb25C4gfCSN4HCosBCgxkdXJhdGlvbi5n", + "dGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlz", + "IDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3Ig", + "ZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrFAQoPZHVy", + "YXRpb24uZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBy", + "dWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVz", + "Lmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0", + "byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVs", + "ZXMubHRdKSA6ICcnCs0BChlkdXJhdGlvbi5ndGVfbHRfZXhjbHVzaXZlGq8B", + "aGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVs", + "ZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11", + "c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhh", + "biAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrVAQoQ", + "ZHVyYXRpb24uZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0", + "ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8", + "IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBl", + "cXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3Jt", + "YXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrdAQoaZHVyYXRpb24u", + "Z3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5s", + "dGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8", + "IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBl", + "cXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1h", + "dChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAFSA2d0ZRKXAQoCaW4Y", + "ByADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CbMJIaQpnCgtkdXJh", + "dGlvbi5pbhpYISh0aGlzIGluIGR5bihydWxlcylbJ2luJ10pID8gJ3ZhbHVl", "IG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtkeW4ocnVsZXMpWydpbidd", - "XSkgOiAnJ1ICaW4SgAEKBm5vdF9pbhgHIAMoEEJpwkhmCmQKD3NmaXhlZDY0", - "Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBu", - "b3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcn", - "UgVub3RJbkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuQggKBl9jb25z", - "dCKLAQoJQm9vbFJ1bGVzEnQKBWNvbnN0GAEgASgIQlnCSFYKVAoKYm9vbC5j", - "b25zdBpGdGhpcyAhPSBydWxlcy5jb25zdCA/ICd2YWx1ZSBtdXN0IGVxdWFs", - "ICVzJy5mb3JtYXQoW3J1bGVzLmNvbnN0XSkgOiAnJ0gAUgVjb25zdIgBAUII", - "CgZfY29uc3Qi6CQKC1N0cmluZ1J1bGVzEngKBWNvbnN0GAEgASgJQl3CSFoK", - "WAoMc3RyaW5nLmNvbnN0Gkh0aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVl", - "IG11c3QgZXF1YWwgYCVzYCcuZm9ybWF0KFtydWxlcy5jb25zdF0pIDogJydI", - "AVIFY29uc3SIAQESiAEKA2xlbhgTIAEoBEJxwkhuCmwKCnN0cmluZy5sZW4a", - "XnVpbnQodGhpcy5zaXplKCkpICE9IHJ1bGVzLmxlbiA/ICd2YWx1ZSBsZW5n", - "dGggbXVzdCBiZSAlcyBjaGFyYWN0ZXJzJy5mb3JtYXQoW3J1bGVzLmxlbl0p", - "IDogJydIAlIDbGVuiAEBEqYBCgdtaW5fbGVuGAIgASgEQocBwkiDAQqAAQoO", - "c3RyaW5nLm1pbl9sZW4abnVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWlu", - "X2xlbiA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSBhdCBsZWFzdCAlcyBjaGFy", - "YWN0ZXJzJy5mb3JtYXQoW3J1bGVzLm1pbl9sZW5dKSA6ICcnSANSBm1pbkxl", - "bogBARKkAQoHbWF4X2xlbhgDIAEoBEKFAcJIgQEKfwoOc3RyaW5nLm1heF9s", - "ZW4abXVpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICd2YWx1", - "ZSBsZW5ndGggbXVzdCBiZSBhdCBtb3N0ICVzIGNoYXJhY3RlcnMnLmZvcm1h", - "dChbcnVsZXMubWF4X2xlbl0pIDogJydIBFIGbWF4TGVuiAEBEqoBCglsZW5f", - "Ynl0ZXMYFCABKARChwHCSIMBCoABChBzdHJpbmcubGVuX2J5dGVzGmx1aW50", - "KGJ5dGVzKHRoaXMpLnNpemUoKSkgIT0gcnVsZXMubGVuX2J5dGVzID8gJ3Zh", - "bHVlIGxlbmd0aCBtdXN0IGJlICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLmxl", - "bl9ieXRlc10pIDogJydIBVIIbGVuQnl0ZXOIAQESsgEKCW1pbl9ieXRlcxgE", - "IAEoBEKPAcJIiwEKiAEKEHN0cmluZy5taW5fYnl0ZXMadHVpbnQoYnl0ZXMo", - "dGhpcykuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9ieXRlcyA/ICd2YWx1ZSBsZW5n", - "dGggbXVzdCBiZSBhdCBsZWFzdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5t", - "aW5fYnl0ZXNdKSA6ICcnSAZSCG1pbkJ5dGVziAEBErEBCgltYXhfYnl0ZXMY", - "BSABKARCjgHCSIoBCocBChBzdHJpbmcubWF4X2J5dGVzGnN1aW50KGJ5dGVz", - "KHRoaXMpLnNpemUoKSkgPiBydWxlcy5tYXhfYnl0ZXMgPyAndmFsdWUgbGVu", - "Z3RoIG11c3QgYmUgYXQgbW9zdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5t", - "YXhfYnl0ZXNdKSA6ICcnSAdSCG1heEJ5dGVziAEBEpsBCgdwYXR0ZXJuGAYg", - "ASgJQnzCSHkKdwoOc3RyaW5nLnBhdHRlcm4aZSF0aGlzLm1hdGNoZXMocnVs", - "ZXMucGF0dGVybikgPyAndmFsdWUgZG9lcyBub3QgbWF0Y2ggcmVnZXggcGF0", - "dGVybiBgJXNgJy5mb3JtYXQoW3J1bGVzLnBhdHRlcm5dKSA6ICcnSAhSB3Bh", - "dHRlcm6IAQESkQEKBnByZWZpeBgHIAEoCUJ0wkhxCm8KDXN0cmluZy5wcmVm", - "aXgaXiF0aGlzLnN0YXJ0c1dpdGgocnVsZXMucHJlZml4KSA/ICd2YWx1ZSBk", - "b2VzIG5vdCBoYXZlIHByZWZpeCBgJXNgJy5mb3JtYXQoW3J1bGVzLnByZWZp", - "eF0pIDogJydICVIGcHJlZml4iAEBEo8BCgZzdWZmaXgYCCABKAlCcsJIbwpt", - "Cg1zdHJpbmcuc3VmZml4GlwhdGhpcy5lbmRzV2l0aChydWxlcy5zdWZmaXgp", - "ID8gJ3ZhbHVlIGRvZXMgbm90IGhhdmUgc3VmZml4IGAlc2AnLmZvcm1hdChb", - "cnVsZXMuc3VmZml4XSkgOiAnJ0gKUgZzdWZmaXiIAQESnwEKCGNvbnRhaW5z", - "GAkgASgJQn7CSHsKeQoPc3RyaW5nLmNvbnRhaW5zGmYhdGhpcy5jb250YWlu", - "cyhydWxlcy5jb250YWlucykgPyAndmFsdWUgZG9lcyBub3QgY29udGFpbiBz", - "dWJzdHJpbmcgYCVzYCcuZm9ybWF0KFtydWxlcy5jb250YWluc10pIDogJydI", - "C1IIY29udGFpbnOIAQESqgEKDG5vdF9jb250YWlucxgXIAEoCUKBAcJIfgp8", - "ChNzdHJpbmcubm90X2NvbnRhaW5zGmV0aGlzLmNvbnRhaW5zKHJ1bGVzLm5v", - "dF9jb250YWlucykgPyAndmFsdWUgY29udGFpbnMgc3Vic3RyaW5nIGAlc2An", - "LmZvcm1hdChbcnVsZXMubm90X2NvbnRhaW5zXSkgOiAnJ0gMUgtub3RDb250", - "YWluc4gBARJ6CgJpbhgKIAMoCUJqwkhnCmUKCXN0cmluZy5pbhpYISh0aGlz", - "IGluIGR5bihydWxlcylbJ2luJ10pID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlz", - "dCAlcycuZm9ybWF0KFtkeW4ocnVsZXMpWydpbiddXSkgOiAnJ1ICaW4SfgoG", - "bm90X2luGAsgAygJQmfCSGQKYgoNc3RyaW5nLm5vdF9pbhpRdGhpcyBpbiBy", + "XSkgOiAnJ1ICaW4SmwEKBm5vdF9pbhgIIAMoCzIZLmdvb2dsZS5wcm90b2J1", + "Zi5EdXJhdGlvbkJpwkhmCmQKD2R1cmF0aW9uLm5vdF9pbhpRdGhpcyBpbiBy", "dWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycu", - "Zm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnUgVub3RJbhJgCgVlbWFpbBgM", - "IAEoCEJIwkhFCkMKDHN0cmluZy5lbWFpbBIjdmFsdWUgbXVzdCBiZSBhIHZh", - "bGlkIGVtYWlsIGFkZHJlc3MaDnRoaXMuaXNFbWFpbCgpSABSBWVtYWlsEmcK", - "CGhvc3RuYW1lGA0gASgIQknCSEYKRAoPc3RyaW5nLmhvc3RuYW1lEh52YWx1", - "ZSBtdXN0IGJlIGEgdmFsaWQgaG9zdG5hbWUaEXRoaXMuaXNIb3N0bmFtZSgp", - "SABSCGhvc3RuYW1lElEKAmlwGA4gASgIQj/CSDwKOgoJc3RyaW5nLmlwEiB2", - "YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxoLdGhpcy5pc0lwKClI", - "AFICaXASWgoEaXB2NBgPIAEoCEJEwkhBCj8KC3N0cmluZy5pcHY0EiJ2YWx1", - "ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzGgx0aGlzLmlzSXAoNClI", - "AFIEaXB2NBJaCgRpcHY2GBAgASgIQkTCSEEKPwoLc3RyaW5nLmlwdjYSInZh", - "bHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3MaDHRoaXMuaXNJcCg2", - "KUgAUgRpcHY2Ek4KA3VyaRgRIAEoCEI6wkg3CjUKCnN0cmluZy51cmkSGXZh", - "bHVlIG11c3QgYmUgYSB2YWxpZCBVUkkaDHRoaXMuaXNVcmkoKUgAUgN1cmkS", - "XAoHdXJpX3JlZhgSIAEoCEJBwkg+CjwKDnN0cmluZy51cmlfcmVmEhl2YWx1", - "ZSBtdXN0IGJlIGEgdmFsaWQgVVJJGg90aGlzLmlzVXJpUmVmKClIAFIGdXJp", - "UmVmEoIBCgdhZGRyZXNzGBUgASgIQmbCSGMKYQoOc3RyaW5nLmFkZHJlc3MS", - "LXZhbHVlIG11c3QgYmUgYSB2YWxpZCBob3N0bmFtZSwgb3IgaXAgYWRkcmVz", - "cxogdGhpcy5pc0hvc3RuYW1lKCkgfHwgdGhpcy5pc0lwKClIAFIHYWRkcmVz", - "cxKwAQoEdXVpZBgWIAEoCEKZAcJIlQEKkgEKC3N0cmluZy51dWlkGoIBIXRo", - "aXMubWF0Y2hlcygnXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVsw", - "LTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQn", - "KSA/ICd2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVVJRCcgOiAnJ0gAUgR1dWlk", - "EoEBChFpcF93aXRoX3ByZWZpeGxlbhgaIAEoCEJTwkhQCk4KGHN0cmluZy5p", - "cF93aXRoX3ByZWZpeGxlbhIfdmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQIHBy", - "ZWZpeBoRdGhpcy5pc0lwUHJlZml4KClIAFIPaXBXaXRoUHJlZml4bGVuEp4B", - "ChNpcHY0X3dpdGhfcHJlZml4bGVuGBsgASgIQmzCSGkKZwoac3RyaW5nLmlw", - "djRfd2l0aF9wcmVmaXhsZW4SNXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY0", - "IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGhJ0aGlzLmlzSXBQcmVmaXgo", - "NClIAFIRaXB2NFdpdGhQcmVmaXhsZW4SngEKE2lwdjZfd2l0aF9wcmVmaXhs", - "ZW4YHCABKAhCbMJIaQpnChpzdHJpbmcuaXB2Nl93aXRoX3ByZWZpeGxlbhI1", - "dmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQdjYgYWRkcmVzcyB3aXRoIHByZWZp", - "eCBsZW5ndGgaEnRoaXMuaXNJcFByZWZpeCg2KUgAUhFpcHY2V2l0aFByZWZp", - "eGxlbhJuCglpcF9wcmVmaXgYHSABKAhCT8JITApKChBzdHJpbmcuaXBfcHJl", - "Zml4Eh92YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVAgcHJlZml4GhV0aGlzLmlz", - "SXBQcmVmaXgodHJ1ZSlIAFIIaXBQcmVmaXgSeQoLaXB2NF9wcmVmaXgYHiAB", - "KAhCVsJIUwpRChJzdHJpbmcuaXB2NF9wcmVmaXgSIXZhbHVlIG11c3QgYmUg", - "YSB2YWxpZCBJUHY0IHByZWZpeBoYdGhpcy5pc0lwUHJlZml4KDQsIHRydWUp", - "SABSCmlwdjRQcmVmaXgSeQoLaXB2Nl9wcmVmaXgYHyABKAhCVsJIUwpRChJz", - "dHJpbmcuaXB2Nl9wcmVmaXgSIXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2", - "IHByZWZpeBoYdGhpcy5pc0lwUHJlZml4KDYsIHRydWUpSABSCmlwdjZQcmVm", - "aXgSrAQKEHdlbGxfa25vd25fcmVnZXgYGCABKA4yGC5idWYudmFsaWRhdGUu", - "S25vd25SZWdleELlA8JI4QMK6wEKI3N0cmluZy53ZWxsX2tub3duX3JlZ2V4", - "LmhlYWRlcl9uYW1lGsMBcnVsZXMud2VsbF9rbm93bl9yZWdleCA9PSAxICYm", - "ICF0aGlzLm1hdGNoZXMoIWhhcyhydWxlcy5zdHJpY3QpIHx8IHJ1bGVzLnN0", - "cmljdCA/J146P1swLTlhLXpBLVohIyQlJlwnKistLl5ffH5ceDYwXSskJyA6", - "J15bXlx1MDAwMFx1MDAwQVx1MDAwRF0rJCcpID8gJ3ZhbHVlIG11c3QgYmUg", - "YSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lJyA6ICcnCvABCiRzdHJpbmcud2Vs", - "bF9rbm93bl9yZWdleC5oZWFkZXJfdmFsdWUaxwFydWxlcy53ZWxsX2tub3du", - "X3JlZ2V4ID09IDIgJiYgIXRoaXMubWF0Y2hlcyghaGFzKHJ1bGVzLnN0cmlj", - "dCkgfHwgcnVsZXMuc3RyaWN0ID8nXlteXHUwMDAwLVx1MDAwOFx1MDAwQS1c", - "dTAwMUZcdTAwN0ZdKiQnIDonXlteXHUwMDAwXHUwMDBBXHUwMDBEXSokJykg", - "PyAndmFsdWUgbXVzdCBiZSBhIHZhbGlkIEhUVFAgaGVhZGVyIHZhbHVlJyA6", - "ICcnSABSDndlbGxLbm93blJlZ2V4EhsKBnN0cmljdBgZIAEoCEgNUgZzdHJp", - "Y3SIAQFCDAoKd2VsbF9rbm93bkIICgZfY29uc3RCBgoEX2xlbkIKCghfbWlu", - "X2xlbkIKCghfbWF4X2xlbkIMCgpfbGVuX2J5dGVzQgwKCl9taW5fYnl0ZXNC", - "DAoKX21heF9ieXRlc0IKCghfcGF0dGVybkIJCgdfcHJlZml4QgkKB19zdWZm", - "aXhCCwoJX2NvbnRhaW5zQg8KDV9ub3RfY29udGFpbnNCCQoHX3N0cmljdCLa", - "DgoKQnl0ZXNSdWxlcxJyCgVjb25zdBgBIAEoDEJXwkhUClIKC2J5dGVzLmNv", - "bnN0GkN0aGlzICE9IHJ1bGVzLmNvbnN0ID8gJ3ZhbHVlIG11c3QgYmUgJXgn", - "LmZvcm1hdChbcnVsZXMuY29uc3RdKSA6ICcnSAFSBWNvbnN0iAEBEoIBCgNs", - "ZW4YDSABKARCa8JIaApmCglieXRlcy5sZW4aWXVpbnQodGhpcy5zaXplKCkp", - "ICE9IHJ1bGVzLmxlbiA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSAlcyBieXRl", - "cycuZm9ybWF0KFtydWxlcy5sZW5dKSA6ICcnSAJSA2xlbogBARKdAQoHbWlu", - "X2xlbhgCIAEoBEJ/wkh8CnoKDWJ5dGVzLm1pbl9sZW4aaXVpbnQodGhpcy5z", - "aXplKCkpIDwgcnVsZXMubWluX2xlbiA/ICd2YWx1ZSBsZW5ndGggbXVzdCBi", - "ZSBhdCBsZWFzdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5taW5fbGVuXSkg", - "OiAnJ0gDUgZtaW5MZW6IAQESlQEKB21heF9sZW4YAyABKARCd8JIdApyCg1i", - "eXRlcy5tYXhfbGVuGmF1aW50KHRoaXMuc2l6ZSgpKSA+IHJ1bGVzLm1heF9s", - "ZW4gPyAndmFsdWUgbXVzdCBiZSBhdCBtb3N0ICVzIGJ5dGVzJy5mb3JtYXQo", - "W3J1bGVzLm1heF9sZW5dKSA6ICcnSARSBm1heExlbogBARKeAQoHcGF0dGVy", - "bhgEIAEoCUJ/wkh8CnoKDWJ5dGVzLnBhdHRlcm4aaSFzdHJpbmcodGhpcyku", - "bWF0Y2hlcyhydWxlcy5wYXR0ZXJuKSA/ICd2YWx1ZSBtdXN0IG1hdGNoIHJl", - "Z2V4IHBhdHRlcm4gYCVzYCcuZm9ybWF0KFtydWxlcy5wYXR0ZXJuXSkgOiAn", - "J0gFUgdwYXR0ZXJuiAEBEo4BCgZwcmVmaXgYBSABKAxCccJIbgpsCgxieXRl", - "cy5wcmVmaXgaXCF0aGlzLnN0YXJ0c1dpdGgocnVsZXMucHJlZml4KSA/ICd2", - "YWx1ZSBkb2VzIG5vdCBoYXZlIHByZWZpeCAleCcuZm9ybWF0KFtydWxlcy5w", - "cmVmaXhdKSA6ICcnSAZSBnByZWZpeIgBARKMAQoGc3VmZml4GAYgASgMQm/C", - "SGwKagoMYnl0ZXMuc3VmZml4GlohdGhpcy5lbmRzV2l0aChydWxlcy5zdWZm", - "aXgpID8gJ3ZhbHVlIGRvZXMgbm90IGhhdmUgc3VmZml4ICV4Jy5mb3JtYXQo", - "W3J1bGVzLnN1ZmZpeF0pIDogJydIB1IGc3VmZml4iAEBEpIBCghjb250YWlu", - "cxgHIAEoDEJxwkhuCmwKDmJ5dGVzLmNvbnRhaW5zGlohdGhpcy5jb250YWlu", - "cyhydWxlcy5jb250YWlucykgPyAndmFsdWUgZG9lcyBub3QgY29udGFpbiAl", - "eCcuZm9ybWF0KFtydWxlcy5jb250YWluc10pIDogJydICFIIY29udGFpbnOI", - "AQESmwEKAmluGAggAygMQooBwkiGAQqDAQoIYnl0ZXMuaW4ad2R5bihydWxl", - "cylbJ2luJ10uc2l6ZSgpID4gMCAmJiAhKHRoaXMgaW4gZHluKHJ1bGVzKVsn", - "aW4nXSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2R5", - "bihydWxlcylbJ2luJ11dKSA6ICcnUgJpbhJ9CgZub3RfaW4YCSADKAxCZsJI", - "YwphCgxieXRlcy5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3Zh", - "bHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90", - "X2luXSkgOiAnJ1IFbm90SW4ScgoCaXAYCiABKAhCYMJIXQpbCghieXRlcy5p", - "cBpPdGhpcy5zaXplKCkgIT0gNCAmJiB0aGlzLnNpemUoKSAhPSAxNiA/ICd2", - "YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcycgOiAnJ0gAUgJpcBJl", - "CgRpcHY0GAsgASgIQk/CSEwKSgoKYnl0ZXMuaXB2NBo8dGhpcy5zaXplKCkg", - "IT0gNCA/ICd2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzJyA6", - "ICcnSABSBGlwdjQSZgoEaXB2NhgMIAEoCEJQwkhNCksKCmJ5dGVzLmlwdjYa", - "PXRoaXMuc2l6ZSgpICE9IDE2ID8gJ3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBJ", - "UHY2IGFkZHJlc3MnIDogJydIAFIEaXB2NkIMCgp3ZWxsX2tub3duQggKBl9j", - "b25zdEIGCgRfbGVuQgoKCF9taW5fbGVuQgoKCF9tYXhfbGVuQgoKCF9wYXR0", - "ZXJuQgkKB19wcmVmaXhCCQoHX3N1ZmZpeEILCglfY29udGFpbnMivAMKCUVu", - "dW1SdWxlcxJ0CgVjb25zdBgBIAEoBUJZwkhWClQKCmVudW0uY29uc3QaRnRo", - "aXMgIT0gcnVsZXMuY29uc3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9y", - "bWF0KFtydWxlcy5jb25zdF0pIDogJydIAFIFY29uc3SIAQESJgoMZGVmaW5l", - "ZF9vbmx5GAIgASgISAFSC2RlZmluZWRPbmx5iAEBEngKAmluGAMgAygFQmjC", - "SGUKYwoHZW51bS5pbhpYISh0aGlzIGluIGR5bihydWxlcylbJ2luJ10pID8g", - "J3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtkeW4ocnVsZXMp", - "WydpbiddXSkgOiAnJ1ICaW4SfAoGbm90X2luGAQgAygFQmXCSGIKYAoLZW51", - "bS5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qg", - "bm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAn", - "J1IFbm90SW5CCAoGX2NvbnN0Qg8KDV9kZWZpbmVkX29ubHkizQQKDVJlcGVh", - "dGVkUnVsZXMSrQEKCW1pbl9pdGVtcxgBIAEoBEKKAcJIhgEKgwEKEnJlcGVh", - "dGVkLm1pbl9pdGVtcxptdWludCh0aGlzLnNpemUoKSkgPCBydWxlcy5taW5f", - "aXRlbXMgPyAndmFsdWUgbXVzdCBjb250YWluIGF0IGxlYXN0ICVkIGl0ZW0o", - "cyknLmZvcm1hdChbcnVsZXMubWluX2l0ZW1zXSkgOiAnJ0gAUghtaW5JdGVt", - "c4gBARKxAQoJbWF4X2l0ZW1zGAIgASgEQo4BwkiKAQqHAQoScmVwZWF0ZWQu", - "bWF4X2l0ZW1zGnF1aW50KHRoaXMuc2l6ZSgpKSA+IHJ1bGVzLm1heF9pdGVt", - "cyA/ICd2YWx1ZSBtdXN0IGNvbnRhaW4gbm8gbW9yZSB0aGFuICVzIGl0ZW0o", - "cyknLmZvcm1hdChbcnVsZXMubWF4X2l0ZW1zXSkgOiAnJ0gBUghtYXhJdGVt", - "c4gBARJsCgZ1bmlxdWUYAyABKAhCT8JITApKCg9yZXBlYXRlZC51bmlxdWUS", - "KHJlcGVhdGVkIHZhbHVlIG11c3QgY29udGFpbiB1bmlxdWUgaXRlbXMaDXRo", - "aXMudW5pcXVlKClIAlIGdW5pcXVliAEBEjkKBWl0ZW1zGAQgASgLMh4uYnVm", - "LnZhbGlkYXRlLkZpZWxkQ29uc3RyYWludHNIA1IFaXRlbXOIAQFCDAoKX21p", - "bl9pdGVtc0IMCgpfbWF4X2l0ZW1zQgkKB191bmlxdWVCCAoGX2l0ZW1zIvED", - "CghNYXBSdWxlcxKeAQoJbWluX3BhaXJzGAEgASgEQnzCSHkKdwoNbWFwLm1p", - "bl9wYWlycxpmdWludCh0aGlzLnNpemUoKSkgPCBydWxlcy5taW5fcGFpcnMg", - "PyAnbWFwIG11c3QgYmUgYXQgbGVhc3QgJWQgZW50cmllcycuZm9ybWF0KFty", - "dWxlcy5taW5fcGFpcnNdKSA6ICcnSABSCG1pblBhaXJziAEBEp0BCgltYXhf", - "cGFpcnMYAiABKARCe8JIeAp2Cg1tYXAubWF4X3BhaXJzGmV1aW50KHRoaXMu", - "c2l6ZSgpKSA+IHJ1bGVzLm1heF9wYWlycyA/ICdtYXAgbXVzdCBiZSBhdCBt", - "b3N0ICVkIGVudHJpZXMnLmZvcm1hdChbcnVsZXMubWF4X3BhaXJzXSkgOiAn", - "J0gBUghtYXhQYWlyc4gBARI3CgRrZXlzGAQgASgLMh4uYnVmLnZhbGlkYXRl", - "LkZpZWxkQ29uc3RyYWludHNIAlIEa2V5c4gBARI7CgZ2YWx1ZXMYBSABKAsy", - "Hi5idWYudmFsaWRhdGUuRmllbGRDb25zdHJhaW50c0gDUgZ2YWx1ZXOIAQFC", - "DAoKX21pbl9wYWlyc0IMCgpfbWF4X3BhaXJzQgcKBV9rZXlzQgkKB192YWx1", - "ZXMiMQoIQW55UnVsZXMSDgoCaW4YAiADKAlSAmluEhUKBm5vdF9pbhgDIAMo", - "CVIFbm90SW4i0hYKDUR1cmF0aW9uUnVsZXMSkwEKBWNvbnN0GAIgASgLMhku", - "Z29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQl3CSFoKWAoOZHVyYXRpb24uY29u", - "c3QaRnRoaXMgIT0gcnVsZXMuY29uc3QgPyAndmFsdWUgbXVzdCBlcXVhbCAl", - "cycuZm9ybWF0KFtydWxlcy5jb25zdF0pIDogJydIAlIFY29uc3SIAQESrAEK", - "Amx0GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQn/CSHwKegoL", - "ZHVyYXRpb24ubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0", - "KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRo", - "YW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSABSAmx0Er8BCgNsdGUY", - "BCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CjwHCSIsBCogBCgxk", - "dXJhdGlvbi5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0", - "KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRo", - "YW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gA", - "UgNsdGUSxQcKAmd0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9u", - "QpcHwkiTBwp9CgtkdXJhdGlvbi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhh", - "cyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0", - "IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycK", - "tgEKDmR1cmF0aW9uLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5s", - "dCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9", - "IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFu", - "ZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkg", - "OiAnJwq+AQoYZHVyYXRpb24uZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVz", - "Lmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0", - "aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVh", - "dGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0", - "LCBydWxlcy5sdF0pIDogJycKxgEKD2R1cmF0aW9uLmd0X2x0ZRqyAWhhcyhy", - "dWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+", - "IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3Qg", - "YmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g", - "JXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzgEKGWR1", - "cmF0aW9uLmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBy", - "dWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0", - "aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFu", - "ICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxl", - "cy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBUgJndBKSCAoDZ3RlGAYgASgLMhku", - "Z29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQuIHwkjeBwqLAQoMZHVyYXRpb24u", - "Z3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhp", - "cyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9y", - "IGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKxQEKD2R1", - "cmF0aW9uLmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0g", - "cnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxl", - "cy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwg", - "dG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1", - "bGVzLmx0XSkgOiAnJwrNAQoZZHVyYXRpb24uZ3RlX2x0X2V4Y2x1c2l2ZRqv", - "AWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1", - "bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBt", - "dXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRo", - "YW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK1QEK", - "EGR1cmF0aW9uLmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5s", - "dGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMg", - "PCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3Ig", - "ZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9y", - "bWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK3QEKGmR1cmF0aW9u", - "Lmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMu", - "bHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMg", - "PCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3Ig", - "ZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3Jt", - "YXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBUgNndGUSlwEKAmlu", - "GAcgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQmzCSGkKZwoLZHVy", - "YXRpb24uaW4aWCEodGhpcyBpbiBkeW4ocnVsZXMpWydpbiddKSA/ICd2YWx1", - "ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZHluKHJ1bGVzKVsnaW4n", - "XV0pIDogJydSAmluEpsBCgZub3RfaW4YCCADKAsyGS5nb29nbGUucHJvdG9i", - "dWYuRHVyYXRpb25CacJIZgpkCg9kdXJhdGlvbi5ub3RfaW4aUXRoaXMgaW4g", - "cnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMn", - "LmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJ1IFbm90SW5CCwoJbGVzc190", - "aGFuQg4KDGdyZWF0ZXJfdGhhbkIICgZfY29uc3QiyhcKDlRpbWVzdGFtcFJ1", - "bGVzEpUBCgVjb25zdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3Rh", - "bXBCXsJIWwpZCg90aW1lc3RhbXAuY29uc3QaRnRoaXMgIT0gcnVsZXMuY29u", - "c3QgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtydWxlcy5jb25z", - "dF0pIDogJydIAlIFY29uc3SIAQESrwEKAmx0GAMgASgLMhouZ29vZ2xlLnBy", - "b3RvYnVmLlRpbWVzdGFtcEKAAcJIfQp7Cgx0aW1lc3RhbXAubHQaayFoYXMo", - "cnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVz", - "Lmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVs", - "ZXMubHRdKSA6ICcnSABSAmx0EsEBCgNsdGUYBCABKAsyGi5nb29nbGUucHJv", - "dG9idWYuVGltZXN0YW1wQpABwkiMAQqJAQoNdGltZXN0YW1wLmx0ZRp4IWhh", - "cyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxl", - "cy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAl", - "cycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSABSA2x0ZRJhCgZsdF9ub3cY", - "ByABKAhCSMJIRQpDChB0aW1lc3RhbXAubHRfbm93Gi90aGlzID4gbm93ID8g", - "J3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG5vdycgOiAnJ0gAUgVsdE5vdxLL", - "BwoCZ3QYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQpwHwkiY", - "Bwp+Cgx0aW1lc3RhbXAuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVs", - "ZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBn", - "cmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrcBCg90", - "aW1lc3RhbXAuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49", - "IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVs", - "ZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxl", - "c3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcn", - "Cr8BChl0aW1lc3RhbXAuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0", - "KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlz", - "ICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVy", - "IHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBy", - "dWxlcy5sdF0pIDogJycKxwEKEHRpbWVzdGFtcC5ndF9sdGUasgFoYXMocnVs", - "ZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBy", - "dWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJl", - "IGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVz", - "Jy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCs8BChp0aW1l", - "c3RhbXAuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1", - "bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRo", - "aXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4g", - "JXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVz", - "Lmd0LCBydWxlcy5sdGVdKSA6ICcnSAFSAmd0EpgICgNndGUYBiABKAsyGi5n", - "b29nbGUucHJvdG9idWYuVGltZXN0YW1wQucHwkjjBwqMAQoNdGltZXN0YW1w", - "Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRo", - "aXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBv", - "ciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsYBChB0", - "aW1lc3RhbXAuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+", - "PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1", - "bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVh", - "bCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwg", - "cnVsZXMubHRdKSA6ICcnCs4BChp0aW1lc3RhbXAuZ3RlX2x0X2V4Y2x1c2l2", - "ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYg", - "KHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1", - "ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNz", - "IHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK", - "1gEKEXRpbWVzdGFtcC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVs", - "ZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0", - "aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFu", - "IG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMn", - "LmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCt4BCht0aW1l", - "c3RhbXAuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBy", - "dWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYg", - "dGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhh", - "biBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMn", - "LmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAFSA2d0ZRJk", - "CgZndF9ub3cYCCABKAhCS8JISApGChB0aW1lc3RhbXAuZ3Rfbm93GjJ0aGlz", - "IDwgbm93ID8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG5vdycgOiAn", - "J0gBUgVndE5vdxLFAQoGd2l0aGluGAkgASgLMhkuZ29vZ2xlLnByb3RvYnVm", - "LkR1cmF0aW9uQowBwkiIAQqFAQoQdGltZXN0YW1wLndpdGhpbhpxdGhpcyA8", - "IG5vdy1ydWxlcy53aXRoaW4gfHwgdGhpcyA+IG5vdytydWxlcy53aXRoaW4g", - "PyAndmFsdWUgbXVzdCBiZSB3aXRoaW4gJXMgb2Ygbm93Jy5mb3JtYXQoW3J1", - "bGVzLndpdGhpbl0pIDogJydIA1IGd2l0aGluiAEBQgsKCWxlc3NfdGhhbkIO", - "CgxncmVhdGVyX3RoYW5CCAoGX2NvbnN0QgkKB193aXRoaW4qbgoKS25vd25S", - "ZWdleBIbChdLTk9XTl9SRUdFWF9VTlNQRUNJRklFRBAAEiAKHEtOT1dOX1JF", - "R0VYX0hUVFBfSEVBREVSX05BTUUQARIhCh1LTk9XTl9SRUdFWF9IVFRQX0hF", - "QURFUl9WQUxVRRACOl8KB21lc3NhZ2USHy5nb29nbGUucHJvdG9idWYuTWVz", - "c2FnZU9wdGlvbnMYhwkgASgLMiAuYnVmLnZhbGlkYXRlLk1lc3NhZ2VDb25z", - "dHJhaW50c1IHbWVzc2FnZYgBATpXCgVvbmVvZhIdLmdvb2dsZS5wcm90b2J1", - "Zi5PbmVvZk9wdGlvbnMYhwkgASgLMh4uYnVmLnZhbGlkYXRlLk9uZW9mQ29u", - "c3RyYWludHNSBW9uZW9miAEBOlcKBWZpZWxkEh0uZ29vZ2xlLnByb3RvYnVm", - "LkZpZWxkT3B0aW9ucxiHCSABKAsyHi5idWYudmFsaWRhdGUuRmllbGRDb25z", - "dHJhaW50c1IFZmllbGSIAQFCbgoSYnVpbGQuYnVmLnZhbGlkYXRlQg1WYWxp", - "ZGF0ZVByb3RvUAFaR2J1Zi5idWlsZC9nZW4vZ28vYnVmYnVpbGQvcHJvdG92", - "YWxpZGF0ZS9wcm90b2NvbGJ1ZmZlcnMvZ28vYnVmL3ZhbGlkYXRlYgZwcm90", - "bzM=")); + "Zm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnUgVub3RJbhJSCgdleGFtcGxl", + "GAkgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQh3CSBoKGAoQZHVy", + "YXRpb24uZXhhbXBsZRoEdHJ1ZVIHZXhhbXBsZSoJCOgHEICAgIACQgsKCWxl", + "c3NfdGhhbkIOCgxncmVhdGVyX3RoYW4isBgKDlRpbWVzdGFtcFJ1bGVzEpAB", + "CgVjb25zdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCXsJI", + "WwpZCg90aW1lc3RhbXAuY29uc3QaRnRoaXMgIT0gcnVsZXMuY29uc3QgPyAn", + "dmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtydWxlcy5jb25zdF0pIDog", + "JydSBWNvbnN0Eq8BCgJsdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1l", + "c3RhbXBCgAHCSH0KewoMdGltZXN0YW1wLmx0GmshaGFzKHJ1bGVzLmd0ZSkg", + "JiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVl", + "IG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAn", + "J0gAUgJsdBLBAQoDbHRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVz", + "dGFtcEKQAcJIjAEKiQEKDXRpbWVzdGFtcC5sdGUaeCFoYXMocnVsZXMuZ3Rl", + "KSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFs", + "dWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChb", + "cnVsZXMubHRlXSkgOiAnJ0gAUgNsdGUScwoGbHRfbm93GAcgASgIQlrCSFcK", + "VQoQdGltZXN0YW1wLmx0X25vdxpBKHJ1bGVzLmx0X25vdyAmJiB0aGlzID4g", + "bm93KSA/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBub3cnIDogJydIAFIF", + "bHROb3cSywcKAmd0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFt", + "cEKcB8JImAcKfgoMdGltZXN0YW1wLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAh", + "aGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11", + "c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAn", + "Jwq3AQoPdGltZXN0YW1wLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxl", + "cy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlz", + "IDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVz", + "IGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0", + "XSkgOiAnJwq/AQoZdGltZXN0YW1wLmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhy", + "dWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQg", + "PD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUg", + "Z3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxl", + "cy5ndCwgcnVsZXMubHRdKSA6ICcnCscBChB0aW1lc3RhbXAuZ3RfbHRlGrIB", + "aGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0", + "aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUg", + "bXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVh", + "bCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrP", + "AQoadGltZXN0YW1wLmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRl", + "KSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhp", + "cyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRl", + "ciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0", + "KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBUgJndBKYCAoDZ3RlGAYg", + "ASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcELnB8JI4wcKjAEKDXRp", + "bWVzdGFtcC5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRl", + "KSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVy", + "IHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAn", + "JwrGAQoQdGltZXN0YW1wLmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVs", + "ZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRo", + "aXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4g", + "b3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxl", + "cy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrOAQoadGltZXN0YW1wLmd0ZV9sdF9l", + "eGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMu", + "Z3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUp", + "PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMg", + "b3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRd", + "KSA6ICcnCtYBChF0aW1lc3RhbXAuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUp", + "ICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5s", + "dGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0", + "ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFs", + "IHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwre", + "AQobdGltZXN0YW1wLmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0", + "ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0", + "aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVh", + "dGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFs", + "IHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gB", + "UgNndGUSdgoGZ3Rfbm93GAggASgIQl3CSFoKWAoQdGltZXN0YW1wLmd0X25v", + "dxpEKHJ1bGVzLmd0X25vdyAmJiB0aGlzIDwgbm93KSA/ICd2YWx1ZSBtdXN0", + "IGJlIGdyZWF0ZXIgdGhhbiBub3cnIDogJydIAVIFZ3ROb3cSwAEKBndpdGhp", + "bhgJIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkKMAcJIiAEKhQEK", + "EHRpbWVzdGFtcC53aXRoaW4acXRoaXMgPCBub3ctcnVsZXMud2l0aGluIHx8", + "IHRoaXMgPiBub3crcnVsZXMud2l0aGluID8gJ3ZhbHVlIG11c3QgYmUgd2l0", + "aGluICVzIG9mIG5vdycuZm9ybWF0KFtydWxlcy53aXRoaW5dKSA6ICcnUgZ3", + "aXRoaW4SVAoHZXhhbXBsZRgKIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1l", + "c3RhbXBCHsJIGwoZChF0aW1lc3RhbXAuZXhhbXBsZRoEdHJ1ZVIHZXhhbXBs", + "ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iRQoK", + "VmlvbGF0aW9ucxI3Cgp2aW9sYXRpb25zGAEgAygLMhcuYnVmLnZhbGlkYXRl", + "LlZpb2xhdGlvblIKdmlvbGF0aW9ucyKCAQoJVmlvbGF0aW9uEh0KCmZpZWxk", + "X3BhdGgYASABKAlSCWZpZWxkUGF0aBIjCg1jb25zdHJhaW50X2lkGAIgASgJ", + "Ugxjb25zdHJhaW50SWQSGAoHbWVzc2FnZRgDIAEoCVIHbWVzc2FnZRIXCgdm", + "b3Jfa2V5GAQgASgIUgZmb3JLZXkqnQEKBklnbm9yZRIWChJJR05PUkVfVU5T", + "UEVDSUZJRUQQABIZChVJR05PUkVfSUZfVU5QT1BVTEFURUQQARIbChdJR05P", + "UkVfSUZfREVGQVVMVF9WQUxVRRACEhEKDUlHTk9SRV9BTFdBWVMQAxIUCgxJ", + "R05PUkVfRU1QVFkQARoCCAESFgoOSUdOT1JFX0RFRkFVTFQQAhoCCAEaAhAB", + "Km4KCktub3duUmVnZXgSGwoXS05PV05fUkVHRVhfVU5TUEVDSUZJRUQQABIg", + "ChxLTk9XTl9SRUdFWF9IVFRQX0hFQURFUl9OQU1FEAESIQodS05PV05fUkVH", + "RVhfSFRUUF9IRUFERVJfVkFMVUUQAjpcCgdtZXNzYWdlEh8uZ29vZ2xlLnBy", + "b3RvYnVmLk1lc3NhZ2VPcHRpb25zGIcJIAEoCzIgLmJ1Zi52YWxpZGF0ZS5N", + "ZXNzYWdlQ29uc3RyYWludHNSB21lc3NhZ2U6VAoFb25lb2YSHS5nb29nbGUu", + "cHJvdG9idWYuT25lb2ZPcHRpb25zGIcJIAEoCzIeLmJ1Zi52YWxpZGF0ZS5P", + "bmVvZkNvbnN0cmFpbnRzUgVvbmVvZjpUCgVmaWVsZBIdLmdvb2dsZS5wcm90", + "b2J1Zi5GaWVsZE9wdGlvbnMYhwkgASgLMh4uYnVmLnZhbGlkYXRlLkZpZWxk", + "Q29uc3RyYWludHNSBWZpZWxkOmMKCnByZWRlZmluZWQSHS5nb29nbGUucHJv", + "dG9idWYuRmllbGRPcHRpb25zGIgJIAEoCzIjLmJ1Zi52YWxpZGF0ZS5QcmVk", + "ZWZpbmVkQ29uc3RyYWludHNSCnByZWRlZmluZWRCbgoSYnVpbGQuYnVmLnZh", + "bGlkYXRlQg1WYWxpZGF0ZVByb3RvUAFaR2J1Zi5idWlsZC9nZW4vZ28vYnVm", + "YnVpbGQvcHJvdG92YWxpZGF0ZS9wcm90b2NvbGJ1ZmZlcnMvZ28vYnVmL3Zh", + "bGlkYXRl")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Buf.Validate.ExpressionReflection.Descriptor, global::Buf.Validate.Priv.PrivateReflection.Descriptor, global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Buf.Validate.KnownRegex), }, new pb::Extension[] { ValidateExtensions.Message, ValidateExtensions.Oneof, ValidateExtensions.Field }, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.MessageConstraints), global::Buf.Validate.MessageConstraints.Parser, new[]{ "Disabled", "Cel" }, new[]{ "Disabled" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.OneofConstraints), global::Buf.Validate.OneofConstraints.Parser, new[]{ "Required" }, new[]{ "Required" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.FieldConstraints), global::Buf.Validate.FieldConstraints.Parser, new[]{ "Cel", "Skipped", "Required", "IgnoreEmpty", "Float", "Double", "Int32", "Int64", "Uint32", "Uint64", "Sint32", "Sint64", "Fixed32", "Fixed64", "Sfixed32", "Sfixed64", "Bool", "String", "Bytes", "Enum", "Repeated", "Map", "Any", "Duration", "Timestamp" }, new[]{ "Type" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.FloatRules), global::Buf.Validate.FloatRules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Finite" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.DoubleRules), global::Buf.Validate.DoubleRules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Finite" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Int32Rules), global::Buf.Validate.Int32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Int64Rules), global::Buf.Validate.Int64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.UInt32Rules), global::Buf.Validate.UInt32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.UInt64Rules), global::Buf.Validate.UInt64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.SInt32Rules), global::Buf.Validate.SInt32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.SInt64Rules), global::Buf.Validate.SInt64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Fixed32Rules), global::Buf.Validate.Fixed32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Fixed64Rules), global::Buf.Validate.Fixed64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.SFixed32Rules), global::Buf.Validate.SFixed32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.SFixed64Rules), global::Buf.Validate.SFixed64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.BoolRules), global::Buf.Validate.BoolRules.Parser, new[]{ "Const" }, new[]{ "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.StringRules), global::Buf.Validate.StringRules.Parser, new[]{ "Const", "Len", "MinLen", "MaxLen", "LenBytes", "MinBytes", "MaxBytes", "Pattern", "Prefix", "Suffix", "Contains", "NotContains", "In", "NotIn", "Email", "Hostname", "Ip", "Ipv4", "Ipv6", "Uri", "UriRef", "Address", "Uuid", "IpWithPrefixlen", "Ipv4WithPrefixlen", "Ipv6WithPrefixlen", "IpPrefix", "Ipv4Prefix", "Ipv6Prefix", "WellKnownRegex", "Strict" }, new[]{ "WellKnown", "Const", "Len", "MinLen", "MaxLen", "LenBytes", "MinBytes", "MaxBytes", "Pattern", "Prefix", "Suffix", "Contains", "NotContains", "Strict" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.BytesRules), global::Buf.Validate.BytesRules.Parser, new[]{ "Const", "Len", "MinLen", "MaxLen", "Pattern", "Prefix", "Suffix", "Contains", "In", "NotIn", "Ip", "Ipv4", "Ipv6" }, new[]{ "WellKnown", "Const", "Len", "MinLen", "MaxLen", "Pattern", "Prefix", "Suffix", "Contains" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.EnumRules), global::Buf.Validate.EnumRules.Parser, new[]{ "Const", "DefinedOnly", "In", "NotIn" }, new[]{ "Const", "DefinedOnly" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.RepeatedRules), global::Buf.Validate.RepeatedRules.Parser, new[]{ "MinItems", "MaxItems", "Unique", "Items" }, new[]{ "MinItems", "MaxItems", "Unique", "Items" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.MapRules), global::Buf.Validate.MapRules.Parser, new[]{ "MinPairs", "MaxPairs", "Keys", "Values" }, new[]{ "MinPairs", "MaxPairs", "Keys", "Values" }, null, null, null), + new pbr::FileDescriptor[] { global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Buf.Validate.Ignore), typeof(global::Buf.Validate.KnownRegex), }, new pb::Extension[] { ValidateExtensions.Message, ValidateExtensions.Oneof, ValidateExtensions.Field, ValidateExtensions.Predefined }, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Constraint), global::Buf.Validate.Constraint.Parser, new[]{ "Id", "Message", "Expression" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.MessageConstraints), global::Buf.Validate.MessageConstraints.Parser, new[]{ "Disabled", "Cel" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.OneofConstraints), global::Buf.Validate.OneofConstraints.Parser, new[]{ "Required" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.FieldConstraints), global::Buf.Validate.FieldConstraints.Parser, new[]{ "Cel", "Required", "Ignore", "Float", "Double", "Int32", "Int64", "Uint32", "Uint64", "Sint32", "Sint64", "Fixed32", "Fixed64", "Sfixed32", "Sfixed64", "Bool", "String", "Bytes", "Enum", "Repeated", "Map", "Any", "Duration", "Timestamp", "Skipped", "IgnoreEmpty" }, new[]{ "Type" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.PredefinedConstraints), global::Buf.Validate.PredefinedConstraints.Parser, new[]{ "Cel" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.FloatRules), global::Buf.Validate.FloatRules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Finite", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.DoubleRules), global::Buf.Validate.DoubleRules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Finite", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Int32Rules), global::Buf.Validate.Int32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Int64Rules), global::Buf.Validate.Int64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.UInt32Rules), global::Buf.Validate.UInt32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.UInt64Rules), global::Buf.Validate.UInt64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.SInt32Rules), global::Buf.Validate.SInt32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.SInt64Rules), global::Buf.Validate.SInt64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Fixed32Rules), global::Buf.Validate.Fixed32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Fixed64Rules), global::Buf.Validate.Fixed64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.SFixed32Rules), global::Buf.Validate.SFixed32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.SFixed64Rules), global::Buf.Validate.SFixed64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.BoolRules), global::Buf.Validate.BoolRules.Parser, new[]{ "Const", "Example" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.StringRules), global::Buf.Validate.StringRules.Parser, new[]{ "Const", "Len", "MinLen", "MaxLen", "LenBytes", "MinBytes", "MaxBytes", "Pattern", "Prefix", "Suffix", "Contains", "NotContains", "In", "NotIn", "Email", "Hostname", "Ip", "Ipv4", "Ipv6", "Uri", "UriRef", "Address", "Uuid", "Tuuid", "IpWithPrefixlen", "Ipv4WithPrefixlen", "Ipv6WithPrefixlen", "IpPrefix", "Ipv4Prefix", "Ipv6Prefix", "HostAndPort", "WellKnownRegex", "Strict", "Example" }, new[]{ "WellKnown" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.BytesRules), global::Buf.Validate.BytesRules.Parser, new[]{ "Const", "Len", "MinLen", "MaxLen", "Pattern", "Prefix", "Suffix", "Contains", "In", "NotIn", "Ip", "Ipv4", "Ipv6", "Example" }, new[]{ "WellKnown" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.EnumRules), global::Buf.Validate.EnumRules.Parser, new[]{ "Const", "DefinedOnly", "In", "NotIn", "Example" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.RepeatedRules), global::Buf.Validate.RepeatedRules.Parser, new[]{ "MinItems", "MaxItems", "Unique", "Items" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.MapRules), global::Buf.Validate.MapRules.Parser, new[]{ "MinPairs", "MaxPairs", "Keys", "Values" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.AnyRules), global::Buf.Validate.AnyRules.Parser, new[]{ "In", "NotIn" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.DurationRules), global::Buf.Validate.DurationRules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, new[]{ "LessThan", "GreaterThan", "Const" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.TimestampRules), global::Buf.Validate.TimestampRules.Parser, new[]{ "Const", "Lt", "Lte", "LtNow", "Gt", "Gte", "GtNow", "Within" }, new[]{ "LessThan", "GreaterThan", "Const", "Within" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.DurationRules), global::Buf.Validate.DurationRules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.TimestampRules), global::Buf.Validate.TimestampRules.Parser, new[]{ "Const", "Lt", "Lte", "LtNow", "Gt", "Gte", "GtNow", "Within", "Example" }, new[]{ "LessThan", "GreaterThan" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Violations), global::Buf.Validate.Violations.Parser, new[]{ "Violations_" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Buf.Validate.Violation), global::Buf.Validate.Violation.Parser, new[]{ "FieldPath", "ConstraintId", "Message", "ForKey" }, null, null, null, null) })); } #endregion @@ -1171,43 +1271,239 @@ public static partial class ValidateExtensions { /// public static readonly pb::Extension Field = new pb::Extension(1159, pb::FieldCodec.ForMessage(9274, global::Buf.Validate.FieldConstraints.Parser)); + /// + /// Specifies predefined rules. When extending a standard constraint 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]; + /// } + /// ``` + /// + public static readonly pb::Extension Predefined = + new pb::Extension(1160, pb::FieldCodec.ForMessage(9282, global::Buf.Validate.PredefinedConstraints.Parser)); } #region Enums /// - /// WellKnownRegex contain some well-known patterns. + /// Specifies how FieldConstraints.ignore behaves. See the documentation for + /// FieldConstraints.required for definitions of "populated" and "nullable". /// - public enum KnownRegex { - [pbr::OriginalName("KNOWN_REGEX_UNSPECIFIED")] Unspecified = 0, + public enum Ignore { /// - /// HTTP header name as defined by [RFC 7230](https://tools.ietf.org/html/rfc7230#section-3.2). + /// Validation is only skipped if it's an unpopulated nullable fields. + /// + /// ```proto + /// syntax="proto3"; + /// + /// message Request { + /// // The uri rule applies to any value, including the empty string. + /// string foo = 1 [ + /// (buf.validate.field).string.uri = true + /// ]; + /// + /// // The uri rule only applies if the field is set, including if it's + /// // set to the empty string. + /// optional string bar = 2 [ + /// (buf.validate.field).string.uri = true + /// ]; + /// + /// // The min_items rule always applies, even if the list is empty. + /// repeated string baz = 3 [ + /// (buf.validate.field).repeated.min_items = 3 + /// ]; + /// + /// // The custom CEL rule applies only if the field is set, including if + /// // it's the "zero" value of that message. + /// SomeMessage quux = 4 [ + /// (buf.validate.field).cel = {/* ... */} + /// ]; + /// } + /// ``` /// - [pbr::OriginalName("KNOWN_REGEX_HTTP_HEADER_NAME")] HttpHeaderName = 1, + [pbr::OriginalName("IGNORE_UNSPECIFIED")] Unspecified = 0, /// - /// HTTP header value as defined by [RFC 7230](https://tools.ietf.org/html/rfc7230#section-3.2.4). - /// - [pbr::OriginalName("KNOWN_REGEX_HTTP_HEADER_VALUE")] HttpHeaderValue = 2, - } - - #endregion - + /// Validation is skipped if the field is unpopulated. This rule is redundant + /// if the field is already nullable. This value is equivalent behavior to the + /// deprecated ignore_empty rule. + /// + /// ```proto + /// syntax="proto3 + /// + /// message Request { + /// // The uri rule applies only if the value is not the empty string. + /// string foo = 1 [ + /// (buf.validate.field).string.uri = true, + /// (buf.validate.field).ignore = IGNORE_IF_UNPOPULATED + /// ]; + /// + /// // IGNORE_IF_UNPOPULATED is equivalent to IGNORE_UNSPECIFIED in this + /// // case: the uri rule only applies if the field is set, including if + /// // it's set to the empty string. + /// optional string bar = 2 [ + /// (buf.validate.field).string.uri = true, + /// (buf.validate.field).ignore = IGNORE_IF_UNPOPULATED + /// ]; + /// + /// // The min_items rule only applies if the list has at least one item. + /// repeated string baz = 3 [ + /// (buf.validate.field).repeated.min_items = 3, + /// (buf.validate.field).ignore = IGNORE_IF_UNPOPULATED + /// ]; + /// + /// // IGNORE_IF_UNPOPULATED is equivalent to IGNORE_UNSPECIFIED in this + /// // case: the custom CEL rule applies only if the field is set, including + /// // if it's the "zero" value of that message. + /// SomeMessage quux = 4 [ + /// (buf.validate.field).cel = {/* ... */}, + /// (buf.validate.field).ignore = IGNORE_IF_UNPOPULATED + /// ]; + /// } + /// ``` + /// + [pbr::OriginalName("IGNORE_IF_UNPOPULATED")] IfUnpopulated = 1, + /// + /// Validation is skipped if the field is unpopulated or if it is a nullable + /// field populated with its default value. This is typically the zero or + /// empty value, but proto2 scalars support custom defaults. For messages, the + /// default is a non-null message with all its fields unpopulated. + /// + /// ```proto + /// syntax="proto3 + /// + /// message Request { + /// // IGNORE_IF_DEFAULT_VALUE is equivalent to IGNORE_IF_UNPOPULATED in + /// // this case; the uri rule applies only if the value is not the empty + /// // string. + /// string foo = 1 [ + /// (buf.validate.field).string.uri = true, + /// (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + /// ]; + /// + /// // The uri rule only applies if the field is set to a value other than + /// // the empty string. + /// optional string bar = 2 [ + /// (buf.validate.field).string.uri = true, + /// (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + /// ]; + /// + /// // IGNORE_IF_DEFAULT_VALUE is equivalent to IGNORE_IF_UNPOPULATED in + /// // this case; the min_items rule only applies if the list has at least + /// // one item. + /// repeated string baz = 3 [ + /// (buf.validate.field).repeated.min_items = 3, + /// (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + /// ]; + /// + /// // The custom CEL rule only applies if the field is set to a value other + /// // than an empty message (i.e., fields are unpopulated). + /// SomeMessage quux = 4 [ + /// (buf.validate.field).cel = {/* ... */}, + /// (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + /// ]; + /// } + /// ``` + /// + /// This rule is affected by proto2 custom default values: + /// + /// ```proto + /// syntax="proto2"; + /// + /// message Request { + /// // The gt rule only applies if the field is set and it's value is not + /// the default (i.e., not -42). The rule even applies if the field is set + /// to zero since the default value differs. + /// optional int32 value = 1 [ + /// default = -42, + /// (buf.validate.field).int32.gt = 0, + /// (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE + /// ]; + /// } + /// + [pbr::OriginalName("IGNORE_IF_DEFAULT_VALUE")] IfDefaultValue = 2, + /// + /// The validation rules of this field will be skipped and not evaluated. This + /// is useful for situations that necessitate turning off the rules of a field + /// containing a message that may not make sense in the current context, or to + /// temporarily disable constraints during development. + /// + /// ```proto + /// message MyMessage { + /// // The field's rules will always be ignored, including any validation's + /// // on value's fields. + /// MyOtherMessage value = 1 [ + /// (buf.validate.field).ignore = IGNORE_ALWAYS]; + /// } + /// ``` + /// + [pbr::OriginalName("IGNORE_ALWAYS")] Always = 3, + /// + /// Deprecated: Use IGNORE_IF_UNPOPULATED instead. TODO: Remove this value pre-v1. + /// + [global::System.ObsoleteAttribute] + [pbr::OriginalName("IGNORE_EMPTY", PreferredAlias = false)] Empty = 1, + /// + /// Deprecated: Use IGNORE_IF_DEFAULT_VALUE. TODO: Remove this value pre-v1. + /// + [global::System.ObsoleteAttribute] + [pbr::OriginalName("IGNORE_DEFAULT", PreferredAlias = false)] Default = 2, + } + + /// + /// WellKnownRegex contain some well-known patterns. + /// + public enum KnownRegex { + [pbr::OriginalName("KNOWN_REGEX_UNSPECIFIED")] Unspecified = 0, + /// + /// HTTP header name as defined by [RFC 7230](https://tools.ietf.org/html/rfc7230#section-3.2). + /// + [pbr::OriginalName("KNOWN_REGEX_HTTP_HEADER_NAME")] HttpHeaderName = 1, + /// + /// HTTP header value as defined by [RFC 7230](https://tools.ietf.org/html/rfc7230#section-3.2.4). + /// + [pbr::OriginalName("KNOWN_REGEX_HTTP_HEADER_VALUE")] HttpHeaderValue = 2, + } + + #endregion + #region Messages /// - /// MessageConstraints represents validation rules that are applied to the entire message. - /// It includes disabling options and a list of Constraint messages representing Common Expression Language (CEL) validation rules. + /// `Constraint` represents a validation rule written in the Common Expression + /// Language (CEL) syntax. Each Constraint includes a unique identifier, an + /// optional error message, and the CEL expression to evaluate. For more + /// information on CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). + /// + /// ```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; + /// } + /// ``` /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class MessageConstraints : pb::IMessage + public sealed partial class Constraint : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MessageConstraints()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Constraint()); private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -1223,7 +1519,7 @@ public sealed partial class MessageConstraints : pb::IMessageField number for the "disabled" field. - public const int DisabledFieldNumber = 1; - private readonly static bool DisabledDefaultValue = false; + /// Field number for the "id" field. + public const int IdFieldNumber = 1; + private readonly static string IdDefaultValue = ""; - private bool disabled_; + private string id_; /// - /// `disabled` is a boolean flag that, when set to true, nullifies any validation rules for this message. - /// This includes any fields within the message that would otherwise support validation. - /// - /// ```proto - /// message MyMessage { - /// // validation will be bypassed for this message - /// option (buf.validate.message).disabled = true; - /// } - /// ``` + /// `id` is a string that serves as a machine-readable name for this Constraint. + /// It should be unique within its scope, which could be either a message or a field. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Disabled { - get { if ((_hasBits0 & 1) != 0) { return disabled_; } else { return DisabledDefaultValue; } } + public string Id { + get { return id_ ?? IdDefaultValue; } set { - _hasBits0 |= 1; - disabled_ = value; + id_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - /// Gets whether the "disabled" field is set + /// Gets whether the "id" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasDisabled { - get { return (_hasBits0 & 1) != 0; } + public bool HasId { + get { return id_ != null; } } - /// Clears the value of the "disabled" field + /// Clears the value of the "id" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearDisabled() { - _hasBits0 &= ~1; + public void ClearId() { + id_ = null; } - /// Field number for the "cel" field. - public const int CelFieldNumber = 3; - private static readonly pb::FieldCodec _repeated_cel_codec - = pb::FieldCodec.ForMessage(26, global::Buf.Validate.Constraint.Parser); - private readonly pbc::RepeatedField cel_ = new pbc::RepeatedField(); + /// Field number for the "message" field. + public const int MessageFieldNumber = 2; + private readonly static string MessageDefaultValue = ""; + + private string message_; /// - /// `cel` is a repeated field of type Constraint. Each Constraint specifies a validation rule to be applied to this message. - /// These constraints are written in Common Expression Language (CEL) syntax. For more information on - /// CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). - /// - /// ```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; - /// } - /// ``` + /// `message` is an optional field that provides a human-readable error message + /// for this Constraint when the CEL expression evaluates to false. If a + /// non-empty message is provided, any strings resulting from the CEL + /// expression evaluation are ignored. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Cel { - get { return cel_; } + public string Message { + get { return message_ ?? MessageDefaultValue; } + set { + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "message" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasMessage { + get { return message_ != null; } + } + /// Clears the value of the "message" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearMessage() { + message_ = null; + } + + /// Field number for the "expression" field. + public const int ExpressionFieldNumber = 3; + private readonly static string ExpressionDefaultValue = ""; + + private string expression_; + /// + /// `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. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Expression { + get { return expression_ ?? ExpressionDefaultValue; } + set { + expression_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "expression" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasExpression { + get { return expression_ != null; } + } + /// Clears the value of the "expression" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearExpression() { + expression_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as MessageConstraints); + return Equals(other as Constraint); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(MessageConstraints other) { + public bool Equals(Constraint other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (Disabled != other.Disabled) return false; - if(!cel_.Equals(other.cel_)) return false; + if (Id != other.Id) return false; + if (Message != other.Message) return false; + if (Expression != other.Expression) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1334,8 +1659,9 @@ public bool Equals(MessageConstraints other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (HasDisabled) hash ^= Disabled.GetHashCode(); - hash ^= cel_.GetHashCode(); + if (HasId) hash ^= Id.GetHashCode(); + if (HasMessage) hash ^= Message.GetHashCode(); + if (HasExpression) hash ^= Expression.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1354,11 +1680,18 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (HasDisabled) { - output.WriteRawTag(8); - output.WriteBool(Disabled); + if (HasId) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (HasMessage) { + output.WriteRawTag(18); + output.WriteString(Message); + } + if (HasExpression) { + output.WriteRawTag(26); + output.WriteString(Expression); } - cel_.WriteTo(output, _repeated_cel_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1369,11 +1702,18 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasDisabled) { - output.WriteRawTag(8); - output.WriteBool(Disabled); + if (HasId) { + output.WriteRawTag(10); + output.WriteString(Id); + } + if (HasMessage) { + output.WriteRawTag(18); + output.WriteString(Message); + } + if (HasExpression) { + output.WriteRawTag(26); + output.WriteString(Expression); } - cel_.WriteTo(ref output, _repeated_cel_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1384,10 +1724,15 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (HasDisabled) { - size += 1 + 1; + if (HasId) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); + } + if (HasMessage) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); + } + if (HasExpression) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Expression); } - size += cel_.CalculateSize(_repeated_cel_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1396,14 +1741,19 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(MessageConstraints other) { + public void MergeFrom(Constraint other) { if (other == null) { return; } - if (other.HasDisabled) { - Disabled = other.Disabled; + if (other.HasId) { + Id = other.Id; + } + if (other.HasMessage) { + Message = other.Message; + } + if (other.HasExpression) { + Expression = other.Expression; } - cel_.Add(other.cel_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1423,12 +1773,16 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; - case 8: { - Disabled = input.ReadBool(); + case 10: { + Id = input.ReadString(); + break; + } + case 18: { + Message = input.ReadString(); break; } case 26: { - cel_.AddEntriesFrom(input, _repeated_cel_codec); + Expression = input.ReadString(); break; } } @@ -1450,12 +1804,16 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; - case 8: { - Disabled = input.ReadBool(); + case 10: { + Id = input.ReadString(); + break; + } + case 18: { + Message = input.ReadString(); break; } case 26: { - cel_.AddEntriesFrom(ref input, _repeated_cel_codec); + Expression = input.ReadString(); break; } } @@ -1466,21 +1824,21 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// The `OneofConstraints` message type enables you to manage constraints for - /// oneof fields in your protobuf messages. + /// MessageConstraints represents validation rules that are applied to the entire message. + /// It includes disabling options and a list of Constraint messages representing Common Expression Language (CEL) validation rules. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class OneofConstraints : pb::IMessage + public sealed partial class MessageConstraints : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OneofConstraints()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MessageConstraints()); private pb::UnknownFieldSet _unknownFields; private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -1496,7 +1854,7 @@ public sealed partial class OneofConstraints : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OneofConstraints() { + public MessageConstraints() { OnConstruction(); } @@ -1504,80 +1862,102 @@ public OneofConstraints() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OneofConstraints(OneofConstraints other) : this() { + public MessageConstraints(MessageConstraints other) : this() { _hasBits0 = other._hasBits0; - required_ = other.required_; + disabled_ = other.disabled_; + cel_ = other.cel_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OneofConstraints Clone() { - return new OneofConstraints(this); + public MessageConstraints Clone() { + return new MessageConstraints(this); } - /// Field number for the "required" field. - public const int RequiredFieldNumber = 1; - private readonly static bool RequiredDefaultValue = false; + /// Field number for the "disabled" field. + public const int DisabledFieldNumber = 1; + private readonly static bool DisabledDefaultValue = false; - private bool required_; + private bool disabled_; /// - /// If `required` is true, exactly one field of the oneof must be present. A - /// validation error is returned if no fields in the oneof are present. The - /// field itself may still be a default value; further constraints - /// should be placed on the fields themselves to ensure they are valid values, - /// such as `min_len` or `gt`. + /// `disabled` is a boolean flag that, when set to true, nullifies any validation rules for this message. + /// This includes any fields within the message that would otherwise support validation. /// /// ```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; - /// } + /// // validation will be bypassed for this message + /// option (buf.validate.message).disabled = true; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Required { - get { if ((_hasBits0 & 1) != 0) { return required_; } else { return RequiredDefaultValue; } } + public bool Disabled { + get { if ((_hasBits0 & 1) != 0) { return disabled_; } else { return DisabledDefaultValue; } } set { _hasBits0 |= 1; - required_ = value; + disabled_ = value; } } - /// Gets whether the "required" field is set + /// Gets whether the "disabled" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasRequired { + public bool HasDisabled { get { return (_hasBits0 & 1) != 0; } } - /// Clears the value of the "required" field + /// Clears the value of the "disabled" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearRequired() { + public void ClearDisabled() { _hasBits0 &= ~1; } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as OneofConstraints); + /// Field number for the "cel" field. + public const int CelFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_cel_codec + = pb::FieldCodec.ForMessage(26, global::Buf.Validate.Constraint.Parser); + private readonly pbc::RepeatedField cel_ = new pbc::RepeatedField(); + /// + /// `cel` is a repeated field of type Constraint. Each Constraint specifies a validation rule to be applied to this message. + /// These constraints are written in Common Expression Language (CEL) syntax. For more information on + /// CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). + /// + /// ```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; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Cel { + get { return cel_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(OneofConstraints other) { + public override bool Equals(object other) { + return Equals(other as MessageConstraints); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(MessageConstraints other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (Required != other.Required) return false; + if (Disabled != other.Disabled) return false; + if(!cel_.Equals(other.cel_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1585,7 +1965,8 @@ public bool Equals(OneofConstraints other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (HasRequired) hash ^= Required.GetHashCode(); + if (HasDisabled) hash ^= Disabled.GetHashCode(); + hash ^= cel_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1604,10 +1985,11 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (HasRequired) { + if (HasDisabled) { output.WriteRawTag(8); - output.WriteBool(Required); + output.WriteBool(Disabled); } + cel_.WriteTo(output, _repeated_cel_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1618,10 +2000,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasRequired) { + if (HasDisabled) { output.WriteRawTag(8); - output.WriteBool(Required); + output.WriteBool(Disabled); } + cel_.WriteTo(ref output, _repeated_cel_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1632,9 +2015,10 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (HasRequired) { + if (HasDisabled) { size += 1 + 1; } + size += cel_.CalculateSize(_repeated_cel_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1643,13 +2027,14 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(OneofConstraints other) { + public void MergeFrom(MessageConstraints other) { if (other == null) { return; } - if (other.HasRequired) { - Required = other.Required; + if (other.HasDisabled) { + Disabled = other.Disabled; } + cel_.Add(other.cel_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1670,7 +2055,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 8: { - Required = input.ReadBool(); + Disabled = input.ReadBool(); + break; + } + case 26: { + cel_.AddEntriesFrom(input, _repeated_cel_codec); break; } } @@ -1693,7 +2082,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 8: { - Required = input.ReadBool(); + Disabled = input.ReadBool(); + break; + } + case 26: { + cel_.AddEntriesFrom(ref input, _repeated_cel_codec); break; } } @@ -1704,20 +2097,21 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// FieldRules encapsulates the rules for each type of field. Depending on the - /// field, the correct set should be used to ensure proper validations. + /// The `OneofConstraints` message type enables you to manage constraints for + /// oneof fields in your protobuf messages. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class FieldConstraints : pb::IMessage + public sealed partial class OneofConstraints : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FieldConstraints()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OneofConstraints()); private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -1733,7 +2127,7 @@ public sealed partial class FieldConstraints : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldConstraints() { + public OneofConstraints() { OnConstruction(); } @@ -1741,418 +2135,662 @@ public FieldConstraints() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldConstraints(FieldConstraints other) : this() { - cel_ = other.cel_.Clone(); - skipped_ = other.skipped_; + public OneofConstraints(OneofConstraints other) : this() { + _hasBits0 = other._hasBits0; required_ = other.required_; - ignoreEmpty_ = other.ignoreEmpty_; - switch (other.TypeCase) { - case TypeOneofCase.Float: - Float = other.Float.Clone(); - break; - case TypeOneofCase.Double: - Double = other.Double.Clone(); - break; - case TypeOneofCase.Int32: - Int32 = other.Int32.Clone(); - break; - case TypeOneofCase.Int64: - Int64 = other.Int64.Clone(); - break; - case TypeOneofCase.Uint32: - Uint32 = other.Uint32.Clone(); - break; - case TypeOneofCase.Uint64: - Uint64 = other.Uint64.Clone(); - break; - case TypeOneofCase.Sint32: - Sint32 = other.Sint32.Clone(); - break; - case TypeOneofCase.Sint64: - Sint64 = other.Sint64.Clone(); - break; - case TypeOneofCase.Fixed32: - Fixed32 = other.Fixed32.Clone(); - break; - case TypeOneofCase.Fixed64: - Fixed64 = other.Fixed64.Clone(); - break; - case TypeOneofCase.Sfixed32: - Sfixed32 = other.Sfixed32.Clone(); - break; - case TypeOneofCase.Sfixed64: - Sfixed64 = other.Sfixed64.Clone(); - break; - case TypeOneofCase.Bool: - Bool = other.Bool.Clone(); - break; - case TypeOneofCase.String: - String = other.String.Clone(); - break; - case TypeOneofCase.Bytes: - Bytes = other.Bytes.Clone(); - break; - case TypeOneofCase.Enum: - Enum = other.Enum.Clone(); - break; - case TypeOneofCase.Repeated: - Repeated = other.Repeated.Clone(); - break; - case TypeOneofCase.Map: - Map = other.Map.Clone(); - break; - case TypeOneofCase.Any: - Any = other.Any.Clone(); - break; - case TypeOneofCase.Duration: - Duration = other.Duration.Clone(); - break; - case TypeOneofCase.Timestamp: - Timestamp = other.Timestamp.Clone(); - break; - } - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldConstraints Clone() { - return new FieldConstraints(this); - } - - /// Field number for the "cel" field. - public const int CelFieldNumber = 23; - private static readonly pb::FieldCodec _repeated_cel_codec - = pb::FieldCodec.ForMessage(186, global::Buf.Validate.Constraint.Parser); - private readonly pbc::RepeatedField cel_ = new pbc::RepeatedField(); - /// - /// `cel` is a repeated field used to represent a textual expression - /// in the Common Expression Language (CEL) syntax. For more information on - /// CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). - /// - /// ```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", - /// }]; - /// } - /// ``` - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Cel { - get { return cel_; } - } - - /// Field number for the "skipped" field. - public const int SkippedFieldNumber = 24; - private bool skipped_; - /// - /// `skipped` is an optional boolean attribute that specifies that the - /// validation rules of this field should not be evaluated. If skipped is set to - /// true, any validation rules set for the field will be ignored. - /// - /// ```proto - /// message MyMessage { - /// // The field `value` must not be set. - /// optional MyOtherMessage value = 1 [(buf.validate.field).skipped = true]; - /// } - /// ``` - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Skipped { - get { return skipped_; } - set { - skipped_ = value; - } + public OneofConstraints Clone() { + return new OneofConstraints(this); } /// Field number for the "required" field. - public const int RequiredFieldNumber = 25; + public const int RequiredFieldNumber = 1; + private readonly static bool RequiredDefaultValue = false; + private bool required_; /// - /// If `required` is true, the field must be populated. Field presence can be - /// described as "serialized in the wire format," which follows the following rules: - /// - /// - the following "nullable" fields must be explicitly set to be considered present: - /// - singular message fields (may be their empty value) - /// - member fields of a oneof (may be their default value) - /// - proto3 optional fields (may be their default value) - /// - proto2 scalar fields - /// - proto3 scalar fields must be non-zero to be considered present - /// - repeated and map fields must be non-empty to be considered present + /// If `required` is true, exactly one field of the oneof must be present. A + /// validation error is returned if no fields in the oneof are present. The + /// field itself may still be a default value; further constraints + /// should be placed on the fields themselves to ensure they are valid values, + /// such as `min_len` or `gt`. /// /// ```proto /// message MyMessage { - /// // The field `value` must be set to a non-null value. - /// optional MyOtherMessage value = 1 [(buf.validate.field).required = true]; + /// 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; + /// } /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public bool Required { - get { return required_; } + get { if ((_hasBits0 & 1) != 0) { return required_; } else { return RequiredDefaultValue; } } set { + _hasBits0 |= 1; required_ = value; } } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 26; - private bool ignoreEmpty_; - /// - /// If `ignore_empty` is true and applied to a non-nullable field (see - /// `required` for more details), validation is skipped on the field if it is - /// the default or empty value. Adding `ignore_empty` to a "nullable" field is - /// a noop as these unset fields already skip validation (with the exception - /// of `required`). - /// - /// ```proto - /// message MyRepeated { - /// // The field `value` min_len rule is only applied if the field isn't empty. - /// repeated string value = 1 [ - /// (buf.validate.field).ignore_empty = true, - /// (buf.validate.field).min_len = 5 - /// ]; - /// } - /// ``` - /// + /// Gets whether the "required" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { return ignoreEmpty_; } - set { - ignoreEmpty_ = value; - } + public bool HasRequired { + get { return (_hasBits0 & 1) != 0; } } - - /// Field number for the "float" field. - public const int FloatFieldNumber = 1; - /// - /// Scalar Field Types - /// + /// Clears the value of the "required" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.FloatRules Float { - get { return typeCase_ == TypeOneofCase.Float ? (global::Buf.Validate.FloatRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Float; - } + public void ClearRequired() { + _hasBits0 &= ~1; } - /// Field number for the "double" field. - public const int DoubleFieldNumber = 2; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.DoubleRules Double { - get { return typeCase_ == TypeOneofCase.Double ? (global::Buf.Validate.DoubleRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Double; - } + public override bool Equals(object other) { + return Equals(other as OneofConstraints); } - /// Field number for the "int32" field. - public const int Int32FieldNumber = 3; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.Int32Rules Int32 { - get { return typeCase_ == TypeOneofCase.Int32 ? (global::Buf.Validate.Int32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Int32; + public bool Equals(OneofConstraints other) { + if (ReferenceEquals(other, null)) { + return false; } - } - - /// Field number for the "int64" field. - public const int Int64FieldNumber = 4; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.Int64Rules Int64 { - get { return typeCase_ == TypeOneofCase.Int64 ? (global::Buf.Validate.Int64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Int64; + if (ReferenceEquals(other, this)) { + return true; } + if (Required != other.Required) return false; + return Equals(_unknownFields, other._unknownFields); } - /// Field number for the "uint32" field. - public const int Uint32FieldNumber = 5; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.UInt32Rules Uint32 { - get { return typeCase_ == TypeOneofCase.Uint32 ? (global::Buf.Validate.UInt32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Uint32; + public override int GetHashCode() { + int hash = 1; + if (HasRequired) hash ^= Required.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); } + return hash; } - /// Field number for the "uint64" field. - public const int Uint64FieldNumber = 6; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.UInt64Rules Uint64 { - get { return typeCase_ == TypeOneofCase.Uint64 ? (global::Buf.Validate.UInt64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Uint64; - } + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); } - /// Field number for the "sint32" field. - public const int Sint32FieldNumber = 7; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.SInt32Rules Sint32 { - get { return typeCase_ == TypeOneofCase.Sint32 ? (global::Buf.Validate.SInt32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sint32; + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasRequired) { + output.WriteRawTag(8); + output.WriteBool(Required); } - } - - /// Field number for the "sint64" field. - public const int Sint64FieldNumber = 8; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.SInt64Rules Sint64 { - get { return typeCase_ == TypeOneofCase.Sint64 ? (global::Buf.Validate.SInt64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sint64; + if (_unknownFields != null) { + _unknownFields.WriteTo(output); } + #endif } - /// Field number for the "fixed32" field. - public const int Fixed32FieldNumber = 9; + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.Fixed32Rules Fixed32 { - get { return typeCase_ == TypeOneofCase.Fixed32 ? (global::Buf.Validate.Fixed32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Fixed32; + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasRequired) { + output.WriteRawTag(8); + output.WriteBool(Required); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); } } + #endif - /// Field number for the "fixed64" field. - public const int Fixed64FieldNumber = 10; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.Fixed64Rules Fixed64 { - get { return typeCase_ == TypeOneofCase.Fixed64 ? (global::Buf.Validate.Fixed64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Fixed64; + public int CalculateSize() { + int size = 0; + if (HasRequired) { + size += 1 + 1; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); } + return size; } - /// Field number for the "sfixed32" field. - public const int Sfixed32FieldNumber = 11; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.SFixed32Rules Sfixed32 { - get { return typeCase_ == TypeOneofCase.Sfixed32 ? (global::Buf.Validate.SFixed32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sfixed32; + public void MergeFrom(OneofConstraints other) { + if (other == null) { + return; + } + if (other.HasRequired) { + Required = other.Required; } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } - /// Field number for the "sfixed64" field. - public const int Sfixed64FieldNumber = 12; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.SFixed64Rules Sfixed64 { - get { return typeCase_ == TypeOneofCase.Sfixed64 ? (global::Buf.Validate.SFixed64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sfixed64; + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Required = input.ReadBool(); + break; + } + } } + #endif } - /// Field number for the "bool" field. - public const int BoolFieldNumber = 13; + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.BoolRules Bool { - get { return typeCase_ == TypeOneofCase.Bool ? (global::Buf.Validate.BoolRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Bool; + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Required = input.ReadBool(); + break; + } + } } } + #endif - /// Field number for the "string" field. - public const int StringFieldNumber = 14; + } + + /// + /// FieldConstraints encapsulates the rules for each type of field. Depending on + /// the field, the correct set should be used to ensure proper validations. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class FieldConstraints : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FieldConstraints()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.StringRules String { - get { return typeCase_ == TypeOneofCase.String ? (global::Buf.Validate.StringRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.String; - } - } + public static pb::MessageParser Parser { get { return _parser; } } - /// Field number for the "bytes" field. - public const int BytesFieldNumber = 15; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.BytesRules Bytes { - get { return typeCase_ == TypeOneofCase.Bytes ? (global::Buf.Validate.BytesRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Bytes; - } + public static pbr::MessageDescriptor Descriptor { + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[3]; } } - /// Field number for the "enum" field. - public const int EnumFieldNumber = 16; - /// - /// Complex Field Types - /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.EnumRules Enum { - get { return typeCase_ == TypeOneofCase.Enum ? (global::Buf.Validate.EnumRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Enum; - } + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } } - /// Field number for the "repeated" field. - public const int RepeatedFieldNumber = 18; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.RepeatedRules Repeated { - get { return typeCase_ == TypeOneofCase.Repeated ? (global::Buf.Validate.RepeatedRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Repeated; - } + public FieldConstraints() { + OnConstruction(); } - /// Field number for the "map" field. - public const int MapFieldNumber = 19; + partial void OnConstruction(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.MapRules Map { - get { return typeCase_ == TypeOneofCase.Map ? (global::Buf.Validate.MapRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Map; - } - } + public FieldConstraints(FieldConstraints other) : this() { + _hasBits0 = other._hasBits0; + cel_ = other.cel_.Clone(); + required_ = other.required_; + ignore_ = other.ignore_; + skipped_ = other.skipped_; + ignoreEmpty_ = other.ignoreEmpty_; + switch (other.TypeCase) { + case TypeOneofCase.Float: + Float = other.Float.Clone(); + break; + case TypeOneofCase.Double: + Double = other.Double.Clone(); + break; + case TypeOneofCase.Int32: + Int32 = other.Int32.Clone(); + break; + case TypeOneofCase.Int64: + Int64 = other.Int64.Clone(); + break; + case TypeOneofCase.Uint32: + Uint32 = other.Uint32.Clone(); + break; + case TypeOneofCase.Uint64: + Uint64 = other.Uint64.Clone(); + break; + case TypeOneofCase.Sint32: + Sint32 = other.Sint32.Clone(); + break; + case TypeOneofCase.Sint64: + Sint64 = other.Sint64.Clone(); + break; + case TypeOneofCase.Fixed32: + Fixed32 = other.Fixed32.Clone(); + break; + case TypeOneofCase.Fixed64: + Fixed64 = other.Fixed64.Clone(); + break; + case TypeOneofCase.Sfixed32: + Sfixed32 = other.Sfixed32.Clone(); + break; + case TypeOneofCase.Sfixed64: + Sfixed64 = other.Sfixed64.Clone(); + break; + case TypeOneofCase.Bool: + Bool = other.Bool.Clone(); + break; + case TypeOneofCase.String: + String = other.String.Clone(); + break; + case TypeOneofCase.Bytes: + Bytes = other.Bytes.Clone(); + break; + case TypeOneofCase.Enum: + Enum = other.Enum.Clone(); + break; + case TypeOneofCase.Repeated: + Repeated = other.Repeated.Clone(); + break; + case TypeOneofCase.Map: + Map = other.Map.Clone(); + break; + case TypeOneofCase.Any: + Any = other.Any.Clone(); + break; + case TypeOneofCase.Duration: + Duration = other.Duration.Clone(); + break; + case TypeOneofCase.Timestamp: + Timestamp = other.Timestamp.Clone(); + break; + } + + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public FieldConstraints Clone() { + return new FieldConstraints(this); + } + + /// Field number for the "cel" field. + public const int CelFieldNumber = 23; + private static readonly pb::FieldCodec _repeated_cel_codec + = pb::FieldCodec.ForMessage(186, global::Buf.Validate.Constraint.Parser); + private readonly pbc::RepeatedField cel_ = new pbc::RepeatedField(); + /// + /// `cel` is a repeated field used to represent a textual expression + /// in the Common Expression Language (CEL) syntax. For more information on + /// CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). + /// + /// ```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", + /// }]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Cel { + get { return cel_; } + } + + /// Field number for the "required" field. + public const int RequiredFieldNumber = 25; + private readonly static bool RequiredDefaultValue = false; + + private bool required_; + /// + /// If `required` is true, the field must be populated. A populated field can be + /// described as "serialized in the wire format," which includes: + /// + /// - the following "nullable" fields must be explicitly set to be considered populated: + /// - singular message fields (whose fields may be unpopulated/default values) + /// - member fields of a oneof (may be their default value) + /// - proto3 optional fields (may be their default value) + /// - proto2 scalar fields (both optional and required) + /// - proto3 scalar fields must be non-zero to be considered populated + /// - repeated and map fields must be non-empty to be considered populated + /// + /// ```proto + /// message MyMessage { + /// // The field `value` must be set to a non-null value. + /// optional MyOtherMessage value = 1 [(buf.validate.field).required = true]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Required { + get { if ((_hasBits0 & 2) != 0) { return required_; } else { return RequiredDefaultValue; } } + set { + _hasBits0 |= 2; + required_ = value; + } + } + /// Gets whether the "required" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequired { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "required" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequired() { + _hasBits0 &= ~2; + } + + /// Field number for the "ignore" field. + public const int IgnoreFieldNumber = 27; + private readonly static global::Buf.Validate.Ignore IgnoreDefaultValue = global::Buf.Validate.Ignore.Unspecified; + + private global::Buf.Validate.Ignore ignore_; + /// + /// Skip validation on the field if its value matches the specified criteria. + /// See Ignore enum for details. + /// + /// ```proto + /// message UpdateRequest { + /// // The uri rule only applies if the field is populated and not an empty + /// // string. + /// optional string url = 1 [ + /// (buf.validate.field).ignore = IGNORE_IF_DEFAULT_VALUE, + /// (buf.validate.field).string.uri = true, + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.Ignore Ignore { + get { if ((_hasBits0 & 8) != 0) { return ignore_; } else { return IgnoreDefaultValue; } } + set { + _hasBits0 |= 8; + ignore_ = value; + } + } + /// Gets whether the "ignore" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasIgnore { + get { return (_hasBits0 & 8) != 0; } + } + /// Clears the value of the "ignore" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearIgnore() { + _hasBits0 &= ~8; + } + + /// Field number for the "float" field. + public const int FloatFieldNumber = 1; + /// + /// Scalar Field Types + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.FloatRules Float { + get { return typeCase_ == TypeOneofCase.Float ? (global::Buf.Validate.FloatRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Float; + } + } + + /// Field number for the "double" field. + public const int DoubleFieldNumber = 2; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.DoubleRules Double { + get { return typeCase_ == TypeOneofCase.Double ? (global::Buf.Validate.DoubleRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Double; + } + } + + /// Field number for the "int32" field. + public const int Int32FieldNumber = 3; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.Int32Rules Int32 { + get { return typeCase_ == TypeOneofCase.Int32 ? (global::Buf.Validate.Int32Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Int32; + } + } + + /// Field number for the "int64" field. + public const int Int64FieldNumber = 4; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.Int64Rules Int64 { + get { return typeCase_ == TypeOneofCase.Int64 ? (global::Buf.Validate.Int64Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Int64; + } + } + + /// Field number for the "uint32" field. + public const int Uint32FieldNumber = 5; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.UInt32Rules Uint32 { + get { return typeCase_ == TypeOneofCase.Uint32 ? (global::Buf.Validate.UInt32Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Uint32; + } + } + + /// Field number for the "uint64" field. + public const int Uint64FieldNumber = 6; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.UInt64Rules Uint64 { + get { return typeCase_ == TypeOneofCase.Uint64 ? (global::Buf.Validate.UInt64Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Uint64; + } + } + + /// Field number for the "sint32" field. + public const int Sint32FieldNumber = 7; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.SInt32Rules Sint32 { + get { return typeCase_ == TypeOneofCase.Sint32 ? (global::Buf.Validate.SInt32Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sint32; + } + } + + /// Field number for the "sint64" field. + public const int Sint64FieldNumber = 8; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.SInt64Rules Sint64 { + get { return typeCase_ == TypeOneofCase.Sint64 ? (global::Buf.Validate.SInt64Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sint64; + } + } + + /// Field number for the "fixed32" field. + public const int Fixed32FieldNumber = 9; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.Fixed32Rules Fixed32 { + get { return typeCase_ == TypeOneofCase.Fixed32 ? (global::Buf.Validate.Fixed32Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Fixed32; + } + } + + /// Field number for the "fixed64" field. + public const int Fixed64FieldNumber = 10; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.Fixed64Rules Fixed64 { + get { return typeCase_ == TypeOneofCase.Fixed64 ? (global::Buf.Validate.Fixed64Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Fixed64; + } + } + + /// Field number for the "sfixed32" field. + public const int Sfixed32FieldNumber = 11; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.SFixed32Rules Sfixed32 { + get { return typeCase_ == TypeOneofCase.Sfixed32 ? (global::Buf.Validate.SFixed32Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sfixed32; + } + } + + /// Field number for the "sfixed64" field. + public const int Sfixed64FieldNumber = 12; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.SFixed64Rules Sfixed64 { + get { return typeCase_ == TypeOneofCase.Sfixed64 ? (global::Buf.Validate.SFixed64Rules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sfixed64; + } + } + + /// Field number for the "bool" field. + public const int BoolFieldNumber = 13; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.BoolRules Bool { + get { return typeCase_ == TypeOneofCase.Bool ? (global::Buf.Validate.BoolRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Bool; + } + } + + /// Field number for the "string" field. + public const int StringFieldNumber = 14; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.StringRules String { + get { return typeCase_ == TypeOneofCase.String ? (global::Buf.Validate.StringRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.String; + } + } + + /// Field number for the "bytes" field. + public const int BytesFieldNumber = 15; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.BytesRules Bytes { + get { return typeCase_ == TypeOneofCase.Bytes ? (global::Buf.Validate.BytesRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Bytes; + } + } + + /// Field number for the "enum" field. + public const int EnumFieldNumber = 16; + /// + /// Complex Field Types + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.EnumRules Enum { + get { return typeCase_ == TypeOneofCase.Enum ? (global::Buf.Validate.EnumRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Enum; + } + } + + /// Field number for the "repeated" field. + public const int RepeatedFieldNumber = 18; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.RepeatedRules Repeated { + get { return typeCase_ == TypeOneofCase.Repeated ? (global::Buf.Validate.RepeatedRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Repeated; + } + } + + /// Field number for the "map" field. + public const int MapFieldNumber = 19; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.MapRules Map { + get { return typeCase_ == TypeOneofCase.Map ? (global::Buf.Validate.MapRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Map; + } + } /// Field number for the "any" field. public const int AnyFieldNumber = 20; @@ -2161,37 +2799,103 @@ public bool IgnoreEmpty { /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.AnyRules Any { - get { return typeCase_ == TypeOneofCase.Any ? (global::Buf.Validate.AnyRules) type_ : null; } + public global::Buf.Validate.AnyRules Any { + get { return typeCase_ == TypeOneofCase.Any ? (global::Buf.Validate.AnyRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Any; + } + } + + /// Field number for the "duration" field. + public const int DurationFieldNumber = 21; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.DurationRules Duration { + get { return typeCase_ == TypeOneofCase.Duration ? (global::Buf.Validate.DurationRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Duration; + } + } + + /// Field number for the "timestamp" field. + public const int TimestampFieldNumber = 22; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Buf.Validate.TimestampRules Timestamp { + get { return typeCase_ == TypeOneofCase.Timestamp ? (global::Buf.Validate.TimestampRules) type_ : null; } + set { + type_ = value; + typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Timestamp; + } + } + + /// Field number for the "skipped" field. + public const int SkippedFieldNumber = 24; + private readonly static bool SkippedDefaultValue = false; + + private bool skipped_; + /// + /// DEPRECATED: use ignore=IGNORE_ALWAYS instead. TODO: remove this field pre-v1. + /// + [global::System.ObsoleteAttribute] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Skipped { + get { if ((_hasBits0 & 1) != 0) { return skipped_; } else { return SkippedDefaultValue; } } set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Any; + _hasBits0 |= 1; + skipped_ = value; } } - - /// Field number for the "duration" field. - public const int DurationFieldNumber = 21; + /// Gets whether the "skipped" field is set + [global::System.ObsoleteAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.DurationRules Duration { - get { return typeCase_ == TypeOneofCase.Duration ? (global::Buf.Validate.DurationRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Duration; - } + public bool HasSkipped { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "skipped" field + [global::System.ObsoleteAttribute] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearSkipped() { + _hasBits0 &= ~1; } - /// Field number for the "timestamp" field. - public const int TimestampFieldNumber = 22; + /// Field number for the "ignore_empty" field. + public const int IgnoreEmptyFieldNumber = 26; + private readonly static bool IgnoreEmptyDefaultValue = false; + + private bool ignoreEmpty_; + /// + /// DEPRECATED: use ignore=IGNORE_IF_UNPOPULATED instead. TODO: remove this field pre-v1. + /// + [global::System.ObsoleteAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Buf.Validate.TimestampRules Timestamp { - get { return typeCase_ == TypeOneofCase.Timestamp ? (global::Buf.Validate.TimestampRules) type_ : null; } + public bool IgnoreEmpty { + get { if ((_hasBits0 & 4) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Timestamp; + _hasBits0 |= 4; + ignoreEmpty_ = value; } } + /// Gets whether the "ignore_empty" field is set + [global::System.ObsoleteAttribute] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasIgnoreEmpty { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "ignore_empty" field + [global::System.ObsoleteAttribute] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearIgnoreEmpty() { + _hasBits0 &= ~4; + } private object type_; /// Enum of possible cases for the "type" oneof. @@ -2249,9 +2953,8 @@ public bool Equals(FieldConstraints other) { return true; } if(!cel_.Equals(other.cel_)) return false; - if (Skipped != other.Skipped) return false; if (Required != other.Required) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; + if (Ignore != other.Ignore) return false; if (!object.Equals(Float, other.Float)) return false; if (!object.Equals(Double, other.Double)) return false; if (!object.Equals(Int32, other.Int32)) return false; @@ -2273,6 +2976,8 @@ public bool Equals(FieldConstraints other) { if (!object.Equals(Any, other.Any)) return false; if (!object.Equals(Duration, other.Duration)) return false; if (!object.Equals(Timestamp, other.Timestamp)) return false; + if (Skipped != other.Skipped) return false; + if (IgnoreEmpty != other.IgnoreEmpty) return false; if (TypeCase != other.TypeCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2282,9 +2987,8 @@ public bool Equals(FieldConstraints other) { public override int GetHashCode() { int hash = 1; hash ^= cel_.GetHashCode(); - if (Skipped != false) hash ^= Skipped.GetHashCode(); - if (Required != false) hash ^= Required.GetHashCode(); - if (IgnoreEmpty != false) hash ^= IgnoreEmpty.GetHashCode(); + if (HasRequired) hash ^= Required.GetHashCode(); + if (HasIgnore) hash ^= Ignore.GetHashCode(); if (typeCase_ == TypeOneofCase.Float) hash ^= Float.GetHashCode(); if (typeCase_ == TypeOneofCase.Double) hash ^= Double.GetHashCode(); if (typeCase_ == TypeOneofCase.Int32) hash ^= Int32.GetHashCode(); @@ -2306,6 +3010,8 @@ public override int GetHashCode() { if (typeCase_ == TypeOneofCase.Any) hash ^= Any.GetHashCode(); if (typeCase_ == TypeOneofCase.Duration) hash ^= Duration.GetHashCode(); if (typeCase_ == TypeOneofCase.Timestamp) hash ^= Timestamp.GetHashCode(); + if (HasSkipped) hash ^= Skipped.GetHashCode(); + if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); hash ^= (int) typeCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -2410,18 +3116,22 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteMessage(Timestamp); } cel_.WriteTo(output, _repeated_cel_codec); - if (Skipped != false) { + if (HasSkipped) { output.WriteRawTag(192, 1); output.WriteBool(Skipped); } - if (Required != false) { + if (HasRequired) { output.WriteRawTag(200, 1); output.WriteBool(Required); } - if (IgnoreEmpty != false) { + if (HasIgnoreEmpty) { output.WriteRawTag(208, 1); output.WriteBool(IgnoreEmpty); } + if (HasIgnore) { + output.WriteRawTag(216, 1); + output.WriteEnum((int) Ignore); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2517,18 +3227,22 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteMessage(Timestamp); } cel_.WriteTo(ref output, _repeated_cel_codec); - if (Skipped != false) { + if (HasSkipped) { output.WriteRawTag(192, 1); output.WriteBool(Skipped); } - if (Required != false) { + if (HasRequired) { output.WriteRawTag(200, 1); output.WriteBool(Required); } - if (IgnoreEmpty != false) { + if (HasIgnoreEmpty) { output.WriteRawTag(208, 1); output.WriteBool(IgnoreEmpty); } + if (HasIgnore) { + output.WriteRawTag(216, 1); + output.WriteEnum((int) Ignore); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2540,14 +3254,11 @@ public void WriteTo(pb::CodedOutputStream output) { public int CalculateSize() { int size = 0; size += cel_.CalculateSize(_repeated_cel_codec); - if (Skipped != false) { - size += 2 + 1; - } - if (Required != false) { + if (HasRequired) { size += 2 + 1; } - if (IgnoreEmpty != false) { - size += 2 + 1; + if (HasIgnore) { + size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) Ignore); } if (typeCase_ == TypeOneofCase.Float) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Float); @@ -2612,6 +3323,12 @@ public int CalculateSize() { if (typeCase_ == TypeOneofCase.Timestamp) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(Timestamp); } + if (HasSkipped) { + size += 2 + 1; + } + if (HasIgnoreEmpty) { + size += 2 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2625,13 +3342,16 @@ public void MergeFrom(FieldConstraints other) { return; } cel_.Add(other.cel_); - if (other.Skipped != false) { - Skipped = other.Skipped; - } - if (other.Required != false) { + if (other.HasRequired) { Required = other.Required; } - if (other.IgnoreEmpty != false) { + if (other.HasIgnore) { + Ignore = other.Ignore; + } + if (other.HasSkipped) { + Skipped = other.Skipped; + } + if (other.HasIgnoreEmpty) { IgnoreEmpty = other.IgnoreEmpty; } switch (other.TypeCase) { @@ -2987,6 +3707,10 @@ public void MergeFrom(pb::CodedInputStream input) { IgnoreEmpty = input.ReadBool(); break; } + case 216: { + Ignore = (global::Buf.Validate.Ignore) input.ReadEnum(); + break; + } } } #endif @@ -3176,41 +3900,252 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(subBuilder); Any = subBuilder; break; - } - case 170: { - global::Buf.Validate.DurationRules subBuilder = new global::Buf.Validate.DurationRules(); - if (typeCase_ == TypeOneofCase.Duration) { - subBuilder.MergeFrom(Duration); - } - input.ReadMessage(subBuilder); - Duration = subBuilder; + } + case 170: { + global::Buf.Validate.DurationRules subBuilder = new global::Buf.Validate.DurationRules(); + if (typeCase_ == TypeOneofCase.Duration) { + subBuilder.MergeFrom(Duration); + } + input.ReadMessage(subBuilder); + Duration = subBuilder; + break; + } + case 178: { + global::Buf.Validate.TimestampRules subBuilder = new global::Buf.Validate.TimestampRules(); + if (typeCase_ == TypeOneofCase.Timestamp) { + subBuilder.MergeFrom(Timestamp); + } + input.ReadMessage(subBuilder); + Timestamp = subBuilder; + break; + } + case 186: { + cel_.AddEntriesFrom(ref input, _repeated_cel_codec); + break; + } + case 192: { + Skipped = input.ReadBool(); + break; + } + case 200: { + Required = input.ReadBool(); + break; + } + case 208: { + IgnoreEmpty = input.ReadBool(); + break; + } + case 216: { + Ignore = (global::Buf.Validate.Ignore) input.ReadEnum(); + break; + } + } + } + } + #endif + + } + + /// + /// PredefinedConstraints are custom constraints that can be re-used with + /// multiple fields. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class PredefinedConstraints : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PredefinedConstraints()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PredefinedConstraints() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PredefinedConstraints(PredefinedConstraints other) : this() { + cel_ = other.cel_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PredefinedConstraints Clone() { + return new PredefinedConstraints(this); + } + + /// Field number for the "cel" field. + public const int CelFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_cel_codec + = pb::FieldCodec.ForMessage(10, global::Buf.Validate.Constraint.Parser); + private readonly pbc::RepeatedField cel_ = new pbc::RepeatedField(); + /// + /// `cel` is a repeated field used to represent a textual expression + /// in the Common Expression Language (CEL) syntax. For more information on + /// CEL, [see our documentation](https://github.com/bufbuild/protovalidate/blob/main/docs/cel.md). + /// + /// ```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", + /// }]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Cel { + get { return cel_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PredefinedConstraints); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PredefinedConstraints other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!cel_.Equals(other.cel_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= cel_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + cel_.WriteTo(output, _repeated_cel_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + cel_.WriteTo(ref output, _repeated_cel_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += cel_.CalculateSize(_repeated_cel_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PredefinedConstraints other) { + if (other == null) { + return; + } + cel_.Add(other.cel_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + cel_.AddEntriesFrom(input, _repeated_cel_codec); break; } - case 178: { - global::Buf.Validate.TimestampRules subBuilder = new global::Buf.Validate.TimestampRules(); - if (typeCase_ == TypeOneofCase.Timestamp) { - subBuilder.MergeFrom(Timestamp); - } - input.ReadMessage(subBuilder); - Timestamp = subBuilder; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; - } - case 186: { + case 10: { cel_.AddEntriesFrom(ref input, _repeated_cel_codec); break; } - case 192: { - Skipped = input.ReadBool(); - break; - } - case 200: { - Required = input.ReadBool(); - break; - } - case 208: { - IgnoreEmpty = input.ReadBool(); - break; - } } } } @@ -3223,13 +4158,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// rules may also be applied to the `google.protobuf.FloatValue` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class FloatRules : pb::IMessage + public sealed partial class FloatRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FloatRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -3238,7 +4175,7 @@ public sealed partial class FloatRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[3]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[5]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3263,6 +4200,7 @@ public FloatRules(FloatRules other) : this() { in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); finite_ = other.finite_; + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -3282,6 +4220,7 @@ public FloatRules(FloatRules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3499,7 +4438,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForFloat(50); + = pb::FieldCodec.ForFloat(53); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -3522,7 +4461,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForFloat(58); + = pb::FieldCodec.ForFloat(61); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `in` requires the field value to not be equal to any of the specified @@ -3544,6 +4483,8 @@ public void ClearGte() { /// Field number for the "finite" field. public const int FiniteFieldNumber = 8; + private readonly static bool FiniteDefaultValue = false; + private bool finite_; /// /// `finite` requires the field value to be finite. If the field value is @@ -3552,11 +4493,49 @@ public void ClearGte() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public bool Finite { - get { return finite_; } + get { if ((_hasBits0 & 2) != 0) { return finite_; } else { return FiniteDefaultValue; } } set { + _hasBits0 |= 2; finite_ = value; } } + /// Gets whether the "finite" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasFinite { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "finite" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearFinite() { + _hasBits0 &= ~2; + } + + /// Field number for the "example" field. + public const int ExampleFieldNumber = 9; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForFloat(77); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 = "Infinity" + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } private object lessThan_; /// Enum of possible cases for the "less_than" oneof. @@ -3623,8 +4602,12 @@ public bool Equals(FloatRules other) { if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; if (Finite != other.Finite) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -3639,9 +4622,13 @@ public override int GetHashCode() { if (HasGte) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Gte); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); - if (Finite != false) hash ^= Finite.GetHashCode(); + if (HasFinite) hash ^= Finite.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3682,10 +4669,14 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); - if (Finite != false) { + if (HasFinite) { output.WriteRawTag(64); output.WriteBool(Finite); } + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3718,10 +4709,14 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (Finite != false) { + if (HasFinite) { output.WriteRawTag(64); output.WriteBool(Finite); } + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3749,9 +4744,13 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); - if (Finite != false) { + if (HasFinite) { size += 1 + 1; } + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3769,9 +4768,10 @@ public void MergeFrom(FloatRules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); - if (other.Finite != false) { + if (other.HasFinite) { Finite = other.Finite; } + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -3790,6 +4790,7 @@ public void MergeFrom(FloatRules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3807,7 +4808,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 13: { Const = input.ReadFloat(); @@ -3843,6 +4846,11 @@ public void MergeFrom(pb::CodedInputStream input) { Finite = input.ReadBool(); break; } + case 74: + case 77: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -3860,7 +4868,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 13: { Const = input.ReadFloat(); @@ -3896,11 +4906,38 @@ public void MergeFrom(pb::CodedInputStream input) { Finite = input.ReadBool(); break; } + case 74: + case 77: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// @@ -3908,13 +4945,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// rules may also be applied to the `google.protobuf.DoubleValue` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class DoubleRules : pb::IMessage + public sealed partial class DoubleRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DoubleRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -3923,7 +4962,7 @@ public sealed partial class DoubleRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[4]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[6]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3948,6 +4987,7 @@ public DoubleRules(DoubleRules other) : this() { in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); finite_ = other.finite_; + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -3967,6 +5007,7 @@ public DoubleRules(DoubleRules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4184,7 +5225,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForDouble(50); + = pb::FieldCodec.ForDouble(49); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -4207,7 +5248,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForDouble(58); + = pb::FieldCodec.ForDouble(57); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -4229,6 +5270,8 @@ public void ClearGte() { /// Field number for the "finite" field. public const int FiniteFieldNumber = 8; + private readonly static bool FiniteDefaultValue = false; + private bool finite_; /// /// `finite` requires the field value to be finite. If the field value is @@ -4237,11 +5280,49 @@ public void ClearGte() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public bool Finite { - get { return finite_; } + get { if ((_hasBits0 & 2) != 0) { return finite_; } else { return FiniteDefaultValue; } } set { + _hasBits0 |= 2; finite_ = value; } } + /// Gets whether the "finite" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasFinite { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "finite" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearFinite() { + _hasBits0 &= ~2; + } + + /// Field number for the "example" field. + public const int ExampleFieldNumber = 9; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForDouble(73); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 = "Infinity" + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } private object lessThan_; /// Enum of possible cases for the "less_than" oneof. @@ -4308,8 +5389,12 @@ public bool Equals(DoubleRules other) { if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; if (Finite != other.Finite) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -4324,9 +5409,13 @@ public override int GetHashCode() { if (HasGte) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Gte); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); - if (Finite != false) hash ^= Finite.GetHashCode(); + if (HasFinite) hash ^= Finite.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4367,10 +5456,14 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); - if (Finite != false) { + if (HasFinite) { output.WriteRawTag(64); output.WriteBool(Finite); } + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4403,10 +5496,14 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (Finite != false) { + if (HasFinite) { output.WriteRawTag(64); output.WriteBool(Finite); } + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -4434,9 +5531,13 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); - if (Finite != false) { + if (HasFinite) { size += 1 + 1; } + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4454,9 +5555,10 @@ public void MergeFrom(DoubleRules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); - if (other.Finite != false) { + if (other.HasFinite) { Finite = other.Finite; } + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -4475,6 +5577,7 @@ public void MergeFrom(DoubleRules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4492,7 +5595,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 9: { Const = input.ReadDouble(); @@ -4528,6 +5633,11 @@ public void MergeFrom(pb::CodedInputStream input) { Finite = input.ReadBool(); break; } + case 74: + case 73: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -4545,7 +5655,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 9: { Const = input.ReadDouble(); @@ -4581,11 +5693,38 @@ public void MergeFrom(pb::CodedInputStream input) { Finite = input.ReadBool(); break; } + case 74: + case 73: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// @@ -4593,13 +5732,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// rules may also be applied to the `google.protobuf.Int32Value` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Int32Rules : pb::IMessage + public sealed partial class Int32Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Int32Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -4608,7 +5749,7 @@ public sealed partial class Int32Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[5]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[7]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4632,6 +5773,7 @@ public Int32Rules(Int32Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -4651,6 +5793,7 @@ public Int32Rules(Int32Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4868,7 +6011,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForInt32(50); + = pb::FieldCodec.ForInt32(48); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -4891,7 +6034,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForInt32(58); + = pb::FieldCodec.ForInt32(56); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -4911,6 +6054,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForInt32(64); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -4975,8 +6143,12 @@ public bool Equals(Int32Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -4991,8 +6163,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5033,6 +6209,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5065,6 +6245,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5092,6 +6276,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5109,6 +6297,7 @@ public void MergeFrom(Int32Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -5127,6 +6316,7 @@ public void MergeFrom(Int32Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5144,7 +6334,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { Const = input.ReadInt32(); @@ -5176,6 +6368,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -5193,7 +6390,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { Const = input.ReadInt32(); @@ -5225,11 +6424,38 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// @@ -5237,13 +6463,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// rules may also be applied to the `google.protobuf.Int64Value` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Int64Rules : pb::IMessage + public sealed partial class Int64Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Int64Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -5252,7 +6480,7 @@ public sealed partial class Int64Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[6]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[8]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5276,6 +6504,7 @@ public Int64Rules(Int64Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -5295,6 +6524,7 @@ public Int64Rules(Int64Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5512,7 +6742,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForInt64(50); + = pb::FieldCodec.ForInt64(48); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -5535,7 +6765,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForInt64(58); + = pb::FieldCodec.ForInt64(56); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -5555,6 +6785,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 9; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForInt64(72); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -5619,8 +6874,12 @@ public bool Equals(Int64Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -5635,8 +6894,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5677,6 +6940,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5709,6 +6976,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5736,6 +7007,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5753,6 +7028,7 @@ public void MergeFrom(Int64Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -5771,6 +7047,7 @@ public void MergeFrom(Int64Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5788,7 +7065,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { Const = input.ReadInt64(); @@ -5820,6 +7099,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 74: + case 72: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -5837,7 +7121,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { Const = input.ReadInt64(); @@ -5869,11 +7155,38 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 74: + case 72: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// @@ -5881,13 +7194,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// rules may also be applied to the `google.protobuf.UInt32Value` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class UInt32Rules : pb::IMessage + public sealed partial class UInt32Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UInt32Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -5896,7 +7211,7 @@ public sealed partial class UInt32Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[7]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[9]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5920,6 +7235,7 @@ public UInt32Rules(UInt32Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -5939,6 +7255,7 @@ public UInt32Rules(UInt32Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6156,7 +7473,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForUInt32(50); + = pb::FieldCodec.ForUInt32(48); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -6179,7 +7496,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForUInt32(58); + = pb::FieldCodec.ForUInt32(56); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -6199,6 +7516,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForUInt32(64); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -6263,8 +7605,12 @@ public bool Equals(UInt32Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -6279,8 +7625,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -6321,6 +7671,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6353,6 +7707,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6380,6 +7738,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -6397,6 +7759,7 @@ public void MergeFrom(UInt32Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -6415,6 +7778,7 @@ public void MergeFrom(UInt32Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -6432,7 +7796,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { Const = input.ReadUInt32(); @@ -6464,6 +7830,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -6481,7 +7852,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { Const = input.ReadUInt32(); @@ -6513,11 +7886,38 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// @@ -6525,13 +7925,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// rules may also be applied to the `google.protobuf.UInt64Value` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class UInt64Rules : pb::IMessage + public sealed partial class UInt64Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UInt64Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -6540,7 +7942,7 @@ public sealed partial class UInt64Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[8]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[10]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6564,6 +7966,7 @@ public UInt64Rules(UInt64Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -6583,6 +7986,7 @@ public UInt64Rules(UInt64Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6800,7 +8204,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForUInt64(50); + = pb::FieldCodec.ForUInt64(48); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -6823,7 +8227,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForUInt64(58); + = pb::FieldCodec.ForUInt64(56); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -6843,6 +8247,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForUInt64(64); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -6907,8 +8336,12 @@ public bool Equals(UInt64Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -6923,8 +8356,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -6965,6 +8402,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6997,6 +8438,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7024,6 +8469,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7041,6 +8490,7 @@ public void MergeFrom(UInt64Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -7059,6 +8509,7 @@ public void MergeFrom(UInt64Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7076,7 +8527,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { Const = input.ReadUInt64(); @@ -7108,6 +8561,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -7125,7 +8583,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { Const = input.ReadUInt64(); @@ -7157,24 +8617,53 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// SInt32Rules describes the constraints applied to `sint32` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class SInt32Rules : pb::IMessage + public sealed partial class SInt32Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SInt32Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -7183,7 +8672,7 @@ public sealed partial class SInt32Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[9]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[11]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -7207,6 +8696,7 @@ public SInt32Rules(SInt32Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -7226,6 +8716,7 @@ public SInt32Rules(SInt32Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -7443,7 +8934,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForSInt32(50); + = pb::FieldCodec.ForSInt32(48); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -7466,7 +8957,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForSInt32(58); + = pb::FieldCodec.ForSInt32(56); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -7486,6 +8977,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForSInt32(64); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -7550,8 +9066,12 @@ public bool Equals(SInt32Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -7566,8 +9086,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7608,6 +9132,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7640,6 +9168,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7667,6 +9199,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7684,6 +9220,7 @@ public void MergeFrom(SInt32Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -7702,6 +9239,7 @@ public void MergeFrom(SInt32Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7719,7 +9257,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { Const = input.ReadSInt32(); @@ -7751,6 +9291,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -7768,7 +9313,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { Const = input.ReadSInt32(); @@ -7800,24 +9347,53 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// SInt64Rules describes the constraints applied to `sint64` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class SInt64Rules : pb::IMessage + public sealed partial class SInt64Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SInt64Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -7826,7 +9402,7 @@ public sealed partial class SInt64Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[10]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[12]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -7850,6 +9426,7 @@ public SInt64Rules(SInt64Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -7869,6 +9446,7 @@ public SInt64Rules(SInt64Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -8086,7 +9664,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForSInt64(50); + = pb::FieldCodec.ForSInt64(48); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -8109,7 +9687,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForSInt64(58); + = pb::FieldCodec.ForSInt64(56); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -8129,6 +9707,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForSInt64(64); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -8193,8 +9796,12 @@ public bool Equals(SInt64Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -8209,8 +9816,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -8251,6 +9862,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -8283,6 +9898,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -8310,6 +9929,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -8327,6 +9950,7 @@ public void MergeFrom(SInt64Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -8345,6 +9969,7 @@ public void MergeFrom(SInt64Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -8362,7 +9987,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { Const = input.ReadSInt64(); @@ -8394,6 +10021,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -8411,7 +10043,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { Const = input.ReadSInt64(); @@ -8443,24 +10077,53 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 64: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// Fixed32Rules describes the constraints applied to `fixed32` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Fixed32Rules : pb::IMessage + public sealed partial class Fixed32Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Fixed32Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -8469,7 +10132,7 @@ public sealed partial class Fixed32Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[11]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[13]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -8493,6 +10156,7 @@ public Fixed32Rules(Fixed32Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -8512,6 +10176,7 @@ public Fixed32Rules(Fixed32Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -8729,7 +10394,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForFixed32(50); + = pb::FieldCodec.ForFixed32(53); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -8752,7 +10417,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForFixed32(58); + = pb::FieldCodec.ForFixed32(61); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -8772,6 +10437,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForFixed32(69); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -8836,8 +10526,12 @@ public bool Equals(Fixed32Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -8852,8 +10546,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -8894,6 +10592,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -8926,6 +10628,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -8953,6 +10659,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -8970,6 +10680,7 @@ public void MergeFrom(Fixed32Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -8988,6 +10699,7 @@ public void MergeFrom(Fixed32Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -9005,7 +10717,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 13: { Const = input.ReadFixed32(); @@ -9037,6 +10751,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 69: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -9054,7 +10773,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 13: { Const = input.ReadFixed32(); @@ -9086,24 +10807,53 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 69: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// Fixed64Rules describes the constraints applied to `fixed64` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Fixed64Rules : pb::IMessage + public sealed partial class Fixed64Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Fixed64Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -9112,7 +10862,7 @@ public sealed partial class Fixed64Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[12]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[14]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -9136,6 +10886,7 @@ public Fixed64Rules(Fixed64Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -9155,6 +10906,7 @@ public Fixed64Rules(Fixed64Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -9372,7 +11124,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForFixed64(50); + = pb::FieldCodec.ForFixed64(49); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -9395,7 +11147,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForFixed64(58); + = pb::FieldCodec.ForFixed64(57); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -9415,6 +11167,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForFixed64(65); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -9479,8 +11256,12 @@ public bool Equals(Fixed64Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -9495,8 +11276,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -9537,6 +11322,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -9569,6 +11358,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -9596,6 +11389,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -9613,6 +11410,7 @@ public void MergeFrom(Fixed64Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -9631,6 +11429,7 @@ public void MergeFrom(Fixed64Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -9648,7 +11447,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 9: { Const = input.ReadFixed64(); @@ -9680,6 +11481,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 65: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -9697,7 +11503,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 9: { Const = input.ReadFixed64(); @@ -9729,24 +11537,53 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 65: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// SFixed32Rules describes the constraints applied to `fixed32` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class SFixed32Rules : pb::IMessage + public sealed partial class SFixed32Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SFixed32Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -9755,7 +11592,7 @@ public sealed partial class SFixed32Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[13]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[15]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -9779,6 +11616,7 @@ public SFixed32Rules(SFixed32Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -9798,6 +11636,7 @@ public SFixed32Rules(SFixed32Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -10015,7 +11854,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForSFixed32(50); + = pb::FieldCodec.ForSFixed32(53); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -10038,7 +11877,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForSFixed32(58); + = pb::FieldCodec.ForSFixed32(61); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -10058,6 +11897,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForSFixed32(69); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -10122,8 +11986,12 @@ public bool Equals(SFixed32Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -10138,8 +12006,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -10180,6 +12052,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -10212,6 +12088,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -10239,6 +12119,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -10256,6 +12140,7 @@ public void MergeFrom(SFixed32Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -10274,6 +12159,7 @@ public void MergeFrom(SFixed32Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -10291,7 +12177,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 13: { Const = input.ReadSFixed32(); @@ -10323,6 +12211,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 69: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -10340,7 +12233,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 13: { Const = input.ReadSFixed32(); @@ -10372,24 +12267,53 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 69: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// SFixed64Rules describes the constraints applied to `fixed64` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class SFixed64Rules : pb::IMessage + public sealed partial class SFixed64Rules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SFixed64Rules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -10398,7 +12322,7 @@ public sealed partial class SFixed64Rules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[14]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[16]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -10422,6 +12346,7 @@ public SFixed64Rules(SFixed64Rules other) : this() { const_ = other.const_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -10441,6 +12366,7 @@ public SFixed64Rules(SFixed64Rules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -10658,7 +12584,7 @@ public void ClearGte() { /// Field number for the "in" field. public const int InFieldNumber = 6; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForSFixed64(50); + = pb::FieldCodec.ForSFixed64(49); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the specified values. @@ -10681,7 +12607,7 @@ public void ClearGte() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 7; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForSFixed64(58); + = pb::FieldCodec.ForSFixed64(57); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to not be equal to any of the specified @@ -10701,6 +12627,31 @@ public void ClearGte() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForSFixed64(65); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object lessThan_; /// Enum of possible cases for the "less_than" oneof. public enum LessThanOneofCase { @@ -10765,8 +12716,12 @@ public bool Equals(SFixed64Rules other) { if (Gte != other.Gte) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -10781,8 +12736,12 @@ public override int GetHashCode() { if (HasGte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -10823,6 +12782,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -10855,6 +12818,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -10882,6 +12849,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -10899,6 +12870,7 @@ public void MergeFrom(SFixed64Rules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt; @@ -10917,6 +12889,7 @@ public void MergeFrom(SFixed64Rules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -10934,7 +12907,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 9: { Const = input.ReadSFixed64(); @@ -10966,6 +12941,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 66: + case 65: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -10983,7 +12963,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 9: { Const = input.ReadSFixed64(); @@ -11015,11 +12997,38 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 66: + case 65: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// @@ -11027,13 +13036,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// may also be applied to the `google.protobuf.BoolValue` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class BoolRules : pb::IMessage + public sealed partial class BoolRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new BoolRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -11042,7 +13053,7 @@ public sealed partial class BoolRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[15]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[17]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -11064,7 +13075,9 @@ public BoolRules() { public BoolRules(BoolRules other) : this() { _hasBits0 = other._hasBits0; const_ = other.const_; + example_ = other.example_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -11111,6 +13124,31 @@ public void ClearConst() { _hasBits0 &= ~1; } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForBool(16); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -11127,6 +13165,10 @@ public bool Equals(BoolRules other) { return true; } if (Const != other.Const) return false; + if(!example_.Equals(other.example_)) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -11135,6 +13177,10 @@ public bool Equals(BoolRules other) { public override int GetHashCode() { int hash = 1; if (HasConst) hash ^= Const.GetHashCode(); + hash ^= example_.GetHashCode(); + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -11157,6 +13203,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteBool(Const); } + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -11171,6 +13221,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteBool(Const); } + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -11184,6 +13238,10 @@ public int CalculateSize() { if (HasConst) { size += 1 + 1; } + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -11199,6 +13257,8 @@ public void MergeFrom(BoolRules other) { if (other.HasConst) { Const = other.Const; } + example_.Add(other.example_); + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -11216,12 +13276,19 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { Const = input.ReadBool(); break; } + case 18: + case 16: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -11239,17 +13306,46 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { Const = input.ReadBool(); break; } + case 18: + case 16: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// @@ -11257,13 +13353,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// rules may also be applied to the `google.protobuf.StringValue` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class StringRules : pb::IMessage + public sealed partial class StringRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StringRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -11272,7 +13370,7 @@ public sealed partial class StringRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[16]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[18]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -11308,6 +13406,7 @@ public StringRules(StringRules other) : this() { in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); strict_ = other.strict_; + example_ = other.example_.Clone(); switch (other.WellKnownCase) { case WellKnownOneofCase.Email: Email = other.Email; @@ -11336,6 +13435,9 @@ public StringRules(StringRules other) : this() { case WellKnownOneofCase.Uuid: Uuid = other.Uuid; break; + case WellKnownOneofCase.Tuuid: + Tuuid = other.Tuuid; + break; case WellKnownOneofCase.IpWithPrefixlen: IpWithPrefixlen = other.IpWithPrefixlen; break; @@ -11354,12 +13456,16 @@ public StringRules(StringRules other) : this() { case WellKnownOneofCase.Ipv6Prefix: Ipv6Prefix = other.Ipv6Prefix; break; + case WellKnownOneofCase.HostAndPort: + HostAndPort = other.HostAndPort; + break; case WellKnownOneofCase.WellKnownRegex: WellKnownRegex = other.WellKnownRegex; break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -12226,6 +14332,45 @@ public void ClearUuid() { } } + /// Field number for the "tuuid" field. + public const int TuuidFieldNumber = 33; + /// + /// `tuuid` (trimmed UUID) specifies that the field value must be a valid UUID as + /// defined by [RFC 4122](https://tools.ietf.org/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]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Tuuid { + get { return HasTuuid ? (bool) wellKnown_ : false; } + set { + wellKnown_ = value; + wellKnownCase_ = WellKnownOneofCase.Tuuid; + } + } + /// Gets whether the "tuuid" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasTuuid { + get { return wellKnownCase_ == WellKnownOneofCase.Tuuid; } + } + /// Clears the value of the oneof if it's currently set to "tuuid" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearTuuid() { + if (HasTuuid) { + ClearWellKnown(); + } + } + /// Field number for the "ip_with_prefixlen" field. public const int IpWithPrefixlenFieldNumber = 26; /// @@ -12274,7 +14419,7 @@ public void ClearIpWithPrefixlen() { /// /// ```proto /// message MyString { - /// // value must be a valid IPv4 address with prefix lentgh + /// // value must be a valid IPv4 address with prefix length /// string value = 1 [(buf.validate.field).string.ipv4_with_prefixlen = true]; /// } /// ``` @@ -12459,6 +14604,38 @@ public void ClearIpv6Prefix() { } } + /// Field number for the "host_and_port" field. + public const int HostAndPortFieldNumber = 32; + /// + /// `host_and_port` specifies the field value must be a valid host and port + /// pair. The host must be a valid hostname or IP address while the port + /// must be in the range of 0-65535, inclusive. IPv6 addresses must be delimited + /// with square brackets (e.g., `[::1]:1234`). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HostAndPort { + get { return HasHostAndPort ? (bool) wellKnown_ : false; } + set { + wellKnown_ = value; + wellKnownCase_ = WellKnownOneofCase.HostAndPort; + } + } + /// Gets whether the "host_and_port" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasHostAndPort { + get { return wellKnownCase_ == WellKnownOneofCase.HostAndPort; } + } + /// Clears the value of the oneof if it's currently set to "host_and_port" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearHostAndPort() { + if (HasHostAndPort) { + ClearWellKnown(); + } + } + /// Field number for the "well_known_regex" field. public const int WellKnownRegexFieldNumber = 24; /// @@ -12469,7 +14646,7 @@ public void ClearIpv6Prefix() { /// ```proto /// message MyString { /// // value must be a valid HTTP header value - /// string value = 1 [(buf.validate.field).string.well_known_regex = 2]; + /// string value = 1 [(buf.validate.field).string.well_known_regex = KNOWN_REGEX_HTTP_HEADER_VALUE]; /// } /// ``` /// @@ -12548,6 +14725,31 @@ public void ClearStrict() { _hasBits0 &= ~64; } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 34; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForString(274); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 = 1, + /// (buf.validate.field).string.example = 2 + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object wellKnown_; /// Enum of possible cases for the "well_known" oneof. public enum WellKnownOneofCase { @@ -12561,12 +14763,14 @@ public enum WellKnownOneofCase { UriRef = 18, Address = 21, Uuid = 22, + Tuuid = 33, IpWithPrefixlen = 26, Ipv4WithPrefixlen = 27, Ipv6WithPrefixlen = 28, IpPrefix = 29, Ipv4Prefix = 30, Ipv6Prefix = 31, + HostAndPort = 32, WellKnownRegex = 24, } private WellKnownOneofCase wellKnownCase_ = WellKnownOneofCase.None; @@ -12621,15 +14825,21 @@ public bool Equals(StringRules other) { if (UriRef != other.UriRef) return false; if (Address != other.Address) return false; if (Uuid != other.Uuid) return false; + if (Tuuid != other.Tuuid) return false; if (IpWithPrefixlen != other.IpWithPrefixlen) return false; if (Ipv4WithPrefixlen != other.Ipv4WithPrefixlen) return false; if (Ipv6WithPrefixlen != other.Ipv6WithPrefixlen) return false; if (IpPrefix != other.IpPrefix) return false; if (Ipv4Prefix != other.Ipv4Prefix) return false; if (Ipv6Prefix != other.Ipv6Prefix) return false; + if (HostAndPort != other.HostAndPort) return false; if (WellKnownRegex != other.WellKnownRegex) return false; if (Strict != other.Strict) return false; + if(!example_.Equals(other.example_)) return false; if (WellKnownCase != other.WellKnownCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -12660,15 +14870,21 @@ public override int GetHashCode() { if (HasUriRef) hash ^= UriRef.GetHashCode(); if (HasAddress) hash ^= Address.GetHashCode(); if (HasUuid) hash ^= Uuid.GetHashCode(); + if (HasTuuid) hash ^= Tuuid.GetHashCode(); if (HasIpWithPrefixlen) hash ^= IpWithPrefixlen.GetHashCode(); if (HasIpv4WithPrefixlen) hash ^= Ipv4WithPrefixlen.GetHashCode(); if (HasIpv6WithPrefixlen) hash ^= Ipv6WithPrefixlen.GetHashCode(); if (HasIpPrefix) hash ^= IpPrefix.GetHashCode(); if (HasIpv4Prefix) hash ^= Ipv4Prefix.GetHashCode(); if (HasIpv6Prefix) hash ^= Ipv6Prefix.GetHashCode(); + if (HasHostAndPort) hash ^= HostAndPort.GetHashCode(); if (HasWellKnownRegex) hash ^= WellKnownRegex.GetHashCode(); if (HasStrict) hash ^= Strict.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) wellKnownCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -12805,6 +15021,18 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(248, 1); output.WriteBool(Ipv6Prefix); } + if (HasHostAndPort) { + output.WriteRawTag(128, 2); + output.WriteBool(HostAndPort); + } + if (HasTuuid) { + output.WriteRawTag(136, 2); + output.WriteBool(Tuuid); + } + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -12933,6 +15161,18 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(248, 1); output.WriteBool(Ipv6Prefix); } + if (HasHostAndPort) { + output.WriteRawTag(128, 2); + output.WriteBool(HostAndPort); + } + if (HasTuuid) { + output.WriteRawTag(136, 2); + output.WriteBool(Tuuid); + } + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -13008,6 +15248,9 @@ public int CalculateSize() { if (HasUuid) { size += 2 + 1; } + if (HasTuuid) { + size += 2 + 1; + } if (HasIpWithPrefixlen) { size += 2 + 1; } @@ -13026,12 +15269,19 @@ public int CalculateSize() { if (HasIpv6Prefix) { size += 2 + 1; } + if (HasHostAndPort) { + size += 2 + 1; + } if (HasWellKnownRegex) { size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) WellKnownRegex); } if (HasStrict) { size += 2 + 1; } + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -13085,6 +15335,7 @@ public void MergeFrom(StringRules other) { if (other.HasStrict) { Strict = other.Strict; } + example_.Add(other.example_); switch (other.WellKnownCase) { case WellKnownOneofCase.Email: Email = other.Email; @@ -13113,6 +15364,9 @@ public void MergeFrom(StringRules other) { case WellKnownOneofCase.Uuid: Uuid = other.Uuid; break; + case WellKnownOneofCase.Tuuid: + Tuuid = other.Tuuid; + break; case WellKnownOneofCase.IpWithPrefixlen: IpWithPrefixlen = other.IpWithPrefixlen; break; @@ -13131,11 +15385,15 @@ public void MergeFrom(StringRules other) { case WellKnownOneofCase.Ipv6Prefix: Ipv6Prefix = other.Ipv6Prefix; break; + case WellKnownOneofCase.HostAndPort: + HostAndPort = other.HostAndPort; + break; case WellKnownOneofCase.WellKnownRegex: WellKnownRegex = other.WellKnownRegex; break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -13153,7 +15411,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 10: { Const = input.ReadString(); @@ -13280,6 +15540,18 @@ public void MergeFrom(pb::CodedInputStream input) { Ipv6Prefix = input.ReadBool(); break; } + case 256: { + HostAndPort = input.ReadBool(); + break; + } + case 264: { + Tuuid = input.ReadBool(); + break; + } + case 274: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -13297,7 +15569,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 10: { Const = input.ReadString(); @@ -13424,11 +15698,45 @@ public void MergeFrom(pb::CodedInputStream input) { Ipv6Prefix = input.ReadBool(); break; } + case 256: { + HostAndPort = input.ReadBool(); + break; + } + case 264: { + Tuuid = input.ReadBool(); + break; + } + case 274: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// @@ -13436,13 +15744,15 @@ public void MergeFrom(pb::CodedInputStream input) { /// may also be applied to the `google.protobuf.BytesValue` Well-Known-Type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class BytesRules : pb::IMessage + public sealed partial class BytesRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new BytesRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -13451,7 +15761,7 @@ public sealed partial class BytesRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[17]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[19]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -13482,6 +15792,7 @@ public BytesRules(BytesRules other) : this() { contains_ = other.contains_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); switch (other.WellKnownCase) { case WellKnownOneofCase.Ip: Ip = other.Ip; @@ -13495,6 +15806,7 @@ public BytesRules(BytesRules other) : this() { } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -13967,6 +16279,31 @@ public void ClearIpv6() { } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 14; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForBytes(114); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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" + /// ]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + private object wellKnown_; /// Enum of possible cases for the "well_known" oneof. public enum WellKnownOneofCase { @@ -14017,7 +16354,11 @@ public bool Equals(BytesRules other) { if (Ip != other.Ip) return false; if (Ipv4 != other.Ipv4) return false; if (Ipv6 != other.Ipv6) return false; + if(!example_.Equals(other.example_)) return false; if (WellKnownCase != other.WellKnownCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -14038,7 +16379,11 @@ public override int GetHashCode() { if (HasIp) hash ^= Ip.GetHashCode(); if (HasIpv4) hash ^= Ipv4.GetHashCode(); if (HasIpv6) hash ^= Ipv6.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) wellKnownCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -14103,6 +16448,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(104); output.WriteUInt64(Len); } + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -14159,6 +16508,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(104); output.WriteUInt64(Len); } + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -14204,6 +16557,10 @@ public int CalculateSize() { if (HasIpv6) { size += 1 + 1; } + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -14242,6 +16599,7 @@ public void MergeFrom(BytesRules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); switch (other.WellKnownCase) { case WellKnownOneofCase.Ip: Ip = other.Ip; @@ -14254,6 +16612,7 @@ public void MergeFrom(BytesRules other) { break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -14271,7 +16630,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 10: { Const = input.ReadBytes(); @@ -14325,6 +16686,10 @@ public void MergeFrom(pb::CodedInputStream input) { Len = input.ReadUInt64(); break; } + case 114: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -14342,7 +16707,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 10: { Const = input.ReadBytes(); @@ -14396,24 +16763,52 @@ public void MergeFrom(pb::CodedInputStream input) { Len = input.ReadUInt64(); break; } + case 114: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// EnumRules describe the constraints applied to `enum` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class EnumRules : pb::IMessage + public sealed partial class EnumRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EnumRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -14422,7 +16817,7 @@ public sealed partial class EnumRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[18]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[20]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -14447,7 +16842,9 @@ public EnumRules(EnumRules other) : this() { definedOnly_ = other.definedOnly_; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -14547,7 +16944,7 @@ public void ClearDefinedOnly() { /// Field number for the "in" field. public const int InFieldNumber = 3; private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForInt32(26); + = pb::FieldCodec.ForInt32(24); private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// /// `in` requires the field value to be equal to one of the @@ -14576,7 +16973,7 @@ public void ClearDefinedOnly() { /// Field number for the "not_in" field. public const int NotInFieldNumber = 4; private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForInt32(34); + = pb::FieldCodec.ForInt32(32); private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// /// `not_in` requires the field value to be not equal to any of the @@ -14602,6 +16999,35 @@ public void ClearDefinedOnly() { get { return notIn_; } } + /// Field number for the "example" field. + public const int ExampleFieldNumber = 5; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForInt32(40); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -14621,6 +17047,10 @@ public bool Equals(EnumRules other) { if (DefinedOnly != other.DefinedOnly) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -14632,6 +17062,10 @@ public override int GetHashCode() { if (HasDefinedOnly) hash ^= DefinedOnly.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -14660,6 +17094,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -14680,6 +17118,10 @@ public void WriteTo(pb::CodedOutputStream output) { } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -14698,6 +17140,10 @@ public int CalculateSize() { } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -14718,6 +17164,8 @@ public void MergeFrom(EnumRules other) { } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -14735,7 +17183,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { Const = input.ReadInt32(); @@ -14755,6 +17205,11 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 42: + case 40: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -14772,7 +17227,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { Const = input.ReadInt32(); @@ -14792,24 +17249,53 @@ public void MergeFrom(pb::CodedInputStream input) { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 42: + case 40: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// RepeatedRules describe the constraints applied to `repeated` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class RepeatedRules : pb::IMessage + public sealed partial class RepeatedRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RepeatedRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -14818,7 +17304,7 @@ public sealed partial class RepeatedRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[19]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[21]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -14844,6 +17330,7 @@ public RepeatedRules(RepeatedRules other) : this() { unique_ = other.unique_; items_ = other.items_ != null ? other.items_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15019,6 +17506,9 @@ public bool Equals(RepeatedRules other) { if (MaxItems != other.MaxItems) return false; if (Unique != other.Unique) return false; if (!object.Equals(Items, other.Items)) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -15030,6 +17520,9 @@ public override int GetHashCode() { if (HasMaxItems) hash ^= MaxItems.GetHashCode(); if (HasUnique) hash ^= Unique.GetHashCode(); if (items_ != null) hash ^= Items.GetHashCode(); + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -15064,6 +17557,9 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteMessage(Items); } + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -15090,6 +17586,9 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteMessage(Items); } + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -15112,6 +17611,9 @@ public int CalculateSize() { if (items_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Items); } + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -15139,6 +17641,7 @@ public void MergeFrom(RepeatedRules other) { } Items.MergeFrom(other.Items); } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -15156,7 +17659,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { MinItems = input.ReadUInt64(); @@ -15194,7 +17699,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { MinItems = input.ReadUInt64(); @@ -15220,19 +17727,43 @@ public void MergeFrom(pb::CodedInputStream input) { } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// MapRules describe the constraints applied to `map` values. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class MapRules : pb::IMessage + public sealed partial class MapRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MapRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -15241,7 +17772,7 @@ public sealed partial class MapRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[20]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[22]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15267,6 +17798,7 @@ public MapRules(MapRules other) : this() { keys_ = other.keys_ != null ? other.keys_.Clone() : null; values_ = other.values_ != null ? other.values_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15426,6 +17958,9 @@ public bool Equals(MapRules other) { if (MaxPairs != other.MaxPairs) return false; if (!object.Equals(Keys, other.Keys)) return false; if (!object.Equals(Values, other.Values)) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -15437,6 +17972,9 @@ public override int GetHashCode() { if (HasMaxPairs) hash ^= MaxPairs.GetHashCode(); if (keys_ != null) hash ^= Keys.GetHashCode(); if (values_ != null) hash ^= Values.GetHashCode(); + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -15471,6 +18009,9 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(42); output.WriteMessage(Values); } + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -15497,6 +18038,9 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(42); output.WriteMessage(Values); } + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -15519,6 +18063,9 @@ public int CalculateSize() { if (values_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Values); } + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -15549,6 +18096,7 @@ public void MergeFrom(MapRules other) { } Values.MergeFrom(other.Values); } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -15566,7 +18114,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 8: { MinPairs = input.ReadUInt64(); @@ -15607,7 +18157,9 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 8: { MinPairs = input.ReadUInt64(); @@ -15636,27 +18188,289 @@ public void MergeFrom(pb::CodedInputStream input) { } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// /// AnyRules describe constraints applied exclusively to the `google.protobuf.Any` well-known type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class AnyRules : pb::IMessage + public sealed partial class AnyRules : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AnyRules()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[23]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public AnyRules() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public AnyRules(AnyRules other) : this() { + in_ = other.in_.Clone(); + notIn_ = other.notIn_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public AnyRules Clone() { + return new AnyRules(this); + } + + /// Field number for the "in" field. + public const int InFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_in_codec + = pb::FieldCodec.ForString(18); + private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); + /// + /// `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"]]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField In { + get { return in_; } + } + + /// Field number for the "not_in" field. + public const int NotInFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_notIn_codec + = pb::FieldCodec.ForString(26); + private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); + /// + /// 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 field `value` 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"]]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField NotIn { + get { return notIn_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as AnyRules); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(AnyRules other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!in_.Equals(other.in_)) return false; + if(!notIn_.Equals(other.notIn_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= in_.GetHashCode(); + hash ^= notIn_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + in_.WriteTo(output, _repeated_in_codec); + notIn_.WriteTo(output, _repeated_notIn_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + in_.WriteTo(ref output, _repeated_in_codec); + notIn_.WriteTo(ref output, _repeated_notIn_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += in_.CalculateSize(_repeated_in_codec); + size += notIn_.CalculateSize(_repeated_notIn_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(AnyRules other) { + if (other == null) { + return; + } + in_.Add(other.in_); + notIn_.Add(other.notIn_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 18: { + in_.AddEntriesFrom(input, _repeated_in_codec); + break; + } + case 26: { + notIn_.AddEntriesFrom(input, _repeated_notIn_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 18: { + in_.AddEntriesFrom(ref input, _repeated_in_codec); + break; + } + case 26: { + notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); + break; + } + } + } + } + #endif + + } + + /// + /// DurationRules describe the constraints applied exclusively to the `google.protobuf.Duration` well-known type. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DurationRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AnyRules()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DurationRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[21]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[24]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15667,7 +18481,7 @@ public sealed partial class AnyRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AnyRules() { + public DurationRules() { OnConstruction(); } @@ -15675,79 +18489,317 @@ public AnyRules() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AnyRules(AnyRules other) : this() { + public DurationRules(DurationRules other) : this() { + const_ = other.const_ != null ? other.const_.Clone() : null; in_ = other.in_.Clone(); notIn_ = other.notIn_.Clone(); + example_ = other.example_.Clone(); + switch (other.LessThanCase) { + case LessThanOneofCase.Lt: + Lt = other.Lt.Clone(); + break; + case LessThanOneofCase.Lte: + Lte = other.Lte.Clone(); + break; + } + + switch (other.GreaterThanCase) { + case GreaterThanOneofCase.Gt: + Gt = other.Gt.Clone(); + break; + case GreaterThanOneofCase.Gte: + Gte = other.Gte.Clone(); + break; + } + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AnyRules Clone() { - return new AnyRules(this); + public DurationRules Clone() { + return new DurationRules(this); + } + + /// Field number for the "const" field. + public const int ConstFieldNumber = 2; + private global::Google.Protobuf.WellKnownTypes.Duration const_; + /// + /// `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"]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Protobuf.WellKnownTypes.Duration Const { + get { return const_; } + set { + const_ = value; + } + } + + /// Field number for the "lt" field. + public const int LtFieldNumber = 3; + /// + /// `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"]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Protobuf.WellKnownTypes.Duration Lt { + get { return lessThanCase_ == LessThanOneofCase.Lt ? (global::Google.Protobuf.WellKnownTypes.Duration) lessThan_ : null; } + set { + lessThan_ = value; + lessThanCase_ = value == null ? LessThanOneofCase.None : LessThanOneofCase.Lt; + } + } + + /// Field number for the "lte" field. + public const int LteFieldNumber = 4; + /// + /// `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"]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Protobuf.WellKnownTypes.Duration Lte { + get { return lessThanCase_ == LessThanOneofCase.Lte ? (global::Google.Protobuf.WellKnownTypes.Duration) lessThan_ : null; } + set { + lessThan_ = value; + lessThanCase_ = value == null ? LessThanOneofCase.None : LessThanOneofCase.Lte; + } + } + + /// Field number for the "gt" field. + public const int GtFieldNumber = 5; + /// + /// `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 } }]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Protobuf.WellKnownTypes.Duration Gt { + get { return greaterThanCase_ == GreaterThanOneofCase.Gt ? (global::Google.Protobuf.WellKnownTypes.Duration) greaterThan_ : null; } + set { + greaterThan_ = value; + greaterThanCase_ = value == null ? GreaterThanOneofCase.None : GreaterThanOneofCase.Gt; + } + } + + /// Field number for the "gte" field. + public const int GteFieldNumber = 6; + /// + /// `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 } }]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Protobuf.WellKnownTypes.Duration Gte { + get { return greaterThanCase_ == GreaterThanOneofCase.Gte ? (global::Google.Protobuf.WellKnownTypes.Duration) greaterThan_ : null; } + set { + greaterThan_ = value; + greaterThanCase_ = value == null ? GreaterThanOneofCase.None : GreaterThanOneofCase.Gte; + } } /// Field number for the "in" field. - public const int InFieldNumber = 2; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForString(18); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); + public const int InFieldNumber = 7; + private static readonly pb::FieldCodec _repeated_in_codec + = pb::FieldCodec.ForMessage(58, global::Google.Protobuf.WellKnownTypes.Duration.Parser); + private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); /// - /// `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. + /// `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 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"]]; + /// message MyDuration { + /// // value must be in list [1s, 2s, 3s] + /// google.protobuf.Duration value = 1 [(buf.validate.field).duration.in = ["1s", "2s", "3s"]]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { + public pbc::RepeatedField In { get { return in_; } } /// Field number for the "not_in" field. - public const int NotInFieldNumber = 3; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForString(26); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); + public const int NotInFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_notIn_codec + = pb::FieldCodec.ForMessage(66, global::Google.Protobuf.WellKnownTypes.Duration.Parser); + private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); /// - /// 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. + /// `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 MyAny { - /// // The field `value` 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"]]; + /// 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"]]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField NotIn { + get { return notIn_; } + } + + /// Field number for the "example" field. + public const int ExampleFieldNumber = 9; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForMessage(74, global::Google.Protobuf.WellKnownTypes.Duration.Parser); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + /// + /// `example` specifies values that the field may have. These values SHOULD + /// conform to other constraints. `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 }, + /// ]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } + public pbc::RepeatedField Example { + get { return example_; } + } + + private object lessThan_; + /// Enum of possible cases for the "less_than" oneof. + public enum LessThanOneofCase { + None = 0, + Lt = 3, + Lte = 4, + } + private LessThanOneofCase lessThanCase_ = LessThanOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LessThanOneofCase LessThanCase { + get { return lessThanCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearLessThan() { + lessThanCase_ = LessThanOneofCase.None; + lessThan_ = null; + } + + private object greaterThan_; + /// Enum of possible cases for the "greater_than" oneof. + public enum GreaterThanOneofCase { + None = 0, + Gt = 5, + Gte = 6, + } + private GreaterThanOneofCase greaterThanCase_ = GreaterThanOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GreaterThanOneofCase GreaterThanCase { + get { return greaterThanCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearGreaterThan() { + greaterThanCase_ = GreaterThanOneofCase.None; + greaterThan_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as AnyRules); + return Equals(other as DurationRules); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(AnyRules other) { + public bool Equals(DurationRules other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } + if (!object.Equals(Const, other.Const)) return false; + if (!object.Equals(Lt, other.Lt)) return false; + if (!object.Equals(Lte, other.Lte)) return false; + if (!object.Equals(Gt, other.Gt)) return false; + if (!object.Equals(Gte, other.Gte)) return false; if(!in_.Equals(other.in_)) return false; if(!notIn_.Equals(other.notIn_)) return false; + if(!example_.Equals(other.example_)) return false; + if (LessThanCase != other.LessThanCase) return false; + if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -15755,8 +18807,19 @@ public bool Equals(AnyRules other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; + if (const_ != null) hash ^= Const.GetHashCode(); + if (lessThanCase_ == LessThanOneofCase.Lt) hash ^= Lt.GetHashCode(); + if (lessThanCase_ == LessThanOneofCase.Lte) hash ^= Lte.GetHashCode(); + if (greaterThanCase_ == GreaterThanOneofCase.Gt) hash ^= Gt.GetHashCode(); + if (greaterThanCase_ == GreaterThanOneofCase.Gte) hash ^= Gte.GetHashCode(); hash ^= in_.GetHashCode(); hash ^= notIn_.GetHashCode(); + hash ^= example_.GetHashCode(); + hash ^= (int) lessThanCase_; + hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -15775,8 +18838,32 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else + if (const_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Const); + } + if (lessThanCase_ == LessThanOneofCase.Lt) { + output.WriteRawTag(26); + output.WriteMessage(Lt); + } + if (lessThanCase_ == LessThanOneofCase.Lte) { + output.WriteRawTag(34); + output.WriteMessage(Lte); + } + if (greaterThanCase_ == GreaterThanOneofCase.Gt) { + output.WriteRawTag(42); + output.WriteMessage(Gt); + } + if (greaterThanCase_ == GreaterThanOneofCase.Gte) { + output.WriteRawTag(50); + output.WriteMessage(Gte); + } in_.WriteTo(output, _repeated_in_codec); notIn_.WriteTo(output, _repeated_notIn_codec); + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -15787,8 +18874,32 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (const_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Const); + } + if (lessThanCase_ == LessThanOneofCase.Lt) { + output.WriteRawTag(26); + output.WriteMessage(Lt); + } + if (lessThanCase_ == LessThanOneofCase.Lte) { + output.WriteRawTag(34); + output.WriteMessage(Lte); + } + if (greaterThanCase_ == GreaterThanOneofCase.Gt) { + output.WriteRawTag(42); + output.WriteMessage(Gt); + } + if (greaterThanCase_ == GreaterThanOneofCase.Gte) { + output.WriteRawTag(50); + output.WriteMessage(Gte); + } in_.WriteTo(ref output, _repeated_in_codec); notIn_.WriteTo(ref output, _repeated_notIn_codec); + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -15799,8 +18910,27 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; + if (const_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Const); + } + if (lessThanCase_ == LessThanOneofCase.Lt) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lt); + } + if (lessThanCase_ == LessThanOneofCase.Lte) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lte); + } + if (greaterThanCase_ == GreaterThanOneofCase.Gt) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gt); + } + if (greaterThanCase_ == GreaterThanOneofCase.Gte) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gte); + } size += in_.CalculateSize(_repeated_in_codec); size += notIn_.CalculateSize(_repeated_notIn_codec); + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -15809,12 +18939,50 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(AnyRules other) { + public void MergeFrom(DurationRules other) { if (other == null) { return; } + if (other.const_ != null) { + if (const_ == null) { + Const = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + Const.MergeFrom(other.Const); + } in_.Add(other.in_); notIn_.Add(other.notIn_); + example_.Add(other.example_); + switch (other.LessThanCase) { + case LessThanOneofCase.Lt: + if (Lt == null) { + Lt = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + Lt.MergeFrom(other.Lt); + break; + case LessThanOneofCase.Lte: + if (Lte == null) { + Lte = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + Lte.MergeFrom(other.Lte); + break; + } + + switch (other.GreaterThanCase) { + case GreaterThanOneofCase.Gt: + if (Gt == null) { + Gt = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + Gt.MergeFrom(other.Gt); + break; + case GreaterThanOneofCase.Gte: + if (Gte == null) { + Gte = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + Gte.MergeFrom(other.Gte); + break; + } + + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -15832,16 +19000,65 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 18: { - in_.AddEntriesFrom(input, _repeated_in_codec); + if (const_ == null) { + Const = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + input.ReadMessage(Const); break; } case 26: { + global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + if (lessThanCase_ == LessThanOneofCase.Lt) { + subBuilder.MergeFrom(Lt); + } + input.ReadMessage(subBuilder); + Lt = subBuilder; + break; + } + case 34: { + global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + if (lessThanCase_ == LessThanOneofCase.Lte) { + subBuilder.MergeFrom(Lte); + } + input.ReadMessage(subBuilder); + Lte = subBuilder; + break; + } + case 42: { + global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + if (greaterThanCase_ == GreaterThanOneofCase.Gt) { + subBuilder.MergeFrom(Gt); + } + input.ReadMessage(subBuilder); + Gt = subBuilder; + break; + } + case 50: { + global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + if (greaterThanCase_ == GreaterThanOneofCase.Gte) { + subBuilder.MergeFrom(Gte); + } + input.ReadMessage(subBuilder); + Gte = subBuilder; + break; + } + case 58: { + in_.AddEntriesFrom(input, _repeated_in_codec); + break; + } + case 66: { notIn_.AddEntriesFrom(input, _repeated_notIn_codec); break; } + case 74: { + example_.AddEntriesFrom(input, _repeated_example_codec); + break; + } } } #endif @@ -15859,42 +19076,115 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 18: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); + if (const_ == null) { + Const = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + input.ReadMessage(Const); break; } case 26: { + global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + if (lessThanCase_ == LessThanOneofCase.Lt) { + subBuilder.MergeFrom(Lt); + } + input.ReadMessage(subBuilder); + Lt = subBuilder; + break; + } + case 34: { + global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + if (lessThanCase_ == LessThanOneofCase.Lte) { + subBuilder.MergeFrom(Lte); + } + input.ReadMessage(subBuilder); + Lte = subBuilder; + break; + } + case 42: { + global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + if (greaterThanCase_ == GreaterThanOneofCase.Gt) { + subBuilder.MergeFrom(Gt); + } + input.ReadMessage(subBuilder); + Gt = subBuilder; + break; + } + case 50: { + global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + if (greaterThanCase_ == GreaterThanOneofCase.Gte) { + subBuilder.MergeFrom(Gte); + } + input.ReadMessage(subBuilder); + Gte = subBuilder; + break; + } + case 58: { + in_.AddEntriesFrom(ref input, _repeated_in_codec); + break; + } + case 66: { notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); break; } + case 74: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } } } } #endif + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + } /// - /// DurationRules describe the constraints applied exclusively to the `google.protobuf.Duration` well-known type. + /// TimestampRules describe the constraints applied exclusively to the `google.protobuf.Timestamp` well-known type. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class DurationRules : pb::IMessage + public sealed partial class TimestampRules : pb::IExtendableMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DurationRules()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TimestampRules()); private pb::UnknownFieldSet _unknownFields; + private pb::ExtensionSet _extensions; + private pb::ExtensionSet _Extensions { get { return _extensions; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[22]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[25]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15905,7 +19195,7 @@ public sealed partial class DurationRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DurationRules() { + public TimestampRules() { OnConstruction(); } @@ -15913,10 +19203,10 @@ public DurationRules() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DurationRules(DurationRules other) : this() { + public TimestampRules(TimestampRules other) : this() { const_ = other.const_ != null ? other.const_.Clone() : null; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); + within_ = other.within_ != null ? other.within_.Clone() : null; + example_ = other.example_.Clone(); switch (other.LessThanCase) { case LessThanOneofCase.Lt: Lt = other.Lt.Clone(); @@ -15924,6 +19214,9 @@ public DurationRules(DurationRules other) : this() { case LessThanOneofCase.Lte: Lte = other.Lte.Clone(); break; + case LessThanOneofCase.LtNow: + LtNow = other.LtNow; + break; } switch (other.GreaterThanCase) { @@ -15933,35 +19226,37 @@ public DurationRules(DurationRules other) : this() { case GreaterThanOneofCase.Gte: Gte = other.Gte.Clone(); break; + case GreaterThanOneofCase.GtNow: + GtNow = other.GtNow; + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + _extensions = pb::ExtensionSet.Clone(other._extensions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DurationRules Clone() { - return new DurationRules(this); + public TimestampRules Clone() { + return new TimestampRules(this); } /// Field number for the "const" field. public const int ConstFieldNumber = 2; - private global::Google.Protobuf.WellKnownTypes.Duration const_; + private global::Google.Protobuf.WellKnownTypes.Timestamp const_; /// - /// `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. + /// `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 MyDuration { - /// // value must equal 5s - /// google.protobuf.Duration value = 1 [(buf.validate.field).duration.const = "5s"]; + /// message MyTimestamp { + /// // value must equal 2023-05-03T10:00:00Z + /// google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.const = {seconds: 1727998800}]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Const { + public global::Google.Protobuf.WellKnownTypes.Timestamp Const { get { return const_; } set { const_ = value; @@ -15971,21 +19266,19 @@ public DurationRules Clone() { /// Field number for the "lt" field. public const int LtFieldNumber = 3; /// - /// `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. + /// 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 { - /// // value must be less than 5s - /// google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = "5s"]; + /// // duration must be less than 'P3D' [duration.lt] + /// google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = { seconds: 259200 }]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Lt { - get { return lessThanCase_ == LessThanOneofCase.Lt ? (global::Google.Protobuf.WellKnownTypes.Duration) lessThan_ : null; } + public global::Google.Protobuf.WellKnownTypes.Timestamp Lt { + get { return lessThanCase_ == LessThanOneofCase.Lt ? (global::Google.Protobuf.WellKnownTypes.Timestamp) lessThan_ : null; } set { lessThan_ = value; lessThanCase_ = value == null ? LessThanOneofCase.None : LessThanOneofCase.Lt; @@ -15995,53 +19288,87 @@ public DurationRules Clone() { /// Field number for the "lte" field. public const int LteFieldNumber = 4; /// - /// `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. + /// 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 MyDuration { - /// // value must be less than or equal to 10s - /// google.protobuf.Duration value = 1 [(buf.validate.field).duration.lte = "10s"]; + /// 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 }]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Lte { - get { return lessThanCase_ == LessThanOneofCase.Lte ? (global::Google.Protobuf.WellKnownTypes.Duration) lessThan_ : null; } + public global::Google.Protobuf.WellKnownTypes.Timestamp Lte { + get { return lessThanCase_ == LessThanOneofCase.Lte ? (global::Google.Protobuf.WellKnownTypes.Timestamp) lessThan_ : null; } set { lessThan_ = value; lessThanCase_ = value == null ? LessThanOneofCase.None : LessThanOneofCase.Lte; } } + /// Field number for the "lt_now" field. + public const int LtNowFieldNumber = 7; + /// + /// `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]; + /// } + /// ``` + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool LtNow { + get { return HasLtNow ? (bool) lessThan_ : false; } + set { + lessThan_ = value; + lessThanCase_ = LessThanOneofCase.LtNow; + } + } + /// Gets whether the "lt_now" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasLtNow { + get { return lessThanCase_ == LessThanOneofCase.LtNow; } + } + /// Clears the value of the oneof if it's currently set to "lt_now" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearLtNow() { + if (HasLtNow) { + ClearLessThan(); + } + } + /// Field number for the "gt" field. public const int GtFieldNumber = 5; /// - /// `gt` requires the duration field value to be greater than the specified + /// `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 MyDuration { - /// // duration must be greater than 5s [duration.gt] - /// google.protobuf.Duration value = 1 [(buf.validate.field).duration.gt = { seconds: 5 }]; + /// 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 }]; /// - /// // 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 } }]; + /// // 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 } }]; /// - /// // 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 } }]; + /// // 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 } }]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Gt { - get { return greaterThanCase_ == GreaterThanOneofCase.Gt ? (global::Google.Protobuf.WellKnownTypes.Duration) greaterThan_ : null; } + public global::Google.Protobuf.WellKnownTypes.Timestamp Gt { + get { return greaterThanCase_ == GreaterThanOneofCase.Gt ? (global::Google.Protobuf.WellKnownTypes.Timestamp) greaterThan_ : null; } set { greaterThan_ = value; greaterThanCase_ = value == null ? GreaterThanOneofCase.None : GreaterThanOneofCase.Gt; @@ -16051,80 +19378,102 @@ public DurationRules Clone() { /// Field number for the "gte" field. public const int GteFieldNumber = 6; /// - /// `gte` requires the duration field value to be greater than or equal to the + /// `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. + /// 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 }]; + /// 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 }]; /// - /// // 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 } }]; + /// // 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 } }]; /// - /// // 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 } }]; + /// // 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 } }]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Gte { - get { return greaterThanCase_ == GreaterThanOneofCase.Gte ? (global::Google.Protobuf.WellKnownTypes.Duration) greaterThan_ : null; } + public global::Google.Protobuf.WellKnownTypes.Timestamp Gte { + get { return greaterThanCase_ == GreaterThanOneofCase.Gte ? (global::Google.Protobuf.WellKnownTypes.Timestamp) greaterThan_ : null; } set { greaterThan_ = value; greaterThanCase_ = value == null ? GreaterThanOneofCase.None : GreaterThanOneofCase.Gte; } } - /// Field number for the "in" field. - public const int InFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForMessage(58, global::Google.Protobuf.WellKnownTypes.Duration.Parser); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); + /// Field number for the "gt_now" field. + public const int GtNowFieldNumber = 8; /// - /// `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. + /// `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 MyDuration { - /// // value must be in list [1s, 2s, 3s] - /// google.protobuf.Duration value = 1 [(buf.validate.field).duration.in = ["1s", "2s", "3s"]]; + /// message MyTimestamp { + /// // value must be greater than now + /// google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.gt_now = true]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } + public bool GtNow { + get { return HasGtNow ? (bool) greaterThan_ : false; } + set { + greaterThan_ = value; + greaterThanCase_ = GreaterThanOneofCase.GtNow; + } + } + /// Gets whether the "gt_now" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasGtNow { + get { return greaterThanCase_ == GreaterThanOneofCase.GtNow; } + } + /// Clears the value of the oneof if it's currently set to "gt_now" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearGtNow() { + if (HasGtNow) { + ClearGreaterThan(); + } } - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 8; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForMessage(66, global::Google.Protobuf.WellKnownTypes.Duration.Parser); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); + /// Field number for the "within" field. + public const int WithinFieldNumber = 9; + private global::Google.Protobuf.WellKnownTypes.Duration within_; /// - /// `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. + /// `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 MyDuration { - /// // value must not be in list [1s, 2s, 3s] - /// google.protobuf.Duration value = 1 [(buf.validate.field).duration.not_in = ["1s", "2s", "3s"]]; + /// message MyTimestamp { + /// // value must be within 1 hour of now + /// google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.within = {seconds: 3600}]; /// } /// ``` /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } + public global::Google.Protobuf.WellKnownTypes.Duration Within { + get { return within_; } + set { + within_ = value; + } + } + + /// Field number for the "example" field. + public const int ExampleFieldNumber = 10; + private static readonly pb::FieldCodec _repeated_example_codec + = pb::FieldCodec.ForMessage(82, global::Google.Protobuf.WellKnownTypes.Timestamp.Parser); + private readonly pbc::RepeatedField example_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Example { + get { return example_; } } private object lessThan_; @@ -16133,6 +19482,7 @@ public enum LessThanOneofCase { None = 0, Lt = 3, Lte = 4, + LtNow = 7, } private LessThanOneofCase lessThanCase_ = LessThanOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -16154,6 +19504,7 @@ public enum GreaterThanOneofCase { None = 0, Gt = 5, Gte = 6, + GtNow = 8, } private GreaterThanOneofCase greaterThanCase_ = GreaterThanOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -16172,12 +19523,12 @@ public void ClearGreaterThan() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as DurationRules); + return Equals(other as TimestampRules); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(DurationRules other) { + public bool Equals(TimestampRules other) { if (ReferenceEquals(other, null)) { return false; } @@ -16187,12 +19538,17 @@ public bool Equals(DurationRules other) { if (!object.Equals(Const, other.Const)) return false; if (!object.Equals(Lt, other.Lt)) return false; if (!object.Equals(Lte, other.Lte)) return false; + if (LtNow != other.LtNow) return false; if (!object.Equals(Gt, other.Gt)) return false; if (!object.Equals(Gte, other.Gte)) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; + if (GtNow != other.GtNow) return false; + if (!object.Equals(Within, other.Within)) return false; + if(!example_.Equals(other.example_)) return false; if (LessThanCase != other.LessThanCase) return false; if (GreaterThanCase != other.GreaterThanCase) return false; + if (!Equals(_extensions, other._extensions)) { + return false; + } return Equals(_unknownFields, other._unknownFields); } @@ -16203,12 +19559,17 @@ public override int GetHashCode() { if (const_ != null) hash ^= Const.GetHashCode(); if (lessThanCase_ == LessThanOneofCase.Lt) hash ^= Lt.GetHashCode(); if (lessThanCase_ == LessThanOneofCase.Lte) hash ^= Lte.GetHashCode(); + if (HasLtNow) hash ^= LtNow.GetHashCode(); if (greaterThanCase_ == GreaterThanOneofCase.Gt) hash ^= Gt.GetHashCode(); if (greaterThanCase_ == GreaterThanOneofCase.Gte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); + if (HasGtNow) hash ^= GtNow.GetHashCode(); + if (within_ != null) hash ^= Within.GetHashCode(); + hash ^= example_.GetHashCode(); hash ^= (int) lessThanCase_; hash ^= (int) greaterThanCase_; + if (_extensions != null) { + hash ^= _extensions.GetHashCode(); + } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -16247,8 +19608,22 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(50); output.WriteMessage(Gte); } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); + if (HasLtNow) { + output.WriteRawTag(56); + output.WriteBool(LtNow); + } + if (HasGtNow) { + output.WriteRawTag(64); + output.WriteBool(GtNow); + } + if (within_ != null) { + output.WriteRawTag(74); + output.WriteMessage(Within); + } + example_.WriteTo(output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(output); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -16279,8 +19654,22 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(50); output.WriteMessage(Gte); } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); + if (HasLtNow) { + output.WriteRawTag(56); + output.WriteBool(LtNow); + } + if (HasGtNow) { + output.WriteRawTag(64); + output.WriteBool(GtNow); + } + if (within_ != null) { + output.WriteRawTag(74); + output.WriteMessage(Within); + } + example_.WriteTo(ref output, _repeated_example_codec); + if (_extensions != null) { + _extensions.WriteTo(ref output); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -16300,14 +19689,25 @@ public int CalculateSize() { if (lessThanCase_ == LessThanOneofCase.Lte) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lte); } + if (HasLtNow) { + size += 1 + 1; + } if (greaterThanCase_ == GreaterThanOneofCase.Gt) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gt); } if (greaterThanCase_ == GreaterThanOneofCase.Gte) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gte); } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); + if (HasGtNow) { + size += 1 + 1; + } + if (within_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Within); + } + size += example_.CalculateSize(_repeated_example_codec); + if (_extensions != null) { + size += _extensions.CalculateSize(); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -16316,48 +19716,60 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(DurationRules other) { + public void MergeFrom(TimestampRules other) { if (other == null) { return; } if (other.const_ != null) { if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Duration(); + Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); } Const.MergeFrom(other.Const); } - in_.Add(other.in_); - notIn_.Add(other.notIn_); + if (other.within_ != null) { + if (within_ == null) { + Within = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + Within.MergeFrom(other.Within); + } + example_.Add(other.example_); switch (other.LessThanCase) { case LessThanOneofCase.Lt: if (Lt == null) { - Lt = new global::Google.Protobuf.WellKnownTypes.Duration(); + Lt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); } Lt.MergeFrom(other.Lt); break; case LessThanOneofCase.Lte: if (Lte == null) { - Lte = new global::Google.Protobuf.WellKnownTypes.Duration(); + Lte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); } Lte.MergeFrom(other.Lte); break; + case LessThanOneofCase.LtNow: + LtNow = other.LtNow; + break; } switch (other.GreaterThanCase) { case GreaterThanOneofCase.Gt: if (Gt == null) { - Gt = new global::Google.Protobuf.WellKnownTypes.Duration(); + Gt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); } Gt.MergeFrom(other.Gt); break; case GreaterThanOneofCase.Gte: if (Gte == null) { - Gte = new global::Google.Protobuf.WellKnownTypes.Duration(); + Gte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); } Gte.MergeFrom(other.Gte); break; + case GreaterThanOneofCase.GtNow: + GtNow = other.GtNow; + break; } + pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -16375,17 +19787,19 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + } break; case 18: { if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Duration(); + Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); } input.ReadMessage(Const); break; } case 26: { - global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); if (lessThanCase_ == LessThanOneofCase.Lt) { subBuilder.MergeFrom(Lt); } @@ -16394,7 +19808,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 34: { - global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); if (lessThanCase_ == LessThanOneofCase.Lte) { subBuilder.MergeFrom(Lte); } @@ -16403,7 +19817,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 42: { - global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); if (greaterThanCase_ == GreaterThanOneofCase.Gt) { subBuilder.MergeFrom(Gt); } @@ -16412,7 +19826,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 50: { - global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); if (greaterThanCase_ == GreaterThanOneofCase.Gte) { subBuilder.MergeFrom(Gte); } @@ -16420,12 +19834,23 @@ public void MergeFrom(pb::CodedInputStream input) { Gte = subBuilder; break; } - case 58: { - in_.AddEntriesFrom(input, _repeated_in_codec); + case 56: { + LtNow = input.ReadBool(); break; } - case 66: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); + case 64: { + GtNow = input.ReadBool(); + break; + } + case 74: { + if (within_ == null) { + Within = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + input.ReadMessage(Within); + break; + } + case 82: { + example_.AddEntriesFrom(input, _repeated_example_codec); break; } } @@ -16445,17 +19870,19 @@ public void MergeFrom(pb::CodedInputStream input) { } switch(tag) { default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, ref input)) { + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + } break; case 18: { if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Duration(); + Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); } input.ReadMessage(Const); break; } case 26: { - global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); if (lessThanCase_ == LessThanOneofCase.Lt) { subBuilder.MergeFrom(Lt); } @@ -16464,7 +19891,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 34: { - global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); if (lessThanCase_ == LessThanOneofCase.Lte) { subBuilder.MergeFrom(Lte); } @@ -16473,7 +19900,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 42: { - global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); if (greaterThanCase_ == GreaterThanOneofCase.Gt) { subBuilder.MergeFrom(Gt); } @@ -16482,7 +19909,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 50: { - global::Google.Protobuf.WellKnownTypes.Duration subBuilder = new global::Google.Protobuf.WellKnownTypes.Duration(); + global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); if (greaterThanCase_ == GreaterThanOneofCase.Gte) { subBuilder.MergeFrom(Gte); } @@ -16490,12 +19917,240 @@ public void MergeFrom(pb::CodedInputStream input) { Gte = subBuilder; break; } - case 58: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); + case 56: { + LtNow = input.ReadBool(); break; } - case 66: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); + case 64: { + GtNow = input.ReadBool(); + break; + } + case 74: { + if (within_ == null) { + Within = new global::Google.Protobuf.WellKnownTypes.Duration(); + } + input.ReadMessage(Within); + break; + } + case 82: { + example_.AddEntriesFrom(ref input, _repeated_example_codec); + break; + } + } + } + } + #endif + + public TValue GetExtension(pb::Extension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.Get(ref _extensions, extension); + } + public pbc::RepeatedField GetOrInitializeExtension(pb::RepeatedExtension extension) { + return pb::ExtensionSet.GetOrInitialize(ref _extensions, extension); + } + public void SetExtension(pb::Extension extension, TValue value) { + pb::ExtensionSet.Set(ref _extensions, extension, value); + } + public bool HasExtension(pb::Extension extension) { + return pb::ExtensionSet.Has(ref _extensions, extension); + } + public void ClearExtension(pb::Extension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + public void ClearExtension(pb::RepeatedExtension extension) { + pb::ExtensionSet.Clear(ref _extensions, extension); + } + + } + + /// + /// `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 `Constraint` validation rules. + /// Each individual violation is represented by a `Violation` message. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class Violations : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Violations()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[26]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Violations() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Violations(Violations other) : this() { + violations_ = other.violations_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Violations Clone() { + return new Violations(this); + } + + /// Field number for the "violations" field. + public const int Violations_FieldNumber = 1; + private static readonly pb::FieldCodec _repeated_violations_codec + = pb::FieldCodec.ForMessage(10, global::Buf.Validate.Violation.Parser); + private readonly pbc::RepeatedField violations_ = new pbc::RepeatedField(); + /// + /// `violations` is a repeated field that contains all the `Violation` messages corresponding to the violations detected. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Violations_ { + get { return violations_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Violations); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Violations other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!violations_.Equals(other.violations_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= violations_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + violations_.WriteTo(output, _repeated_violations_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + violations_.WriteTo(ref output, _repeated_violations_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += violations_.CalculateSize(_repeated_violations_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Violations other) { + if (other == null) { + return; + } + violations_.Add(other.violations_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + violations_.AddEntriesFrom(input, _repeated_violations_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + violations_.AddEntriesFrom(ref input, _repeated_violations_codec); break; } } @@ -16506,24 +20161,36 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// TimestampRules describe the constraints applied exclusively to the `google.protobuf.Timestamp` well-known type. + /// `Violation` represents a single instance where a validation rule, expressed + /// as a `Constraint`, was not met. It provides information about the field that + /// caused the violation, the specific constraint that wasn't fulfilled, and a + /// human-readable error message. + /// + /// ```json + /// { + /// "fieldPath": "bar", + /// "constraintId": "foo.bar", + /// "message": "bar must be greater than 0" + /// } + /// ``` /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class TimestampRules : pb::IMessage + public sealed partial class Violation : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TimestampRules()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Violation()); private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[23]; } + get { return global::Buf.Validate.ValidateReflection.Descriptor.MessageTypes[27]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -16534,7 +20201,7 @@ public sealed partial class TimestampRules : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TimestampRules() { + public Violation() { OnConstruction(); } @@ -16542,335 +20209,160 @@ public TimestampRules() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TimestampRules(TimestampRules other) : this() { - const_ = other.const_ != null ? other.const_.Clone() : null; - within_ = other.within_ != null ? other.within_.Clone() : null; - switch (other.LessThanCase) { - case LessThanOneofCase.Lt: - Lt = other.Lt.Clone(); - break; - case LessThanOneofCase.Lte: - Lte = other.Lte.Clone(); - break; - case LessThanOneofCase.LtNow: - LtNow = other.LtNow; - break; - } - - switch (other.GreaterThanCase) { - case GreaterThanOneofCase.Gt: - Gt = other.Gt.Clone(); - break; - case GreaterThanOneofCase.Gte: - Gte = other.Gte.Clone(); - break; - case GreaterThanOneofCase.GtNow: - GtNow = other.GtNow; - break; - } - + public Violation(Violation other) : this() { + _hasBits0 = other._hasBits0; + fieldPath_ = other.fieldPath_; + constraintId_ = other.constraintId_; + message_ = other.message_; + forKey_ = other.forKey_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TimestampRules Clone() { - return new TimestampRules(this); + public Violation Clone() { + return new Violation(this); } - /// Field number for the "const" field. - public const int ConstFieldNumber = 2; - private global::Google.Protobuf.WellKnownTypes.Timestamp const_; + /// Field number for the "field_path" field. + public const int FieldPathFieldNumber = 1; + private readonly static string FieldPathDefaultValue = ""; + + private string fieldPath_; /// - /// `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}]; - /// } - /// ``` + /// `field_path` is a machine-readable identifier that points to the specific field that failed the 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. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Const { - get { return const_; } + public string FieldPath { + get { return fieldPath_ ?? FieldPathDefaultValue; } set { - const_ = value; + fieldPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 3; - /// - /// 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 }]; - /// } - /// ``` - /// + /// Gets whether the "field_path" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Lt { - get { return lessThanCase_ == LessThanOneofCase.Lt ? (global::Google.Protobuf.WellKnownTypes.Timestamp) lessThan_ : null; } - set { - lessThan_ = value; - lessThanCase_ = value == null ? LessThanOneofCase.None : LessThanOneofCase.Lt; - } + public bool HasFieldPath { + get { return fieldPath_ != null; } } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 4; - /// - /// 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 }]; - /// } - /// ``` - /// + /// Clears the value of the "field_path" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Lte { - get { return lessThanCase_ == LessThanOneofCase.Lte ? (global::Google.Protobuf.WellKnownTypes.Timestamp) lessThan_ : null; } - set { - lessThan_ = value; - lessThanCase_ = value == null ? LessThanOneofCase.None : LessThanOneofCase.Lte; - } + public void ClearFieldPath() { + fieldPath_ = null; } - /// Field number for the "lt_now" field. - public const int LtNowFieldNumber = 7; + /// Field number for the "constraint_id" field. + public const int ConstraintIdFieldNumber = 2; + private readonly static string ConstraintIdDefaultValue = ""; + + private string constraintId_; /// - /// `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]; - /// } - /// ``` + /// `constraint_id` is the unique identifier of the `Constraint` that was not fulfilled. + /// This is the same `id` that was specified in the `Constraint` message, allowing easy tracing of which rule was violated. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool LtNow { - get { return HasLtNow ? (bool) lessThan_ : false; } + public string ConstraintId { + get { return constraintId_ ?? ConstraintIdDefaultValue; } set { - lessThan_ = value; - lessThanCase_ = LessThanOneofCase.LtNow; + constraintId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - /// Gets whether the "lt_now" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLtNow { - get { return lessThanCase_ == LessThanOneofCase.LtNow; } - } - /// Clears the value of the oneof if it's currently set to "lt_now" + /// Gets whether the "constraint_id" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLtNow() { - if (HasLtNow) { - ClearLessThan(); - } + public bool HasConstraintId { + get { return constraintId_ != null; } } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 5; - /// - /// `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 } }]; - /// } - /// ``` - /// + /// Clears the value of the "constraint_id" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Gt { - get { return greaterThanCase_ == GreaterThanOneofCase.Gt ? (global::Google.Protobuf.WellKnownTypes.Timestamp) greaterThan_ : null; } - set { - greaterThan_ = value; - greaterThanCase_ = value == null ? GreaterThanOneofCase.None : GreaterThanOneofCase.Gt; - } + public void ClearConstraintId() { + constraintId_ = null; } - /// Field number for the "gte" field. - public const int GteFieldNumber = 6; - /// - /// `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 } }]; - /// } - /// ``` - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Gte { - get { return greaterThanCase_ == GreaterThanOneofCase.Gte ? (global::Google.Protobuf.WellKnownTypes.Timestamp) greaterThan_ : null; } - set { - greaterThan_ = value; - greaterThanCase_ = value == null ? GreaterThanOneofCase.None : GreaterThanOneofCase.Gte; - } - } + /// Field number for the "message" field. + public const int MessageFieldNumber = 3; + private readonly static string MessageDefaultValue = ""; - /// Field number for the "gt_now" field. - public const int GtNowFieldNumber = 8; + private string message_; /// - /// `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]; - /// } - /// ``` + /// `message` is a human-readable error message that describes the nature of the violation. + /// This can be the default error message from the violated `Constraint`, or it can be a custom message that gives more context about the violation. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool GtNow { - get { return HasGtNow ? (bool) greaterThan_ : false; } + public string Message { + get { return message_ ?? MessageDefaultValue; } set { - greaterThan_ = value; - greaterThanCase_ = GreaterThanOneofCase.GtNow; + message_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - /// Gets whether the "gt_now" field is set + /// Gets whether the "message" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGtNow { - get { return greaterThanCase_ == GreaterThanOneofCase.GtNow; } + public bool HasMessage { + get { return message_ != null; } } - /// Clears the value of the oneof if it's currently set to "gt_now" + /// Clears the value of the "message" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGtNow() { - if (HasGtNow) { - ClearGreaterThan(); - } + public void ClearMessage() { + message_ = null; } - /// Field number for the "within" field. - public const int WithinFieldNumber = 9; - private global::Google.Protobuf.WellKnownTypes.Duration within_; + /// Field number for the "for_key" field. + public const int ForKeyFieldNumber = 4; + private readonly static bool ForKeyDefaultValue = false; + + private bool forKey_; /// - /// `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}]; - /// } - /// ``` + /// `for_key` indicates whether the violation was caused by a map key, rather than a value. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Within { - get { return within_; } + public bool ForKey { + get { if ((_hasBits0 & 1) != 0) { return forKey_; } else { return ForKeyDefaultValue; } } set { - within_ = value; + _hasBits0 |= 1; + forKey_ = value; } } - - private object lessThan_; - /// Enum of possible cases for the "less_than" oneof. - public enum LessThanOneofCase { - None = 0, - Lt = 3, - Lte = 4, - LtNow = 7, - } - private LessThanOneofCase lessThanCase_ = LessThanOneofCase.None; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public LessThanOneofCase LessThanCase { - get { return lessThanCase_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLessThan() { - lessThanCase_ = LessThanOneofCase.None; - lessThan_ = null; - } - - private object greaterThan_; - /// Enum of possible cases for the "greater_than" oneof. - public enum GreaterThanOneofCase { - None = 0, - Gt = 5, - Gte = 6, - GtNow = 8, - } - private GreaterThanOneofCase greaterThanCase_ = GreaterThanOneofCase.None; + /// Gets whether the "for_key" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public GreaterThanOneofCase GreaterThanCase { - get { return greaterThanCase_; } + public bool HasForKey { + get { return (_hasBits0 & 1) != 0; } } - + /// Clears the value of the "for_key" field [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGreaterThan() { - greaterThanCase_ = GreaterThanOneofCase.None; - greaterThan_ = null; + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearForKey() { + _hasBits0 &= ~1; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as TimestampRules); + return Equals(other as Violation); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(TimestampRules other) { + public bool Equals(Violation other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!object.Equals(Const, other.Const)) return false; - if (!object.Equals(Lt, other.Lt)) return false; - if (!object.Equals(Lte, other.Lte)) return false; - if (LtNow != other.LtNow) return false; - if (!object.Equals(Gt, other.Gt)) return false; - if (!object.Equals(Gte, other.Gte)) return false; - if (GtNow != other.GtNow) return false; - if (!object.Equals(Within, other.Within)) return false; - if (LessThanCase != other.LessThanCase) return false; - if (GreaterThanCase != other.GreaterThanCase) return false; + if (FieldPath != other.FieldPath) return false; + if (ConstraintId != other.ConstraintId) return false; + if (Message != other.Message) return false; + if (ForKey != other.ForKey) return false; return Equals(_unknownFields, other._unknownFields); } @@ -16878,16 +20370,10 @@ public bool Equals(TimestampRules other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (const_ != null) hash ^= Const.GetHashCode(); - if (lessThanCase_ == LessThanOneofCase.Lt) hash ^= Lt.GetHashCode(); - if (lessThanCase_ == LessThanOneofCase.Lte) hash ^= Lte.GetHashCode(); - if (HasLtNow) hash ^= LtNow.GetHashCode(); - if (greaterThanCase_ == GreaterThanOneofCase.Gt) hash ^= Gt.GetHashCode(); - if (greaterThanCase_ == GreaterThanOneofCase.Gte) hash ^= Gte.GetHashCode(); - if (HasGtNow) hash ^= GtNow.GetHashCode(); - if (within_ != null) hash ^= Within.GetHashCode(); - hash ^= (int) lessThanCase_; - hash ^= (int) greaterThanCase_; + if (HasFieldPath) hash ^= FieldPath.GetHashCode(); + if (HasConstraintId) hash ^= ConstraintId.GetHashCode(); + if (HasMessage) hash ^= Message.GetHashCode(); + if (HasForKey) hash ^= ForKey.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -16906,37 +20392,21 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (const_ != null) { + if (HasFieldPath) { + output.WriteRawTag(10); + output.WriteString(FieldPath); + } + if (HasConstraintId) { output.WriteRawTag(18); - output.WriteMessage(Const); + output.WriteString(ConstraintId); } - if (lessThanCase_ == LessThanOneofCase.Lt) { + if (HasMessage) { output.WriteRawTag(26); - output.WriteMessage(Lt); - } - if (lessThanCase_ == LessThanOneofCase.Lte) { - output.WriteRawTag(34); - output.WriteMessage(Lte); - } - if (greaterThanCase_ == GreaterThanOneofCase.Gt) { - output.WriteRawTag(42); - output.WriteMessage(Gt); - } - if (greaterThanCase_ == GreaterThanOneofCase.Gte) { - output.WriteRawTag(50); - output.WriteMessage(Gte); - } - if (HasLtNow) { - output.WriteRawTag(56); - output.WriteBool(LtNow); - } - if (HasGtNow) { - output.WriteRawTag(64); - output.WriteBool(GtNow); + output.WriteString(Message); } - if (within_ != null) { - output.WriteRawTag(74); - output.WriteMessage(Within); + if (HasForKey) { + output.WriteRawTag(32); + output.WriteBool(ForKey); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -16948,37 +20418,21 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (const_ != null) { + if (HasFieldPath) { + output.WriteRawTag(10); + output.WriteString(FieldPath); + } + if (HasConstraintId) { output.WriteRawTag(18); - output.WriteMessage(Const); + output.WriteString(ConstraintId); } - if (lessThanCase_ == LessThanOneofCase.Lt) { + if (HasMessage) { output.WriteRawTag(26); - output.WriteMessage(Lt); - } - if (lessThanCase_ == LessThanOneofCase.Lte) { - output.WriteRawTag(34); - output.WriteMessage(Lte); + output.WriteString(Message); } - if (greaterThanCase_ == GreaterThanOneofCase.Gt) { - output.WriteRawTag(42); - output.WriteMessage(Gt); - } - if (greaterThanCase_ == GreaterThanOneofCase.Gte) { - output.WriteRawTag(50); - output.WriteMessage(Gte); - } - if (HasLtNow) { - output.WriteRawTag(56); - output.WriteBool(LtNow); - } - if (HasGtNow) { - output.WriteRawTag(64); - output.WriteBool(GtNow); - } - if (within_ != null) { - output.WriteRawTag(74); - output.WriteMessage(Within); + if (HasForKey) { + output.WriteRawTag(32); + output.WriteBool(ForKey); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -16990,30 +20444,18 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (const_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Const); - } - if (lessThanCase_ == LessThanOneofCase.Lt) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lt); - } - if (lessThanCase_ == LessThanOneofCase.Lte) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lte); + if (HasFieldPath) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(FieldPath); } - if (HasLtNow) { - size += 1 + 1; - } - if (greaterThanCase_ == GreaterThanOneofCase.Gt) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gt); + if (HasConstraintId) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ConstraintId); } - if (greaterThanCase_ == GreaterThanOneofCase.Gte) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gte); + if (HasMessage) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Message); } - if (HasGtNow) { + if (HasForKey) { size += 1 + 1; } - if (within_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Within); - } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -17022,58 +20464,22 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(TimestampRules other) { + public void MergeFrom(Violation other) { if (other == null) { return; } - if (other.const_ != null) { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Const.MergeFrom(other.Const); + if (other.HasFieldPath) { + FieldPath = other.FieldPath; } - if (other.within_ != null) { - if (within_ == null) { - Within = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - Within.MergeFrom(other.Within); + if (other.HasConstraintId) { + ConstraintId = other.ConstraintId; } - switch (other.LessThanCase) { - case LessThanOneofCase.Lt: - if (Lt == null) { - Lt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Lt.MergeFrom(other.Lt); - break; - case LessThanOneofCase.Lte: - if (Lte == null) { - Lte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Lte.MergeFrom(other.Lte); - break; - case LessThanOneofCase.LtNow: - LtNow = other.LtNow; - break; + if (other.HasMessage) { + Message = other.Message; } - - switch (other.GreaterThanCase) { - case GreaterThanOneofCase.Gt: - if (Gt == null) { - Gt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Gt.MergeFrom(other.Gt); - break; - case GreaterThanOneofCase.Gte: - if (Gte == null) { - Gte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Gte.MergeFrom(other.Gte); - break; - case GreaterThanOneofCase.GtNow: - GtNow = other.GtNow; - break; + if (other.HasForKey) { + ForKey = other.ForKey; } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -17093,62 +20499,20 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; - case 18: { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Const); - break; - } - case 26: { - global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - if (lessThanCase_ == LessThanOneofCase.Lt) { - subBuilder.MergeFrom(Lt); - } - input.ReadMessage(subBuilder); - Lt = subBuilder; - break; - } - case 34: { - global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - if (lessThanCase_ == LessThanOneofCase.Lte) { - subBuilder.MergeFrom(Lte); - } - input.ReadMessage(subBuilder); - Lte = subBuilder; - break; - } - case 42: { - global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - if (greaterThanCase_ == GreaterThanOneofCase.Gt) { - subBuilder.MergeFrom(Gt); - } - input.ReadMessage(subBuilder); - Gt = subBuilder; - break; - } - case 50: { - global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - if (greaterThanCase_ == GreaterThanOneofCase.Gte) { - subBuilder.MergeFrom(Gte); - } - input.ReadMessage(subBuilder); - Gte = subBuilder; + case 10: { + FieldPath = input.ReadString(); break; } - case 56: { - LtNow = input.ReadBool(); + case 18: { + ConstraintId = input.ReadString(); break; } - case 64: { - GtNow = input.ReadBool(); + case 26: { + Message = input.ReadString(); break; } - case 74: { - if (within_ == null) { - Within = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Within); + case 32: { + ForKey = input.ReadBool(); break; } } @@ -17170,62 +20534,20 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; - case 18: { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Const); - break; - } - case 26: { - global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - if (lessThanCase_ == LessThanOneofCase.Lt) { - subBuilder.MergeFrom(Lt); - } - input.ReadMessage(subBuilder); - Lt = subBuilder; - break; - } - case 34: { - global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - if (lessThanCase_ == LessThanOneofCase.Lte) { - subBuilder.MergeFrom(Lte); - } - input.ReadMessage(subBuilder); - Lte = subBuilder; - break; - } - case 42: { - global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - if (greaterThanCase_ == GreaterThanOneofCase.Gt) { - subBuilder.MergeFrom(Gt); - } - input.ReadMessage(subBuilder); - Gt = subBuilder; - break; - } - case 50: { - global::Google.Protobuf.WellKnownTypes.Timestamp subBuilder = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - if (greaterThanCase_ == GreaterThanOneofCase.Gte) { - subBuilder.MergeFrom(Gte); - } - input.ReadMessage(subBuilder); - Gte = subBuilder; + case 10: { + FieldPath = input.ReadString(); break; } - case 56: { - LtNow = input.ReadBool(); + case 18: { + ConstraintId = input.ReadString(); break; } - case 64: { - GtNow = input.ReadBool(); + case 26: { + Message = input.ReadString(); break; } - case 74: { - if (within_ == null) { - Within = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Within); + case 32: { + ForKey = input.ReadBool(); break; } } diff --git a/src/Sdk/Cerbos/Api/V1/Audit/Audit.g.cs b/src/Sdk/Cerbos/Api/V1/Audit/Audit.g.cs index 00eb91d..28e8595 100644 --- a/src/Sdk/Cerbos/Api/V1/Audit/Audit.g.cs +++ b/src/Sdk/Cerbos/Api/V1/Audit/Audit.g.cs @@ -35,41 +35,41 @@ static AuditReflection() { "YRIWCgZtZXRob2QYBSABKAlSBm1ldGhvZBIfCgtzdGF0dXNfY29kZRgGIAEo", "DVIKc3RhdHVzQ29kZRpYCg1NZXRhZGF0YUVudHJ5EhAKA2tleRgBIAEoCVID", "a2V5EjEKBXZhbHVlGAIgASgLMhsuY2VyYm9zLmF1ZGl0LnYxLk1ldGFWYWx1", - "ZXNSBXZhbHVlOgI4ASL2BwoQRGVjaXNpb25Mb2dFbnRyeRIXCgdjYWxsX2lk", + "ZXNSBXZhbHVlOgI4ASKCCAoQRGVjaXNpb25Mb2dFbnRyeRIXCgdjYWxsX2lk", "GAEgASgJUgZjYWxsSWQSOAoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnBy", "b3RvYnVmLlRpbWVzdGFtcFIJdGltZXN0YW1wEikKBHBlZXIYAyABKAsyFS5j", - "ZXJib3MuYXVkaXQudjEuUGVlclIEcGVlchI0CgZpbnB1dHMYBCADKAsyHC5j", - "ZXJib3MuZW5naW5lLnYxLkNoZWNrSW5wdXRSBmlucHV0cxI3CgdvdXRwdXRz", - "GAUgAygLMh0uY2VyYm9zLmVuZ2luZS52MS5DaGVja091dHB1dFIHb3V0cHV0", - "cxIUCgVlcnJvchgGIAEoCVIFZXJyb3ISWwoPY2hlY2tfcmVzb3VyY2VzGAcg", - "ASgLMjAuY2VyYm9zLmF1ZGl0LnYxLkRlY2lzaW9uTG9nRW50cnkuQ2hlY2tS", - "ZXNvdXJjZXNIAFIOY2hlY2tSZXNvdXJjZXMSWAoOcGxhbl9yZXNvdXJjZXMY", - "CCABKAsyLy5jZXJib3MuYXVkaXQudjEuRGVjaXNpb25Mb2dFbnRyeS5QbGFu", - "UmVzb3VyY2VzSABSDXBsYW5SZXNvdXJjZXMSSwoIbWV0YWRhdGEYDyADKAsy", - "Ly5jZXJib3MuYXVkaXQudjEuRGVjaXNpb25Mb2dFbnRyeS5NZXRhZGF0YUVu", - "dHJ5UghtZXRhZGF0YRI8CgthdWRpdF90cmFpbBgQIAEoCzIbLmNlcmJvcy5h", - "dWRpdC52MS5BdWRpdFRyYWlsUgphdWRpdFRyYWlsGpUBCg5DaGVja1Jlc291", - "cmNlcxI0CgZpbnB1dHMYASADKAsyHC5jZXJib3MuZW5naW5lLnYxLkNoZWNr", - "SW5wdXRSBmlucHV0cxI3CgdvdXRwdXRzGAIgAygLMh0uY2VyYm9zLmVuZ2lu", - "ZS52MS5DaGVja091dHB1dFIHb3V0cHV0cxIUCgVlcnJvchgDIAEoCVIFZXJy", - "b3IaoAEKDVBsYW5SZXNvdXJjZXMSOgoFaW5wdXQYASABKAsyJC5jZXJib3Mu", - "ZW5naW5lLnYxLlBsYW5SZXNvdXJjZXNJbnB1dFIFaW5wdXQSPQoGb3V0cHV0", - "GAIgASgLMiUuY2VyYm9zLmVuZ2luZS52MS5QbGFuUmVzb3VyY2VzT3V0cHV0", - "UgZvdXRwdXQSFAoFZXJyb3IYAyABKAlSBWVycm9yGlgKDU1ldGFkYXRhRW50", - "cnkSEAoDa2V5GAEgASgJUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5jZXJib3Mu", - "YXVkaXQudjEuTWV0YVZhbHVlc1IFdmFsdWU6AjgBQggKBm1ldGhvZCIkCgpN", - "ZXRhVmFsdWVzEhYKBnZhbHVlcxgBIAMoCVIGdmFsdWVzIoEBCgRQZWVyEhgK", - "B2FkZHJlc3MYASABKAlSB2FkZHJlc3MSGwoJYXV0aF9pbmZvGAIgASgJUghh", - "dXRoSW5mbxIdCgp1c2VyX2FnZW50GAMgASgJUgl1c2VyQWdlbnQSIwoNZm9y", - "d2FyZGVkX2ZvchgEIAEoCVIMZm9yd2FyZGVkRm9yItkBCgpBdWRpdFRyYWls", - "EmEKEmVmZmVjdGl2ZV9wb2xpY2llcxgBIAMoCzIyLmNlcmJvcy5hdWRpdC52", - "MS5BdWRpdFRyYWlsLkVmZmVjdGl2ZVBvbGljaWVzRW50cnlSEWVmZmVjdGl2", - "ZVBvbGljaWVzGmgKFkVmZmVjdGl2ZVBvbGljaWVzRW50cnkSEAoDa2V5GAEg", - "ASgJUgNrZXkSOAoFdmFsdWUYAiABKAsyIi5jZXJib3MucG9saWN5LnYxLlNv", - "dXJjZUF0dHJpYnV0ZXNSBXZhbHVlOgI4AUJrChdkZXYuY2VyYm9zLmFwaS52", - "MS5hdWRpdFo6Z2l0aHViLmNvbS9jZXJib3MvY2VyYm9zL2FwaS9nZW5wYi9j", - "ZXJib3MvYXVkaXQvdjE7YXVkaXR2MaoCE0NlcmJvcy5BcGkuVjEuQXVkaXRi", - "BnByb3RvMw==")); + "ZXJib3MuYXVkaXQudjEuUGVlclIEcGVlchI4CgZpbnB1dHMYBCADKAsyHC5j", + "ZXJib3MuZW5naW5lLnYxLkNoZWNrSW5wdXRCAhgBUgZpbnB1dHMSOwoHb3V0", + "cHV0cxgFIAMoCzIdLmNlcmJvcy5lbmdpbmUudjEuQ2hlY2tPdXRwdXRCAhgB", + "UgdvdXRwdXRzEhgKBWVycm9yGAYgASgJQgIYAVIFZXJyb3ISWwoPY2hlY2tf", + "cmVzb3VyY2VzGAcgASgLMjAuY2VyYm9zLmF1ZGl0LnYxLkRlY2lzaW9uTG9n", + "RW50cnkuQ2hlY2tSZXNvdXJjZXNIAFIOY2hlY2tSZXNvdXJjZXMSWAoOcGxh", + "bl9yZXNvdXJjZXMYCCABKAsyLy5jZXJib3MuYXVkaXQudjEuRGVjaXNpb25M", + "b2dFbnRyeS5QbGFuUmVzb3VyY2VzSABSDXBsYW5SZXNvdXJjZXMSSwoIbWV0", + "YWRhdGEYDyADKAsyLy5jZXJib3MuYXVkaXQudjEuRGVjaXNpb25Mb2dFbnRy", + "eS5NZXRhZGF0YUVudHJ5UghtZXRhZGF0YRI8CgthdWRpdF90cmFpbBgQIAEo", + "CzIbLmNlcmJvcy5hdWRpdC52MS5BdWRpdFRyYWlsUgphdWRpdFRyYWlsGpUB", + "Cg5DaGVja1Jlc291cmNlcxI0CgZpbnB1dHMYASADKAsyHC5jZXJib3MuZW5n", + "aW5lLnYxLkNoZWNrSW5wdXRSBmlucHV0cxI3CgdvdXRwdXRzGAIgAygLMh0u", + "Y2VyYm9zLmVuZ2luZS52MS5DaGVja091dHB1dFIHb3V0cHV0cxIUCgVlcnJv", + "chgDIAEoCVIFZXJyb3IaoAEKDVBsYW5SZXNvdXJjZXMSOgoFaW5wdXQYASAB", + "KAsyJC5jZXJib3MuZW5naW5lLnYxLlBsYW5SZXNvdXJjZXNJbnB1dFIFaW5w", + "dXQSPQoGb3V0cHV0GAIgASgLMiUuY2VyYm9zLmVuZ2luZS52MS5QbGFuUmVz", + "b3VyY2VzT3V0cHV0UgZvdXRwdXQSFAoFZXJyb3IYAyABKAlSBWVycm9yGlgK", + "DU1ldGFkYXRhRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSMQoFdmFsdWUYAiAB", + "KAsyGy5jZXJib3MuYXVkaXQudjEuTWV0YVZhbHVlc1IFdmFsdWU6AjgBQggK", + "Bm1ldGhvZCIkCgpNZXRhVmFsdWVzEhYKBnZhbHVlcxgBIAMoCVIGdmFsdWVz", + "IoEBCgRQZWVyEhgKB2FkZHJlc3MYASABKAlSB2FkZHJlc3MSGwoJYXV0aF9p", + "bmZvGAIgASgJUghhdXRoSW5mbxIdCgp1c2VyX2FnZW50GAMgASgJUgl1c2Vy", + "QWdlbnQSIwoNZm9yd2FyZGVkX2ZvchgEIAEoCVIMZm9yd2FyZGVkRm9yItkB", + "CgpBdWRpdFRyYWlsEmEKEmVmZmVjdGl2ZV9wb2xpY2llcxgBIAMoCzIyLmNl", + "cmJvcy5hdWRpdC52MS5BdWRpdFRyYWlsLkVmZmVjdGl2ZVBvbGljaWVzRW50", + "cnlSEWVmZmVjdGl2ZVBvbGljaWVzGmgKFkVmZmVjdGl2ZVBvbGljaWVzRW50", + "cnkSEAoDa2V5GAEgASgJUgNrZXkSOAoFdmFsdWUYAiABKAsyIi5jZXJib3Mu", + "cG9saWN5LnYxLlNvdXJjZUF0dHJpYnV0ZXNSBXZhbHVlOgI4AUJrChdkZXYu", + "Y2VyYm9zLmFwaS52MS5hdWRpdFo6Z2l0aHViLmNvbS9jZXJib3MvY2VyYm9z", + "L2FwaS9nZW5wYi9jZXJib3MvYXVkaXQvdjE7YXVkaXR2MaoCE0NlcmJvcy5B", + "cGkuVjEuQXVkaXRiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Cerbos.Api.V1.Engine.EngineReflection.Descriptor, global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { @@ -581,6 +581,7 @@ public string CallId { /// /// Deprecated. Use method.check_resources.inputs instead. /// + [global::System.ObsoleteAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public pbc::RepeatedField Inputs { @@ -595,6 +596,7 @@ public string CallId { /// /// Deprecated. Use method.check_resources.outputs instead. /// + [global::System.ObsoleteAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public pbc::RepeatedField Outputs { @@ -607,6 +609,7 @@ public string CallId { /// /// Deprecated. Use method.check_resources.error instead. /// + [global::System.ObsoleteAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public string Error { diff --git a/src/Sdk/Cerbos/Api/V1/Engine/Engine.g.cs b/src/Sdk/Cerbos/Api/V1/Engine/Engine.g.cs index f259836..194f237 100644 --- a/src/Sdk/Cerbos/Api/V1/Engine/Engine.g.cs +++ b/src/Sdk/Cerbos/Api/V1/Engine/Engine.g.cs @@ -30,188 +30,192 @@ static EngineReflection() { "cHJvdG8aJmdvb2dsZS9hcGkvZXhwci92MWFscGhhMS9jaGVja2VkLnByb3Rv", "Gh9nb29nbGUvYXBpL2ZpZWxkX2JlaGF2aW9yLnByb3RvGhxnb29nbGUvcHJv", "dG9idWYvc3RydWN0LnByb3RvGi5wcm90b2MtZ2VuLW9wZW5hcGl2Mi9vcHRp", - "b25zL2Fubm90YXRpb25zLnByb3RvIusIChJQbGFuUmVzb3VyY2VzSW5wdXQS", + "b25zL2Fubm90YXRpb25zLnByb3RvIugIChJQbGFuUmVzb3VyY2VzSW5wdXQS", "HQoKcmVxdWVzdF9pZBgBIAEoCVIJcmVxdWVzdElkEhYKBmFjdGlvbhgCIAEo", "CVIGYWN0aW9uEjkKCXByaW5jaXBhbBgDIAEoCzIbLmNlcmJvcy5lbmdpbmUu", "djEuUHJpbmNpcGFsUglwcmluY2lwYWwSSQoIcmVzb3VyY2UYBCABKAsyLS5j", "ZXJib3MuZW5naW5lLnYxLlBsYW5SZXNvdXJjZXNJbnB1dC5SZXNvdXJjZVII", "cmVzb3VyY2USNAoIYXV4X2RhdGEYBSABKAsyGS5jZXJib3MuZW5naW5lLnYx", "LkF1eERhdGFSB2F1eERhdGESIQoMaW5jbHVkZV9tZXRhGAYgASgIUgtpbmNs", - "dWRlTWV0YRq+BgoIUmVzb3VyY2USRQoEa2luZBgBIAEoCUIxkkEgMg5SZXNv", - "dXJjZSBraW5kLkoOImFsYnVtOm9iamVjdCLiQQECukgHcgIQAcgBAVIEa2lu", - "ZBKwAQoEYXR0chgCIAMoCzI3LmNlcmJvcy5lbmdpbmUudjEuUGxhblJlc291", - "cmNlc0lucHV0LlJlc291cmNlLkF0dHJFbnRyeUJjkkFgMl5LZXktdmFsdWUg", - "cGFpcnMgb2YgY29udGV4dHVhbCBkYXRhIGFib3V0IHRoZSByZXNvdXJjZSB0", - "aGF0IGFyZSBrbm93biBhdCBhIHRpbWUgb2YgdGhlIHJlcXVlc3QuUgRhdHRy", - "Et0BCg5wb2xpY3lfdmVyc2lvbhgDIAEoCUK1AZJBmQEyfFRoZSBwb2xpY3kg", - "dmVyc2lvbiB0byB1c2UgdG8gZXZhbHVhdGUgdGhpcyByZXF1ZXN0LiBJZiBu", - "b3Qgc3BlY2lmaWVkLCB3aWxsIGRlZmF1bHQgdG8gdGhlIHNlcnZlci1jb25m", - "aWd1cmVkIGRlZmF1bHQgdmVyc2lvbi5KCSJkZWZhdWx0IooBDV5bWzp3b3Jk", - "Ol1dKiTiQQEBukgRcg8yDV5bWzp3b3JkOl1dKiRSDXBvbGljeVZlcnNpb24S", - "hgIKBXNjb3BlGAQgASgJQu8BkkGxATJ9QSBkb3Qtc2VwYXJhdGVkIHNjb3Bl", - "IHRoYXQgZGVzY3JpYmVzIHRoZSBoaWVyYXJjaHkgdGhpcyByZXNvdXJjZSBi", - "ZWxvbmdzIHRvLiBUaGlzIGlzIHVzZWQgZm9yIGRldGVybWluaW5nIHBvbGlj", - "eSBpbmhlcml0YW5jZS6KAS9eKFtbOmFsbnVtOl1dW1s6d29yZDpdXC1dKihc", - "LltbOndvcmQ6XVwtXSopKikqJOJBAQG6SDNyMTIvXihbWzphbG51bTpdXVtb", - "OndvcmQ6XVwtXSooXC5bWzp3b3JkOl1cLV0qKSopKiRSBXNjb3BlGk8KCUF0", - "dHJFbnRyeRIQCgNrZXkYASABKAlSA2tleRIsCgV2YWx1ZRgCIAEoCzIWLmdv", - "b2dsZS5wcm90b2J1Zi5WYWx1ZVIFdmFsdWU6AjgBIqEEChBQbGFuUmVzb3Vy", - "Y2VzQXN0EkYKCmZpbHRlcl9hc3QYASABKAsyJy5jZXJib3MuZW5naW5lLnYx", - "LlBsYW5SZXNvdXJjZXNBc3QuTm9kZVIJZmlsdGVyQXN0GrsBCgROb2RlEmIK", - "EWxvZ2ljYWxfb3BlcmF0aW9uGAEgASgLMjMuY2VyYm9zLmVuZ2luZS52MS5Q", - "bGFuUmVzb3VyY2VzQXN0LkxvZ2ljYWxPcGVyYXRpb25IAFIQbG9naWNhbE9w", - "ZXJhdGlvbhJHCgpleHByZXNzaW9uGAIgASgLMiUuZ29vZ2xlLmFwaS5leHBy", - "LnYxYWxwaGExLkNoZWNrZWRFeHBySABSCmV4cHJlc3Npb25CBgoEbm9kZRqG", - "AgoQTG9naWNhbE9wZXJhdGlvbhJYCghvcGVyYXRvchgBIAEoDjI8LmNlcmJv", - "cy5lbmdpbmUudjEuUGxhblJlc291cmNlc0FzdC5Mb2dpY2FsT3BlcmF0aW9u", - "Lk9wZXJhdG9yUghvcGVyYXRvchI9CgVub2RlcxgCIAMoCzInLmNlcmJvcy5l", - "bmdpbmUudjEuUGxhblJlc291cmNlc0FzdC5Ob2RlUgVub2RlcyJZCghPcGVy", - "YXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEhAKDE9QRVJBVE9SX0FO", - "RBABEg8KC09QRVJBVE9SX09SEAISEAoMT1BFUkFUT1JfTk9UEAMipAYKE1Bs", - "YW5SZXNvdXJjZXNGaWx0ZXISrQEKBGtpbmQYASABKA4yKi5jZXJib3MuZW5n", - "aW5lLnYxLlBsYW5SZXNvdXJjZXNGaWx0ZXIuS2luZEJtkkFqMmhGaWx0ZXIg", - "a2luZC4gRGVmaW5lcyB3aGV0aGVyIHRoZSBnaXZlbiBhY3Rpb24gaXMgYWx3", - "YXlzIGFsbG93ZWQsIGFsd2F5cyBkZW5pZWQgb3IgYWxsb3dlZCBjb25kaXRp", - "b25hbGx5LlIEa2luZBKaAQoJY29uZGl0aW9uGAIgASgLMjguY2VyYm9zLmVu", - "Z2luZS52MS5QbGFuUmVzb3VyY2VzRmlsdGVyLkV4cHJlc3Npb24uT3BlcmFu", - "ZEJCkkE/Mj1GaWx0ZXIgY29uZGl0aW9uLiBPbmx5IHBvcHVsYXRlZCBpZiBr", - "aW5kIGlzIEtJTkRfQ09ORElUSU9OQUwuUgljb25kaXRpb24a2gIKCkV4cHJl", - "c3Npb24SKQoIb3BlcmF0b3IYASABKAlCDZJBCjIIT3BlcmF0b3JSCG9wZXJh", - "dG9yElQKCG9wZXJhbmRzGAIgAygLMjguY2VyYm9zLmVuZ2luZS52MS5QbGFu", - "UmVzb3VyY2VzRmlsdGVyLkV4cHJlc3Npb24uT3BlcmFuZFIIb3BlcmFuZHMa", - "swEKB09wZXJhbmQSLgoFdmFsdWUYASABKAsyFi5nb29nbGUucHJvdG9idWYu", - "VmFsdWVIAFIFdmFsdWUSUgoKZXhwcmVzc2lvbhgCIAEoCzIwLmNlcmJvcy5l", - "bmdpbmUudjEuUGxhblJlc291cmNlc0ZpbHRlci5FeHByZXNzaW9uSABSCmV4", - "cHJlc3Npb24SHAoIdmFyaWFibGUYAyABKAlIAFIIdmFyaWFibGVCBgoEbm9k", - "ZToVkkESChAyDkNFTCBleHByZXNzaW9uImMKBEtpbmQSFAoQS0lORF9VTlNQ", - "RUNJRklFRBAAEhcKE0tJTkRfQUxXQVlTX0FMTE9XRUQQARIWChJLSU5EX0FM", - "V0FZU19ERU5JRUQQAhIUChBLSU5EX0NPTkRJVElPTkFMEAMizwIKE1BsYW5S", - "ZXNvdXJjZXNPdXRwdXQSHQoKcmVxdWVzdF9pZBgBIAEoCVIJcmVxdWVzdElk", - "EhYKBmFjdGlvbhgCIAEoCVIGYWN0aW9uEhIKBGtpbmQYAyABKAlSBGtpbmQS", - "JQoOcG9saWN5X3ZlcnNpb24YBCABKAlSDXBvbGljeVZlcnNpb24SFAoFc2Nv", - "cGUYBSABKAlSBXNjb3BlEj0KBmZpbHRlchgGIAEoCzIlLmNlcmJvcy5lbmdp", - "bmUudjEuUGxhblJlc291cmNlc0ZpbHRlclIGZmlsdGVyEiEKDGZpbHRlcl9k", - "ZWJ1ZxgHIAEoCVILZmlsdGVyRGVidWcSTgoRdmFsaWRhdGlvbl9lcnJvcnMY", - "CCADKAsyIS5jZXJib3Muc2NoZW1hLnYxLlZhbGlkYXRpb25FcnJvclIQdmFs", - "aWRhdGlvbkVycm9ycyKaAgoKQ2hlY2tJbnB1dBIdCgpyZXF1ZXN0X2lkGAEg", - "ASgJUglyZXF1ZXN0SWQSQgoIcmVzb3VyY2UYAiABKAsyGi5jZXJib3MuZW5n", - "aW5lLnYxLlJlc291cmNlQgriQQECukgDyAEBUghyZXNvdXJjZRJFCglwcmlu", - "Y2lwYWwYAyABKAsyGy5jZXJib3MuZW5naW5lLnYxLlByaW5jaXBhbEIK4kEB", - "ArpIA8gBAVIJcHJpbmNpcGFsEiwKB2FjdGlvbnMYBCADKAlCEuJBAQK6SAuS", - "AQgYASIEcgIQAVIHYWN0aW9ucxI0CghhdXhfZGF0YRgFIAEoCzIZLmNlcmJv", - "cy5lbmdpbmUudjEuQXV4RGF0YVIHYXV4RGF0YSKsBAoLQ2hlY2tPdXRwdXQS", - "HQoKcmVxdWVzdF9pZBgBIAEoCVIJcmVxdWVzdElkEh8KC3Jlc291cmNlX2lk", - "GAIgASgJUgpyZXNvdXJjZUlkEkQKB2FjdGlvbnMYAyADKAsyKi5jZXJib3Mu", - "ZW5naW5lLnYxLkNoZWNrT3V0cHV0LkFjdGlvbnNFbnRyeVIHYWN0aW9ucxI2", - "ChdlZmZlY3RpdmVfZGVyaXZlZF9yb2xlcxgEIAMoCVIVZWZmZWN0aXZlRGVy", - "aXZlZFJvbGVzEk4KEXZhbGlkYXRpb25fZXJyb3JzGAUgAygLMiEuY2VyYm9z", - "LnNjaGVtYS52MS5WYWxpZGF0aW9uRXJyb3JSEHZhbGlkYXRpb25FcnJvcnMS", - "NwoHb3V0cHV0cxgGIAMoCzIdLmNlcmJvcy5lbmdpbmUudjEuT3V0cHV0RW50", - "cnlSB291dHB1dHMabgoMQWN0aW9uRWZmZWN0EjAKBmVmZmVjdBgBIAEoDjIY", - "LmNlcmJvcy5lZmZlY3QudjEuRWZmZWN0UgZlZmZlY3QSFgoGcG9saWN5GAIg", - "ASgJUgZwb2xpY3kSFAoFc2NvcGUYAyABKAlSBXNjb3BlGmYKDEFjdGlvbnNF", - "bnRyeRIQCgNrZXkYASABKAlSA2tleRJACgV2YWx1ZRgCIAEoCzIqLmNlcmJv", - "cy5lbmdpbmUudjEuQ2hlY2tPdXRwdXQuQWN0aW9uRWZmZWN0UgV2YWx1ZToC", - "OAEi6wEKC091dHB1dEVudHJ5EmUKA3NyYxgBIAEoCUJTkkFQMilSdWxlIHRo", - "YXQgbWF0Y2hlZCB0byBwcm9kdWNlIHRoaXMgb3V0cHV0LkojInJlc291cmNl", - "LmV4cGVuc2UudjEvYWNtZSNydWxlLTAwMSJSA3NyYxJ1CgN2YWwYAiABKAsy", - "Fi5nb29nbGUucHJvdG9idWYuVmFsdWVCS5JBSDI3RHluYW1pYyBvdXRwdXQs", - "IGRldGVybWluZWQgYnkgdXNlciBkZWZpbmVkIHJ1bGUgb3V0cHV0LkoNInNv", - "bWVfc3RyaW5nIlIDdmFsIswHCghSZXNvdXJjZRJfCgRraW5kGAEgASgJQkuS", - "QToyKU5hbWUgb2YgdGhlIHJlc291cmNlIGtpbmQgYmVpbmcgYWNjZXNzZWQu", - "Sg0iYWxidW06cGhvdG8i4kEBArpIB3ICEAHIAQFSBGtpbmQS3QEKDnBvbGlj", - "eV92ZXJzaW9uGAIgASgJQrUBkkGZATJ8VGhlIHBvbGljeSB2ZXJzaW9uIHRv", - "IHVzZSB0byBldmFsdWF0ZSB0aGlzIHJlcXVlc3QuIElmIG5vdCBzcGVjaWZp", - "ZWQsIHdpbGwgZGVmYXVsdCB0byB0aGUgc2VydmVyLWNvbmZpZ3VyZWQgZGVm", - "YXVsdCB2ZXJzaW9uLkoJImRlZmF1bHQiigENXltbOndvcmQ6XV0qJOJBAQG6", - "SBFyDzINXltbOndvcmQ6XV0qJFINcG9saWN5VmVyc2lvbhJHCgJpZBgDIAEo", - "CUI3kkEmMhtJRCBvZiB0aGUgcmVzb3VyY2UgaW5zdGFuY2VKByJYWDEyNSLi", - "QQECukgHcgIQAcgBAVICaWQSzgEKBGF0dHIYBCADKAsyJC5jZXJib3MuZW5n", - "aW5lLnYxLlJlc291cmNlLkF0dHJFbnRyeUKTAZJBfzJkS2F5LXZhbHVlIHBh", - "aXJzIG9mIGNvbnRleHR1YWwgZGF0YSBhYm91dCB0aGlzIHJlc291cmNlIHRo", - "YXQgc2hvdWxkIGJlIHVzZWQgZHVyaW5nIHBvbGljeSBldmFsdWF0aW9uLkoX", - "eyJvd25lciI6ICJidWdzX2J1bm55In26SA6aAQsiBHICEAEqA8gBAVIEYXR0", - "chKTAgoFc2NvcGUYBSABKAlC/AGSQb4BMn1BIGRvdC1zZXBhcmF0ZWQgc2Nv", - "cGUgdGhhdCBkZXNjcmliZXMgdGhlIGhpZXJhcmNoeSB0aGlzIHJlc291cmNl", - "IGJlbG9uZ3MgdG8uIFRoaXMgaXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgcG9s", - "aWN5IGluaGVyaXRhbmNlLkoLImFjbWUuY29ycCKKAS9eKFtbOmFsbnVtOl1d", - "W1s6d29yZDpdXC1dKihcLltbOndvcmQ6XVwtXSopKikqJOJBAQG6SDNyMTIv", + "dWRlTWV0YRq7BgoIUmVzb3VyY2USRAoEa2luZBgBIAEoCUIwkkEgMg5SZXNv", + "dXJjZSBraW5kLkoOImFsYnVtOm9iamVjdCLgQQK6SAdyAhAByAEBUgRraW5k", + "ErABCgRhdHRyGAIgAygLMjcuY2VyYm9zLmVuZ2luZS52MS5QbGFuUmVzb3Vy", + "Y2VzSW5wdXQuUmVzb3VyY2UuQXR0ckVudHJ5QmOSQWAyXktleS12YWx1ZSBw", + "YWlycyBvZiBjb250ZXh0dWFsIGRhdGEgYWJvdXQgdGhlIHJlc291cmNlIHRo", + "YXQgYXJlIGtub3duIGF0IGEgdGltZSBvZiB0aGUgcmVxdWVzdC5SBGF0dHIS", + "3AEKDnBvbGljeV92ZXJzaW9uGAMgASgJQrQBkkGZATJ8VGhlIHBvbGljeSB2", + "ZXJzaW9uIHRvIHVzZSB0byBldmFsdWF0ZSB0aGlzIHJlcXVlc3QuIElmIG5v", + "dCBzcGVjaWZpZWQsIHdpbGwgZGVmYXVsdCB0byB0aGUgc2VydmVyLWNvbmZp", + "Z3VyZWQgZGVmYXVsdCB2ZXJzaW9uLkoJImRlZmF1bHQiigENXltbOndvcmQ6", + "XV0qJOBBAbpIEXIPMg1eW1s6d29yZDpdXSokUg1wb2xpY3lWZXJzaW9uEoUC", + "CgVzY29wZRgEIAEoCULuAZJBsQEyfUEgZG90LXNlcGFyYXRlZCBzY29wZSB0", + "aGF0IGRlc2NyaWJlcyB0aGUgaGllcmFyY2h5IHRoaXMgcmVzb3VyY2UgYmVs", + "b25ncyB0by4gVGhpcyBpcyB1c2VkIGZvciBkZXRlcm1pbmluZyBwb2xpY3kg", + "aW5oZXJpdGFuY2UuigEvXihbWzphbG51bTpdXVtbOndvcmQ6XVwtXSooXC5b", + "Wzp3b3JkOl1cLV0qKSopKiTgQQG6SDNyMTIvXihbWzphbG51bTpdXVtbOndv", + "cmQ6XVwtXSooXC5bWzp3b3JkOl1cLV0qKSopKiRSBXNjb3BlGk8KCUF0dHJF", + "bnRyeRIQCgNrZXkYASABKAlSA2tleRIsCgV2YWx1ZRgCIAEoCzIWLmdvb2ds", + "ZS5wcm90b2J1Zi5WYWx1ZVIFdmFsdWU6AjgBIqEEChBQbGFuUmVzb3VyY2Vz", + "QXN0EkYKCmZpbHRlcl9hc3QYASABKAsyJy5jZXJib3MuZW5naW5lLnYxLlBs", + "YW5SZXNvdXJjZXNBc3QuTm9kZVIJZmlsdGVyQXN0GrsBCgROb2RlEmIKEWxv", + "Z2ljYWxfb3BlcmF0aW9uGAEgASgLMjMuY2VyYm9zLmVuZ2luZS52MS5QbGFu", + "UmVzb3VyY2VzQXN0LkxvZ2ljYWxPcGVyYXRpb25IAFIQbG9naWNhbE9wZXJh", + "dGlvbhJHCgpleHByZXNzaW9uGAIgASgLMiUuZ29vZ2xlLmFwaS5leHByLnYx", + "YWxwaGExLkNoZWNrZWRFeHBySABSCmV4cHJlc3Npb25CBgoEbm9kZRqGAgoQ", + "TG9naWNhbE9wZXJhdGlvbhJYCghvcGVyYXRvchgBIAEoDjI8LmNlcmJvcy5l", + "bmdpbmUudjEuUGxhblJlc291cmNlc0FzdC5Mb2dpY2FsT3BlcmF0aW9uLk9w", + "ZXJhdG9yUghvcGVyYXRvchI9CgVub2RlcxgCIAMoCzInLmNlcmJvcy5lbmdp", + "bmUudjEuUGxhblJlc291cmNlc0FzdC5Ob2RlUgVub2RlcyJZCghPcGVyYXRv", + "chIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEhAKDE9QRVJBVE9SX0FORBAB", + "Eg8KC09QRVJBVE9SX09SEAISEAoMT1BFUkFUT1JfTk9UEAMipAYKE1BsYW5S", + "ZXNvdXJjZXNGaWx0ZXISrQEKBGtpbmQYASABKA4yKi5jZXJib3MuZW5naW5l", + "LnYxLlBsYW5SZXNvdXJjZXNGaWx0ZXIuS2luZEJtkkFqMmhGaWx0ZXIga2lu", + "ZC4gRGVmaW5lcyB3aGV0aGVyIHRoZSBnaXZlbiBhY3Rpb24gaXMgYWx3YXlz", + "IGFsbG93ZWQsIGFsd2F5cyBkZW5pZWQgb3IgYWxsb3dlZCBjb25kaXRpb25h", + "bGx5LlIEa2luZBKaAQoJY29uZGl0aW9uGAIgASgLMjguY2VyYm9zLmVuZ2lu", + "ZS52MS5QbGFuUmVzb3VyY2VzRmlsdGVyLkV4cHJlc3Npb24uT3BlcmFuZEJC", + "kkE/Mj1GaWx0ZXIgY29uZGl0aW9uLiBPbmx5IHBvcHVsYXRlZCBpZiBraW5k", + "IGlzIEtJTkRfQ09ORElUSU9OQUwuUgljb25kaXRpb24a2gIKCkV4cHJlc3Np", + "b24SKQoIb3BlcmF0b3IYASABKAlCDZJBCjIIT3BlcmF0b3JSCG9wZXJhdG9y", + "ElQKCG9wZXJhbmRzGAIgAygLMjguY2VyYm9zLmVuZ2luZS52MS5QbGFuUmVz", + "b3VyY2VzRmlsdGVyLkV4cHJlc3Npb24uT3BlcmFuZFIIb3BlcmFuZHMaswEK", + "B09wZXJhbmQSLgoFdmFsdWUYASABKAsyFi5nb29nbGUucHJvdG9idWYuVmFs", + "dWVIAFIFdmFsdWUSUgoKZXhwcmVzc2lvbhgCIAEoCzIwLmNlcmJvcy5lbmdp", + "bmUudjEuUGxhblJlc291cmNlc0ZpbHRlci5FeHByZXNzaW9uSABSCmV4cHJl", + "c3Npb24SHAoIdmFyaWFibGUYAyABKAlIAFIIdmFyaWFibGVCBgoEbm9kZToV", + "kkESChAyDkNFTCBleHByZXNzaW9uImMKBEtpbmQSFAoQS0lORF9VTlNQRUNJ", + "RklFRBAAEhcKE0tJTkRfQUxXQVlTX0FMTE9XRUQQARIWChJLSU5EX0FMV0FZ", + "U19ERU5JRUQQAhIUChBLSU5EX0NPTkRJVElPTkFMEAMizwIKE1BsYW5SZXNv", + "dXJjZXNPdXRwdXQSHQoKcmVxdWVzdF9pZBgBIAEoCVIJcmVxdWVzdElkEhYK", + "BmFjdGlvbhgCIAEoCVIGYWN0aW9uEhIKBGtpbmQYAyABKAlSBGtpbmQSJQoO", + "cG9saWN5X3ZlcnNpb24YBCABKAlSDXBvbGljeVZlcnNpb24SFAoFc2NvcGUY", + "BSABKAlSBXNjb3BlEj0KBmZpbHRlchgGIAEoCzIlLmNlcmJvcy5lbmdpbmUu", + "djEuUGxhblJlc291cmNlc0ZpbHRlclIGZmlsdGVyEiEKDGZpbHRlcl9kZWJ1", + "ZxgHIAEoCVILZmlsdGVyRGVidWcSTgoRdmFsaWRhdGlvbl9lcnJvcnMYCCAD", + "KAsyIS5jZXJib3Muc2NoZW1hLnYxLlZhbGlkYXRpb25FcnJvclIQdmFsaWRh", + "dGlvbkVycm9ycyKXAgoKQ2hlY2tJbnB1dBIdCgpyZXF1ZXN0X2lkGAEgASgJ", + "UglyZXF1ZXN0SWQSQQoIcmVzb3VyY2UYAiABKAsyGi5jZXJib3MuZW5naW5l", + "LnYxLlJlc291cmNlQgngQQK6SAPIAQFSCHJlc291cmNlEkQKCXByaW5jaXBh", + "bBgDIAEoCzIbLmNlcmJvcy5lbmdpbmUudjEuUHJpbmNpcGFsQgngQQK6SAPI", + "AQFSCXByaW5jaXBhbBIrCgdhY3Rpb25zGAQgAygJQhHgQQK6SAuSAQgYASIE", + "cgIQAVIHYWN0aW9ucxI0CghhdXhfZGF0YRgFIAEoCzIZLmNlcmJvcy5lbmdp", + "bmUudjEuQXV4RGF0YVIHYXV4RGF0YSKsBAoLQ2hlY2tPdXRwdXQSHQoKcmVx", + "dWVzdF9pZBgBIAEoCVIJcmVxdWVzdElkEh8KC3Jlc291cmNlX2lkGAIgASgJ", + "UgpyZXNvdXJjZUlkEkQKB2FjdGlvbnMYAyADKAsyKi5jZXJib3MuZW5naW5l", + "LnYxLkNoZWNrT3V0cHV0LkFjdGlvbnNFbnRyeVIHYWN0aW9ucxI2ChdlZmZl", + "Y3RpdmVfZGVyaXZlZF9yb2xlcxgEIAMoCVIVZWZmZWN0aXZlRGVyaXZlZFJv", + "bGVzEk4KEXZhbGlkYXRpb25fZXJyb3JzGAUgAygLMiEuY2VyYm9zLnNjaGVt", + "YS52MS5WYWxpZGF0aW9uRXJyb3JSEHZhbGlkYXRpb25FcnJvcnMSNwoHb3V0", + "cHV0cxgGIAMoCzIdLmNlcmJvcy5lbmdpbmUudjEuT3V0cHV0RW50cnlSB291", + "dHB1dHMabgoMQWN0aW9uRWZmZWN0EjAKBmVmZmVjdBgBIAEoDjIYLmNlcmJv", + "cy5lZmZlY3QudjEuRWZmZWN0UgZlZmZlY3QSFgoGcG9saWN5GAIgASgJUgZw", + "b2xpY3kSFAoFc2NvcGUYAyABKAlSBXNjb3BlGmYKDEFjdGlvbnNFbnRyeRIQ", + "CgNrZXkYASABKAlSA2tleRJACgV2YWx1ZRgCIAEoCzIqLmNlcmJvcy5lbmdp", + "bmUudjEuQ2hlY2tPdXRwdXQuQWN0aW9uRWZmZWN0UgV2YWx1ZToCOAEi6wEK", + "C091dHB1dEVudHJ5EmUKA3NyYxgBIAEoCUJTkkFQMilSdWxlIHRoYXQgbWF0", + "Y2hlZCB0byBwcm9kdWNlIHRoaXMgb3V0cHV0LkojInJlc291cmNlLmV4cGVu", + "c2UudjEvYWNtZSNydWxlLTAwMSJSA3NyYxJ1CgN2YWwYAiABKAsyFi5nb29n", + "bGUucHJvdG9idWYuVmFsdWVCS5JBSDI3RHluYW1pYyBvdXRwdXQsIGRldGVy", + "bWluZWQgYnkgdXNlciBkZWZpbmVkIHJ1bGUgb3V0cHV0LkoNInNvbWVfc3Ry", + "aW5nIlIDdmFsIsgHCghSZXNvdXJjZRJeCgRraW5kGAEgASgJQkqSQToyKU5h", + "bWUgb2YgdGhlIHJlc291cmNlIGtpbmQgYmVpbmcgYWNjZXNzZWQuSg0iYWxi", + "dW06cGhvdG8i4EECukgHcgIQAcgBAVIEa2luZBLcAQoOcG9saWN5X3ZlcnNp", + "b24YAiABKAlCtAGSQZkBMnxUaGUgcG9saWN5IHZlcnNpb24gdG8gdXNlIHRv", + "IGV2YWx1YXRlIHRoaXMgcmVxdWVzdC4gSWYgbm90IHNwZWNpZmllZCwgd2ls", + "bCBkZWZhdWx0IHRvIHRoZSBzZXJ2ZXItY29uZmlndXJlZCBkZWZhdWx0IHZl", + "cnNpb24uSgkiZGVmYXVsdCKKAQ1eW1s6d29yZDpdXSok4EEBukgRcg8yDV5b", + "Wzp3b3JkOl1dKiRSDXBvbGljeVZlcnNpb24SRgoCaWQYAyABKAlCNpJBJjIb", + "SUQgb2YgdGhlIHJlc291cmNlIGluc3RhbmNlSgciWFgxMjUi4EECukgHcgIQ", + "AcgBAVICaWQSzgEKBGF0dHIYBCADKAsyJC5jZXJib3MuZW5naW5lLnYxLlJl", + "c291cmNlLkF0dHJFbnRyeUKTAZJBfzJkS2F5LXZhbHVlIHBhaXJzIG9mIGNv", + "bnRleHR1YWwgZGF0YSBhYm91dCB0aGlzIHJlc291cmNlIHRoYXQgc2hvdWxk", + "IGJlIHVzZWQgZHVyaW5nIHBvbGljeSBldmFsdWF0aW9uLkoXeyJvd25lciI6", + "ICJidWdzX2J1bm55In26SA6aAQsiBHICEAEqA8gBAVIEYXR0chKSAgoFc2Nv", + "cGUYBSABKAlC+wGSQb4BMn1BIGRvdC1zZXBhcmF0ZWQgc2NvcGUgdGhhdCBk", + "ZXNjcmliZXMgdGhlIGhpZXJhcmNoeSB0aGlzIHJlc291cmNlIGJlbG9uZ3Mg", + "dG8uIFRoaXMgaXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgcG9saWN5IGluaGVy", + "aXRhbmNlLkoLImFjbWUuY29ycCKKAS9eKFtbOmFsbnVtOl1dW1s6d29yZDpd", + "XC1dKihcLltbOndvcmQ6XVwtXSopKikqJOBBAbpIM3IxMi9eKFtbOmFsbnVt", + "Ol1dW1s6d29yZDpdXC1dKihcLltbOndvcmQ6XVwtXSopKikqJFIFc2NvcGUa", + "TwoJQXR0ckVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgL", + "MhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEizAgKCVByaW5j", + "aXBhbBJDCgJpZBgBIAEoCUIzkkEjMhNJRCBvZiB0aGUgcHJpbmNpcGFsSgwi", + "YnVnc19idW5ueSLgQQK6SAdyAhAByAEBUgJpZBLcAQoOcG9saWN5X3ZlcnNp", + "b24YAiABKAlCtAGSQZkBMnxUaGUgcG9saWN5IHZlcnNpb24gdG8gdXNlIHRv", + "IGV2YWx1YXRlIHRoaXMgcmVxdWVzdC4gSWYgbm90IHNwZWNpZmllZCwgd2ls", + "bCBkZWZhdWx0IHRvIHRoZSBzZXJ2ZXItY29uZmlndXJlZCBkZWZhdWx0IHZl", + "cnNpb24uSgkiZGVmYXVsdCKKAQ1eW1s6d29yZDpdXSok4EEBukgRcg8yDV5b", + "Wzp3b3JkOl1dKiRSDXBvbGljeVZlcnNpb24ShwEKBXJvbGVzGAMgAygJQnGS", + "QVgyRlJvbGVzIGFzc2lnbmVkIHRvIHRoaXMgcHJpbmNpcGFsIGZyb20geW91", + "ciBpZGVudGl0eSBtYW5hZ2VtZW50IHN5c3RlbS5KCFsidXNlciJdqAEBsAEB", + "4EECukgQkgEKCAEYASIEcgIQAcgBAVIFcm9sZXMSzgEKBGF0dHIYBCADKAsy", + "JS5jZXJib3MuZW5naW5lLnYxLlByaW5jaXBhbC5BdHRyRW50cnlCkgGSQX4y", + "ZUtleS12YWx1ZSBwYWlycyBvZiBjb250ZXh0dWFsIGRhdGEgYWJvdXQgdGhp", + "cyBwcmluY2lwYWwgdGhhdCBzaG91bGQgYmUgdXNlZCBkdXJpbmcgcG9saWN5", + "IGV2YWx1YXRpb24uShV7ImJldGFfdGVzdGVyIjogdHJ1ZX26SA6aAQsiBHIC", + "EAEqA8gBAVIEYXR0chKTAgoFc2NvcGUYBSABKAlC/AGSQb8BMn5BIGRvdC1z", + "ZXBhcmF0ZWQgc2NvcGUgdGhhdCBkZXNjcmliZXMgdGhlIGhpZXJhcmNoeSB0", + "aGlzIHByaW5jaXBhbCBiZWxvbmdzIHRvLiBUaGlzIGlzIHVzZWQgZm9yIGRl", + "dGVybWluaW5nIHBvbGljeSBpbmhlcml0YW5jZS5KCyJhY21lLmNvcnAiigEv", "XihbWzphbG51bTpdXVtbOndvcmQ6XVwtXSooXC5bWzp3b3JkOl1cLV0qKSop", - "KiRSBXNjb3BlGk8KCUF0dHJFbnRyeRIQCgNrZXkYASABKAlSA2tleRIsCgV2", - "YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIFdmFsdWU6AjgB", - "ItAICglQcmluY2lwYWwSRAoCaWQYASABKAlCNJJBIzITSUQgb2YgdGhlIHBy", - "aW5jaXBhbEoMImJ1Z3NfYnVubnki4kEBArpIB3ICEAHIAQFSAmlkEt0BCg5w", - "b2xpY3lfdmVyc2lvbhgCIAEoCUK1AZJBmQEyfFRoZSBwb2xpY3kgdmVyc2lv", - "biB0byB1c2UgdG8gZXZhbHVhdGUgdGhpcyByZXF1ZXN0LiBJZiBub3Qgc3Bl", - "Y2lmaWVkLCB3aWxsIGRlZmF1bHQgdG8gdGhlIHNlcnZlci1jb25maWd1cmVk", - "IGRlZmF1bHQgdmVyc2lvbi5KCSJkZWZhdWx0IooBDV5bWzp3b3JkOl1dKiTi", - "QQEBukgRcg8yDV5bWzp3b3JkOl1dKiRSDXBvbGljeVZlcnNpb24SiAEKBXJv", - "bGVzGAMgAygJQnKSQVgyRlJvbGVzIGFzc2lnbmVkIHRvIHRoaXMgcHJpbmNp", - "cGFsIGZyb20geW91ciBpZGVudGl0eSBtYW5hZ2VtZW50IHN5c3RlbS5KCFsi", - "dXNlciJdqAEBsAEB4kEBArpIEJIBCggBGAEiBHICEAHIAQFSBXJvbGVzEs4B", - "CgRhdHRyGAQgAygLMiUuY2VyYm9zLmVuZ2luZS52MS5QcmluY2lwYWwuQXR0", - "ckVudHJ5QpIBkkF+MmVLZXktdmFsdWUgcGFpcnMgb2YgY29udGV4dHVhbCBk", - "YXRhIGFib3V0IHRoaXMgcHJpbmNpcGFsIHRoYXQgc2hvdWxkIGJlIHVzZWQg", - "ZHVyaW5nIHBvbGljeSBldmFsdWF0aW9uLkoVeyJiZXRhX3Rlc3RlciI6IHRy", - "dWV9ukgOmgELIgRyAhABKgPIAQFSBGF0dHISlAIKBXNjb3BlGAUgASgJQv0B", - "kkG/ATJ+QSBkb3Qtc2VwYXJhdGVkIHNjb3BlIHRoYXQgZGVzY3JpYmVzIHRo", - "ZSBoaWVyYXJjaHkgdGhpcyBwcmluY2lwYWwgYmVsb25ncyB0by4gVGhpcyBp", - "cyB1c2VkIGZvciBkZXRlcm1pbmluZyBwb2xpY3kgaW5oZXJpdGFuY2UuSgsi", - "YWNtZS5jb3JwIooBL14oW1s6YWxudW06XV1bWzp3b3JkOl1cLV0qKFwuW1s6", - "d29yZDpdXC1dKikqKSok4kEBAbpIM3IxMi9eKFtbOmFsbnVtOl1dW1s6d29y", - "ZDpdXC1dKihcLltbOndvcmQ6XVwtXSopKikqJFIFc2NvcGUaTwoJQXR0ckVu", - "dHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xl", - "LnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAE6WZJBVgpUMlJBIHBlcnNvbiBv", - "ciBhcHBsaWNhdGlvbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gdGhlIGFjdGlv", - "bnMgb24gdGhlIHNldCBvZiByZXNvdXJjZXMuIrEBCgdBdXhEYXRhEjQKA2p3", - "dBgBIAMoCzIiLmNlcmJvcy5lbmdpbmUudjEuQXV4RGF0YS5Kd3RFbnRyeVID", - "and0Gk4KCEp3dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIg", - "ASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAE6IJJBHQob", - "MhlTdHJ1Y3R1cmVkIGF1eGlsaWFyeSBkYXRhIpMJCgVUcmFjZRJBCgpjb21w", - "b25lbnRzGAEgAygLMiEuY2VyYm9zLmVuZ2luZS52MS5UcmFjZS5Db21wb25l", - "bnRSCmNvbXBvbmVudHMSMwoFZXZlbnQYAiABKAsyHS5jZXJib3MuZW5naW5l", - "LnYxLlRyYWNlLkV2ZW50UgVldmVudBrrBQoJQ29tcG9uZW50EjoKBGtpbmQY", - "ASABKA4yJi5jZXJib3MuZW5naW5lLnYxLlRyYWNlLkNvbXBvbmVudC5LaW5k", - "UgRraW5kEhgKBmFjdGlvbhgCIAEoCUgAUgZhY3Rpb24SIwoMZGVyaXZlZF9y", - "b2xlGAMgASgJSABSC2Rlcml2ZWRSb2xlEhQKBGV4cHIYBCABKAlIAFIEZXhw", - "chIWCgVpbmRleBgFIAEoDUgAUgVpbmRleBIYCgZwb2xpY3kYBiABKAlIAFIG", - "cG9saWN5EhwKCHJlc291cmNlGAcgASgJSABSCHJlc291cmNlEhQKBHJ1bGUY", - "CCABKAlIAFIEcnVsZRIWCgVzY29wZRgJIAEoCUgAUgVzY29wZRJICgh2YXJp", - "YWJsZRgKIAEoCzIqLmNlcmJvcy5lbmdpbmUudjEuVHJhY2UuQ29tcG9uZW50", - "LlZhcmlhYmxlSABSCHZhcmlhYmxlEhgKBm91dHB1dBgLIAEoCUgAUgZvdXRw", - "dXQaMgoIVmFyaWFibGUSEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRleHByGAIg", - "ASgJUgRleHByIqsCCgRLaW5kEhQKEEtJTkRfVU5TUEVDSUZJRUQQABIPCgtL", - "SU5EX0FDVElPThABEhYKEktJTkRfQ09ORElUSU9OX0FMTBACEhYKEktJTkRf", - "Q09ORElUSU9OX0FOWRADEhcKE0tJTkRfQ09ORElUSU9OX05PTkUQBBISCg5L", - "SU5EX0NPTkRJVElPThAFEhUKEUtJTkRfREVSSVZFRF9ST0xFEAYSDQoJS0lO", - "RF9FWFBSEAcSDwoLS0lORF9QT0xJQ1kQCBIRCg1LSU5EX1JFU09VUkNFEAkS", - "DQoJS0lORF9SVUxFEAoSDgoKS0lORF9TQ09QRRALEhEKDUtJTkRfVkFSSUFC", - "TEUQDBISCg5LSU5EX1ZBUklBQkxFUxANEg8KC0tJTkRfT1VUUFVUEA5CCQoH", - "ZGV0YWlscxqjAgoFRXZlbnQSPAoGc3RhdHVzGAEgASgOMiQuY2VyYm9zLmVu", - "Z2luZS52MS5UcmFjZS5FdmVudC5TdGF0dXNSBnN0YXR1cxIwCgZlZmZlY3QY", - "AiABKA4yGC5jZXJib3MuZWZmZWN0LnYxLkVmZmVjdFIGZWZmZWN0EhQKBWVy", - "cm9yGAMgASgJUgVlcnJvchIYCgdtZXNzYWdlGAQgASgJUgdtZXNzYWdlEi4K", - "BnJlc3VsdBgFIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIGcmVzdWx0", - "IkoKBlN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQABIUChBTVEFUVVNf", - "QUNUSVZBVEVEEAESEgoOU1RBVFVTX1NLSVBQRUQQAiLOBAoHUmVxdWVzdBJB", - "CglwcmluY2lwYWwYASABKAsyIy5jZXJib3MuZW5naW5lLnYxLlJlcXVlc3Qu", - "UHJpbmNpcGFsUglwcmluY2lwYWwSPgoIcmVzb3VyY2UYAiABKAsyIi5jZXJi", - "b3MuZW5naW5lLnYxLlJlcXVlc3QuUmVzb3VyY2VSCHJlc291cmNlEjQKCGF1", - "eF9kYXRhGAMgASgLMhkuY2VyYm9zLmVuZ2luZS52MS5BdXhEYXRhUgdhdXhE", - "YXRhGsUBCglQcmluY2lwYWwSDgoCaWQYASABKAlSAmlkEhQKBXJvbGVzGAIg", - "AygJUgVyb2xlcxJBCgRhdHRyGAMgAygLMi0uY2VyYm9zLmVuZ2luZS52MS5S", - "ZXF1ZXN0LlByaW5jaXBhbC5BdHRyRW50cnlSBGF0dHIaTwoJQXR0ckVudHJ5", - "EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnBy", - "b3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEawQEKCFJlc291cmNlEhIKBGtpbmQY", - "ASABKAlSBGtpbmQSDgoCaWQYAiABKAlSAmlkEkAKBGF0dHIYAyADKAsyLC5j", - "ZXJib3MuZW5naW5lLnYxLlJlcXVlc3QuUmVzb3VyY2UuQXR0ckVudHJ5UgRh", - "dHRyGk8KCUF0dHJFbnRyeRIQCgNrZXkYASABKAlSA2tleRIsCgV2YWx1ZRgC", - "IAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIFdmFsdWU6AjgBIkEKB1J1", - "bnRpbWUSNgoXZWZmZWN0aXZlX2Rlcml2ZWRfcm9sZXMYASADKAlSFWVmZmVj", - "dGl2ZURlcml2ZWRSb2xlc0JvChhkZXYuY2VyYm9zLmFwaS52MS5lbmdpbmVa", - "PGdpdGh1Yi5jb20vY2VyYm9zL2NlcmJvcy9hcGkvZ2VucGIvY2VyYm9zL2Vu", - "Z2luZS92MTtlbmdpbmV2MaoCFENlcmJvcy5BcGkuVjEuRW5naW5lYgZwcm90", - "bzM=")); + "KiTgQQG6SDNyMTIvXihbWzphbG51bTpdXVtbOndvcmQ6XVwtXSooXC5bWzp3", + "b3JkOl1cLV0qKSopKiRSBXNjb3BlGk8KCUF0dHJFbnRyeRIQCgNrZXkYASAB", + "KAlSA2tleRIsCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1", + "ZVIFdmFsdWU6AjgBOlmSQVYKVDJSQSBwZXJzb24gb3IgYXBwbGljYXRpb24g", + "YXR0ZW1wdGluZyB0byBwZXJmb3JtIHRoZSBhY3Rpb25zIG9uIHRoZSBzZXQg", + "b2YgcmVzb3VyY2VzLiKxAQoHQXV4RGF0YRI0CgNqd3QYASADKAsyIi5jZXJi", + "b3MuZW5naW5lLnYxLkF1eERhdGEuSnd0RW50cnlSA2p3dBpOCghKd3RFbnRy", + "eRIQCgNrZXkYASABKAlSA2tleRIsCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5w", + "cm90b2J1Zi5WYWx1ZVIFdmFsdWU6AjgBOiCSQR0KGzIZU3RydWN0dXJlZCBh", + "dXhpbGlhcnkgZGF0YSLdCQoFVHJhY2USQQoKY29tcG9uZW50cxgBIAMoCzIh", + "LmNlcmJvcy5lbmdpbmUudjEuVHJhY2UuQ29tcG9uZW50Ugpjb21wb25lbnRz", + "EjMKBWV2ZW50GAIgASgLMh0uY2VyYm9zLmVuZ2luZS52MS5UcmFjZS5FdmVu", + "dFIFZXZlbnQatQYKCUNvbXBvbmVudBI6CgRraW5kGAEgASgOMiYuY2VyYm9z", + "LmVuZ2luZS52MS5UcmFjZS5Db21wb25lbnQuS2luZFIEa2luZBIYCgZhY3Rp", + "b24YAiABKAlIAFIGYWN0aW9uEiMKDGRlcml2ZWRfcm9sZRgDIAEoCUgAUgtk", + "ZXJpdmVkUm9sZRIUCgRleHByGAQgASgJSABSBGV4cHISFgoFaW5kZXgYBSAB", + "KA1IAFIFaW5kZXgSGAoGcG9saWN5GAYgASgJSABSBnBvbGljeRIcCghyZXNv", + "dXJjZRgHIAEoCUgAUghyZXNvdXJjZRIUCgRydWxlGAggASgJSABSBHJ1bGUS", + "FgoFc2NvcGUYCSABKAlIAFIFc2NvcGUSSAoIdmFyaWFibGUYCiABKAsyKi5j", + "ZXJib3MuZW5naW5lLnYxLlRyYWNlLkNvbXBvbmVudC5WYXJpYWJsZUgAUgh2", + "YXJpYWJsZRIYCgZvdXRwdXQYCyABKAlIAFIGb3V0cHV0EiwKEXJvbGVfcG9s", + "aWN5X3Njb3BlGAwgASgJSABSD3JvbGVQb2xpY3lTY29wZRoyCghWYXJpYWJs", + "ZRISCgRuYW1lGAEgASgJUgRuYW1lEhIKBGV4cHIYAiABKAlSBGV4cHIixwIK", + "BEtpbmQSFAoQS0lORF9VTlNQRUNJRklFRBAAEg8KC0tJTkRfQUNUSU9OEAES", + "FgoSS0lORF9DT05ESVRJT05fQUxMEAISFgoSS0lORF9DT05ESVRJT05fQU5Z", + "EAMSFwoTS0lORF9DT05ESVRJT05fTk9ORRAEEhIKDktJTkRfQ09ORElUSU9O", + "EAUSFQoRS0lORF9ERVJJVkVEX1JPTEUQBhINCglLSU5EX0VYUFIQBxIPCgtL", + "SU5EX1BPTElDWRAIEhEKDUtJTkRfUkVTT1VSQ0UQCRINCglLSU5EX1JVTEUQ", + "ChIOCgpLSU5EX1NDT1BFEAsSEQoNS0lORF9WQVJJQUJMRRAMEhIKDktJTkRf", + "VkFSSUFCTEVTEA0SDwoLS0lORF9PVVRQVVQQDhIaChZLSU5EX1JPTEVfUE9M", + "SUNZX1NDT1BFEA9CCQoHZGV0YWlscxqjAgoFRXZlbnQSPAoGc3RhdHVzGAEg", + "ASgOMiQuY2VyYm9zLmVuZ2luZS52MS5UcmFjZS5FdmVudC5TdGF0dXNSBnN0", + "YXR1cxIwCgZlZmZlY3QYAiABKA4yGC5jZXJib3MuZWZmZWN0LnYxLkVmZmVj", + "dFIGZWZmZWN0EhQKBWVycm9yGAMgASgJUgVlcnJvchIYCgdtZXNzYWdlGAQg", + "ASgJUgdtZXNzYWdlEi4KBnJlc3VsdBgFIAEoCzIWLmdvb2dsZS5wcm90b2J1", + "Zi5WYWx1ZVIGcmVzdWx0IkoKBlN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJ", + "RUQQABIUChBTVEFUVVNfQUNUSVZBVEVEEAESEgoOU1RBVFVTX1NLSVBQRUQQ", + "AiLIBQoHUmVxdWVzdBJBCglwcmluY2lwYWwYASABKAsyIy5jZXJib3MuZW5n", + "aW5lLnYxLlJlcXVlc3QuUHJpbmNpcGFsUglwcmluY2lwYWwSPgoIcmVzb3Vy", + "Y2UYAiABKAsyIi5jZXJib3MuZW5naW5lLnYxLlJlcXVlc3QuUmVzb3VyY2VS", + "CHJlc291cmNlEjQKCGF1eF9kYXRhGAMgASgLMhkuY2VyYm9zLmVuZ2luZS52", + "MS5BdXhEYXRhUgdhdXhEYXRhGoICCglQcmluY2lwYWwSDgoCaWQYASABKAlS", + "AmlkEhQKBXJvbGVzGAIgAygJUgVyb2xlcxJBCgRhdHRyGAMgAygLMi0uY2Vy", + "Ym9zLmVuZ2luZS52MS5SZXF1ZXN0LlByaW5jaXBhbC5BdHRyRW50cnlSBGF0", + "dHISJQoOcG9saWN5X3ZlcnNpb24YBCABKAlSDXBvbGljeVZlcnNpb24SFAoF", + "c2NvcGUYBSABKAlSBXNjb3BlGk8KCUF0dHJFbnRyeRIQCgNrZXkYASABKAlS", + "A2tleRIsCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIF", + "dmFsdWU6AjgBGv4BCghSZXNvdXJjZRISCgRraW5kGAEgASgJUgRraW5kEg4K", + "AmlkGAIgASgJUgJpZBJACgRhdHRyGAMgAygLMiwuY2VyYm9zLmVuZ2luZS52", + "MS5SZXF1ZXN0LlJlc291cmNlLkF0dHJFbnRyeVIEYXR0chIlCg5wb2xpY3lf", + "dmVyc2lvbhgEIAEoCVINcG9saWN5VmVyc2lvbhIUCgVzY29wZRgFIAEoCVIF", + "c2NvcGUaTwoJQXR0ckVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVl", + "GAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEiQQoH", + "UnVudGltZRI2ChdlZmZlY3RpdmVfZGVyaXZlZF9yb2xlcxgBIAMoCVIVZWZm", + "ZWN0aXZlRGVyaXZlZFJvbGVzQm8KGGRldi5jZXJib3MuYXBpLnYxLmVuZ2lu", + "ZVo8Z2l0aHViLmNvbS9jZXJib3MvY2VyYm9zL2FwaS9nZW5wYi9jZXJib3Mv", + "ZW5naW5lL3YxO2VuZ2luZXYxqgIUQ2VyYm9zLkFwaS5WMS5FbmdpbmViBnBy", + "b3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Buf.Validate.ValidateReflection.Descriptor, global::Cerbos.Api.V1.Effect.EffectReflection.Descriptor, global::Cerbos.Api.V1.Schema.SchemaReflection.Descriptor, global::Google.Api.Expr.V1Alpha1.CheckedReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Grpc.Gateway.ProtocGenOpenapiv2.Options.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { @@ -227,10 +231,10 @@ static EngineReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Resource), global::Cerbos.Api.V1.Engine.Resource.Parser, new[]{ "Kind", "PolicyVersion", "Id", "Attr", "Scope" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Principal), global::Cerbos.Api.V1.Engine.Principal.Parser, new[]{ "Id", "PolicyVersion", "Roles", "Attr", "Scope" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.AuxData), global::Cerbos.Api.V1.Engine.AuxData.Parser, new[]{ "Jwt" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Trace), global::Cerbos.Api.V1.Engine.Trace.Parser, new[]{ "Components", "Event" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Trace.Types.Component), global::Cerbos.Api.V1.Engine.Trace.Types.Component.Parser, new[]{ "Kind", "Action", "DerivedRole", "Expr", "Index", "Policy", "Resource", "Rule", "Scope", "Variable", "Output" }, new[]{ "Details" }, new[]{ typeof(global::Cerbos.Api.V1.Engine.Trace.Types.Component.Types.Kind) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Trace.Types.Component.Types.Variable), global::Cerbos.Api.V1.Engine.Trace.Types.Component.Types.Variable.Parser, new[]{ "Name", "Expr" }, null, null, null, null)}), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Trace), global::Cerbos.Api.V1.Engine.Trace.Parser, new[]{ "Components", "Event" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Trace.Types.Component), global::Cerbos.Api.V1.Engine.Trace.Types.Component.Parser, new[]{ "Kind", "Action", "DerivedRole", "Expr", "Index", "Policy", "Resource", "Rule", "Scope", "Variable", "Output", "RolePolicyScope" }, new[]{ "Details" }, new[]{ typeof(global::Cerbos.Api.V1.Engine.Trace.Types.Component.Types.Kind) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Trace.Types.Component.Types.Variable), global::Cerbos.Api.V1.Engine.Trace.Types.Component.Types.Variable.Parser, new[]{ "Name", "Expr" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Trace.Types.Event), global::Cerbos.Api.V1.Engine.Trace.Types.Event.Parser, new[]{ "Status", "Effect", "Error", "Message", "Result" }, null, new[]{ typeof(global::Cerbos.Api.V1.Engine.Trace.Types.Event.Types.Status) }, null, null)}), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Request), global::Cerbos.Api.V1.Engine.Request.Parser, new[]{ "Principal", "Resource", "AuxData" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Request.Types.Principal), global::Cerbos.Api.V1.Engine.Request.Types.Principal.Parser, new[]{ "Id", "Roles", "Attr" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Request.Types.Resource), global::Cerbos.Api.V1.Engine.Request.Types.Resource.Parser, new[]{ "Kind", "Id", "Attr" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })}), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Request), global::Cerbos.Api.V1.Engine.Request.Parser, new[]{ "Principal", "Resource", "AuxData" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Request.Types.Principal), global::Cerbos.Api.V1.Engine.Request.Types.Principal.Parser, new[]{ "Id", "Roles", "Attr", "PolicyVersion", "Scope" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Request.Types.Resource), global::Cerbos.Api.V1.Engine.Request.Types.Resource.Parser, new[]{ "Kind", "Id", "Attr", "PolicyVersion", "Scope" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })}), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Engine.Runtime), global::Cerbos.Api.V1.Engine.Runtime.Parser, new[]{ "EffectiveDerivedRoles" }, null, null, null, null) })); } @@ -5370,6 +5374,9 @@ public Component(Component other) : this() { case DetailsOneofCase.Output: Output = other.Output; break; + case DetailsOneofCase.RolePolicyScope: + RolePolicyScope = other.RolePolicyScope; + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -5639,6 +5646,32 @@ public void ClearOutput() { } } + /// Field number for the "role_policy_scope" field. + public const int RolePolicyScopeFieldNumber = 12; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string RolePolicyScope { + get { return HasRolePolicyScope ? (string) details_ : ""; } + set { + details_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + detailsCase_ = DetailsOneofCase.RolePolicyScope; + } + } + /// Gets whether the "role_policy_scope" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRolePolicyScope { + get { return detailsCase_ == DetailsOneofCase.RolePolicyScope; } + } + /// Clears the value of the oneof if it's currently set to "role_policy_scope" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRolePolicyScope() { + if (HasRolePolicyScope) { + ClearDetails(); + } + } + private object details_; /// Enum of possible cases for the "details" oneof. public enum DetailsOneofCase { @@ -5653,6 +5686,7 @@ public enum DetailsOneofCase { Scope = 9, Variable = 10, Output = 11, + RolePolicyScope = 12, } private DetailsOneofCase detailsCase_ = DetailsOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5694,6 +5728,7 @@ public bool Equals(Component other) { if (Scope != other.Scope) return false; if (!object.Equals(Variable, other.Variable)) return false; if (Output != other.Output) return false; + if (RolePolicyScope != other.RolePolicyScope) return false; if (DetailsCase != other.DetailsCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5713,6 +5748,7 @@ public override int GetHashCode() { if (HasScope) hash ^= Scope.GetHashCode(); if (detailsCase_ == DetailsOneofCase.Variable) hash ^= Variable.GetHashCode(); if (HasOutput) hash ^= Output.GetHashCode(); + if (HasRolePolicyScope) hash ^= RolePolicyScope.GetHashCode(); hash ^= (int) detailsCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -5776,6 +5812,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(90); output.WriteString(Output); } + if (HasRolePolicyScope) { + output.WriteRawTag(98); + output.WriteString(RolePolicyScope); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5830,6 +5870,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(90); output.WriteString(Output); } + if (HasRolePolicyScope) { + output.WriteRawTag(98); + output.WriteString(RolePolicyScope); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5873,6 +5917,9 @@ public int CalculateSize() { if (HasOutput) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Output); } + if (HasRolePolicyScope) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RolePolicyScope); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5922,6 +5969,9 @@ public void MergeFrom(Component other) { case DetailsOneofCase.Output: Output = other.Output; break; + case DetailsOneofCase.RolePolicyScope: + RolePolicyScope = other.RolePolicyScope; + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -5992,6 +6042,10 @@ public void MergeFrom(pb::CodedInputStream input) { Output = input.ReadString(); break; } + case 98: { + RolePolicyScope = input.ReadString(); + break; + } } } #endif @@ -6060,6 +6114,10 @@ public void MergeFrom(pb::CodedInputStream input) { Output = input.ReadString(); break; } + case 98: { + RolePolicyScope = input.ReadString(); + break; + } } } } @@ -6086,6 +6144,7 @@ public enum Kind { [pbr::OriginalName("KIND_VARIABLE")] Variable = 12, [pbr::OriginalName("KIND_VARIABLES")] Variables = 13, [pbr::OriginalName("KIND_OUTPUT")] Output = 14, + [pbr::OriginalName("KIND_ROLE_POLICY_SCOPE")] RolePolicyScope = 15, } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] @@ -7045,6 +7104,8 @@ public Principal(Principal other) : this() { id_ = other.id_; roles_ = other.roles_.Clone(); attr_ = other.attr_.Clone(); + policyVersion_ = other.policyVersion_; + scope_ = other.scope_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7088,6 +7149,30 @@ public string Id { get { return attr_; } } + /// Field number for the "policy_version" field. + public const int PolicyVersionFieldNumber = 4; + private string policyVersion_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PolicyVersion { + get { return policyVersion_; } + set { + policyVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "scope" field. + public const int ScopeFieldNumber = 5; + private string scope_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Scope { + get { return scope_; } + set { + scope_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -7106,6 +7191,8 @@ public bool Equals(Principal other) { if (Id != other.Id) return false; if(!roles_.Equals(other.roles_)) return false; if (!Attr.Equals(other.Attr)) return false; + if (PolicyVersion != other.PolicyVersion) return false; + if (Scope != other.Scope) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7116,6 +7203,8 @@ public override int GetHashCode() { if (Id.Length != 0) hash ^= Id.GetHashCode(); hash ^= roles_.GetHashCode(); hash ^= Attr.GetHashCode(); + if (PolicyVersion.Length != 0) hash ^= PolicyVersion.GetHashCode(); + if (Scope.Length != 0) hash ^= Scope.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7140,6 +7229,14 @@ public void WriteTo(pb::CodedOutputStream output) { } roles_.WriteTo(output, _repeated_roles_codec); attr_.WriteTo(output, _map_attr_codec); + if (PolicyVersion.Length != 0) { + output.WriteRawTag(34); + output.WriteString(PolicyVersion); + } + if (Scope.Length != 0) { + output.WriteRawTag(42); + output.WriteString(Scope); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7156,6 +7253,14 @@ public void WriteTo(pb::CodedOutputStream output) { } roles_.WriteTo(ref output, _repeated_roles_codec); attr_.WriteTo(ref output, _map_attr_codec); + if (PolicyVersion.Length != 0) { + output.WriteRawTag(34); + output.WriteString(PolicyVersion); + } + if (Scope.Length != 0) { + output.WriteRawTag(42); + output.WriteString(Scope); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7171,6 +7276,12 @@ public int CalculateSize() { } size += roles_.CalculateSize(_repeated_roles_codec); size += attr_.CalculateSize(_map_attr_codec); + if (PolicyVersion.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PolicyVersion); + } + if (Scope.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Scope); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7188,6 +7299,12 @@ public void MergeFrom(Principal other) { } roles_.Add(other.roles_); attr_.MergeFrom(other.attr_); + if (other.PolicyVersion.Length != 0) { + PolicyVersion = other.PolicyVersion; + } + if (other.Scope.Length != 0) { + Scope = other.Scope; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7219,6 +7336,14 @@ public void MergeFrom(pb::CodedInputStream input) { attr_.AddEntriesFrom(input, _map_attr_codec); break; } + case 34: { + PolicyVersion = input.ReadString(); + break; + } + case 42: { + Scope = input.ReadString(); + break; + } } } #endif @@ -7250,6 +7375,14 @@ public void MergeFrom(pb::CodedInputStream input) { attr_.AddEntriesFrom(ref input, _map_attr_codec); break; } + case 34: { + PolicyVersion = input.ReadString(); + break; + } + case 42: { + Scope = input.ReadString(); + break; + } } } } @@ -7295,6 +7428,8 @@ public Resource(Resource other) : this() { kind_ = other.kind_; id_ = other.id_; attr_ = other.attr_.Clone(); + policyVersion_ = other.policyVersion_; + scope_ = other.scope_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7339,6 +7474,30 @@ public string Id { get { return attr_; } } + /// Field number for the "policy_version" field. + public const int PolicyVersionFieldNumber = 4; + private string policyVersion_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PolicyVersion { + get { return policyVersion_; } + set { + policyVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "scope" field. + public const int ScopeFieldNumber = 5; + private string scope_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Scope { + get { return scope_; } + set { + scope_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -7357,6 +7516,8 @@ public bool Equals(Resource other) { if (Kind != other.Kind) return false; if (Id != other.Id) return false; if (!Attr.Equals(other.Attr)) return false; + if (PolicyVersion != other.PolicyVersion) return false; + if (Scope != other.Scope) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7367,6 +7528,8 @@ public override int GetHashCode() { if (Kind.Length != 0) hash ^= Kind.GetHashCode(); if (Id.Length != 0) hash ^= Id.GetHashCode(); hash ^= Attr.GetHashCode(); + if (PolicyVersion.Length != 0) hash ^= PolicyVersion.GetHashCode(); + if (Scope.Length != 0) hash ^= Scope.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7394,6 +7557,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(Id); } attr_.WriteTo(output, _map_attr_codec); + if (PolicyVersion.Length != 0) { + output.WriteRawTag(34); + output.WriteString(PolicyVersion); + } + if (Scope.Length != 0) { + output.WriteRawTag(42); + output.WriteString(Scope); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7413,6 +7584,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(Id); } attr_.WriteTo(ref output, _map_attr_codec); + if (PolicyVersion.Length != 0) { + output.WriteRawTag(34); + output.WriteString(PolicyVersion); + } + if (Scope.Length != 0) { + output.WriteRawTag(42); + output.WriteString(Scope); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7430,6 +7609,12 @@ public int CalculateSize() { size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); } size += attr_.CalculateSize(_map_attr_codec); + if (PolicyVersion.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PolicyVersion); + } + if (Scope.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Scope); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7449,6 +7634,12 @@ public void MergeFrom(Resource other) { Id = other.Id; } attr_.MergeFrom(other.attr_); + if (other.PolicyVersion.Length != 0) { + PolicyVersion = other.PolicyVersion; + } + if (other.Scope.Length != 0) { + Scope = other.Scope; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7480,6 +7671,14 @@ public void MergeFrom(pb::CodedInputStream input) { attr_.AddEntriesFrom(input, _map_attr_codec); break; } + case 34: { + PolicyVersion = input.ReadString(); + break; + } + case 42: { + Scope = input.ReadString(); + break; + } } } #endif @@ -7511,6 +7710,14 @@ public void MergeFrom(pb::CodedInputStream input) { attr_.AddEntriesFrom(ref input, _map_attr_codec); break; } + case 34: { + PolicyVersion = input.ReadString(); + break; + } + case 42: { + Scope = input.ReadString(); + break; + } } } } diff --git a/src/Sdk/Cerbos/Api/V1/Policy/Policy.g.cs b/src/Sdk/Cerbos/Api/V1/Policy/Policy.g.cs index 0ff8209..7c67d7e 100644 --- a/src/Sdk/Cerbos/Api/V1/Policy/Policy.g.cs +++ b/src/Sdk/Cerbos/Api/V1/Policy/Policy.g.cs @@ -29,7 +29,7 @@ static PolicyReflection() { "ZWN0L3YxL2VmZmVjdC5wcm90bxodY2VyYm9zL2VuZ2luZS92MS9lbmdpbmUu", "cHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9w", "cm90b2J1Zi90aW1lc3RhbXAucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFw", - "cGVycy5wcm90byKtBQoGUG9saWN5EjwKC2FwaV92ZXJzaW9uGAEgASgJQhu6", + "cGVycy5wcm90byK+BgoGUG9saWN5EjwKC2FwaV92ZXJzaW9uGAEgASgJQhu6", "SBhyEwoRYXBpLmNlcmJvcy5kZXYvdjHIAQFSCmFwaVZlcnNpb24SGgoIZGlz", "YWJsZWQYAiABKAhSCGRpc2FibGVkEiAKC2Rlc2NyaXB0aW9uGAMgASgJUgtk", "ZXNjcmlwdGlvbhI2CghtZXRhZGF0YRgEIAEoCzIaLmNlcmJvcy5wb2xpY3ku", @@ -40,245 +40,338 @@ static PolicyReflection() { "Cg1kZXJpdmVkX3JvbGVzGAcgASgLMh4uY2VyYm9zLnBvbGljeS52MS5EZXJp", "dmVkUm9sZXNIAFIMZGVyaXZlZFJvbGVzEk4KEGV4cG9ydF92YXJpYWJsZXMY", "CiABKAsyIS5jZXJib3MucG9saWN5LnYxLkV4cG9ydFZhcmlhYmxlc0gAUg9l", - "eHBvcnRWYXJpYWJsZXMSSQoJdmFyaWFibGVzGAggAygLMicuY2VyYm9zLnBv", - "bGljeS52MS5Qb2xpY3kuVmFyaWFibGVzRW50cnlCAhgBUgl2YXJpYWJsZXMS", - "HAoLanNvbl9zY2hlbWEYCSABKAlSByRzY2hlbWEaPAoOVmFyaWFibGVzRW50", - "cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4", - "AUIUCgtwb2xpY3lfdHlwZRIFukgCCAEivQEKEFNvdXJjZUF0dHJpYnV0ZXMS", - "UgoKYXR0cmlidXRlcxgBIAMoCzIyLmNlcmJvcy5wb2xpY3kudjEuU291cmNl", - "QXR0cmlidXRlcy5BdHRyaWJ1dGVzRW50cnlSCmF0dHJpYnV0ZXMaVQoPQXR0", - "cmlidXRlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgL", - "MhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEilQMKCE1ldGFk", - "YXRhEh8KC3NvdXJjZV9maWxlGAEgASgJUgpzb3VyY2VGaWxlEk0KC2Fubm90", - "YXRpb25zGAIgAygLMisuY2VyYm9zLnBvbGljeS52MS5NZXRhZGF0YS5Bbm5v", - "dGF0aW9uc0VudHJ5Ugthbm5vdGF0aW9ucxIwCgRoYXNoGAMgASgLMhwuZ29v", - "Z2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgRoYXNoEisKD3N0b3JlX2lkZW50", - "aWZlchgEIAEoCUICGAFSDnN0b3JlSWRlbnRpZmVyEikKEHN0b3JlX2lkZW50", - "aWZpZXIYBSABKAlSD3N0b3JlSWRlbnRpZmllchJPChFzb3VyY2VfYXR0cmli", - "dXRlcxgGIAEoCzIiLmNlcmJvcy5wb2xpY3kudjEuU291cmNlQXR0cmlidXRl", - "c1IQc291cmNlQXR0cmlidXRlcxo+ChBBbm5vdGF0aW9uc0VudHJ5EhAKA2tl", - "eRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEisgMKDlJl", - "c291cmNlUG9saWN5EiYKCHJlc291cmNlGAEgASgJQgq6SAdyAhAByAEBUghy", - "ZXNvdXJjZRIxCgd2ZXJzaW9uGAIgASgJQhe6SBRyDzINXltbOndvcmQ6XV0r", - "JMgBAVIHdmVyc2lvbhJRChRpbXBvcnRfZGVyaXZlZF9yb2xlcxgDIAMoCUIf", - "ukgckgEZGAEiFXITMhFeW1s6d29yZDpdXC1cLl0rJFISaW1wb3J0RGVyaXZl", - "ZFJvbGVzEjQKBXJ1bGVzGAQgAygLMh4uY2VyYm9zLnBvbGljeS52MS5SZXNv", - "dXJjZVJ1bGVSBXJ1bGVzEkwKBXNjb3BlGAUgASgJQja6SDNyMTIvXihbWzph", - "bG51bTpdXVtbOndvcmQ6XVwtXSooXC5bWzp3b3JkOl1cLV0qKSopKiRSBXNj", - "b3BlEjMKB3NjaGVtYXMYBiABKAsyGS5jZXJib3MucG9saWN5LnYxLlNjaGVt", - "YXNSB3NjaGVtYXMSOQoJdmFyaWFibGVzGAcgASgLMhsuY2VyYm9zLnBvbGlj", - "eS52MS5WYXJpYWJsZXNSCXZhcmlhYmxlcyKVAwoMUmVzb3VyY2VSdWxlEi0K", - "B2FjdGlvbnMYASADKAlCE7pIEJIBCggBGAEiBHICEAHIAQFSB2FjdGlvbnMS", - "RAoNZGVyaXZlZF9yb2xlcxgCIAMoCUIfukgckgEZGAEiFXITMhFeW1s6d29y", - "ZDpdXC1cLl0rJFIMZGVyaXZlZFJvbGVzEiQKBXJvbGVzGAMgAygJQg66SAuS", - "AQgYASIEcgIQAVIFcm9sZXMSOQoJY29uZGl0aW9uGAQgASgLMhsuY2VyYm9z", - "LnBvbGljeS52MS5Db25kaXRpb25SCWNvbmRpdGlvbhI/CgZlZmZlY3QYBSAB", - "KA4yGC5jZXJib3MuZWZmZWN0LnYxLkVmZmVjdEINukgKggEEGgIBAsgBAVIG", - "ZWZmZWN0EjwKBG5hbWUYBiABKAlCKLpIJXIjMiFeKFtbOmFscGhhOl1dW1s6", - "d29yZDpdXEBcLlwtXSopKiRSBG5hbWUSMAoGb3V0cHV0GAcgASgLMhguY2Vy", - "Ym9zLnBvbGljeS52MS5PdXRwdXRSBm91dHB1dCKuAgoPUHJpbmNpcGFsUG9s", - "aWN5EigKCXByaW5jaXBhbBgBIAEoCUIKukgHcgIQAcgBAVIJcHJpbmNpcGFs", - "EjEKB3ZlcnNpb24YAiABKAlCF7pIFHIPMg1eW1s6d29yZDpdXSskyAEBUgd2", - "ZXJzaW9uEjUKBXJ1bGVzGAMgAygLMh8uY2VyYm9zLnBvbGljeS52MS5Qcmlu", - "Y2lwYWxSdWxlUgVydWxlcxJMCgVzY29wZRgEIAEoCUI2ukgzcjEyL14oW1s6", - "YWxudW06XV1bWzp3b3JkOl1cLV0qKFwuW1s6d29yZDpdXC1dKikqKSokUgVz", - "Y29wZRI5Cgl2YXJpYWJsZXMYBSABKAsyGy5jZXJib3MucG9saWN5LnYxLlZh", - "cmlhYmxlc1IJdmFyaWFibGVzIqEDCg1QcmluY2lwYWxSdWxlEiYKCHJlc291", - "cmNlGAEgASgJQgq6SAdyAhAByAEBUghyZXNvdXJjZRJNCgdhY3Rpb25zGAIg", - "AygLMiYuY2VyYm9zLnBvbGljeS52MS5QcmluY2lwYWxSdWxlLkFjdGlvbkIL", - "ukgIkgECCAHIAQFSB2FjdGlvbnMamAIKBkFjdGlvbhIiCgZhY3Rpb24YASAB", - "KAlCCrpIB3ICEAHIAQFSBmFjdGlvbhI5Cgljb25kaXRpb24YAiABKAsyGy5j", - "ZXJib3MucG9saWN5LnYxLkNvbmRpdGlvblIJY29uZGl0aW9uEj8KBmVmZmVj", - "dBgDIAEoDjIYLmNlcmJvcy5lZmZlY3QudjEuRWZmZWN0Qg26SAqCAQQaAgEC", - "yAEBUgZlZmZlY3QSPAoEbmFtZRgEIAEoCUIoukglciMyIV4oW1s6YWxwaGE6", - "XV1bWzp3b3JkOl1cQFwuXC1dKikqJFIEbmFtZRIwCgZvdXRwdXQYBSABKAsy", - "GC5jZXJib3MucG9saWN5LnYxLk91dHB1dFIGb3V0cHV0IsYBCgxEZXJpdmVk", - "Um9sZXMSMQoEbmFtZRgBIAEoCUIdukgachUQATIRXltbOndvcmQ6XVwtXC5d", - "KyTIAQFSBG5hbWUSSAoLZGVmaW5pdGlvbnMYAiADKAsyGS5jZXJib3MucG9s", - "aWN5LnYxLlJvbGVEZWZCC7pICJIBAggByAEBUgtkZWZpbml0aW9ucxI5Cgl2", - "YXJpYWJsZXMYAyABKAsyGy5jZXJib3MucG9saWN5LnYxLlZhcmlhYmxlc1IJ", - "dmFyaWFibGVzIq0BCgdSb2xlRGVmEi8KBG5hbWUYASABKAlCG7pIGHITMhFe", - "W1s6d29yZDpdXC1cLl0rJMgBAVIEbmFtZRI2CgxwYXJlbnRfcm9sZXMYAiAD", - "KAlCE7pIEJIBCggBGAEiBHICEAHIAQFSC3BhcmVudFJvbGVzEjkKCWNvbmRp", - "dGlvbhgDIAEoCzIbLmNlcmJvcy5wb2xpY3kudjEuQ29uZGl0aW9uUgljb25k", - "aXRpb24i2gEKD0V4cG9ydFZhcmlhYmxlcxIxCgRuYW1lGAEgASgJQh26SBpy", - "FRABMhFeW1s6d29yZDpdXC1cLl0rJMgBAVIEbmFtZRJUCgtkZWZpbml0aW9u", - "cxgCIAMoCzIyLmNlcmJvcy5wb2xpY3kudjEuRXhwb3J0VmFyaWFibGVzLkRl", - "ZmluaXRpb25zRW50cnlSC2RlZmluaXRpb25zGj4KEERlZmluaXRpb25zRW50", - "cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4", - "ASK8AQoJVmFyaWFibGVzEjcKBmltcG9ydBgBIAMoCUIfukgckgEZGAEiFXIT", - "MhFeW1s6d29yZDpdXC1cLl0rJFIGaW1wb3J0EjwKBWxvY2FsGAIgAygLMiYu", - "Y2VyYm9zLnBvbGljeS52MS5WYXJpYWJsZXMuTG9jYWxFbnRyeVIFbG9jYWwa", - "OAoKTG9jYWxFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEo", - "CVIFdmFsdWU6AjgBImoKCUNvbmRpdGlvbhIvCgVtYXRjaBgBIAEoCzIXLmNl", - "cmJvcy5wb2xpY3kudjEuTWF0Y2hIAFIFbWF0Y2gSGAoGc2NyaXB0GAIgASgJ", - "SABSBnNjcmlwdEISCgljb25kaXRpb24SBbpIAggBIpACCgVNYXRjaBI0CgNh", - "bGwYASABKAsyIC5jZXJib3MucG9saWN5LnYxLk1hdGNoLkV4cHJMaXN0SABS", - "A2FsbBI0CgNhbnkYAiABKAsyIC5jZXJib3MucG9saWN5LnYxLk1hdGNoLkV4", - "cHJMaXN0SABSA2FueRI2CgRub25lGAMgASgLMiAuY2VyYm9zLnBvbGljeS52", - "MS5NYXRjaC5FeHByTGlzdEgAUgRub25lEhQKBGV4cHIYBCABKAlIAFIEZXhw", - "chpACghFeHByTGlzdBI0CgJvZhgBIAMoCzIXLmNlcmJvcy5wb2xpY3kudjEu", - "TWF0Y2hCC7pICJIBAggByAEBUgJvZkILCgJvcBIFukgCCAEirgEKBk91dHB1", - "dBIWCgRleHByGAEgASgJQgIYAVIEZXhwchIxCgR3aGVuGAIgASgLMh0uY2Vy", - "Ym9zLnBvbGljeS52MS5PdXRwdXQuV2hlblIEd2hlbhpZCgRXaGVuEiUKDnJ1", - "bGVfYWN0aXZhdGVkGAEgASgJUg1ydWxlQWN0aXZhdGVkEioKEWNvbmRpdGlv", - "bl9ub3RfbWV0GAIgASgJUg9jb25kaXRpb25Ob3RNZXQizQIKB1NjaGVtYXMS", - "SwoQcHJpbmNpcGFsX3NjaGVtYRgBIAEoCzIgLmNlcmJvcy5wb2xpY3kudjEu", - "U2NoZW1hcy5TY2hlbWFSD3ByaW5jaXBhbFNjaGVtYRJJCg9yZXNvdXJjZV9z", - "Y2hlbWEYAiABKAsyIC5jZXJib3MucG9saWN5LnYxLlNjaGVtYXMuU2NoZW1h", - "Ug5yZXNvdXJjZVNjaGVtYRo7CgpJZ25vcmVXaGVuEi0KB2FjdGlvbnMYASAD", - "KAlCE7pIEJIBCggBGAEiBHICEAHIAQFSB2FjdGlvbnMabQoGU2NoZW1hEhwK", - "A3JlZhgBIAEoCUIKukgHcgIQAcgBAVIDcmVmEkUKC2lnbm9yZV93aGVuGAIg", - "ASgLMiQuY2VyYm9zLnBvbGljeS52MS5TY2hlbWFzLklnbm9yZVdoZW5SCmln", - "bm9yZVdoZW4inAUKC1Rlc3RGaXh0dXJlGuABCgpQcmluY2lwYWxzElgKCnBy", - "aW5jaXBhbHMYASADKAsyOC5jZXJib3MucG9saWN5LnYxLlRlc3RGaXh0dXJl", - "LlByaW5jaXBhbHMuUHJpbmNpcGFsc0VudHJ5UgpwcmluY2lwYWxzEhwKC2pz", - "b25fc2NoZW1hGAIgASgJUgckc2NoZW1hGloKD1ByaW5jaXBhbHNFbnRyeRIQ", - "CgNrZXkYASABKAlSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmNlcmJvcy5lbmdp", - "bmUudjEuUHJpbmNpcGFsUgV2YWx1ZToCOAEa2QEKCVJlc291cmNlcxJUCgly", - "ZXNvdXJjZXMYASADKAsyNi5jZXJib3MucG9saWN5LnYxLlRlc3RGaXh0dXJl", - "LlJlc291cmNlcy5SZXNvdXJjZXNFbnRyeVIJcmVzb3VyY2VzEhwKC2pzb25f", - "c2NoZW1hGAIgASgJUgckc2NoZW1hGlgKDlJlc291cmNlc0VudHJ5EhAKA2tl", - "eRgBIAEoCVIDa2V5EjAKBXZhbHVlGAIgASgLMhouY2VyYm9zLmVuZ2luZS52", - "MS5SZXNvdXJjZVIFdmFsdWU6AjgBGs0BCgdBdXhEYXRhEk0KCGF1eF9kYXRh", - "GAEgAygLMjIuY2VyYm9zLnBvbGljeS52MS5UZXN0Rml4dHVyZS5BdXhEYXRh", - "LkF1eERhdGFFbnRyeVIHYXV4RGF0YRIcCgtqc29uX3NjaGVtYRgCIAEoCVIH", - "JHNjaGVtYRpVCgxBdXhEYXRhRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLwoF", - "dmFsdWUYAiABKAsyGS5jZXJib3MuZW5naW5lLnYxLkF1eERhdGFSBXZhbHVl", - "OgI4ASKHAgoLVGVzdE9wdGlvbnMSLAoDbm93GAEgASgLMhouZ29vZ2xlLnBy", - "b3RvYnVmLlRpbWVzdGFtcFIDbm93EjAKFGxlbmllbnRfc2NvcGVfc2VhcmNo", - "GAIgASgIUhJsZW5pZW50U2NvcGVTZWFyY2gSRAoHZ2xvYmFscxgDIAMoCzIq", - "LmNlcmJvcy5wb2xpY3kudjEuVGVzdE9wdGlvbnMuR2xvYmFsc0VudHJ5Ugdn", - "bG9iYWxzGlIKDEdsb2JhbHNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIsCgV2", + "eHBvcnRWYXJpYWJsZXMSPwoLcm9sZV9wb2xpY3kYCyABKAsyHC5jZXJib3Mu", + "cG9saWN5LnYxLlJvbGVQb2xpY3lIAFIKcm9sZVBvbGljeRJOChBleHBvcnRf", + "Y29uc3RhbnRzGAwgASgLMiEuY2VyYm9zLnBvbGljeS52MS5FeHBvcnRDb25z", + "dGFudHNIAFIPZXhwb3J0Q29uc3RhbnRzEkkKCXZhcmlhYmxlcxgIIAMoCzIn", + "LmNlcmJvcy5wb2xpY3kudjEuUG9saWN5LlZhcmlhYmxlc0VudHJ5QgIYAVIJ", + "dmFyaWFibGVzEhwKC2pzb25fc2NoZW1hGAkgASgJUgckc2NoZW1hGjwKDlZh", + "cmlhYmxlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJ", + "UgV2YWx1ZToCOAFCFAoLcG9saWN5X3R5cGUSBbpIAggBIr0BChBTb3VyY2VB", + "dHRyaWJ1dGVzElIKCmF0dHJpYnV0ZXMYASADKAsyMi5jZXJib3MucG9saWN5", + "LnYxLlNvdXJjZUF0dHJpYnV0ZXMuQXR0cmlidXRlc0VudHJ5UgphdHRyaWJ1", + "dGVzGlUKD0F0dHJpYnV0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIsCgV2", "YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIFdmFsdWU6AjgB", - "IoIGCglUZXN0U3VpdGUSHgoEbmFtZRgBIAEoCUIKukgHcgIQAcgBAVIEbmFt", - "ZRIgCgtkZXNjcmlwdGlvbhgCIAEoCVILZGVzY3JpcHRpb24SEgoEc2tpcBgD", - "IAEoCFIEc2tpcBIfCgtza2lwX3JlYXNvbhgEIAEoCVIKc2tpcFJlYXNvbhI+", - "CgV0ZXN0cxgFIAMoCzIbLmNlcmJvcy5wb2xpY3kudjEuVGVzdFRhYmxlQgu6", - "SAiSAQIIAcgBAVIFdGVzdHMSSwoKcHJpbmNpcGFscxgGIAMoCzIrLmNlcmJv", - "cy5wb2xpY3kudjEuVGVzdFN1aXRlLlByaW5jaXBhbHNFbnRyeVIKcHJpbmNp", - "cGFscxJICglyZXNvdXJjZXMYByADKAsyKi5jZXJib3MucG9saWN5LnYxLlRl", - "c3RTdWl0ZS5SZXNvdXJjZXNFbnRyeVIJcmVzb3VyY2VzEkMKCGF1eF9kYXRh", - "GAggAygLMiguY2VyYm9zLnBvbGljeS52MS5UZXN0U3VpdGUuQXV4RGF0YUVu", - "dHJ5UgdhdXhEYXRhEjcKB29wdGlvbnMYCSABKAsyHS5jZXJib3MucG9saWN5", - "LnYxLlRlc3RPcHRpb25zUgdvcHRpb25zEhwKC2pzb25fc2NoZW1hGAogASgJ", - "Ugckc2NoZW1hGloKD1ByaW5jaXBhbHNFbnRyeRIQCgNrZXkYASABKAlSA2tl", - "eRIxCgV2YWx1ZRgCIAEoCzIbLmNlcmJvcy5lbmdpbmUudjEuUHJpbmNpcGFs", - "UgV2YWx1ZToCOAEaWAoOUmVzb3VyY2VzRW50cnkSEAoDa2V5GAEgASgJUgNr", - "ZXkSMAoFdmFsdWUYAiABKAsyGi5jZXJib3MuZW5naW5lLnYxLlJlc291cmNl", - "UgV2YWx1ZToCOAEaVQoMQXV4RGF0YUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5", - "Ei8KBXZhbHVlGAIgASgLMhkuY2VyYm9zLmVuZ2luZS52MS5BdXhEYXRhUgV2", - "YWx1ZToCOAEi+wcKCVRlc3RUYWJsZRIeCgRuYW1lGAEgASgJQgq6SAdyAhAB", - "yAEBUgRuYW1lEiAKC2Rlc2NyaXB0aW9uGAIgASgJUgtkZXNjcmlwdGlvbhIS", - "CgRza2lwGAMgASgIUgRza2lwEh8KC3NraXBfcmVhc29uGAQgASgJUgpza2lw", - "UmVhc29uEj8KBWlucHV0GAUgASgLMiEuY2VyYm9zLnBvbGljeS52MS5UZXN0", - "VGFibGUuSW5wdXRCBrpIA8gBAVIFaW5wdXQSUAoIZXhwZWN0ZWQYBiADKAsy", - "Jy5jZXJib3MucG9saWN5LnYxLlRlc3RUYWJsZS5FeHBlY3RhdGlvbkILukgI", - "kgECCAHIAQFSCGV4cGVjdGVkEjcKB29wdGlvbnMYByABKAsyHS5jZXJib3Mu", - "cG9saWN5LnYxLlRlc3RPcHRpb25zUgdvcHRpb25zGrkBCgVJbnB1dBIzCgpw", - "cmluY2lwYWxzGAEgAygJQhO6SBCSAQoIARgBIgRyAhAByAEBUgpwcmluY2lw", - "YWxzEjEKCXJlc291cmNlcxgCIAMoCUITukgQkgEKCAEYASIEcgIQAcgBAVIJ", - "cmVzb3VyY2VzEi0KB2FjdGlvbnMYAyADKAlCE7pIEJIBCggBGAEiBHICEAHI", - "AQFSB2FjdGlvbnMSGQoIYXV4X2RhdGEYBCABKAlSB2F1eERhdGEagAEKEk91", - "dHB1dEV4cGVjdGF0aW9ucxIiCgZhY3Rpb24YASABKAlCCrpIB3ICEAHIAQFS", - "BmFjdGlvbhJGCghleHBlY3RlZBgCIAMoCzIdLmNlcmJvcy5lbmdpbmUudjEu", - "T3V0cHV0RW50cnlCC7pICJIBAggByAEBUghleHBlY3RlZBrrAgoLRXhwZWN0", - "YXRpb24SKAoJcHJpbmNpcGFsGAEgASgJQgq6SAdyAhAByAEBUglwcmluY2lw", - "YWwSJgoIcmVzb3VyY2UYAiABKAlCCrpIB3ICEAHIAQFSCHJlc291cmNlEmoK", - "B2FjdGlvbnMYAyADKAsyNC5jZXJib3MucG9saWN5LnYxLlRlc3RUYWJsZS5F", - "eHBlY3RhdGlvbi5BY3Rpb25zRW50cnlCGrpIF5oBEQgBIgRyAhABKgeCAQQa", - "AgECyAEBUgdhY3Rpb25zEkgKB291dHB1dHMYBCADKAsyLi5jZXJib3MucG9s", - "aWN5LnYxLlRlc3RUYWJsZS5PdXRwdXRFeHBlY3RhdGlvbnNSB291dHB1dHMa", - "VAoMQWN0aW9uc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5Ei4KBXZhbHVlGAIg", - "ASgOMhguY2VyYm9zLmVmZmVjdC52MS5FZmZlY3RSBXZhbHVlOgI4ASLaBwoE", - "VGVzdBI7CgRuYW1lGAEgASgLMh8uY2VyYm9zLnBvbGljeS52MS5UZXN0LlRl", - "c3ROYW1lQga6SAPIAQFSBG5hbWUSIAoLZGVzY3JpcHRpb24YAiABKAlSC2Rl", - "c2NyaXB0aW9uEhIKBHNraXAYAyABKAhSBHNraXASHwoLc2tpcF9yZWFzb24Y", - "BCABKAlSCnNraXBSZWFzb24SOgoFaW5wdXQYBSABKAsyHC5jZXJib3MuZW5n", - "aW5lLnYxLkNoZWNrSW5wdXRCBrpIA8gBAVIFaW5wdXQSXAoIZXhwZWN0ZWQY", - "BiADKAsyJC5jZXJib3MucG9saWN5LnYxLlRlc3QuRXhwZWN0ZWRFbnRyeUIa", - "ukgXmgERCAEiBHICEAEqB4IBBBoCAQLIAQFSCGV4cGVjdGVkEjcKB29wdGlv", - "bnMYByABKAsyHS5jZXJib3MucG9saWN5LnYxLlRlc3RPcHRpb25zUgdvcHRp", - "b25zElYKEGV4cGVjdGVkX291dHB1dHMYCCADKAsyKy5jZXJib3MucG9saWN5", - "LnYxLlRlc3QuRXhwZWN0ZWRPdXRwdXRzRW50cnlSD2V4cGVjdGVkT3V0cHV0", - "cxqeAQoIVGVzdE5hbWUSMgoPdGVzdF90YWJsZV9uYW1lGAEgASgJQgq6SAdy", - "AhAByAEBUg10ZXN0VGFibGVOYW1lEi8KDXByaW5jaXBhbF9rZXkYAiABKAlC", - "CrpIB3ICEAHIAQFSDHByaW5jaXBhbEtleRItCgxyZXNvdXJjZV9rZXkYAyAB", - "KAlCCrpIB3ICEAHIAQFSC3Jlc291cmNlS2V5GrABCg1PdXRwdXRFbnRyaWVz", - "EksKB2VudHJpZXMYASADKAsyMS5jZXJib3MucG9saWN5LnYxLlRlc3QuT3V0", - "cHV0RW50cmllcy5FbnRyaWVzRW50cnlSB2VudHJpZXMaUgoMRW50cmllc0Vu", - "dHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xl", - "LnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEaVQoNRXhwZWN0ZWRFbnRyeRIQ", - "CgNrZXkYASABKAlSA2tleRIuCgV2YWx1ZRgCIAEoDjIYLmNlcmJvcy5lZmZl", - "Y3QudjEuRWZmZWN0UgV2YWx1ZToCOAEaaAoURXhwZWN0ZWRPdXRwdXRzRW50", - "cnkSEAoDa2V5GAEgASgJUgNrZXkSOgoFdmFsdWUYAiABKAsyJC5jZXJib3Mu", - "cG9saWN5LnYxLlRlc3QuT3V0cHV0RW50cmllc1IFdmFsdWU6AjgBIukRCgtU", - "ZXN0UmVzdWx0cxI7CgZzdWl0ZXMYASADKAsyIy5jZXJib3MucG9saWN5LnYx", - "LlRlc3RSZXN1bHRzLlN1aXRlUgZzdWl0ZXMSPwoHc3VtbWFyeRgCIAEoCzIl", - "LmNlcmJvcy5wb2xpY3kudjEuVGVzdFJlc3VsdHMuU3VtbWFyeVIHc3VtbWFy", - "eRpbCgVUYWxseRI8CgZyZXN1bHQYASABKA4yJC5jZXJib3MucG9saWN5LnYx", - "LlRlc3RSZXN1bHRzLlJlc3VsdFIGcmVzdWx0EhQKBWNvdW50GAIgASgNUgVj", - "b3VudBrBAQoHU3VtbWFyeRJLCg5vdmVyYWxsX3Jlc3VsdBgBIAEoDjIkLmNl", - "cmJvcy5wb2xpY3kudjEuVGVzdFJlc3VsdHMuUmVzdWx0Ug1vdmVyYWxsUmVz", - "dWx0Eh8KC3Rlc3RzX2NvdW50GAIgASgNUgp0ZXN0c0NvdW50EkgKDXJlc3Vs", - "dF9jb3VudHMYAyADKAsyIy5jZXJib3MucG9saWN5LnYxLlRlc3RSZXN1bHRz", - "LlRhbGx5UgxyZXN1bHRDb3VudHMavAIKBVN1aXRlEhIKBGZpbGUYASABKAlS", - "BGZpbGUSEgoEbmFtZRgCIAEoCVIEbmFtZRJLCgpwcmluY2lwYWxzGAMgAygL", - "MicuY2VyYm9zLnBvbGljeS52MS5UZXN0UmVzdWx0cy5QcmluY2lwYWxCAhgB", - "UgpwcmluY2lwYWxzEj8KB3N1bW1hcnkYBCABKAsyJS5jZXJib3MucG9saWN5", - "LnYxLlRlc3RSZXN1bHRzLlN1bW1hcnlSB3N1bW1hcnkSFAoFZXJyb3IYBSAB", - "KAlSBWVycm9yEkUKCnRlc3RfY2FzZXMYBiADKAsyJi5jZXJib3MucG9saWN5", - "LnYxLlRlc3RSZXN1bHRzLlRlc3RDYXNlUgl0ZXN0Q2FzZXMSIAoLZGVzY3Jp", - "cHRpb24YByABKAlSC2Rlc2NyaXB0aW9uGmcKCFRlc3RDYXNlEhIKBG5hbWUY", - "ASABKAlSBG5hbWUSRwoKcHJpbmNpcGFscxgCIAMoCzInLmNlcmJvcy5wb2xp", - "Y3kudjEuVGVzdFJlc3VsdHMuUHJpbmNpcGFsUgpwcmluY2lwYWxzGmUKCVBy", - "aW5jaXBhbBISCgRuYW1lGAEgASgJUgRuYW1lEkQKCXJlc291cmNlcxgCIAMo", - "CzImLmNlcmJvcy5wb2xpY3kudjEuVGVzdFJlc3VsdHMuUmVzb3VyY2VSCXJl", - "c291cmNlcxpeCghSZXNvdXJjZRISCgRuYW1lGAEgASgJUgRuYW1lEj4KB2Fj", - "dGlvbnMYAiADKAsyJC5jZXJib3MucG9saWN5LnYxLlRlc3RSZXN1bHRzLkFj", - "dGlvblIHYWN0aW9ucxpdCgZBY3Rpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRI/", - "CgdkZXRhaWxzGAIgASgLMiUuY2VyYm9zLnBvbGljeS52MS5UZXN0UmVzdWx0", - "cy5EZXRhaWxzUgdkZXRhaWxzGqwCCgdEZXRhaWxzEjwKBnJlc3VsdBgBIAEo", - "DjIkLmNlcmJvcy5wb2xpY3kudjEuVGVzdFJlc3VsdHMuUmVzdWx0UgZyZXN1", - "bHQSQQoHZmFpbHVyZRgCIAEoCzIlLmNlcmJvcy5wb2xpY3kudjEuVGVzdFJl", - "c3VsdHMuRmFpbHVyZUgAUgdmYWlsdXJlEhYKBWVycm9yGAMgASgJSABSBWVy", - "cm9yEkEKB3N1Y2Nlc3MYBSABKAsyJS5jZXJib3MucG9saWN5LnYxLlRlc3RS", - "ZXN1bHRzLlN1Y2Nlc3NIAFIHc3VjY2VzcxI6CgxlbmdpbmVfdHJhY2UYBCAD", - "KAsyFy5jZXJib3MuZW5naW5lLnYxLlRyYWNlUgtlbmdpbmVUcmFjZUIJCgdv", - "dXRjb21lGpwDCg1PdXRwdXRGYWlsdXJlEhAKA3NyYxgBIAEoCVIDc3JjEl0K", - "Cm1pc21hdGNoZWQYAiABKAsyOy5jZXJib3MucG9saWN5LnYxLlRlc3RSZXN1", - "bHRzLk91dHB1dEZhaWx1cmUuTWlzbWF0Y2hlZFZhbHVlSABSCm1pc21hdGNo", - "ZWQSVAoHbWlzc2luZxgDIAEoCzI4LmNlcmJvcy5wb2xpY3kudjEuVGVzdFJl", - "c3VsdHMuT3V0cHV0RmFpbHVyZS5NaXNzaW5nVmFsdWVIAFIHbWlzc2luZxp1", - "Cg9NaXNtYXRjaGVkVmFsdWUSMgoIZXhwZWN0ZWQYASABKAsyFi5nb29nbGUu", - "cHJvdG9idWYuVmFsdWVSCGV4cGVjdGVkEi4KBmFjdHVhbBgCIAEoCzIWLmdv", - "b2dsZS5wcm90b2J1Zi5WYWx1ZVIGYWN0dWFsGkIKDE1pc3NpbmdWYWx1ZRIy", - "CghleHBlY3RlZBgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIIZXhw", - "ZWN0ZWRCCQoHb3V0Y29tZRq4AQoHRmFpbHVyZRI0CghleHBlY3RlZBgBIAEo", - "DjIYLmNlcmJvcy5lZmZlY3QudjEuRWZmZWN0UghleHBlY3RlZBIwCgZhY3R1", - "YWwYAiABKA4yGC5jZXJib3MuZWZmZWN0LnYxLkVmZmVjdFIGYWN0dWFsEkUK", - "B291dHB1dHMYAyADKAsyKy5jZXJib3MucG9saWN5LnYxLlRlc3RSZXN1bHRz", - "Lk91dHB1dEZhaWx1cmVSB291dHB1dHMadAoHU3VjY2VzcxIwCgZlZmZlY3QY", - "ASABKA4yGC5jZXJib3MuZWZmZWN0LnYxLkVmZmVjdFIGZWZmZWN0EjcKB291", - "dHB1dHMYAiADKAsyHS5jZXJib3MuZW5naW5lLnYxLk91dHB1dEVudHJ5Ugdv", - "dXRwdXRzIm4KBlJlc3VsdBIWChJSRVNVTFRfVU5TUEVDSUZJRUQQABISCg5S", - "RVNVTFRfU0tJUFBFRBABEhEKDVJFU1VMVF9QQVNTRUQQAhIRCg1SRVNVTFRf", - "RkFJTEVEEAMSEgoOUkVTVUxUX0VSUk9SRUQQBEJvChhkZXYuY2VyYm9zLmFw", - "aS52MS5wb2xpY3laPGdpdGh1Yi5jb20vY2VyYm9zL2NlcmJvcy9hcGkvZ2Vu", - "cGIvY2VyYm9zL3BvbGljeS92MTtwb2xpY3l2MaoCFENlcmJvcy5BcGkuVjEu", - "UG9saWN5YgZwcm90bzM=")); + "IpUDCghNZXRhZGF0YRIfCgtzb3VyY2VfZmlsZRgBIAEoCVIKc291cmNlRmls", + "ZRJNCgthbm5vdGF0aW9ucxgCIAMoCzIrLmNlcmJvcy5wb2xpY3kudjEuTWV0", + "YWRhdGEuQW5ub3RhdGlvbnNFbnRyeVILYW5ub3RhdGlvbnMSMAoEaGFzaBgD", + "IAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIEaGFzaBIrCg9z", + "dG9yZV9pZGVudGlmZXIYBCABKAlCAhgBUg5zdG9yZUlkZW50aWZlchIpChBz", + "dG9yZV9pZGVudGlmaWVyGAUgASgJUg9zdG9yZUlkZW50aWZpZXISTwoRc291", + "cmNlX2F0dHJpYnV0ZXMYBiABKAsyIi5jZXJib3MucG9saWN5LnYxLlNvdXJj", + "ZUF0dHJpYnV0ZXNSEHNvdXJjZUF0dHJpYnV0ZXMaPgoQQW5ub3RhdGlvbnNF", + "bnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6", + "AjgBIr4ECg5SZXNvdXJjZVBvbGljeRImCghyZXNvdXJjZRgBIAEoCUIKukgH", + "cgIQAcgBAVIIcmVzb3VyY2USMQoHdmVyc2lvbhgCIAEoCUIXukgUcg8yDV5b", + "Wzp3b3JkOl1dKyTIAQFSB3ZlcnNpb24SUQoUaW1wb3J0X2Rlcml2ZWRfcm9s", + "ZXMYAyADKAlCH7pIHJIBGRgBIhVyEzIRXltbOndvcmQ6XVwtXC5dKyRSEmlt", + "cG9ydERlcml2ZWRSb2xlcxI0CgVydWxlcxgEIAMoCzIeLmNlcmJvcy5wb2xp", + "Y3kudjEuUmVzb3VyY2VSdWxlUgVydWxlcxJMCgVzY29wZRgFIAEoCUI2ukgz", + "cjEyL14oW1s6YWxudW06XV1bWzp3b3JkOl1cLV0qKFwuW1s6d29yZDpdXC1d", + "KikqKSokUgVzY29wZRIzCgdzY2hlbWFzGAYgASgLMhkuY2VyYm9zLnBvbGlj", + "eS52MS5TY2hlbWFzUgdzY2hlbWFzEjkKCXZhcmlhYmxlcxgHIAEoCzIbLmNl", + "cmJvcy5wb2xpY3kudjEuVmFyaWFibGVzUgl2YXJpYWJsZXMSTwoRc2NvcGVf", + "cGVybWlzc2lvbnMYCCABKA4yIi5jZXJib3MucG9saWN5LnYxLlNjb3BlUGVy", + "bWlzc2lvbnNSEHNjb3BlUGVybWlzc2lvbnMSOQoJY29uc3RhbnRzGAkgASgL", + "MhsuY2VyYm9zLnBvbGljeS52MS5Db25zdGFudHNSCWNvbnN0YW50cyKVAwoM", + "UmVzb3VyY2VSdWxlEi0KB2FjdGlvbnMYASADKAlCE7pIEJIBCggBGAEiBHIC", + "EAHIAQFSB2FjdGlvbnMSRAoNZGVyaXZlZF9yb2xlcxgCIAMoCUIfukgckgEZ", + "GAEiFXITMhFeW1s6d29yZDpdXC1cLl0rJFIMZGVyaXZlZFJvbGVzEiQKBXJv", + "bGVzGAMgAygJQg66SAuSAQgYASIEcgIQAVIFcm9sZXMSOQoJY29uZGl0aW9u", + "GAQgASgLMhsuY2VyYm9zLnBvbGljeS52MS5Db25kaXRpb25SCWNvbmRpdGlv", + "bhI/CgZlZmZlY3QYBSABKA4yGC5jZXJib3MuZWZmZWN0LnYxLkVmZmVjdEIN", + "ukgKggEEGAEYAsgBAVIGZWZmZWN0EjwKBG5hbWUYBiABKAlCKLpIJXIjMiFe", + "KFtbOmFscGhhOl1dW1s6d29yZDpdXEBcLlwtXSopKiRSBG5hbWUSMAoGb3V0", + "cHV0GAcgASgLMhguY2VyYm9zLnBvbGljeS52MS5PdXRwdXRSBm91dHB1dCLU", + "AgoKUm9sZVBvbGljeRIdCgRyb2xlGAEgASgJQge6SARyAhABSABSBHJvbGUS", + "MQoMcGFyZW50X3JvbGVzGAUgAygJQg66SAuSAQgYASIEcgIQAVILcGFyZW50", + "Um9sZXMSTAoFc2NvcGUYAiABKAlCNrpIM3IxMi9eKFtbOmFsbnVtOl1dW1s6", + "d29yZDpdXC1dKihcLltbOndvcmQ6XVwtXSopKikqJFIFc2NvcGUSMAoFcnVs", + "ZXMYAyADKAsyGi5jZXJib3MucG9saWN5LnYxLlJvbGVSdWxlUgVydWxlcxJe", + "ChFzY29wZV9wZXJtaXNzaW9ucxgEIAEoDjIiLmNlcmJvcy5wb2xpY3kudjEu", + "U2NvcGVQZXJtaXNzaW9uc0INukgKggEEGAEYAsgBAVIQc2NvcGVQZXJtaXNz", + "aW9uc0IUCgtwb2xpY3lfdHlwZRIFukgCCAEibAoIUm9sZVJ1bGUSJgoIcmVz", + "b3VyY2UYASABKAlCCrpIB3ICEAHIAQFSCHJlc291cmNlEjgKDWFsbG93X2Fj", + "dGlvbnMYAiADKAlCE7pIEJIBCggBGAEiBHICEAHIAQFSDGFsbG93QWN0aW9u", + "cyK6AwoPUHJpbmNpcGFsUG9saWN5EigKCXByaW5jaXBhbBgBIAEoCUIKukgH", + "cgIQAcgBAVIJcHJpbmNpcGFsEjEKB3ZlcnNpb24YAiABKAlCF7pIFHIPMg1e", + "W1s6d29yZDpdXSskyAEBUgd2ZXJzaW9uEjUKBXJ1bGVzGAMgAygLMh8uY2Vy", + "Ym9zLnBvbGljeS52MS5QcmluY2lwYWxSdWxlUgVydWxlcxJMCgVzY29wZRgE", + "IAEoCUI2ukgzcjEyL14oW1s6YWxudW06XV1bWzp3b3JkOl1cLV0qKFwuW1s6", + "d29yZDpdXC1dKikqKSokUgVzY29wZRI5Cgl2YXJpYWJsZXMYBSABKAsyGy5j", + "ZXJib3MucG9saWN5LnYxLlZhcmlhYmxlc1IJdmFyaWFibGVzEk8KEXNjb3Bl", + "X3Blcm1pc3Npb25zGAYgASgOMiIuY2VyYm9zLnBvbGljeS52MS5TY29wZVBl", + "cm1pc3Npb25zUhBzY29wZVBlcm1pc3Npb25zEjkKCWNvbnN0YW50cxgHIAEo", + "CzIbLmNlcmJvcy5wb2xpY3kudjEuQ29uc3RhbnRzUgljb25zdGFudHMioQMK", + "DVByaW5jaXBhbFJ1bGUSJgoIcmVzb3VyY2UYASABKAlCCrpIB3ICEAHIAQFS", + "CHJlc291cmNlEk0KB2FjdGlvbnMYAiADKAsyJi5jZXJib3MucG9saWN5LnYx", + "LlByaW5jaXBhbFJ1bGUuQWN0aW9uQgu6SAiSAQIIAcgBAVIHYWN0aW9ucxqY", + "AgoGQWN0aW9uEiIKBmFjdGlvbhgBIAEoCUIKukgHcgIQAcgBAVIGYWN0aW9u", + "EjkKCWNvbmRpdGlvbhgCIAEoCzIbLmNlcmJvcy5wb2xpY3kudjEuQ29uZGl0", + "aW9uUgljb25kaXRpb24SPwoGZWZmZWN0GAMgASgOMhguY2VyYm9zLmVmZmVj", + "dC52MS5FZmZlY3RCDbpICoIBBBgBGALIAQFSBmVmZmVjdBI8CgRuYW1lGAQg", + "ASgJQii6SCVyIzIhXihbWzphbHBoYTpdXVtbOndvcmQ6XVxAXC5cLV0qKSok", + "UgRuYW1lEjAKBm91dHB1dBgFIAEoCzIYLmNlcmJvcy5wb2xpY3kudjEuT3V0", + "cHV0UgZvdXRwdXQigQIKDERlcml2ZWRSb2xlcxIxCgRuYW1lGAEgASgJQh26", + "SBpyFRABMhFeW1s6d29yZDpdXC1cLl0rJMgBAVIEbmFtZRJICgtkZWZpbml0", + "aW9ucxgCIAMoCzIZLmNlcmJvcy5wb2xpY3kudjEuUm9sZURlZkILukgIkgEC", + "CAHIAQFSC2RlZmluaXRpb25zEjkKCXZhcmlhYmxlcxgDIAEoCzIbLmNlcmJv", + "cy5wb2xpY3kudjEuVmFyaWFibGVzUgl2YXJpYWJsZXMSOQoJY29uc3RhbnRz", + "GAQgASgLMhsuY2VyYm9zLnBvbGljeS52MS5Db25zdGFudHNSCWNvbnN0YW50", + "cyKtAQoHUm9sZURlZhIvCgRuYW1lGAEgASgJQhu6SBhyEzIRXltbOndvcmQ6", + "XVwtXC5dKyTIAQFSBG5hbWUSNgoMcGFyZW50X3JvbGVzGAIgAygJQhO6SBCS", + "AQoIARgBIgRyAhAByAEBUgtwYXJlbnRSb2xlcxI5Cgljb25kaXRpb24YAyAB", + "KAsyGy5jZXJib3MucG9saWN5LnYxLkNvbmRpdGlvblIJY29uZGl0aW9uIvIB", + "Cg9FeHBvcnRDb25zdGFudHMSMQoEbmFtZRgBIAEoCUIdukgachUQATIRXltb", + "OndvcmQ6XVwtXC5dKyTIAQFSBG5hbWUSVAoLZGVmaW5pdGlvbnMYAiADKAsy", + "Mi5jZXJib3MucG9saWN5LnYxLkV4cG9ydENvbnN0YW50cy5EZWZpbml0aW9u", + "c0VudHJ5UgtkZWZpbml0aW9ucxpWChBEZWZpbml0aW9uc0VudHJ5EhAKA2tl", + "eRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVm", + "LlZhbHVlUgV2YWx1ZToCOAEi1AEKCUNvbnN0YW50cxI3CgZpbXBvcnQYASAD", + "KAlCH7pIHJIBGRgBIhVyEzIRXltbOndvcmQ6XVwtXC5dKyRSBmltcG9ydBI8", + "CgVsb2NhbBgCIAMoCzImLmNlcmJvcy5wb2xpY3kudjEuQ29uc3RhbnRzLkxv", + "Y2FsRW50cnlSBWxvY2FsGlAKCkxvY2FsRW50cnkSEAoDa2V5GAEgASgJUgNr", + "ZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBXZh", + "bHVlOgI4ASLaAQoPRXhwb3J0VmFyaWFibGVzEjEKBG5hbWUYASABKAlCHbpI", + "GnIVEAEyEV5bWzp3b3JkOl1cLVwuXSskyAEBUgRuYW1lElQKC2RlZmluaXRp", + "b25zGAIgAygLMjIuY2VyYm9zLnBvbGljeS52MS5FeHBvcnRWYXJpYWJsZXMu", + "RGVmaW5pdGlvbnNFbnRyeVILZGVmaW5pdGlvbnMaPgoQRGVmaW5pdGlvbnNF", + "bnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6", + "AjgBIrwBCglWYXJpYWJsZXMSNwoGaW1wb3J0GAEgAygJQh+6SBySARkYASIV", + "chMyEV5bWzp3b3JkOl1cLVwuXSskUgZpbXBvcnQSPAoFbG9jYWwYAiADKAsy", + "Ji5jZXJib3MucG9saWN5LnYxLlZhcmlhYmxlcy5Mb2NhbEVudHJ5UgVsb2Nh", + "bBo4CgpMb2NhbEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIg", + "ASgJUgV2YWx1ZToCOAEiagoJQ29uZGl0aW9uEi8KBW1hdGNoGAEgASgLMhcu", + "Y2VyYm9zLnBvbGljeS52MS5NYXRjaEgAUgVtYXRjaBIYCgZzY3JpcHQYAiAB", + "KAlIAFIGc2NyaXB0QhIKCWNvbmRpdGlvbhIFukgCCAEikAIKBU1hdGNoEjQK", + "A2FsbBgBIAEoCzIgLmNlcmJvcy5wb2xpY3kudjEuTWF0Y2guRXhwckxpc3RI", + "AFIDYWxsEjQKA2FueRgCIAEoCzIgLmNlcmJvcy5wb2xpY3kudjEuTWF0Y2gu", + "RXhwckxpc3RIAFIDYW55EjYKBG5vbmUYAyABKAsyIC5jZXJib3MucG9saWN5", + "LnYxLk1hdGNoLkV4cHJMaXN0SABSBG5vbmUSFAoEZXhwchgEIAEoCUgAUgRl", + "eHByGkAKCEV4cHJMaXN0EjQKAm9mGAEgAygLMhcuY2VyYm9zLnBvbGljeS52", + "MS5NYXRjaEILukgIkgECCAHIAQFSAm9mQgsKAm9wEgW6SAIIASKuAQoGT3V0", + "cHV0EhYKBGV4cHIYASABKAlCAhgBUgRleHByEjEKBHdoZW4YAiABKAsyHS5j", + "ZXJib3MucG9saWN5LnYxLk91dHB1dC5XaGVuUgR3aGVuGlkKBFdoZW4SJQoO", + "cnVsZV9hY3RpdmF0ZWQYASABKAlSDXJ1bGVBY3RpdmF0ZWQSKgoRY29uZGl0", + "aW9uX25vdF9tZXQYAiABKAlSD2NvbmRpdGlvbk5vdE1ldCLNAgoHU2NoZW1h", + "cxJLChBwcmluY2lwYWxfc2NoZW1hGAEgASgLMiAuY2VyYm9zLnBvbGljeS52", + "MS5TY2hlbWFzLlNjaGVtYVIPcHJpbmNpcGFsU2NoZW1hEkkKD3Jlc291cmNl", + "X3NjaGVtYRgCIAEoCzIgLmNlcmJvcy5wb2xpY3kudjEuU2NoZW1hcy5TY2hl", + "bWFSDnJlc291cmNlU2NoZW1hGjsKCklnbm9yZVdoZW4SLQoHYWN0aW9ucxgB", + "IAMoCUITukgQkgEKCAEYASIEcgIQAcgBAVIHYWN0aW9ucxptCgZTY2hlbWES", + "HAoDcmVmGAEgASgJQgq6SAdyAhAByAEBUgNyZWYSRQoLaWdub3JlX3doZW4Y", + "AiABKAsyJC5jZXJib3MucG9saWN5LnYxLlNjaGVtYXMuSWdub3JlV2hlblIK", + "aWdub3JlV2hlbiLQCAoLVGVzdEZpeHR1cmUavQMKClByaW5jaXBhbHMSWAoK", + "cHJpbmNpcGFscxgBIAMoCzI4LmNlcmJvcy5wb2xpY3kudjEuVGVzdEZpeHR1", + "cmUuUHJpbmNpcGFscy5QcmluY2lwYWxzRW50cnlSCnByaW5jaXBhbHMSHAoL", + "anNvbl9zY2hlbWEYAiABKAlSByRzY2hlbWESaAoQcHJpbmNpcGFsX2dyb3Vw", + "cxgDIAMoCzI9LmNlcmJvcy5wb2xpY3kudjEuVGVzdEZpeHR1cmUuUHJpbmNp", + "cGFscy5QcmluY2lwYWxHcm91cHNFbnRyeVIPcHJpbmNpcGFsR3JvdXBzGloK", + "D1ByaW5jaXBhbHNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIxCgV2YWx1ZRgC", + "IAEoCzIbLmNlcmJvcy5lbmdpbmUudjEuUHJpbmNpcGFsUgV2YWx1ZToCOAEa", + "cQoUUHJpbmNpcGFsR3JvdXBzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQwoF", + "dmFsdWUYAiABKAsyLS5jZXJib3MucG9saWN5LnYxLlRlc3RGaXh0dXJlR3Jv", + "dXAuUHJpbmNpcGFsc1IFdmFsdWU6AjgBGrADCglSZXNvdXJjZXMSVAoJcmVz", + "b3VyY2VzGAEgAygLMjYuY2VyYm9zLnBvbGljeS52MS5UZXN0Rml4dHVyZS5S", + "ZXNvdXJjZXMuUmVzb3VyY2VzRW50cnlSCXJlc291cmNlcxIcCgtqc29uX3Nj", + "aGVtYRgCIAEoCVIHJHNjaGVtYRJkCg9yZXNvdXJjZV9ncm91cHMYAyADKAsy", + "Oy5jZXJib3MucG9saWN5LnYxLlRlc3RGaXh0dXJlLlJlc291cmNlcy5SZXNv", + "dXJjZUdyb3Vwc0VudHJ5Ug5yZXNvdXJjZUdyb3VwcxpYCg5SZXNvdXJjZXNF", + "bnRyeRIQCgNrZXkYASABKAlSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmNlcmJv", + "cy5lbmdpbmUudjEuUmVzb3VyY2VSBXZhbHVlOgI4ARpvChNSZXNvdXJjZUdy", + "b3Vwc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkIKBXZhbHVlGAIgASgLMiwu", + "Y2VyYm9zLnBvbGljeS52MS5UZXN0Rml4dHVyZUdyb3VwLlJlc291cmNlc1IF", + "dmFsdWU6AjgBGs0BCgdBdXhEYXRhEk0KCGF1eF9kYXRhGAEgAygLMjIuY2Vy", + "Ym9zLnBvbGljeS52MS5UZXN0Rml4dHVyZS5BdXhEYXRhLkF1eERhdGFFbnRy", + "eVIHYXV4RGF0YRIcCgtqc29uX3NjaGVtYRgCIAEoCVIHJHNjaGVtYRpVCgxB", + "dXhEYXRhRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLwoFdmFsdWUYAiABKAsy", + "GS5jZXJib3MuZW5naW5lLnYxLkF1eERhdGFSBXZhbHVlOgI4ASKVAQoQVGVz", + "dEZpeHR1cmVHcm91cBpBCgpQcmluY2lwYWxzEjMKCnByaW5jaXBhbHMYASAD", + "KAlCE7pIEJIBCggBGAEiBHICEAHIAQFSCnByaW5jaXBhbHMaPgoJUmVzb3Vy", + "Y2VzEjEKCXJlc291cmNlcxgBIAMoCUITukgQkgEKCAEYASIEcgIQAcgBAVIJ", + "cmVzb3VyY2VzIr0CCgtUZXN0T3B0aW9ucxIsCgNub3cYASABKAsyGi5nb29n", + "bGUucHJvdG9idWYuVGltZXN0YW1wUgNub3cSMAoUbGVuaWVudF9zY29wZV9z", + "ZWFyY2gYAiABKAhSEmxlbmllbnRTY29wZVNlYXJjaBJECgdnbG9iYWxzGAMg", + "AygLMiouY2VyYm9zLnBvbGljeS52MS5UZXN0T3B0aW9ucy5HbG9iYWxzRW50", + "cnlSB2dsb2JhbHMSNAoWZGVmYXVsdF9wb2xpY3lfdmVyc2lvbhgEIAEoCVIU", + "ZGVmYXVsdFBvbGljeVZlcnNpb24aUgoMR2xvYmFsc0VudHJ5EhAKA2tleRgB", + "IAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZh", + "bHVlUgV2YWx1ZToCOAEinQkKCVRlc3RTdWl0ZRIeCgRuYW1lGAEgASgJQgq6", + "SAdyAhAByAEBUgRuYW1lEiAKC2Rlc2NyaXB0aW9uGAIgASgJUgtkZXNjcmlw", + "dGlvbhISCgRza2lwGAMgASgIUgRza2lwEh8KC3NraXBfcmVhc29uGAQgASgJ", + "Ugpza2lwUmVhc29uEj4KBXRlc3RzGAUgAygLMhsuY2VyYm9zLnBvbGljeS52", + "MS5UZXN0VGFibGVCC7pICJIBAggByAEBUgV0ZXN0cxJLCgpwcmluY2lwYWxz", + "GAYgAygLMisuY2VyYm9zLnBvbGljeS52MS5UZXN0U3VpdGUuUHJpbmNpcGFs", + "c0VudHJ5UgpwcmluY2lwYWxzEkgKCXJlc291cmNlcxgHIAMoCzIqLmNlcmJv", + "cy5wb2xpY3kudjEuVGVzdFN1aXRlLlJlc291cmNlc0VudHJ5UglyZXNvdXJj", + "ZXMSQwoIYXV4X2RhdGEYCCADKAsyKC5jZXJib3MucG9saWN5LnYxLlRlc3RT", + "dWl0ZS5BdXhEYXRhRW50cnlSB2F1eERhdGESNwoHb3B0aW9ucxgJIAEoCzId", + "LmNlcmJvcy5wb2xpY3kudjEuVGVzdE9wdGlvbnNSB29wdGlvbnMSHAoLanNv", + "bl9zY2hlbWEYCiABKAlSByRzY2hlbWESWwoQcHJpbmNpcGFsX2dyb3VwcxgL", + "IAMoCzIwLmNlcmJvcy5wb2xpY3kudjEuVGVzdFN1aXRlLlByaW5jaXBhbEdy", + "b3Vwc0VudHJ5Ug9wcmluY2lwYWxHcm91cHMSWAoPcmVzb3VyY2VfZ3JvdXBz", + "GAwgAygLMi8uY2VyYm9zLnBvbGljeS52MS5UZXN0U3VpdGUuUmVzb3VyY2VH", + "cm91cHNFbnRyeVIOcmVzb3VyY2VHcm91cHMaWgoPUHJpbmNpcGFsc0VudHJ5", + "EhAKA2tleRgBIAEoCVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuY2VyYm9zLmVu", + "Z2luZS52MS5QcmluY2lwYWxSBXZhbHVlOgI4ARpYCg5SZXNvdXJjZXNFbnRy", + "eRIQCgNrZXkYASABKAlSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmNlcmJvcy5l", + "bmdpbmUudjEuUmVzb3VyY2VSBXZhbHVlOgI4ARpVCgxBdXhEYXRhRW50cnkS", + "EAoDa2V5GAEgASgJUgNrZXkSLwoFdmFsdWUYAiABKAsyGS5jZXJib3MuZW5n", + "aW5lLnYxLkF1eERhdGFSBXZhbHVlOgI4ARpxChRQcmluY2lwYWxHcm91cHNF", + "bnRyeRIQCgNrZXkYASABKAlSA2tleRJDCgV2YWx1ZRgCIAEoCzItLmNlcmJv", + "cy5wb2xpY3kudjEuVGVzdEZpeHR1cmVHcm91cC5QcmluY2lwYWxzUgV2YWx1", + "ZToCOAEabwoTUmVzb3VyY2VHcm91cHNFbnRyeRIQCgNrZXkYASABKAlSA2tl", + "eRJCCgV2YWx1ZRgCIAEoCzIsLmNlcmJvcy5wb2xpY3kudjEuVGVzdEZpeHR1", + "cmVHcm91cC5SZXNvdXJjZXNSBXZhbHVlOgI4ASKZEQoJVGVzdFRhYmxlEh4K", + "BG5hbWUYASABKAlCCrpIB3ICEAHIAQFSBG5hbWUSIAoLZGVzY3JpcHRpb24Y", + "AiABKAlSC2Rlc2NyaXB0aW9uEhIKBHNraXAYAyABKAhSBHNraXASHwoLc2tp", + "cF9yZWFzb24YBCABKAlSCnNraXBSZWFzb24SPwoFaW5wdXQYBSABKAsyIS5j", + "ZXJib3MucG9saWN5LnYxLlRlc3RUYWJsZS5JbnB1dEIGukgDyAEBUgVpbnB1", + "dBJQCghleHBlY3RlZBgGIAMoCzInLmNlcmJvcy5wb2xpY3kudjEuVGVzdFRh", + "YmxlLkV4cGVjdGF0aW9uQgu6SAiSAQIIAcgBAVIIZXhwZWN0ZWQSNwoHb3B0", + "aW9ucxgHIAEoCzIdLmNlcmJvcy5wb2xpY3kudjEuVGVzdE9wdGlvbnNSB29w", + "dGlvbnMapwQKBUlucHV0Ei4KCnByaW5jaXBhbHMYASADKAlCDrpIC5IBCBgB", + "IgRyAhABUgpwcmluY2lwYWxzEiwKCXJlc291cmNlcxgCIAMoCUIOukgLkgEI", + "GAEiBHICEAFSCXJlc291cmNlcxItCgdhY3Rpb25zGAMgAygJQhO6SBCSAQoI", + "ARgBIgRyAhAByAEBUgdhY3Rpb25zEhkKCGF1eF9kYXRhGAQgASgJUgdhdXhE", + "YXRhEjkKEHByaW5jaXBhbF9ncm91cHMYBSADKAlCDrpIC5IBCBgBIgRyAhAB", + "Ug9wcmluY2lwYWxHcm91cHMSNwoPcmVzb3VyY2VfZ3JvdXBzGAYgAygJQg66", + "SAuSAQgYASIEcgIQAVIOcmVzb3VyY2VHcm91cHM6gQK6SP0BGn8KEGlucHV0", + "LnByaW5jaXBhbHMSLXByaW5jaXBhbHMgb3IgcHJpbmNpcGFsR3JvdXBzIG11", + "c3QgYmUgcHJlc2VudBo8c2l6ZSh0aGlzLnByaW5jaXBhbHMpID4gMCB8fCBz", + "aXplKHRoaXMucHJpbmNpcGFsX2dyb3VwcykgPiAwGnoKD2lucHV0LnJlc291", + "cmNlcxIrcmVzb3VyY2VzIG9yIHJlc291cmNlR3JvdXBzIG11c3QgYmUgcHJl", + "c2VudBo6c2l6ZSh0aGlzLnJlc291cmNlcykgPiAwIHx8IHNpemUodGhpcy5y", + "ZXNvdXJjZV9ncm91cHMpID4gMBqAAQoST3V0cHV0RXhwZWN0YXRpb25zEiIK", + "BmFjdGlvbhgBIAEoCUIKukgHcgIQAcgBAVIGYWN0aW9uEkYKCGV4cGVjdGVk", + "GAIgAygLMh0uY2VyYm9zLmVuZ2luZS52MS5PdXRwdXRFbnRyeUILukgIkgEC", + "CAHIAQFSCGV4cGVjdGVkGpsJCgtFeHBlY3RhdGlvbhIcCglwcmluY2lwYWwY", + "ASABKAlSCXByaW5jaXBhbBIaCghyZXNvdXJjZRgCIAEoCVIIcmVzb3VyY2US", + "agoHYWN0aW9ucxgDIAMoCzI0LmNlcmJvcy5wb2xpY3kudjEuVGVzdFRhYmxl", + "LkV4cGVjdGF0aW9uLkFjdGlvbnNFbnRyeUIaukgXmgERCAEiBHICEAEqB4IB", + "BBgBGALIAQFSB2FjdGlvbnMSSAoHb3V0cHV0cxgEIAMoCzIuLmNlcmJvcy5w", + "b2xpY3kudjEuVGVzdFRhYmxlLk91dHB1dEV4cGVjdGF0aW9uc1IHb3V0cHV0", + "cxIuCgpwcmluY2lwYWxzGAUgAygJQg66SAuSAQgYASIEcgIQAVIKcHJpbmNp", + "cGFscxIsCglyZXNvdXJjZXMYBiADKAlCDrpIC5IBCBgBIgRyAhABUglyZXNv", + "dXJjZXMSOQoQcHJpbmNpcGFsX2dyb3VwcxgHIAMoCUIOukgLkgEIGAEiBHIC", + "EAFSD3ByaW5jaXBhbEdyb3VwcxI3Cg9yZXNvdXJjZV9ncm91cHMYCCADKAlC", + "DrpIC5IBCBgBIgRyAhABUg5yZXNvdXJjZUdyb3VwcxpUCgxBY3Rpb25zRW50", + "cnkSEAoDa2V5GAEgASgJUgNrZXkSLgoFdmFsdWUYAiABKA4yGC5jZXJib3Mu", + "ZWZmZWN0LnYxLkVmZmVjdFIFdmFsdWU6AjgBOvMEukjvBBqpAQoWZXhwZWN0", + "YXRpb24ucHJpbmNpcGFscxI5cHJpbmNpcGFsLCBwcmluY2lwYWxzLCBvciBw", + "cmluY2lwYWxHcm91cHMgbXVzdCBiZSBwcmVzZW50GlR0aGlzLnByaW5jaXBh", + "bCAhPSAnJyB8fCBzaXplKHRoaXMucHJpbmNpcGFscykgPiAwIHx8IHNpemUo", + "dGhpcy5wcmluY2lwYWxfZ3JvdXBzKSA+IDAajwEKJWV4cGVjdGF0aW9uLnBy", + "aW5jaXBhbF9uYW5kX3ByaW5jaXBhbHMSMHByaW5jaXBhbCBhbmQgcHJpbmNp", + "cGFscyBtYXkgbm90IGJvdGggYmUgcHJlc2VudBo0ISh0aGlzLnByaW5jaXBh", + "bCAhPSAnJyAmJiBzaXplKHRoaXMucHJpbmNpcGFscykgPiAwKRqiAQoVZXhw", + "ZWN0YXRpb24ucmVzb3VyY2VzEjZyZXNvdXJjZSwgcmVzb3VyY2VzLCBvciBy", + "ZXNvdXJjZUdyb3VwcyBtdXN0IGJlIHByZXNlbnQaUXRoaXMucmVzb3VyY2Ug", + "IT0gJycgfHwgc2l6ZSh0aGlzLnJlc291cmNlcykgPiAwIHx8IHNpemUodGhp", + "cy5yZXNvdXJjZV9ncm91cHMpID4gMBqJAQojZXhwZWN0YXRpb24ucmVzb3Vy", + "Y2VfbmFuZF9yZXNvdXJjZXMSLnJlc291cmNlIGFuZCByZXNvdXJjZXMgbWF5", + "IG5vdCBib3RoIGJlIHByZXNlbnQaMiEodGhpcy5yZXNvdXJjZSAhPSAnJyAm", + "JiBzaXplKHRoaXMucmVzb3VyY2VzKSA+IDApItoHCgRUZXN0EjsKBG5hbWUY", + "ASABKAsyHy5jZXJib3MucG9saWN5LnYxLlRlc3QuVGVzdE5hbWVCBrpIA8gB", + "AVIEbmFtZRIgCgtkZXNjcmlwdGlvbhgCIAEoCVILZGVzY3JpcHRpb24SEgoE", + "c2tpcBgDIAEoCFIEc2tpcBIfCgtza2lwX3JlYXNvbhgEIAEoCVIKc2tpcFJl", + "YXNvbhI6CgVpbnB1dBgFIAEoCzIcLmNlcmJvcy5lbmdpbmUudjEuQ2hlY2tJ", + "bnB1dEIGukgDyAEBUgVpbnB1dBJcCghleHBlY3RlZBgGIAMoCzIkLmNlcmJv", + "cy5wb2xpY3kudjEuVGVzdC5FeHBlY3RlZEVudHJ5Qhq6SBeaAREIASIEcgIQ", + "ASoHggEEGAEYAsgBAVIIZXhwZWN0ZWQSNwoHb3B0aW9ucxgHIAEoCzIdLmNl", + "cmJvcy5wb2xpY3kudjEuVGVzdE9wdGlvbnNSB29wdGlvbnMSVgoQZXhwZWN0", + "ZWRfb3V0cHV0cxgIIAMoCzIrLmNlcmJvcy5wb2xpY3kudjEuVGVzdC5FeHBl", + "Y3RlZE91dHB1dHNFbnRyeVIPZXhwZWN0ZWRPdXRwdXRzGp4BCghUZXN0TmFt", + "ZRIyCg90ZXN0X3RhYmxlX25hbWUYASABKAlCCrpIB3ICEAHIAQFSDXRlc3RU", + "YWJsZU5hbWUSLwoNcHJpbmNpcGFsX2tleRgCIAEoCUIKukgHcgIQAcgBAVIM", + "cHJpbmNpcGFsS2V5Ei0KDHJlc291cmNlX2tleRgDIAEoCUIKukgHcgIQAcgB", + "AVILcmVzb3VyY2VLZXkasAEKDU91dHB1dEVudHJpZXMSSwoHZW50cmllcxgB", + "IAMoCzIxLmNlcmJvcy5wb2xpY3kudjEuVGVzdC5PdXRwdXRFbnRyaWVzLkVu", + "dHJpZXNFbnRyeVIHZW50cmllcxpSCgxFbnRyaWVzRW50cnkSEAoDa2V5GAEg", + "ASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFs", + "dWVSBXZhbHVlOgI4ARpVCg1FeHBlY3RlZEVudHJ5EhAKA2tleRgBIAEoCVID", + "a2V5Ei4KBXZhbHVlGAIgASgOMhguY2VyYm9zLmVmZmVjdC52MS5FZmZlY3RS", + "BXZhbHVlOgI4ARpoChRFeHBlY3RlZE91dHB1dHNFbnRyeRIQCgNrZXkYASAB", + "KAlSA2tleRI6CgV2YWx1ZRgCIAEoCzIkLmNlcmJvcy5wb2xpY3kudjEuVGVz", + "dC5PdXRwdXRFbnRyaWVzUgV2YWx1ZToCOAEirRIKC1Rlc3RSZXN1bHRzEjsK", + "BnN1aXRlcxgBIAMoCzIjLmNlcmJvcy5wb2xpY3kudjEuVGVzdFJlc3VsdHMu", + "U3VpdGVSBnN1aXRlcxI/CgdzdW1tYXJ5GAIgASgLMiUuY2VyYm9zLnBvbGlj", + "eS52MS5UZXN0UmVzdWx0cy5TdW1tYXJ5UgdzdW1tYXJ5GlsKBVRhbGx5EjwK", + "BnJlc3VsdBgBIAEoDjIkLmNlcmJvcy5wb2xpY3kudjEuVGVzdFJlc3VsdHMu", + "UmVzdWx0UgZyZXN1bHQSFAoFY291bnQYAiABKA1SBWNvdW50GsEBCgdTdW1t", + "YXJ5EksKDm92ZXJhbGxfcmVzdWx0GAEgASgOMiQuY2VyYm9zLnBvbGljeS52", + "MS5UZXN0UmVzdWx0cy5SZXN1bHRSDW92ZXJhbGxSZXN1bHQSHwoLdGVzdHNf", + "Y291bnQYAiABKA1SCnRlc3RzQ291bnQSSAoNcmVzdWx0X2NvdW50cxgDIAMo", + "CzIjLmNlcmJvcy5wb2xpY3kudjEuVGVzdFJlc3VsdHMuVGFsbHlSDHJlc3Vs", + "dENvdW50cxrdAgoFU3VpdGUSEgoEZmlsZRgBIAEoCVIEZmlsZRISCgRuYW1l", + "GAIgASgJUgRuYW1lEksKCnByaW5jaXBhbHMYAyADKAsyJy5jZXJib3MucG9s", + "aWN5LnYxLlRlc3RSZXN1bHRzLlByaW5jaXBhbEICGAFSCnByaW5jaXBhbHMS", + "PwoHc3VtbWFyeRgEIAEoCzIlLmNlcmJvcy5wb2xpY3kudjEuVGVzdFJlc3Vs", + "dHMuU3VtbWFyeVIHc3VtbWFyeRIUCgVlcnJvchgFIAEoCVIFZXJyb3ISRQoK", + "dGVzdF9jYXNlcxgGIAMoCzImLmNlcmJvcy5wb2xpY3kudjEuVGVzdFJlc3Vs", + "dHMuVGVzdENhc2VSCXRlc3RDYXNlcxIgCgtkZXNjcmlwdGlvbhgHIAEoCVIL", + "ZGVzY3JpcHRpb24SHwoLc2tpcF9yZWFzb24YCCABKAlSCnNraXBSZWFzb24a", + "ZwoIVGVzdENhc2USEgoEbmFtZRgBIAEoCVIEbmFtZRJHCgpwcmluY2lwYWxz", + "GAIgAygLMicuY2VyYm9zLnBvbGljeS52MS5UZXN0UmVzdWx0cy5QcmluY2lw", + "YWxSCnByaW5jaXBhbHMaZQoJUHJpbmNpcGFsEhIKBG5hbWUYASABKAlSBG5h", + "bWUSRAoJcmVzb3VyY2VzGAIgAygLMiYuY2VyYm9zLnBvbGljeS52MS5UZXN0", + "UmVzdWx0cy5SZXNvdXJjZVIJcmVzb3VyY2VzGl4KCFJlc291cmNlEhIKBG5h", + "bWUYASABKAlSBG5hbWUSPgoHYWN0aW9ucxgCIAMoCzIkLmNlcmJvcy5wb2xp", + "Y3kudjEuVGVzdFJlc3VsdHMuQWN0aW9uUgdhY3Rpb25zGl0KBkFjdGlvbhIS", + "CgRuYW1lGAEgASgJUgRuYW1lEj8KB2RldGFpbHMYAiABKAsyJS5jZXJib3Mu", + "cG9saWN5LnYxLlRlc3RSZXN1bHRzLkRldGFpbHNSB2RldGFpbHMazwIKB0Rl", + "dGFpbHMSPAoGcmVzdWx0GAEgASgOMiQuY2VyYm9zLnBvbGljeS52MS5UZXN0", + "UmVzdWx0cy5SZXN1bHRSBnJlc3VsdBJBCgdmYWlsdXJlGAIgASgLMiUuY2Vy", + "Ym9zLnBvbGljeS52MS5UZXN0UmVzdWx0cy5GYWlsdXJlSABSB2ZhaWx1cmUS", + "FgoFZXJyb3IYAyABKAlIAFIFZXJyb3ISQQoHc3VjY2VzcxgFIAEoCzIlLmNl", + "cmJvcy5wb2xpY3kudjEuVGVzdFJlc3VsdHMuU3VjY2Vzc0gAUgdzdWNjZXNz", + "EiEKC3NraXBfcmVhc29uGAYgASgJSABSCnNraXBSZWFzb24SOgoMZW5naW5l", + "X3RyYWNlGAQgAygLMhcuY2VyYm9zLmVuZ2luZS52MS5UcmFjZVILZW5naW5l", + "VHJhY2VCCQoHb3V0Y29tZRqcAwoNT3V0cHV0RmFpbHVyZRIQCgNzcmMYASAB", + "KAlSA3NyYxJdCgptaXNtYXRjaGVkGAIgASgLMjsuY2VyYm9zLnBvbGljeS52", + "MS5UZXN0UmVzdWx0cy5PdXRwdXRGYWlsdXJlLk1pc21hdGNoZWRWYWx1ZUgA", + "UgptaXNtYXRjaGVkElQKB21pc3NpbmcYAyABKAsyOC5jZXJib3MucG9saWN5", + "LnYxLlRlc3RSZXN1bHRzLk91dHB1dEZhaWx1cmUuTWlzc2luZ1ZhbHVlSABS", + "B21pc3NpbmcadQoPTWlzbWF0Y2hlZFZhbHVlEjIKCGV4cGVjdGVkGAEgASgL", + "MhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUghleHBlY3RlZBIuCgZhY3R1YWwY", + "AiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBmFjdHVhbBpCCgxNaXNz", + "aW5nVmFsdWUSMgoIZXhwZWN0ZWQYASABKAsyFi5nb29nbGUucHJvdG9idWYu", + "VmFsdWVSCGV4cGVjdGVkQgkKB291dGNvbWUauAEKB0ZhaWx1cmUSNAoIZXhw", + "ZWN0ZWQYASABKA4yGC5jZXJib3MuZWZmZWN0LnYxLkVmZmVjdFIIZXhwZWN0", + "ZWQSMAoGYWN0dWFsGAIgASgOMhguY2VyYm9zLmVmZmVjdC52MS5FZmZlY3RS", + "BmFjdHVhbBJFCgdvdXRwdXRzGAMgAygLMisuY2VyYm9zLnBvbGljeS52MS5U", + "ZXN0UmVzdWx0cy5PdXRwdXRGYWlsdXJlUgdvdXRwdXRzGnQKB1N1Y2Nlc3MS", + "MAoGZWZmZWN0GAEgASgOMhguY2VyYm9zLmVmZmVjdC52MS5FZmZlY3RSBmVm", + "ZmVjdBI3CgdvdXRwdXRzGAIgAygLMh0uY2VyYm9zLmVuZ2luZS52MS5PdXRw", + "dXRFbnRyeVIHb3V0cHV0cyJuCgZSZXN1bHQSFgoSUkVTVUxUX1VOU1BFQ0lG", + "SUVEEAASEgoOUkVTVUxUX1NLSVBQRUQQARIRCg1SRVNVTFRfUEFTU0VEEAIS", + "EQoNUkVTVUxUX0ZBSUxFRBADEhIKDlJFU1VMVF9FUlJPUkVEEAQqpwEKBEtp", + "bmQSFAoQS0lORF9VTlNQRUNJRklFRBAAEhYKEktJTkRfREVSSVZFRF9ST0xF", + "UxABEhkKFUtJTkRfRVhQT1JUX1ZBUklBQkxFUxACEhIKDktJTkRfUFJJTkNJ", + "UEFMEAMSEQoNS0lORF9SRVNPVVJDRRAEEhQKEEtJTkRfUk9MRV9QT0xJQ1kQ", + "BRIZChVLSU5EX0VYUE9SVF9DT05TVEFOVFMQBiqXAQoQU2NvcGVQZXJtaXNz", + "aW9ucxIhCh1TQ09QRV9QRVJNSVNTSU9OU19VTlNQRUNJRklFRBAAEiUKIVND", + "T1BFX1BFUk1JU1NJT05TX09WRVJSSURFX1BBUkVOVBABEjkKNVNDT1BFX1BF", + "Uk1JU1NJT05TX1JFUVVJUkVfUEFSRU5UQUxfQ09OU0VOVF9GT1JfQUxMT1dT", + "EAJCbwoYZGV2LmNlcmJvcy5hcGkudjEucG9saWN5WjxnaXRodWIuY29tL2Nl", + "cmJvcy9jZXJib3MvYXBpL2dlbnBiL2NlcmJvcy9wb2xpY3kvdjE7cG9saWN5", + "djGqAhRDZXJib3MuQXBpLlYxLlBvbGljeWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Buf.Validate.ValidateReflection.Descriptor, global::Cerbos.Api.V1.Effect.EffectReflection.Descriptor, global::Cerbos.Api.V1.Engine.EngineReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Policy), global::Cerbos.Api.V1.Policy.Policy.Parser, new[]{ "ApiVersion", "Disabled", "Description", "Metadata", "ResourcePolicy", "PrincipalPolicy", "DerivedRoles", "ExportVariables", "Variables", "JsonSchema" }, new[]{ "PolicyType" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Cerbos.Api.V1.Policy.Kind), typeof(global::Cerbos.Api.V1.Policy.ScopePermissions), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Policy), global::Cerbos.Api.V1.Policy.Policy.Parser, new[]{ "ApiVersion", "Disabled", "Description", "Metadata", "ResourcePolicy", "PrincipalPolicy", "DerivedRoles", "ExportVariables", "RolePolicy", "ExportConstants", "Variables", "JsonSchema" }, new[]{ "PolicyType" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.SourceAttributes), global::Cerbos.Api.V1.Policy.SourceAttributes.Parser, new[]{ "Attributes" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Metadata), global::Cerbos.Api.V1.Policy.Metadata.Parser, new[]{ "SourceFile", "Annotations", "Hash", "StoreIdentifer", "StoreIdentifier", "SourceAttributes" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.ResourcePolicy), global::Cerbos.Api.V1.Policy.ResourcePolicy.Parser, new[]{ "Resource", "Version", "ImportDerivedRoles", "Rules", "Scope", "Schemas", "Variables" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.ResourcePolicy), global::Cerbos.Api.V1.Policy.ResourcePolicy.Parser, new[]{ "Resource", "Version", "ImportDerivedRoles", "Rules", "Scope", "Schemas", "Variables", "ScopePermissions", "Constants" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.ResourceRule), global::Cerbos.Api.V1.Policy.ResourceRule.Parser, new[]{ "Actions", "DerivedRoles", "Roles", "Condition", "Effect", "Name", "Output" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.PrincipalPolicy), global::Cerbos.Api.V1.Policy.PrincipalPolicy.Parser, new[]{ "Principal", "Version", "Rules", "Scope", "Variables" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.RolePolicy), global::Cerbos.Api.V1.Policy.RolePolicy.Parser, new[]{ "Role", "ParentRoles", "Scope", "Rules", "ScopePermissions" }, new[]{ "PolicyType" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.RoleRule), global::Cerbos.Api.V1.Policy.RoleRule.Parser, new[]{ "Resource", "AllowActions" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.PrincipalPolicy), global::Cerbos.Api.V1.Policy.PrincipalPolicy.Parser, new[]{ "Principal", "Version", "Rules", "Scope", "Variables", "ScopePermissions", "Constants" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.PrincipalRule), global::Cerbos.Api.V1.Policy.PrincipalRule.Parser, new[]{ "Resource", "Actions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.PrincipalRule.Types.Action), global::Cerbos.Api.V1.Policy.PrincipalRule.Types.Action.Parser, new[]{ "Action_", "Condition", "Effect", "Name", "Output" }, null, null, null, null)}), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.DerivedRoles), global::Cerbos.Api.V1.Policy.DerivedRoles.Parser, new[]{ "Name", "Definitions", "Variables" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.DerivedRoles), global::Cerbos.Api.V1.Policy.DerivedRoles.Parser, new[]{ "Name", "Definitions", "Variables", "Constants" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.RoleDef), global::Cerbos.Api.V1.Policy.RoleDef.Parser, new[]{ "Name", "ParentRoles", "Condition" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.ExportConstants), global::Cerbos.Api.V1.Policy.ExportConstants.Parser, new[]{ "Name", "Definitions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Constants), global::Cerbos.Api.V1.Policy.Constants.Parser, new[]{ "Import", "Local" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.ExportVariables), global::Cerbos.Api.V1.Policy.ExportVariables.Parser, new[]{ "Name", "Definitions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Variables), global::Cerbos.Api.V1.Policy.Variables.Parser, new[]{ "Import", "Local" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Condition), global::Cerbos.Api.V1.Policy.Condition.Parser, new[]{ "Match", "Script" }, new[]{ "Condition" }, null, null, null), @@ -286,25 +379,27 @@ static PolicyReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Output), global::Cerbos.Api.V1.Policy.Output.Parser, new[]{ "Expr", "When" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Output.Types.When), global::Cerbos.Api.V1.Policy.Output.Types.When.Parser, new[]{ "RuleActivated", "ConditionNotMet" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Schemas), global::Cerbos.Api.V1.Policy.Schemas.Parser, new[]{ "PrincipalSchema", "ResourceSchema" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen), global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen.Parser, new[]{ "Actions" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Schemas.Types.Schema), global::Cerbos.Api.V1.Policy.Schemas.Types.Schema.Parser, new[]{ "Ref", "IgnoreWhen" }, null, null, null, null)}), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixture), global::Cerbos.Api.V1.Policy.TestFixture.Parser, null, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixture.Types.Principals), global::Cerbos.Api.V1.Policy.TestFixture.Types.Principals.Parser, new[]{ "Principals_", "JsonSchema" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixture.Types.Resources), global::Cerbos.Api.V1.Policy.TestFixture.Types.Resources.Parser, new[]{ "Resources_", "JsonSchema" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixture), global::Cerbos.Api.V1.Policy.TestFixture.Parser, null, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixture.Types.Principals), global::Cerbos.Api.V1.Policy.TestFixture.Types.Principals.Parser, new[]{ "Principals_", "JsonSchema", "PrincipalGroups" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixture.Types.Resources), global::Cerbos.Api.V1.Policy.TestFixture.Types.Resources.Parser, new[]{ "Resources_", "JsonSchema", "ResourceGroups" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixture.Types.AuxData), global::Cerbos.Api.V1.Policy.TestFixture.Types.AuxData.Parser, new[]{ "AuxData_", "JsonSchema" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })}), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestOptions), global::Cerbos.Api.V1.Policy.TestOptions.Parser, new[]{ "Now", "LenientScopeSearch", "Globals" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestSuite), global::Cerbos.Api.V1.Policy.TestSuite.Parser, new[]{ "Name", "Description", "Skip", "SkipReason", "Tests", "Principals", "Resources", "AuxData", "Options", "JsonSchema" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, null, }), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestTable), global::Cerbos.Api.V1.Policy.TestTable.Parser, new[]{ "Name", "Description", "Skip", "SkipReason", "Input", "Expected", "Options" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestTable.Types.Input), global::Cerbos.Api.V1.Policy.TestTable.Types.Input.Parser, new[]{ "Principals", "Resources", "Actions", "AuxData" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixtureGroup), global::Cerbos.Api.V1.Policy.TestFixtureGroup.Parser, null, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixtureGroup.Types.Principals), global::Cerbos.Api.V1.Policy.TestFixtureGroup.Types.Principals.Parser, new[]{ "Principals_" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestFixtureGroup.Types.Resources), global::Cerbos.Api.V1.Policy.TestFixtureGroup.Types.Resources.Parser, new[]{ "Resources_" }, null, null, null, null)}), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestOptions), global::Cerbos.Api.V1.Policy.TestOptions.Parser, new[]{ "Now", "LenientScopeSearch", "Globals", "DefaultPolicyVersion" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestSuite), global::Cerbos.Api.V1.Policy.TestSuite.Parser, new[]{ "Name", "Description", "Skip", "SkipReason", "Tests", "Principals", "Resources", "AuxData", "Options", "JsonSchema", "PrincipalGroups", "ResourceGroups" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, null, null, null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestTable), global::Cerbos.Api.V1.Policy.TestTable.Parser, new[]{ "Name", "Description", "Skip", "SkipReason", "Input", "Expected", "Options" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestTable.Types.Input), global::Cerbos.Api.V1.Policy.TestTable.Types.Input.Parser, new[]{ "Principals", "Resources", "Actions", "AuxData", "PrincipalGroups", "ResourceGroups" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestTable.Types.OutputExpectations), global::Cerbos.Api.V1.Policy.TestTable.Types.OutputExpectations.Parser, new[]{ "Action", "Expected" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestTable.Types.Expectation), global::Cerbos.Api.V1.Policy.TestTable.Types.Expectation.Parser, new[]{ "Principal", "Resource", "Actions", "Outputs" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })}), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestTable.Types.Expectation), global::Cerbos.Api.V1.Policy.TestTable.Types.Expectation.Parser, new[]{ "Principal", "Resource", "Actions", "Outputs", "Principals", "Resources", "PrincipalGroups", "ResourceGroups" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })}), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Test), global::Cerbos.Api.V1.Policy.Test.Parser, new[]{ "Name", "Description", "Skip", "SkipReason", "Input", "Expected", "Options", "ExpectedOutputs" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Test.Types.TestName), global::Cerbos.Api.V1.Policy.Test.Types.TestName.Parser, new[]{ "TestTableName", "PrincipalKey", "ResourceKey" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.Test.Types.OutputEntries), global::Cerbos.Api.V1.Policy.Test.Types.OutputEntries.Parser, new[]{ "Entries" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), null, null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults), global::Cerbos.Api.V1.Policy.TestResults.Parser, new[]{ "Suites", "Summary" }, null, new[]{ typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Result) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Tally), global::Cerbos.Api.V1.Policy.TestResults.Types.Tally.Parser, new[]{ "Result", "Count" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Summary), global::Cerbos.Api.V1.Policy.TestResults.Types.Summary.Parser, new[]{ "OverallResult", "TestsCount", "ResultCounts" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Suite), global::Cerbos.Api.V1.Policy.TestResults.Types.Suite.Parser, new[]{ "File", "Name", "Principals", "Summary", "Error", "TestCases", "Description" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Suite), global::Cerbos.Api.V1.Policy.TestResults.Types.Suite.Parser, new[]{ "File", "Name", "Principals", "Summary", "Error", "TestCases", "Description", "SkipReason" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.TestCase), global::Cerbos.Api.V1.Policy.TestResults.Types.TestCase.Parser, new[]{ "Name", "Principals" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Principal), global::Cerbos.Api.V1.Policy.TestResults.Types.Principal.Parser, new[]{ "Name", "Resources" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Resource), global::Cerbos.Api.V1.Policy.TestResults.Types.Resource.Parser, new[]{ "Name", "Actions" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Action), global::Cerbos.Api.V1.Policy.TestResults.Types.Action.Parser, new[]{ "Name", "Details" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Details), global::Cerbos.Api.V1.Policy.TestResults.Types.Details.Parser, new[]{ "Result", "Failure", "Error", "Success", "EngineTrace" }, new[]{ "Outcome" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Details), global::Cerbos.Api.V1.Policy.TestResults.Types.Details.Parser, new[]{ "Result", "Failure", "Error", "Success", "SkipReason", "EngineTrace" }, new[]{ "Outcome" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.OutputFailure), global::Cerbos.Api.V1.Policy.TestResults.Types.OutputFailure.Parser, new[]{ "Src", "Mismatched", "Missing" }, new[]{ "Outcome" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.OutputFailure.Types.MismatchedValue), global::Cerbos.Api.V1.Policy.TestResults.Types.OutputFailure.Types.MismatchedValue.Parser, new[]{ "Expected", "Actual" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.OutputFailure.Types.MissingValue), global::Cerbos.Api.V1.Policy.TestResults.Types.OutputFailure.Types.MissingValue.Parser, new[]{ "Expected" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Policy.TestResults.Types.Failure), global::Cerbos.Api.V1.Policy.TestResults.Types.Failure.Parser, new[]{ "Expected", "Actual", "Outputs" }, null, null, null, null), @@ -314,6 +409,25 @@ static PolicyReflection() { #endregion } + #region Enums + public enum Kind { + [pbr::OriginalName("KIND_UNSPECIFIED")] Unspecified = 0, + [pbr::OriginalName("KIND_DERIVED_ROLES")] DerivedRoles = 1, + [pbr::OriginalName("KIND_EXPORT_VARIABLES")] ExportVariables = 2, + [pbr::OriginalName("KIND_PRINCIPAL")] Principal = 3, + [pbr::OriginalName("KIND_RESOURCE")] Resource = 4, + [pbr::OriginalName("KIND_ROLE_POLICY")] RolePolicy = 5, + [pbr::OriginalName("KIND_EXPORT_CONSTANTS")] ExportConstants = 6, + } + + public enum ScopePermissions { + [pbr::OriginalName("SCOPE_PERMISSIONS_UNSPECIFIED")] Unspecified = 0, + [pbr::OriginalName("SCOPE_PERMISSIONS_OVERRIDE_PARENT")] OverrideParent = 1, + [pbr::OriginalName("SCOPE_PERMISSIONS_REQUIRE_PARENTAL_CONSENT_FOR_ALLOWS")] RequireParentalConsentForAllows = 2, + } + + #endregion + #region Messages [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] public sealed partial class Policy : pb::IMessage @@ -369,6 +483,12 @@ public Policy(Policy other) : this() { case PolicyTypeOneofCase.ExportVariables: ExportVariables = other.ExportVariables.Clone(); break; + case PolicyTypeOneofCase.RolePolicy: + RolePolicy = other.RolePolicy.Clone(); + break; + case PolicyTypeOneofCase.ExportConstants: + ExportConstants = other.ExportConstants.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -476,6 +596,30 @@ public string Description { } } + /// Field number for the "role_policy" field. + public const int RolePolicyFieldNumber = 11; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.RolePolicy RolePolicy { + get { return policyTypeCase_ == PolicyTypeOneofCase.RolePolicy ? (global::Cerbos.Api.V1.Policy.RolePolicy) policyType_ : null; } + set { + policyType_ = value; + policyTypeCase_ = value == null ? PolicyTypeOneofCase.None : PolicyTypeOneofCase.RolePolicy; + } + } + + /// Field number for the "export_constants" field. + public const int ExportConstantsFieldNumber = 12; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.ExportConstants ExportConstants { + get { return policyTypeCase_ == PolicyTypeOneofCase.ExportConstants ? (global::Cerbos.Api.V1.Policy.ExportConstants) policyType_ : null; } + set { + policyType_ = value; + policyTypeCase_ = value == null ? PolicyTypeOneofCase.None : PolicyTypeOneofCase.ExportConstants; + } + } + /// Field number for the "variables" field. public const int VariablesFieldNumber = 8; private static readonly pbc::MapField.Codec _map_variables_codec @@ -508,6 +652,8 @@ public enum PolicyTypeOneofCase { PrincipalPolicy = 6, DerivedRoles = 7, ExportVariables = 10, + RolePolicy = 11, + ExportConstants = 12, } private PolicyTypeOneofCase policyTypeCase_ = PolicyTypeOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -546,6 +692,8 @@ public bool Equals(Policy other) { if (!object.Equals(PrincipalPolicy, other.PrincipalPolicy)) return false; if (!object.Equals(DerivedRoles, other.DerivedRoles)) return false; if (!object.Equals(ExportVariables, other.ExportVariables)) return false; + if (!object.Equals(RolePolicy, other.RolePolicy)) return false; + if (!object.Equals(ExportConstants, other.ExportConstants)) return false; if (!Variables.Equals(other.Variables)) return false; if (JsonSchema != other.JsonSchema) return false; if (PolicyTypeCase != other.PolicyTypeCase) return false; @@ -564,6 +712,8 @@ public override int GetHashCode() { if (policyTypeCase_ == PolicyTypeOneofCase.PrincipalPolicy) hash ^= PrincipalPolicy.GetHashCode(); if (policyTypeCase_ == PolicyTypeOneofCase.DerivedRoles) hash ^= DerivedRoles.GetHashCode(); if (policyTypeCase_ == PolicyTypeOneofCase.ExportVariables) hash ^= ExportVariables.GetHashCode(); + if (policyTypeCase_ == PolicyTypeOneofCase.RolePolicy) hash ^= RolePolicy.GetHashCode(); + if (policyTypeCase_ == PolicyTypeOneofCase.ExportConstants) hash ^= ExportConstants.GetHashCode(); hash ^= Variables.GetHashCode(); if (JsonSchema.Length != 0) hash ^= JsonSchema.GetHashCode(); hash ^= (int) policyTypeCase_; @@ -622,6 +772,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(82); output.WriteMessage(ExportVariables); } + if (policyTypeCase_ == PolicyTypeOneofCase.RolePolicy) { + output.WriteRawTag(90); + output.WriteMessage(RolePolicy); + } + if (policyTypeCase_ == PolicyTypeOneofCase.ExportConstants) { + output.WriteRawTag(98); + output.WriteMessage(ExportConstants); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -669,6 +827,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(82); output.WriteMessage(ExportVariables); } + if (policyTypeCase_ == PolicyTypeOneofCase.RolePolicy) { + output.WriteRawTag(90); + output.WriteMessage(RolePolicy); + } + if (policyTypeCase_ == PolicyTypeOneofCase.ExportConstants) { + output.WriteRawTag(98); + output.WriteMessage(ExportConstants); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -703,6 +869,12 @@ public int CalculateSize() { if (policyTypeCase_ == PolicyTypeOneofCase.ExportVariables) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(ExportVariables); } + if (policyTypeCase_ == PolicyTypeOneofCase.RolePolicy) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(RolePolicy); + } + if (policyTypeCase_ == PolicyTypeOneofCase.ExportConstants) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(ExportConstants); + } size += variables_.CalculateSize(_map_variables_codec); if (JsonSchema.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonSchema); @@ -763,6 +935,18 @@ public void MergeFrom(Policy other) { } ExportVariables.MergeFrom(other.ExportVariables); break; + case PolicyTypeOneofCase.RolePolicy: + if (RolePolicy == null) { + RolePolicy = new global::Cerbos.Api.V1.Policy.RolePolicy(); + } + RolePolicy.MergeFrom(other.RolePolicy); + break; + case PolicyTypeOneofCase.ExportConstants: + if (ExportConstants == null) { + ExportConstants = new global::Cerbos.Api.V1.Policy.ExportConstants(); + } + ExportConstants.MergeFrom(other.ExportConstants); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -847,6 +1031,24 @@ public void MergeFrom(pb::CodedInputStream input) { ExportVariables = subBuilder; break; } + case 90: { + global::Cerbos.Api.V1.Policy.RolePolicy subBuilder = new global::Cerbos.Api.V1.Policy.RolePolicy(); + if (policyTypeCase_ == PolicyTypeOneofCase.RolePolicy) { + subBuilder.MergeFrom(RolePolicy); + } + input.ReadMessage(subBuilder); + RolePolicy = subBuilder; + break; + } + case 98: { + global::Cerbos.Api.V1.Policy.ExportConstants subBuilder = new global::Cerbos.Api.V1.Policy.ExportConstants(); + if (policyTypeCase_ == PolicyTypeOneofCase.ExportConstants) { + subBuilder.MergeFrom(ExportConstants); + } + input.ReadMessage(subBuilder); + ExportConstants = subBuilder; + break; + } } } #endif @@ -929,6 +1131,24 @@ public void MergeFrom(pb::CodedInputStream input) { ExportVariables = subBuilder; break; } + case 90: { + global::Cerbos.Api.V1.Policy.RolePolicy subBuilder = new global::Cerbos.Api.V1.Policy.RolePolicy(); + if (policyTypeCase_ == PolicyTypeOneofCase.RolePolicy) { + subBuilder.MergeFrom(RolePolicy); + } + input.ReadMessage(subBuilder); + RolePolicy = subBuilder; + break; + } + case 98: { + global::Cerbos.Api.V1.Policy.ExportConstants subBuilder = new global::Cerbos.Api.V1.Policy.ExportConstants(); + if (policyTypeCase_ == PolicyTypeOneofCase.ExportConstants) { + subBuilder.MergeFrom(ExportConstants); + } + input.ReadMessage(subBuilder); + ExportConstants = subBuilder; + break; + } } } } @@ -1555,6 +1775,8 @@ public ResourcePolicy(ResourcePolicy other) : this() { scope_ = other.scope_; schemas_ = other.schemas_ != null ? other.schemas_.Clone() : null; variables_ = other.variables_ != null ? other.variables_.Clone() : null; + scopePermissions_ = other.scopePermissions_; + constants_ = other.constants_ != null ? other.constants_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1646,6 +1868,30 @@ public string Scope { } } + /// Field number for the "scope_permissions" field. + public const int ScopePermissionsFieldNumber = 8; + private global::Cerbos.Api.V1.Policy.ScopePermissions scopePermissions_ = global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.ScopePermissions ScopePermissions { + get { return scopePermissions_; } + set { + scopePermissions_ = value; + } + } + + /// Field number for the "constants" field. + public const int ConstantsFieldNumber = 9; + private global::Cerbos.Api.V1.Policy.Constants constants_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Constants Constants { + get { return constants_; } + set { + constants_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1668,6 +1914,8 @@ public bool Equals(ResourcePolicy other) { if (Scope != other.Scope) return false; if (!object.Equals(Schemas, other.Schemas)) return false; if (!object.Equals(Variables, other.Variables)) return false; + if (ScopePermissions != other.ScopePermissions) return false; + if (!object.Equals(Constants, other.Constants)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1682,6 +1930,8 @@ public override int GetHashCode() { if (Scope.Length != 0) hash ^= Scope.GetHashCode(); if (schemas_ != null) hash ^= Schemas.GetHashCode(); if (variables_ != null) hash ^= Variables.GetHashCode(); + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) hash ^= ScopePermissions.GetHashCode(); + if (constants_ != null) hash ^= Constants.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1722,6 +1972,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(Variables); } + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + output.WriteRawTag(64); + output.WriteEnum((int) ScopePermissions); + } + if (constants_ != null) { + output.WriteRawTag(74); + output.WriteMessage(Constants); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1754,6 +2012,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(Variables); } + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + output.WriteRawTag(64); + output.WriteEnum((int) ScopePermissions); + } + if (constants_ != null) { + output.WriteRawTag(74); + output.WriteMessage(Constants); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1781,6 +2047,12 @@ public int CalculateSize() { if (variables_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Variables); } + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ScopePermissions); + } + if (constants_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Constants); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1816,6 +2088,15 @@ public void MergeFrom(ResourcePolicy other) { } Variables.MergeFrom(other.Variables); } + if (other.ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + ScopePermissions = other.ScopePermissions; + } + if (other.constants_ != null) { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); + } + Constants.MergeFrom(other.Constants); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1869,6 +2150,17 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Variables); break; } + case 64: { + ScopePermissions = (global::Cerbos.Api.V1.Policy.ScopePermissions) input.ReadEnum(); + break; + } + case 74: { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); + } + input.ReadMessage(Constants); + break; + } } } #endif @@ -1922,6 +2214,17 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Variables); break; } + case 64: { + ScopePermissions = (global::Cerbos.Api.V1.Policy.ScopePermissions) input.ReadEnum(); + break; + } + case 74: { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); + } + input.ReadMessage(Constants); + break; + } } } } @@ -2335,16 +2638,16 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class PrincipalPolicy : pb::IMessage + public sealed partial class RolePolicy : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PrincipalPolicy()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RolePolicy()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2360,7 +2663,7 @@ public sealed partial class PrincipalPolicy : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PrincipalPolicy() { + public RolePolicy() { OnConstruction(); } @@ -2368,58 +2671,65 @@ public PrincipalPolicy() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PrincipalPolicy(PrincipalPolicy other) : this() { - principal_ = other.principal_; - version_ = other.version_; - rules_ = other.rules_.Clone(); + public RolePolicy(RolePolicy other) : this() { + parentRoles_ = other.parentRoles_.Clone(); scope_ = other.scope_; - variables_ = other.variables_ != null ? other.variables_.Clone() : null; + rules_ = other.rules_.Clone(); + scopePermissions_ = other.scopePermissions_; + switch (other.PolicyTypeCase) { + case PolicyTypeOneofCase.Role: + Role = other.Role; + break; + } + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PrincipalPolicy Clone() { - return new PrincipalPolicy(this); + public RolePolicy Clone() { + return new RolePolicy(this); } - /// Field number for the "principal" field. - public const int PrincipalFieldNumber = 1; - private string principal_ = ""; + /// Field number for the "role" field. + public const int RoleFieldNumber = 1; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Principal { - get { return principal_; } + public string Role { + get { return HasRole ? (string) policyType_ : ""; } set { - principal_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + policyType_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + policyTypeCase_ = PolicyTypeOneofCase.Role; } } - - /// Field number for the "version" field. - public const int VersionFieldNumber = 2; - private string version_ = ""; + /// Gets whether the "role" field is set [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Version { - get { return version_; } - set { - version_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + public bool HasRole { + get { return policyTypeCase_ == PolicyTypeOneofCase.Role; } + } + /// Clears the value of the oneof if it's currently set to "role" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRole() { + if (HasRole) { + ClearPolicyType(); } } - /// Field number for the "rules" field. - public const int RulesFieldNumber = 3; - private static readonly pb::FieldCodec _repeated_rules_codec - = pb::FieldCodec.ForMessage(26, global::Cerbos.Api.V1.Policy.PrincipalRule.Parser); - private readonly pbc::RepeatedField rules_ = new pbc::RepeatedField(); + /// Field number for the "parent_roles" field. + public const int ParentRolesFieldNumber = 5; + private static readonly pb::FieldCodec _repeated_parentRoles_codec + = pb::FieldCodec.ForString(42); + private readonly pbc::RepeatedField parentRoles_ = new pbc::RepeatedField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Rules { - get { return rules_; } + public pbc::RepeatedField ParentRoles { + get { return parentRoles_; } } /// Field number for the "scope" field. - public const int ScopeFieldNumber = 4; + public const int ScopeFieldNumber = 2; private string scope_ = ""; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2430,38 +2740,70 @@ public string Scope { } } - /// Field number for the "variables" field. - public const int VariablesFieldNumber = 5; - private global::Cerbos.Api.V1.Policy.Variables variables_; + /// Field number for the "rules" field. + public const int RulesFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_rules_codec + = pb::FieldCodec.ForMessage(26, global::Cerbos.Api.V1.Policy.RoleRule.Parser); + private readonly pbc::RepeatedField rules_ = new pbc::RepeatedField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Variables Variables { - get { return variables_; } + public pbc::RepeatedField Rules { + get { return rules_; } + } + + /// Field number for the "scope_permissions" field. + public const int ScopePermissionsFieldNumber = 4; + private global::Cerbos.Api.V1.Policy.ScopePermissions scopePermissions_ = global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.ScopePermissions ScopePermissions { + get { return scopePermissions_; } set { - variables_ = value; + scopePermissions_ = value; } } + private object policyType_; + /// Enum of possible cases for the "policy_type" oneof. + public enum PolicyTypeOneofCase { + None = 0, + Role = 1, + } + private PolicyTypeOneofCase policyTypeCase_ = PolicyTypeOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PolicyTypeOneofCase PolicyTypeCase { + get { return policyTypeCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPolicyType() { + policyTypeCase_ = PolicyTypeOneofCase.None; + policyType_ = null; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as PrincipalPolicy); + return Equals(other as RolePolicy); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(PrincipalPolicy other) { + public bool Equals(RolePolicy other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (Principal != other.Principal) return false; - if (Version != other.Version) return false; - if(!rules_.Equals(other.rules_)) return false; + if (Role != other.Role) return false; + if(!parentRoles_.Equals(other.parentRoles_)) return false; if (Scope != other.Scope) return false; - if (!object.Equals(Variables, other.Variables)) return false; + if(!rules_.Equals(other.rules_)) return false; + if (ScopePermissions != other.ScopePermissions) return false; + if (PolicyTypeCase != other.PolicyTypeCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2469,11 +2811,12 @@ public bool Equals(PrincipalPolicy other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (Principal.Length != 0) hash ^= Principal.GetHashCode(); - if (Version.Length != 0) hash ^= Version.GetHashCode(); - hash ^= rules_.GetHashCode(); + if (HasRole) hash ^= Role.GetHashCode(); + hash ^= parentRoles_.GetHashCode(); if (Scope.Length != 0) hash ^= Scope.GetHashCode(); - if (variables_ != null) hash ^= Variables.GetHashCode(); + hash ^= rules_.GetHashCode(); + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) hash ^= ScopePermissions.GetHashCode(); + hash ^= (int) policyTypeCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2492,23 +2835,20 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (Principal.Length != 0) { + if (HasRole) { output.WriteRawTag(10); - output.WriteString(Principal); - } - if (Version.Length != 0) { - output.WriteRawTag(18); - output.WriteString(Version); + output.WriteString(Role); } - rules_.WriteTo(output, _repeated_rules_codec); if (Scope.Length != 0) { - output.WriteRawTag(34); + output.WriteRawTag(18); output.WriteString(Scope); } - if (variables_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Variables); + rules_.WriteTo(output, _repeated_rules_codec); + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + output.WriteRawTag(32); + output.WriteEnum((int) ScopePermissions); } + parentRoles_.WriteTo(output, _repeated_parentRoles_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2519,23 +2859,20 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Principal.Length != 0) { + if (HasRole) { output.WriteRawTag(10); - output.WriteString(Principal); - } - if (Version.Length != 0) { - output.WriteRawTag(18); - output.WriteString(Version); + output.WriteString(Role); } - rules_.WriteTo(ref output, _repeated_rules_codec); if (Scope.Length != 0) { - output.WriteRawTag(34); + output.WriteRawTag(18); output.WriteString(Scope); } - if (variables_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Variables); + rules_.WriteTo(ref output, _repeated_rules_codec); + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + output.WriteRawTag(32); + output.WriteEnum((int) ScopePermissions); } + parentRoles_.WriteTo(ref output, _repeated_parentRoles_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2546,18 +2883,16 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (Principal.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Principal); + if (HasRole) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Role); } - if (Version.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Version); - } - size += rules_.CalculateSize(_repeated_rules_codec); + size += parentRoles_.CalculateSize(_repeated_parentRoles_codec); if (Scope.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Scope); } - if (variables_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Variables); + size += rules_.CalculateSize(_repeated_rules_codec); + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ScopePermissions); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -2567,26 +2902,24 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(PrincipalPolicy other) { + public void MergeFrom(RolePolicy other) { if (other == null) { return; } - if (other.Principal.Length != 0) { - Principal = other.Principal; - } - if (other.Version.Length != 0) { - Version = other.Version; - } - rules_.Add(other.rules_); + parentRoles_.Add(other.parentRoles_); if (other.Scope.Length != 0) { Scope = other.Scope; } - if (other.variables_ != null) { - if (variables_ == null) { - Variables = new global::Cerbos.Api.V1.Policy.Variables(); - } - Variables.MergeFrom(other.Variables); + rules_.Add(other.rules_); + if (other.ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + ScopePermissions = other.ScopePermissions; + } + switch (other.PolicyTypeCase) { + case PolicyTypeOneofCase.Role: + Role = other.Role; + break; } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2607,26 +2940,23 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - Principal = input.ReadString(); + Role = input.ReadString(); break; } case 18: { - Version = input.ReadString(); + Scope = input.ReadString(); break; } case 26: { rules_.AddEntriesFrom(input, _repeated_rules_codec); break; } - case 34: { - Scope = input.ReadString(); + case 32: { + ScopePermissions = (global::Cerbos.Api.V1.Policy.ScopePermissions) input.ReadEnum(); break; } case 42: { - if (variables_ == null) { - Variables = new global::Cerbos.Api.V1.Policy.Variables(); - } - input.ReadMessage(Variables); + parentRoles_.AddEntriesFrom(input, _repeated_parentRoles_codec); break; } } @@ -2649,26 +2979,23 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - Principal = input.ReadString(); + Role = input.ReadString(); break; } case 18: { - Version = input.ReadString(); + Scope = input.ReadString(); break; } case 26: { rules_.AddEntriesFrom(ref input, _repeated_rules_codec); break; } - case 34: { - Scope = input.ReadString(); + case 32: { + ScopePermissions = (global::Cerbos.Api.V1.Policy.ScopePermissions) input.ReadEnum(); break; } case 42: { - if (variables_ == null) { - Variables = new global::Cerbos.Api.V1.Policy.Variables(); - } - input.ReadMessage(Variables); + parentRoles_.AddEntriesFrom(ref input, _repeated_parentRoles_codec); break; } } @@ -2679,16 +3006,16 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class PrincipalRule : pb::IMessage + public sealed partial class RoleRule : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PrincipalRule()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RoleRule()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2704,7 +3031,7 @@ public sealed partial class PrincipalRule : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PrincipalRule() { + public RoleRule() { OnConstruction(); } @@ -2712,16 +3039,16 @@ public PrincipalRule() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PrincipalRule(PrincipalRule other) : this() { + public RoleRule(RoleRule other) : this() { resource_ = other.resource_; - actions_ = other.actions_.Clone(); + allowActions_ = other.allowActions_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public PrincipalRule Clone() { - return new PrincipalRule(this); + public RoleRule Clone() { + return new RoleRule(this); } /// Field number for the "resource" field. @@ -2736,26 +3063,26 @@ public string Resource { } } - /// Field number for the "actions" field. - public const int ActionsFieldNumber = 2; - private static readonly pb::FieldCodec _repeated_actions_codec - = pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Policy.PrincipalRule.Types.Action.Parser); - private readonly pbc::RepeatedField actions_ = new pbc::RepeatedField(); + /// Field number for the "allow_actions" field. + public const int AllowActionsFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_allowActions_codec + = pb::FieldCodec.ForString(18); + private readonly pbc::RepeatedField allowActions_ = new pbc::RepeatedField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Actions { - get { return actions_; } + public pbc::RepeatedField AllowActions { + get { return allowActions_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as PrincipalRule); + return Equals(other as RoleRule); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(PrincipalRule other) { + public bool Equals(RoleRule other) { if (ReferenceEquals(other, null)) { return false; } @@ -2763,7 +3090,7 @@ public bool Equals(PrincipalRule other) { return true; } if (Resource != other.Resource) return false; - if(!actions_.Equals(other.actions_)) return false; + if(!allowActions_.Equals(other.allowActions_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2772,7 +3099,7 @@ public bool Equals(PrincipalRule other) { public override int GetHashCode() { int hash = 1; if (Resource.Length != 0) hash ^= Resource.GetHashCode(); - hash ^= actions_.GetHashCode(); + hash ^= allowActions_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2795,7 +3122,7 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteString(Resource); } - actions_.WriteTo(output, _repeated_actions_codec); + allowActions_.WriteTo(output, _repeated_allowActions_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2810,7 +3137,7 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteString(Resource); } - actions_.WriteTo(ref output, _repeated_actions_codec); + allowActions_.WriteTo(ref output, _repeated_allowActions_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2824,7 +3151,7 @@ public int CalculateSize() { if (Resource.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Resource); } - size += actions_.CalculateSize(_repeated_actions_codec); + size += allowActions_.CalculateSize(_repeated_allowActions_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2833,14 +3160,14 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(PrincipalRule other) { + public void MergeFrom(RoleRule other) { if (other == null) { return; } if (other.Resource.Length != 0) { Resource = other.Resource; } - actions_.Add(other.actions_); + allowActions_.Add(other.allowActions_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2865,7 +3192,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 18: { - actions_.AddEntriesFrom(input, _repeated_actions_codec); + allowActions_.AddEntriesFrom(input, _repeated_allowActions_codec); break; } } @@ -2892,7 +3219,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 18: { - actions_.AddEntriesFrom(ref input, _repeated_actions_codec); + allowActions_.AddEntriesFrom(ref input, _repeated_allowActions_codec); break; } } @@ -2900,396 +3227,1857 @@ public void MergeFrom(pb::CodedInputStream input) { } #endif - #region Nested types - /// Container for nested types declared in the PrincipalRule message type. + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class PrincipalPolicy : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PrincipalPolicy()); + private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static partial class Types { - [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Action : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Action()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PrincipalRule.Descriptor.NestedTypes[0]; } - } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[7]; } + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Action() { - OnConstruction(); - } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PrincipalPolicy() { + OnConstruction(); + } - partial void OnConstruction(); + partial void OnConstruction(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Action(Action other) : this() { - action_ = other.action_; - condition_ = other.condition_ != null ? other.condition_.Clone() : null; - effect_ = other.effect_; - name_ = other.name_; - output_ = other.output_ != null ? other.output_.Clone() : null; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PrincipalPolicy(PrincipalPolicy other) : this() { + principal_ = other.principal_; + version_ = other.version_; + rules_ = other.rules_.Clone(); + scope_ = other.scope_; + variables_ = other.variables_ != null ? other.variables_.Clone() : null; + scopePermissions_ = other.scopePermissions_; + constants_ = other.constants_ != null ? other.constants_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Action Clone() { - return new Action(this); - } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PrincipalPolicy Clone() { + return new PrincipalPolicy(this); + } - /// Field number for the "action" field. - public const int Action_FieldNumber = 1; - private string action_ = ""; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Action_ { - get { return action_; } - set { - action_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } + /// Field number for the "principal" field. + public const int PrincipalFieldNumber = 1; + private string principal_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Principal { + get { return principal_; } + set { + principal_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } - /// Field number for the "condition" field. - public const int ConditionFieldNumber = 2; - private global::Cerbos.Api.V1.Policy.Condition condition_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Condition Condition { - get { return condition_; } - set { - condition_ = value; - } - } + /// Field number for the "version" field. + public const int VersionFieldNumber = 2; + private string version_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Version { + get { return version_; } + set { + version_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } - /// Field number for the "effect" field. - public const int EffectFieldNumber = 3; - private global::Cerbos.Api.V1.Effect.Effect effect_ = global::Cerbos.Api.V1.Effect.Effect.Unspecified; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Effect.Effect Effect { - get { return effect_; } - set { - effect_ = value; - } - } + /// Field number for the "rules" field. + public const int RulesFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_rules_codec + = pb::FieldCodec.ForMessage(26, global::Cerbos.Api.V1.Policy.PrincipalRule.Parser); + private readonly pbc::RepeatedField rules_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Rules { + get { return rules_; } + } - /// Field number for the "name" field. - public const int NameFieldNumber = 4; - private string name_ = ""; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Name { - get { return name_; } - set { - name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } + /// Field number for the "scope" field. + public const int ScopeFieldNumber = 4; + private string scope_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Scope { + get { return scope_; } + set { + scope_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } - /// Field number for the "output" field. - public const int OutputFieldNumber = 5; - private global::Cerbos.Api.V1.Policy.Output output_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Output Output { - get { return output_; } - set { - output_ = value; - } - } + /// Field number for the "variables" field. + public const int VariablesFieldNumber = 5; + private global::Cerbos.Api.V1.Policy.Variables variables_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Variables Variables { + get { return variables_; } + set { + variables_ = value; + } + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Action); - } + /// Field number for the "scope_permissions" field. + public const int ScopePermissionsFieldNumber = 6; + private global::Cerbos.Api.V1.Policy.ScopePermissions scopePermissions_ = global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.ScopePermissions ScopePermissions { + get { return scopePermissions_; } + set { + scopePermissions_ = value; + } + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Action other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Action_ != other.Action_) return false; - if (!object.Equals(Condition, other.Condition)) return false; - if (Effect != other.Effect) return false; - if (Name != other.Name) return false; - if (!object.Equals(Output, other.Output)) return false; - return Equals(_unknownFields, other._unknownFields); - } + /// Field number for the "constants" field. + public const int ConstantsFieldNumber = 7; + private global::Cerbos.Api.V1.Policy.Constants constants_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Constants Constants { + get { return constants_; } + set { + constants_ = value; + } + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (Action_.Length != 0) hash ^= Action_.GetHashCode(); - if (condition_ != null) hash ^= Condition.GetHashCode(); - if (Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) hash ^= Effect.GetHashCode(); - if (Name.Length != 0) hash ^= Name.GetHashCode(); - if (output_ != null) hash ^= Output.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PrincipalPolicy); + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PrincipalPolicy other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Principal != other.Principal) return false; + if (Version != other.Version) return false; + if(!rules_.Equals(other.rules_)) return false; + if (Scope != other.Scope) return false; + if (!object.Equals(Variables, other.Variables)) return false; + if (ScopePermissions != other.ScopePermissions) return false; + if (!object.Equals(Constants, other.Constants)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Principal.Length != 0) hash ^= Principal.GetHashCode(); + if (Version.Length != 0) hash ^= Version.GetHashCode(); + hash ^= rules_.GetHashCode(); + if (Scope.Length != 0) hash ^= Scope.GetHashCode(); + if (variables_ != null) hash ^= Variables.GetHashCode(); + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) hash ^= ScopePermissions.GetHashCode(); + if (constants_ != null) hash ^= Constants.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Principal.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Principal); + } + if (Version.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Version); + } + rules_.WriteTo(output, _repeated_rules_codec); + if (Scope.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Scope); + } + if (variables_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Variables); + } + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + output.WriteRawTag(48); + output.WriteEnum((int) ScopePermissions); + } + if (constants_ != null) { + output.WriteRawTag(58); + output.WriteMessage(Constants); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Principal.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Principal); + } + if (Version.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Version); + } + rules_.WriteTo(ref output, _repeated_rules_codec); + if (Scope.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Scope); + } + if (variables_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Variables); + } + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + output.WriteRawTag(48); + output.WriteEnum((int) ScopePermissions); + } + if (constants_ != null) { + output.WriteRawTag(58); + output.WriteMessage(Constants); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Principal.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Principal); + } + if (Version.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Version); + } + size += rules_.CalculateSize(_repeated_rules_codec); + if (Scope.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Scope); + } + if (variables_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Variables); + } + if (ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ScopePermissions); + } + if (constants_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Constants); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PrincipalPolicy other) { + if (other == null) { + return; + } + if (other.Principal.Length != 0) { + Principal = other.Principal; + } + if (other.Version.Length != 0) { + Version = other.Version; + } + rules_.Add(other.rules_); + if (other.Scope.Length != 0) { + Scope = other.Scope; + } + if (other.variables_ != null) { + if (variables_ == null) { + Variables = new global::Cerbos.Api.V1.Policy.Variables(); + } + Variables.MergeFrom(other.Variables); + } + if (other.ScopePermissions != global::Cerbos.Api.V1.Policy.ScopePermissions.Unspecified) { + ScopePermissions = other.ScopePermissions; + } + if (other.constants_ != null) { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); } + Constants.MergeFrom(other.Constants); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (Action_.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Action_); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Principal = input.ReadString(); + break; } - if (condition_ != null) { - output.WriteRawTag(18); - output.WriteMessage(Condition); + case 18: { + Version = input.ReadString(); + break; } - if (Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) { - output.WriteRawTag(24); - output.WriteEnum((int) Effect); + case 26: { + rules_.AddEntriesFrom(input, _repeated_rules_codec); + break; } - if (Name.Length != 0) { - output.WriteRawTag(34); - output.WriteString(Name); + case 34: { + Scope = input.ReadString(); + break; } - if (output_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Output); + case 42: { + if (variables_ == null) { + Variables = new global::Cerbos.Api.V1.Policy.Variables(); + } + input.ReadMessage(Variables); + break; } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); + case 48: { + ScopePermissions = (global::Cerbos.Api.V1.Policy.ScopePermissions) input.ReadEnum(); + break; + } + case 58: { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); + } + input.ReadMessage(Constants); + break; } - #endif } + } + #endif + } - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Action_.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Action_); - } - if (condition_ != null) { - output.WriteRawTag(18); - output.WriteMessage(Condition); - } - if (Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) { - output.WriteRawTag(24); - output.WriteEnum((int) Effect); - } - if (Name.Length != 0) { - output.WriteRawTag(34); - output.WriteString(Name); + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Principal = input.ReadString(); + break; } - if (output_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Output); + case 18: { + Version = input.ReadString(); + break; } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); + case 26: { + rules_.AddEntriesFrom(ref input, _repeated_rules_codec); + break; } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (Action_.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Action_); + case 34: { + Scope = input.ReadString(); + break; } - if (condition_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Condition); + case 42: { + if (variables_ == null) { + Variables = new global::Cerbos.Api.V1.Policy.Variables(); + } + input.ReadMessage(Variables); + break; } - if (Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Effect); + case 48: { + ScopePermissions = (global::Cerbos.Api.V1.Policy.ScopePermissions) input.ReadEnum(); + break; } - if (Name.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + case 58: { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); + } + input.ReadMessage(Constants); + break; } - if (output_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Output); + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class PrincipalRule : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PrincipalRule()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[8]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PrincipalRule() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PrincipalRule(PrincipalRule other) : this() { + resource_ = other.resource_; + actions_ = other.actions_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PrincipalRule Clone() { + return new PrincipalRule(this); + } + + /// Field number for the "resource" field. + public const int ResourceFieldNumber = 1; + private string resource_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Resource { + get { return resource_; } + set { + resource_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "actions" field. + public const int ActionsFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_actions_codec + = pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Policy.PrincipalRule.Types.Action.Parser); + private readonly pbc::RepeatedField actions_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Actions { + get { return actions_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PrincipalRule); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PrincipalRule other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Resource != other.Resource) return false; + if(!actions_.Equals(other.actions_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Resource.Length != 0) hash ^= Resource.GetHashCode(); + hash ^= actions_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Resource.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Resource); + } + actions_.WriteTo(output, _repeated_actions_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Resource.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Resource); + } + actions_.WriteTo(ref output, _repeated_actions_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Resource.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Resource); + } + size += actions_.CalculateSize(_repeated_actions_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PrincipalRule other) { + if (other == null) { + return; + } + if (other.Resource.Length != 0) { + Resource = other.Resource; + } + actions_.Add(other.actions_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Resource = input.ReadString(); + break; } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); + case 18: { + actions_.AddEntriesFrom(input, _repeated_actions_codec); + break; } - return size; } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Resource = input.ReadString(); + break; + } + case 18: { + actions_.AddEntriesFrom(ref input, _repeated_actions_codec); + break; + } + } + } + } + #endif + + #region Nested types + /// Container for nested types declared in the PrincipalRule message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types { + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class Action : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Action()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.PrincipalRule.Descriptor.NestedTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Action() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Action(Action other) : this() { + action_ = other.action_; + condition_ = other.condition_ != null ? other.condition_.Clone() : null; + effect_ = other.effect_; + name_ = other.name_; + output_ = other.output_ != null ? other.output_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Action Clone() { + return new Action(this); + } + + /// Field number for the "action" field. + public const int Action_FieldNumber = 1; + private string action_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Action_ { + get { return action_; } + set { + action_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "condition" field. + public const int ConditionFieldNumber = 2; + private global::Cerbos.Api.V1.Policy.Condition condition_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Condition Condition { + get { return condition_; } + set { + condition_ = value; + } + } + + /// Field number for the "effect" field. + public const int EffectFieldNumber = 3; + private global::Cerbos.Api.V1.Effect.Effect effect_ = global::Cerbos.Api.V1.Effect.Effect.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Effect.Effect Effect { + get { return effect_; } + set { + effect_ = value; + } + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 4; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "output" field. + public const int OutputFieldNumber = 5; + private global::Cerbos.Api.V1.Policy.Output output_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Output Output { + get { return output_; } + set { + output_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Action); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Action other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Action_ != other.Action_) return false; + if (!object.Equals(Condition, other.Condition)) return false; + if (Effect != other.Effect) return false; + if (Name != other.Name) return false; + if (!object.Equals(Output, other.Output)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Action_.Length != 0) hash ^= Action_.GetHashCode(); + if (condition_ != null) hash ^= Condition.GetHashCode(); + if (Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) hash ^= Effect.GetHashCode(); + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (output_ != null) hash ^= Output.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Action_.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Action_); + } + if (condition_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Condition); + } + if (Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) { + output.WriteRawTag(24); + output.WriteEnum((int) Effect); + } + if (Name.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Name); + } + if (output_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Output); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Action_.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Action_); + } + if (condition_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Condition); + } + if (Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) { + output.WriteRawTag(24); + output.WriteEnum((int) Effect); + } + if (Name.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Name); + } + if (output_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Output); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Action_.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Action_); + } + if (condition_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Condition); + } + if (Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Effect); + } + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (output_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Output); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Action other) { + if (other == null) { + return; + } + if (other.Action_.Length != 0) { + Action_ = other.Action_; + } + if (other.condition_ != null) { + if (condition_ == null) { + Condition = new global::Cerbos.Api.V1.Policy.Condition(); + } + Condition.MergeFrom(other.Condition); + } + if (other.Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) { + Effect = other.Effect; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + if (other.output_ != null) { + if (output_ == null) { + Output = new global::Cerbos.Api.V1.Policy.Output(); + } + Output.MergeFrom(other.Output); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Action_ = input.ReadString(); + break; + } + case 18: { + if (condition_ == null) { + Condition = new global::Cerbos.Api.V1.Policy.Condition(); + } + input.ReadMessage(Condition); + break; + } + case 24: { + Effect = (global::Cerbos.Api.V1.Effect.Effect) input.ReadEnum(); + break; + } + case 34: { + Name = input.ReadString(); + break; + } + case 42: { + if (output_ == null) { + Output = new global::Cerbos.Api.V1.Policy.Output(); + } + input.ReadMessage(Output); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Action_ = input.ReadString(); + break; + } + case 18: { + if (condition_ == null) { + Condition = new global::Cerbos.Api.V1.Policy.Condition(); + } + input.ReadMessage(Condition); + break; + } + case 24: { + Effect = (global::Cerbos.Api.V1.Effect.Effect) input.ReadEnum(); + break; + } + case 34: { + Name = input.ReadString(); + break; + } + case 42: { + if (output_ == null) { + Output = new global::Cerbos.Api.V1.Policy.Output(); + } + input.ReadMessage(Output); + break; + } + } + } + } + #endif + + } + + } + #endregion + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DerivedRoles : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DerivedRoles()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[9]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DerivedRoles() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DerivedRoles(DerivedRoles other) : this() { + name_ = other.name_; + definitions_ = other.definitions_.Clone(); + variables_ = other.variables_ != null ? other.variables_.Clone() : null; + constants_ = other.constants_ != null ? other.constants_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DerivedRoles Clone() { + return new DerivedRoles(this); + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 1; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "definitions" field. + public const int DefinitionsFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_definitions_codec + = pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Policy.RoleDef.Parser); + private readonly pbc::RepeatedField definitions_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Definitions { + get { return definitions_; } + } + + /// Field number for the "variables" field. + public const int VariablesFieldNumber = 3; + private global::Cerbos.Api.V1.Policy.Variables variables_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Variables Variables { + get { return variables_; } + set { + variables_ = value; + } + } + + /// Field number for the "constants" field. + public const int ConstantsFieldNumber = 4; + private global::Cerbos.Api.V1.Policy.Constants constants_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Constants Constants { + get { return constants_; } + set { + constants_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DerivedRoles); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DerivedRoles other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if(!definitions_.Equals(other.definitions_)) return false; + if (!object.Equals(Variables, other.Variables)) return false; + if (!object.Equals(Constants, other.Constants)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + hash ^= definitions_.GetHashCode(); + if (variables_ != null) hash ^= Variables.GetHashCode(); + if (constants_ != null) hash ^= Constants.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + definitions_.WriteTo(output, _repeated_definitions_codec); + if (variables_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Variables); + } + if (constants_ != null) { + output.WriteRawTag(34); + output.WriteMessage(Constants); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + definitions_.WriteTo(ref output, _repeated_definitions_codec); + if (variables_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Variables); + } + if (constants_ != null) { + output.WriteRawTag(34); + output.WriteMessage(Constants); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + size += definitions_.CalculateSize(_repeated_definitions_codec); + if (variables_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Variables); + } + if (constants_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Constants); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DerivedRoles other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + definitions_.Add(other.definitions_); + if (other.variables_ != null) { + if (variables_ == null) { + Variables = new global::Cerbos.Api.V1.Policy.Variables(); + } + Variables.MergeFrom(other.Variables); + } + if (other.constants_ != null) { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); + } + Constants.MergeFrom(other.Constants); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Name = input.ReadString(); + break; + } + case 18: { + definitions_.AddEntriesFrom(input, _repeated_definitions_codec); + break; + } + case 26: { + if (variables_ == null) { + Variables = new global::Cerbos.Api.V1.Policy.Variables(); + } + input.ReadMessage(Variables); + break; + } + case 34: { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); + } + input.ReadMessage(Constants); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Name = input.ReadString(); + break; + } + case 18: { + definitions_.AddEntriesFrom(ref input, _repeated_definitions_codec); + break; + } + case 26: { + if (variables_ == null) { + Variables = new global::Cerbos.Api.V1.Policy.Variables(); + } + input.ReadMessage(Variables); + break; + } + case 34: { + if (constants_ == null) { + Constants = new global::Cerbos.Api.V1.Policy.Constants(); + } + input.ReadMessage(Constants); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class RoleDef : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RoleDef()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[10]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoleDef() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoleDef(RoleDef other) : this() { + name_ = other.name_; + parentRoles_ = other.parentRoles_.Clone(); + condition_ = other.condition_ != null ? other.condition_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RoleDef Clone() { + return new RoleDef(this); + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 1; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "parent_roles" field. + public const int ParentRolesFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_parentRoles_codec + = pb::FieldCodec.ForString(18); + private readonly pbc::RepeatedField parentRoles_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField ParentRoles { + get { return parentRoles_; } + } + + /// Field number for the "condition" field. + public const int ConditionFieldNumber = 3; + private global::Cerbos.Api.V1.Policy.Condition condition_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Condition Condition { + get { return condition_; } + set { + condition_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as RoleDef); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(RoleDef other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if(!parentRoles_.Equals(other.parentRoles_)) return false; + if (!object.Equals(Condition, other.Condition)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + hash ^= parentRoles_.GetHashCode(); + if (condition_ != null) hash ^= Condition.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + parentRoles_.WriteTo(output, _repeated_parentRoles_codec); + if (condition_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Condition); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + parentRoles_.WriteTo(ref output, _repeated_parentRoles_codec); + if (condition_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Condition); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + size += parentRoles_.CalculateSize(_repeated_parentRoles_codec); + if (condition_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Condition); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(RoleDef other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + parentRoles_.Add(other.parentRoles_); + if (other.condition_ != null) { + if (condition_ == null) { + Condition = new global::Cerbos.Api.V1.Policy.Condition(); + } + Condition.MergeFrom(other.Condition); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Action other) { - if (other == null) { - return; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Name = input.ReadString(); + break; } - if (other.Action_.Length != 0) { - Action_ = other.Action_; + case 18: { + parentRoles_.AddEntriesFrom(input, _repeated_parentRoles_codec); + break; } - if (other.condition_ != null) { + case 26: { if (condition_ == null) { Condition = new global::Cerbos.Api.V1.Policy.Condition(); } - Condition.MergeFrom(other.Condition); + input.ReadMessage(Condition); + break; } - if (other.Effect != global::Cerbos.Api.V1.Effect.Effect.Unspecified) { - Effect = other.Effect; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Name = input.ReadString(); + break; } - if (other.Name.Length != 0) { - Name = other.Name; + case 18: { + parentRoles_.AddEntriesFrom(ref input, _repeated_parentRoles_codec); + break; } - if (other.output_ != null) { - if (output_ == null) { - Output = new global::Cerbos.Api.V1.Policy.Output(); + case 26: { + if (condition_ == null) { + Condition = new global::Cerbos.Api.V1.Policy.Condition(); } - Output.MergeFrom(other.Output); + input.ReadMessage(Condition); + break; } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } + } + } + #endif - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class ExportConstants : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExportConstants()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[11]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ExportConstants() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ExportConstants(ExportConstants other) : this() { + name_ = other.name_; + definitions_ = other.definitions_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ExportConstants Clone() { + return new ExportConstants(this); + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 1; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "definitions" field. + public const int DefinitionsFieldNumber = 2; + private static readonly pbc::MapField.Codec _map_definitions_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Google.Protobuf.WellKnownTypes.Value.Parser), 18); + private readonly pbc::MapField definitions_ = new pbc::MapField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::MapField Definitions { + get { return definitions_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as ExportConstants); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(ExportConstants other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if (!Definitions.Equals(other.Definitions)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + hash ^= Definitions.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + definitions_.WriteTo(output, _map_definitions_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + definitions_.WriteTo(ref output, _map_definitions_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + size += definitions_.CalculateSize(_map_definitions_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(ExportConstants other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + definitions_.MergeFrom(other.definitions_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Name = input.ReadString(); + break; } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - Action_ = input.ReadString(); - break; - } - case 18: { - if (condition_ == null) { - Condition = new global::Cerbos.Api.V1.Policy.Condition(); - } - input.ReadMessage(Condition); - break; - } - case 24: { - Effect = (global::Cerbos.Api.V1.Effect.Effect) input.ReadEnum(); - break; - } - case 34: { - Name = input.ReadString(); - break; - } - case 42: { - if (output_ == null) { - Output = new global::Cerbos.Api.V1.Policy.Output(); - } - input.ReadMessage(Output); - break; - } - } + case 18: { + definitions_.AddEntriesFrom(input, _map_definitions_codec); + break; } - #endif } + } + #endif + } - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Name = input.ReadString(); + break; } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - Action_ = input.ReadString(); - break; - } - case 18: { - if (condition_ == null) { - Condition = new global::Cerbos.Api.V1.Policy.Condition(); - } - input.ReadMessage(Condition); - break; - } - case 24: { - Effect = (global::Cerbos.Api.V1.Effect.Effect) input.ReadEnum(); - break; - } - case 34: { - Name = input.ReadString(); - break; - } - case 42: { - if (output_ == null) { - Output = new global::Cerbos.Api.V1.Policy.Output(); - } - input.ReadMessage(Output); - break; - } - } + case 18: { + definitions_.AddEntriesFrom(ref input, _map_definitions_codec); + break; } } - #endif - } - } - #endregion + #endif } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class DerivedRoles : pb::IMessage + public sealed partial class Constants : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DerivedRoles()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Constants()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[7]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[12]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3300,7 +5088,7 @@ public sealed partial class DerivedRoles : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DerivedRoles() { + public Constants() { OnConstruction(); } @@ -3308,72 +5096,57 @@ public DerivedRoles() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DerivedRoles(DerivedRoles other) : this() { - name_ = other.name_; - definitions_ = other.definitions_.Clone(); - variables_ = other.variables_ != null ? other.variables_.Clone() : null; + public Constants(Constants other) : this() { + import_ = other.import_.Clone(); + local_ = other.local_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DerivedRoles Clone() { - return new DerivedRoles(this); - } - - /// Field number for the "name" field. - public const int NameFieldNumber = 1; - private string name_ = ""; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Name { - get { return name_; } - set { - name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } + public Constants Clone() { + return new Constants(this); } - /// Field number for the "definitions" field. - public const int DefinitionsFieldNumber = 2; - private static readonly pb::FieldCodec _repeated_definitions_codec - = pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Policy.RoleDef.Parser); - private readonly pbc::RepeatedField definitions_ = new pbc::RepeatedField(); + /// Field number for the "import" field. + public const int ImportFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_import_codec + = pb::FieldCodec.ForString(10); + private readonly pbc::RepeatedField import_ = new pbc::RepeatedField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Definitions { - get { return definitions_; } + public pbc::RepeatedField Import { + get { return import_; } } - /// Field number for the "variables" field. - public const int VariablesFieldNumber = 3; - private global::Cerbos.Api.V1.Policy.Variables variables_; + /// Field number for the "local" field. + public const int LocalFieldNumber = 2; + private static readonly pbc::MapField.Codec _map_local_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Google.Protobuf.WellKnownTypes.Value.Parser), 18); + private readonly pbc::MapField local_ = new pbc::MapField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Variables Variables { - get { return variables_; } - set { - variables_ = value; - } + public pbc::MapField Local { + get { return local_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as DerivedRoles); + return Equals(other as Constants); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(DerivedRoles other) { + public bool Equals(Constants other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (Name != other.Name) return false; - if(!definitions_.Equals(other.definitions_)) return false; - if (!object.Equals(Variables, other.Variables)) return false; + if(!import_.Equals(other.import_)) return false; + if (!Local.Equals(other.Local)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3381,9 +5154,8 @@ public bool Equals(DerivedRoles other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (Name.Length != 0) hash ^= Name.GetHashCode(); - hash ^= definitions_.GetHashCode(); - if (variables_ != null) hash ^= Variables.GetHashCode(); + hash ^= import_.GetHashCode(); + hash ^= Local.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3402,15 +5174,8 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (Name.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Name); - } - definitions_.WriteTo(output, _repeated_definitions_codec); - if (variables_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Variables); - } + import_.WriteTo(output, _repeated_import_codec); + local_.WriteTo(output, _map_local_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3421,15 +5186,8 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Name.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Name); - } - definitions_.WriteTo(ref output, _repeated_definitions_codec); - if (variables_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Variables); - } + import_.WriteTo(ref output, _repeated_import_codec); + local_.WriteTo(ref output, _map_local_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3440,13 +5198,8 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (Name.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); - } - size += definitions_.CalculateSize(_repeated_definitions_codec); - if (variables_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Variables); - } + size += import_.CalculateSize(_repeated_import_codec); + size += local_.CalculateSize(_map_local_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3455,20 +5208,12 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(DerivedRoles other) { + public void MergeFrom(Constants other) { if (other == null) { return; } - if (other.Name.Length != 0) { - Name = other.Name; - } - definitions_.Add(other.definitions_); - if (other.variables_ != null) { - if (variables_ == null) { - Variables = new global::Cerbos.Api.V1.Policy.Variables(); - } - Variables.MergeFrom(other.Variables); - } + import_.Add(other.import_); + local_.MergeFrom(other.local_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3489,18 +5234,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - Name = input.ReadString(); + import_.AddEntriesFrom(input, _repeated_import_codec); break; } case 18: { - definitions_.AddEntriesFrom(input, _repeated_definitions_codec); - break; - } - case 26: { - if (variables_ == null) { - Variables = new global::Cerbos.Api.V1.Policy.Variables(); - } - input.ReadMessage(Variables); + local_.AddEntriesFrom(input, _map_local_codec); break; } } @@ -3523,18 +5261,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - Name = input.ReadString(); + import_.AddEntriesFrom(ref input, _repeated_import_codec); break; } case 18: { - definitions_.AddEntriesFrom(ref input, _repeated_definitions_codec); - break; - } - case 26: { - if (variables_ == null) { - Variables = new global::Cerbos.Api.V1.Policy.Variables(); - } - input.ReadMessage(Variables); + local_.AddEntriesFrom(ref input, _map_local_codec); break; } } @@ -3545,21 +5276,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class RoleDef : pb::IMessage + public sealed partial class ExportVariables : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RoleDef()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExportVariables()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[8]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[13]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3570,7 +5301,7 @@ public sealed partial class RoleDef : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public RoleDef() { + public ExportVariables() { OnConstruction(); } @@ -3578,17 +5309,16 @@ public RoleDef() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public RoleDef(RoleDef other) : this() { + public ExportVariables(ExportVariables other) : this() { name_ = other.name_; - parentRoles_ = other.parentRoles_.Clone(); - condition_ = other.condition_ != null ? other.condition_.Clone() : null; + definitions_ = other.definitions_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public RoleDef Clone() { - return new RoleDef(this); + public ExportVariables Clone() { + return new ExportVariables(this); } /// Field number for the "name" field. @@ -3603,38 +5333,26 @@ public string Name { } } - /// Field number for the "parent_roles" field. - public const int ParentRolesFieldNumber = 2; - private static readonly pb::FieldCodec _repeated_parentRoles_codec - = pb::FieldCodec.ForString(18); - private readonly pbc::RepeatedField parentRoles_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField ParentRoles { - get { return parentRoles_; } - } - - /// Field number for the "condition" field. - public const int ConditionFieldNumber = 3; - private global::Cerbos.Api.V1.Policy.Condition condition_; + /// Field number for the "definitions" field. + public const int DefinitionsFieldNumber = 2; + private static readonly pbc::MapField.Codec _map_definitions_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 18); + private readonly pbc::MapField definitions_ = new pbc::MapField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Condition Condition { - get { return condition_; } - set { - condition_ = value; - } + public pbc::MapField Definitions { + get { return definitions_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as RoleDef); + return Equals(other as ExportVariables); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(RoleDef other) { + public bool Equals(ExportVariables other) { if (ReferenceEquals(other, null)) { return false; } @@ -3642,8 +5360,7 @@ public bool Equals(RoleDef other) { return true; } if (Name != other.Name) return false; - if(!parentRoles_.Equals(other.parentRoles_)) return false; - if (!object.Equals(Condition, other.Condition)) return false; + if (!Definitions.Equals(other.Definitions)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3652,8 +5369,7 @@ public bool Equals(RoleDef other) { public override int GetHashCode() { int hash = 1; if (Name.Length != 0) hash ^= Name.GetHashCode(); - hash ^= parentRoles_.GetHashCode(); - if (condition_ != null) hash ^= Condition.GetHashCode(); + hash ^= Definitions.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3676,11 +5392,7 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteString(Name); } - parentRoles_.WriteTo(output, _repeated_parentRoles_codec); - if (condition_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Condition); - } + definitions_.WriteTo(output, _map_definitions_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3695,11 +5407,7 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteString(Name); } - parentRoles_.WriteTo(ref output, _repeated_parentRoles_codec); - if (condition_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Condition); - } + definitions_.WriteTo(ref output, _map_definitions_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3713,10 +5421,7 @@ public int CalculateSize() { if (Name.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); } - size += parentRoles_.CalculateSize(_repeated_parentRoles_codec); - if (condition_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Condition); - } + size += definitions_.CalculateSize(_map_definitions_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3725,20 +5430,14 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(RoleDef other) { + public void MergeFrom(ExportVariables other) { if (other == null) { return; } if (other.Name.Length != 0) { Name = other.Name; } - parentRoles_.Add(other.parentRoles_); - if (other.condition_ != null) { - if (condition_ == null) { - Condition = new global::Cerbos.Api.V1.Policy.Condition(); - } - Condition.MergeFrom(other.Condition); - } + definitions_.MergeFrom(other.definitions_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3763,14 +5462,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 18: { - parentRoles_.AddEntriesFrom(input, _repeated_parentRoles_codec); - break; - } - case 26: { - if (condition_ == null) { - Condition = new global::Cerbos.Api.V1.Policy.Condition(); - } - input.ReadMessage(Condition); + definitions_.AddEntriesFrom(input, _map_definitions_codec); break; } } @@ -3797,14 +5489,7 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 18: { - parentRoles_.AddEntriesFrom(ref input, _repeated_parentRoles_codec); - break; - } - case 26: { - if (condition_ == null) { - Condition = new global::Cerbos.Api.V1.Policy.Condition(); - } - input.ReadMessage(Condition); + definitions_.AddEntriesFrom(ref input, _map_definitions_codec); break; } } @@ -3815,21 +5500,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class ExportVariables : pb::IMessage + public sealed partial class Variables : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExportVariables()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Variables()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[9]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[14]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3840,7 +5525,7 @@ public sealed partial class ExportVariables : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ExportVariables() { + public Variables() { OnConstruction(); } @@ -3848,58 +5533,57 @@ public ExportVariables() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ExportVariables(ExportVariables other) : this() { - name_ = other.name_; - definitions_ = other.definitions_.Clone(); + public Variables(Variables other) : this() { + import_ = other.import_.Clone(); + local_ = other.local_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ExportVariables Clone() { - return new ExportVariables(this); + public Variables Clone() { + return new Variables(this); } - /// Field number for the "name" field. - public const int NameFieldNumber = 1; - private string name_ = ""; + /// Field number for the "import" field. + public const int ImportFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_import_codec + = pb::FieldCodec.ForString(10); + private readonly pbc::RepeatedField import_ = new pbc::RepeatedField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Name { - get { return name_; } - set { - name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } + public pbc::RepeatedField Import { + get { return import_; } } - /// Field number for the "definitions" field. - public const int DefinitionsFieldNumber = 2; - private static readonly pbc::MapField.Codec _map_definitions_codec + /// Field number for the "local" field. + public const int LocalFieldNumber = 2; + private static readonly pbc::MapField.Codec _map_local_codec = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 18); - private readonly pbc::MapField definitions_ = new pbc::MapField(); + private readonly pbc::MapField local_ = new pbc::MapField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::MapField Definitions { - get { return definitions_; } + public pbc::MapField Local { + get { return local_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as ExportVariables); + return Equals(other as Variables); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(ExportVariables other) { + public bool Equals(Variables other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (Name != other.Name) return false; - if (!Definitions.Equals(other.Definitions)) return false; + if(!import_.Equals(other.import_)) return false; + if (!Local.Equals(other.Local)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3907,8 +5591,8 @@ public bool Equals(ExportVariables other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (Name.Length != 0) hash ^= Name.GetHashCode(); - hash ^= Definitions.GetHashCode(); + hash ^= import_.GetHashCode(); + hash ^= Local.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3927,11 +5611,8 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (Name.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Name); - } - definitions_.WriteTo(output, _map_definitions_codec); + import_.WriteTo(output, _repeated_import_codec); + local_.WriteTo(output, _map_local_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3942,11 +5623,8 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Name.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Name); - } - definitions_.WriteTo(ref output, _map_definitions_codec); + import_.WriteTo(ref output, _repeated_import_codec); + local_.WriteTo(ref output, _map_local_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3957,10 +5635,8 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (Name.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); - } - size += definitions_.CalculateSize(_map_definitions_codec); + size += import_.CalculateSize(_repeated_import_codec); + size += local_.CalculateSize(_map_local_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3969,14 +5645,12 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(ExportVariables other) { + public void MergeFrom(Variables other) { if (other == null) { return; } - if (other.Name.Length != 0) { - Name = other.Name; - } - definitions_.MergeFrom(other.definitions_); + import_.Add(other.import_); + local_.MergeFrom(other.local_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3997,11 +5671,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - Name = input.ReadString(); + import_.AddEntriesFrom(input, _repeated_import_codec); break; } case 18: { - definitions_.AddEntriesFrom(input, _map_definitions_codec); + local_.AddEntriesFrom(input, _map_local_codec); break; } } @@ -4024,11 +5698,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - Name = input.ReadString(); + import_.AddEntriesFrom(ref input, _repeated_import_codec); break; } case 18: { - definitions_.AddEntriesFrom(ref input, _map_definitions_codec); + local_.AddEntriesFrom(ref input, _map_local_codec); break; } } @@ -4039,21 +5713,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Variables : pb::IMessage + public sealed partial class Condition : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Variables()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Condition()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[10]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[15]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4064,7 +5738,7 @@ public sealed partial class Variables : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Variables() { + public Condition() { OnConstruction(); } @@ -4072,57 +5746,102 @@ public Variables() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Variables(Variables other) : this() { - import_ = other.import_.Clone(); - local_ = other.local_.Clone(); + public Condition(Condition other) : this() { + switch (other.ConditionCase) { + case ConditionOneofCase.Match: + Match = other.Match.Clone(); + break; + case ConditionOneofCase.Script: + Script = other.Script; + break; + } + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Variables Clone() { - return new Variables(this); + public Condition Clone() { + return new Condition(this); } - /// Field number for the "import" field. - public const int ImportFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_import_codec - = pb::FieldCodec.ForString(10); - private readonly pbc::RepeatedField import_ = new pbc::RepeatedField(); + /// Field number for the "match" field. + public const int MatchFieldNumber = 1; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Policy.Match Match { + get { return conditionCase_ == ConditionOneofCase.Match ? (global::Cerbos.Api.V1.Policy.Match) condition_ : null; } + set { + condition_ = value; + conditionCase_ = value == null ? ConditionOneofCase.None : ConditionOneofCase.Match; + } + } + + /// Field number for the "script" field. + public const int ScriptFieldNumber = 2; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Script { + get { return HasScript ? (string) condition_ : ""; } + set { + condition_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + conditionCase_ = ConditionOneofCase.Script; + } + } + /// Gets whether the "script" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasScript { + get { return conditionCase_ == ConditionOneofCase.Script; } + } + /// Clears the value of the oneof if it's currently set to "script" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearScript() { + if (HasScript) { + ClearCondition(); + } + } + + private object condition_; + /// Enum of possible cases for the "condition" oneof. + public enum ConditionOneofCase { + None = 0, + Match = 1, + Script = 2, + } + private ConditionOneofCase conditionCase_ = ConditionOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Import { - get { return import_; } + public ConditionOneofCase ConditionCase { + get { return conditionCase_; } } - /// Field number for the "local" field. - public const int LocalFieldNumber = 2; - private static readonly pbc::MapField.Codec _map_local_codec - = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 18); - private readonly pbc::MapField local_ = new pbc::MapField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::MapField Local { - get { return local_; } + public void ClearCondition() { + conditionCase_ = ConditionOneofCase.None; + condition_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Variables); + return Equals(other as Condition); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Variables other) { + public bool Equals(Condition other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if(!import_.Equals(other.import_)) return false; - if (!Local.Equals(other.Local)) return false; + if (!object.Equals(Match, other.Match)) return false; + if (Script != other.Script) return false; + if (ConditionCase != other.ConditionCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4130,8 +5849,9 @@ public bool Equals(Variables other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - hash ^= import_.GetHashCode(); - hash ^= Local.GetHashCode(); + if (conditionCase_ == ConditionOneofCase.Match) hash ^= Match.GetHashCode(); + if (HasScript) hash ^= Script.GetHashCode(); + hash ^= (int) conditionCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4150,8 +5870,14 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - import_.WriteTo(output, _repeated_import_codec); - local_.WriteTo(output, _map_local_codec); + if (conditionCase_ == ConditionOneofCase.Match) { + output.WriteRawTag(10); + output.WriteMessage(Match); + } + if (HasScript) { + output.WriteRawTag(18); + output.WriteString(Script); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4162,8 +5888,14 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - import_.WriteTo(ref output, _repeated_import_codec); - local_.WriteTo(ref output, _map_local_codec); + if (conditionCase_ == ConditionOneofCase.Match) { + output.WriteRawTag(10); + output.WriteMessage(Match); + } + if (HasScript) { + output.WriteRawTag(18); + output.WriteString(Script); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -4174,8 +5906,12 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - size += import_.CalculateSize(_repeated_import_codec); - size += local_.CalculateSize(_map_local_codec); + if (conditionCase_ == ConditionOneofCase.Match) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Match); + } + if (HasScript) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Script); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4184,12 +5920,22 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Variables other) { + public void MergeFrom(Condition other) { if (other == null) { return; } - import_.Add(other.import_); - local_.MergeFrom(other.local_); + switch (other.ConditionCase) { + case ConditionOneofCase.Match: + if (Match == null) { + Match = new global::Cerbos.Api.V1.Policy.Match(); + } + Match.MergeFrom(other.Match); + break; + case ConditionOneofCase.Script: + Script = other.Script; + break; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4210,11 +5956,16 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - import_.AddEntriesFrom(input, _repeated_import_codec); + global::Cerbos.Api.V1.Policy.Match subBuilder = new global::Cerbos.Api.V1.Policy.Match(); + if (conditionCase_ == ConditionOneofCase.Match) { + subBuilder.MergeFrom(Match); + } + input.ReadMessage(subBuilder); + Match = subBuilder; break; } case 18: { - local_.AddEntriesFrom(input, _map_local_codec); + Script = input.ReadString(); break; } } @@ -4237,11 +5988,16 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - import_.AddEntriesFrom(ref input, _repeated_import_codec); + global::Cerbos.Api.V1.Policy.Match subBuilder = new global::Cerbos.Api.V1.Policy.Match(); + if (conditionCase_ == ConditionOneofCase.Match) { + subBuilder.MergeFrom(Match); + } + input.ReadMessage(subBuilder); + Match = subBuilder; break; } case 18: { - local_.AddEntriesFrom(ref input, _map_local_codec); + Script = input.ReadString(); break; } } @@ -4252,21 +6008,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Condition : pb::IMessage + public sealed partial class Match : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Condition()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Match()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[11]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[16]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4277,7 +6033,7 @@ public sealed partial class Condition : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Condition() { + public Match() { OnConstruction(); } @@ -4285,13 +6041,19 @@ public Condition() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Condition(Condition other) : this() { - switch (other.ConditionCase) { - case ConditionOneofCase.Match: - Match = other.Match.Clone(); + public Match(Match other) : this() { + switch (other.OpCase) { + case OpOneofCase.All: + All = other.All.Clone(); break; - case ConditionOneofCase.Script: - Script = other.Script; + case OpOneofCase.Any: + Any = other.Any.Clone(); + break; + case OpOneofCase.None_: + None = other.None.Clone(); + break; + case OpOneofCase.Expr: + Expr = other.Expr; break; } @@ -4300,87 +6062,115 @@ public Condition(Condition other) : this() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Condition Clone() { - return new Condition(this); + public Match Clone() { + return new Match(this); } - /// Field number for the "match" field. - public const int MatchFieldNumber = 1; + /// Field number for the "all" field. + public const int AllFieldNumber = 1; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Match Match { - get { return conditionCase_ == ConditionOneofCase.Match ? (global::Cerbos.Api.V1.Policy.Match) condition_ : null; } + public global::Cerbos.Api.V1.Policy.Match.Types.ExprList All { + get { return opCase_ == OpOneofCase.All ? (global::Cerbos.Api.V1.Policy.Match.Types.ExprList) op_ : null; } set { - condition_ = value; - conditionCase_ = value == null ? ConditionOneofCase.None : ConditionOneofCase.Match; + op_ = value; + opCase_ = value == null ? OpOneofCase.None : OpOneofCase.All; } } - /// Field number for the "script" field. - public const int ScriptFieldNumber = 2; + /// Field number for the "any" field. + public const int AnyFieldNumber = 2; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Script { - get { return HasScript ? (string) condition_ : ""; } + public global::Cerbos.Api.V1.Policy.Match.Types.ExprList Any { + get { return opCase_ == OpOneofCase.Any ? (global::Cerbos.Api.V1.Policy.Match.Types.ExprList) op_ : null; } set { - condition_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - conditionCase_ = ConditionOneofCase.Script; + op_ = value; + opCase_ = value == null ? OpOneofCase.None : OpOneofCase.Any; } } - /// Gets whether the "script" field is set + + /// Field number for the "none" field. + public const int NoneFieldNumber = 3; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasScript { - get { return conditionCase_ == ConditionOneofCase.Script; } + public global::Cerbos.Api.V1.Policy.Match.Types.ExprList None { + get { return opCase_ == OpOneofCase.None_ ? (global::Cerbos.Api.V1.Policy.Match.Types.ExprList) op_ : null; } + set { + op_ = value; + opCase_ = value == null ? OpOneofCase.None : OpOneofCase.None_; + } } - /// Clears the value of the oneof if it's currently set to "script" + + /// Field number for the "expr" field. + public const int ExprFieldNumber = 4; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearScript() { - if (HasScript) { - ClearCondition(); + public string Expr { + get { return HasExpr ? (string) op_ : ""; } + set { + op_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + opCase_ = OpOneofCase.Expr; + } + } + /// Gets whether the "expr" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasExpr { + get { return opCase_ == OpOneofCase.Expr; } + } + /// Clears the value of the oneof if it's currently set to "expr" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearExpr() { + if (HasExpr) { + ClearOp(); } } - private object condition_; - /// Enum of possible cases for the "condition" oneof. - public enum ConditionOneofCase { + private object op_; + /// Enum of possible cases for the "op" oneof. + public enum OpOneofCase { None = 0, - Match = 1, - Script = 2, + All = 1, + Any = 2, + None_ = 3, + Expr = 4, } - private ConditionOneofCase conditionCase_ = ConditionOneofCase.None; + private OpOneofCase opCase_ = OpOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ConditionOneofCase ConditionCase { - get { return conditionCase_; } + public OpOneofCase OpCase { + get { return opCase_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearCondition() { - conditionCase_ = ConditionOneofCase.None; - condition_ = null; + public void ClearOp() { + opCase_ = OpOneofCase.None; + op_ = null; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Condition); + return Equals(other as Match); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Condition other) { + public bool Equals(Match other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!object.Equals(Match, other.Match)) return false; - if (Script != other.Script) return false; - if (ConditionCase != other.ConditionCase) return false; + if (!object.Equals(All, other.All)) return false; + if (!object.Equals(Any, other.Any)) return false; + if (!object.Equals(None, other.None)) return false; + if (Expr != other.Expr) return false; + if (OpCase != other.OpCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4388,9 +6178,11 @@ public bool Equals(Condition other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (conditionCase_ == ConditionOneofCase.Match) hash ^= Match.GetHashCode(); - if (HasScript) hash ^= Script.GetHashCode(); - hash ^= (int) conditionCase_; + if (opCase_ == OpOneofCase.All) hash ^= All.GetHashCode(); + if (opCase_ == OpOneofCase.Any) hash ^= Any.GetHashCode(); + if (opCase_ == OpOneofCase.None_) hash ^= None.GetHashCode(); + if (HasExpr) hash ^= Expr.GetHashCode(); + hash ^= (int) opCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4409,13 +6201,21 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (conditionCase_ == ConditionOneofCase.Match) { + if (opCase_ == OpOneofCase.All) { output.WriteRawTag(10); - output.WriteMessage(Match); + output.WriteMessage(All); } - if (HasScript) { + if (opCase_ == OpOneofCase.Any) { output.WriteRawTag(18); - output.WriteString(Script); + output.WriteMessage(Any); + } + if (opCase_ == OpOneofCase.None_) { + output.WriteRawTag(26); + output.WriteMessage(None); + } + if (HasExpr) { + output.WriteRawTag(34); + output.WriteString(Expr); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -4427,13 +6227,21 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (conditionCase_ == ConditionOneofCase.Match) { + if (opCase_ == OpOneofCase.All) { output.WriteRawTag(10); - output.WriteMessage(Match); + output.WriteMessage(All); } - if (HasScript) { + if (opCase_ == OpOneofCase.Any) { output.WriteRawTag(18); - output.WriteString(Script); + output.WriteMessage(Any); + } + if (opCase_ == OpOneofCase.None_) { + output.WriteRawTag(26); + output.WriteMessage(None); + } + if (HasExpr) { + output.WriteRawTag(34); + output.WriteString(Expr); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -4445,11 +6253,17 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (conditionCase_ == ConditionOneofCase.Match) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Match); + if (opCase_ == OpOneofCase.All) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(All); } - if (HasScript) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Script); + if (opCase_ == OpOneofCase.Any) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Any); + } + if (opCase_ == OpOneofCase.None_) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(None); + } + if (HasExpr) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Expr); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -4459,19 +6273,31 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Condition other) { + public void MergeFrom(Match other) { if (other == null) { return; } - switch (other.ConditionCase) { - case ConditionOneofCase.Match: - if (Match == null) { - Match = new global::Cerbos.Api.V1.Policy.Match(); + switch (other.OpCase) { + case OpOneofCase.All: + if (All == null) { + All = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); } - Match.MergeFrom(other.Match); + All.MergeFrom(other.All); break; - case ConditionOneofCase.Script: - Script = other.Script; + case OpOneofCase.Any: + if (Any == null) { + Any = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); + } + Any.MergeFrom(other.Any); + break; + case OpOneofCase.None_: + if (None == null) { + None = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); + } + None.MergeFrom(other.None); + break; + case OpOneofCase.Expr: + Expr = other.Expr; break; } @@ -4495,73 +6321,304 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - global::Cerbos.Api.V1.Policy.Match subBuilder = new global::Cerbos.Api.V1.Policy.Match(); - if (conditionCase_ == ConditionOneofCase.Match) { - subBuilder.MergeFrom(Match); + global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); + if (opCase_ == OpOneofCase.All) { + subBuilder.MergeFrom(All); } input.ReadMessage(subBuilder); - Match = subBuilder; + All = subBuilder; + break; + } + case 18: { + global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); + if (opCase_ == OpOneofCase.Any) { + subBuilder.MergeFrom(Any); + } + input.ReadMessage(subBuilder); + Any = subBuilder; + break; + } + case 26: { + global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); + if (opCase_ == OpOneofCase.None_) { + subBuilder.MergeFrom(None); + } + input.ReadMessage(subBuilder); + None = subBuilder; + break; + } + case 34: { + Expr = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; + case 10: { + global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); + if (opCase_ == OpOneofCase.All) { + subBuilder.MergeFrom(All); + } + input.ReadMessage(subBuilder); + All = subBuilder; + break; + } + case 18: { + global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); + if (opCase_ == OpOneofCase.Any) { + subBuilder.MergeFrom(Any); + } + input.ReadMessage(subBuilder); + Any = subBuilder; + break; + } + case 26: { + global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); + if (opCase_ == OpOneofCase.None_) { + subBuilder.MergeFrom(None); + } + input.ReadMessage(subBuilder); + None = subBuilder; + break; + } + case 34: { + Expr = input.ReadString(); + break; + } + } + } + } + #endif + + #region Nested types + /// Container for nested types declared in the Match message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types { + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class ExprList : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExprList()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.Match.Descriptor.NestedTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ExprList() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ExprList(ExprList other) : this() { + of_ = other.of_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ExprList Clone() { + return new ExprList(this); + } + + /// Field number for the "of" field. + public const int OfFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_of_codec + = pb::FieldCodec.ForMessage(10, global::Cerbos.Api.V1.Policy.Match.Parser); + private readonly pbc::RepeatedField of_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Of { + get { return of_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as ExprList); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(ExprList other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!of_.Equals(other.of_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= of_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + of_.WriteTo(output, _repeated_of_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + of_.WriteTo(ref output, _repeated_of_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += of_.CalculateSize(_repeated_of_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); } - case 18: { - Script = input.ReadString(); - break; + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(ExprList other) { + if (other == null) { + return; } + of_.Add(other.of_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } - } - #endif - } - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - global::Cerbos.Api.V1.Policy.Match subBuilder = new global::Cerbos.Api.V1.Policy.Match(); - if (conditionCase_ == ConditionOneofCase.Match) { - subBuilder.MergeFrom(Match); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + of_.AddEntriesFrom(input, _repeated_of_codec); + break; + } } - input.ReadMessage(subBuilder); - Match = subBuilder; - break; } - case 18: { - Script = input.ReadString(); - break; + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + of_.AddEntriesFrom(ref input, _repeated_of_codec); + break; + } + } } } + #endif + } + } - #endif + #endregion } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Match : pb::IMessage + public sealed partial class Output : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Match()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Output()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[12]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[17]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4572,7 +6629,7 @@ public sealed partial class Match : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Match() { + public Output() { OnConstruction(); } @@ -4580,136 +6637,60 @@ public Match() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Match(Match other) : this() { - switch (other.OpCase) { - case OpOneofCase.All: - All = other.All.Clone(); - break; - case OpOneofCase.Any: - Any = other.Any.Clone(); - break; - case OpOneofCase.None_: - None = other.None.Clone(); - break; - case OpOneofCase.Expr: - Expr = other.Expr; - break; - } - + public Output(Output other) : this() { + expr_ = other.expr_; + when_ = other.when_ != null ? other.when_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Match Clone() { - return new Match(this); - } - - /// Field number for the "all" field. - public const int AllFieldNumber = 1; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Match.Types.ExprList All { - get { return opCase_ == OpOneofCase.All ? (global::Cerbos.Api.V1.Policy.Match.Types.ExprList) op_ : null; } - set { - op_ = value; - opCase_ = value == null ? OpOneofCase.None : OpOneofCase.All; - } - } - - /// Field number for the "any" field. - public const int AnyFieldNumber = 2; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Match.Types.ExprList Any { - get { return opCase_ == OpOneofCase.Any ? (global::Cerbos.Api.V1.Policy.Match.Types.ExprList) op_ : null; } - set { - op_ = value; - opCase_ = value == null ? OpOneofCase.None : OpOneofCase.Any; - } - } - - /// Field number for the "none" field. - public const int NoneFieldNumber = 3; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Match.Types.ExprList None { - get { return opCase_ == OpOneofCase.None_ ? (global::Cerbos.Api.V1.Policy.Match.Types.ExprList) op_ : null; } - set { - op_ = value; - opCase_ = value == null ? OpOneofCase.None : OpOneofCase.None_; - } + public Output Clone() { + return new Output(this); } /// Field number for the "expr" field. - public const int ExprFieldNumber = 4; + public const int ExprFieldNumber = 1; + private string expr_ = ""; + [global::System.ObsoleteAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public string Expr { - get { return HasExpr ? (string) op_ : ""; } + get { return expr_; } set { - op_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - opCase_ = OpOneofCase.Expr; - } - } - /// Gets whether the "expr" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasExpr { - get { return opCase_ == OpOneofCase.Expr; } - } - /// Clears the value of the oneof if it's currently set to "expr" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearExpr() { - if (HasExpr) { - ClearOp(); + expr_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - private object op_; - /// Enum of possible cases for the "op" oneof. - public enum OpOneofCase { - None = 0, - All = 1, - Any = 2, - None_ = 3, - Expr = 4, - } - private OpOneofCase opCase_ = OpOneofCase.None; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public OpOneofCase OpCase { - get { return opCase_; } - } - + /// Field number for the "when" field. + public const int WhenFieldNumber = 2; + private global::Cerbos.Api.V1.Policy.Output.Types.When when_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearOp() { - opCase_ = OpOneofCase.None; - op_ = null; + public global::Cerbos.Api.V1.Policy.Output.Types.When When { + get { return when_; } + set { + when_ = value; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Match); + return Equals(other as Output); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Match other) { + public bool Equals(Output other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!object.Equals(All, other.All)) return false; - if (!object.Equals(Any, other.Any)) return false; - if (!object.Equals(None, other.None)) return false; if (Expr != other.Expr) return false; - if (OpCase != other.OpCase) return false; + if (!object.Equals(When, other.When)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4717,11 +6698,8 @@ public bool Equals(Match other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (opCase_ == OpOneofCase.All) hash ^= All.GetHashCode(); - if (opCase_ == OpOneofCase.Any) hash ^= Any.GetHashCode(); - if (opCase_ == OpOneofCase.None_) hash ^= None.GetHashCode(); - if (HasExpr) hash ^= Expr.GetHashCode(); - hash ^= (int) opCase_; + if (Expr.Length != 0) hash ^= Expr.GetHashCode(); + if (when_ != null) hash ^= When.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4740,21 +6718,13 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (opCase_ == OpOneofCase.All) { + if (Expr.Length != 0) { output.WriteRawTag(10); - output.WriteMessage(All); + output.WriteString(Expr); } - if (opCase_ == OpOneofCase.Any) { + if (when_ != null) { output.WriteRawTag(18); - output.WriteMessage(Any); - } - if (opCase_ == OpOneofCase.None_) { - output.WriteRawTag(26); - output.WriteMessage(None); - } - if (HasExpr) { - output.WriteRawTag(34); - output.WriteString(Expr); + output.WriteMessage(When); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -4766,22 +6736,14 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (opCase_ == OpOneofCase.All) { + if (Expr.Length != 0) { output.WriteRawTag(10); - output.WriteMessage(All); - } - if (opCase_ == OpOneofCase.Any) { - output.WriteRawTag(18); - output.WriteMessage(Any); - } - if (opCase_ == OpOneofCase.None_) { - output.WriteRawTag(26); - output.WriteMessage(None); - } - if (HasExpr) { - output.WriteRawTag(34); output.WriteString(Expr); } + if (when_ != null) { + output.WriteRawTag(18); + output.WriteMessage(When); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -4792,18 +6754,12 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (opCase_ == OpOneofCase.All) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(All); - } - if (opCase_ == OpOneofCase.Any) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Any); - } - if (opCase_ == OpOneofCase.None_) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(None); - } - if (HasExpr) { + if (Expr.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Expr); } + if (when_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(When); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4812,34 +6768,19 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Match other) { + public void MergeFrom(Output other) { if (other == null) { return; } - switch (other.OpCase) { - case OpOneofCase.All: - if (All == null) { - All = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - } - All.MergeFrom(other.All); - break; - case OpOneofCase.Any: - if (Any == null) { - Any = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - } - Any.MergeFrom(other.Any); - break; - case OpOneofCase.None_: - if (None == null) { - None = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - } - None.MergeFrom(other.None); - break; - case OpOneofCase.Expr: - Expr = other.Expr; - break; + if (other.Expr.Length != 0) { + Expr = other.Expr; + } + if (other.when_ != null) { + if (when_ == null) { + When = new global::Cerbos.Api.V1.Policy.Output.Types.When(); + } + When.MergeFrom(other.When); } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4860,34 +6801,14 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - if (opCase_ == OpOneofCase.All) { - subBuilder.MergeFrom(All); - } - input.ReadMessage(subBuilder); - All = subBuilder; + Expr = input.ReadString(); break; } case 18: { - global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - if (opCase_ == OpOneofCase.Any) { - subBuilder.MergeFrom(Any); - } - input.ReadMessage(subBuilder); - Any = subBuilder; - break; - } - case 26: { - global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - if (opCase_ == OpOneofCase.None_) { - subBuilder.MergeFrom(None); + if (when_ == null) { + When = new global::Cerbos.Api.V1.Policy.Output.Types.When(); } - input.ReadMessage(subBuilder); - None = subBuilder; - break; - } - case 34: { - Expr = input.ReadString(); + input.ReadMessage(When); break; } } @@ -4910,34 +6831,14 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - if (opCase_ == OpOneofCase.All) { - subBuilder.MergeFrom(All); - } - input.ReadMessage(subBuilder); - All = subBuilder; + Expr = input.ReadString(); break; } case 18: { - global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - if (opCase_ == OpOneofCase.Any) { - subBuilder.MergeFrom(Any); - } - input.ReadMessage(subBuilder); - Any = subBuilder; - break; - } - case 26: { - global::Cerbos.Api.V1.Policy.Match.Types.ExprList subBuilder = new global::Cerbos.Api.V1.Policy.Match.Types.ExprList(); - if (opCase_ == OpOneofCase.None_) { - subBuilder.MergeFrom(None); + if (when_ == null) { + When = new global::Cerbos.Api.V1.Policy.Output.Types.When(); } - input.ReadMessage(subBuilder); - None = subBuilder; - break; - } - case 34: { - Expr = input.ReadString(); + input.ReadMessage(When); break; } } @@ -4946,26 +6847,26 @@ public void MergeFrom(pb::CodedInputStream input) { #endif #region Nested types - /// Container for nested types declared in the Match message type. + /// Container for nested types declared in the Output message type. [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static partial class Types { [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class ExprList : pb::IMessage + public sealed partial class When : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ExprList()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new When()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.Match.Descriptor.NestedTypes[0]; } + get { return global::Cerbos.Api.V1.Policy.Output.Descriptor.NestedTypes[0]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -4976,7 +6877,7 @@ public sealed partial class ExprList : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ExprList() { + public When() { OnConstruction(); } @@ -4984,44 +6885,59 @@ public ExprList() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ExprList(ExprList other) : this() { - of_ = other.of_.Clone(); + public When(When other) : this() { + ruleActivated_ = other.ruleActivated_; + conditionNotMet_ = other.conditionNotMet_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ExprList Clone() { - return new ExprList(this); + public When Clone() { + return new When(this); } - /// Field number for the "of" field. - public const int OfFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_of_codec - = pb::FieldCodec.ForMessage(10, global::Cerbos.Api.V1.Policy.Match.Parser); - private readonly pbc::RepeatedField of_ = new pbc::RepeatedField(); + /// Field number for the "rule_activated" field. + public const int RuleActivatedFieldNumber = 1; + private string ruleActivated_ = ""; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Of { - get { return of_; } + public string RuleActivated { + get { return ruleActivated_; } + set { + ruleActivated_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "condition_not_met" field. + public const int ConditionNotMetFieldNumber = 2; + private string conditionNotMet_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ConditionNotMet { + get { return conditionNotMet_; } + set { + conditionNotMet_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as ExprList); + return Equals(other as When); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(ExprList other) { + public bool Equals(When other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if(!of_.Equals(other.of_)) return false; + if (RuleActivated != other.RuleActivated) return false; + if (ConditionNotMet != other.ConditionNotMet) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5029,7 +6945,8 @@ public bool Equals(ExprList other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - hash ^= of_.GetHashCode(); + if (RuleActivated.Length != 0) hash ^= RuleActivated.GetHashCode(); + if (ConditionNotMet.Length != 0) hash ^= ConditionNotMet.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5048,7 +6965,14 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - of_.WriteTo(output, _repeated_of_codec); + if (RuleActivated.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RuleActivated); + } + if (ConditionNotMet.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ConditionNotMet); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5059,7 +6983,14 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - of_.WriteTo(ref output, _repeated_of_codec); + if (RuleActivated.Length != 0) { + output.WriteRawTag(10); + output.WriteString(RuleActivated); + } + if (ConditionNotMet.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ConditionNotMet); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5070,7 +7001,12 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - size += of_.CalculateSize(_repeated_of_codec); + if (RuleActivated.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RuleActivated); + } + if (ConditionNotMet.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ConditionNotMet); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5079,11 +7015,16 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(ExprList other) { + public void MergeFrom(When other) { if (other == null) { return; } - of_.Add(other.of_); + if (other.RuleActivated.Length != 0) { + RuleActivated = other.RuleActivated; + } + if (other.ConditionNotMet.Length != 0) { + ConditionNotMet = other.ConditionNotMet; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5104,7 +7045,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - of_.AddEntriesFrom(input, _repeated_of_codec); + RuleActivated = input.ReadString(); + break; + } + case 18: { + ConditionNotMet = input.ReadString(); break; } } @@ -5127,7 +7072,11 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - of_.AddEntriesFrom(ref input, _repeated_of_codec); + RuleActivated = input.ReadString(); + break; + } + case 18: { + ConditionNotMet = input.ReadString(); break; } } @@ -5143,21 +7092,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Output : pb::IMessage + public sealed partial class Schemas : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Output()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Schemas()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[13]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[18]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5168,7 +7117,7 @@ public sealed partial class Output : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Output() { + public Schemas() { OnConstruction(); } @@ -5176,60 +7125,59 @@ public Output() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Output(Output other) : this() { - expr_ = other.expr_; - when_ = other.when_ != null ? other.when_.Clone() : null; + public Schemas(Schemas other) : this() { + principalSchema_ = other.principalSchema_ != null ? other.principalSchema_.Clone() : null; + resourceSchema_ = other.resourceSchema_ != null ? other.resourceSchema_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Output Clone() { - return new Output(this); + public Schemas Clone() { + return new Schemas(this); } - /// Field number for the "expr" field. - public const int ExprFieldNumber = 1; - private string expr_ = ""; - [global::System.ObsoleteAttribute] + /// Field number for the "principal_schema" field. + public const int PrincipalSchemaFieldNumber = 1; + private global::Cerbos.Api.V1.Policy.Schemas.Types.Schema principalSchema_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Expr { - get { return expr_; } + public global::Cerbos.Api.V1.Policy.Schemas.Types.Schema PrincipalSchema { + get { return principalSchema_; } set { - expr_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + principalSchema_ = value; } } - /// Field number for the "when" field. - public const int WhenFieldNumber = 2; - private global::Cerbos.Api.V1.Policy.Output.Types.When when_; + /// Field number for the "resource_schema" field. + public const int ResourceSchemaFieldNumber = 2; + private global::Cerbos.Api.V1.Policy.Schemas.Types.Schema resourceSchema_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Output.Types.When When { - get { return when_; } + public global::Cerbos.Api.V1.Policy.Schemas.Types.Schema ResourceSchema { + get { return resourceSchema_; } set { - when_ = value; + resourceSchema_ = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Output); + return Equals(other as Schemas); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Output other) { + public bool Equals(Schemas other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (Expr != other.Expr) return false; - if (!object.Equals(When, other.When)) return false; + if (!object.Equals(PrincipalSchema, other.PrincipalSchema)) return false; + if (!object.Equals(ResourceSchema, other.ResourceSchema)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5237,8 +7185,8 @@ public bool Equals(Output other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (Expr.Length != 0) hash ^= Expr.GetHashCode(); - if (when_ != null) hash ^= When.GetHashCode(); + if (principalSchema_ != null) hash ^= PrincipalSchema.GetHashCode(); + if (resourceSchema_ != null) hash ^= ResourceSchema.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5257,13 +7205,13 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (Expr.Length != 0) { + if (principalSchema_ != null) { output.WriteRawTag(10); - output.WriteString(Expr); + output.WriteMessage(PrincipalSchema); } - if (when_ != null) { + if (resourceSchema_ != null) { output.WriteRawTag(18); - output.WriteMessage(When); + output.WriteMessage(ResourceSchema); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -5275,13 +7223,13 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Expr.Length != 0) { + if (principalSchema_ != null) { output.WriteRawTag(10); - output.WriteString(Expr); + output.WriteMessage(PrincipalSchema); } - if (when_ != null) { + if (resourceSchema_ != null) { output.WriteRawTag(18); - output.WriteMessage(When); + output.WriteMessage(ResourceSchema); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -5293,11 +7241,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (Expr.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Expr); + if (principalSchema_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(PrincipalSchema); } - if (when_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(When); + if (resourceSchema_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(ResourceSchema); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -5307,105 +7255,301 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Output other) { + public void MergeFrom(Schemas other) { if (other == null) { return; } - if (other.Expr.Length != 0) { - Expr = other.Expr; + if (other.principalSchema_ != null) { + if (principalSchema_ == null) { + PrincipalSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); + } + PrincipalSchema.MergeFrom(other.PrincipalSchema); } - if (other.when_ != null) { - if (when_ == null) { - When = new global::Cerbos.Api.V1.Policy.Output.Types.When(); + if (other.resourceSchema_ != null) { + if (resourceSchema_ == null) { + ResourceSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); + } + ResourceSchema.MergeFrom(other.ResourceSchema); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (principalSchema_ == null) { + PrincipalSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); + } + input.ReadMessage(PrincipalSchema); + break; + } + case 18: { + if (resourceSchema_ == null) { + ResourceSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); + } + input.ReadMessage(ResourceSchema); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (principalSchema_ == null) { + PrincipalSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); + } + input.ReadMessage(PrincipalSchema); + break; + } + case 18: { + if (resourceSchema_ == null) { + ResourceSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); + } + input.ReadMessage(ResourceSchema); + break; + } + } + } + } + #endif + + #region Nested types + /// Container for nested types declared in the Schemas message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types { + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class IgnoreWhen : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new IgnoreWhen()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.Schemas.Descriptor.NestedTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public IgnoreWhen() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public IgnoreWhen(IgnoreWhen other) : this() { + actions_ = other.actions_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public IgnoreWhen Clone() { + return new IgnoreWhen(this); + } + + /// Field number for the "actions" field. + public const int ActionsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_actions_codec + = pb::FieldCodec.ForString(10); + private readonly pbc::RepeatedField actions_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Actions { + get { return actions_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as IgnoreWhen); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(IgnoreWhen other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!actions_.Equals(other.actions_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= actions_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + actions_.WriteTo(output, _repeated_actions_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + actions_.WriteTo(ref output, _repeated_actions_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += actions_.CalculateSize(_repeated_actions_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(IgnoreWhen other) { + if (other == null) { + return; + } + actions_.Add(other.actions_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } - When.MergeFrom(other.When); - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - Expr = input.ReadString(); - break; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; } - case 18: { - if (when_ == null) { - When = new global::Cerbos.Api.V1.Policy.Output.Types.When(); + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + actions_.AddEntriesFrom(input, _repeated_actions_codec); + break; + } } - input.ReadMessage(When); - break; } + #endif } - } - #endif - } - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - Expr = input.ReadString(); - break; + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; } - case 18: { - if (when_ == null) { - When = new global::Cerbos.Api.V1.Policy.Output.Types.When(); + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + actions_.AddEntriesFrom(ref input, _repeated_actions_codec); + break; + } } - input.ReadMessage(When); - break; } } + #endif + } - } - #endif - #region Nested types - /// Container for nested types declared in the Output message type. - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static partial class Types { [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class When : pb::IMessage + public sealed partial class Schema : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new When()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Schema()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.Output.Descriptor.NestedTypes[0]; } + get { return global::Cerbos.Api.V1.Policy.Schemas.Descriptor.NestedTypes[1]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5416,7 +7560,7 @@ public sealed partial class When : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public When() { + public Schema() { OnConstruction(); } @@ -5424,59 +7568,59 @@ public When() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public When(When other) : this() { - ruleActivated_ = other.ruleActivated_; - conditionNotMet_ = other.conditionNotMet_; + public Schema(Schema other) : this() { + ref_ = other.ref_; + ignoreWhen_ = other.ignoreWhen_ != null ? other.ignoreWhen_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public When Clone() { - return new When(this); + public Schema Clone() { + return new Schema(this); } - /// Field number for the "rule_activated" field. - public const int RuleActivatedFieldNumber = 1; - private string ruleActivated_ = ""; + /// Field number for the "ref" field. + public const int RefFieldNumber = 1; + private string ref_ = ""; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string RuleActivated { - get { return ruleActivated_; } + public string Ref { + get { return ref_; } set { - ruleActivated_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + ref_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - /// Field number for the "condition_not_met" field. - public const int ConditionNotMetFieldNumber = 2; - private string conditionNotMet_ = ""; + /// Field number for the "ignore_when" field. + public const int IgnoreWhenFieldNumber = 2; + private global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen ignoreWhen_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string ConditionNotMet { - get { return conditionNotMet_; } + public global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen IgnoreWhen { + get { return ignoreWhen_; } set { - conditionNotMet_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + ignoreWhen_ = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as When); + return Equals(other as Schema); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(When other) { + public bool Equals(Schema other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (RuleActivated != other.RuleActivated) return false; - if (ConditionNotMet != other.ConditionNotMet) return false; + if (Ref != other.Ref) return false; + if (!object.Equals(IgnoreWhen, other.IgnoreWhen)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5484,8 +7628,8 @@ public bool Equals(When other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (RuleActivated.Length != 0) hash ^= RuleActivated.GetHashCode(); - if (ConditionNotMet.Length != 0) hash ^= ConditionNotMet.GetHashCode(); + if (Ref.Length != 0) hash ^= Ref.GetHashCode(); + if (ignoreWhen_ != null) hash ^= IgnoreWhen.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5504,13 +7648,13 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (RuleActivated.Length != 0) { + if (Ref.Length != 0) { output.WriteRawTag(10); - output.WriteString(RuleActivated); + output.WriteString(Ref); } - if (ConditionNotMet.Length != 0) { + if (ignoreWhen_ != null) { output.WriteRawTag(18); - output.WriteString(ConditionNotMet); + output.WriteMessage(IgnoreWhen); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -5522,13 +7666,13 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (RuleActivated.Length != 0) { + if (Ref.Length != 0) { output.WriteRawTag(10); - output.WriteString(RuleActivated); + output.WriteString(Ref); } - if (ConditionNotMet.Length != 0) { + if (ignoreWhen_ != null) { output.WriteRawTag(18); - output.WriteString(ConditionNotMet); + output.WriteMessage(IgnoreWhen); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -5540,11 +7684,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (RuleActivated.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(RuleActivated); + if (Ref.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Ref); } - if (ConditionNotMet.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(ConditionNotMet); + if (ignoreWhen_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(IgnoreWhen); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -5554,15 +7698,18 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(When other) { + public void MergeFrom(Schema other) { if (other == null) { return; } - if (other.RuleActivated.Length != 0) { - RuleActivated = other.RuleActivated; + if (other.Ref.Length != 0) { + Ref = other.Ref; } - if (other.ConditionNotMet.Length != 0) { - ConditionNotMet = other.ConditionNotMet; + if (other.ignoreWhen_ != null) { + if (ignoreWhen_ == null) { + IgnoreWhen = new global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen(); + } + IgnoreWhen.MergeFrom(other.IgnoreWhen); } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5584,11 +7731,14 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - RuleActivated = input.ReadString(); + Ref = input.ReadString(); break; } case 18: { - ConditionNotMet = input.ReadString(); + if (ignoreWhen_ == null) { + IgnoreWhen = new global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen(); + } + input.ReadMessage(IgnoreWhen); break; } } @@ -5611,11 +7761,14 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - RuleActivated = input.ReadString(); + Ref = input.ReadString(); break; } case 18: { - ConditionNotMet = input.ReadString(); + if (ignoreWhen_ == null) { + IgnoreWhen = new global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen(); + } + input.ReadMessage(IgnoreWhen); break; } } @@ -5631,21 +7784,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Schemas : pb::IMessage + public sealed partial class TestFixture : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Schemas()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TestFixture()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[14]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[19]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5656,7 +7809,7 @@ public sealed partial class Schemas : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Schemas() { + public TestFixture() { OnConstruction(); } @@ -5664,59 +7817,31 @@ public Schemas() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Schemas(Schemas other) : this() { - principalSchema_ = other.principalSchema_ != null ? other.principalSchema_.Clone() : null; - resourceSchema_ = other.resourceSchema_ != null ? other.resourceSchema_.Clone() : null; + public TestFixture(TestFixture other) : this() { _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Schemas Clone() { - return new Schemas(this); - } - - /// Field number for the "principal_schema" field. - public const int PrincipalSchemaFieldNumber = 1; - private global::Cerbos.Api.V1.Policy.Schemas.Types.Schema principalSchema_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Schemas.Types.Schema PrincipalSchema { - get { return principalSchema_; } - set { - principalSchema_ = value; - } - } - - /// Field number for the "resource_schema" field. - public const int ResourceSchemaFieldNumber = 2; - private global::Cerbos.Api.V1.Policy.Schemas.Types.Schema resourceSchema_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Schemas.Types.Schema ResourceSchema { - get { return resourceSchema_; } - set { - resourceSchema_ = value; - } + public TestFixture Clone() { + return new TestFixture(this); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Schemas); + return Equals(other as TestFixture); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Schemas other) { + public bool Equals(TestFixture other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!object.Equals(PrincipalSchema, other.PrincipalSchema)) return false; - if (!object.Equals(ResourceSchema, other.ResourceSchema)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5724,8 +7849,6 @@ public bool Equals(Schemas other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (principalSchema_ != null) hash ^= PrincipalSchema.GetHashCode(); - if (resourceSchema_ != null) hash ^= ResourceSchema.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5744,14 +7867,6 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (principalSchema_ != null) { - output.WriteRawTag(10); - output.WriteMessage(PrincipalSchema); - } - if (resourceSchema_ != null) { - output.WriteRawTag(18); - output.WriteMessage(ResourceSchema); - } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5762,14 +7877,6 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (principalSchema_ != null) { - output.WriteRawTag(10); - output.WriteMessage(PrincipalSchema); - } - if (resourceSchema_ != null) { - output.WriteRawTag(18); - output.WriteMessage(ResourceSchema); - } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5780,12 +7887,6 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (principalSchema_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(PrincipalSchema); - } - if (resourceSchema_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(ResourceSchema); - } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5794,22 +7895,10 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Schemas other) { + public void MergeFrom(TestFixture other) { if (other == null) { return; } - if (other.principalSchema_ != null) { - if (principalSchema_ == null) { - PrincipalSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); - } - PrincipalSchema.MergeFrom(other.PrincipalSchema); - } - if (other.resourceSchema_ != null) { - if (resourceSchema_ == null) { - ResourceSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); - } - ResourceSchema.MergeFrom(other.ResourceSchema); - } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5829,20 +7918,6 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; - case 10: { - if (principalSchema_ == null) { - PrincipalSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); - } - input.ReadMessage(PrincipalSchema); - break; - } - case 18: { - if (resourceSchema_ == null) { - ResourceSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); - } - input.ReadMessage(ResourceSchema); - break; - } } } #endif @@ -5862,46 +7937,32 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; - case 10: { - if (principalSchema_ == null) { - PrincipalSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); - } - input.ReadMessage(PrincipalSchema); - break; - } - case 18: { - if (resourceSchema_ == null) { - ResourceSchema = new global::Cerbos.Api.V1.Policy.Schemas.Types.Schema(); - } - input.ReadMessage(ResourceSchema); - break; - } } } } #endif #region Nested types - /// Container for nested types declared in the Schemas message type. + /// Container for nested types declared in the TestFixture message type. [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static partial class Types { [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class IgnoreWhen : pb::IMessage + public sealed partial class Principals : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new IgnoreWhen()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Principals()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.Schemas.Descriptor.NestedTypes[0]; } + get { return global::Cerbos.Api.V1.Policy.TestFixture.Descriptor.NestedTypes[0]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5912,7 +7973,7 @@ public sealed partial class IgnoreWhen : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public IgnoreWhen() { + public Principals() { OnConstruction(); } @@ -5920,44 +7981,71 @@ public IgnoreWhen() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public IgnoreWhen(IgnoreWhen other) : this() { - actions_ = other.actions_.Clone(); + public Principals(Principals other) : this() { + principals_ = other.principals_.Clone(); + jsonSchema_ = other.jsonSchema_; + principalGroups_ = other.principalGroups_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public IgnoreWhen Clone() { - return new IgnoreWhen(this); + public Principals Clone() { + return new Principals(this); } - /// Field number for the "actions" field. - public const int ActionsFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_actions_codec - = pb::FieldCodec.ForString(10); - private readonly pbc::RepeatedField actions_ = new pbc::RepeatedField(); + /// Field number for the "principals" field. + public const int Principals_FieldNumber = 1; + private static readonly pbc::MapField.Codec _map_principals_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Engine.Principal.Parser), 10); + private readonly pbc::MapField principals_ = new pbc::MapField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Actions { - get { return actions_; } + public pbc::MapField Principals_ { + get { return principals_; } + } + + /// Field number for the "json_schema" field. + public const int JsonSchemaFieldNumber = 2; + private string jsonSchema_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string JsonSchema { + get { return jsonSchema_; } + set { + jsonSchema_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "principal_groups" field. + public const int PrincipalGroupsFieldNumber = 3; + private static readonly pbc::MapField.Codec _map_principalGroups_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Policy.TestFixtureGroup.Types.Principals.Parser), 26); + private readonly pbc::MapField principalGroups_ = new pbc::MapField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::MapField PrincipalGroups { + get { return principalGroups_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as IgnoreWhen); + return Equals(other as Principals); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(IgnoreWhen other) { + public bool Equals(Principals other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if(!actions_.Equals(other.actions_)) return false; + if (!Principals_.Equals(other.Principals_)) return false; + if (JsonSchema != other.JsonSchema) return false; + if (!PrincipalGroups.Equals(other.PrincipalGroups)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5965,7 +8053,9 @@ public bool Equals(IgnoreWhen other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - hash ^= actions_.GetHashCode(); + hash ^= Principals_.GetHashCode(); + if (JsonSchema.Length != 0) hash ^= JsonSchema.GetHashCode(); + hash ^= PrincipalGroups.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5984,7 +8074,12 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - actions_.WriteTo(output, _repeated_actions_codec); + principals_.WriteTo(output, _map_principals_codec); + if (JsonSchema.Length != 0) { + output.WriteRawTag(18); + output.WriteString(JsonSchema); + } + principalGroups_.WriteTo(output, _map_principalGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5995,7 +8090,12 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - actions_.WriteTo(ref output, _repeated_actions_codec); + principals_.WriteTo(ref output, _map_principals_codec); + if (JsonSchema.Length != 0) { + output.WriteRawTag(18); + output.WriteString(JsonSchema); + } + principalGroups_.WriteTo(ref output, _map_principalGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6006,7 +8106,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - size += actions_.CalculateSize(_repeated_actions_codec); + size += principals_.CalculateSize(_map_principals_codec); + if (JsonSchema.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonSchema); + } + size += principalGroups_.CalculateSize(_map_principalGroups_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -6015,11 +8119,15 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(IgnoreWhen other) { + public void MergeFrom(Principals other) { if (other == null) { return; } - actions_.Add(other.actions_); + principals_.MergeFrom(other.principals_); + if (other.JsonSchema.Length != 0) { + JsonSchema = other.JsonSchema; + } + principalGroups_.MergeFrom(other.principalGroups_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -6040,7 +8148,15 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - actions_.AddEntriesFrom(input, _repeated_actions_codec); + principals_.AddEntriesFrom(input, _map_principals_codec); + break; + } + case 18: { + JsonSchema = input.ReadString(); + break; + } + case 26: { + principalGroups_.AddEntriesFrom(input, _map_principalGroups_codec); break; } } @@ -6063,7 +8179,15 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - actions_.AddEntriesFrom(ref input, _repeated_actions_codec); + principals_.AddEntriesFrom(ref input, _map_principals_codec); + break; + } + case 18: { + JsonSchema = input.ReadString(); + break; + } + case 26: { + principalGroups_.AddEntriesFrom(ref input, _map_principalGroups_codec); break; } } @@ -6074,21 +8198,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Schema : pb::IMessage + public sealed partial class Resources : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Schema()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Resources()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.Schemas.Descriptor.NestedTypes[1]; } + get { return global::Cerbos.Api.V1.Policy.TestFixture.Descriptor.NestedTypes[1]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6099,7 +8223,7 @@ public sealed partial class Schema : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Schema() { + public Resources() { OnConstruction(); } @@ -6107,59 +8231,71 @@ public Schema() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Schema(Schema other) : this() { - ref_ = other.ref_; - ignoreWhen_ = other.ignoreWhen_ != null ? other.ignoreWhen_.Clone() : null; + public Resources(Resources other) : this() { + resources_ = other.resources_.Clone(); + jsonSchema_ = other.jsonSchema_; + resourceGroups_ = other.resourceGroups_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Schema Clone() { - return new Schema(this); + public Resources Clone() { + return new Resources(this); } - /// Field number for the "ref" field. - public const int RefFieldNumber = 1; - private string ref_ = ""; + /// Field number for the "resources" field. + public const int Resources_FieldNumber = 1; + private static readonly pbc::MapField.Codec _map_resources_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Engine.Resource.Parser), 10); + private readonly pbc::MapField resources_ = new pbc::MapField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Ref { - get { return ref_; } - set { - ref_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } + public pbc::MapField Resources_ { + get { return resources_; } } - /// Field number for the "ignore_when" field. - public const int IgnoreWhenFieldNumber = 2; - private global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen ignoreWhen_; + /// Field number for the "json_schema" field. + public const int JsonSchemaFieldNumber = 2; + private string jsonSchema_ = ""; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen IgnoreWhen { - get { return ignoreWhen_; } + public string JsonSchema { + get { return jsonSchema_; } set { - ignoreWhen_ = value; + jsonSchema_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } + /// Field number for the "resource_groups" field. + public const int ResourceGroupsFieldNumber = 3; + private static readonly pbc::MapField.Codec _map_resourceGroups_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Policy.TestFixtureGroup.Types.Resources.Parser), 26); + private readonly pbc::MapField resourceGroups_ = new pbc::MapField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::MapField ResourceGroups { + get { return resourceGroups_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Schema); + return Equals(other as Resources); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Schema other) { + public bool Equals(Resources other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (Ref != other.Ref) return false; - if (!object.Equals(IgnoreWhen, other.IgnoreWhen)) return false; + if (!Resources_.Equals(other.Resources_)) return false; + if (JsonSchema != other.JsonSchema) return false; + if (!ResourceGroups.Equals(other.ResourceGroups)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -6167,8 +8303,9 @@ public bool Equals(Schema other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (Ref.Length != 0) hash ^= Ref.GetHashCode(); - if (ignoreWhen_ != null) hash ^= IgnoreWhen.GetHashCode(); + hash ^= Resources_.GetHashCode(); + if (JsonSchema.Length != 0) hash ^= JsonSchema.GetHashCode(); + hash ^= ResourceGroups.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -6187,14 +8324,12 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (Ref.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Ref); - } - if (ignoreWhen_ != null) { + resources_.WriteTo(output, _map_resources_codec); + if (JsonSchema.Length != 0) { output.WriteRawTag(18); - output.WriteMessage(IgnoreWhen); + output.WriteString(JsonSchema); } + resourceGroups_.WriteTo(output, _map_resourceGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6205,14 +8340,12 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Ref.Length != 0) { - output.WriteRawTag(10); - output.WriteString(Ref); - } - if (ignoreWhen_ != null) { + resources_.WriteTo(ref output, _map_resources_codec); + if (JsonSchema.Length != 0) { output.WriteRawTag(18); - output.WriteMessage(IgnoreWhen); + output.WriteString(JsonSchema); } + resourceGroups_.WriteTo(ref output, _map_resourceGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6223,12 +8356,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (Ref.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Ref); - } - if (ignoreWhen_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(IgnoreWhen); + size += resources_.CalculateSize(_map_resources_codec); + if (JsonSchema.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonSchema); } + size += resourceGroups_.CalculateSize(_map_resourceGroups_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -6237,19 +8369,15 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Schema other) { + public void MergeFrom(Resources other) { if (other == null) { return; } - if (other.Ref.Length != 0) { - Ref = other.Ref; - } - if (other.ignoreWhen_ != null) { - if (ignoreWhen_ == null) { - IgnoreWhen = new global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen(); - } - IgnoreWhen.MergeFrom(other.IgnoreWhen); + resources_.MergeFrom(other.resources_); + if (other.JsonSchema.Length != 0) { + JsonSchema = other.JsonSchema; } + resourceGroups_.MergeFrom(other.resourceGroups_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -6270,14 +8398,15 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - Ref = input.ReadString(); + resources_.AddEntriesFrom(input, _map_resources_codec); break; } case 18: { - if (ignoreWhen_ == null) { - IgnoreWhen = new global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen(); - } - input.ReadMessage(IgnoreWhen); + JsonSchema = input.ReadString(); + break; + } + case 26: { + resourceGroups_.AddEntriesFrom(input, _map_resourceGroups_codec); break; } } @@ -6300,14 +8429,15 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - Ref = input.ReadString(); + resources_.AddEntriesFrom(ref input, _map_resources_codec); break; } case 18: { - if (ignoreWhen_ == null) { - IgnoreWhen = new global::Cerbos.Api.V1.Policy.Schemas.Types.IgnoreWhen(); - } - input.ReadMessage(IgnoreWhen); + JsonSchema = input.ReadString(); + break; + } + case 26: { + resourceGroups_.AddEntriesFrom(ref input, _map_resourceGroups_codec); break; } } @@ -6317,191 +8447,22 @@ public void MergeFrom(pb::CodedInputStream input) { } - } - #endregion - - } - - [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class TestFixture : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TestFixture()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[15]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TestFixture() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TestFixture(TestFixture other) : this() { - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TestFixture Clone() { - return new TestFixture(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as TestFixture); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(TestFixture other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(TestFixture other) { - if (other == null) { - return; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - if ((tag & 7) == 4) { - // Abort on any end group tag. - return; - } - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - } - } - } - #endif - - #region Nested types - /// Container for nested types declared in the TestFixture message type. - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static partial class Types { [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Principals : pb::IMessage + public sealed partial class AuxData : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Principals()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AuxData()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.TestFixture.Descriptor.NestedTypes[0]; } + get { return global::Cerbos.Api.V1.Policy.TestFixture.Descriptor.NestedTypes[2]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6512,7 +8473,7 @@ public sealed partial class Principals : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Principals() { + public AuxData() { OnConstruction(); } @@ -6520,27 +8481,27 @@ public Principals() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Principals(Principals other) : this() { - principals_ = other.principals_.Clone(); + public AuxData(AuxData other) : this() { + auxData_ = other.auxData_.Clone(); jsonSchema_ = other.jsonSchema_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Principals Clone() { - return new Principals(this); + public AuxData Clone() { + return new AuxData(this); } - /// Field number for the "principals" field. - public const int Principals_FieldNumber = 1; - private static readonly pbc::MapField.Codec _map_principals_codec - = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Engine.Principal.Parser), 10); - private readonly pbc::MapField principals_ = new pbc::MapField(); + /// Field number for the "aux_data" field. + public const int AuxData_FieldNumber = 1; + private static readonly pbc::MapField.Codec _map_auxData_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Engine.AuxData.Parser), 10); + private readonly pbc::MapField auxData_ = new pbc::MapField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::MapField Principals_ { - get { return principals_; } + public pbc::MapField AuxData_ { + get { return auxData_; } } /// Field number for the "json_schema" field. @@ -6558,19 +8519,19 @@ public string JsonSchema { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Principals); + return Equals(other as AuxData); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Principals other) { + public bool Equals(AuxData other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!Principals_.Equals(other.Principals_)) return false; + if (!AuxData_.Equals(other.AuxData_)) return false; if (JsonSchema != other.JsonSchema) return false; return Equals(_unknownFields, other._unknownFields); } @@ -6579,7 +8540,7 @@ public bool Equals(Principals other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - hash ^= Principals_.GetHashCode(); + hash ^= AuxData_.GetHashCode(); if (JsonSchema.Length != 0) hash ^= JsonSchema.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -6599,7 +8560,7 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - principals_.WriteTo(output, _map_principals_codec); + auxData_.WriteTo(output, _map_auxData_codec); if (JsonSchema.Length != 0) { output.WriteRawTag(18); output.WriteString(JsonSchema); @@ -6614,7 +8575,7 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - principals_.WriteTo(ref output, _map_principals_codec); + auxData_.WriteTo(ref output, _map_auxData_codec); if (JsonSchema.Length != 0) { output.WriteRawTag(18); output.WriteString(JsonSchema); @@ -6629,7 +8590,7 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - size += principals_.CalculateSize(_map_principals_codec); + size += auxData_.CalculateSize(_map_auxData_codec); if (JsonSchema.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonSchema); } @@ -6641,11 +8602,11 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Principals other) { + public void MergeFrom(AuxData other) { if (other == null) { return; } - principals_.MergeFrom(other.principals_); + auxData_.MergeFrom(other.auxData_); if (other.JsonSchema.Length != 0) { JsonSchema = other.JsonSchema; } @@ -6669,7 +8630,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - principals_.AddEntriesFrom(input, _map_principals_codec); + auxData_.AddEntriesFrom(input, _map_auxData_codec); break; } case 18: { @@ -6696,7 +8657,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - principals_.AddEntriesFrom(ref input, _map_principals_codec); + auxData_.AddEntriesFrom(ref input, _map_auxData_codec); break; } case 18: { @@ -6710,22 +8671,191 @@ public void MergeFrom(pb::CodedInputStream input) { } + } + #endregion + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class TestFixtureGroup : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TestFixtureGroup()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[20]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TestFixtureGroup() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TestFixtureGroup(TestFixtureGroup other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TestFixtureGroup Clone() { + return new TestFixtureGroup(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TestFixtureGroup); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TestFixtureGroup other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TestFixtureGroup other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + + #region Nested types + /// Container for nested types declared in the TestFixtureGroup message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types { [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Resources : pb::IMessage + public sealed partial class Principals : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Resources()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Principals()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.TestFixture.Descriptor.NestedTypes[1]; } + get { return global::Cerbos.Api.V1.Policy.TestFixtureGroup.Descriptor.NestedTypes[0]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6736,7 +8866,7 @@ public sealed partial class Resources : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Resources() { + public Principals() { OnConstruction(); } @@ -6744,58 +8874,44 @@ public Resources() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Resources(Resources other) : this() { - resources_ = other.resources_.Clone(); - jsonSchema_ = other.jsonSchema_; + public Principals(Principals other) : this() { + principals_ = other.principals_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Resources Clone() { - return new Resources(this); - } - - /// Field number for the "resources" field. - public const int Resources_FieldNumber = 1; - private static readonly pbc::MapField.Codec _map_resources_codec - = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Engine.Resource.Parser), 10); - private readonly pbc::MapField resources_ = new pbc::MapField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::MapField Resources_ { - get { return resources_; } + public Principals Clone() { + return new Principals(this); } - /// Field number for the "json_schema" field. - public const int JsonSchemaFieldNumber = 2; - private string jsonSchema_ = ""; + /// Field number for the "principals" field. + public const int Principals_FieldNumber = 1; + private static readonly pb::FieldCodec _repeated_principals_codec + = pb::FieldCodec.ForString(10); + private readonly pbc::RepeatedField principals_ = new pbc::RepeatedField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string JsonSchema { - get { return jsonSchema_; } - set { - jsonSchema_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } + public pbc::RepeatedField Principals_ { + get { return principals_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Resources); + return Equals(other as Principals); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Resources other) { + public bool Equals(Principals other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!Resources_.Equals(other.Resources_)) return false; - if (JsonSchema != other.JsonSchema) return false; + if(!principals_.Equals(other.principals_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -6803,8 +8919,7 @@ public bool Equals(Resources other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - hash ^= Resources_.GetHashCode(); - if (JsonSchema.Length != 0) hash ^= JsonSchema.GetHashCode(); + hash ^= principals_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -6823,11 +8938,7 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - resources_.WriteTo(output, _map_resources_codec); - if (JsonSchema.Length != 0) { - output.WriteRawTag(18); - output.WriteString(JsonSchema); - } + principals_.WriteTo(output, _repeated_principals_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6838,11 +8949,7 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - resources_.WriteTo(ref output, _map_resources_codec); - if (JsonSchema.Length != 0) { - output.WriteRawTag(18); - output.WriteString(JsonSchema); - } + principals_.WriteTo(ref output, _repeated_principals_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6853,10 +8960,7 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - size += resources_.CalculateSize(_map_resources_codec); - if (JsonSchema.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonSchema); - } + size += principals_.CalculateSize(_repeated_principals_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -6865,14 +8969,11 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Resources other) { + public void MergeFrom(Principals other) { if (other == null) { return; } - resources_.MergeFrom(other.resources_); - if (other.JsonSchema.Length != 0) { - JsonSchema = other.JsonSchema; - } + principals_.Add(other.principals_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -6893,11 +8994,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - resources_.AddEntriesFrom(input, _map_resources_codec); - break; - } - case 18: { - JsonSchema = input.ReadString(); + principals_.AddEntriesFrom(input, _repeated_principals_codec); break; } } @@ -6919,12 +9016,8 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; - case 10: { - resources_.AddEntriesFrom(ref input, _map_resources_codec); - break; - } - case 18: { - JsonSchema = input.ReadString(); + case 10: { + principals_.AddEntriesFrom(ref input, _repeated_principals_codec); break; } } @@ -6935,21 +9028,21 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class AuxData : pb::IMessage + public sealed partial class Resources : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AuxData()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Resources()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.TestFixture.Descriptor.NestedTypes[2]; } + get { return global::Cerbos.Api.V1.Policy.TestFixtureGroup.Descriptor.NestedTypes[1]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6960,7 +9053,7 @@ public sealed partial class AuxData : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AuxData() { + public Resources() { OnConstruction(); } @@ -6968,58 +9061,44 @@ public AuxData() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AuxData(AuxData other) : this() { - auxData_ = other.auxData_.Clone(); - jsonSchema_ = other.jsonSchema_; + public Resources(Resources other) : this() { + resources_ = other.resources_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AuxData Clone() { - return new AuxData(this); - } - - /// Field number for the "aux_data" field. - public const int AuxData_FieldNumber = 1; - private static readonly pbc::MapField.Codec _map_auxData_codec - = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Engine.AuxData.Parser), 10); - private readonly pbc::MapField auxData_ = new pbc::MapField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::MapField AuxData_ { - get { return auxData_; } + public Resources Clone() { + return new Resources(this); } - /// Field number for the "json_schema" field. - public const int JsonSchemaFieldNumber = 2; - private string jsonSchema_ = ""; + /// Field number for the "resources" field. + public const int Resources_FieldNumber = 1; + private static readonly pb::FieldCodec _repeated_resources_codec + = pb::FieldCodec.ForString(10); + private readonly pbc::RepeatedField resources_ = new pbc::RepeatedField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string JsonSchema { - get { return jsonSchema_; } - set { - jsonSchema_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } + public pbc::RepeatedField Resources_ { + get { return resources_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as AuxData); + return Equals(other as Resources); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(AuxData other) { + public bool Equals(Resources other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!AuxData_.Equals(other.AuxData_)) return false; - if (JsonSchema != other.JsonSchema) return false; + if(!resources_.Equals(other.resources_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7027,8 +9106,7 @@ public bool Equals(AuxData other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - hash ^= AuxData_.GetHashCode(); - if (JsonSchema.Length != 0) hash ^= JsonSchema.GetHashCode(); + hash ^= resources_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7047,11 +9125,7 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - auxData_.WriteTo(output, _map_auxData_codec); - if (JsonSchema.Length != 0) { - output.WriteRawTag(18); - output.WriteString(JsonSchema); - } + resources_.WriteTo(output, _repeated_resources_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7062,11 +9136,7 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - auxData_.WriteTo(ref output, _map_auxData_codec); - if (JsonSchema.Length != 0) { - output.WriteRawTag(18); - output.WriteString(JsonSchema); - } + resources_.WriteTo(ref output, _repeated_resources_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7077,10 +9147,7 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - size += auxData_.CalculateSize(_map_auxData_codec); - if (JsonSchema.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonSchema); - } + size += resources_.CalculateSize(_repeated_resources_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7089,14 +9156,11 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(AuxData other) { + public void MergeFrom(Resources other) { if (other == null) { return; } - auxData_.MergeFrom(other.auxData_); - if (other.JsonSchema.Length != 0) { - JsonSchema = other.JsonSchema; - } + resources_.Add(other.resources_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7117,11 +9181,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - auxData_.AddEntriesFrom(input, _map_auxData_codec); - break; - } - case 18: { - JsonSchema = input.ReadString(); + resources_.AddEntriesFrom(input, _repeated_resources_codec); break; } } @@ -7144,11 +9204,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 10: { - auxData_.AddEntriesFrom(ref input, _map_auxData_codec); - break; - } - case 18: { - JsonSchema = input.ReadString(); + resources_.AddEntriesFrom(ref input, _repeated_resources_codec); break; } } @@ -7178,7 +9234,7 @@ public sealed partial class TestOptions : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[16]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[21]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -7201,6 +9257,7 @@ public TestOptions(TestOptions other) : this() { now_ = other.now_ != null ? other.now_.Clone() : null; lenientScopeSearch_ = other.lenientScopeSearch_; globals_ = other.globals_.Clone(); + defaultPolicyVersion_ = other.defaultPolicyVersion_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7245,6 +9302,18 @@ public bool LenientScopeSearch { get { return globals_; } } + /// Field number for the "default_policy_version" field. + public const int DefaultPolicyVersionFieldNumber = 4; + private string defaultPolicyVersion_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string DefaultPolicyVersion { + get { return defaultPolicyVersion_; } + set { + defaultPolicyVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -7263,6 +9332,7 @@ public bool Equals(TestOptions other) { if (!object.Equals(Now, other.Now)) return false; if (LenientScopeSearch != other.LenientScopeSearch) return false; if (!Globals.Equals(other.Globals)) return false; + if (DefaultPolicyVersion != other.DefaultPolicyVersion) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7273,6 +9343,7 @@ public override int GetHashCode() { if (now_ != null) hash ^= Now.GetHashCode(); if (LenientScopeSearch != false) hash ^= LenientScopeSearch.GetHashCode(); hash ^= Globals.GetHashCode(); + if (DefaultPolicyVersion.Length != 0) hash ^= DefaultPolicyVersion.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7300,6 +9371,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteBool(LenientScopeSearch); } globals_.WriteTo(output, _map_globals_codec); + if (DefaultPolicyVersion.Length != 0) { + output.WriteRawTag(34); + output.WriteString(DefaultPolicyVersion); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7319,6 +9394,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteBool(LenientScopeSearch); } globals_.WriteTo(ref output, _map_globals_codec); + if (DefaultPolicyVersion.Length != 0) { + output.WriteRawTag(34); + output.WriteString(DefaultPolicyVersion); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7336,6 +9415,9 @@ public int CalculateSize() { size += 1 + 1; } size += globals_.CalculateSize(_map_globals_codec); + if (DefaultPolicyVersion.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(DefaultPolicyVersion); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7358,6 +9440,9 @@ public void MergeFrom(TestOptions other) { LenientScopeSearch = other.LenientScopeSearch; } globals_.MergeFrom(other.globals_); + if (other.DefaultPolicyVersion.Length != 0) { + DefaultPolicyVersion = other.DefaultPolicyVersion; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7392,6 +9477,10 @@ public void MergeFrom(pb::CodedInputStream input) { globals_.AddEntriesFrom(input, _map_globals_codec); break; } + case 34: { + DefaultPolicyVersion = input.ReadString(); + break; + } } } #endif @@ -7426,6 +9515,10 @@ public void MergeFrom(pb::CodedInputStream input) { globals_.AddEntriesFrom(ref input, _map_globals_codec); break; } + case 34: { + DefaultPolicyVersion = input.ReadString(); + break; + } } } } @@ -7448,7 +9541,7 @@ public sealed partial class TestSuite : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[17]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[22]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -7478,6 +9571,8 @@ public TestSuite(TestSuite other) : this() { auxData_ = other.auxData_.Clone(); options_ = other.options_ != null ? other.options_.Clone() : null; jsonSchema_ = other.jsonSchema_; + principalGroups_ = other.principalGroups_.Clone(); + resourceGroups_ = other.resourceGroups_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7603,6 +9698,28 @@ public string JsonSchema { } } + /// Field number for the "principal_groups" field. + public const int PrincipalGroupsFieldNumber = 11; + private static readonly pbc::MapField.Codec _map_principalGroups_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Policy.TestFixtureGroup.Types.Principals.Parser), 90); + private readonly pbc::MapField principalGroups_ = new pbc::MapField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::MapField PrincipalGroups { + get { return principalGroups_; } + } + + /// Field number for the "resource_groups" field. + public const int ResourceGroupsFieldNumber = 12; + private static readonly pbc::MapField.Codec _map_resourceGroups_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Cerbos.Api.V1.Policy.TestFixtureGroup.Types.Resources.Parser), 98); + private readonly pbc::MapField resourceGroups_ = new pbc::MapField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::MapField ResourceGroups { + get { return resourceGroups_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -7628,6 +9745,8 @@ public bool Equals(TestSuite other) { if (!AuxData.Equals(other.AuxData)) return false; if (!object.Equals(Options, other.Options)) return false; if (JsonSchema != other.JsonSchema) return false; + if (!PrincipalGroups.Equals(other.PrincipalGroups)) return false; + if (!ResourceGroups.Equals(other.ResourceGroups)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7645,6 +9764,8 @@ public override int GetHashCode() { hash ^= AuxData.GetHashCode(); if (options_ != null) hash ^= Options.GetHashCode(); if (JsonSchema.Length != 0) hash ^= JsonSchema.GetHashCode(); + hash ^= PrincipalGroups.GetHashCode(); + hash ^= ResourceGroups.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7691,6 +9812,8 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(82); output.WriteString(JsonSchema); } + principalGroups_.WriteTo(output, _map_principalGroups_codec); + resourceGroups_.WriteTo(output, _map_resourceGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7729,6 +9852,8 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(82); output.WriteString(JsonSchema); } + principalGroups_.WriteTo(ref output, _map_principalGroups_codec); + resourceGroups_.WriteTo(ref output, _map_resourceGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7761,6 +9886,8 @@ public int CalculateSize() { if (JsonSchema.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonSchema); } + size += principalGroups_.CalculateSize(_map_principalGroups_codec); + size += resourceGroups_.CalculateSize(_map_resourceGroups_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7798,6 +9925,8 @@ public void MergeFrom(TestSuite other) { if (other.JsonSchema.Length != 0) { JsonSchema = other.JsonSchema; } + principalGroups_.MergeFrom(other.principalGroups_); + resourceGroups_.MergeFrom(other.resourceGroups_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7860,6 +9989,14 @@ public void MergeFrom(pb::CodedInputStream input) { JsonSchema = input.ReadString(); break; } + case 90: { + principalGroups_.AddEntriesFrom(input, _map_principalGroups_codec); + break; + } + case 98: { + resourceGroups_.AddEntriesFrom(input, _map_resourceGroups_codec); + break; + } } } #endif @@ -7922,6 +10059,14 @@ public void MergeFrom(pb::CodedInputStream input) { JsonSchema = input.ReadString(); break; } + case 90: { + principalGroups_.AddEntriesFrom(ref input, _map_principalGroups_codec); + break; + } + case 98: { + resourceGroups_.AddEntriesFrom(ref input, _map_resourceGroups_codec); + break; + } } } } @@ -7944,7 +10089,7 @@ public sealed partial class TestTable : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[18]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[23]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -8398,6 +10543,8 @@ public Input(Input other) : this() { resources_ = other.resources_.Clone(); actions_ = other.actions_.Clone(); auxData_ = other.auxData_; + principalGroups_ = other.principalGroups_.Clone(); + resourceGroups_ = other.resourceGroups_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -8452,6 +10599,28 @@ public string AuxData { } } + /// Field number for the "principal_groups" field. + public const int PrincipalGroupsFieldNumber = 5; + private static readonly pb::FieldCodec _repeated_principalGroups_codec + = pb::FieldCodec.ForString(42); + private readonly pbc::RepeatedField principalGroups_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField PrincipalGroups { + get { return principalGroups_; } + } + + /// Field number for the "resource_groups" field. + public const int ResourceGroupsFieldNumber = 6; + private static readonly pb::FieldCodec _repeated_resourceGroups_codec + = pb::FieldCodec.ForString(50); + private readonly pbc::RepeatedField resourceGroups_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField ResourceGroups { + get { return resourceGroups_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -8471,6 +10640,8 @@ public bool Equals(Input other) { if(!resources_.Equals(other.resources_)) return false; if(!actions_.Equals(other.actions_)) return false; if (AuxData != other.AuxData) return false; + if(!principalGroups_.Equals(other.principalGroups_)) return false; + if(!resourceGroups_.Equals(other.resourceGroups_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -8482,6 +10653,8 @@ public override int GetHashCode() { hash ^= resources_.GetHashCode(); hash ^= actions_.GetHashCode(); if (AuxData.Length != 0) hash ^= AuxData.GetHashCode(); + hash ^= principalGroups_.GetHashCode(); + hash ^= resourceGroups_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -8507,6 +10680,8 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(AuxData); } + principalGroups_.WriteTo(output, _repeated_principalGroups_codec); + resourceGroups_.WriteTo(output, _repeated_resourceGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -8524,6 +10699,8 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(AuxData); } + principalGroups_.WriteTo(ref output, _repeated_principalGroups_codec); + resourceGroups_.WriteTo(ref output, _repeated_resourceGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -8540,6 +10717,8 @@ public int CalculateSize() { if (AuxData.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(AuxData); } + size += principalGroups_.CalculateSize(_repeated_principalGroups_codec); + size += resourceGroups_.CalculateSize(_repeated_resourceGroups_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -8558,6 +10737,8 @@ public void MergeFrom(Input other) { if (other.AuxData.Length != 0) { AuxData = other.AuxData; } + principalGroups_.Add(other.principalGroups_); + resourceGroups_.Add(other.resourceGroups_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -8593,6 +10774,14 @@ public void MergeFrom(pb::CodedInputStream input) { AuxData = input.ReadString(); break; } + case 42: { + principalGroups_.AddEntriesFrom(input, _repeated_principalGroups_codec); + break; + } + case 50: { + resourceGroups_.AddEntriesFrom(input, _repeated_resourceGroups_codec); + break; + } } } #endif @@ -8628,6 +10817,14 @@ public void MergeFrom(pb::CodedInputStream input) { AuxData = input.ReadString(); break; } + case 42: { + principalGroups_.AddEntriesFrom(ref input, _repeated_principalGroups_codec); + break; + } + case 50: { + resourceGroups_.AddEntriesFrom(ref input, _repeated_resourceGroups_codec); + break; + } } } } @@ -8898,6 +11095,10 @@ public Expectation(Expectation other) : this() { resource_ = other.resource_; actions_ = other.actions_.Clone(); outputs_ = other.outputs_.Clone(); + principals_ = other.principals_.Clone(); + resources_ = other.resources_.Clone(); + principalGroups_ = other.principalGroups_.Clone(); + resourceGroups_ = other.resourceGroups_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -8953,6 +11154,50 @@ public string Resource { get { return outputs_; } } + /// Field number for the "principals" field. + public const int PrincipalsFieldNumber = 5; + private static readonly pb::FieldCodec _repeated_principals_codec + = pb::FieldCodec.ForString(42); + private readonly pbc::RepeatedField principals_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Principals { + get { return principals_; } + } + + /// Field number for the "resources" field. + public const int ResourcesFieldNumber = 6; + private static readonly pb::FieldCodec _repeated_resources_codec + = pb::FieldCodec.ForString(50); + private readonly pbc::RepeatedField resources_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Resources { + get { return resources_; } + } + + /// Field number for the "principal_groups" field. + public const int PrincipalGroupsFieldNumber = 7; + private static readonly pb::FieldCodec _repeated_principalGroups_codec + = pb::FieldCodec.ForString(58); + private readonly pbc::RepeatedField principalGroups_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField PrincipalGroups { + get { return principalGroups_; } + } + + /// Field number for the "resource_groups" field. + public const int ResourceGroupsFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_resourceGroups_codec + = pb::FieldCodec.ForString(66); + private readonly pbc::RepeatedField resourceGroups_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField ResourceGroups { + get { return resourceGroups_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -8972,6 +11217,10 @@ public bool Equals(Expectation other) { if (Resource != other.Resource) return false; if (!Actions.Equals(other.Actions)) return false; if(!outputs_.Equals(other.outputs_)) return false; + if(!principals_.Equals(other.principals_)) return false; + if(!resources_.Equals(other.resources_)) return false; + if(!principalGroups_.Equals(other.principalGroups_)) return false; + if(!resourceGroups_.Equals(other.resourceGroups_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -8983,6 +11232,10 @@ public override int GetHashCode() { if (Resource.Length != 0) hash ^= Resource.GetHashCode(); hash ^= Actions.GetHashCode(); hash ^= outputs_.GetHashCode(); + hash ^= principals_.GetHashCode(); + hash ^= resources_.GetHashCode(); + hash ^= principalGroups_.GetHashCode(); + hash ^= resourceGroups_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -9011,6 +11264,10 @@ public void WriteTo(pb::CodedOutputStream output) { } actions_.WriteTo(output, _map_actions_codec); outputs_.WriteTo(output, _repeated_outputs_codec); + principals_.WriteTo(output, _repeated_principals_codec); + resources_.WriteTo(output, _repeated_resources_codec); + principalGroups_.WriteTo(output, _repeated_principalGroups_codec); + resourceGroups_.WriteTo(output, _repeated_resourceGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -9031,6 +11288,10 @@ public void WriteTo(pb::CodedOutputStream output) { } actions_.WriteTo(ref output, _map_actions_codec); outputs_.WriteTo(ref output, _repeated_outputs_codec); + principals_.WriteTo(ref output, _repeated_principals_codec); + resources_.WriteTo(ref output, _repeated_resources_codec); + principalGroups_.WriteTo(ref output, _repeated_principalGroups_codec); + resourceGroups_.WriteTo(ref output, _repeated_resourceGroups_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -9049,6 +11310,10 @@ public int CalculateSize() { } size += actions_.CalculateSize(_map_actions_codec); size += outputs_.CalculateSize(_repeated_outputs_codec); + size += principals_.CalculateSize(_repeated_principals_codec); + size += resources_.CalculateSize(_repeated_resources_codec); + size += principalGroups_.CalculateSize(_repeated_principalGroups_codec); + size += resourceGroups_.CalculateSize(_repeated_resourceGroups_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -9069,6 +11334,10 @@ public void MergeFrom(Expectation other) { } actions_.MergeFrom(other.actions_); outputs_.Add(other.outputs_); + principals_.Add(other.principals_); + resources_.Add(other.resources_); + principalGroups_.Add(other.principalGroups_); + resourceGroups_.Add(other.resourceGroups_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -9104,6 +11373,22 @@ public void MergeFrom(pb::CodedInputStream input) { outputs_.AddEntriesFrom(input, _repeated_outputs_codec); break; } + case 42: { + principals_.AddEntriesFrom(input, _repeated_principals_codec); + break; + } + case 50: { + resources_.AddEntriesFrom(input, _repeated_resources_codec); + break; + } + case 58: { + principalGroups_.AddEntriesFrom(input, _repeated_principalGroups_codec); + break; + } + case 66: { + resourceGroups_.AddEntriesFrom(input, _repeated_resourceGroups_codec); + break; + } } } #endif @@ -9139,6 +11424,22 @@ public void MergeFrom(pb::CodedInputStream input) { outputs_.AddEntriesFrom(ref input, _repeated_outputs_codec); break; } + case 42: { + principals_.AddEntriesFrom(ref input, _repeated_principals_codec); + break; + } + case 50: { + resources_.AddEntriesFrom(ref input, _repeated_resources_codec); + break; + } + case 58: { + principalGroups_.AddEntriesFrom(ref input, _repeated_principalGroups_codec); + break; + } + case 66: { + resourceGroups_.AddEntriesFrom(ref input, _repeated_resourceGroups_codec); + break; + } } } } @@ -9166,7 +11467,7 @@ public sealed partial class Test : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[19]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[24]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -10095,7 +12396,7 @@ public sealed partial class TestResults : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[20]; } + get { return global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor.MessageTypes[25]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -10862,6 +13163,7 @@ public Suite(Suite other) : this() { error_ = other.error_; testCases_ = other.testCases_.Clone(); description_ = other.description_; + skipReason_ = other.skipReason_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -10954,6 +13256,18 @@ public string Description { } } + /// Field number for the "skip_reason" field. + public const int SkipReasonFieldNumber = 8; + private string skipReason_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string SkipReason { + get { return skipReason_; } + set { + skipReason_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -10976,6 +13290,7 @@ public bool Equals(Suite other) { if (Error != other.Error) return false; if(!testCases_.Equals(other.testCases_)) return false; if (Description != other.Description) return false; + if (SkipReason != other.SkipReason) return false; return Equals(_unknownFields, other._unknownFields); } @@ -10990,6 +13305,7 @@ public override int GetHashCode() { if (Error.Length != 0) hash ^= Error.GetHashCode(); hash ^= testCases_.GetHashCode(); if (Description.Length != 0) hash ^= Description.GetHashCode(); + if (SkipReason.Length != 0) hash ^= SkipReason.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -11030,6 +13346,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteString(Description); } + if (SkipReason.Length != 0) { + output.WriteRawTag(66); + output.WriteString(SkipReason); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -11062,6 +13382,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteString(Description); } + if (SkipReason.Length != 0) { + output.WriteRawTag(66); + output.WriteString(SkipReason); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -11089,6 +13413,9 @@ public int CalculateSize() { if (Description.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Description); } + if (SkipReason.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SkipReason); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -11121,6 +13448,9 @@ public void MergeFrom(Suite other) { if (other.Description.Length != 0) { Description = other.Description; } + if (other.SkipReason.Length != 0) { + SkipReason = other.SkipReason; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -11171,6 +13501,10 @@ public void MergeFrom(pb::CodedInputStream input) { Description = input.ReadString(); break; } + case 66: { + SkipReason = input.ReadString(); + break; + } } } #endif @@ -11221,6 +13555,10 @@ public void MergeFrom(pb::CodedInputStream input) { Description = input.ReadString(); break; } + case 66: { + SkipReason = input.ReadString(); + break; + } } } } @@ -12191,6 +14529,9 @@ public Details(Details other) : this() { case OutcomeOneofCase.Success: Success = other.Success.Clone(); break; + case OutcomeOneofCase.SkipReason: + SkipReason = other.SkipReason; + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -12264,6 +14605,32 @@ public void ClearError() { } } + /// Field number for the "skip_reason" field. + public const int SkipReasonFieldNumber = 6; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string SkipReason { + get { return HasSkipReason ? (string) outcome_ : ""; } + set { + outcome_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + outcomeCase_ = OutcomeOneofCase.SkipReason; + } + } + /// Gets whether the "skip_reason" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasSkipReason { + get { return outcomeCase_ == OutcomeOneofCase.SkipReason; } + } + /// Clears the value of the oneof if it's currently set to "skip_reason" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearSkipReason() { + if (HasSkipReason) { + ClearOutcome(); + } + } + /// Field number for the "engine_trace" field. public const int EngineTraceFieldNumber = 4; private static readonly pb::FieldCodec _repeated_engineTrace_codec @@ -12282,6 +14649,7 @@ public enum OutcomeOneofCase { Failure = 2, Error = 3, Success = 5, + SkipReason = 6, } private OutcomeOneofCase outcomeCase_ = OutcomeOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -12316,6 +14684,7 @@ public bool Equals(Details other) { if (!object.Equals(Failure, other.Failure)) return false; if (Error != other.Error) return false; if (!object.Equals(Success, other.Success)) return false; + if (SkipReason != other.SkipReason) return false; if(!engineTrace_.Equals(other.engineTrace_)) return false; if (OutcomeCase != other.OutcomeCase) return false; return Equals(_unknownFields, other._unknownFields); @@ -12329,6 +14698,7 @@ public override int GetHashCode() { if (outcomeCase_ == OutcomeOneofCase.Failure) hash ^= Failure.GetHashCode(); if (HasError) hash ^= Error.GetHashCode(); if (outcomeCase_ == OutcomeOneofCase.Success) hash ^= Success.GetHashCode(); + if (HasSkipReason) hash ^= SkipReason.GetHashCode(); hash ^= engineTrace_.GetHashCode(); hash ^= (int) outcomeCase_; if (_unknownFields != null) { @@ -12366,6 +14736,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(42); output.WriteMessage(Success); } + if (HasSkipReason) { + output.WriteRawTag(50); + output.WriteString(SkipReason); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -12393,6 +14767,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(42); output.WriteMessage(Success); } + if (HasSkipReason) { + output.WriteRawTag(50); + output.WriteString(SkipReason); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -12415,6 +14793,9 @@ public int CalculateSize() { if (outcomeCase_ == OutcomeOneofCase.Success) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Success); } + if (HasSkipReason) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(SkipReason); + } size += engineTrace_.CalculateSize(_repeated_engineTrace_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -12448,6 +14829,9 @@ public void MergeFrom(Details other) { } Success.MergeFrom(other.Success); break; + case OutcomeOneofCase.SkipReason: + SkipReason = other.SkipReason; + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -12499,6 +14883,10 @@ public void MergeFrom(pb::CodedInputStream input) { Success = subBuilder; break; } + case 50: { + SkipReason = input.ReadString(); + break; + } } } #endif @@ -12548,6 +14936,10 @@ public void MergeFrom(pb::CodedInputStream input) { Success = subBuilder; break; } + case 50: { + SkipReason = input.ReadString(); + break; + } } } } diff --git a/src/Sdk/Cerbos/Api/V1/Request/Request.g.cs b/src/Sdk/Cerbos/Api/V1/Request/Request.g.cs index 44da488..ea02ea0 100644 --- a/src/Sdk/Cerbos/Api/V1/Request/Request.g.cs +++ b/src/Sdk/Cerbos/Api/V1/Request/Request.g.cs @@ -31,247 +31,246 @@ static RequestReflection() { "bGUvYXBpL2ZpZWxkX2JlaGF2aW9yLnByb3RvGh5nb29nbGUvcHJvdG9idWYv", "ZHVyYXRpb24ucHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8a", "H2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aLnByb3RvYy1nZW4t", - "b3BlbmFwaXYyL29wdGlvbnMvYW5ub3RhdGlvbnMucHJvdG8ihgUKFFBsYW5S", + "b3BlbmFwaXYyL29wdGlvbnMvYW5ub3RhdGlvbnMucHJvdG8iggUKFFBsYW5S", "ZXNvdXJjZXNSZXF1ZXN0EpYBCgpyZXF1ZXN0X2lkGAEgASgJQneSQXQySk9w", "dGlvbmFsIGFwcGxpY2F0aW9uLXNwZWNpZmljIElEIHVzZWZ1bCBmb3IgY29y", "cmVsYXRpbmcgbG9ncyBmb3IgYW5hbHlzaXMuSiYiYzJkYjE3YjgtNGY5Zi00", - "ZmIxLWFjZmQtOTE2MmEwMmJlNDJiIlIJcmVxdWVzdElkEmwKBmFjdGlvbhgC", - "IAEoCUJUkkFDMjJBY3Rpb24gdG8gYmUgYXBwbGllZCB0byBlYWNoIHJlc291", - "cmNlIGluIHRoZSBsaXN0LkoNInZpZXc6cHVibGljIuJBAQK6SAdyAhAByAEB", - "UgZhY3Rpb24SRQoJcHJpbmNpcGFsGAMgASgLMhsuY2VyYm9zLmVuZ2luZS52", - "MS5QcmluY2lwYWxCCuJBAQK6SAPIAQFSCXByaW5jaXBhbBJVCghyZXNvdXJj", - "ZRgEIAEoCzItLmNlcmJvcy5lbmdpbmUudjEuUGxhblJlc291cmNlc0lucHV0", - "LlJlc291cmNlQgriQQECukgDyAEBUghyZXNvdXJjZRI7CghhdXhfZGF0YRgF", - "IAEoCzIaLmNlcmJvcy5yZXF1ZXN0LnYxLkF1eERhdGFCBOJBAQFSB2F1eERh", - "dGESYwoMaW5jbHVkZV9tZXRhGAYgASgIQkCSQT0yO09wdCB0byByZWNlaXZl", - "IHJlcXVlc3QgcHJvY2Vzc2luZyBtZXRhZGF0YSBpbiB0aGUgcmVzcG9uc2Uu", - "UgtpbmNsdWRlTWV0YTonkkEkCiIyIFBEUCBSZXNvdXJjZXMgUXVlcnkgUGxh", - "biBSZXF1ZXN0IooFChdDaGVja1Jlc291cmNlU2V0UmVxdWVzdBKWAQoKcmVx", - "dWVzdF9pZBgBIAEoCUJ3kkF0MkpPcHRpb25hbCBhcHBsaWNhdGlvbi1zcGVj", - "aWZpYyBJRCB1c2VmdWwgZm9yIGNvcnJlbGF0aW5nIGxvZ3MgZm9yIGFuYWx5", - "c2lzLkomImMyZGIxN2I4LTRmOWYtNGZiMS1hY2ZkLTkxNjJhMDJiZTQyYiJS", - "CXJlcXVlc3RJZBKQAQoHYWN0aW9ucxgCIAMoCUJ2kkFcMjhMaXN0IG9mIGFj", - "dGlvbnMgYmVpbmcgcGVyZm9ybWVkIG9uIHRoZSBzZXQgb2YgcmVzb3VyY2Vz", - "LkoaWyJ2aWV3OnB1YmxpYyIsICJjb21tZW50Il2oAQGwAQHiQQECukgQkgEK", - "CAEYASIEcgIQAcgBAVIHYWN0aW9ucxJFCglwcmluY2lwYWwYAyABKAsyGy5j", - "ZXJib3MuZW5naW5lLnYxLlByaW5jaXBhbEIK4kEBArpIA8gBAVIJcHJpbmNp", - "cGFsEkYKCHJlc291cmNlGAQgASgLMh4uY2VyYm9zLnJlcXVlc3QudjEuUmVz", - "b3VyY2VTZXRCCuJBAQK6SAPIAQFSCHJlc291cmNlEmMKDGluY2x1ZGVfbWV0", - "YRgFIAEoCEJAkkE9MjtPcHQgdG8gcmVjZWl2ZSByZXF1ZXN0IHByb2Nlc3Np", - "bmcgbWV0YWRhdGEgaW4gdGhlIHJlc3BvbnNlLlILaW5jbHVkZU1ldGESOwoI", - "YXV4X2RhdGEYBiABKAsyGi5jZXJib3MucmVxdWVzdC52MS5BdXhEYXRhQgTi", - "QQEBUgdhdXhEYXRhOhKSQQ8KDTILUERQIFJlcXVlc3QisAgKC1Jlc291cmNl", - "U2V0EkUKBGtpbmQYASABKAlCMZJBIDIOUmVzb3VyY2Uga2luZC5KDiJhbGJ1", - "bTpvYmplY3Qi4kEBArpIB3ICEAHIAQFSBGtpbmQS3QEKDnBvbGljeV92ZXJz", - "aW9uGAIgASgJQrUBkkGZATJ8VGhlIHBvbGljeSB2ZXJzaW9uIHRvIHVzZSB0", - "byBldmFsdWF0ZSB0aGlzIHJlcXVlc3QuIElmIG5vdCBzcGVjaWZpZWQsIHdp", - "bGwgZGVmYXVsdCB0byB0aGUgc2VydmVyLWNvbmZpZ3VyZWQgZGVmYXVsdCB2", - "ZXJzaW9uLkoJImRlZmF1bHQiigENXltbOndvcmQ6XV0qJOJBAQG6SBFyDzIN", - "XltbOndvcmQ6XV0qJFINcG9saWN5VmVyc2lvbhLtAgoJaW5zdGFuY2VzGAMg", - "AygLMi0uY2VyYm9zLnJlcXVlc3QudjEuUmVzb3VyY2VTZXQuSW5zdGFuY2Vz", - "RW50cnlCnwKSQYwCMm1TZXQgb2YgcmVzb3VyY2UgaW5zdGFuY2VzIHRvIGNo", - "ZWNrLiBFYWNoIGluc3RhbmNlIG11c3QgYmUga2V5ZWQgYnkgYW4gYXBwbGlj", - "YXRpb24tc3BlY2lmaWMgdW5pcXVlIGlkZW50aWZpZXIuSpcBeyJYWDEyNSI6", - "eyJhdHRyIjp7Im93bmVyIjoiYnVnc19idW5ueSIsICJwdWJsaWMiOiBmYWxz", - "ZSwgImZsYWdnZWQiOiBmYWxzZX19LCAiWFgyMjUiOnsiYXR0ciI6eyJvd25l", - "ciI6ImRhZmZ5X2R1Y2siLCAicHVibGljIjogdHJ1ZSwgImZsYWdnZWQiOiBm", - "YWxzZX19fcgBAeJBAQK6SAiaAQIIAcgBAVIJaW5zdGFuY2VzEocCCgVzY29w", - "ZRgEIAEoCULwAZJBsgEyfkEgZG90LXNlcGFyYXRlZCBzY29wZSB0aGF0IGRl", - "c2NyaWJlcyB0aGUgaGllcmFyY2h5IHRoZXNlIHJlc291cmNlcyBiZWxvbmcg", - "dG8uIFRoaXMgaXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgcG9saWN5IGluaGVy", - "aXRhbmNlLooBL14oW1s6YWxudW06XV1bWzp3b3JkOl1cLV0qKFwuW1s6d29y", - "ZDpdXC1dKikqKSok4kEBAbpIM3IxMi9eKFtbOmFsbnVtOl1dW1s6d29yZDpd", - "XC1dKihcLltbOndvcmQ6XVwtXSopKikqJFIFc2NvcGUaXgoOSW5zdGFuY2Vz", - "RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSNgoFdmFsdWUYAiABKAsyIC5jZXJi", - "b3MucmVxdWVzdC52MS5BdHRyaWJ1dGVzTWFwUgV2YWx1ZToCOAE6IJJBHQob", - "MhlTZXQgb2YgcmVzb3VyY2VzIHRvIGNoZWNrIsECCg1BdHRyaWJ1dGVzTWFw", - "EqkBCgRhdHRyGAEgAygLMiouY2VyYm9zLnJlcXVlc3QudjEuQXR0cmlidXRl", - "c01hcC5BdHRyRW50cnlCaZJBZjJkS2V5LXZhbHVlIHBhaXJzIG9mIGNvbnRl", - "eHR1YWwgZGF0YSBhYm91dCB0aGlzIGluc3RhbmNlIHRoYXQgc2hvdWxkIGJl", - "IHVzZWQgZHVyaW5nIHBvbGljeSBldmFsdWF0aW9uLlIEYXR0chpPCglBdHRy", - "RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29n", - "bGUucHJvdG9idWYuVmFsdWVSBXZhbHVlOgI4ATozkkEwCi4yLFVuaXF1ZSBp", - "ZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgaW5zdGFuY2UuIucGChlDaGVj", - "a1Jlc291cmNlQmF0Y2hSZXF1ZXN0EpYBCgpyZXF1ZXN0X2lkGAEgASgJQneS", - "QXQySk9wdGlvbmFsIGFwcGxpY2F0aW9uLXNwZWNpZmljIElEIHVzZWZ1bCBm", - "b3IgY29ycmVsYXRpbmcgbG9ncyBmb3IgYW5hbHlzaXMuSiYiYzJkYjE3Yjgt", - "NGY5Zi00ZmIxLWFjZmQtOTE2MmEwMmJlNDJiIlIJcmVxdWVzdElkEkUKCXBy", - "aW5jaXBhbBgCIAEoCzIbLmNlcmJvcy5lbmdpbmUudjEuUHJpbmNpcGFsQgri", - "QQECukgDyAEBUglwcmluY2lwYWwSwAIKCXJlc291cmNlcxgDIAMoCzI3LmNl", - "cmJvcy5yZXF1ZXN0LnYxLkNoZWNrUmVzb3VyY2VCYXRjaFJlcXVlc3QuQmF0", - "Y2hFbnRyeULoAZJB1QEyHkxpc3Qgb2YgcmVzb3VyY2VzIGFuZCBhY3Rpb25z", - "LkqsAVt7ImFjdGlvbnMiOlsidmlldyIsImNvbW1lbnQiXSwgInJlc291cmNl", - "Ijp7ImtpbmQiOiJhbGJ1bTpvYmplY3QiLCJwb2xpY3lWZXJzaW9uIjoiZGVm", - "YXVsdCIsImlkIjoiWFgxMjUiLCJhdHRyIjp7Im93bmVyIjoiYnVnc19idW5u", - "eSIsICJwdWJsaWMiOiBmYWxzZSwgImZsYWdnZWQiOiBmYWxzZX19fV2oAQGw", - "AQHiQQECukgIkgECCAHIAQFSCXJlc291cmNlcxI1CghhdXhfZGF0YRgEIAEo", - "CzIaLmNlcmJvcy5yZXF1ZXN0LnYxLkF1eERhdGFSB2F1eERhdGEa2wEKCkJh", - "dGNoRW50cnkSiAEKB2FjdGlvbnMYASADKAlCbpJBVDIwTGlzdCBvZiBhY3Rp", - "b25zIGJlaW5nIHBlcmZvcm1lZCBvbiB0aGUgcmVzb3VyY2UuShpbInZpZXc6", - "cHVibGljIiwgImNvbW1lbnQiXagBAbABAeJBAQK6SBCSAQoIARgBIgRyAhAB", - "yAEBUgdhY3Rpb25zEkIKCHJlc291cmNlGAIgASgLMhouY2VyYm9zLmVuZ2lu", - "ZS52MS5SZXNvdXJjZUIK4kEBArpIA8gBAVIIcmVzb3VyY2U6EpJBDwoNMgtQ", - "RFAgUmVxdWVzdCLLBwoVQ2hlY2tSZXNvdXJjZXNSZXF1ZXN0EpYBCgpyZXF1", - "ZXN0X2lkGAEgASgJQneSQXQySk9wdGlvbmFsIGFwcGxpY2F0aW9uLXNwZWNp", - "ZmljIElEIHVzZWZ1bCBmb3IgY29ycmVsYXRpbmcgbG9ncyBmb3IgYW5hbHlz", - "aXMuSiYiYzJkYjE3YjgtNGY5Zi00ZmIxLWFjZmQtOTE2MmEwMmJlNDJiIlIJ", - "cmVxdWVzdElkElgKDGluY2x1ZGVfbWV0YRgCIAEoCEI1kkEyMjBBZGQgcmVx", - "dWVzdCBwcm9jZXNzaW5nIG1ldGFkYXRhIHRvIHRoZSByZXNwb25zZS5SC2lu", - "Y2x1ZGVNZXRhEkUKCXByaW5jaXBhbBgDIAEoCzIbLmNlcmJvcy5lbmdpbmUu", - "djEuUHJpbmNpcGFsQgriQQECukgDyAEBUglwcmluY2lwYWwSvwIKCXJlc291", - "cmNlcxgEIAMoCzI2LmNlcmJvcy5yZXF1ZXN0LnYxLkNoZWNrUmVzb3VyY2Vz", - "UmVxdWVzdC5SZXNvdXJjZUVudHJ5QugBkkHVATIeTGlzdCBvZiByZXNvdXJj", - "ZXMgYW5kIGFjdGlvbnMuSqwBW3siYWN0aW9ucyI6WyJ2aWV3IiwiY29tbWVu", - "dCJdLCAicmVzb3VyY2UiOnsia2luZCI6ImFsYnVtOm9iamVjdCIsInBvbGlj", - "eVZlcnNpb24iOiJkZWZhdWx0IiwiaWQiOiJYWDEyNSIsImF0dHIiOnsib3du", - "ZXIiOiJidWdzX2J1bm55IiwgInB1YmxpYyI6IGZhbHNlLCAiZmxhZ2dlZCI6", - "IGZhbHNlfX19XagBAbABAeJBAQK6SAiSAQIIAcgBAVIJcmVzb3VyY2VzEjUK", - "CGF1eF9kYXRhGAUgASgLMhouY2VyYm9zLnJlcXVlc3QudjEuQXV4RGF0YVIH", - "YXV4RGF0YRreAQoNUmVzb3VyY2VFbnRyeRKIAQoHYWN0aW9ucxgBIAMoCUJu", - "kkFUMjBMaXN0IG9mIGFjdGlvbnMgYmVpbmcgcGVyZm9ybWVkIG9uIHRoZSBy", - "ZXNvdXJjZS5KGlsidmlldzpwdWJsaWMiLCAiY29tbWVudCJdqAEBsAEB4kEB", - "ArpIEJIBCggBGAEiBHICEAHIAQFSB2FjdGlvbnMSQgoIcmVzb3VyY2UYAiAB", - "KAsyGi5jZXJib3MuZW5naW5lLnYxLlJlc291cmNlQgriQQECukgDyAEBUghy", - "ZXNvdXJjZToekkEbChkyF0NoZWNrIHJlc291cmNlcyByZXF1ZXN0IrMHCgdB", - "dXhEYXRhEjAKA2p3dBgBIAEoCzIeLmNlcmJvcy5yZXF1ZXN0LnYxLkF1eERh", - "dGEuSldUUgNqd3QasQYKA0pXVBLIBAoFdG9rZW4YASABKAlCsQSSQZ8EMh1K", - "V1QgZnJvbSB0aGUgb3JpZ2luYWwgcmVxdWVzdErJAyJleUpoYkdjaU9pSkZV", - "ek00TkNJc0ltdHBaQ0k2SWpFNVRHWmFZWFJGWkdjNE0xbE9ZelZ5TWpObmRV", - "MUtjWEp1TkQwaUxDSjBlWEFpT2lKS1YxUWlmUS5leUpoZFdRaU9sc2lZMlZ5", - "WW05ekxXcDNkQzEwWlhOMGN5SmRMQ0pqZFhOMGIyMUJjbkpoZVNJNld5SkJJ", - "aXdpUWlJc0lrTWlYU3dpWTNWemRHOXRTVzUwSWpvME1pd2lZM1Z6ZEc5dFRX", - "RndJanA3SWtFaU9pSkJRU0lzSWtJaU9pSkNRaUlzSWtNaU9pSkRReUo5TENK", - "amRYTjBiMjFUZEhKcGJtY2lPaUptYjI5aVlYSWlMQ0psZUhBaU9qRTVORGs1", - "TXpRd016a3NJbWx6Y3lJNkltTmxjbUp2Y3kxMFpYTjBMWE4xYVhSbEluMC5X", - "Tl90T1NjU3BkX0VJLVA1RUkxWWxhZ3hFZ0V4U2ZCakF0Y3JnY0Y2bHlXajFs", - "R3BSX0dLeDlnb1pFcDJwX3Q1QVZXWE5fYmp6X3NNVW1KZEphNGNWZDU1UW0x", - "bWlSLUZLdTZvTlJIblNFV2RNRm1uQXJ3UHctWURKV2Z5bExGWCKCAxoKFHgt", - "ZXhhbXBsZS1zaG93LXZhbHVlEgIgAIIDFAoOeC1maWxsLWV4YW1wbGUSAiAA", - "4kEBArpIB3ICEAHIAQFSBXRva2VuErgBCgprZXlfc2V0X2lkGAIgASgJQpkB", - "kkGVATJSS2V5IElEIHRvIHVzZSB3aGVuIGRlY29kaW5nIHRoZSB0b2tlbiAo", - "ZGVmaW5lZCBpbiB0aGUgQ2VyYm9zIHNlcnZlciBjb25maWd1cmF0aW9uKUoL", - "Im15LWtleXNldCKCAxoKFHgtZXhhbXBsZS1zaG93LXZhbHVlEgIgAIIDFAoO", - "eC1maWxsLWV4YW1wbGUSAiAAUghrZXlTZXRJZDokkkEhCh8yHUpXVCBmcm9t", - "IHRoZSBvcmlnaW5hbCByZXF1ZXN0OkKSQT8KPTI7U3RydWN0dXJlZCBhdXhp", - "bGlhcnkgZGF0YSB1c2VmdWwgZm9yIGV2YWx1YXRpbmcgdGhlIHJlcXVlc3Qi", - "YwoERmlsZRIrCglmaWxlX25hbWUYASABKAlCDuJBAQK6SAdyAhAByAEBUghm", - "aWxlTmFtZRIuCghjb250ZW50cxgCIAEoDEIS4kEBArpIC3oGEAEYgIBAyAEB", - "Ughjb250ZW50cyK/AQoZUGxheWdyb3VuZFZhbGlkYXRlUmVxdWVzdBIjCg1w", - "bGF5Z3JvdW5kX2lkGAEgASgJUgxwbGF5Z3JvdW5kSWQSWQoFZmlsZXMYAiAD", - "KAsyFy5jZXJib3MucmVxdWVzdC52MS5GaWxlQiqSQRYyDkxpc3Qgb2YgZmls", - "ZXMuoAEeqAEB4kEBArpICpIBBAgBEB7IAQFSBWZpbGVzOiKSQR8KHTIbUGxh", - "eWdyb3VuZCB2YWxpZGF0ZSByZXF1ZXN0IrcBChVQbGF5Z3JvdW5kVGVzdFJl", - "cXVlc3QSIwoNcGxheWdyb3VuZF9pZBgBIAEoCVIMcGxheWdyb3VuZElkElkK", - "BWZpbGVzGAIgAygLMhcuY2VyYm9zLnJlcXVlc3QudjEuRmlsZUIqkkEWMg5M", - "aXN0IG9mIGZpbGVzLqABHqgBAeJBAQK6SAqSAQQIARAeyAEBUgVmaWxlczoe", - "kkEbChkyF1BsYXlncm91bmQgdGVzdCByZXF1ZXN0IvQDChlQbGF5Z3JvdW5k", - "RXZhbHVhdGVSZXF1ZXN0EiMKDXBsYXlncm91bmRfaWQYASABKAlSDHBsYXln", - "cm91bmRJZBJZCgVmaWxlcxgCIAMoCzIXLmNlcmJvcy5yZXF1ZXN0LnYxLkZp", - "bGVCKpJBFjIOTGlzdCBvZiBmaWxlcy6gAR6oAQHiQQECukgKkgEECAEQHsgB", - "AVIFZmlsZXMSRQoJcHJpbmNpcGFsGAMgASgLMhsuY2VyYm9zLmVuZ2luZS52", - "MS5QcmluY2lwYWxCCuJBAQK6SAPIAQFSCXByaW5jaXBhbBJCCghyZXNvdXJj", - "ZRgEIAEoCzIaLmNlcmJvcy5lbmdpbmUudjEuUmVzb3VyY2VCCuJBAQK6SAPI", - "AQFSCHJlc291cmNlEnEKB2FjdGlvbnMYBSADKAlCV5JBOzIwTGlzdCBvZiBh", - "Y3Rpb25zIGJlaW5nIHBlcmZvcm1lZCBvbiB0aGUgcmVzb3VyY2UuoAEyqAEB", - "sAEB4kEBArpIEpIBDAgBEDIYASIEcgIQAcgBAVIHYWN0aW9ucxI1CghhdXhf", - "ZGF0YRgGIAEoCzIaLmNlcmJvcy5yZXF1ZXN0LnYxLkF1eERhdGFSB2F1eERh", - "dGE6IpJBHwodMhtQbGF5Z3JvdW5kIGV2YWx1YXRlIHJlcXVlc3QitgQKFlBs", - "YXlncm91bmRQcm94eVJlcXVlc3QSIwoNcGxheWdyb3VuZF9pZBgBIAEoCVIM", - "cGxheWdyb3VuZElkElkKBWZpbGVzGAIgAygLMhcuY2VyYm9zLnJlcXVlc3Qu", - "djEuRmlsZUIqkkEWMg5MaXN0IG9mIGZpbGVzLqABHqgBAeJBAQK6SAqSAQQI", - "ARAeyAEBUgVmaWxlcxJaChJjaGVja19yZXNvdXJjZV9zZXQYAyABKAsyKi5j", - "ZXJib3MucmVxdWVzdC52MS5DaGVja1Jlc291cmNlU2V0UmVxdWVzdEgAUhBj", - "aGVja1Jlc291cmNlU2V0EmAKFGNoZWNrX3Jlc291cmNlX2JhdGNoGAQgASgL", - "MiwuY2VyYm9zLnJlcXVlc3QudjEuQ2hlY2tSZXNvdXJjZUJhdGNoUmVxdWVz", - "dEgAUhJjaGVja1Jlc291cmNlQmF0Y2gSUAoOcGxhbl9yZXNvdXJjZXMYBSAB", - "KAsyJy5jZXJib3MucmVxdWVzdC52MS5QbGFuUmVzb3VyY2VzUmVxdWVzdEgA", - "Ug1wbGFuUmVzb3VyY2VzElMKD2NoZWNrX3Jlc291cmNlcxgGIAEoCzIoLmNl", - "cmJvcy5yZXF1ZXN0LnYxLkNoZWNrUmVzb3VyY2VzUmVxdWVzdEgAUg5jaGVj", - "a1Jlc291cmNlczofkkEcChoyGFBsYXlncm91bmQgcHJveHkgcmVxdWVzdEIW", - "Cg1wcm94eV9yZXF1ZXN0EgW6SAIIASKhAQoYQWRkT3JVcGRhdGVQb2xpY3lS", - "ZXF1ZXN0EmMKCHBvbGljaWVzGAEgAygLMhguY2VyYm9zLnBvbGljeS52MS5Q", - "b2xpY3lCLZJBGTIRTGlzdCBvZiBwb2xpY2llcy6gAWSoAQHiQQECukgKkgEE", - "CAEQZMgBAVIIcG9saWNpZXM6IJJBHQobMhlBZGQvdXBkYXRlIHBvbGljeSBy", - "ZXF1ZXN0Iq4HChpMaXN0QXVkaXRMb2dFbnRyaWVzUmVxdWVzdBKJAQoEa2lu", - "ZBgBIAEoDjIyLmNlcmJvcy5yZXF1ZXN0LnYxLkxpc3RBdWRpdExvZ0VudHJp", - "ZXNSZXF1ZXN0LktpbmRCQZJBMTIRS2luZCBvZiBsb2cgZW50cnnyAgtLSU5E", - "X0FDQ0VTU/ICDUtJTkRfREVDSVNJT066SAqCAQQaAgECyAEBUgRraW5kEkYK", - "BHRhaWwYAiABKA1CMJJBIzIPTGFzdCBOIGVudHJpZXMuWQAAAAAAQI9AaQAA", - "AAAAAPA/ukgHKgUY6AcoAUgAUgR0YWlsElMKB2JldHdlZW4YAyABKAsyNy5j", - "ZXJib3MucmVxdWVzdC52MS5MaXN0QXVkaXRMb2dFbnRyaWVzUmVxdWVzdC5U", - "aW1lUmFuZ2VIAFIHYmV0d2VlbhJZCgVzaW5jZRgEIAEoCzIZLmdvb2dsZS5w", - "cm90b2J1Zi5EdXJhdGlvbkImkkEjMiFFbnRyaWVzIHNpbmNlIE4gaG91cnMv", - "bWludXRlcyBhZ29IAFIFc2luY2USgwEKBmxvb2t1cBgFIAEoCUJpkkE3MgpC", - "eSBDYWxsIElEigEoXlswMTIzNDU2Nzg5QUJDREVGR0hKS01OUFFSU1RWV1hZ", - "Wl17MjZ9JLpILHIqMiheWzAxMjM0NTY3ODlBQkNERUZHSEpLTU5QUVJTVFZX", - "WFlaXXsyNn0kSABSBmxvb2t1cBqyAgoJVGltZVJhbmdlEoEBCgVzdGFydBgB", - "IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCT5JBPTIeU3RhcnQg", - "ZGF0ZSBpbiBJU08gODYwMSBmb3JtYXQuShsiMjAyMS0wNy0wNVQwNzoyNzow", - "MSswMDowMCLiQQECukgIsgECOAHIAQFSBXN0YXJ0EnsKA2VuZBgCIAEoCzIa", - "Lmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCTZJBOzIcRW5kIGRhdGUgaW4g", - "SVNPIDg2MDEgZm9ybWF0LkobIjIwMjEtMDctMDVUMDc6Mjc6MDErMDA6MDAi", - "4kEBArpICLIBAjgByAEBUgNlbmQ6JJJBIQofMh1FbnRyaWVzIGJldHdlZW4g", - "YSB0aW1lIHJhbmdlLiJACgRLaW5kEhQKEEtJTkRfVU5TUEVDSUZJRUQQABIP", - "CgtLSU5EX0FDQ0VTUxABEhEKDUtJTkRfREVDSVNJT04QAkIPCgZmaWx0ZXIS", - "BbpIAggBIi8KEVNlcnZlckluZm9SZXF1ZXN0OhqSQRcKFTITU2VydmVyIGlu", - "Zm8gcmVxdWVzdCLYBAoTTGlzdFBvbGljaWVzUmVxdWVzdBJNChBpbmNsdWRl", - "X2Rpc2FibGVkGAEgASgIQiKSQRsyGUluY2x1ZGUgZGlzYWJsZWQgcG9saWNp", - "ZXPiQQEBUg9pbmNsdWRlRGlzYWJsZWQSTQoLbmFtZV9yZWdleHAYAiABKAlC", - "LJJBJTIjRmlsdGVyIHBvbGljaWVzIGJ5IG5hbWUgd2l0aCByZWdleHDiQQEB", - "UgpuYW1lUmVnZXhwElAKDHNjb3BlX3JlZ2V4cBgDIAEoCUItkkEmMiRGaWx0", - "ZXIgcG9saWNpZXMgYnkgc2NvcGUgd2l0aCByZWdleHDiQQEBUgtzY29wZVJl", - "Z2V4cBJWCg52ZXJzaW9uX3JlZ2V4cBgEIAEoCUIvkkEoMiZGaWx0ZXIgcG9s", - "aWNpZXMgYnkgdmVyc2lvbiB3aXRoIHJlZ2V4cOJBAQFSDXZlcnNpb25SZWdl", - "eHAS2gEKCXBvbGljeV9pZBgFIAMoCUK8AZJBpgEyhwFGb3IgYmxvYiwgZGlz", - "aywgZ2l0IHN0b3JlcyB1c2UgZmlsZSBuYW1lICg8ZmlsZW5hbWU+LnlhbWwp", - "LiBGb3IgbXlzcWwsIHBvc3RncmVzLCBzcWxpdGUzIHVzZSBpZCAoPGtpbmQ+", - "LjxuYW1lPi48dmVyc2lvbj4pIG9mIHRoZSBwb2xpY3lKGiJwcmluY2lwYWwu", - "c2FyYWgudmRlZmF1bHQi4kEBAbpIC5IBCBAZIgRyAhABUghwb2xpY3lJZDoc", - "kkEZChcyFUxpc3QgcG9saWNpZXMgcmVxdWVzdCKCAgoQR2V0UG9saWN5UmVx", - "dWVzdBLSAQoCaWQYASADKAlCwQGSQaYBMocBRm9yIGJsb2IsIGRpc2ssIGdp", - "dCBzdG9yZXMgdXNlIGZpbGUgbmFtZSAoPGZpbGVuYW1lPi55YW1sKS4gRm9y", - "IG15c3FsLCBwb3N0Z3Jlcywgc3FsaXRlMyB1c2UgaWQgKDxraW5kPi48bmFt", - "ZT4uPHZlcnNpb24+KSBvZiB0aGUgcG9saWN5ShoicHJpbmNpcGFsLnNhcmFo", - "LnZkZWZhdWx0IuJBAQK6SBCSAQoIARgBIgRyAhAByAEBUgJpZDoZkkEWChQy", - "EkdldCBwb2xpY3kgcmVxdWVzdCKfAQoURGlzYWJsZVBvbGljeVJlcXVlc3QS", - "aAoCaWQYASADKAlCWJJBPjIgVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBw", - "b2xpY3lKGiJwcmluY2lwYWwuc2FyYWgudmRlZmF1bHQi4kEBArpIEJIBCggB", - "GAEiBHICEAHIAQFSAmlkOh2SQRoKGDIWRGlzYWJsZSBwb2xpY3kgcmVxdWVz", - "dCKdAQoTRW5hYmxlUG9saWN5UmVxdWVzdBJoCgJpZBgBIAMoCUJYkkE+MiBV", - "bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBvbGljeUoaInByaW5jaXBhbC5z", - "YXJhaC52ZGVmYXVsdCLiQQECukgQkgEKCAEYASIEcgIQAcgBAVICaWQ6HJJB", - "GQoXMhVFbmFibGUgcG9saWN5IHJlcXVlc3Qi3gQKFkluc3BlY3RQb2xpY2ll", - "c1JlcXVlc3QSTQoQaW5jbHVkZV9kaXNhYmxlZBgBIAEoCEIikkEbMhlJbmNs", - "dWRlIGRpc2FibGVkIHBvbGljaWVz4kEBAVIPaW5jbHVkZURpc2FibGVkEk0K", - "C25hbWVfcmVnZXhwGAIgASgJQiySQSUyI0ZpbHRlciBwb2xpY2llcyBieSBu", - "YW1lIHdpdGggcmVnZXhw4kEBAVIKbmFtZVJlZ2V4cBJQCgxzY29wZV9yZWdl", - "eHAYAyABKAlCLZJBJjIkRmlsdGVyIHBvbGljaWVzIGJ5IHNjb3BlIHdpdGgg", - "cmVnZXhw4kEBAVILc2NvcGVSZWdleHASVgoOdmVyc2lvbl9yZWdleHAYBCAB", - "KAlCL5JBKDImRmlsdGVyIHBvbGljaWVzIGJ5IHZlcnNpb24gd2l0aCByZWdl", - "eHDiQQEBUg12ZXJzaW9uUmVnZXhwEtoBCglwb2xpY3lfaWQYBSADKAlCvAGS", + "ZmIxLWFjZmQtOTE2MmEwMmJlNDJiIlIJcmVxdWVzdElkEmsKBmFjdGlvbhgC", + "IAEoCUJTkkFDMjJBY3Rpb24gdG8gYmUgYXBwbGllZCB0byBlYWNoIHJlc291", + "cmNlIGluIHRoZSBsaXN0LkoNInZpZXc6cHVibGljIuBBArpIB3ICEAHIAQFS", + "BmFjdGlvbhJECglwcmluY2lwYWwYAyABKAsyGy5jZXJib3MuZW5naW5lLnYx", + "LlByaW5jaXBhbEIJ4EECukgDyAEBUglwcmluY2lwYWwSVAoIcmVzb3VyY2UY", + "BCABKAsyLS5jZXJib3MuZW5naW5lLnYxLlBsYW5SZXNvdXJjZXNJbnB1dC5S", + "ZXNvdXJjZUIJ4EECukgDyAEBUghyZXNvdXJjZRI6CghhdXhfZGF0YRgFIAEo", + "CzIaLmNlcmJvcy5yZXF1ZXN0LnYxLkF1eERhdGFCA+BBAVIHYXV4RGF0YRJj", + "CgxpbmNsdWRlX21ldGEYBiABKAhCQJJBPTI7T3B0IHRvIHJlY2VpdmUgcmVx", + "dWVzdCBwcm9jZXNzaW5nIG1ldGFkYXRhIGluIHRoZSByZXNwb25zZS5SC2lu", + "Y2x1ZGVNZXRhOieSQSQKIjIgUERQIFJlc291cmNlcyBRdWVyeSBQbGFuIFJl", + "cXVlc3QihgUKF0NoZWNrUmVzb3VyY2VTZXRSZXF1ZXN0EpYBCgpyZXF1ZXN0", + "X2lkGAEgASgJQneSQXQySk9wdGlvbmFsIGFwcGxpY2F0aW9uLXNwZWNpZmlj", + "IElEIHVzZWZ1bCBmb3IgY29ycmVsYXRpbmcgbG9ncyBmb3IgYW5hbHlzaXMu", + "SiYiYzJkYjE3YjgtNGY5Zi00ZmIxLWFjZmQtOTE2MmEwMmJlNDJiIlIJcmVx", + "dWVzdElkEo8BCgdhY3Rpb25zGAIgAygJQnWSQVwyOExpc3Qgb2YgYWN0aW9u", + "cyBiZWluZyBwZXJmb3JtZWQgb24gdGhlIHNldCBvZiByZXNvdXJjZXMuShpb", + "InZpZXc6cHVibGljIiwgImNvbW1lbnQiXagBAbABAeBBArpIEJIBCggBGAEi", + "BHICEAHIAQFSB2FjdGlvbnMSRAoJcHJpbmNpcGFsGAMgASgLMhsuY2VyYm9z", + "LmVuZ2luZS52MS5QcmluY2lwYWxCCeBBArpIA8gBAVIJcHJpbmNpcGFsEkUK", + "CHJlc291cmNlGAQgASgLMh4uY2VyYm9zLnJlcXVlc3QudjEuUmVzb3VyY2VT", + "ZXRCCeBBArpIA8gBAVIIcmVzb3VyY2USYwoMaW5jbHVkZV9tZXRhGAUgASgI", + "QkCSQT0yO09wdCB0byByZWNlaXZlIHJlcXVlc3QgcHJvY2Vzc2luZyBtZXRh", + "ZGF0YSBpbiB0aGUgcmVzcG9uc2UuUgtpbmNsdWRlTWV0YRI6CghhdXhfZGF0", + "YRgGIAEoCzIaLmNlcmJvcy5yZXF1ZXN0LnYxLkF1eERhdGFCA+BBAVIHYXV4", + "RGF0YToSkkEPCg0yC1BEUCBSZXF1ZXN0IqwICgtSZXNvdXJjZVNldBJECgRr", + "aW5kGAEgASgJQjCSQSAyDlJlc291cmNlIGtpbmQuSg4iYWxidW06b2JqZWN0", + "IuBBArpIB3ICEAHIAQFSBGtpbmQS3AEKDnBvbGljeV92ZXJzaW9uGAIgASgJ", + "QrQBkkGZATJ8VGhlIHBvbGljeSB2ZXJzaW9uIHRvIHVzZSB0byBldmFsdWF0", + "ZSB0aGlzIHJlcXVlc3QuIElmIG5vdCBzcGVjaWZpZWQsIHdpbGwgZGVmYXVs", + "dCB0byB0aGUgc2VydmVyLWNvbmZpZ3VyZWQgZGVmYXVsdCB2ZXJzaW9uLkoJ", + "ImRlZmF1bHQiigENXltbOndvcmQ6XV0qJOBBAbpIEXIPMg1eW1s6d29yZDpd", + "XSokUg1wb2xpY3lWZXJzaW9uEuwCCglpbnN0YW5jZXMYAyADKAsyLS5jZXJi", + "b3MucmVxdWVzdC52MS5SZXNvdXJjZVNldC5JbnN0YW5jZXNFbnRyeUKeApJB", + "jAIybVNldCBvZiByZXNvdXJjZSBpbnN0YW5jZXMgdG8gY2hlY2suIEVhY2gg", + "aW5zdGFuY2UgbXVzdCBiZSBrZXllZCBieSBhbiBhcHBsaWNhdGlvbi1zcGVj", + "aWZpYyB1bmlxdWUgaWRlbnRpZmllci5KlwF7IlhYMTI1Ijp7ImF0dHIiOnsi", + "b3duZXIiOiJidWdzX2J1bm55IiwgInB1YmxpYyI6IGZhbHNlLCAiZmxhZ2dl", + "ZCI6IGZhbHNlfX0sICJYWDIyNSI6eyJhdHRyIjp7Im93bmVyIjoiZGFmZnlf", + "ZHVjayIsICJwdWJsaWMiOiB0cnVlLCAiZmxhZ2dlZCI6IGZhbHNlfX19yAEB", + "4EECukgImgECCAHIAQFSCWluc3RhbmNlcxKGAgoFc2NvcGUYBCABKAlC7wGS", + "QbIBMn5BIGRvdC1zZXBhcmF0ZWQgc2NvcGUgdGhhdCBkZXNjcmliZXMgdGhl", + "IGhpZXJhcmNoeSB0aGVzZSByZXNvdXJjZXMgYmVsb25nIHRvLiBUaGlzIGlz", + "IHVzZWQgZm9yIGRldGVybWluaW5nIHBvbGljeSBpbmhlcml0YW5jZS6KAS9e", + "KFtbOmFsbnVtOl1dW1s6d29yZDpdXC1dKihcLltbOndvcmQ6XVwtXSopKikq", + "JOBBAbpIM3IxMi9eKFtbOmFsbnVtOl1dW1s6d29yZDpdXC1dKihcLltbOndv", + "cmQ6XVwtXSopKikqJFIFc2NvcGUaXgoOSW5zdGFuY2VzRW50cnkSEAoDa2V5", + "GAEgASgJUgNrZXkSNgoFdmFsdWUYAiABKAsyIC5jZXJib3MucmVxdWVzdC52", + "MS5BdHRyaWJ1dGVzTWFwUgV2YWx1ZToCOAE6IJJBHQobMhlTZXQgb2YgcmVz", + "b3VyY2VzIHRvIGNoZWNrIsECCg1BdHRyaWJ1dGVzTWFwEqkBCgRhdHRyGAEg", + "AygLMiouY2VyYm9zLnJlcXVlc3QudjEuQXR0cmlidXRlc01hcC5BdHRyRW50", + "cnlCaZJBZjJkS2V5LXZhbHVlIHBhaXJzIG9mIGNvbnRleHR1YWwgZGF0YSBh", + "Ym91dCB0aGlzIGluc3RhbmNlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZHVyaW5n", + "IHBvbGljeSBldmFsdWF0aW9uLlIEYXR0chpPCglBdHRyRW50cnkSEAoDa2V5", + "GAEgASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYu", + "VmFsdWVSBXZhbHVlOgI4ATozkkEwCi4yLFVuaXF1ZSBpZGVudGlmaWVyIGZv", + "ciB0aGUgcmVzb3VyY2UgaW5zdGFuY2UuIuMGChlDaGVja1Jlc291cmNlQmF0", + "Y2hSZXF1ZXN0EpYBCgpyZXF1ZXN0X2lkGAEgASgJQneSQXQySk9wdGlvbmFs", + "IGFwcGxpY2F0aW9uLXNwZWNpZmljIElEIHVzZWZ1bCBmb3IgY29ycmVsYXRp", + "bmcgbG9ncyBmb3IgYW5hbHlzaXMuSiYiYzJkYjE3YjgtNGY5Zi00ZmIxLWFj", + "ZmQtOTE2MmEwMmJlNDJiIlIJcmVxdWVzdElkEkQKCXByaW5jaXBhbBgCIAEo", + "CzIbLmNlcmJvcy5lbmdpbmUudjEuUHJpbmNpcGFsQgngQQK6SAPIAQFSCXBy", + "aW5jaXBhbBK/AgoJcmVzb3VyY2VzGAMgAygLMjcuY2VyYm9zLnJlcXVlc3Qu", + "djEuQ2hlY2tSZXNvdXJjZUJhdGNoUmVxdWVzdC5CYXRjaEVudHJ5QucBkkHV", + "ATIeTGlzdCBvZiByZXNvdXJjZXMgYW5kIGFjdGlvbnMuSqwBW3siYWN0aW9u", + "cyI6WyJ2aWV3IiwiY29tbWVudCJdLCAicmVzb3VyY2UiOnsia2luZCI6ImFs", + "YnVtOm9iamVjdCIsInBvbGljeVZlcnNpb24iOiJkZWZhdWx0IiwiaWQiOiJY", + "WDEyNSIsImF0dHIiOnsib3duZXIiOiJidWdzX2J1bm55IiwgInB1YmxpYyI6", + "IGZhbHNlLCAiZmxhZ2dlZCI6IGZhbHNlfX19XagBAbABAeBBArpICJIBAggB", + "yAEBUglyZXNvdXJjZXMSNQoIYXV4X2RhdGEYBCABKAsyGi5jZXJib3MucmVx", + "dWVzdC52MS5BdXhEYXRhUgdhdXhEYXRhGtkBCgpCYXRjaEVudHJ5EocBCgdh", + "Y3Rpb25zGAEgAygJQm2SQVQyMExpc3Qgb2YgYWN0aW9ucyBiZWluZyBwZXJm", + "b3JtZWQgb24gdGhlIHJlc291cmNlLkoaWyJ2aWV3OnB1YmxpYyIsICJjb21t", + "ZW50Il2oAQGwAQHgQQK6SBCSAQoIARgBIgRyAhAByAEBUgdhY3Rpb25zEkEK", + "CHJlc291cmNlGAIgASgLMhouY2VyYm9zLmVuZ2luZS52MS5SZXNvdXJjZUIJ", + "4EECukgDyAEBUghyZXNvdXJjZToSkkEPCg0yC1BEUCBSZXF1ZXN0IscHChVD", + "aGVja1Jlc291cmNlc1JlcXVlc3QSlgEKCnJlcXVlc3RfaWQYASABKAlCd5JB", + "dDJKT3B0aW9uYWwgYXBwbGljYXRpb24tc3BlY2lmaWMgSUQgdXNlZnVsIGZv", + "ciBjb3JyZWxhdGluZyBsb2dzIGZvciBhbmFseXNpcy5KJiJjMmRiMTdiOC00", + "ZjlmLTRmYjEtYWNmZC05MTYyYTAyYmU0MmIiUglyZXF1ZXN0SWQSWAoMaW5j", + "bHVkZV9tZXRhGAIgASgIQjWSQTIyMEFkZCByZXF1ZXN0IHByb2Nlc3Npbmcg", + "bWV0YWRhdGEgdG8gdGhlIHJlc3BvbnNlLlILaW5jbHVkZU1ldGESRAoJcHJp", + "bmNpcGFsGAMgASgLMhsuY2VyYm9zLmVuZ2luZS52MS5QcmluY2lwYWxCCeBB", + "ArpIA8gBAVIJcHJpbmNpcGFsEr4CCglyZXNvdXJjZXMYBCADKAsyNi5jZXJi", + "b3MucmVxdWVzdC52MS5DaGVja1Jlc291cmNlc1JlcXVlc3QuUmVzb3VyY2VF", + "bnRyeULnAZJB1QEyHkxpc3Qgb2YgcmVzb3VyY2VzIGFuZCBhY3Rpb25zLkqs", + "AVt7ImFjdGlvbnMiOlsidmlldyIsImNvbW1lbnQiXSwgInJlc291cmNlIjp7", + "ImtpbmQiOiJhbGJ1bTpvYmplY3QiLCJwb2xpY3lWZXJzaW9uIjoiZGVmYXVs", + "dCIsImlkIjoiWFgxMjUiLCJhdHRyIjp7Im93bmVyIjoiYnVnc19idW5ueSIs", + "ICJwdWJsaWMiOiBmYWxzZSwgImZsYWdnZWQiOiBmYWxzZX19fV2oAQGwAQHg", + "QQK6SAiSAQIIAcgBAVIJcmVzb3VyY2VzEjUKCGF1eF9kYXRhGAUgASgLMhou", + "Y2VyYm9zLnJlcXVlc3QudjEuQXV4RGF0YVIHYXV4RGF0YRrcAQoNUmVzb3Vy", + "Y2VFbnRyeRKHAQoHYWN0aW9ucxgBIAMoCUJtkkFUMjBMaXN0IG9mIGFjdGlv", + "bnMgYmVpbmcgcGVyZm9ybWVkIG9uIHRoZSByZXNvdXJjZS5KGlsidmlldzpw", + "dWJsaWMiLCAiY29tbWVudCJdqAEBsAEB4EECukgQkgEKCAEYASIEcgIQAcgB", + "AVIHYWN0aW9ucxJBCghyZXNvdXJjZRgCIAEoCzIaLmNlcmJvcy5lbmdpbmUu", + "djEuUmVzb3VyY2VCCeBBArpIA8gBAVIIcmVzb3VyY2U6HpJBGwoZMhdDaGVj", + "ayByZXNvdXJjZXMgcmVxdWVzdCKyBwoHQXV4RGF0YRIwCgNqd3QYASABKAsy", + "Hi5jZXJib3MucmVxdWVzdC52MS5BdXhEYXRhLkpXVFIDand0GrAGCgNKV1QS", + "xwQKBXRva2VuGAEgASgJQrAEkkGfBDIdSldUIGZyb20gdGhlIG9yaWdpbmFs", + "IHJlcXVlc3RKyQMiZXlKaGJHY2lPaUpGVXpNNE5DSXNJbXRwWkNJNklqRTVU", + "R1phWVhSRlpHYzRNMWxPWXpWeU1qTm5kVTFLY1hKdU5EMGlMQ0owZVhBaU9p", + "SktWMVFpZlEuZXlKaGRXUWlPbHNpWTJWeVltOXpMV3AzZEMxMFpYTjBjeUpk", + "TENKamRYTjBiMjFCY25KaGVTSTZXeUpCSWl3aVFpSXNJa01pWFN3aVkzVnpk", + "Rzl0U1c1MElqbzBNaXdpWTNWemRHOXRUV0Z3SWpwN0lrRWlPaUpCUVNJc0lr", + "SWlPaUpDUWlJc0lrTWlPaUpEUXlKOUxDSmpkWE4wYjIxVGRISnBibWNpT2lK", + "bWIyOWlZWElpTENKbGVIQWlPakU1TkRrNU16UXdNemtzSW1semN5STZJbU5s", + "Y21KdmN5MTBaWE4wTFhOMWFYUmxJbjAuV05fdE9TY1NwZF9FSS1QNUVJMVls", + "YWd4RWdFeFNmQmpBdGNyZ2NGNmx5V2oxbEdwUl9HS3g5Z29aRXAycF90NUFW", + "V1hOX2Jqel9zTVVtSmRKYTRjVmQ1NVFtMW1pUi1GS3U2b05SSG5TRVdkTUZt", + "bkFyd1B3LVlESldmeWxMRlgiggMaChR4LWV4YW1wbGUtc2hvdy12YWx1ZRIC", + "IACCAxQKDngtZmlsbC1leGFtcGxlEgIgAOBBArpIB3ICEAHIAQFSBXRva2Vu", + "ErgBCgprZXlfc2V0X2lkGAIgASgJQpkBkkGVATJSS2V5IElEIHRvIHVzZSB3", + "aGVuIGRlY29kaW5nIHRoZSB0b2tlbiAoZGVmaW5lZCBpbiB0aGUgQ2VyYm9z", + "IHNlcnZlciBjb25maWd1cmF0aW9uKUoLIm15LWtleXNldCKCAxoKFHgtZXhh", + "bXBsZS1zaG93LXZhbHVlEgIgAIIDFAoOeC1maWxsLWV4YW1wbGUSAiAAUghr", + "ZXlTZXRJZDokkkEhCh8yHUpXVCBmcm9tIHRoZSBvcmlnaW5hbCByZXF1ZXN0", + "OkKSQT8KPTI7U3RydWN0dXJlZCBhdXhpbGlhcnkgZGF0YSB1c2VmdWwgZm9y", + "IGV2YWx1YXRpbmcgdGhlIHJlcXVlc3QiYQoERmlsZRIqCglmaWxlX25hbWUY", + "ASABKAlCDeBBArpIB3ICEAHIAQFSCGZpbGVOYW1lEi0KCGNvbnRlbnRzGAIg", + "ASgMQhHgQQK6SAt6BhABGICAQMgBAVIIY29udGVudHMivgEKGVBsYXlncm91", + "bmRWYWxpZGF0ZVJlcXVlc3QSIwoNcGxheWdyb3VuZF9pZBgBIAEoCVIMcGxh", + "eWdyb3VuZElkElgKBWZpbGVzGAIgAygLMhcuY2VyYm9zLnJlcXVlc3QudjEu", + "RmlsZUIpkkEWMg5MaXN0IG9mIGZpbGVzLqABHqgBAeBBArpICpIBBAgBEB7I", + "AQFSBWZpbGVzOiKSQR8KHTIbUGxheWdyb3VuZCB2YWxpZGF0ZSByZXF1ZXN0", + "IrYBChVQbGF5Z3JvdW5kVGVzdFJlcXVlc3QSIwoNcGxheWdyb3VuZF9pZBgB", + "IAEoCVIMcGxheWdyb3VuZElkElgKBWZpbGVzGAIgAygLMhcuY2VyYm9zLnJl", + "cXVlc3QudjEuRmlsZUIpkkEWMg5MaXN0IG9mIGZpbGVzLqABHqgBAeBBArpI", + "CpIBBAgBEB7IAQFSBWZpbGVzOh6SQRsKGTIXUGxheWdyb3VuZCB0ZXN0IHJl", + "cXVlc3Qi8AMKGVBsYXlncm91bmRFdmFsdWF0ZVJlcXVlc3QSIwoNcGxheWdy", + "b3VuZF9pZBgBIAEoCVIMcGxheWdyb3VuZElkElgKBWZpbGVzGAIgAygLMhcu", + "Y2VyYm9zLnJlcXVlc3QudjEuRmlsZUIpkkEWMg5MaXN0IG9mIGZpbGVzLqAB", + "HqgBAeBBArpICpIBBAgBEB7IAQFSBWZpbGVzEkQKCXByaW5jaXBhbBgDIAEo", + "CzIbLmNlcmJvcy5lbmdpbmUudjEuUHJpbmNpcGFsQgngQQK6SAPIAQFSCXBy", + "aW5jaXBhbBJBCghyZXNvdXJjZRgEIAEoCzIaLmNlcmJvcy5lbmdpbmUudjEu", + "UmVzb3VyY2VCCeBBArpIA8gBAVIIcmVzb3VyY2UScAoHYWN0aW9ucxgFIAMo", + "CUJWkkE7MjBMaXN0IG9mIGFjdGlvbnMgYmVpbmcgcGVyZm9ybWVkIG9uIHRo", + "ZSByZXNvdXJjZS6gATKoAQGwAQHgQQK6SBKSAQwIARAyGAEiBHICEAHIAQFS", + "B2FjdGlvbnMSNQoIYXV4X2RhdGEYBiABKAsyGi5jZXJib3MucmVxdWVzdC52", + "MS5BdXhEYXRhUgdhdXhEYXRhOiKSQR8KHTIbUGxheWdyb3VuZCBldmFsdWF0", + "ZSByZXF1ZXN0IrUEChZQbGF5Z3JvdW5kUHJveHlSZXF1ZXN0EiMKDXBsYXln", + "cm91bmRfaWQYASABKAlSDHBsYXlncm91bmRJZBJYCgVmaWxlcxgCIAMoCzIX", + "LmNlcmJvcy5yZXF1ZXN0LnYxLkZpbGVCKZJBFjIOTGlzdCBvZiBmaWxlcy6g", + "AR6oAQHgQQK6SAqSAQQIARAeyAEBUgVmaWxlcxJaChJjaGVja19yZXNvdXJj", + "ZV9zZXQYAyABKAsyKi5jZXJib3MucmVxdWVzdC52MS5DaGVja1Jlc291cmNl", + "U2V0UmVxdWVzdEgAUhBjaGVja1Jlc291cmNlU2V0EmAKFGNoZWNrX3Jlc291", + "cmNlX2JhdGNoGAQgASgLMiwuY2VyYm9zLnJlcXVlc3QudjEuQ2hlY2tSZXNv", + "dXJjZUJhdGNoUmVxdWVzdEgAUhJjaGVja1Jlc291cmNlQmF0Y2gSUAoOcGxh", + "bl9yZXNvdXJjZXMYBSABKAsyJy5jZXJib3MucmVxdWVzdC52MS5QbGFuUmVz", + "b3VyY2VzUmVxdWVzdEgAUg1wbGFuUmVzb3VyY2VzElMKD2NoZWNrX3Jlc291", + "cmNlcxgGIAEoCzIoLmNlcmJvcy5yZXF1ZXN0LnYxLkNoZWNrUmVzb3VyY2Vz", + "UmVxdWVzdEgAUg5jaGVja1Jlc291cmNlczofkkEcChoyGFBsYXlncm91bmQg", + "cHJveHkgcmVxdWVzdEIWCg1wcm94eV9yZXF1ZXN0EgW6SAIIASKgAQoYQWRk", + "T3JVcGRhdGVQb2xpY3lSZXF1ZXN0EmIKCHBvbGljaWVzGAEgAygLMhguY2Vy", + "Ym9zLnBvbGljeS52MS5Qb2xpY3lCLJJBGTIRTGlzdCBvZiBwb2xpY2llcy6g", + "AWSoAQHgQQK6SAqSAQQIARBkyAEBUghwb2xpY2llczogkkEdChsyGUFkZC91", + "cGRhdGUgcG9saWN5IHJlcXVlc3QirAcKGkxpc3RBdWRpdExvZ0VudHJpZXNS", + "ZXF1ZXN0EokBCgRraW5kGAEgASgOMjIuY2VyYm9zLnJlcXVlc3QudjEuTGlz", + "dEF1ZGl0TG9nRW50cmllc1JlcXVlc3QuS2luZEJBkkExMhFLaW5kIG9mIGxv", + "ZyBlbnRyefICC0tJTkRfQUNDRVNT8gINS0lORF9ERUNJU0lPTrpICoIBBBgB", + "GALIAQFSBGtpbmQSRgoEdGFpbBgCIAEoDUIwkkEjMg9MYXN0IE4gZW50cmll", + "cy5ZAAAAAABAj0BpAAAAAAAA8D+6SAcqBRjoBygBSABSBHRhaWwSUwoHYmV0", + "d2VlbhgDIAEoCzI3LmNlcmJvcy5yZXF1ZXN0LnYxLkxpc3RBdWRpdExvZ0Vu", + "dHJpZXNSZXF1ZXN0LlRpbWVSYW5nZUgAUgdiZXR3ZWVuElkKBXNpbmNlGAQg", + "ASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQiaSQSMyIUVudHJpZXMg", + "c2luY2UgTiBob3Vycy9taW51dGVzIGFnb0gAUgVzaW5jZRKDAQoGbG9va3Vw", + "GAUgASgJQmmSQTcyCkJ5IENhbGwgSUSKASheWzAxMjM0NTY3ODlBQkNERUZH", + "SEpLTU5QUVJTVFZXWFlaXXsyNn0kukgscioyKF5bMDEyMzQ1Njc4OUFCQ0RF", + "RkdISktNTlBRUlNUVldYWVpdezI2fSRIAFIGbG9va3VwGrACCglUaW1lUmFu", + "Z2USgAEKBXN0YXJ0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFt", + "cEJOkkE9Mh5TdGFydCBkYXRlIGluIElTTyA4NjAxIGZvcm1hdC5KGyIyMDIx", + "LTA3LTA1VDA3OjI3OjAxKzAwOjAwIuBBArpICLIBAjgByAEBUgVzdGFydBJ6", + "CgNlbmQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQkySQTsy", + "HEVuZCBkYXRlIGluIElTTyA4NjAxIGZvcm1hdC5KGyIyMDIxLTA3LTA1VDA3", + "OjI3OjAxKzAwOjAwIuBBArpICLIBAjgByAEBUgNlbmQ6JJJBIQofMh1FbnRy", + "aWVzIGJldHdlZW4gYSB0aW1lIHJhbmdlLiJACgRLaW5kEhQKEEtJTkRfVU5T", + "UEVDSUZJRUQQABIPCgtLSU5EX0FDQ0VTUxABEhEKDUtJTkRfREVDSVNJT04Q", + "AkIPCgZmaWx0ZXISBbpIAggBIi8KEVNlcnZlckluZm9SZXF1ZXN0OhqSQRcK", + "FTITU2VydmVyIGluZm8gcmVxdWVzdCLTBAoTTGlzdFBvbGljaWVzUmVxdWVz", + "dBJMChBpbmNsdWRlX2Rpc2FibGVkGAEgASgIQiGSQRsyGUluY2x1ZGUgZGlz", + "YWJsZWQgcG9saWNpZXPgQQFSD2luY2x1ZGVEaXNhYmxlZBJMCgtuYW1lX3Jl", + "Z2V4cBgCIAEoCUIrkkElMiNGaWx0ZXIgcG9saWNpZXMgYnkgbmFtZSB3aXRo", + "IHJlZ2V4cOBBAVIKbmFtZVJlZ2V4cBJPCgxzY29wZV9yZWdleHAYAyABKAlC", + "LJJBJjIkRmlsdGVyIHBvbGljaWVzIGJ5IHNjb3BlIHdpdGggcmVnZXhw4EEB", + "UgtzY29wZVJlZ2V4cBJVCg52ZXJzaW9uX3JlZ2V4cBgEIAEoCUIukkEoMiZG", + "aWx0ZXIgcG9saWNpZXMgYnkgdmVyc2lvbiB3aXRoIHJlZ2V4cOBBAVINdmVy", + "c2lvblJlZ2V4cBLZAQoJcG9saWN5X2lkGAUgAygJQrsBkkGmATKHAUZvciBi", + "bG9iLCBkaXNrLCBnaXQgc3RvcmVzIHVzZSBmaWxlIG5hbWUgKDxmaWxlbmFt", + "ZT4ueWFtbCkuIEZvciBteXNxbCwgcG9zdGdyZXMsIHNxbGl0ZTMgdXNlIGlk", + "ICg8a2luZD4uPG5hbWU+Ljx2ZXJzaW9uPikgb2YgdGhlIHBvbGljeUoaInBy", + "aW5jaXBhbC5zYXJhaC52ZGVmYXVsdCLgQQG6SAuSAQgQGSIEcgIQAVIIcG9s", + "aWN5SWQ6HJJBGQoXMhVMaXN0IHBvbGljaWVzIHJlcXVlc3QigQIKEEdldFBv", + "bGljeVJlcXVlc3QS0QEKAmlkGAEgAygJQsABkkGmATKHAUZvciBibG9iLCBk", + "aXNrLCBnaXQgc3RvcmVzIHVzZSBmaWxlIG5hbWUgKDxmaWxlbmFtZT4ueWFt", + "bCkuIEZvciBteXNxbCwgcG9zdGdyZXMsIHNxbGl0ZTMgdXNlIGlkICg8a2lu", + "ZD4uPG5hbWU+Ljx2ZXJzaW9uPikgb2YgdGhlIHBvbGljeUoaInByaW5jaXBh", + "bC5zYXJhaC52ZGVmYXVsdCLgQQK6SBCSAQoIARgBIgRyAhAByAEBUgJpZDoZ", + "kkEWChQyEkdldCBwb2xpY3kgcmVxdWVzdCKeAQoURGlzYWJsZVBvbGljeVJl", + "cXVlc3QSZwoCaWQYASADKAlCV5JBPjIgVW5pcXVlIGlkZW50aWZpZXIgZm9y", + "IHRoZSBwb2xpY3lKGiJwcmluY2lwYWwuc2FyYWgudmRlZmF1bHQi4EECukgQ", + "kgEKCAEYASIEcgIQAcgBAVICaWQ6HZJBGgoYMhZEaXNhYmxlIHBvbGljeSBy", + "ZXF1ZXN0IpwBChNFbmFibGVQb2xpY3lSZXF1ZXN0EmcKAmlkGAEgAygJQleS", + "QT4yIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcG9saWN5ShoicHJpbmNp", + "cGFsLnNhcmFoLnZkZWZhdWx0IuBBArpIEJIBCggBGAEiBHICEAHIAQFSAmlk", + "OhySQRkKFzIVRW5hYmxlIHBvbGljeSByZXF1ZXN0ItkEChZJbnNwZWN0UG9s", + "aWNpZXNSZXF1ZXN0EkwKEGluY2x1ZGVfZGlzYWJsZWQYASABKAhCIZJBGzIZ", + "SW5jbHVkZSBkaXNhYmxlZCBwb2xpY2llc+BBAVIPaW5jbHVkZURpc2FibGVk", + "EkwKC25hbWVfcmVnZXhwGAIgASgJQiuSQSUyI0ZpbHRlciBwb2xpY2llcyBi", + "eSBuYW1lIHdpdGggcmVnZXhw4EEBUgpuYW1lUmVnZXhwEk8KDHNjb3BlX3Jl", + "Z2V4cBgDIAEoCUIskkEmMiRGaWx0ZXIgcG9saWNpZXMgYnkgc2NvcGUgd2l0", + "aCByZWdleHDgQQFSC3Njb3BlUmVnZXhwElUKDnZlcnNpb25fcmVnZXhwGAQg", + "ASgJQi6SQSgyJkZpbHRlciBwb2xpY2llcyBieSB2ZXJzaW9uIHdpdGggcmVn", + "ZXhw4EEBUg12ZXJzaW9uUmVnZXhwEtkBCglwb2xpY3lfaWQYBSADKAlCuwGS", "QaYBMocBRm9yIGJsb2IsIGRpc2ssIGdpdCBzdG9yZXMgdXNlIGZpbGUgbmFt", "ZSAoPGZpbGVuYW1lPi55YW1sKS4gRm9yIG15c3FsLCBwb3N0Z3Jlcywgc3Fs", "aXRlMyB1c2UgaWQgKDxraW5kPi48bmFtZT4uPHZlcnNpb24+KSBvZiB0aGUg", - "cG9saWN5ShoicHJpbmNpcGFsLnNhcmFoLnZkZWZhdWx0IuJBAQG6SAuSAQgQ", - "GSIEcgIQAVIIcG9saWN5SWQ6H5JBHAoaMhhJbnNwZWN0IHBvbGljaWVzIHJl", - "cXVlc3QingEKGEFkZE9yVXBkYXRlU2NoZW1hUmVxdWVzdBJgCgdzY2hlbWFz", - "GAEgAygLMhguY2VyYm9zLnNjaGVtYS52MS5TY2hlbWFCLJJBGDIQTGlzdCBv", - "ZiBzY2hlbWFzLqABZKgBAeJBAQK6SAqSAQQIARBkyAEBUgdzY2hlbWFzOiCS", - "QR0KGzIZQWRkL3VwZGF0ZSBzY2hlbWEgcmVxdWVzdCI0ChJMaXN0U2NoZW1h", - "c1JlcXVlc3Q6HpJBGwoZMhdMaXN0IHNjaGVtYSBpZHMgcmVxdWVzdCKTAQoQ", - "R2V0U2NoZW1hUmVxdWVzdBJhCgJpZBgBIAMoCUJRkkE0MiBVbmlxdWUgaWRl", - "bnRpZmllciBmb3IgdGhlIHNjaGVtYUoQInByaW5jaXBhbC5qc29uIuJBAQK6", - "SBOSAQ0IARgBIgdyBRABGP8ByAEBUgJpZDockkEZChcyFUdldCBzY2hlbWEo", - "cykgcmVxdWVzdCKZAQoTRGVsZXRlU2NoZW1hUmVxdWVzdBJhCgJpZBgBIAMo", - "CUJRkkE0MiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNjaGVtYUoQInBy", - "aW5jaXBhbC5qc29uIuJBAQK6SBOSAQ0IARgBIgdyBRABGP8ByAEBUgJpZDof", - "kkEcChoyGERlbGV0ZSBzY2hlbWEocykgcmVxdWVzdCJ5ChJSZWxvYWRTdG9y", - "ZVJlcXVlc3QSRgoEd2FpdBgBIAEoCEIykkErMilXYWl0IHVudGlsIHRoZSBy", - "ZWxvYWRpbmcgcHJvY2VzcyBmaW5pc2hlc+JBAQFSBHdhaXQ6G5JBGAoWMhRS", - "ZWxvYWQgc3RvcmUgcmVxdWVzdEJzChlkZXYuY2VyYm9zLmFwaS52MS5yZXF1", - "ZXN0Wj5naXRodWIuY29tL2NlcmJvcy9jZXJib3MvYXBpL2dlbnBiL2NlcmJv", - "cy9yZXF1ZXN0L3YxO3JlcXVlc3R2MaoCFUNlcmJvcy5BcGkuVjEuUmVxdWVz", - "dGIGcHJvdG8z")); + "cG9saWN5ShoicHJpbmNpcGFsLnNhcmFoLnZkZWZhdWx0IuBBAbpIC5IBCBAZ", + "IgRyAhABUghwb2xpY3lJZDofkkEcChoyGEluc3BlY3QgcG9saWNpZXMgcmVx", + "dWVzdCKdAQoYQWRkT3JVcGRhdGVTY2hlbWFSZXF1ZXN0El8KB3NjaGVtYXMY", + "ASADKAsyGC5jZXJib3Muc2NoZW1hLnYxLlNjaGVtYUIrkkEYMhBMaXN0IG9m", + "IHNjaGVtYXMuoAFkqAEB4EECukgKkgEECAEQZMgBAVIHc2NoZW1hczogkkEd", + "ChsyGUFkZC91cGRhdGUgc2NoZW1hIHJlcXVlc3QiNAoSTGlzdFNjaGVtYXNS", + "ZXF1ZXN0Oh6SQRsKGTIXTGlzdCBzY2hlbWEgaWRzIHJlcXVlc3QikgEKEEdl", + "dFNjaGVtYVJlcXVlc3QSYAoCaWQYASADKAlCUJJBNDIgVW5pcXVlIGlkZW50", + "aWZpZXIgZm9yIHRoZSBzY2hlbWFKECJwcmluY2lwYWwuanNvbiLgQQK6SBOS", + "AQ0IARgBIgdyBRABGP8ByAEBUgJpZDockkEZChcyFUdldCBzY2hlbWEocykg", + "cmVxdWVzdCKYAQoTRGVsZXRlU2NoZW1hUmVxdWVzdBJgCgJpZBgBIAMoCUJQ", + "kkE0MiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNjaGVtYUoQInByaW5j", + "aXBhbC5qc29uIuBBArpIE5IBDQgBGAEiB3IFEAEY/wHIAQFSAmlkOh+SQRwK", + "GjIYRGVsZXRlIHNjaGVtYShzKSByZXF1ZXN0IngKElJlbG9hZFN0b3JlUmVx", + "dWVzdBJFCgR3YWl0GAEgASgIQjGSQSsyKVdhaXQgdW50aWwgdGhlIHJlbG9h", + "ZGluZyBwcm9jZXNzIGZpbmlzaGVz4EEBUgR3YWl0OhuSQRgKFjIUUmVsb2Fk", + "IHN0b3JlIHJlcXVlc3RCcwoZZGV2LmNlcmJvcy5hcGkudjEucmVxdWVzdFo+", + "Z2l0aHViLmNvbS9jZXJib3MvY2VyYm9zL2FwaS9nZW5wYi9jZXJib3MvcmVx", + "dWVzdC92MTtyZXF1ZXN0djGqAhVDZXJib3MuQXBpLlYxLlJlcXVlc3RiBnBy", + "b3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Buf.Validate.ValidateReflection.Descriptor, global::Cerbos.Api.V1.Engine.EngineReflection.Descriptor, global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor, global::Cerbos.Api.V1.Schema.SchemaReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Grpc.Gateway.ProtocGenOpenapiv2.Options.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/Sdk/Cerbos/Api/V1/Response/Response.g.cs b/src/Sdk/Cerbos/Api/V1/Response/Response.g.cs index 0f0f733..350850a 100644 --- a/src/Sdk/Cerbos/Api/V1/Response/Response.g.cs +++ b/src/Sdk/Cerbos/Api/V1/Response/Response.g.cs @@ -29,302 +29,329 @@ static ResponseReflection() { "b3MvZWZmZWN0L3YxL2VmZmVjdC5wcm90bxodY2VyYm9zL2VuZ2luZS92MS9l", "bmdpbmUucHJvdG8aHWNlcmJvcy9wb2xpY3kvdjEvcG9saWN5LnByb3RvGh1j", "ZXJib3Mvc2NoZW1hL3YxL3NjaGVtYS5wcm90bxobZ29vZ2xlL3Byb3RvYnVm", - "L2VtcHR5LnByb3RvGi5wcm90b2MtZ2VuLW9wZW5hcGl2Mi9vcHRpb25zL2Fu", - "bm90YXRpb25zLnByb3RvIs0IChVQbGFuUmVzb3VyY2VzUmVzcG9uc2USbwoK", + "L2VtcHR5LnByb3RvGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvGi5w", + "cm90b2MtZ2VuLW9wZW5hcGl2Mi9vcHRpb25zL2Fubm90YXRpb25zLnByb3Rv", + "Is0IChVQbGFuUmVzb3VyY2VzUmVzcG9uc2USbwoKcmVxdWVzdF9pZBgBIAEo", + "CUJQkkFNMiNSZXF1ZXN0IElEIHByb3ZpZGVkIGluIHRoZSByZXF1ZXN0Lkom", + "ImMyZGIxN2I4LTRmOWYtNGZiMS1hY2ZkLTkxNjJhMDJiZTQyYiJSCXJlcXVl", + "c3RJZBIyCgZhY3Rpb24YAiABKAlCGpJBFzIGQWN0aW9uSg0idmlldzpwdWJs", + "aWMiUgZhY3Rpb24SSAoNcmVzb3VyY2Vfa2luZBgDIAEoCUIjkkEgMg5SZXNv", + "dXJjZSBraW5kLkoOImFsYnVtOm9iamVjdCJSDHJlc291cmNlS2luZBJKCg5w", + "b2xpY3lfdmVyc2lvbhgEIAEoCUIjkkEgMhNUaGUgcG9saWN5IHZlcnNpb24u", + "SgkiZGVmYXVsdCJSDXBvbGljeVZlcnNpb24SSgoGZmlsdGVyGAUgASgLMiUu", + "Y2VyYm9zLmVuZ2luZS52MS5QbGFuUmVzb3VyY2VzRmlsdGVyQguSQQgyBkZp", + "bHRlclIGZmlsdGVyEn8KBG1ldGEYBiABKAsyLi5jZXJib3MucmVzcG9uc2Uu", + "djEuUGxhblJlc291cmNlc1Jlc3BvbnNlLk1ldGFCO5JBODI2T3B0aW9uYWwg", + "bWV0YWRhdGEgYWJvdXQgdGhlIHJlcXVlc3QgZXZhbHVhdGlvbiBwcm9jZXNz", + "UgRtZXRhEpABChF2YWxpZGF0aW9uX2Vycm9ycxgHIAMoCzIhLmNlcmJvcy5z", + "Y2hlbWEudjEuVmFsaWRhdGlvbkVycm9yQkCSQT0yO0xpc3Qgb2YgdmFsaWRh", + "dGlvbiBlcnJvcnMgKGlmIHNjaGVtYSB2YWxpZGF0aW9uIGlzIGVuYWJsZWQp", + "UhB2YWxpZGF0aW9uRXJyb3JzElkKDmNlcmJvc19jYWxsX2lkGAggASgJQjOS", + "QTAyLkF1ZGl0IGxvZyBjYWxsIElEIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJl", + "cXVlc3RSDGNlcmJvc0NhbGxJZBr/AQoETWV0YRJdCgxmaWx0ZXJfZGVidWcY", + "ASABKAlCOpJBNzI1RmlsdGVyIHRleHR1YWwgcmVwcmVzZW50YXRpb24gZm9y", + "IGRlYnVnZ2luZyBwdXJwb3Nlcy5SC2ZpbHRlckRlYnVnEm0KDW1hdGNoZWRf", + "c2NvcGUYAiABKAlCSJJBRTIxUG9saWN5IHNjb3BlIHRoYXQgbWF0Y2hlZCB0", + "byBwcm9kdWNlIHRoaXMgZWZmZWN0LkoQImFjbWUuY29ycC5iYXNlIlIMbWF0", + "Y2hlZFNjb3BlOimSQSYKJDIiTWV0YWRhdGEgYWJvdXQgcmVxdWVzdCBldmFs", + "dWF0aW9uLjo8kkE5CjcyNVJlc291cmNlcyBxdWVyeSBwbGFuIHJlc3BvbnNl", + "IGZvciBhIHNldCBvZiByZXNvdXJjZXMuIsgVChhDaGVja1Jlc291cmNlU2V0", + "UmVzcG9uc2USbwoKcmVxdWVzdF9pZBgBIAEoCUJQkkFNMiNSZXF1ZXN0IElE", + "IHByb3ZpZGVkIGluIHRoZSByZXF1ZXN0LkomImMyZGIxN2I4LTRmOWYtNGZi", + "MS1hY2ZkLTkxNjJhMDJiZTQyYiJSCXJlcXVlc3RJZBLbAgoScmVzb3VyY2Vf", + "aW5zdGFuY2VzGAIgAygLMkMuY2VyYm9zLnJlc3BvbnNlLnYxLkNoZWNrUmVz", + "b3VyY2VTZXRSZXNwb25zZS5SZXNvdXJjZUluc3RhbmNlc0VudHJ5QuYBkkHi", + "ATJLUmVzdWx0cyBmb3IgZWFjaCByZXNvdXJjZSBpbnN0YW5jZSwga2V5ZWQg", + "YnkgdGhlIElEIHN1cHBsaWVkIGluIHRoZSByZXF1ZXN0SpIBeyJYWDEyNSI6", + "eyJhY3Rpb25zIjp7InZpZXc6KiI6IkVGRkVDVF9BTExPVyIsICJjb21tZW50", + "IjogIkVGRkVDVF9BTExPVyJ9fSwgIlhYMjI1Ijp7ImFjdGlvbnMiOnsidmll", + "dzoqIjoiRUZGRUNUX0RFTlkiLCAiY29tbWVudCI6ICJFRkZFQ1RfREVOWSJ9", + "fX1SEXJlc291cmNlSW5zdGFuY2VzEoIBCgRtZXRhGAMgASgLMjEuY2VyYm9z", + "LnJlc3BvbnNlLnYxLkNoZWNrUmVzb3VyY2VTZXRSZXNwb25zZS5NZXRhQjuS", + "QTgyNk9wdGlvbmFsIG1ldGFkYXRhIGFib3V0IHRoZSByZXF1ZXN0IGV2YWx1", + "YXRpb24gcHJvY2Vzc1IEbWV0YRqLAwoPQWN0aW9uRWZmZWN0TWFwEo4BCgdh", + "Y3Rpb25zGAEgAygLMkkuY2VyYm9zLnJlc3BvbnNlLnYxLkNoZWNrUmVzb3Vy", + "Y2VTZXRSZXNwb25zZS5BY3Rpb25FZmZlY3RNYXAuQWN0aW9uc0VudHJ5QimS", + "QSYyJE1hcHBpbmcgb2YgZWFjaCBhY3Rpb24gdG8gYW4gZWZmZWN0LlIHYWN0", + "aW9ucxKQAQoRdmFsaWRhdGlvbl9lcnJvcnMYAiADKAsyIS5jZXJib3Muc2No", + "ZW1hLnYxLlZhbGlkYXRpb25FcnJvckJAkkE9MjtMaXN0IG9mIHZhbGlkYXRp", + "b24gZXJyb3JzIChpZiBzY2hlbWEgdmFsaWRhdGlvbiBpcyBlbmFibGVkKVIQ", + "dmFsaWRhdGlvbkVycm9ycxpUCgxBY3Rpb25zRW50cnkSEAoDa2V5GAEgASgJ", + "UgNrZXkSLgoFdmFsdWUYAiABKA4yGC5jZXJib3MuZWZmZWN0LnYxLkVmZmVj", + "dFIFdmFsdWU6AjgBGokMCgRNZXRhEs8DChJyZXNvdXJjZV9pbnN0YW5jZXMY", + "ASADKAsySC5jZXJib3MucmVzcG9uc2UudjEuQ2hlY2tSZXNvdXJjZVNldFJl", + "c3BvbnNlLk1ldGEuUmVzb3VyY2VJbnN0YW5jZXNFbnRyeULVApJB0QIyIk1l", + "dGFkYXRhIGFib3V0IHJlc291cmNlIGluc3RhbmNlcy5KqgJ7IlhYMTI1Ijog", + "eyJhY3Rpb25zIjogeyJ2aWV3OioiOnsibWF0Y2hlZF9wb2xpY3kiOiAiYWxi", + "dW06b2JqZWN0OmRlZmF1bHQifSwiY29tbWVudCI6eyJtYXRjaGVkX3BvbGlj", + "eSI6ICJhbGJ1bTpvYmplY3Q6ZGVmYXVsdCJ9fSwgImVmZmVjdGl2ZV9kZXJp", + "dmVkX3JvbGVzIjogWyJvd25lciJdfSwgIlhYMjI1IjogeyJhY3Rpb25zIjog", + "eyJ2aWV3OioiOnsibWF0Y2hlZF9wb2xpY3kiOiAiYWxidW06b2JqZWN0OmRl", + "ZmF1bHQifSwiY29tbWVudCI6eyJtYXRjaGVkX3BvbGljeSI6ICJhbGJ1bTpv", + "YmplY3Q6ZGVmYXVsdCJ9fX19UhFyZXNvdXJjZUluc3RhbmNlcxqIAgoKRWZm", + "ZWN0TWV0YRJvCg5tYXRjaGVkX3BvbGljeRgBIAEoCUJIkkFFMitQb2xpY3kg", + "dGhhdCBtYXRjaGVkIHRvIHByb2R1Y2UgdGhpcyBlZmZlY3QuShYiYWxidW06", + "b2JqZWN0OmRlZmF1bHQiUg1tYXRjaGVkUG9saWN5Em0KDW1hdGNoZWRfc2Nv", + "cGUYAiABKAlCSJJBRTIxUG9saWN5IHNjb3BlIHRoYXQgbWF0Y2hlZCB0byBw", + "cm9kdWNlIHRoaXMgZWZmZWN0LkoQImFjbWUuY29ycC5iYXNlIlIMbWF0Y2hl", + "ZFNjb3BlOhqSQRcKFTITTmFtZSBvZiB0aGUgYWN0aW9uLhrzBAoKQWN0aW9u", + "TWV0YRKnAgoHYWN0aW9ucxgBIAMoCzJJLmNlcmJvcy5yZXNwb25zZS52MS5D", + "aGVja1Jlc291cmNlU2V0UmVzcG9uc2UuTWV0YS5BY3Rpb25NZXRhLkFjdGlv", + "bnNFbnRyeULBAZJBvQEyT01ldGFkYXRhIGFib3V0IHRoZSBlZmZlY3QgY2Fs", + "Y3VsYXRlZCBmb3IgZWFjaCBhY3Rpb24gb24gdGhpcyByZXNvdXJjZSBpbnN0", + "YW5jZS5KansidmlldzoqIjp7Im1hdGNoZWRfcG9saWN5IjogImFsYnVtOm9i", + "amVjdDpkZWZhdWx0In0sImNvbW1lbnQiOnsibWF0Y2hlZF9wb2xpY3kiOiAi", + "YWxidW06b2JqZWN0OmRlZmF1bHQifX1SB2FjdGlvbnMSgwEKF2VmZmVjdGl2", + "ZV9kZXJpdmVkX3JvbGVzGAIgAygJQkuSQUgyO0Rlcml2ZWQgcm9sZXMgdGhh", + "dCB3ZXJlIGVmZmVjdGl2ZSBkdXJpbmcgcG9saWN5IGV2YWx1YXRpb24uSglb", + "Im93bmVyIl1SFWVmZmVjdGl2ZURlcml2ZWRSb2xlcxp4CgxBY3Rpb25zRW50", + "cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKAsyPC5jZXJib3Mu", + "cmVzcG9uc2UudjEuQ2hlY2tSZXNvdXJjZVNldFJlc3BvbnNlLk1ldGEuRWZm", + "ZWN0TWV0YVIFdmFsdWU6AjgBOjuSQTgKNjI0VW5pcXVlIHJlc291cmNlIGlu", + "c3RhbmNlIElEIHN1cHBsaWVkIGluIHRoZSByZXF1ZXN0LhqCAQoWUmVzb3Vy", + "Y2VJbnN0YW5jZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRJSCgV2YWx1ZRgC", + "IAEoCzI8LmNlcmJvcy5yZXNwb25zZS52MS5DaGVja1Jlc291cmNlU2V0UmVz", + "cG9uc2UuTWV0YS5BY3Rpb25NZXRhUgV2YWx1ZToCOAE6KZJBJgokMiJNZXRh", + "ZGF0YSBhYm91dCByZXF1ZXN0IGV2YWx1YXRpb24uGoIBChZSZXNvdXJjZUlu", + "c3RhbmNlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElIKBXZhbHVlGAIgASgL", + "MjwuY2VyYm9zLnJlc3BvbnNlLnYxLkNoZWNrUmVzb3VyY2VTZXRSZXNwb25z", + "ZS5BY3Rpb25FZmZlY3RNYXBSBXZhbHVlOgI4ATo5kkE2CjQyMlBvbGljeSBl", + "dmFsdWF0aW9uIHJlc3BvbnNlIGZvciBhIHNldCBvZiByZXNvdXJjZXMuIuUG", + "ChpDaGVja1Jlc291cmNlQmF0Y2hSZXNwb25zZRJvCgpyZXF1ZXN0X2lkGAEg", + "ASgJQlCSQU0yI1JlcXVlc3QgSUQgcHJvdmlkZWQgaW4gdGhlIHJlcXVlc3Qu", + "SiYiYzJkYjE3YjgtNGY5Zi00ZmIxLWFjZmQtOTE2MmEwMmJlNDJiIlIJcmVx", + "dWVzdElkErMBCgdyZXN1bHRzGAIgAygLMj4uY2VyYm9zLnJlc3BvbnNlLnYx", + "LkNoZWNrUmVzb3VyY2VCYXRjaFJlc3BvbnNlLkFjdGlvbkVmZmVjdE1hcEJZ", + "kkFWMhhSZXN1bHQgZm9yIGVhY2ggcmVzb3VyY2VKOlt7InJlc291cmNlSWQi", + "OiJYWDEyNSIsImFjdGlvbnMiOnsidmlldyI6IkVGRkVDVF9BTExPVyJ9fV1S", + "B3Jlc3VsdHMa4gMKD0FjdGlvbkVmZmVjdE1hcBI6CgtyZXNvdXJjZV9pZBgB", + "IAEoCUIZkkEWMgtSZXNvdXJjZSBJREoHIlhYMTI1IlIKcmVzb3VyY2VJZBKp", + "AQoHYWN0aW9ucxgCIAMoCzJLLmNlcmJvcy5yZXNwb25zZS52MS5DaGVja1Jl", + "c291cmNlQmF0Y2hSZXNwb25zZS5BY3Rpb25FZmZlY3RNYXAuQWN0aW9uc0Vu", + "dHJ5QkKSQT8yJE1hcHBpbmcgb2YgZWFjaCBhY3Rpb24gdG8gYW4gZWZmZWN0", + "LkoXeyJ2aWV3IjoiRUZGRUNUX0FMTE9XIn1SB2FjdGlvbnMSkAEKEXZhbGlk", + "YXRpb25fZXJyb3JzGAMgAygLMiEuY2VyYm9zLnNjaGVtYS52MS5WYWxpZGF0", + "aW9uRXJyb3JCQJJBPTI7TGlzdCBvZiB2YWxpZGF0aW9uIGVycm9ycyAoaWYg", + "c2NoZW1hIHZhbGlkYXRpb24gaXMgZW5hYmxlZClSEHZhbGlkYXRpb25FcnJv", + "cnMaVAoMQWN0aW9uc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5Ei4KBXZhbHVl", + "GAIgASgOMhguY2VyYm9zLmVmZmVjdC52MS5FZmZlY3RSBXZhbHVlOgI4ATo7", + "kkE4CjYyNFBvbGljeSBldmFsdWF0aW9uIHJlc3BvbnNlIGZvciBhIGJhdGNo", + "IG9mIHJlc291cmNlcy4ivhcKFkNoZWNrUmVzb3VyY2VzUmVzcG9uc2USbwoK", "cmVxdWVzdF9pZBgBIAEoCUJQkkFNMiNSZXF1ZXN0IElEIHByb3ZpZGVkIGlu", "IHRoZSByZXF1ZXN0LkomImMyZGIxN2I4LTRmOWYtNGZiMS1hY2ZkLTkxNjJh", - "MDJiZTQyYiJSCXJlcXVlc3RJZBIyCgZhY3Rpb24YAiABKAlCGpJBFzIGQWN0", - "aW9uSg0idmlldzpwdWJsaWMiUgZhY3Rpb24SSAoNcmVzb3VyY2Vfa2luZBgD", - "IAEoCUIjkkEgMg5SZXNvdXJjZSBraW5kLkoOImFsYnVtOm9iamVjdCJSDHJl", - "c291cmNlS2luZBJKCg5wb2xpY3lfdmVyc2lvbhgEIAEoCUIjkkEgMhNUaGUg", - "cG9saWN5IHZlcnNpb24uSgkiZGVmYXVsdCJSDXBvbGljeVZlcnNpb24SSgoG", - "ZmlsdGVyGAUgASgLMiUuY2VyYm9zLmVuZ2luZS52MS5QbGFuUmVzb3VyY2Vz", - "RmlsdGVyQguSQQgyBkZpbHRlclIGZmlsdGVyEn8KBG1ldGEYBiABKAsyLi5j", - "ZXJib3MucmVzcG9uc2UudjEuUGxhblJlc291cmNlc1Jlc3BvbnNlLk1ldGFC", - "O5JBODI2T3B0aW9uYWwgbWV0YWRhdGEgYWJvdXQgdGhlIHJlcXVlc3QgZXZh", - "bHVhdGlvbiBwcm9jZXNzUgRtZXRhEpABChF2YWxpZGF0aW9uX2Vycm9ycxgH", - "IAMoCzIhLmNlcmJvcy5zY2hlbWEudjEuVmFsaWRhdGlvbkVycm9yQkCSQT0y", - "O0xpc3Qgb2YgdmFsaWRhdGlvbiBlcnJvcnMgKGlmIHNjaGVtYSB2YWxpZGF0", - "aW9uIGlzIGVuYWJsZWQpUhB2YWxpZGF0aW9uRXJyb3JzElkKDmNlcmJvc19j", - "YWxsX2lkGAggASgJQjOSQTAyLkF1ZGl0IGxvZyBjYWxsIElEIGFzc29jaWF0", - "ZWQgd2l0aCB0aGlzIHJlcXVlc3RSDGNlcmJvc0NhbGxJZBr/AQoETWV0YRJd", - "CgxmaWx0ZXJfZGVidWcYASABKAlCOpJBNzI1RmlsdGVyIHRleHR1YWwgcmVw", - "cmVzZW50YXRpb24gZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy5SC2ZpbHRlckRl", - "YnVnEm0KDW1hdGNoZWRfc2NvcGUYAiABKAlCSJJBRTIxUG9saWN5IHNjb3Bl", - "IHRoYXQgbWF0Y2hlZCB0byBwcm9kdWNlIHRoaXMgZWZmZWN0LkoQImFjbWUu", - "Y29ycC5iYXNlIlIMbWF0Y2hlZFNjb3BlOimSQSYKJDIiTWV0YWRhdGEgYWJv", - "dXQgcmVxdWVzdCBldmFsdWF0aW9uLjo8kkE5CjcyNVJlc291cmNlcyBxdWVy", - "eSBwbGFuIHJlc3BvbnNlIGZvciBhIHNldCBvZiByZXNvdXJjZXMuIsgVChhD", - "aGVja1Jlc291cmNlU2V0UmVzcG9uc2USbwoKcmVxdWVzdF9pZBgBIAEoCUJQ", - "kkFNMiNSZXF1ZXN0IElEIHByb3ZpZGVkIGluIHRoZSByZXF1ZXN0LkomImMy", - "ZGIxN2I4LTRmOWYtNGZiMS1hY2ZkLTkxNjJhMDJiZTQyYiJSCXJlcXVlc3RJ", - "ZBLbAgoScmVzb3VyY2VfaW5zdGFuY2VzGAIgAygLMkMuY2VyYm9zLnJlc3Bv", - "bnNlLnYxLkNoZWNrUmVzb3VyY2VTZXRSZXNwb25zZS5SZXNvdXJjZUluc3Rh", - "bmNlc0VudHJ5QuYBkkHiATJLUmVzdWx0cyBmb3IgZWFjaCByZXNvdXJjZSBp", - "bnN0YW5jZSwga2V5ZWQgYnkgdGhlIElEIHN1cHBsaWVkIGluIHRoZSByZXF1", - "ZXN0SpIBeyJYWDEyNSI6eyJhY3Rpb25zIjp7InZpZXc6KiI6IkVGRkVDVF9B", - "TExPVyIsICJjb21tZW50IjogIkVGRkVDVF9BTExPVyJ9fSwgIlhYMjI1Ijp7", - "ImFjdGlvbnMiOnsidmlldzoqIjoiRUZGRUNUX0RFTlkiLCAiY29tbWVudCI6", - "ICJFRkZFQ1RfREVOWSJ9fX1SEXJlc291cmNlSW5zdGFuY2VzEoIBCgRtZXRh", - "GAMgASgLMjEuY2VyYm9zLnJlc3BvbnNlLnYxLkNoZWNrUmVzb3VyY2VTZXRS", - "ZXNwb25zZS5NZXRhQjuSQTgyNk9wdGlvbmFsIG1ldGFkYXRhIGFib3V0IHRo", - "ZSByZXF1ZXN0IGV2YWx1YXRpb24gcHJvY2Vzc1IEbWV0YRqLAwoPQWN0aW9u", - "RWZmZWN0TWFwEo4BCgdhY3Rpb25zGAEgAygLMkkuY2VyYm9zLnJlc3BvbnNl", - "LnYxLkNoZWNrUmVzb3VyY2VTZXRSZXNwb25zZS5BY3Rpb25FZmZlY3RNYXAu", - "QWN0aW9uc0VudHJ5QimSQSYyJE1hcHBpbmcgb2YgZWFjaCBhY3Rpb24gdG8g", - "YW4gZWZmZWN0LlIHYWN0aW9ucxKQAQoRdmFsaWRhdGlvbl9lcnJvcnMYAiAD", - "KAsyIS5jZXJib3Muc2NoZW1hLnYxLlZhbGlkYXRpb25FcnJvckJAkkE9MjtM", - "aXN0IG9mIHZhbGlkYXRpb24gZXJyb3JzIChpZiBzY2hlbWEgdmFsaWRhdGlv", - "biBpcyBlbmFibGVkKVIQdmFsaWRhdGlvbkVycm9ycxpUCgxBY3Rpb25zRW50", - "cnkSEAoDa2V5GAEgASgJUgNrZXkSLgoFdmFsdWUYAiABKA4yGC5jZXJib3Mu", - "ZWZmZWN0LnYxLkVmZmVjdFIFdmFsdWU6AjgBGokMCgRNZXRhEs8DChJyZXNv", - "dXJjZV9pbnN0YW5jZXMYASADKAsySC5jZXJib3MucmVzcG9uc2UudjEuQ2hl", - "Y2tSZXNvdXJjZVNldFJlc3BvbnNlLk1ldGEuUmVzb3VyY2VJbnN0YW5jZXNF", - "bnRyeULVApJB0QIyIk1ldGFkYXRhIGFib3V0IHJlc291cmNlIGluc3RhbmNl", - "cy5KqgJ7IlhYMTI1IjogeyJhY3Rpb25zIjogeyJ2aWV3OioiOnsibWF0Y2hl", - "ZF9wb2xpY3kiOiAiYWxidW06b2JqZWN0OmRlZmF1bHQifSwiY29tbWVudCI6", - "eyJtYXRjaGVkX3BvbGljeSI6ICJhbGJ1bTpvYmplY3Q6ZGVmYXVsdCJ9fSwg", - "ImVmZmVjdGl2ZV9kZXJpdmVkX3JvbGVzIjogWyJvd25lciJdfSwgIlhYMjI1", - "IjogeyJhY3Rpb25zIjogeyJ2aWV3OioiOnsibWF0Y2hlZF9wb2xpY3kiOiAi", - "YWxidW06b2JqZWN0OmRlZmF1bHQifSwiY29tbWVudCI6eyJtYXRjaGVkX3Bv", - "bGljeSI6ICJhbGJ1bTpvYmplY3Q6ZGVmYXVsdCJ9fX19UhFyZXNvdXJjZUlu", - "c3RhbmNlcxqIAgoKRWZmZWN0TWV0YRJvCg5tYXRjaGVkX3BvbGljeRgBIAEo", - "CUJIkkFFMitQb2xpY3kgdGhhdCBtYXRjaGVkIHRvIHByb2R1Y2UgdGhpcyBl", - "ZmZlY3QuShYiYWxidW06b2JqZWN0OmRlZmF1bHQiUg1tYXRjaGVkUG9saWN5", - "Em0KDW1hdGNoZWRfc2NvcGUYAiABKAlCSJJBRTIxUG9saWN5IHNjb3BlIHRo", - "YXQgbWF0Y2hlZCB0byBwcm9kdWNlIHRoaXMgZWZmZWN0LkoQImFjbWUuY29y", - "cC5iYXNlIlIMbWF0Y2hlZFNjb3BlOhqSQRcKFTITTmFtZSBvZiB0aGUgYWN0", - "aW9uLhrzBAoKQWN0aW9uTWV0YRKnAgoHYWN0aW9ucxgBIAMoCzJJLmNlcmJv", - "cy5yZXNwb25zZS52MS5DaGVja1Jlc291cmNlU2V0UmVzcG9uc2UuTWV0YS5B", - "Y3Rpb25NZXRhLkFjdGlvbnNFbnRyeULBAZJBvQEyT01ldGFkYXRhIGFib3V0", - "IHRoZSBlZmZlY3QgY2FsY3VsYXRlZCBmb3IgZWFjaCBhY3Rpb24gb24gdGhp", - "cyByZXNvdXJjZSBpbnN0YW5jZS5KansidmlldzoqIjp7Im1hdGNoZWRfcG9s", - "aWN5IjogImFsYnVtOm9iamVjdDpkZWZhdWx0In0sImNvbW1lbnQiOnsibWF0", - "Y2hlZF9wb2xpY3kiOiAiYWxidW06b2JqZWN0OmRlZmF1bHQifX1SB2FjdGlv", - "bnMSgwEKF2VmZmVjdGl2ZV9kZXJpdmVkX3JvbGVzGAIgAygJQkuSQUgyO0Rl", - "cml2ZWQgcm9sZXMgdGhhdCB3ZXJlIGVmZmVjdGl2ZSBkdXJpbmcgcG9saWN5", - "IGV2YWx1YXRpb24uSglbIm93bmVyIl1SFWVmZmVjdGl2ZURlcml2ZWRSb2xl", - "cxp4CgxBY3Rpb25zRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUY", - "AiABKAsyPC5jZXJib3MucmVzcG9uc2UudjEuQ2hlY2tSZXNvdXJjZVNldFJl", - "c3BvbnNlLk1ldGEuRWZmZWN0TWV0YVIFdmFsdWU6AjgBOjuSQTgKNjI0VW5p", - "cXVlIHJlc291cmNlIGluc3RhbmNlIElEIHN1cHBsaWVkIGluIHRoZSByZXF1", - "ZXN0LhqCAQoWUmVzb3VyY2VJbnN0YW5jZXNFbnRyeRIQCgNrZXkYASABKAlS", - "A2tleRJSCgV2YWx1ZRgCIAEoCzI8LmNlcmJvcy5yZXNwb25zZS52MS5DaGVj", - "a1Jlc291cmNlU2V0UmVzcG9uc2UuTWV0YS5BY3Rpb25NZXRhUgV2YWx1ZToC", - "OAE6KZJBJgokMiJNZXRhZGF0YSBhYm91dCByZXF1ZXN0IGV2YWx1YXRpb24u", - "GoIBChZSZXNvdXJjZUluc3RhbmNlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5", - "ElIKBXZhbHVlGAIgASgLMjwuY2VyYm9zLnJlc3BvbnNlLnYxLkNoZWNrUmVz", - "b3VyY2VTZXRSZXNwb25zZS5BY3Rpb25FZmZlY3RNYXBSBXZhbHVlOgI4ATo5", - "kkE2CjQyMlBvbGljeSBldmFsdWF0aW9uIHJlc3BvbnNlIGZvciBhIHNldCBv", - "ZiByZXNvdXJjZXMuIuUGChpDaGVja1Jlc291cmNlQmF0Y2hSZXNwb25zZRJv", - "CgpyZXF1ZXN0X2lkGAEgASgJQlCSQU0yI1JlcXVlc3QgSUQgcHJvdmlkZWQg", - "aW4gdGhlIHJlcXVlc3QuSiYiYzJkYjE3YjgtNGY5Zi00ZmIxLWFjZmQtOTE2", - "MmEwMmJlNDJiIlIJcmVxdWVzdElkErMBCgdyZXN1bHRzGAIgAygLMj4uY2Vy", - "Ym9zLnJlc3BvbnNlLnYxLkNoZWNrUmVzb3VyY2VCYXRjaFJlc3BvbnNlLkFj", - "dGlvbkVmZmVjdE1hcEJZkkFWMhhSZXN1bHQgZm9yIGVhY2ggcmVzb3VyY2VK", - "Olt7InJlc291cmNlSWQiOiJYWDEyNSIsImFjdGlvbnMiOnsidmlldyI6IkVG", - "RkVDVF9BTExPVyJ9fV1SB3Jlc3VsdHMa4gMKD0FjdGlvbkVmZmVjdE1hcBI6", - "CgtyZXNvdXJjZV9pZBgBIAEoCUIZkkEWMgtSZXNvdXJjZSBJREoHIlhYMTI1", - "IlIKcmVzb3VyY2VJZBKpAQoHYWN0aW9ucxgCIAMoCzJLLmNlcmJvcy5yZXNw", - "b25zZS52MS5DaGVja1Jlc291cmNlQmF0Y2hSZXNwb25zZS5BY3Rpb25FZmZl", - "Y3RNYXAuQWN0aW9uc0VudHJ5QkKSQT8yJE1hcHBpbmcgb2YgZWFjaCBhY3Rp", - "b24gdG8gYW4gZWZmZWN0LkoXeyJ2aWV3IjoiRUZGRUNUX0FMTE9XIn1SB2Fj", - "dGlvbnMSkAEKEXZhbGlkYXRpb25fZXJyb3JzGAMgAygLMiEuY2VyYm9zLnNj", - "aGVtYS52MS5WYWxpZGF0aW9uRXJyb3JCQJJBPTI7TGlzdCBvZiB2YWxpZGF0", - "aW9uIGVycm9ycyAoaWYgc2NoZW1hIHZhbGlkYXRpb24gaXMgZW5hYmxlZClS", - "EHZhbGlkYXRpb25FcnJvcnMaVAoMQWN0aW9uc0VudHJ5EhAKA2tleRgBIAEo", - "CVIDa2V5Ei4KBXZhbHVlGAIgASgOMhguY2VyYm9zLmVmZmVjdC52MS5FZmZl", - "Y3RSBXZhbHVlOgI4ATo7kkE4CjYyNFBvbGljeSBldmFsdWF0aW9uIHJlc3Bv", - "bnNlIGZvciBhIGJhdGNoIG9mIHJlc291cmNlcy4ivhcKFkNoZWNrUmVzb3Vy", - "Y2VzUmVzcG9uc2USbwoKcmVxdWVzdF9pZBgBIAEoCUJQkkFNMiNSZXF1ZXN0", - "IElEIHByb3ZpZGVkIGluIHRoZSByZXF1ZXN0LkomImMyZGIxN2I4LTRmOWYt", - "NGZiMS1hY2ZkLTkxNjJhMDJiZTQyYiJSCXJlcXVlc3RJZBLjAQoHcmVzdWx0", - "cxgCIAMoCzI2LmNlcmJvcy5yZXNwb25zZS52MS5DaGVja1Jlc291cmNlc1Jl", - "c3BvbnNlLlJlc3VsdEVudHJ5QpABkkGMATIYUmVzdWx0IGZvciBlYWNoIHJl", - "c291cmNlSnBbeyJyZXNvdXJjZSI6IHsiSWQiOiJYWDEyNSIsICJraW5kIjoi", - "YWxidW06b2JqZWN0In0sICJhY3Rpb25zIjp7InZpZXciOiJFRkZFQ1RfQUxM", - "T1ciLCJjb21tZW50IjoiRUZGRUNUX0RFTlkifX1dUgdyZXN1bHRzElkKDmNl", - "cmJvc19jYWxsX2lkGAMgASgJQjOSQTAyLkF1ZGl0IGxvZyBjYWxsIElEIGFz", - "c29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3RSDGNlcmJvc0NhbGxJZBq9EwoL", - "UmVzdWx0RW50cnkSWwoIcmVzb3VyY2UYASABKAsyPy5jZXJib3MucmVzcG9u", - "c2UudjEuQ2hlY2tSZXNvdXJjZXNSZXNwb25zZS5SZXN1bHRFbnRyeS5SZXNv", - "dXJjZVIIcmVzb3VyY2USoQEKB2FjdGlvbnMYAiADKAsyQy5jZXJib3MucmVz", - "cG9uc2UudjEuQ2hlY2tSZXNvdXJjZXNSZXNwb25zZS5SZXN1bHRFbnRyeS5B", - "Y3Rpb25zRW50cnlCQpJBPzIkTWFwcGluZyBvZiBlYWNoIGFjdGlvbiB0byBh", - "biBlZmZlY3QuShd7InZpZXciOiJFRkZFQ1RfQUxMT1cifVIHYWN0aW9ucxKQ", - "AQoRdmFsaWRhdGlvbl9lcnJvcnMYAyADKAsyIS5jZXJib3Muc2NoZW1hLnYx", - "LlZhbGlkYXRpb25FcnJvckJAkkE9MjtMaXN0IG9mIHZhbGlkYXRpb24gZXJy", - "b3JzIChpZiBzY2hlbWEgdmFsaWRhdGlvbiBpcyBlbmFibGVkKVIQdmFsaWRh", - "dGlvbkVycm9ycxKYAgoEbWV0YRgEIAEoCzI7LmNlcmJvcy5yZXNwb25zZS52", - "MS5DaGVja1Jlc291cmNlc1Jlc3BvbnNlLlJlc3VsdEVudHJ5Lk1ldGFCxgGS", - "QcIBMiBNZXRhZGF0YSBhYm91dCBwb2xpY3kgZXZhbHVhdGlvbkqdAXsiYWN0", - "aW9ucyI6IHsidmlldzoqIjp7Im1hdGNoZWRfcG9saWN5IjogImFsYnVtOm9i", - "amVjdDpkZWZhdWx0In0sImNvbW1lbnQiOnsibWF0Y2hlZF9wb2xpY3kiOiAi", - "YWxidW06b2JqZWN0OmRlZmF1bHQifX0sICJlZmZlY3RpdmVfZGVyaXZlZF9y", - "b2xlcyI6IFsib3duZXIiXX1SBG1ldGES9gEKB291dHB1dHMYBSADKAsyHS5j", - "ZXJib3MuZW5naW5lLnYxLk91dHB1dEVudHJ5QrwBkkG4ATIsT3V0cHV0IGZv", - "ciBlYWNoIHJ1bGUgd2l0aCBvdXRwdXRzIGNvbmZpZ3VyZWRKhwFbeyJzcmMi", - "OiAicmVzb3VyY2UuZXhwZW5zZS52MS9hY21lI3J1bGUtMDAxIiwgInZhbCI6", - "ICJ2aWV3X2FsbG93ZWQ6YWxpY2UifSwgeyJzcmMiOiAicmVzb3VyY2UuZXhw", - "ZW5zZS52MS9hY21lI3J1bGUtMDAyIiwgInZhbCI6ICJmb28ifV1SB291dHB1", - "dHMavAQKCFJlc291cmNlEjkKAmlkGAEgASgJQimSQSYyG0lEIG9mIHRoZSBy", - "ZXNvdXJjZSBpbnN0YW5jZUoHIlhYMTI1IlICaWQSUQoEa2luZBgCIAEoCUI9", - "kkE6MilOYW1lIG9mIHRoZSByZXNvdXJjZSBraW5kIGJlaW5nIGFjY2Vzc2Vk", - "LkoNImFsYnVtOnBob3RvIlIEa2luZBLFAQoOcG9saWN5X3ZlcnNpb24YAyAB", - "KAlCnQGSQZkBMnxUaGUgcG9saWN5IHZlcnNpb24gdG8gdXNlIHRvIGV2YWx1", - "YXRlIHRoaXMgcmVxdWVzdC4gSWYgbm90IHNwZWNpZmllZCwgd2lsbCBkZWZh", - "dWx0IHRvIHRoZSBzZXJ2ZXItY29uZmlndXJlZCBkZWZhdWx0IHZlcnNpb24u", - "SgkiZGVmYXVsdCKKAQ1eW1s6d29yZDpdXSokUg1wb2xpY3lWZXJzaW9uEtkB", - "CgVzY29wZRgEIAEoCULCAZJBvgEyfUEgZG90LXNlcGFyYXRlZCBzY29wZSB0", - "aGF0IGRlc2NyaWJlcyB0aGUgaGllcmFyY2h5IHRoaXMgcmVzb3VyY2UgYmVs", - "b25ncyB0by4gVGhpcyBpcyB1c2VkIGZvciBkZXRlcm1pbmluZyBwb2xpY3kg", - "aW5oZXJpdGFuY2UuSgsiYWNtZS5jb3JwIooBL14oW1s6YWxudW06XV1bWzp3", - "b3JkOl1cLV0qKFwuW1s6d29yZDpdXC1dKikqKSokUgVzY29wZRrwBgoETWV0", - "YRKmAgoHYWN0aW9ucxgBIAMoCzJILmNlcmJvcy5yZXNwb25zZS52MS5DaGVj", - "a1Jlc291cmNlc1Jlc3BvbnNlLlJlc3VsdEVudHJ5Lk1ldGEuQWN0aW9uc0Vu", - "dHJ5QsEBkkG9ATJPTWV0YWRhdGEgYWJvdXQgdGhlIGVmZmVjdCBjYWxjdWxh", - "dGVkIGZvciBlYWNoIGFjdGlvbiBvbiB0aGlzIHJlc291cmNlIGluc3RhbmNl", - "LkpqeyJ2aWV3OioiOnsibWF0Y2hlZF9wb2xpY3kiOiAiYWxidW06b2JqZWN0", - "OmRlZmF1bHQifSwiY29tbWVudCI6eyJtYXRjaGVkX3BvbGljeSI6ICJhbGJ1", - "bTpvYmplY3Q6ZGVmYXVsdCJ9fVIHYWN0aW9ucxKDAQoXZWZmZWN0aXZlX2Rl", - "cml2ZWRfcm9sZXMYAiADKAlCS5JBSDI7RGVyaXZlZCByb2xlcyB0aGF0IHdl", - "cmUgZWZmZWN0aXZlIGR1cmluZyBwb2xpY3kgZXZhbHVhdGlvbi5KCVsib3du", - "ZXIiXVIVZWZmZWN0aXZlRGVyaXZlZFJvbGVzGogCCgpFZmZlY3RNZXRhEm8K", - "Dm1hdGNoZWRfcG9saWN5GAEgASgJQkiSQUUyK1BvbGljeSB0aGF0IG1hdGNo", - "ZWQgdG8gcHJvZHVjZSB0aGlzIGVmZmVjdC5KFiJhbGJ1bTpvYmplY3Q6ZGVm", - "YXVsdCJSDW1hdGNoZWRQb2xpY3kSbQoNbWF0Y2hlZF9zY29wZRgCIAEoCUJI", - "kkFFMjFQb2xpY3kgc2NvcGUgdGhhdCBtYXRjaGVkIHRvIHByb2R1Y2UgdGhp", - "cyBlZmZlY3QuShAiYWNtZS5jb3JwLmJhc2UiUgxtYXRjaGVkU2NvcGU6GpJB", - "FwoVMhNOYW1lIG9mIHRoZSBhY3Rpb24uGoIBCgxBY3Rpb25zRW50cnkSEAoD", - "a2V5GAEgASgJUgNrZXkSXAoFdmFsdWUYAiABKAsyRi5jZXJib3MucmVzcG9u", - "c2UudjEuQ2hlY2tSZXNvdXJjZXNSZXNwb25zZS5SZXN1bHRFbnRyeS5NZXRh", - "LkVmZmVjdE1ldGFSBXZhbHVlOgI4ATopkkEmCiQyIk1ldGFkYXRhIGFib3V0", - "IHJlcXVlc3QgZXZhbHVhdGlvbi4aVAoMQWN0aW9uc0VudHJ5EhAKA2tleRgB", - "IAEoCVIDa2V5Ei4KBXZhbHVlGAIgASgOMhguY2VyYm9zLmVmZmVjdC52MS5F", - "ZmZlY3RSBXZhbHVlOgI4AToykkEvCi0yK1Jlc3BvbnNlIGZyb20gdGhlIGNo", - "ZWNrIHJlc291cmNlcyBBUEkgY2FsbC4iywIKEVBsYXlncm91bmRGYWlsdXJl", - "EkMKBmVycm9ycxgBIAMoCzIrLmNlcmJvcy5yZXNwb25zZS52MS5QbGF5Z3Jv", - "dW5kRmFpbHVyZS5FcnJvclIGZXJyb3JzGlQKDEVycm9yRGV0YWlscxISCgRs", - "aW5lGAEgASgNUgRsaW5lEhYKBmNvbHVtbhgCIAEoDVIGY29sdW1uEhgKB2Nv", - "bnRleHQYAyABKAlSB2NvbnRleHQafwoFRXJyb3ISEgoEZmlsZRgBIAEoCVIE", - "ZmlsZRIUCgVlcnJvchgCIAEoCVIFZXJyb3ISTAoHZGV0YWlscxgDIAEoCzIy", - "LmNlcmJvcy5yZXNwb25zZS52MS5QbGF5Z3JvdW5kRmFpbHVyZS5FcnJvckRl", - "dGFpbHNSB2RldGFpbHM6GpJBFwoVMhNQbGF5Z3JvdW5kIHJlc3BvbnNlIugB", - "ChpQbGF5Z3JvdW5kVmFsaWRhdGVSZXNwb25zZRIjCg1wbGF5Z3JvdW5kX2lk", - "GAEgASgJUgxwbGF5Z3JvdW5kSWQSQQoHZmFpbHVyZRgCIAEoCzIlLmNlcmJv", - "cy5yZXNwb25zZS52MS5QbGF5Z3JvdW5kRmFpbHVyZUgAUgdmYWlsdXJlEjIK", - "B3N1Y2Nlc3MYAyABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFIHc3Vj", - "Y2VzczojkkEgCh4yHFBsYXlncm91bmQgdmFsaWRhdGUgcmVzcG9uc2VCCQoH", - "b3V0Y29tZSLIAgoWUGxheWdyb3VuZFRlc3RSZXNwb25zZRIjCg1wbGF5Z3Jv", - "dW5kX2lkGAEgASgJUgxwbGF5Z3JvdW5kSWQSQQoHZmFpbHVyZRgCIAEoCzIl", - "LmNlcmJvcy5yZXNwb25zZS52MS5QbGF5Z3JvdW5kRmFpbHVyZUgAUgdmYWls", - "dXJlElIKB3N1Y2Nlc3MYAyABKAsyNi5jZXJib3MucmVzcG9uc2UudjEuUGxh", - "eWdyb3VuZFRlc3RSZXNwb25zZS5UZXN0UmVzdWx0c0gAUgdzdWNjZXNzGkYK", - "C1Rlc3RSZXN1bHRzEjcKB3Jlc3VsdHMYASABKAsyHS5jZXJib3MucG9saWN5", - "LnYxLlRlc3RSZXN1bHRzUgdyZXN1bHRzOh+SQRwKGjIYUGxheWdyb3VuZCB0", - "ZXN0IHJlc3BvbnNlQgkKB291dGNvbWUiuQYKGlBsYXlncm91bmRFdmFsdWF0", - "ZVJlc3BvbnNlEiMKDXBsYXlncm91bmRfaWQYASABKAlSDHBsYXlncm91bmRJ", + "MDJiZTQyYiJSCXJlcXVlc3RJZBLjAQoHcmVzdWx0cxgCIAMoCzI2LmNlcmJv", + "cy5yZXNwb25zZS52MS5DaGVja1Jlc291cmNlc1Jlc3BvbnNlLlJlc3VsdEVu", + "dHJ5QpABkkGMATIYUmVzdWx0IGZvciBlYWNoIHJlc291cmNlSnBbeyJyZXNv", + "dXJjZSI6IHsiSWQiOiJYWDEyNSIsICJraW5kIjoiYWxidW06b2JqZWN0In0s", + "ICJhY3Rpb25zIjp7InZpZXciOiJFRkZFQ1RfQUxMT1ciLCJjb21tZW50Ijoi", + "RUZGRUNUX0RFTlkifX1dUgdyZXN1bHRzElkKDmNlcmJvc19jYWxsX2lkGAMg", + "ASgJQjOSQTAyLkF1ZGl0IGxvZyBjYWxsIElEIGFzc29jaWF0ZWQgd2l0aCB0", + "aGlzIHJlcXVlc3RSDGNlcmJvc0NhbGxJZBq9EwoLUmVzdWx0RW50cnkSWwoI", + "cmVzb3VyY2UYASABKAsyPy5jZXJib3MucmVzcG9uc2UudjEuQ2hlY2tSZXNv", + "dXJjZXNSZXNwb25zZS5SZXN1bHRFbnRyeS5SZXNvdXJjZVIIcmVzb3VyY2US", + "oQEKB2FjdGlvbnMYAiADKAsyQy5jZXJib3MucmVzcG9uc2UudjEuQ2hlY2tS", + "ZXNvdXJjZXNSZXNwb25zZS5SZXN1bHRFbnRyeS5BY3Rpb25zRW50cnlCQpJB", + "PzIkTWFwcGluZyBvZiBlYWNoIGFjdGlvbiB0byBhbiBlZmZlY3QuShd7InZp", + "ZXciOiJFRkZFQ1RfQUxMT1cifVIHYWN0aW9ucxKQAQoRdmFsaWRhdGlvbl9l", + "cnJvcnMYAyADKAsyIS5jZXJib3Muc2NoZW1hLnYxLlZhbGlkYXRpb25FcnJv", + "ckJAkkE9MjtMaXN0IG9mIHZhbGlkYXRpb24gZXJyb3JzIChpZiBzY2hlbWEg", + "dmFsaWRhdGlvbiBpcyBlbmFibGVkKVIQdmFsaWRhdGlvbkVycm9ycxKYAgoE", + "bWV0YRgEIAEoCzI7LmNlcmJvcy5yZXNwb25zZS52MS5DaGVja1Jlc291cmNl", + "c1Jlc3BvbnNlLlJlc3VsdEVudHJ5Lk1ldGFCxgGSQcIBMiBNZXRhZGF0YSBh", + "Ym91dCBwb2xpY3kgZXZhbHVhdGlvbkqdAXsiYWN0aW9ucyI6IHsidmlldzoq", + "Ijp7Im1hdGNoZWRfcG9saWN5IjogImFsYnVtOm9iamVjdDpkZWZhdWx0In0s", + "ImNvbW1lbnQiOnsibWF0Y2hlZF9wb2xpY3kiOiAiYWxidW06b2JqZWN0OmRl", + "ZmF1bHQifX0sICJlZmZlY3RpdmVfZGVyaXZlZF9yb2xlcyI6IFsib3duZXIi", + "XX1SBG1ldGES9gEKB291dHB1dHMYBSADKAsyHS5jZXJib3MuZW5naW5lLnYx", + "Lk91dHB1dEVudHJ5QrwBkkG4ATIsT3V0cHV0IGZvciBlYWNoIHJ1bGUgd2l0", + "aCBvdXRwdXRzIGNvbmZpZ3VyZWRKhwFbeyJzcmMiOiAicmVzb3VyY2UuZXhw", + "ZW5zZS52MS9hY21lI3J1bGUtMDAxIiwgInZhbCI6ICJ2aWV3X2FsbG93ZWQ6", + "YWxpY2UifSwgeyJzcmMiOiAicmVzb3VyY2UuZXhwZW5zZS52MS9hY21lI3J1", + "bGUtMDAyIiwgInZhbCI6ICJmb28ifV1SB291dHB1dHMavAQKCFJlc291cmNl", + "EjkKAmlkGAEgASgJQimSQSYyG0lEIG9mIHRoZSByZXNvdXJjZSBpbnN0YW5j", + "ZUoHIlhYMTI1IlICaWQSUQoEa2luZBgCIAEoCUI9kkE6MilOYW1lIG9mIHRo", + "ZSByZXNvdXJjZSBraW5kIGJlaW5nIGFjY2Vzc2VkLkoNImFsYnVtOnBob3Rv", + "IlIEa2luZBLFAQoOcG9saWN5X3ZlcnNpb24YAyABKAlCnQGSQZkBMnxUaGUg", + "cG9saWN5IHZlcnNpb24gdG8gdXNlIHRvIGV2YWx1YXRlIHRoaXMgcmVxdWVz", + "dC4gSWYgbm90IHNwZWNpZmllZCwgd2lsbCBkZWZhdWx0IHRvIHRoZSBzZXJ2", + "ZXItY29uZmlndXJlZCBkZWZhdWx0IHZlcnNpb24uSgkiZGVmYXVsdCKKAQ1e", + "W1s6d29yZDpdXSokUg1wb2xpY3lWZXJzaW9uEtkBCgVzY29wZRgEIAEoCULC", + "AZJBvgEyfUEgZG90LXNlcGFyYXRlZCBzY29wZSB0aGF0IGRlc2NyaWJlcyB0", + "aGUgaGllcmFyY2h5IHRoaXMgcmVzb3VyY2UgYmVsb25ncyB0by4gVGhpcyBp", + "cyB1c2VkIGZvciBkZXRlcm1pbmluZyBwb2xpY3kgaW5oZXJpdGFuY2UuSgsi", + "YWNtZS5jb3JwIooBL14oW1s6YWxudW06XV1bWzp3b3JkOl1cLV0qKFwuW1s6", + "d29yZDpdXC1dKikqKSokUgVzY29wZRrwBgoETWV0YRKmAgoHYWN0aW9ucxgB", + "IAMoCzJILmNlcmJvcy5yZXNwb25zZS52MS5DaGVja1Jlc291cmNlc1Jlc3Bv", + "bnNlLlJlc3VsdEVudHJ5Lk1ldGEuQWN0aW9uc0VudHJ5QsEBkkG9ATJPTWV0", + "YWRhdGEgYWJvdXQgdGhlIGVmZmVjdCBjYWxjdWxhdGVkIGZvciBlYWNoIGFj", + "dGlvbiBvbiB0aGlzIHJlc291cmNlIGluc3RhbmNlLkpqeyJ2aWV3OioiOnsi", + "bWF0Y2hlZF9wb2xpY3kiOiAiYWxidW06b2JqZWN0OmRlZmF1bHQifSwiY29t", + "bWVudCI6eyJtYXRjaGVkX3BvbGljeSI6ICJhbGJ1bTpvYmplY3Q6ZGVmYXVs", + "dCJ9fVIHYWN0aW9ucxKDAQoXZWZmZWN0aXZlX2Rlcml2ZWRfcm9sZXMYAiAD", + "KAlCS5JBSDI7RGVyaXZlZCByb2xlcyB0aGF0IHdlcmUgZWZmZWN0aXZlIGR1", + "cmluZyBwb2xpY3kgZXZhbHVhdGlvbi5KCVsib3duZXIiXVIVZWZmZWN0aXZl", + "RGVyaXZlZFJvbGVzGogCCgpFZmZlY3RNZXRhEm8KDm1hdGNoZWRfcG9saWN5", + "GAEgASgJQkiSQUUyK1BvbGljeSB0aGF0IG1hdGNoZWQgdG8gcHJvZHVjZSB0", + "aGlzIGVmZmVjdC5KFiJhbGJ1bTpvYmplY3Q6ZGVmYXVsdCJSDW1hdGNoZWRQ", + "b2xpY3kSbQoNbWF0Y2hlZF9zY29wZRgCIAEoCUJIkkFFMjFQb2xpY3kgc2Nv", + "cGUgdGhhdCBtYXRjaGVkIHRvIHByb2R1Y2UgdGhpcyBlZmZlY3QuShAiYWNt", + "ZS5jb3JwLmJhc2UiUgxtYXRjaGVkU2NvcGU6GpJBFwoVMhNOYW1lIG9mIHRo", + "ZSBhY3Rpb24uGoIBCgxBY3Rpb25zRW50cnkSEAoDa2V5GAEgASgJUgNrZXkS", + "XAoFdmFsdWUYAiABKAsyRi5jZXJib3MucmVzcG9uc2UudjEuQ2hlY2tSZXNv", + "dXJjZXNSZXNwb25zZS5SZXN1bHRFbnRyeS5NZXRhLkVmZmVjdE1ldGFSBXZh", + "bHVlOgI4ATopkkEmCiQyIk1ldGFkYXRhIGFib3V0IHJlcXVlc3QgZXZhbHVh", + "dGlvbi4aVAoMQWN0aW9uc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5Ei4KBXZh", + "bHVlGAIgASgOMhguY2VyYm9zLmVmZmVjdC52MS5FZmZlY3RSBXZhbHVlOgI4", + "AToykkEvCi0yK1Jlc3BvbnNlIGZyb20gdGhlIGNoZWNrIHJlc291cmNlcyBB", + "UEkgY2FsbC4iywIKEVBsYXlncm91bmRGYWlsdXJlEkMKBmVycm9ycxgBIAMo", + "CzIrLmNlcmJvcy5yZXNwb25zZS52MS5QbGF5Z3JvdW5kRmFpbHVyZS5FcnJv", + "clIGZXJyb3JzGlQKDEVycm9yRGV0YWlscxISCgRsaW5lGAEgASgNUgRsaW5l", + "EhYKBmNvbHVtbhgCIAEoDVIGY29sdW1uEhgKB2NvbnRleHQYAyABKAlSB2Nv", + "bnRleHQafwoFRXJyb3ISEgoEZmlsZRgBIAEoCVIEZmlsZRIUCgVlcnJvchgC", + "IAEoCVIFZXJyb3ISTAoHZGV0YWlscxgDIAEoCzIyLmNlcmJvcy5yZXNwb25z", + "ZS52MS5QbGF5Z3JvdW5kRmFpbHVyZS5FcnJvckRldGFpbHNSB2RldGFpbHM6", + "GpJBFwoVMhNQbGF5Z3JvdW5kIHJlc3BvbnNlIugBChpQbGF5Z3JvdW5kVmFs", + "aWRhdGVSZXNwb25zZRIjCg1wbGF5Z3JvdW5kX2lkGAEgASgJUgxwbGF5Z3Jv", + "dW5kSWQSQQoHZmFpbHVyZRgCIAEoCzIlLmNlcmJvcy5yZXNwb25zZS52MS5Q", + "bGF5Z3JvdW5kRmFpbHVyZUgAUgdmYWlsdXJlEjIKB3N1Y2Nlc3MYAyABKAsy", + "Fi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFIHc3VjY2VzczojkkEgCh4yHFBs", + "YXlncm91bmQgdmFsaWRhdGUgcmVzcG9uc2VCCQoHb3V0Y29tZSLIAgoWUGxh", + "eWdyb3VuZFRlc3RSZXNwb25zZRIjCg1wbGF5Z3JvdW5kX2lkGAEgASgJUgxw", + "bGF5Z3JvdW5kSWQSQQoHZmFpbHVyZRgCIAEoCzIlLmNlcmJvcy5yZXNwb25z", + "ZS52MS5QbGF5Z3JvdW5kRmFpbHVyZUgAUgdmYWlsdXJlElIKB3N1Y2Nlc3MY", + "AyABKAsyNi5jZXJib3MucmVzcG9uc2UudjEuUGxheWdyb3VuZFRlc3RSZXNw", + "b25zZS5UZXN0UmVzdWx0c0gAUgdzdWNjZXNzGkYKC1Rlc3RSZXN1bHRzEjcK", + "B3Jlc3VsdHMYASABKAsyHS5jZXJib3MucG9saWN5LnYxLlRlc3RSZXN1bHRz", + "UgdyZXN1bHRzOh+SQRwKGjIYUGxheWdyb3VuZCB0ZXN0IHJlc3BvbnNlQgkK", + "B291dGNvbWUiuQYKGlBsYXlncm91bmRFdmFsdWF0ZVJlc3BvbnNlEiMKDXBs", + "YXlncm91bmRfaWQYASABKAlSDHBsYXlncm91bmRJZBJBCgdmYWlsdXJlGAIg", + "ASgLMiUuY2VyYm9zLnJlc3BvbnNlLnYxLlBsYXlncm91bmRGYWlsdXJlSABS", + "B2ZhaWx1cmUSWQoHc3VjY2VzcxgDIAEoCzI9LmNlcmJvcy5yZXNwb25zZS52", + "MS5QbGF5Z3JvdW5kRXZhbHVhdGVSZXNwb25zZS5FdmFsUmVzdWx0TGlzdEgA", + "UgdzdWNjZXNzGv4BCgpFdmFsUmVzdWx0EhYKBmFjdGlvbhgBIAEoCVIGYWN0", + "aW9uEjAKBmVmZmVjdBgCIAEoDjIYLmNlcmJvcy5lZmZlY3QudjEuRWZmZWN0", + "UgZlZmZlY3QSFgoGcG9saWN5GAMgASgJUgZwb2xpY3kSOgoXZWZmZWN0aXZl", + "X2Rlcml2ZWRfcm9sZXMYBCADKAlCAhgBUhVlZmZlY3RpdmVEZXJpdmVkUm9s", + "ZXMSUgoRdmFsaWRhdGlvbl9lcnJvcnMYBSADKAsyIS5jZXJib3Muc2NoZW1h", + "LnYxLlZhbGlkYXRpb25FcnJvckICGAFSEHZhbGlkYXRpb25FcnJvcnMapgIK", + "DkV2YWxSZXN1bHRMaXN0ElMKB3Jlc3VsdHMYASADKAsyOS5jZXJib3MucmVz", + "cG9uc2UudjEuUGxheWdyb3VuZEV2YWx1YXRlUmVzcG9uc2UuRXZhbFJlc3Vs", + "dFIHcmVzdWx0cxI2ChdlZmZlY3RpdmVfZGVyaXZlZF9yb2xlcxgCIAMoCVIV", + "ZWZmZWN0aXZlRGVyaXZlZFJvbGVzEk4KEXZhbGlkYXRpb25fZXJyb3JzGAMg", + "AygLMiEuY2VyYm9zLnNjaGVtYS52MS5WYWxpZGF0aW9uRXJyb3JSEHZhbGlk", + "YXRpb25FcnJvcnMSNwoHb3V0cHV0cxgEIAMoCzIdLmNlcmJvcy5lbmdpbmUu", + "djEuT3V0cHV0RW50cnlSB291dHB1dHM6I5JBIAoeMhxQbGF5Z3JvdW5kIGV2", + "YWx1YXRlIHJlc3BvbnNlQgkKB291dGNvbWUimwQKF1BsYXlncm91bmRQcm94", + "eVJlc3BvbnNlEiMKDXBsYXlncm91bmRfaWQYASABKAlSDHBsYXlncm91bmRJ", "ZBJBCgdmYWlsdXJlGAIgASgLMiUuY2VyYm9zLnJlc3BvbnNlLnYxLlBsYXln", - "cm91bmRGYWlsdXJlSABSB2ZhaWx1cmUSWQoHc3VjY2VzcxgDIAEoCzI9LmNl", - "cmJvcy5yZXNwb25zZS52MS5QbGF5Z3JvdW5kRXZhbHVhdGVSZXNwb25zZS5F", - "dmFsUmVzdWx0TGlzdEgAUgdzdWNjZXNzGv4BCgpFdmFsUmVzdWx0EhYKBmFj", - "dGlvbhgBIAEoCVIGYWN0aW9uEjAKBmVmZmVjdBgCIAEoDjIYLmNlcmJvcy5l", - "ZmZlY3QudjEuRWZmZWN0UgZlZmZlY3QSFgoGcG9saWN5GAMgASgJUgZwb2xp", - "Y3kSOgoXZWZmZWN0aXZlX2Rlcml2ZWRfcm9sZXMYBCADKAlCAhgBUhVlZmZl", - "Y3RpdmVEZXJpdmVkUm9sZXMSUgoRdmFsaWRhdGlvbl9lcnJvcnMYBSADKAsy", - "IS5jZXJib3Muc2NoZW1hLnYxLlZhbGlkYXRpb25FcnJvckICGAFSEHZhbGlk", - "YXRpb25FcnJvcnMapgIKDkV2YWxSZXN1bHRMaXN0ElMKB3Jlc3VsdHMYASAD", - "KAsyOS5jZXJib3MucmVzcG9uc2UudjEuUGxheWdyb3VuZEV2YWx1YXRlUmVz", - "cG9uc2UuRXZhbFJlc3VsdFIHcmVzdWx0cxI2ChdlZmZlY3RpdmVfZGVyaXZl", - "ZF9yb2xlcxgCIAMoCVIVZWZmZWN0aXZlRGVyaXZlZFJvbGVzEk4KEXZhbGlk", - "YXRpb25fZXJyb3JzGAMgAygLMiEuY2VyYm9zLnNjaGVtYS52MS5WYWxpZGF0", - "aW9uRXJyb3JSEHZhbGlkYXRpb25FcnJvcnMSNwoHb3V0cHV0cxgEIAMoCzId", - "LmNlcmJvcy5lbmdpbmUudjEuT3V0cHV0RW50cnlSB291dHB1dHM6I5JBIAoe", - "MhxQbGF5Z3JvdW5kIGV2YWx1YXRlIHJlc3BvbnNlQgkKB291dGNvbWUimwQK", - "F1BsYXlncm91bmRQcm94eVJlc3BvbnNlEiMKDXBsYXlncm91bmRfaWQYASAB", - "KAlSDHBsYXlncm91bmRJZBJBCgdmYWlsdXJlGAIgASgLMiUuY2VyYm9zLnJl", - "c3BvbnNlLnYxLlBsYXlncm91bmRGYWlsdXJlSABSB2ZhaWx1cmUSXAoSY2hl", - "Y2tfcmVzb3VyY2Vfc2V0GAMgASgLMiwuY2VyYm9zLnJlc3BvbnNlLnYxLkNo", - "ZWNrUmVzb3VyY2VTZXRSZXNwb25zZUgAUhBjaGVja1Jlc291cmNlU2V0EmIK", - "FGNoZWNrX3Jlc291cmNlX2JhdGNoGAQgASgLMi4uY2VyYm9zLnJlc3BvbnNl", - "LnYxLkNoZWNrUmVzb3VyY2VCYXRjaFJlc3BvbnNlSABSEmNoZWNrUmVzb3Vy", - "Y2VCYXRjaBJSCg5wbGFuX3Jlc291cmNlcxgFIAEoCzIpLmNlcmJvcy5yZXNw", - "b25zZS52MS5QbGFuUmVzb3VyY2VzUmVzcG9uc2VIAFINcGxhblJlc291cmNl", - "cxJVCg9jaGVja19yZXNvdXJjZXMYBiABKAsyKi5jZXJib3MucmVzcG9uc2Uu", - "djEuQ2hlY2tSZXNvdXJjZXNSZXNwb25zZUgAUg5jaGVja1Jlc291cmNlczog", - "kkEdChsyGVBsYXlncm91bmQgcHJveHkgcmVzcG9uc2VCCQoHb3V0Y29tZSJw", - "ChlBZGRPclVwZGF0ZVBvbGljeVJlc3BvbnNlEjAKB3N1Y2Nlc3MYASABKAsy", - "Fi5nb29nbGUucHJvdG9idWYuRW1wdHlSB3N1Y2Nlc3M6IZJBHgocMhpBZGQv", - "dXBkYXRlIHBvbGljeSByZXNwb25zZSLgAQobTGlzdEF1ZGl0TG9nRW50cmll", - "c1Jlc3BvbnNlEksKEGFjY2Vzc19sb2dfZW50cnkYASABKAsyHy5jZXJib3Mu", - "YXVkaXQudjEuQWNjZXNzTG9nRW50cnlIAFIOYWNjZXNzTG9nRW50cnkSUQoS", - "ZGVjaXNpb25fbG9nX2VudHJ5GAIgASgLMiEuY2VyYm9zLmF1ZGl0LnYxLkRl", - "Y2lzaW9uTG9nRW50cnlIAFIQZGVjaXNpb25Mb2dFbnRyeToYkkEVChMyEUF1", - "ZGl0IGxvZyBzdHJlYW0uQgcKBWVudHJ5IoIBChJTZXJ2ZXJJbmZvUmVzcG9u", - "c2USGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhIWCgZjb21taXQYAiABKAlS", - "BmNvbW1pdBIdCgpidWlsZF9kYXRlGAMgASgJUglidWlsZERhdGU6G5JBGAoW", - "MhRTZXJ2ZXIgaW5mbyByZXNwb25zZSJqChRMaXN0UG9saWNpZXNSZXNwb25z", - "ZRIdCgpwb2xpY3lfaWRzGAEgAygJUglwb2xpY3lJZHM6M5JBMAouMixMaXN0", - "IG9mIHBvbGljaWVzIHN0b3JlZCBpbiB0aGUgQ2VyYm9zIHNlcnZlciJlChFH", - "ZXRQb2xpY3lSZXNwb25zZRI0Cghwb2xpY2llcxgBIAMoCzIYLmNlcmJvcy5w", - "b2xpY3kudjEuUG9saWN5Ughwb2xpY2llczoakkEXChUyE0dldCBwb2xpY3kg", - "cmVzcG9uc2UiZAoVRGlzYWJsZVBvbGljeVJlc3BvbnNlEisKEWRpc2FibGVk", - "X3BvbGljaWVzGAEgASgNUhBkaXNhYmxlZFBvbGljaWVzOh6SQRsKGTIXRGlz", - "YWJsZSBwb2xpY3kgcmVzcG9uc2UiYAoURW5hYmxlUG9saWN5UmVzcG9uc2US", - "KQoQZW5hYmxlZF9wb2xpY2llcxgBIAEoDVIPZW5hYmxlZFBvbGljaWVzOh2S", - "QRoKGDIWRW5hYmxlIHBvbGljeSByZXNwb25zZSK7DQoXSW5zcGVjdFBvbGlj", - "aWVzUmVzcG9uc2USUgoHcmVzdWx0cxgBIAMoCzI4LmNlcmJvcy5yZXNwb25z", - "ZS52MS5JbnNwZWN0UG9saWNpZXNSZXNwb25zZS5SZXN1bHRzRW50cnlSB3Jl", - "c3VsdHMagQMKC0Rlcml2ZWRSb2xlEkEKBG5hbWUYASABKAlCLZJBKjIoRGVy", - "aXZlZCByb2xlIG5hbWUgZGVmaW5lZCBpbiB0aGUgcG9saWN5LlIEbmFtZRKG", - "AQoEa2luZBgCIAEoDjI8LmNlcmJvcy5yZXNwb25zZS52MS5JbnNwZWN0UG9s", - "aWNpZXNSZXNwb25zZS5EZXJpdmVkUm9sZS5LaW5kQjSSQTEyL0tpbmQgb2Yg", - "dGhlIGRlcml2ZWQgcm9sZSBkZWZpbmVkIGluIHRoZSBwb2xpY3kuUgRraW5k", - "Ek4KBnNvdXJjZRgDIAEoCUI2kkEzMjFTb3VyY2Ugb2YgdGhlIGRlcml2ZWQg", - "cm9sZSBkZWZpbmVkIGluIHRoZSBwb2xpY3kuUgZzb3VyY2UiVgoES2luZBIU", - "ChBLSU5EX1VOU1BFQ0lGSUVEEAASEgoOS0lORF9VTkRFRklORUQQARIRCg1L", - "SU5EX0VYUE9SVEVEEAISEQoNS0lORF9JTVBPUlRFRBADGskECghWYXJpYWJs", - "ZRI9CgRuYW1lGAEgASgJQimSQSYyJFZhcmlhYmxlIG5hbWUgZGVmaW5lZCBp", - "biB0aGUgcG9saWN5LlIEbmFtZRJLCgV2YWx1ZRgCIAEoCUI1kkEyMjBSYXcg", - "dmFsdWUgb2YgdGhlIHZhcmlhYmxlIGRlZmluZWQgaW4gdGhlIHBvbGljeS5S", - "BXZhbHVlEn8KBGtpbmQYAyABKA4yOS5jZXJib3MucmVzcG9uc2UudjEuSW5z", - "cGVjdFBvbGljaWVzUmVzcG9uc2UuVmFyaWFibGUuS2luZEIwkkEtMitLaW5k", - "IG9mIHRoZSB2YXJpYWJsZSBkZWZpbmVkIGluIHRoZSBwb2xpY3kuUgRraW5k", - "Em8KBnNvdXJjZRgEIAEoCUJXkkFUMlJTb3VyY2Ugb2YgdGhlIHZhcmlhYmxl", - "IGRlZmluZWQgaW4gdGhlIHBvbGljeS4gT25seSBleGlzdHMgaWYgdGhlIGtp", - "bmQgaXMgaW1wb3J0ZWQuUgZzb3VyY2USRQoEdXNlZBgFIAEoCEIxkkEuMixX", - "aGV0aGVyIHRoZSB2YXJpYWJsZSBpcyB1c2VkIGluIGEgY29uZGl0aW9uLlIE", - "dXNlZCJ4CgRLaW5kEhQKEEtJTkRfVU5TUEVDSUZJRUQQABIRCg1LSU5EX0VY", - "UE9SVEVEEAESEQoNS0lORF9JTVBPUlRFRBACEg4KCktJTkRfTE9DQUwQAxIS", - "Cg5LSU5EX1VOREVGSU5FRBAEEhAKDEtJTkRfVU5LTk9XThAFGukDCgZSZXN1", - "bHQSPQoHYWN0aW9ucxgBIAMoCUIjkkEgMh5BY3Rpb25zIGRlZmluZWQgaW4g", - "dGhlIHBvbGljeS5SB2FjdGlvbnMSfAoJdmFyaWFibGVzGAIgAygLMjQuY2Vy", - "Ym9zLnJlc3BvbnNlLnYxLkluc3BlY3RQb2xpY2llc1Jlc3BvbnNlLlZhcmlh", - "YmxlQiiSQSUyI1ZhcmlhYmxlcyByZWZlcmVuY2VkIGluIHRoZSBwb2xpY3ku", - "Ugl2YXJpYWJsZXMSlAEKCXBvbGljeV9pZBgDIAEoCUJ3kkF0MnJGb3IgYmxv", - "YiwgZGlzaywgYW5kIGdpdCBzdG9yZXMgcG9saWN5IElEIGlzIHRoZSBmaWxl", - "IG5hbWUuIEZvciBvdGhlciBzdG9yZXMgaXQgaXMgPGtpbmQ+LjxuYW1lPi48", - "dmVyc2lvbj4vPHNjb3BlPi5SCHBvbGljeUlkEooBCg1kZXJpdmVkX3JvbGVz", - "GAQgAygLMjcuY2VyYm9zLnJlc3BvbnNlLnYxLkluc3BlY3RQb2xpY2llc1Jl", - "c3BvbnNlLkRlcml2ZWRSb2xlQiySQSkyJ0Rlcml2ZWQgcm9sZXMgcmVmZXJl", - "bmNlZCBpbiB0aGUgcG9saWN5LlIMZGVyaXZlZFJvbGVzGm4KDFJlc3VsdHNF", - "bnRyeRIQCgNrZXkYASABKAlSA2tleRJICgV2YWx1ZRgCIAEoCzIyLmNlcmJv", - "cy5yZXNwb25zZS52MS5JbnNwZWN0UG9saWNpZXNSZXNwb25zZS5SZXN1bHRS", - "BXZhbHVlOgI4ATogkkEdChsyGUluc3BlY3QgcG9saWNpZXMgcmVzcG9uc2Ui", - "PgoZQWRkT3JVcGRhdGVTY2hlbWFSZXNwb25zZTohkkEeChwyGkFkZC91cGRh", - "dGUgc2NoZW1hIHJlc3BvbnNlIlUKE0xpc3RTY2hlbWFzUmVzcG9uc2USHQoK", - "c2NoZW1hX2lkcxgBIAMoCVIJc2NoZW1hSWRzOh+SQRwKGjIYTGlzdCBzY2hl", - "bWEgaWRzIHJlc3BvbnNlImYKEUdldFNjaGVtYVJlc3BvbnNlEjIKB3NjaGVt", - "YXMYASADKAsyGC5jZXJib3Muc2NoZW1hLnYxLlNjaGVtYVIHc2NoZW1hczod", - "kkEaChgyFkdldCBzY2hlbWEocykgcmVzcG9uc2UiYQoURGVsZXRlU2NoZW1h", - "UmVzcG9uc2USJwoPZGVsZXRlZF9zY2hlbWFzGAEgASgNUg5kZWxldGVkU2No", - "ZW1hczogkkEdChsyGURlbGV0ZSBzY2hlbWEocykgcmVzcG9uc2UiMwoTUmVs", - "b2FkU3RvcmVSZXNwb25zZTockkEZChcyFVJlbG9hZCBzdG9yZSByZXNwb25z", - "ZUJ3ChpkZXYuY2VyYm9zLmFwaS52MS5yZXNwb25zZVpAZ2l0aHViLmNvbS9j", - "ZXJib3MvY2VyYm9zL2FwaS9nZW5wYi9jZXJib3MvcmVzcG9uc2UvdjE7cmVz", - "cG9uc2V2MaoCFkNlcmJvcy5BcGkuVjEuUmVzcG9uc2ViBnByb3RvMw==")); + "cm91bmRGYWlsdXJlSABSB2ZhaWx1cmUSXAoSY2hlY2tfcmVzb3VyY2Vfc2V0", + "GAMgASgLMiwuY2VyYm9zLnJlc3BvbnNlLnYxLkNoZWNrUmVzb3VyY2VTZXRS", + "ZXNwb25zZUgAUhBjaGVja1Jlc291cmNlU2V0EmIKFGNoZWNrX3Jlc291cmNl", + "X2JhdGNoGAQgASgLMi4uY2VyYm9zLnJlc3BvbnNlLnYxLkNoZWNrUmVzb3Vy", + "Y2VCYXRjaFJlc3BvbnNlSABSEmNoZWNrUmVzb3VyY2VCYXRjaBJSCg5wbGFu", + "X3Jlc291cmNlcxgFIAEoCzIpLmNlcmJvcy5yZXNwb25zZS52MS5QbGFuUmVz", + "b3VyY2VzUmVzcG9uc2VIAFINcGxhblJlc291cmNlcxJVCg9jaGVja19yZXNv", + "dXJjZXMYBiABKAsyKi5jZXJib3MucmVzcG9uc2UudjEuQ2hlY2tSZXNvdXJj", + "ZXNSZXNwb25zZUgAUg5jaGVja1Jlc291cmNlczogkkEdChsyGVBsYXlncm91", + "bmQgcHJveHkgcmVzcG9uc2VCCQoHb3V0Y29tZSJwChlBZGRPclVwZGF0ZVBv", + "bGljeVJlc3BvbnNlEjAKB3N1Y2Nlc3MYASABKAsyFi5nb29nbGUucHJvdG9i", + "dWYuRW1wdHlSB3N1Y2Nlc3M6IZJBHgocMhpBZGQvdXBkYXRlIHBvbGljeSBy", + "ZXNwb25zZSLgAQobTGlzdEF1ZGl0TG9nRW50cmllc1Jlc3BvbnNlEksKEGFj", + "Y2Vzc19sb2dfZW50cnkYASABKAsyHy5jZXJib3MuYXVkaXQudjEuQWNjZXNz", + "TG9nRW50cnlIAFIOYWNjZXNzTG9nRW50cnkSUQoSZGVjaXNpb25fbG9nX2Vu", + "dHJ5GAIgASgLMiEuY2VyYm9zLmF1ZGl0LnYxLkRlY2lzaW9uTG9nRW50cnlI", + "AFIQZGVjaXNpb25Mb2dFbnRyeToYkkEVChMyEUF1ZGl0IGxvZyBzdHJlYW0u", + "QgcKBWVudHJ5IoIBChJTZXJ2ZXJJbmZvUmVzcG9uc2USGAoHdmVyc2lvbhgB", + "IAEoCVIHdmVyc2lvbhIWCgZjb21taXQYAiABKAlSBmNvbW1pdBIdCgpidWls", + "ZF9kYXRlGAMgASgJUglidWlsZERhdGU6G5JBGAoWMhRTZXJ2ZXIgaW5mbyBy", + "ZXNwb25zZSJqChRMaXN0UG9saWNpZXNSZXNwb25zZRIdCgpwb2xpY3lfaWRz", + "GAEgAygJUglwb2xpY3lJZHM6M5JBMAouMixMaXN0IG9mIHBvbGljaWVzIHN0", + "b3JlZCBpbiB0aGUgQ2VyYm9zIHNlcnZlciJlChFHZXRQb2xpY3lSZXNwb25z", + "ZRI0Cghwb2xpY2llcxgBIAMoCzIYLmNlcmJvcy5wb2xpY3kudjEuUG9saWN5", + "Ughwb2xpY2llczoakkEXChUyE0dldCBwb2xpY3kgcmVzcG9uc2UiZAoVRGlz", + "YWJsZVBvbGljeVJlc3BvbnNlEisKEWRpc2FibGVkX3BvbGljaWVzGAEgASgN", + "UhBkaXNhYmxlZFBvbGljaWVzOh6SQRsKGTIXRGlzYWJsZSBwb2xpY3kgcmVz", + "cG9uc2UiYAoURW5hYmxlUG9saWN5UmVzcG9uc2USKQoQZW5hYmxlZF9wb2xp", + "Y2llcxgBIAEoDVIPZW5hYmxlZFBvbGljaWVzOh2SQRoKGDIWRW5hYmxlIHBv", + "bGljeSByZXNwb25zZSLHFgoXSW5zcGVjdFBvbGljaWVzUmVzcG9uc2USUgoH", + "cmVzdWx0cxgBIAMoCzI4LmNlcmJvcy5yZXNwb25zZS52MS5JbnNwZWN0UG9s", + "aWNpZXNSZXNwb25zZS5SZXN1bHRzRW50cnlSB3Jlc3VsdHMapAIKCUF0dHJp", + "YnV0ZRJ8CgRraW5kGAEgASgOMjouY2VyYm9zLnJlc3BvbnNlLnYxLkluc3Bl", + "Y3RQb2xpY2llc1Jlc3BvbnNlLkF0dHJpYnV0ZS5LaW5kQiySQSkyJ0tpbmQg", + "b2YgdGhlIGF0dHJpYnV0ZSBiZWluZyByZWZlcmVuY2VkLlIEa2luZBJACgRu", + "YW1lGAIgASgJQiySQSkyJ05hbWUgb2YgdGhlIGF0dHJpYnV0ZSBiZWluZyBy", + "ZWZlcmVuY2VkLlIEbmFtZSJXCgRLaW5kEhQKEEtJTkRfVU5TUEVDSUZJRUQQ", + "ABIcChhLSU5EX1BSSU5DSVBBTF9BVFRSSUJVVEUQARIbChdLSU5EX1JFU09V", + "UkNFX0FUVFJJQlVURRACGoEDCgtEZXJpdmVkUm9sZRJBCgRuYW1lGAEgASgJ", + "Qi2SQSoyKERlcml2ZWQgcm9sZSBuYW1lIGRlZmluZWQgaW4gdGhlIHBvbGlj", + "eS5SBG5hbWUShgEKBGtpbmQYAiABKA4yPC5jZXJib3MucmVzcG9uc2UudjEu", + "SW5zcGVjdFBvbGljaWVzUmVzcG9uc2UuRGVyaXZlZFJvbGUuS2luZEI0kkEx", + "Mi9LaW5kIG9mIHRoZSBkZXJpdmVkIHJvbGUgZGVmaW5lZCBpbiB0aGUgcG9s", + "aWN5LlIEa2luZBJOCgZzb3VyY2UYAyABKAlCNpJBMzIxU291cmNlIG9mIHRo", + "ZSBkZXJpdmVkIHJvbGUgZGVmaW5lZCBpbiB0aGUgcG9saWN5LlIGc291cmNl", + "IlYKBEtpbmQSFAoQS0lORF9VTlNQRUNJRklFRBAAEhIKDktJTkRfVU5ERUZJ", + "TkVEEAESEQoNS0lORF9FWFBPUlRFRBACEhEKDUtJTkRfSU1QT1JURUQQAxrh", + "BAoIQ29uc3RhbnQSPQoEbmFtZRgBIAEoCUIpkkEmMiRDb25zdGFudCBuYW1l", + "IGRlZmluZWQgaW4gdGhlIHBvbGljeS5SBG5hbWUSYwoFdmFsdWUYAiABKAsy", + "Fi5nb29nbGUucHJvdG9idWYuVmFsdWVCNZJBMjIwUmF3IHZhbHVlIG9mIHRo", + "ZSBjb25zdGFudCBkZWZpbmVkIGluIHRoZSBwb2xpY3kuUgV2YWx1ZRJ/CgRr", + "aW5kGAMgASgOMjkuY2VyYm9zLnJlc3BvbnNlLnYxLkluc3BlY3RQb2xpY2ll", + "c1Jlc3BvbnNlLkNvbnN0YW50LktpbmRCMJJBLTIrS2luZCBvZiB0aGUgY29u", + "c3RhbnQgZGVmaW5lZCBpbiB0aGUgcG9saWN5LlIEa2luZBJvCgZzb3VyY2UY", + "BCABKAlCV5JBVDJSU291cmNlIG9mIHRoZSBjb25zdGFudCBkZWZpbmVkIGlu", + "IHRoZSBwb2xpY3kuIE9ubHkgZXhpc3RzIGlmIHRoZSBraW5kIGlzIGltcG9y", + "dGVkLlIGc291cmNlEkUKBHVzZWQYBSABKAhCMZJBLjIsV2hldGhlciB0aGUg", + "Y29uc3RhbnQgaXMgdXNlZCBpbiBhIGNvbmRpdGlvbi5SBHVzZWQieAoES2lu", + "ZBIUChBLSU5EX1VOU1BFQ0lGSUVEEAASEQoNS0lORF9FWFBPUlRFRBABEhEK", + "DUtJTkRfSU1QT1JURUQQAhIOCgpLSU5EX0xPQ0FMEAMSEgoOS0lORF9VTkRF", + "RklORUQQBBIQCgxLSU5EX1VOS05PV04QBRrJBAoIVmFyaWFibGUSPQoEbmFt", + "ZRgBIAEoCUIpkkEmMiRWYXJpYWJsZSBuYW1lIGRlZmluZWQgaW4gdGhlIHBv", + "bGljeS5SBG5hbWUSSwoFdmFsdWUYAiABKAlCNZJBMjIwUmF3IHZhbHVlIG9m", + "IHRoZSB2YXJpYWJsZSBkZWZpbmVkIGluIHRoZSBwb2xpY3kuUgV2YWx1ZRJ/", + "CgRraW5kGAMgASgOMjkuY2VyYm9zLnJlc3BvbnNlLnYxLkluc3BlY3RQb2xp", + "Y2llc1Jlc3BvbnNlLlZhcmlhYmxlLktpbmRCMJJBLTIrS2luZCBvZiB0aGUg", + "dmFyaWFibGUgZGVmaW5lZCBpbiB0aGUgcG9saWN5LlIEa2luZBJvCgZzb3Vy", + "Y2UYBCABKAlCV5JBVDJSU291cmNlIG9mIHRoZSB2YXJpYWJsZSBkZWZpbmVk", + "IGluIHRoZSBwb2xpY3kuIE9ubHkgZXhpc3RzIGlmIHRoZSBraW5kIGlzIGlt", + "cG9ydGVkLlIGc291cmNlEkUKBHVzZWQYBSABKAhCMZJBLjIsV2hldGhlciB0", + "aGUgdmFyaWFibGUgaXMgdXNlZCBpbiBhIGNvbmRpdGlvbi5SBHVzZWQieAoE", + "S2luZBIUChBLSU5EX1VOU1BFQ0lGSUVEEAASEQoNS0lORF9FWFBPUlRFRBAB", + "EhEKDUtJTkRfSU1QT1JURUQQAhIOCgpLSU5EX0xPQ0FMEAMSEgoOS0lORF9V", + "TkRFRklORUQQBBIQCgxLSU5EX1VOS05PV04QBRrqBQoGUmVzdWx0Ej0KB2Fj", + "dGlvbnMYASADKAlCI5JBIDIeQWN0aW9ucyBkZWZpbmVkIGluIHRoZSBwb2xp", + "Y3kuUgdhY3Rpb25zEnwKCXZhcmlhYmxlcxgCIAMoCzI0LmNlcmJvcy5yZXNw", + "b25zZS52MS5JbnNwZWN0UG9saWNpZXNSZXNwb25zZS5WYXJpYWJsZUIokkEl", + "MiNWYXJpYWJsZXMgcmVmZXJlbmNlZCBpbiB0aGUgcG9saWN5LlIJdmFyaWFi", + "bGVzEpQBCglwb2xpY3lfaWQYAyABKAlCd5JBdDJyRm9yIGJsb2IsIGRpc2ss", + "IGFuZCBnaXQgc3RvcmVzIHBvbGljeSBJRCBpcyB0aGUgZmlsZSBuYW1lLiBG", + "b3Igb3RoZXIgc3RvcmVzIGl0IGlzIDxraW5kPi48bmFtZT4uPHZlcnNpb24+", + "LzxzY29wZT4uUghwb2xpY3lJZBKKAQoNZGVyaXZlZF9yb2xlcxgEIAMoCzI3", + "LmNlcmJvcy5yZXNwb25zZS52MS5JbnNwZWN0UG9saWNpZXNSZXNwb25zZS5E", + "ZXJpdmVkUm9sZUIskkEpMidEZXJpdmVkIHJvbGVzIHJlZmVyZW5jZWQgaW4g", + "dGhlIHBvbGljeS5SDGRlcml2ZWRSb2xlcxKAAQoKYXR0cmlidXRlcxgFIAMo", + "CzI1LmNlcmJvcy5yZXNwb25zZS52MS5JbnNwZWN0UG9saWNpZXNSZXNwb25z", + "ZS5BdHRyaWJ1dGVCKZJBJjIkQXR0cmlidXRlcyByZWZlcmVuY2VkIGluIHRo", + "ZSBwb2xpY3kuUgphdHRyaWJ1dGVzEnwKCWNvbnN0YW50cxgGIAMoCzI0LmNl", + "cmJvcy5yZXNwb25zZS52MS5JbnNwZWN0UG9saWNpZXNSZXNwb25zZS5Db25z", + "dGFudEIokkElMiNDb25zdGFudHMgcmVmZXJlbmNlZCBpbiB0aGUgcG9saWN5", + "LlIJY29uc3RhbnRzGm4KDFJlc3VsdHNFbnRyeRIQCgNrZXkYASABKAlSA2tl", + "eRJICgV2YWx1ZRgCIAEoCzIyLmNlcmJvcy5yZXNwb25zZS52MS5JbnNwZWN0", + "UG9saWNpZXNSZXNwb25zZS5SZXN1bHRSBXZhbHVlOgI4ATogkkEdChsyGUlu", + "c3BlY3QgcG9saWNpZXMgcmVzcG9uc2UiPgoZQWRkT3JVcGRhdGVTY2hlbWFS", + "ZXNwb25zZTohkkEeChwyGkFkZC91cGRhdGUgc2NoZW1hIHJlc3BvbnNlIlUK", + "E0xpc3RTY2hlbWFzUmVzcG9uc2USHQoKc2NoZW1hX2lkcxgBIAMoCVIJc2No", + "ZW1hSWRzOh+SQRwKGjIYTGlzdCBzY2hlbWEgaWRzIHJlc3BvbnNlImYKEUdl", + "dFNjaGVtYVJlc3BvbnNlEjIKB3NjaGVtYXMYASADKAsyGC5jZXJib3Muc2No", + "ZW1hLnYxLlNjaGVtYVIHc2NoZW1hczodkkEaChgyFkdldCBzY2hlbWEocykg", + "cmVzcG9uc2UiYQoURGVsZXRlU2NoZW1hUmVzcG9uc2USJwoPZGVsZXRlZF9z", + "Y2hlbWFzGAEgASgNUg5kZWxldGVkU2NoZW1hczogkkEdChsyGURlbGV0ZSBz", + "Y2hlbWEocykgcmVzcG9uc2UiMwoTUmVsb2FkU3RvcmVSZXNwb25zZTockkEZ", + "ChcyFVJlbG9hZCBzdG9yZSByZXNwb25zZUJ3ChpkZXYuY2VyYm9zLmFwaS52", + "MS5yZXNwb25zZVpAZ2l0aHViLmNvbS9jZXJib3MvY2VyYm9zL2FwaS9nZW5w", + "Yi9jZXJib3MvcmVzcG9uc2UvdjE7cmVzcG9uc2V2MaoCFkNlcmJvcy5BcGku", + "VjEuUmVzcG9uc2ViBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Cerbos.Api.V1.Audit.AuditReflection.Descriptor, global::Cerbos.Api.V1.Effect.EffectReflection.Descriptor, global::Cerbos.Api.V1.Engine.EngineReflection.Descriptor, global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor, global::Cerbos.Api.V1.Schema.SchemaReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, global::Grpc.Gateway.ProtocGenOpenapiv2.Options.AnnotationsReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Cerbos.Api.V1.Audit.AuditReflection.Descriptor, global::Cerbos.Api.V1.Effect.EffectReflection.Descriptor, global::Cerbos.Api.V1.Engine.EngineReflection.Descriptor, global::Cerbos.Api.V1.Policy.PolicyReflection.Descriptor, global::Cerbos.Api.V1.Schema.SchemaReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Grpc.Gateway.ProtocGenOpenapiv2.Options.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.PlanResourcesResponse), global::Cerbos.Api.V1.Response.PlanResourcesResponse.Parser, new[]{ "RequestId", "Action", "ResourceKind", "PolicyVersion", "Filter", "Meta", "ValidationErrors", "CerbosCallId" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.PlanResourcesResponse.Types.Meta), global::Cerbos.Api.V1.Response.PlanResourcesResponse.Types.Meta.Parser, new[]{ "FilterDebug", "MatchedScope" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.CheckResourceSetResponse), global::Cerbos.Api.V1.Response.CheckResourceSetResponse.Parser, new[]{ "RequestId", "ResourceInstances", "Meta" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.CheckResourceSetResponse.Types.ActionEffectMap), global::Cerbos.Api.V1.Response.CheckResourceSetResponse.Types.ActionEffectMap.Parser, new[]{ "Actions", "ValidationErrors" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), @@ -351,9 +378,11 @@ static ResponseReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.GetPolicyResponse), global::Cerbos.Api.V1.Response.GetPolicyResponse.Parser, new[]{ "Policies" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.DisablePolicyResponse), global::Cerbos.Api.V1.Response.DisablePolicyResponse.Parser, new[]{ "DisabledPolicies" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.EnablePolicyResponse), global::Cerbos.Api.V1.Response.EnablePolicyResponse.Parser, new[]{ "EnabledPolicies" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Parser, new[]{ "Results" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.DerivedRole), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.DerivedRole.Parser, new[]{ "Name", "Kind", "Source" }, null, new[]{ typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.DerivedRole.Types.Kind) }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Parser, new[]{ "Results" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Parser, new[]{ "Kind", "Name" }, null, new[]{ typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind) }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.DerivedRole), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.DerivedRole.Parser, new[]{ "Name", "Kind", "Source" }, null, new[]{ typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.DerivedRole.Types.Kind) }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Parser, new[]{ "Name", "Value", "Kind", "Source", "Used" }, null, new[]{ typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind) }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Parser, new[]{ "Name", "Value", "Kind", "Source", "Used" }, null, new[]{ typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind) }, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Result), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Result.Parser, new[]{ "Actions", "Variables", "PolicyId", "DerivedRoles" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Result), global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Result.Parser, new[]{ "Actions", "Variables", "PolicyId", "DerivedRoles", "Attributes", "Constants" }, null, null, null, null), null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.AddOrUpdateSchemaResponse), global::Cerbos.Api.V1.Response.AddOrUpdateSchemaResponse.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Cerbos.Api.V1.Response.ListSchemasResponse), global::Cerbos.Api.V1.Response.ListSchemasResponse.Parser, new[]{ "SchemaIds" }, null, null, null, null), @@ -8846,6 +8875,255 @@ public void MergeFrom(pb::CodedInputStream input) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static partial class Types { + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class Attribute : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Attribute()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Descriptor.NestedTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Attribute() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Attribute(Attribute other) : this() { + kind_ = other.kind_; + name_ = other.name_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Attribute Clone() { + return new Attribute(this); + } + + /// Field number for the "kind" field. + public const int KindFieldNumber = 1; + private global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind kind_ = global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind Kind { + get { return kind_; } + set { + kind_ = value; + } + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 2; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Attribute); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Attribute other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Kind != other.Kind) return false; + if (Name != other.Name) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind.Unspecified) hash ^= Kind.GetHashCode(); + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind.Unspecified) { + output.WriteRawTag(8); + output.WriteEnum((int) Kind); + } + if (Name.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Name); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind.Unspecified) { + output.WriteRawTag(8); + output.WriteEnum((int) Kind); + } + if (Name.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Name); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind.Unspecified) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Kind); + } + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Attribute other) { + if (other == null) { + return; + } + if (other.Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind.Unspecified) { + Kind = other.Kind; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Kind = (global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind) input.ReadEnum(); + break; + } + case 18: { + Name = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Kind = (global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Types.Kind) input.ReadEnum(); + break; + } + case 18: { + Name = input.ReadString(); + break; + } + } + } + } + #endif + + #region Nested types + /// Container for nested types declared in the Attribute message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types { + public enum Kind { + [pbr::OriginalName("KIND_UNSPECIFIED")] Unspecified = 0, + [pbr::OriginalName("KIND_PRINCIPAL_ATTRIBUTE")] PrincipalAttribute = 1, + [pbr::OriginalName("KIND_RESOURCE_ATTRIBUTE")] ResourceAttribute = 2, + } + + } + #endregion + + } + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] public sealed partial class DerivedRole : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE @@ -8861,7 +9139,7 @@ public sealed partial class DerivedRole : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Descriptor.NestedTypes[0]; } + get { return global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Descriptor.NestedTypes[1]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -9134,21 +9412,21 @@ public enum Kind { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class Variable : pb::IMessage + public sealed partial class Constant : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Variable()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Constant()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Descriptor.NestedTypes[1]; } + get { return global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Descriptor.NestedTypes[2]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -9159,7 +9437,7 @@ public sealed partial class Variable : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Variable() { + public Constant() { OnConstruction(); } @@ -9167,9 +9445,9 @@ public Variable() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Variable(Variable other) : this() { + public Constant(Constant other) : this() { name_ = other.name_; - value_ = other.value_; + value_ = other.value_ != null ? other.value_.Clone() : null; kind_ = other.kind_; source_ = other.source_; used_ = other.used_; @@ -9178,8 +9456,8 @@ public Variable(Variable other) : this() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Variable Clone() { - return new Variable(this); + public Constant Clone() { + return new Constant(this); } /// Field number for the "name" field. @@ -9196,22 +9474,22 @@ public string Name { /// Field number for the "value" field. public const int ValueFieldNumber = 2; - private string value_ = ""; + private global::Google.Protobuf.WellKnownTypes.Value value_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Value { + public global::Google.Protobuf.WellKnownTypes.Value Value { get { return value_; } set { - value_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + value_ = value; } } /// Field number for the "kind" field. public const int KindFieldNumber = 3; - private global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind kind_ = global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind.Unspecified; + private global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind kind_ = global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind.Unspecified; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind Kind { + public global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind Kind { get { return kind_; } set { kind_ = value; @@ -9245,12 +9523,12 @@ public bool Used { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Variable); + return Equals(other as Constant); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Variable other) { + public bool Equals(Constant other) { if (ReferenceEquals(other, null)) { return false; } @@ -9258,7 +9536,7 @@ public bool Equals(Variable other) { return true; } if (Name != other.Name) return false; - if (Value != other.Value) return false; + if (!object.Equals(Value, other.Value)) return false; if (Kind != other.Kind) return false; if (Source != other.Source) return false; if (Used != other.Used) return false; @@ -9270,8 +9548,8 @@ public bool Equals(Variable other) { public override int GetHashCode() { int hash = 1; if (Name.Length != 0) hash ^= Name.GetHashCode(); - if (Value.Length != 0) hash ^= Value.GetHashCode(); - if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind.Unspecified) hash ^= Kind.GetHashCode(); + if (value_ != null) hash ^= Value.GetHashCode(); + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind.Unspecified) hash ^= Kind.GetHashCode(); if (Source.Length != 0) hash ^= Source.GetHashCode(); if (Used != false) hash ^= Used.GetHashCode(); if (_unknownFields != null) { @@ -9296,11 +9574,11 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteString(Name); } - if (Value.Length != 0) { + if (value_ != null) { output.WriteRawTag(18); - output.WriteString(Value); + output.WriteMessage(Value); } - if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind.Unspecified) { + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind.Unspecified) { output.WriteRawTag(24); output.WriteEnum((int) Kind); } @@ -9326,9 +9604,381 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteString(Name); } - if (Value.Length != 0) { + if (value_ != null) { output.WriteRawTag(18); - output.WriteString(Value); + output.WriteMessage(Value); + } + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind.Unspecified) { + output.WriteRawTag(24); + output.WriteEnum((int) Kind); + } + if (Source.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Source); + } + if (Used != false) { + output.WriteRawTag(40); + output.WriteBool(Used); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Name.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (value_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Value); + } + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind.Unspecified) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Kind); + } + if (Source.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Source); + } + if (Used != false) { + size += 1 + 1; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Constant other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + if (other.value_ != null) { + if (value_ == null) { + Value = new global::Google.Protobuf.WellKnownTypes.Value(); + } + Value.MergeFrom(other.Value); + } + if (other.Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind.Unspecified) { + Kind = other.Kind; + } + if (other.Source.Length != 0) { + Source = other.Source; + } + if (other.Used != false) { + Used = other.Used; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Name = input.ReadString(); + break; + } + case 18: { + if (value_ == null) { + Value = new global::Google.Protobuf.WellKnownTypes.Value(); + } + input.ReadMessage(Value); + break; + } + case 24: { + Kind = (global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind) input.ReadEnum(); + break; + } + case 34: { + Source = input.ReadString(); + break; + } + case 40: { + Used = input.ReadBool(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Name = input.ReadString(); + break; + } + case 18: { + if (value_ == null) { + Value = new global::Google.Protobuf.WellKnownTypes.Value(); + } + input.ReadMessage(Value); + break; + } + case 24: { + Kind = (global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Types.Kind) input.ReadEnum(); + break; + } + case 34: { + Source = input.ReadString(); + break; + } + case 40: { + Used = input.ReadBool(); + break; + } + } + } + } + #endif + + #region Nested types + /// Container for nested types declared in the Constant message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types { + public enum Kind { + [pbr::OriginalName("KIND_UNSPECIFIED")] Unspecified = 0, + [pbr::OriginalName("KIND_EXPORTED")] Exported = 1, + [pbr::OriginalName("KIND_IMPORTED")] Imported = 2, + [pbr::OriginalName("KIND_LOCAL")] Local = 3, + [pbr::OriginalName("KIND_UNDEFINED")] Undefined = 4, + [pbr::OriginalName("KIND_UNKNOWN")] Unknown = 5, + } + + } + #endregion + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class Variable : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Variable()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Descriptor.NestedTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Variable() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Variable(Variable other) : this() { + name_ = other.name_; + value_ = other.value_; + kind_ = other.kind_; + source_ = other.source_; + used_ = other.used_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Variable Clone() { + return new Variable(this); + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 1; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "value" field. + public const int ValueFieldNumber = 2; + private string value_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Value { + get { return value_; } + set { + value_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "kind" field. + public const int KindFieldNumber = 3; + private global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind kind_ = global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind Kind { + get { return kind_; } + set { + kind_ = value; + } + } + + /// Field number for the "source" field. + public const int SourceFieldNumber = 4; + private string source_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Source { + get { return source_; } + set { + source_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "used" field. + public const int UsedFieldNumber = 5; + private bool used_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Used { + get { return used_; } + set { + used_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Variable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Variable other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if (Value != other.Value) return false; + if (Kind != other.Kind) return false; + if (Source != other.Source) return false; + if (Used != other.Used) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (Value.Length != 0) hash ^= Value.GetHashCode(); + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind.Unspecified) hash ^= Kind.GetHashCode(); + if (Source.Length != 0) hash ^= Source.GetHashCode(); + if (Used != false) hash ^= Used.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (Value.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Value); + } + if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind.Unspecified) { + output.WriteRawTag(24); + output.WriteEnum((int) Kind); + } + if (Source.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Source); + } + if (Used != false) { + output.WriteRawTag(40); + output.WriteBool(Used); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Name.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (Value.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Value); } if (Kind != global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Variable.Types.Kind.Unspecified) { output.WriteRawTag(24); @@ -9511,7 +10161,7 @@ public sealed partial class Result : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Descriptor.NestedTypes[2]; } + get { return global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Descriptor.NestedTypes[4]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -9535,6 +10185,8 @@ public Result(Result other) : this() { variables_ = other.variables_.Clone(); policyId_ = other.policyId_; derivedRoles_ = other.derivedRoles_.Clone(); + attributes_ = other.attributes_.Clone(); + constants_ = other.constants_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -9589,6 +10241,28 @@ public string PolicyId { get { return derivedRoles_; } } + /// Field number for the "attributes" field. + public const int AttributesFieldNumber = 5; + private static readonly pb::FieldCodec _repeated_attributes_codec + = pb::FieldCodec.ForMessage(42, global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Attribute.Parser); + private readonly pbc::RepeatedField attributes_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Attributes { + get { return attributes_; } + } + + /// Field number for the "constants" field. + public const int ConstantsFieldNumber = 6; + private static readonly pb::FieldCodec _repeated_constants_codec + = pb::FieldCodec.ForMessage(50, global::Cerbos.Api.V1.Response.InspectPoliciesResponse.Types.Constant.Parser); + private readonly pbc::RepeatedField constants_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Constants { + get { return constants_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -9608,6 +10282,8 @@ public bool Equals(Result other) { if(!variables_.Equals(other.variables_)) return false; if (PolicyId != other.PolicyId) return false; if(!derivedRoles_.Equals(other.derivedRoles_)) return false; + if(!attributes_.Equals(other.attributes_)) return false; + if(!constants_.Equals(other.constants_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -9619,6 +10295,8 @@ public override int GetHashCode() { hash ^= variables_.GetHashCode(); if (PolicyId.Length != 0) hash ^= PolicyId.GetHashCode(); hash ^= derivedRoles_.GetHashCode(); + hash ^= attributes_.GetHashCode(); + hash ^= constants_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -9644,6 +10322,8 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(PolicyId); } derivedRoles_.WriteTo(output, _repeated_derivedRoles_codec); + attributes_.WriteTo(output, _repeated_attributes_codec); + constants_.WriteTo(output, _repeated_constants_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -9661,6 +10341,8 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(PolicyId); } derivedRoles_.WriteTo(ref output, _repeated_derivedRoles_codec); + attributes_.WriteTo(ref output, _repeated_attributes_codec); + constants_.WriteTo(ref output, _repeated_constants_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -9677,6 +10359,8 @@ public int CalculateSize() { size += 1 + pb::CodedOutputStream.ComputeStringSize(PolicyId); } size += derivedRoles_.CalculateSize(_repeated_derivedRoles_codec); + size += attributes_.CalculateSize(_repeated_attributes_codec); + size += constants_.CalculateSize(_repeated_constants_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -9695,6 +10379,8 @@ public void MergeFrom(Result other) { PolicyId = other.PolicyId; } derivedRoles_.Add(other.derivedRoles_); + attributes_.Add(other.attributes_); + constants_.Add(other.constants_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -9730,6 +10416,14 @@ public void MergeFrom(pb::CodedInputStream input) { derivedRoles_.AddEntriesFrom(input, _repeated_derivedRoles_codec); break; } + case 42: { + attributes_.AddEntriesFrom(input, _repeated_attributes_codec); + break; + } + case 50: { + constants_.AddEntriesFrom(input, _repeated_constants_codec); + break; + } } } #endif @@ -9765,6 +10459,14 @@ public void MergeFrom(pb::CodedInputStream input) { derivedRoles_.AddEntriesFrom(ref input, _repeated_derivedRoles_codec); break; } + case 42: { + attributes_.AddEntriesFrom(ref input, _repeated_attributes_codec); + break; + } + case 50: { + constants_.AddEntriesFrom(ref input, _repeated_constants_codec); + break; + } } } } diff --git a/src/Sdk/Cerbos/Api/V1/Schema/Schema.g.cs b/src/Sdk/Cerbos/Api/V1/Schema/Schema.g.cs index 55b3330..3036dcc 100644 --- a/src/Sdk/Cerbos/Api/V1/Schema/Schema.g.cs +++ b/src/Sdk/Cerbos/Api/V1/Schema/Schema.g.cs @@ -32,14 +32,14 @@ static SchemaReflection() { "EkAKBnNvdXJjZRgDIAEoDjIoLmNlcmJvcy5zY2hlbWEudjEuVmFsaWRhdGlv", "bkVycm9yLlNvdXJjZVIGc291cmNlIksKBlNvdXJjZRIWChJTT1VSQ0VfVU5T", "UEVDSUZJRUQQABIUChBTT1VSQ0VfUFJJTkNJUEFMEAESEwoPU09VUkNFX1JF", - "U09VUkNFEAIi0QEKBlNjaGVtYRJYCgJpZBgBIAEoCUJIkkE0MiBVbmlxdWUg", - "aWRlbnRpZmllciBmb3IgdGhlIHNjaGVtYUoQInByaW5jaXBhbC5qc29uIuJB", - "AQK6SApyBRABGP8ByAEBUgJpZBJtCgpkZWZpbml0aW9uGAIgASgMQk2SQTwy", - "FkpTT04gc2NoZW1hIGRlZmluaXRpb25KInsidHlwZSI6Im9iamVjdCIsICJw", - "cm9wZXJ0aWVzIjp7fX3iQQECukgHegIQCsgBAVIKZGVmaW5pdGlvbkJvChhk", - "ZXYuY2VyYm9zLmFwaS52MS5zY2hlbWFaPGdpdGh1Yi5jb20vY2VyYm9zL2Nl", - "cmJvcy9hcGkvZ2VucGIvY2VyYm9zL3NjaGVtYS92MTtzY2hlbWF2MaoCFENl", - "cmJvcy5BcGkuVjEuU2NoZW1hYgZwcm90bzM=")); + "U09VUkNFEAIizwEKBlNjaGVtYRJXCgJpZBgBIAEoCUJHkkE0MiBVbmlxdWUg", + "aWRlbnRpZmllciBmb3IgdGhlIHNjaGVtYUoQInByaW5jaXBhbC5qc29uIuBB", + "ArpICnIFEAEY/wHIAQFSAmlkEmwKCmRlZmluaXRpb24YAiABKAxCTJJBPDIW", + "SlNPTiBzY2hlbWEgZGVmaW5pdGlvbkoieyJ0eXBlIjoib2JqZWN0IiwgInBy", + "b3BlcnRpZXMiOnt9feBBArpIB3oCEArIAQFSCmRlZmluaXRpb25CbwoYZGV2", + "LmNlcmJvcy5hcGkudjEuc2NoZW1hWjxnaXRodWIuY29tL2NlcmJvcy9jZXJi", + "b3MvYXBpL2dlbnBiL2NlcmJvcy9zY2hlbWEvdjE7c2NoZW1hdjGqAhRDZXJi", + "b3MuQXBpLlYxLlNjaGVtYWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Buf.Validate.ValidateReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Grpc.Gateway.ProtocGenOpenapiv2.Options.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/Sdk/Google/Api/Expr/V1Alpha1/Syntax.g.cs b/src/Sdk/Google/Api/Expr/V1Alpha1/Syntax.g.cs index 4db8887..117f14e 100644 --- a/src/Sdk/Google/Api/Expr/V1Alpha1/Syntax.g.cs +++ b/src/Sdk/Google/Api/Expr/V1Alpha1/Syntax.g.cs @@ -30,7 +30,7 @@ static SyntaxReflection() { "L3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byKHAQoKUGFyc2VkRXhwchIyCgRl", "eHByGAIgASgLMh4uZ29vZ2xlLmFwaS5leHByLnYxYWxwaGExLkV4cHJSBGV4", "cHISRQoLc291cmNlX2luZm8YAyABKAsyJC5nb29nbGUuYXBpLmV4cHIudjFh", - "bHBoYTEuU291cmNlSW5mb1IKc291cmNlSW5mbyKuDQoERXhwchIOCgJpZBgC", + "bHBoYTEuU291cmNlSW5mb1IKc291cmNlSW5mbyLLDQoERXhwchIOCgJpZBgC", "IAEoA1ICaWQSQwoKY29uc3RfZXhwchgDIAEoCzIiLmdvb2dsZS5hcGkuZXhw", "ci52MWFscGhhMS5Db25zdGFudEgAUgljb25zdEV4cHISRQoKaWRlbnRfZXhw", "chgEIAEoCzIkLmdvb2dsZS5hcGkuZXhwci52MWFscGhhMS5FeHByLklkZW50", @@ -59,41 +59,52 @@ static SyntaxReflection() { "UghmaWVsZEtleRI5CgdtYXBfa2V5GAMgASgLMh4uZ29vZ2xlLmFwaS5leHBy", "LnYxYWxwaGExLkV4cHJIAFIGbWFwS2V5EjQKBXZhbHVlGAQgASgLMh4uZ29v", "Z2xlLmFwaS5leHByLnYxYWxwaGExLkV4cHJSBXZhbHVlEiUKDm9wdGlvbmFs", - "X2VudHJ5GAUgASgIUg1vcHRpb25hbEVudHJ5QgoKCGtleV9raW5kGv0CCg1D", - "b21wcmVoZW5zaW9uEhkKCGl0ZXJfdmFyGAEgASgJUgdpdGVyVmFyEj0KCml0", - "ZXJfcmFuZ2UYAiABKAsyHi5nb29nbGUuYXBpLmV4cHIudjFhbHBoYTEuRXhw", - "clIJaXRlclJhbmdlEhkKCGFjY3VfdmFyGAMgASgJUgdhY2N1VmFyEjsKCWFj", - "Y3VfaW5pdBgEIAEoCzIeLmdvb2dsZS5hcGkuZXhwci52MWFscGhhMS5FeHBy", - "UghhY2N1SW5pdBJFCg5sb29wX2NvbmRpdGlvbhgFIAEoCzIeLmdvb2dsZS5h", - "cGkuZXhwci52MWFscGhhMS5FeHByUg1sb29wQ29uZGl0aW9uEjsKCWxvb3Bf", - "c3RlcBgGIAEoCzIeLmdvb2dsZS5hcGkuZXhwci52MWFscGhhMS5FeHByUghs", - "b29wU3RlcBI2CgZyZXN1bHQYByABKAsyHi5nb29nbGUuYXBpLmV4cHIudjFh", - "bHBoYTEuRXhwclIGcmVzdWx0QgsKCWV4cHJfa2luZCLBAwoIQ29uc3RhbnQS", - "OwoKbnVsbF92YWx1ZRgBIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFs", - "dWVIAFIJbnVsbFZhbHVlEh8KCmJvb2xfdmFsdWUYAiABKAhIAFIJYm9vbFZh", - "bHVlEiEKC2ludDY0X3ZhbHVlGAMgASgDSABSCmludDY0VmFsdWUSIwoMdWlu", - "dDY0X3ZhbHVlGAQgASgESABSC3VpbnQ2NFZhbHVlEiMKDGRvdWJsZV92YWx1", - "ZRgFIAEoAUgAUgtkb3VibGVWYWx1ZRIjCgxzdHJpbmdfdmFsdWUYBiABKAlI", - "AFILc3RyaW5nVmFsdWUSIQoLYnl0ZXNfdmFsdWUYByABKAxIAFIKYnl0ZXNW", - "YWx1ZRJGCg5kdXJhdGlvbl92YWx1ZRgIIAEoCzIZLmdvb2dsZS5wcm90b2J1", - "Zi5EdXJhdGlvbkICGAFIAFINZHVyYXRpb25WYWx1ZRJJCg90aW1lc3RhbXBf", - "dmFsdWUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgIYAUgA", - "Ug50aW1lc3RhbXBWYWx1ZUIPCg1jb25zdGFudF9raW5kIrkDCgpTb3VyY2VJ", - "bmZvEiUKDnN5bnRheF92ZXJzaW9uGAEgASgJUg1zeW50YXhWZXJzaW9uEhoK", - "CGxvY2F0aW9uGAIgASgJUghsb2NhdGlvbhIhCgxsaW5lX29mZnNldHMYAyAD", - "KAVSC2xpbmVPZmZzZXRzElEKCXBvc2l0aW9ucxgEIAMoCzIzLmdvb2dsZS5h", - "cGkuZXhwci52MWFscGhhMS5Tb3VyY2VJbmZvLlBvc2l0aW9uc0VudHJ5Uglw", - "b3NpdGlvbnMSVQoLbWFjcm9fY2FsbHMYBSADKAsyNC5nb29nbGUuYXBpLmV4", - "cHIudjFhbHBoYTEuU291cmNlSW5mby5NYWNyb0NhbGxzRW50cnlSCm1hY3Jv", - "Q2FsbHMaPAoOUG9zaXRpb25zRW50cnkSEAoDa2V5GAEgASgDUgNrZXkSFAoF", - "dmFsdWUYAiABKAVSBXZhbHVlOgI4ARpdCg9NYWNyb0NhbGxzRW50cnkSEAoD", - "a2V5GAEgASgDUgNrZXkSNAoFdmFsdWUYAiABKAsyHi5nb29nbGUuYXBpLmV4", - "cHIudjFhbHBoYTEuRXhwclIFdmFsdWU6AjgBInAKDlNvdXJjZVBvc2l0aW9u", - "EhoKCGxvY2F0aW9uGAEgASgJUghsb2NhdGlvbhIWCgZvZmZzZXQYAiABKAVS", - "Bm9mZnNldBISCgRsaW5lGAMgASgFUgRsaW5lEhYKBmNvbHVtbhgEIAEoBVIG", - "Y29sdW1uQm4KHGNvbS5nb29nbGUuYXBpLmV4cHIudjFhbHBoYTFCC1N5bnRh", - "eFByb3RvUAFaPGdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFw", - "aXMvYXBpL2V4cHIvdjFhbHBoYTE7ZXhwcvgBAWIGcHJvdG8z")); + "X2VudHJ5GAUgASgIUg1vcHRpb25hbEVudHJ5QgoKCGtleV9raW5kGpoDCg1D", + "b21wcmVoZW5zaW9uEhkKCGl0ZXJfdmFyGAEgASgJUgdpdGVyVmFyEhsKCWl0", + "ZXJfdmFyMhgIIAEoCVIIaXRlclZhcjISPQoKaXRlcl9yYW5nZRgCIAEoCzIe", + "Lmdvb2dsZS5hcGkuZXhwci52MWFscGhhMS5FeHByUglpdGVyUmFuZ2USGQoI", + "YWNjdV92YXIYAyABKAlSB2FjY3VWYXISOwoJYWNjdV9pbml0GAQgASgLMh4u", + "Z29vZ2xlLmFwaS5leHByLnYxYWxwaGExLkV4cHJSCGFjY3VJbml0EkUKDmxv", + "b3BfY29uZGl0aW9uGAUgASgLMh4uZ29vZ2xlLmFwaS5leHByLnYxYWxwaGEx", + "LkV4cHJSDWxvb3BDb25kaXRpb24SOwoJbG9vcF9zdGVwGAYgASgLMh4uZ29v", + "Z2xlLmFwaS5leHByLnYxYWxwaGExLkV4cHJSCGxvb3BTdGVwEjYKBnJlc3Vs", + "dBgHIAEoCzIeLmdvb2dsZS5hcGkuZXhwci52MWFscGhhMS5FeHByUgZyZXN1", + "bHRCCwoJZXhwcl9raW5kIsEDCghDb25zdGFudBI7CgpudWxsX3ZhbHVlGAEg", + "ASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZUgAUgludWxsVmFsdWUS", + "HwoKYm9vbF92YWx1ZRgCIAEoCEgAUglib29sVmFsdWUSIQoLaW50NjRfdmFs", + "dWUYAyABKANIAFIKaW50NjRWYWx1ZRIjCgx1aW50NjRfdmFsdWUYBCABKARI", + "AFILdWludDY0VmFsdWUSIwoMZG91YmxlX3ZhbHVlGAUgASgBSABSC2RvdWJs", + "ZVZhbHVlEiMKDHN0cmluZ192YWx1ZRgGIAEoCUgAUgtzdHJpbmdWYWx1ZRIh", + "CgtieXRlc192YWx1ZRgHIAEoDEgAUgpieXRlc1ZhbHVlEkYKDmR1cmF0aW9u", + "X3ZhbHVlGAggASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQgIYAUgA", + "Ug1kdXJhdGlvblZhbHVlEkkKD3RpbWVzdGFtcF92YWx1ZRgJIAEoCzIaLmdv", + "b2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAhgBSABSDnRpbWVzdGFtcFZhbHVl", + "Qg8KDWNvbnN0YW50X2tpbmQijAcKClNvdXJjZUluZm8SJQoOc3ludGF4X3Zl", + "cnNpb24YASABKAlSDXN5bnRheFZlcnNpb24SGgoIbG9jYXRpb24YAiABKAlS", + "CGxvY2F0aW9uEiEKDGxpbmVfb2Zmc2V0cxgDIAMoBVILbGluZU9mZnNldHMS", + "UQoJcG9zaXRpb25zGAQgAygLMjMuZ29vZ2xlLmFwaS5leHByLnYxYWxwaGEx", + "LlNvdXJjZUluZm8uUG9zaXRpb25zRW50cnlSCXBvc2l0aW9ucxJVCgttYWNy", + "b19jYWxscxgFIAMoCzI0Lmdvb2dsZS5hcGkuZXhwci52MWFscGhhMS5Tb3Vy", + "Y2VJbmZvLk1hY3JvQ2FsbHNFbnRyeVIKbWFjcm9DYWxscxJOCgpleHRlbnNp", + "b25zGAYgAygLMi4uZ29vZ2xlLmFwaS5leHByLnYxYWxwaGExLlNvdXJjZUlu", + "Zm8uRXh0ZW5zaW9uUgpleHRlbnNpb25zGoADCglFeHRlbnNpb24SDgoCaWQY", + "ASABKAlSAmlkEmkKE2FmZmVjdGVkX2NvbXBvbmVudHMYAiADKA4yOC5nb29n", + "bGUuYXBpLmV4cHIudjFhbHBoYTEuU291cmNlSW5mby5FeHRlbnNpb24uQ29t", + "cG9uZW50UhJhZmZlY3RlZENvbXBvbmVudHMSUAoHdmVyc2lvbhgDIAEoCzI2", + "Lmdvb2dsZS5hcGkuZXhwci52MWFscGhhMS5Tb3VyY2VJbmZvLkV4dGVuc2lv", + "bi5WZXJzaW9uUgd2ZXJzaW9uGjUKB1ZlcnNpb24SFAoFbWFqb3IYASABKANS", + "BW1ham9yEhQKBW1pbm9yGAIgASgDUgVtaW5vciJvCglDb21wb25lbnQSGQoV", + "Q09NUE9ORU5UX1VOU1BFQ0lGSUVEEAASFAoQQ09NUE9ORU5UX1BBUlNFUhAB", + "EhoKFkNPTVBPTkVOVF9UWVBFX0NIRUNLRVIQAhIVChFDT01QT05FTlRfUlVO", + "VElNRRADGjwKDlBvc2l0aW9uc0VudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQK", + "BXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaXQoPTWFjcm9DYWxsc0VudHJ5EhAK", + "A2tleRgBIAEoA1IDa2V5EjQKBXZhbHVlGAIgASgLMh4uZ29vZ2xlLmFwaS5l", + "eHByLnYxYWxwaGExLkV4cHJSBXZhbHVlOgI4ASJwCg5Tb3VyY2VQb3NpdGlv", + "bhIaCghsb2NhdGlvbhgBIAEoCVIIbG9jYXRpb24SFgoGb2Zmc2V0GAIgASgF", + "UgZvZmZzZXQSEgoEbGluZRgDIAEoBVIEbGluZRIWCgZjb2x1bW4YBCABKAVS", + "BmNvbHVtbkJuChxjb20uZ29vZ2xlLmFwaS5leHByLnYxYWxwaGExQgtTeW50", + "YXhQcm90b1ABWjxnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVh", + "cGlzL2FwaS9leHByL3YxYWxwaGExO2V4cHL4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { @@ -103,9 +114,10 @@ static SyntaxReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.Expr.Types.Call), global::Google.Api.Expr.V1Alpha1.Expr.Types.Call.Parser, new[]{ "Target", "Function", "Args" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.Expr.Types.CreateList), global::Google.Api.Expr.V1Alpha1.Expr.Types.CreateList.Parser, new[]{ "Elements", "OptionalIndices" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.Expr.Types.CreateStruct), global::Google.Api.Expr.V1Alpha1.Expr.Types.CreateStruct.Parser, new[]{ "MessageName", "Entries" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.Expr.Types.CreateStruct.Types.Entry), global::Google.Api.Expr.V1Alpha1.Expr.Types.CreateStruct.Types.Entry.Parser, new[]{ "Id", "FieldKey", "MapKey", "Value", "OptionalEntry" }, new[]{ "KeyKind" }, null, null, null)}), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.Expr.Types.Comprehension), global::Google.Api.Expr.V1Alpha1.Expr.Types.Comprehension.Parser, new[]{ "IterVar", "IterRange", "AccuVar", "AccuInit", "LoopCondition", "LoopStep", "Result" }, null, null, null, null)}), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.Expr.Types.Comprehension), global::Google.Api.Expr.V1Alpha1.Expr.Types.Comprehension.Parser, new[]{ "IterVar", "IterVar2", "IterRange", "AccuVar", "AccuInit", "LoopCondition", "LoopStep", "Result" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.Constant), global::Google.Api.Expr.V1Alpha1.Constant.Parser, new[]{ "NullValue", "BoolValue", "Int64Value", "Uint64Value", "DoubleValue", "StringValue", "BytesValue", "DurationValue", "TimestampValue" }, new[]{ "ConstantKind" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.SourceInfo), global::Google.Api.Expr.V1Alpha1.SourceInfo.Parser, new[]{ "SyntaxVersion", "Location", "LineOffsets", "Positions", "MacroCalls" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.SourceInfo), global::Google.Api.Expr.V1Alpha1.SourceInfo.Parser, new[]{ "SyntaxVersion", "Location", "LineOffsets", "Positions", "MacroCalls", "Extensions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension), global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Parser, new[]{ "Id", "AffectedComponents", "Version" }, null, new[]{ typeof(global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Component) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Version), global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Version.Parser, new[]{ "Major", "Minor" }, null, null, null, null)}), + null, null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Api.Expr.V1Alpha1.SourcePosition), global::Google.Api.Expr.V1Alpha1.SourcePosition.Parser, new[]{ "Location", "Offset", "Line", "Column" }, null, null, null, null) })); } @@ -383,14 +395,16 @@ public void MergeFrom(pb::CodedInputStream input) { /// operators with the exception of the '.' operator are modelled as function /// calls. This makes it easy to represent new operators into the existing AST. /// - /// All references within expressions must resolve to a [Decl][google.api.expr.v1alpha1.Decl] provided at - /// type-check for an expression to be valid. A reference may either be a bare - /// identifier `name` or a qualified identifier `google.api.name`. References - /// may either refer to a value or a function declaration. + /// All references within expressions must resolve to a + /// [Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an + /// expression to be valid. A reference may either be a bare identifier `name` or + /// a qualified identifier `google.api.name`. References may either refer to a + /// value or a function declaration. /// /// For example, the expression `google.api.name.startsWith('expr')` references - /// the declaration `google.api.name` within a [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and - /// the function declaration `startsWith`. + /// the declaration `google.api.name` within a + /// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the + /// function declaration `startsWith`. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] public sealed partial class Expr : pb::IMessage @@ -1072,7 +1086,8 @@ public Ident Clone() { /// Required. Holds a single, unqualified identifier, possibly preceded by a /// '.'. /// - /// Qualified names are represented by the [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression. + /// Qualified names are represented by the + /// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2754,6 +2769,36 @@ public void MergeFrom(pb::CodedInputStream input) { /// messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the /// macro tests whether the property is set to its default. For map and struct /// types, the macro tests whether the property `x` is defined on `m`. + /// + /// Comprehensions for the standard environment macros evaluation can be best + /// visualized as the following pseudocode: + /// + /// ``` + /// let `accu_var` = `accu_init` + /// for (let `iter_var` in `iter_range`) { + /// if (!`loop_condition`) { + /// break + /// } + /// `accu_var` = `loop_step` + /// } + /// return `result` + /// ``` + /// + /// Comprehensions for the optional V2 macros which support map-to-map + /// translation differ slightly from the standard environment macros in that + /// they expose both the key or index in addition to the value for each list + /// or map entry: + /// + /// ``` + /// let `accu_var` = `accu_init` + /// for (let `iter_var`, `iter_var2` in `iter_range`) { + /// if (!`loop_condition`) { + /// break + /// } + /// `accu_var` = `loop_step` + /// } + /// return `result` + /// ``` /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] public sealed partial class Comprehension : pb::IMessage @@ -2791,6 +2836,7 @@ public Comprehension() { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public Comprehension(Comprehension other) : this() { iterVar_ = other.iterVar_; + iterVar2_ = other.iterVar2_; iterRange_ = other.iterRange_ != null ? other.iterRange_.Clone() : null; accuVar_ = other.accuVar_; accuInit_ = other.accuInit_ != null ? other.accuInit_.Clone() : null; @@ -2810,7 +2856,9 @@ public Comprehension Clone() { public const int IterVarFieldNumber = 1; private string iterVar_ = ""; /// - /// The name of the iteration variable. + /// The name of the first iteration variable. + /// When the iter_range is a list, this variable is the list element. + /// When the iter_range is a map, this variable is the map entry key. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2821,11 +2869,29 @@ public string IterVar { } } + /// Field number for the "iter_var2" field. + public const int IterVar2FieldNumber = 8; + private string iterVar2_ = ""; + /// + /// The name of the second iteration variable, empty if not set. + /// When the iter_range is a list, this variable is the integer index. + /// When the iter_range is a map, this variable is the map entry value. + /// This field is only set for comprehension v2 macros. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string IterVar2 { + get { return iterVar2_; } + set { + iterVar2_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Field number for the "iter_range" field. public const int IterRangeFieldNumber = 2; private global::Google.Api.Expr.V1Alpha1.Expr iterRange_; /// - /// The range over which var iterates. + /// The range over which the comprehension iterates. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -2870,7 +2936,7 @@ public string AccuVar { public const int LoopConditionFieldNumber = 5; private global::Google.Api.Expr.V1Alpha1.Expr loopCondition_; /// - /// An expression which can contain iter_var and accu_var. + /// An expression which can contain iter_var, iter_var2, and accu_var. /// /// Returns false when the result has been computed and may be used as /// a hint to short-circuit the remainder of the comprehension. @@ -2888,7 +2954,7 @@ public string AccuVar { public const int LoopStepFieldNumber = 6; private global::Google.Api.Expr.V1Alpha1.Expr loopStep_; /// - /// An expression which can contain iter_var and accu_var. + /// An expression which can contain iter_var, iter_var2, and accu_var. /// /// Computes the next value of accu_var. /// @@ -2934,6 +3000,7 @@ public bool Equals(Comprehension other) { return true; } if (IterVar != other.IterVar) return false; + if (IterVar2 != other.IterVar2) return false; if (!object.Equals(IterRange, other.IterRange)) return false; if (AccuVar != other.AccuVar) return false; if (!object.Equals(AccuInit, other.AccuInit)) return false; @@ -2948,6 +3015,7 @@ public bool Equals(Comprehension other) { public override int GetHashCode() { int hash = 1; if (IterVar.Length != 0) hash ^= IterVar.GetHashCode(); + if (IterVar2.Length != 0) hash ^= IterVar2.GetHashCode(); if (iterRange_ != null) hash ^= IterRange.GetHashCode(); if (AccuVar.Length != 0) hash ^= AccuVar.GetHashCode(); if (accuInit_ != null) hash ^= AccuInit.GetHashCode(); @@ -3000,6 +3068,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(Result); } + if (IterVar2.Length != 0) { + output.WriteRawTag(66); + output.WriteString(IterVar2); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3038,6 +3110,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(Result); } + if (IterVar2.Length != 0) { + output.WriteRawTag(66); + output.WriteString(IterVar2); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3051,6 +3127,9 @@ public int CalculateSize() { if (IterVar.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(IterVar); } + if (IterVar2.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(IterVar2); + } if (iterRange_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(IterRange); } @@ -3084,6 +3163,9 @@ public void MergeFrom(Comprehension other) { if (other.IterVar.Length != 0) { IterVar = other.IterVar; } + if (other.IterVar2.Length != 0) { + IterVar2 = other.IterVar2; + } if (other.iterRange_ != null) { if (iterRange_ == null) { IterRange = new global::Google.Api.Expr.V1Alpha1.Expr(); @@ -3179,6 +3261,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Result); break; } + case 66: { + IterVar2 = input.ReadString(); + break; + } } } #endif @@ -3241,6 +3327,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Result); break; } + case 66: { + IterVar2 = input.ReadString(); + break; + } } } } @@ -3263,7 +3353,8 @@ public void MergeFrom(pb::CodedInputStream input) { /// primitives. /// /// Lists and structs are not included as constants as these aggregate types may - /// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require evaluation and are thus not constant. + /// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require + /// evaluation and are thus not constant. /// /// Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`, /// `true`, `null`. @@ -4018,6 +4109,7 @@ public SourceInfo(SourceInfo other) : this() { lineOffsets_ = other.lineOffsets_.Clone(); positions_ = other.positions_.Clone(); macroCalls_ = other.macroCalls_.Clone(); + extensions_ = other.extensions_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -4116,6 +4208,26 @@ public string Location { get { return macroCalls_; } } + /// Field number for the "extensions" field. + public const int ExtensionsFieldNumber = 6; + private static readonly pb::FieldCodec _repeated_extensions_codec + = pb::FieldCodec.ForMessage(50, global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Parser); + private readonly pbc::RepeatedField extensions_ = new pbc::RepeatedField(); + /// + /// A list of tags for extensions that were used while parsing or type checking + /// the source expression. For example, optimizations that require special + /// runtime support may be specified. + /// + /// These are used to check feature support between components in separate + /// implementations. This can be used to either skip redundant work or + /// report an error if the extension is unsupported. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Extensions { + get { return extensions_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -4136,6 +4248,7 @@ public bool Equals(SourceInfo other) { if(!lineOffsets_.Equals(other.lineOffsets_)) return false; if (!Positions.Equals(other.Positions)) return false; if (!MacroCalls.Equals(other.MacroCalls)) return false; + if(!extensions_.Equals(other.extensions_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4148,6 +4261,7 @@ public override int GetHashCode() { hash ^= lineOffsets_.GetHashCode(); hash ^= Positions.GetHashCode(); hash ^= MacroCalls.GetHashCode(); + hash ^= extensions_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4177,6 +4291,7 @@ public void WriteTo(pb::CodedOutputStream output) { lineOffsets_.WriteTo(output, _repeated_lineOffsets_codec); positions_.WriteTo(output, _map_positions_codec); macroCalls_.WriteTo(output, _map_macroCalls_codec); + extensions_.WriteTo(output, _repeated_extensions_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4198,6 +4313,7 @@ public void WriteTo(pb::CodedOutputStream output) { lineOffsets_.WriteTo(ref output, _repeated_lineOffsets_codec); positions_.WriteTo(ref output, _map_positions_codec); macroCalls_.WriteTo(ref output, _map_macroCalls_codec); + extensions_.WriteTo(ref output, _repeated_extensions_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -4217,6 +4333,7 @@ public int CalculateSize() { size += lineOffsets_.CalculateSize(_repeated_lineOffsets_codec); size += positions_.CalculateSize(_map_positions_codec); size += macroCalls_.CalculateSize(_map_macroCalls_codec); + size += extensions_.CalculateSize(_repeated_extensions_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4238,6 +4355,7 @@ public void MergeFrom(SourceInfo other) { lineOffsets_.Add(other.lineOffsets_); positions_.MergeFrom(other.positions_); macroCalls_.MergeFrom(other.macroCalls_); + extensions_.Add(other.extensions_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4278,6 +4396,10 @@ public void MergeFrom(pb::CodedInputStream input) { macroCalls_.AddEntriesFrom(input, _map_macroCalls_codec); break; } + case 50: { + extensions_.AddEntriesFrom(input, _repeated_extensions_codec); + break; + } } } #endif @@ -4318,11 +4440,589 @@ public void MergeFrom(pb::CodedInputStream input) { macroCalls_.AddEntriesFrom(ref input, _map_macroCalls_codec); break; } + case 50: { + extensions_.AddEntriesFrom(ref input, _repeated_extensions_codec); + break; + } } } } #endif + #region Nested types + /// Container for nested types declared in the SourceInfo message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types { + /// + /// An extension that was requested for the source expression. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class Extension : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Extension()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Api.Expr.V1Alpha1.SourceInfo.Descriptor.NestedTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Extension() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Extension(Extension other) : this() { + id_ = other.id_; + affectedComponents_ = other.affectedComponents_.Clone(); + version_ = other.version_ != null ? other.version_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Extension Clone() { + return new Extension(this); + } + + /// Field number for the "id" field. + public const int IdFieldNumber = 1; + private string id_ = ""; + /// + /// Identifier for the extension. Example: constant_folding + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Id { + get { return id_; } + set { + id_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "affected_components" field. + public const int AffectedComponentsFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_affectedComponents_codec + = pb::FieldCodec.ForEnum(18, x => (int) x, x => (global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Component) x); + private readonly pbc::RepeatedField affectedComponents_ = new pbc::RepeatedField(); + /// + /// If set, the listed components must understand the extension for the + /// expression to evaluate correctly. + /// + /// This field has set semantics, repeated values should be deduplicated. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField AffectedComponents { + get { return affectedComponents_; } + } + + /// Field number for the "version" field. + public const int VersionFieldNumber = 3; + private global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Version version_; + /// + /// Version info. May be skipped if it isn't meaningful for the extension. + /// (for example constant_folding might always be v0.0). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Version Version { + get { return version_; } + set { + version_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Extension); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Extension other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if(!affectedComponents_.Equals(other.affectedComponents_)) return false; + if (!object.Equals(Version, other.Version)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Id.Length != 0) hash ^= Id.GetHashCode(); + hash ^= affectedComponents_.GetHashCode(); + if (version_ != null) hash ^= Version.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + affectedComponents_.WriteTo(output, _repeated_affectedComponents_codec); + if (version_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Version); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Id.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Id); + } + affectedComponents_.WriteTo(ref output, _repeated_affectedComponents_codec); + if (version_ != null) { + output.WriteRawTag(26); + output.WriteMessage(Version); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Id.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Id); + } + size += affectedComponents_.CalculateSize(_repeated_affectedComponents_codec); + if (version_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Version); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Extension other) { + if (other == null) { + return; + } + if (other.Id.Length != 0) { + Id = other.Id; + } + affectedComponents_.Add(other.affectedComponents_); + if (other.version_ != null) { + if (version_ == null) { + Version = new global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Version(); + } + Version.MergeFrom(other.Version); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Id = input.ReadString(); + break; + } + case 18: + case 16: { + affectedComponents_.AddEntriesFrom(input, _repeated_affectedComponents_codec); + break; + } + case 26: { + if (version_ == null) { + Version = new global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Version(); + } + input.ReadMessage(Version); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Id = input.ReadString(); + break; + } + case 18: + case 16: { + affectedComponents_.AddEntriesFrom(ref input, _repeated_affectedComponents_codec); + break; + } + case 26: { + if (version_ == null) { + Version = new global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Types.Version(); + } + input.ReadMessage(Version); + break; + } + } + } + } + #endif + + #region Nested types + /// Container for nested types declared in the Extension message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types { + /// + /// CEL component specifier. + /// + public enum Component { + /// + /// Unspecified, default. + /// + [pbr::OriginalName("COMPONENT_UNSPECIFIED")] Unspecified = 0, + /// + /// Parser. Converts a CEL string to an AST. + /// + [pbr::OriginalName("COMPONENT_PARSER")] Parser = 1, + /// + /// Type checker. Checks that references in an AST are defined and types + /// agree. + /// + [pbr::OriginalName("COMPONENT_TYPE_CHECKER")] TypeChecker = 2, + /// + /// Runtime. Evaluates a parsed and optionally checked CEL AST against a + /// context. + /// + [pbr::OriginalName("COMPONENT_RUNTIME")] Runtime = 3, + } + + /// + /// Version + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class Version : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Version()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Api.Expr.V1Alpha1.SourceInfo.Types.Extension.Descriptor.NestedTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Version() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Version(Version other) : this() { + major_ = other.major_; + minor_ = other.minor_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Version Clone() { + return new Version(this); + } + + /// Field number for the "major" field. + public const int MajorFieldNumber = 1; + private long major_; + /// + /// Major version changes indicate different required support level from + /// the required components. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Major { + get { return major_; } + set { + major_ = value; + } + } + + /// Field number for the "minor" field. + public const int MinorFieldNumber = 2; + private long minor_; + /// + /// Minor version changes must not change the observed behavior from + /// existing implementations, but may be provided informationally. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Minor { + get { return minor_; } + set { + minor_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as Version); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Version other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Major != other.Major) return false; + if (Minor != other.Minor) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (Major != 0L) hash ^= Major.GetHashCode(); + if (Minor != 0L) hash ^= Minor.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Major != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Major); + } + if (Minor != 0L) { + output.WriteRawTag(16); + output.WriteInt64(Minor); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Major != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Major); + } + if (Minor != 0L) { + output.WriteRawTag(16); + output.WriteInt64(Minor); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (Major != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Major); + } + if (Minor != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Minor); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Version other) { + if (other == null) { + return; + } + if (other.Major != 0L) { + Major = other.Major; + } + if (other.Minor != 0L) { + Minor = other.Minor; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + Major = input.ReadInt64(); + break; + } + case 16: { + Minor = input.ReadInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + Major = input.ReadInt64(); + break; + } + case 16: { + Minor = input.ReadInt64(); + break; + } + } + } + } + #endif + + } + + } + #endregion + + } + + } + #endregion + } /// diff --git a/src/Sdk/Google/Api/FieldBehavior.g.cs b/src/Sdk/Google/Api/FieldBehavior.g.cs index 4bb81c5..59d298b 100644 --- a/src/Sdk/Google/Api/FieldBehavior.g.cs +++ b/src/Sdk/Google/Api/FieldBehavior.g.cs @@ -29,12 +29,12 @@ static FieldBehaviorReflection() { "ZWhhdmlvchIeChpGSUVMRF9CRUhBVklPUl9VTlNQRUNJRklFRBAAEgwKCE9Q", "VElPTkFMEAESDAoIUkVRVUlSRUQQAhIPCgtPVVRQVVRfT05MWRADEg4KCklO", "UFVUX09OTFkQBBINCglJTU1VVEFCTEUQBRISCg5VTk9SREVSRURfTElTVBAG", - "EhUKEU5PTl9FTVBUWV9ERUZBVUxUEAcSDgoKSURFTlRJRklFUhAIOmAKDmZp", + "EhUKEU5PTl9FTVBUWV9ERUZBVUxUEAcSDgoKSURFTlRJRklFUhAIOmQKDmZp", "ZWxkX2JlaGF2aW9yEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxic", - "CCADKA4yGS5nb29nbGUuYXBpLkZpZWxkQmVoYXZpb3JSDWZpZWxkQmVoYXZp", - "b3JCcAoOY29tLmdvb2dsZS5hcGlCEkZpZWxkQmVoYXZpb3JQcm90b1ABWkFn", - "b29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5v", - "dGF0aW9uczthbm5vdGF0aW9uc6ICBEdBUEliBnByb3RvMw==")); + "CCADKA4yGS5nb29nbGUuYXBpLkZpZWxkQmVoYXZpb3JCAhAAUg1maWVsZEJl", + "aGF2aW9yQnAKDmNvbS5nb29nbGUuYXBpQhJGaWVsZEJlaGF2aW9yUHJvdG9Q", + "AVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkv", + "YW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgRHQVBJYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.Api.FieldBehavior), }, new pb::Extension[] { FieldBehaviorExtensions.FieldBehavior }, null)); @@ -59,7 +59,7 @@ public static partial class FieldBehaviorExtensions { /// (google.api.field_behavior) = IMMUTABLE]; /// public static readonly pb::RepeatedExtension FieldBehavior = - new pb::RepeatedExtension(1052, pb::FieldCodec.ForEnum(8418, x => (int) x, x => (global::Google.Api.FieldBehavior) x)); + new pb::RepeatedExtension(1052, pb::FieldCodec.ForEnum(8416, x => (int) x, x => (global::Google.Api.FieldBehavior) x)); } #region Enums diff --git a/src/Sdk/Google/Api/Http.g.cs b/src/Sdk/Google/Api/Http.g.cs index 4129b23..73f3dc4 100644 --- a/src/Sdk/Google/Api/Http.g.cs +++ b/src/Sdk/Google/Api/Http.g.cs @@ -295,7 +295,7 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// # gRPC Transcoding + /// gRPC Transcoding /// /// gRPC Transcoding is a feature for mapping between a gRPC method and one or /// more HTTP REST endpoints. It allows developers to build a single API service @@ -336,9 +336,8 @@ public void MergeFrom(pb::CodedInputStream input) { /// /// This enables an HTTP REST to gRPC mapping as below: /// - /// HTTP | gRPC - /// -----|----- - /// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` + /// - HTTP: `GET /v1/messages/123456` + /// - gRPC: `GetMessage(name: "messages/123456")` /// /// Any fields in the request message which are not bound by the path template /// automatically become HTTP query parameters if there is no HTTP request body. @@ -362,11 +361,9 @@ public void MergeFrom(pb::CodedInputStream input) { /// /// This enables a HTTP JSON to RPC mapping as below: /// - /// HTTP | gRPC - /// -----|----- - /// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | - /// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: - /// "foo"))` + /// - HTTP: `GET /v1/messages/123456?revision=2&sub.subfield=foo` + /// - gRPC: `GetMessage(message_id: "123456" revision: 2 sub: + /// SubMessage(subfield: "foo"))` /// /// Note that fields which are mapped to URL query parameters must have a /// primitive type or a repeated primitive type or a non-repeated message type. @@ -396,10 +393,8 @@ public void MergeFrom(pb::CodedInputStream input) { /// representation of the JSON in the request body is determined by /// protos JSON encoding: /// - /// HTTP | gRPC - /// -----|----- - /// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: - /// "123456" message { text: "Hi!" })` + /// - HTTP: `PATCH /v1/messages/123456 { "text": "Hi!" }` + /// - gRPC: `UpdateMessage(message_id: "123456" message { text: "Hi!" })` /// /// The special name `*` can be used in the body mapping to define that /// every field not bound by the path template should be mapped to the @@ -421,10 +416,8 @@ public void MergeFrom(pb::CodedInputStream input) { /// /// The following HTTP JSON to RPC mapping is enabled: /// - /// HTTP | gRPC - /// -----|----- - /// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: - /// "123456" text: "Hi!")` + /// - HTTP: `PATCH /v1/messages/123456 { "text": "Hi!" }` + /// - gRPC: `UpdateMessage(message_id: "123456" text: "Hi!")` /// /// Note that when using `*` in the body mapping, it is not possible to /// have HTTP parameters, as all fields not bound by the path end in @@ -452,13 +445,13 @@ public void MergeFrom(pb::CodedInputStream input) { /// /// This enables the following two alternative HTTP JSON to RPC mappings: /// - /// HTTP | gRPC - /// -----|----- - /// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` - /// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: - /// "123456")` + /// - HTTP: `GET /v1/messages/123456` + /// - gRPC: `GetMessage(message_id: "123456")` /// - /// ## Rules for HTTP mapping + /// - HTTP: `GET /v1/users/me/messages/123456` + /// - gRPC: `GetMessage(user_id: "me" message_id: "123456")` + /// + /// Rules for HTTP mapping /// /// 1. Leaf request fields (recursive expansion nested messages in the request /// message) are classified into three categories: @@ -477,7 +470,7 @@ public void MergeFrom(pb::CodedInputStream input) { /// request body, all /// fields are passed via URL path and URL query parameters. /// - /// ### Path template syntax + /// Path template syntax /// /// Template = "/" Segments [ Verb ] ; /// Segments = Segment { "/" Segment } ; @@ -516,7 +509,7 @@ public void MergeFrom(pb::CodedInputStream input) { /// Document](https://developers.google.com/discovery/v1/reference/apis) as /// `{+var}`. /// - /// ## Using gRPC API Service Configuration + /// Using gRPC API Service Configuration /// /// gRPC API Service Configuration (service config) is a configuration language /// for configuring a gRPC service to become a user-facing product. The @@ -531,15 +524,14 @@ public void MergeFrom(pb::CodedInputStream input) { /// specified in the service config will override any matching transcoding /// configuration in the proto. /// - /// Example: + /// The following example selects a gRPC method and applies an `HttpRule` to it: /// /// http: /// rules: - /// # Selects a gRPC method and applies HttpRule to it. /// - selector: example.v1.Messaging.GetMessage /// get: /v1/messages/{message_id}/{sub.subfield} /// - /// ## Special notes + /// Special notes /// /// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the /// proto to JSON conversion must follow the [proto3 diff --git a/src/Sdk/Grpc/Gateway/ProtocGenOpenapiv2/Options/Openapiv2.g.cs b/src/Sdk/Grpc/Gateway/ProtocGenOpenapiv2/Options/Openapiv2.g.cs index 123dee8..406701b 100644 --- a/src/Sdk/Grpc/Gateway/ProtocGenOpenapiv2/Options/Openapiv2.g.cs +++ b/src/Sdk/Grpc/Gateway/ProtocGenOpenapiv2/Options/Openapiv2.g.cs @@ -2173,7 +2173,7 @@ public void MergeFrom(pb::CodedInputStream input) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static partial class Types { /// - /// `Type` is a a supported HTTP header type. + /// `Type` is a supported HTTP header type. /// See https://swagger.io/specification/v2/#parameterType. /// public enum Type { diff --git a/src/Sdk/Validate/Validate.g.cs b/src/Sdk/Validate/Validate.g.cs deleted file mode 100644 index a7748eb..0000000 --- a/src/Sdk/Validate/Validate.g.cs +++ /dev/null @@ -1,13968 +0,0 @@ -// -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: validate/validate.proto -// -#pragma warning disable 1591, 0612, 3021, 8981 -#region Designer generated code - -using pb = global::Google.Protobuf; -using pbc = global::Google.Protobuf.Collections; -using pbr = global::Google.Protobuf.Reflection; -using scg = global::System.Collections.Generic; -namespace Validate { - - /// Holder for reflection information generated from validate/validate.proto - public static partial class ValidateReflection { - - #region Descriptor - /// File descriptor for validate/validate.proto - public static pbr::FileDescriptor Descriptor { - get { return descriptor; } - } - private static pbr::FileDescriptor descriptor; - - static ValidateReflection() { - byte[] descriptorData = global::System.Convert.FromBase64String( - string.Concat( - "Chd2YWxpZGF0ZS92YWxpZGF0ZS5wcm90bxIIdmFsaWRhdGUaIGdvb2dsZS9w", - "cm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVy", - "YXRpb24ucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8i", - "yAgKCkZpZWxkUnVsZXMSMAoHbWVzc2FnZRgRIAEoCzIWLnZhbGlkYXRlLk1l", - "c3NhZ2VSdWxlc1IHbWVzc2FnZRIsCgVmbG9hdBgBIAEoCzIULnZhbGlkYXRl", - "LkZsb2F0UnVsZXNIAFIFZmxvYXQSLwoGZG91YmxlGAIgASgLMhUudmFsaWRh", - "dGUuRG91YmxlUnVsZXNIAFIGZG91YmxlEiwKBWludDMyGAMgASgLMhQudmFs", - "aWRhdGUuSW50MzJSdWxlc0gAUgVpbnQzMhIsCgVpbnQ2NBgEIAEoCzIULnZh", - "bGlkYXRlLkludDY0UnVsZXNIAFIFaW50NjQSLwoGdWludDMyGAUgASgLMhUu", - "dmFsaWRhdGUuVUludDMyUnVsZXNIAFIGdWludDMyEi8KBnVpbnQ2NBgGIAEo", - "CzIVLnZhbGlkYXRlLlVJbnQ2NFJ1bGVzSABSBnVpbnQ2NBIvCgZzaW50MzIY", - "ByABKAsyFS52YWxpZGF0ZS5TSW50MzJSdWxlc0gAUgZzaW50MzISLwoGc2lu", - "dDY0GAggASgLMhUudmFsaWRhdGUuU0ludDY0UnVsZXNIAFIGc2ludDY0EjIK", - "B2ZpeGVkMzIYCSABKAsyFi52YWxpZGF0ZS5GaXhlZDMyUnVsZXNIAFIHZml4", - "ZWQzMhIyCgdmaXhlZDY0GAogASgLMhYudmFsaWRhdGUuRml4ZWQ2NFJ1bGVz", - "SABSB2ZpeGVkNjQSNQoIc2ZpeGVkMzIYCyABKAsyFy52YWxpZGF0ZS5TRml4", - "ZWQzMlJ1bGVzSABSCHNmaXhlZDMyEjUKCHNmaXhlZDY0GAwgASgLMhcudmFs", - "aWRhdGUuU0ZpeGVkNjRSdWxlc0gAUghzZml4ZWQ2NBIpCgRib29sGA0gASgL", - "MhMudmFsaWRhdGUuQm9vbFJ1bGVzSABSBGJvb2wSLwoGc3RyaW5nGA4gASgL", - "MhUudmFsaWRhdGUuU3RyaW5nUnVsZXNIAFIGc3RyaW5nEiwKBWJ5dGVzGA8g", - "ASgLMhQudmFsaWRhdGUuQnl0ZXNSdWxlc0gAUgVieXRlcxIpCgRlbnVtGBAg", - "ASgLMhMudmFsaWRhdGUuRW51bVJ1bGVzSABSBGVudW0SNQoIcmVwZWF0ZWQY", - "EiABKAsyFy52YWxpZGF0ZS5SZXBlYXRlZFJ1bGVzSABSCHJlcGVhdGVkEiYK", - "A21hcBgTIAEoCzISLnZhbGlkYXRlLk1hcFJ1bGVzSABSA21hcBImCgNhbnkY", - "FCABKAsyEi52YWxpZGF0ZS5BbnlSdWxlc0gAUgNhbnkSNQoIZHVyYXRpb24Y", - "FSABKAsyFy52YWxpZGF0ZS5EdXJhdGlvblJ1bGVzSABSCGR1cmF0aW9uEjgK", - "CXRpbWVzdGFtcBgWIAEoCzIYLnZhbGlkYXRlLlRpbWVzdGFtcFJ1bGVzSABS", - "CXRpbWVzdGFtcEIGCgR0eXBlIrABCgpGbG9hdFJ1bGVzEhQKBWNvbnN0GAEg", - "ASgCUgVjb25zdBIOCgJsdBgCIAEoAlICbHQSEAoDbHRlGAMgASgCUgNsdGUS", - "DgoCZ3QYBCABKAJSAmd0EhAKA2d0ZRgFIAEoAlIDZ3RlEg4KAmluGAYgAygC", - "UgJpbhIVCgZub3RfaW4YByADKAJSBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgI", - "IAEoCFILaWdub3JlRW1wdHkisQEKC0RvdWJsZVJ1bGVzEhQKBWNvbnN0GAEg", - "ASgBUgVjb25zdBIOCgJsdBgCIAEoAVICbHQSEAoDbHRlGAMgASgBUgNsdGUS", - "DgoCZ3QYBCABKAFSAmd0EhAKA2d0ZRgFIAEoAVIDZ3RlEg4KAmluGAYgAygB", - "UgJpbhIVCgZub3RfaW4YByADKAFSBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgI", - "IAEoCFILaWdub3JlRW1wdHkisAEKCkludDMyUnVsZXMSFAoFY29uc3QYASAB", - "KAVSBWNvbnN0Eg4KAmx0GAIgASgFUgJsdBIQCgNsdGUYAyABKAVSA2x0ZRIO", - "CgJndBgEIAEoBVICZ3QSEAoDZ3RlGAUgASgFUgNndGUSDgoCaW4YBiADKAVS", - "AmluEhUKBm5vdF9pbhgHIAMoBVIFbm90SW4SIQoMaWdub3JlX2VtcHR5GAgg", - "ASgIUgtpZ25vcmVFbXB0eSKwAQoKSW50NjRSdWxlcxIUCgVjb25zdBgBIAEo", - "A1IFY29uc3QSDgoCbHQYAiABKANSAmx0EhAKA2x0ZRgDIAEoA1IDbHRlEg4K", - "Amd0GAQgASgDUgJndBIQCgNndGUYBSABKANSA2d0ZRIOCgJpbhgGIAMoA1IC", - "aW4SFQoGbm90X2luGAcgAygDUgVub3RJbhIhCgxpZ25vcmVfZW1wdHkYCCAB", - "KAhSC2lnbm9yZUVtcHR5IrEBCgtVSW50MzJSdWxlcxIUCgVjb25zdBgBIAEo", - "DVIFY29uc3QSDgoCbHQYAiABKA1SAmx0EhAKA2x0ZRgDIAEoDVIDbHRlEg4K", - "Amd0GAQgASgNUgJndBIQCgNndGUYBSABKA1SA2d0ZRIOCgJpbhgGIAMoDVIC", - "aW4SFQoGbm90X2luGAcgAygNUgVub3RJbhIhCgxpZ25vcmVfZW1wdHkYCCAB", - "KAhSC2lnbm9yZUVtcHR5IrEBCgtVSW50NjRSdWxlcxIUCgVjb25zdBgBIAEo", - "BFIFY29uc3QSDgoCbHQYAiABKARSAmx0EhAKA2x0ZRgDIAEoBFIDbHRlEg4K", - "Amd0GAQgASgEUgJndBIQCgNndGUYBSABKARSA2d0ZRIOCgJpbhgGIAMoBFIC", - "aW4SFQoGbm90X2luGAcgAygEUgVub3RJbhIhCgxpZ25vcmVfZW1wdHkYCCAB", - "KAhSC2lnbm9yZUVtcHR5IrEBCgtTSW50MzJSdWxlcxIUCgVjb25zdBgBIAEo", - "EVIFY29uc3QSDgoCbHQYAiABKBFSAmx0EhAKA2x0ZRgDIAEoEVIDbHRlEg4K", - "Amd0GAQgASgRUgJndBIQCgNndGUYBSABKBFSA2d0ZRIOCgJpbhgGIAMoEVIC", - "aW4SFQoGbm90X2luGAcgAygRUgVub3RJbhIhCgxpZ25vcmVfZW1wdHkYCCAB", - "KAhSC2lnbm9yZUVtcHR5IrEBCgtTSW50NjRSdWxlcxIUCgVjb25zdBgBIAEo", - "ElIFY29uc3QSDgoCbHQYAiABKBJSAmx0EhAKA2x0ZRgDIAEoElIDbHRlEg4K", - "Amd0GAQgASgSUgJndBIQCgNndGUYBSABKBJSA2d0ZRIOCgJpbhgGIAMoElIC", - "aW4SFQoGbm90X2luGAcgAygSUgVub3RJbhIhCgxpZ25vcmVfZW1wdHkYCCAB", - "KAhSC2lnbm9yZUVtcHR5IrIBCgxGaXhlZDMyUnVsZXMSFAoFY29uc3QYASAB", - "KAdSBWNvbnN0Eg4KAmx0GAIgASgHUgJsdBIQCgNsdGUYAyABKAdSA2x0ZRIO", - "CgJndBgEIAEoB1ICZ3QSEAoDZ3RlGAUgASgHUgNndGUSDgoCaW4YBiADKAdS", - "AmluEhUKBm5vdF9pbhgHIAMoB1IFbm90SW4SIQoMaWdub3JlX2VtcHR5GAgg", - "ASgIUgtpZ25vcmVFbXB0eSKyAQoMRml4ZWQ2NFJ1bGVzEhQKBWNvbnN0GAEg", - "ASgGUgVjb25zdBIOCgJsdBgCIAEoBlICbHQSEAoDbHRlGAMgASgGUgNsdGUS", - "DgoCZ3QYBCABKAZSAmd0EhAKA2d0ZRgFIAEoBlIDZ3RlEg4KAmluGAYgAygG", - "UgJpbhIVCgZub3RfaW4YByADKAZSBW5vdEluEiEKDGlnbm9yZV9lbXB0eRgI", - "IAEoCFILaWdub3JlRW1wdHkiswEKDVNGaXhlZDMyUnVsZXMSFAoFY29uc3QY", - "ASABKA9SBWNvbnN0Eg4KAmx0GAIgASgPUgJsdBIQCgNsdGUYAyABKA9SA2x0", - "ZRIOCgJndBgEIAEoD1ICZ3QSEAoDZ3RlGAUgASgPUgNndGUSDgoCaW4YBiAD", - "KA9SAmluEhUKBm5vdF9pbhgHIAMoD1IFbm90SW4SIQoMaWdub3JlX2VtcHR5", - "GAggASgIUgtpZ25vcmVFbXB0eSKzAQoNU0ZpeGVkNjRSdWxlcxIUCgVjb25z", - "dBgBIAEoEFIFY29uc3QSDgoCbHQYAiABKBBSAmx0EhAKA2x0ZRgDIAEoEFID", - "bHRlEg4KAmd0GAQgASgQUgJndBIQCgNndGUYBSABKBBSA2d0ZRIOCgJpbhgG", - "IAMoEFICaW4SFQoGbm90X2luGAcgAygQUgVub3RJbhIhCgxpZ25vcmVfZW1w", - "dHkYCCABKAhSC2lnbm9yZUVtcHR5IiEKCUJvb2xSdWxlcxIUCgVjb25zdBgB", - "IAEoCFIFY29uc3Qi1AUKC1N0cmluZ1J1bGVzEhQKBWNvbnN0GAEgASgJUgVj", - "b25zdBIQCgNsZW4YEyABKARSA2xlbhIXCgdtaW5fbGVuGAIgASgEUgZtaW5M", - "ZW4SFwoHbWF4X2xlbhgDIAEoBFIGbWF4TGVuEhsKCWxlbl9ieXRlcxgUIAEo", - "BFIIbGVuQnl0ZXMSGwoJbWluX2J5dGVzGAQgASgEUghtaW5CeXRlcxIbCglt", - "YXhfYnl0ZXMYBSABKARSCG1heEJ5dGVzEhgKB3BhdHRlcm4YBiABKAlSB3Bh", - "dHRlcm4SFgoGcHJlZml4GAcgASgJUgZwcmVmaXgSFgoGc3VmZml4GAggASgJ", - "UgZzdWZmaXgSGgoIY29udGFpbnMYCSABKAlSCGNvbnRhaW5zEiEKDG5vdF9j", - "b250YWlucxgXIAEoCVILbm90Q29udGFpbnMSDgoCaW4YCiADKAlSAmluEhUK", - "Bm5vdF9pbhgLIAMoCVIFbm90SW4SFgoFZW1haWwYDCABKAhIAFIFZW1haWwS", - "HAoIaG9zdG5hbWUYDSABKAhIAFIIaG9zdG5hbWUSEAoCaXAYDiABKAhIAFIC", - "aXASFAoEaXB2NBgPIAEoCEgAUgRpcHY0EhQKBGlwdjYYECABKAhIAFIEaXB2", - "NhISCgN1cmkYESABKAhIAFIDdXJpEhkKB3VyaV9yZWYYEiABKAhIAFIGdXJp", - "UmVmEhoKB2FkZHJlc3MYFSABKAhIAFIHYWRkcmVzcxIUCgR1dWlkGBYgASgI", - "SABSBHV1aWQSQAoQd2VsbF9rbm93bl9yZWdleBgYIAEoDjIULnZhbGlkYXRl", - "Lktub3duUmVnZXhIAFIOd2VsbEtub3duUmVnZXgSHAoGc3RyaWN0GBkgASgI", - "OgR0cnVlUgZzdHJpY3QSIQoMaWdub3JlX2VtcHR5GBogASgIUgtpZ25vcmVF", - "bXB0eUIMCgp3ZWxsX2tub3duIuICCgpCeXRlc1J1bGVzEhQKBWNvbnN0GAEg", - "ASgMUgVjb25zdBIQCgNsZW4YDSABKARSA2xlbhIXCgdtaW5fbGVuGAIgASgE", - "UgZtaW5MZW4SFwoHbWF4X2xlbhgDIAEoBFIGbWF4TGVuEhgKB3BhdHRlcm4Y", - "BCABKAlSB3BhdHRlcm4SFgoGcHJlZml4GAUgASgMUgZwcmVmaXgSFgoGc3Vm", - "Zml4GAYgASgMUgZzdWZmaXgSGgoIY29udGFpbnMYByABKAxSCGNvbnRhaW5z", - "Eg4KAmluGAggAygMUgJpbhIVCgZub3RfaW4YCSADKAxSBW5vdEluEhAKAmlw", - "GAogASgISABSAmlwEhQKBGlwdjQYCyABKAhIAFIEaXB2NBIUCgRpcHY2GAwg", - "ASgISABSBGlwdjYSIQoMaWdub3JlX2VtcHR5GA4gASgIUgtpZ25vcmVFbXB0", - "eUIMCgp3ZWxsX2tub3duImsKCUVudW1SdWxlcxIUCgVjb25zdBgBIAEoBVIF", - "Y29uc3QSIQoMZGVmaW5lZF9vbmx5GAIgASgIUgtkZWZpbmVkT25seRIOCgJp", - "bhgDIAMoBVICaW4SFQoGbm90X2luGAQgAygFUgVub3RJbiI+CgxNZXNzYWdl", - "UnVsZXMSEgoEc2tpcBgBIAEoCFIEc2tpcBIaCghyZXF1aXJlZBgCIAEoCFII", - "cmVxdWlyZWQisAEKDVJlcGVhdGVkUnVsZXMSGwoJbWluX2l0ZW1zGAEgASgE", - "UghtaW5JdGVtcxIbCgltYXhfaXRlbXMYAiABKARSCG1heEl0ZW1zEhYKBnVu", - "aXF1ZRgDIAEoCFIGdW5pcXVlEioKBWl0ZW1zGAQgASgLMhQudmFsaWRhdGUu", - "RmllbGRSdWxlc1IFaXRlbXMSIQoMaWdub3JlX2VtcHR5GAUgASgIUgtpZ25v", - "cmVFbXB0eSLcAQoITWFwUnVsZXMSGwoJbWluX3BhaXJzGAEgASgEUghtaW5Q", - "YWlycxIbCgltYXhfcGFpcnMYAiABKARSCG1heFBhaXJzEhsKCW5vX3NwYXJz", - "ZRgDIAEoCFIIbm9TcGFyc2USKAoEa2V5cxgEIAEoCzIULnZhbGlkYXRlLkZp", - "ZWxkUnVsZXNSBGtleXMSLAoGdmFsdWVzGAUgASgLMhQudmFsaWRhdGUuRmll", - "bGRSdWxlc1IGdmFsdWVzEiEKDGlnbm9yZV9lbXB0eRgGIAEoCFILaWdub3Jl", - "RW1wdHkiTQoIQW55UnVsZXMSGgoIcmVxdWlyZWQYASABKAhSCHJlcXVpcmVk", - "Eg4KAmluGAIgAygJUgJpbhIVCgZub3RfaW4YAyADKAlSBW5vdEluIukCCg1E", - "dXJhdGlvblJ1bGVzEhoKCHJlcXVpcmVkGAEgASgIUghyZXF1aXJlZBIvCgVj", - "b25zdBgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIFY29uc3QS", - "KQoCbHQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SAmx0EisK", - "A2x0ZRgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIDbHRlEikK", - "Amd0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgJndBIrCgNn", - "dGUYBiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SA2d0ZRIpCgJp", - "bhgHIAMoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblICaW4SMAoGbm90", - "X2luGAggAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgVub3RJbiLz", - "AgoOVGltZXN0YW1wUnVsZXMSGgoIcmVxdWlyZWQYASABKAhSCHJlcXVpcmVk", - "EjAKBWNvbnN0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIF", - "Y29uc3QSKgoCbHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1w", - "UgJsdBIsCgNsdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1w", - "UgNsdGUSKgoCZ3QYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1w", - "UgJndBIsCgNndGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1w", - "UgNndGUSFQoGbHRfbm93GAcgASgIUgVsdE5vdxIVCgZndF9ub3cYCCABKAhS", - "BWd0Tm93EjEKBndpdGhpbhgJIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJh", - "dGlvblIGd2l0aGluKkYKCktub3duUmVnZXgSCwoHVU5LTk9XThAAEhQKEEhU", - "VFBfSEVBREVSX05BTUUQARIVChFIVFRQX0hFQURFUl9WQUxVRRACOjwKCGRp", - "c2FibGVkEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGK8IIAEo", - "CFIIZGlzYWJsZWQ6OgoHaWdub3JlZBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNz", - "YWdlT3B0aW9ucxiwCCABKAhSB2lnbm9yZWQ6OgoIcmVxdWlyZWQSHS5nb29n", - "bGUucHJvdG9idWYuT25lb2ZPcHRpb25zGK8IIAEoCFIIcmVxdWlyZWQ6SgoF", - "cnVsZXMSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGK8IIAEoCzIU", - "LnZhbGlkYXRlLkZpZWxkUnVsZXNSBXJ1bGVzQlAKGmlvLmVudm95cHJveHku", - "cGd2LnZhbGlkYXRlWjJnaXRodWIuY29tL2Vudm95cHJveHkvcHJvdG9jLWdl", - "bi12YWxpZGF0ZS92YWxpZGF0ZQ==")); - descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Validate.KnownRegex), }, new pb::Extension[] { ValidateExtensions.Disabled, ValidateExtensions.Ignored, ValidateExtensions.Required, ValidateExtensions.Rules }, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.FieldRules), global::Validate.FieldRules.Parser, new[]{ "Message", "Float", "Double", "Int32", "Int64", "Uint32", "Uint64", "Sint32", "Sint64", "Fixed32", "Fixed64", "Sfixed32", "Sfixed64", "Bool", "String", "Bytes", "Enum", "Repeated", "Map", "Any", "Duration", "Timestamp" }, new[]{ "Type" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.FloatRules), global::Validate.FloatRules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.DoubleRules), global::Validate.DoubleRules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.Int32Rules), global::Validate.Int32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.Int64Rules), global::Validate.Int64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.UInt32Rules), global::Validate.UInt32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.UInt64Rules), global::Validate.UInt64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.SInt32Rules), global::Validate.SInt32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.SInt64Rules), global::Validate.SInt64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.Fixed32Rules), global::Validate.Fixed32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.Fixed64Rules), global::Validate.Fixed64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.SFixed32Rules), global::Validate.SFixed32Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.SFixed64Rules), global::Validate.SFixed64Rules.Parser, new[]{ "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.BoolRules), global::Validate.BoolRules.Parser, new[]{ "Const" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.StringRules), global::Validate.StringRules.Parser, new[]{ "Const", "Len", "MinLen", "MaxLen", "LenBytes", "MinBytes", "MaxBytes", "Pattern", "Prefix", "Suffix", "Contains", "NotContains", "In", "NotIn", "Email", "Hostname", "Ip", "Ipv4", "Ipv6", "Uri", "UriRef", "Address", "Uuid", "WellKnownRegex", "Strict", "IgnoreEmpty" }, new[]{ "WellKnown" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.BytesRules), global::Validate.BytesRules.Parser, new[]{ "Const", "Len", "MinLen", "MaxLen", "Pattern", "Prefix", "Suffix", "Contains", "In", "NotIn", "Ip", "Ipv4", "Ipv6", "IgnoreEmpty" }, new[]{ "WellKnown" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.EnumRules), global::Validate.EnumRules.Parser, new[]{ "Const", "DefinedOnly", "In", "NotIn" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.MessageRules), global::Validate.MessageRules.Parser, new[]{ "Skip", "Required" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.RepeatedRules), global::Validate.RepeatedRules.Parser, new[]{ "MinItems", "MaxItems", "Unique", "Items", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.MapRules), global::Validate.MapRules.Parser, new[]{ "MinPairs", "MaxPairs", "NoSparse", "Keys", "Values", "IgnoreEmpty" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.AnyRules), global::Validate.AnyRules.Parser, new[]{ "Required", "In", "NotIn" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.DurationRules), global::Validate.DurationRules.Parser, new[]{ "Required", "Const", "Lt", "Lte", "Gt", "Gte", "In", "NotIn" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Validate.TimestampRules), global::Validate.TimestampRules.Parser, new[]{ "Required", "Const", "Lt", "Lte", "Gt", "Gte", "LtNow", "GtNow", "Within" }, null, null, null, null) - })); - } - #endregion - - } - /// Holder for extension identifiers generated from the top level of validate/validate.proto - public static partial class ValidateExtensions { - /// - /// Disabled nullifies any validation rules for this message, including any - /// message fields associated with it that do support validation. - /// - public static readonly pb::Extension Disabled = - new pb::Extension(1071, pb::FieldCodec.ForBool(8568, false)); - /// - /// Ignore skips generation of validation methods for this message. - /// - public static readonly pb::Extension Ignored = - new pb::Extension(1072, pb::FieldCodec.ForBool(8576, false)); - /// - /// Required ensures that exactly one the field options in a oneof is set; - /// validation fails if no fields in the oneof are set. - /// - public static readonly pb::Extension Required = - new pb::Extension(1071, pb::FieldCodec.ForBool(8568, false)); - /// - /// Rules specify the validations to be performed on this field. By default, - /// no validation is performed against a field. - /// - public static readonly pb::Extension Rules = - new pb::Extension(1071, pb::FieldCodec.ForMessage(8570, global::Validate.FieldRules.Parser)); - } - - #region Enums - /// - /// WellKnownRegex contain some well-known patterns. - /// - public enum KnownRegex { - [pbr::OriginalName("UNKNOWN")] Unknown = 0, - /// - /// HTTP header name as defined by RFC 7230. - /// - [pbr::OriginalName("HTTP_HEADER_NAME")] HttpHeaderName = 1, - /// - /// HTTP header value as defined by RFC 7230. - /// - [pbr::OriginalName("HTTP_HEADER_VALUE")] HttpHeaderValue = 2, - } - - #endregion - - #region Messages - /// - /// FieldRules encapsulates the rules for each type of field. Depending on the - /// field, the correct set should be used to ensure proper validations. - /// - public sealed partial class FieldRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FieldRules()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[0]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldRules(FieldRules other) : this() { - message_ = other.message_ != null ? other.message_.Clone() : null; - switch (other.TypeCase) { - case TypeOneofCase.Float: - Float = other.Float.Clone(); - break; - case TypeOneofCase.Double: - Double = other.Double.Clone(); - break; - case TypeOneofCase.Int32: - Int32 = other.Int32.Clone(); - break; - case TypeOneofCase.Int64: - Int64 = other.Int64.Clone(); - break; - case TypeOneofCase.Uint32: - Uint32 = other.Uint32.Clone(); - break; - case TypeOneofCase.Uint64: - Uint64 = other.Uint64.Clone(); - break; - case TypeOneofCase.Sint32: - Sint32 = other.Sint32.Clone(); - break; - case TypeOneofCase.Sint64: - Sint64 = other.Sint64.Clone(); - break; - case TypeOneofCase.Fixed32: - Fixed32 = other.Fixed32.Clone(); - break; - case TypeOneofCase.Fixed64: - Fixed64 = other.Fixed64.Clone(); - break; - case TypeOneofCase.Sfixed32: - Sfixed32 = other.Sfixed32.Clone(); - break; - case TypeOneofCase.Sfixed64: - Sfixed64 = other.Sfixed64.Clone(); - break; - case TypeOneofCase.Bool: - Bool = other.Bool.Clone(); - break; - case TypeOneofCase.String: - String = other.String.Clone(); - break; - case TypeOneofCase.Bytes: - Bytes = other.Bytes.Clone(); - break; - case TypeOneofCase.Enum: - Enum = other.Enum.Clone(); - break; - case TypeOneofCase.Repeated: - Repeated = other.Repeated.Clone(); - break; - case TypeOneofCase.Map: - Map = other.Map.Clone(); - break; - case TypeOneofCase.Any: - Any = other.Any.Clone(); - break; - case TypeOneofCase.Duration: - Duration = other.Duration.Clone(); - break; - case TypeOneofCase.Timestamp: - Timestamp = other.Timestamp.Clone(); - break; - } - - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FieldRules Clone() { - return new FieldRules(this); - } - - /// Field number for the "message" field. - public const int MessageFieldNumber = 17; - private global::Validate.MessageRules message_; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.MessageRules Message { - get { return message_; } - set { - message_ = value; - } - } - - /// Field number for the "float" field. - public const int FloatFieldNumber = 1; - /// - /// Scalar Field Types - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.FloatRules Float { - get { return typeCase_ == TypeOneofCase.Float ? (global::Validate.FloatRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Float; - } - } - - /// Field number for the "double" field. - public const int DoubleFieldNumber = 2; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.DoubleRules Double { - get { return typeCase_ == TypeOneofCase.Double ? (global::Validate.DoubleRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Double; - } - } - - /// Field number for the "int32" field. - public const int Int32FieldNumber = 3; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.Int32Rules Int32 { - get { return typeCase_ == TypeOneofCase.Int32 ? (global::Validate.Int32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Int32; - } - } - - /// Field number for the "int64" field. - public const int Int64FieldNumber = 4; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.Int64Rules Int64 { - get { return typeCase_ == TypeOneofCase.Int64 ? (global::Validate.Int64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Int64; - } - } - - /// Field number for the "uint32" field. - public const int Uint32FieldNumber = 5; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.UInt32Rules Uint32 { - get { return typeCase_ == TypeOneofCase.Uint32 ? (global::Validate.UInt32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Uint32; - } - } - - /// Field number for the "uint64" field. - public const int Uint64FieldNumber = 6; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.UInt64Rules Uint64 { - get { return typeCase_ == TypeOneofCase.Uint64 ? (global::Validate.UInt64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Uint64; - } - } - - /// Field number for the "sint32" field. - public const int Sint32FieldNumber = 7; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.SInt32Rules Sint32 { - get { return typeCase_ == TypeOneofCase.Sint32 ? (global::Validate.SInt32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sint32; - } - } - - /// Field number for the "sint64" field. - public const int Sint64FieldNumber = 8; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.SInt64Rules Sint64 { - get { return typeCase_ == TypeOneofCase.Sint64 ? (global::Validate.SInt64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sint64; - } - } - - /// Field number for the "fixed32" field. - public const int Fixed32FieldNumber = 9; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.Fixed32Rules Fixed32 { - get { return typeCase_ == TypeOneofCase.Fixed32 ? (global::Validate.Fixed32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Fixed32; - } - } - - /// Field number for the "fixed64" field. - public const int Fixed64FieldNumber = 10; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.Fixed64Rules Fixed64 { - get { return typeCase_ == TypeOneofCase.Fixed64 ? (global::Validate.Fixed64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Fixed64; - } - } - - /// Field number for the "sfixed32" field. - public const int Sfixed32FieldNumber = 11; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.SFixed32Rules Sfixed32 { - get { return typeCase_ == TypeOneofCase.Sfixed32 ? (global::Validate.SFixed32Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sfixed32; - } - } - - /// Field number for the "sfixed64" field. - public const int Sfixed64FieldNumber = 12; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.SFixed64Rules Sfixed64 { - get { return typeCase_ == TypeOneofCase.Sfixed64 ? (global::Validate.SFixed64Rules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Sfixed64; - } - } - - /// Field number for the "bool" field. - public const int BoolFieldNumber = 13; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.BoolRules Bool { - get { return typeCase_ == TypeOneofCase.Bool ? (global::Validate.BoolRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Bool; - } - } - - /// Field number for the "string" field. - public const int StringFieldNumber = 14; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.StringRules String { - get { return typeCase_ == TypeOneofCase.String ? (global::Validate.StringRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.String; - } - } - - /// Field number for the "bytes" field. - public const int BytesFieldNumber = 15; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.BytesRules Bytes { - get { return typeCase_ == TypeOneofCase.Bytes ? (global::Validate.BytesRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Bytes; - } - } - - /// Field number for the "enum" field. - public const int EnumFieldNumber = 16; - /// - /// Complex Field Types - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.EnumRules Enum { - get { return typeCase_ == TypeOneofCase.Enum ? (global::Validate.EnumRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Enum; - } - } - - /// Field number for the "repeated" field. - public const int RepeatedFieldNumber = 18; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.RepeatedRules Repeated { - get { return typeCase_ == TypeOneofCase.Repeated ? (global::Validate.RepeatedRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Repeated; - } - } - - /// Field number for the "map" field. - public const int MapFieldNumber = 19; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.MapRules Map { - get { return typeCase_ == TypeOneofCase.Map ? (global::Validate.MapRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Map; - } - } - - /// Field number for the "any" field. - public const int AnyFieldNumber = 20; - /// - /// Well-Known Field Types - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.AnyRules Any { - get { return typeCase_ == TypeOneofCase.Any ? (global::Validate.AnyRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Any; - } - } - - /// Field number for the "duration" field. - public const int DurationFieldNumber = 21; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.DurationRules Duration { - get { return typeCase_ == TypeOneofCase.Duration ? (global::Validate.DurationRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Duration; - } - } - - /// Field number for the "timestamp" field. - public const int TimestampFieldNumber = 22; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.TimestampRules Timestamp { - get { return typeCase_ == TypeOneofCase.Timestamp ? (global::Validate.TimestampRules) type_ : null; } - set { - type_ = value; - typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Timestamp; - } - } - - private object type_; - /// Enum of possible cases for the "type" oneof. - public enum TypeOneofCase { - None = 0, - Float = 1, - Double = 2, - Int32 = 3, - Int64 = 4, - Uint32 = 5, - Uint64 = 6, - Sint32 = 7, - Sint64 = 8, - Fixed32 = 9, - Fixed64 = 10, - Sfixed32 = 11, - Sfixed64 = 12, - Bool = 13, - String = 14, - Bytes = 15, - Enum = 16, - Repeated = 18, - Map = 19, - Any = 20, - Duration = 21, - Timestamp = 22, - } - private TypeOneofCase typeCase_ = TypeOneofCase.None; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TypeOneofCase TypeCase { - get { return typeCase_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearType() { - typeCase_ = TypeOneofCase.None; - type_ = null; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as FieldRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(FieldRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (!object.Equals(Message, other.Message)) return false; - if (!object.Equals(Float, other.Float)) return false; - if (!object.Equals(Double, other.Double)) return false; - if (!object.Equals(Int32, other.Int32)) return false; - if (!object.Equals(Int64, other.Int64)) return false; - if (!object.Equals(Uint32, other.Uint32)) return false; - if (!object.Equals(Uint64, other.Uint64)) return false; - if (!object.Equals(Sint32, other.Sint32)) return false; - if (!object.Equals(Sint64, other.Sint64)) return false; - if (!object.Equals(Fixed32, other.Fixed32)) return false; - if (!object.Equals(Fixed64, other.Fixed64)) return false; - if (!object.Equals(Sfixed32, other.Sfixed32)) return false; - if (!object.Equals(Sfixed64, other.Sfixed64)) return false; - if (!object.Equals(Bool, other.Bool)) return false; - if (!object.Equals(String, other.String)) return false; - if (!object.Equals(Bytes, other.Bytes)) return false; - if (!object.Equals(Enum, other.Enum)) return false; - if (!object.Equals(Repeated, other.Repeated)) return false; - if (!object.Equals(Map, other.Map)) return false; - if (!object.Equals(Any, other.Any)) return false; - if (!object.Equals(Duration, other.Duration)) return false; - if (!object.Equals(Timestamp, other.Timestamp)) return false; - if (TypeCase != other.TypeCase) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (message_ != null) hash ^= Message.GetHashCode(); - if (typeCase_ == TypeOneofCase.Float) hash ^= Float.GetHashCode(); - if (typeCase_ == TypeOneofCase.Double) hash ^= Double.GetHashCode(); - if (typeCase_ == TypeOneofCase.Int32) hash ^= Int32.GetHashCode(); - if (typeCase_ == TypeOneofCase.Int64) hash ^= Int64.GetHashCode(); - if (typeCase_ == TypeOneofCase.Uint32) hash ^= Uint32.GetHashCode(); - if (typeCase_ == TypeOneofCase.Uint64) hash ^= Uint64.GetHashCode(); - if (typeCase_ == TypeOneofCase.Sint32) hash ^= Sint32.GetHashCode(); - if (typeCase_ == TypeOneofCase.Sint64) hash ^= Sint64.GetHashCode(); - if (typeCase_ == TypeOneofCase.Fixed32) hash ^= Fixed32.GetHashCode(); - if (typeCase_ == TypeOneofCase.Fixed64) hash ^= Fixed64.GetHashCode(); - if (typeCase_ == TypeOneofCase.Sfixed32) hash ^= Sfixed32.GetHashCode(); - if (typeCase_ == TypeOneofCase.Sfixed64) hash ^= Sfixed64.GetHashCode(); - if (typeCase_ == TypeOneofCase.Bool) hash ^= Bool.GetHashCode(); - if (typeCase_ == TypeOneofCase.String) hash ^= String.GetHashCode(); - if (typeCase_ == TypeOneofCase.Bytes) hash ^= Bytes.GetHashCode(); - if (typeCase_ == TypeOneofCase.Enum) hash ^= Enum.GetHashCode(); - if (typeCase_ == TypeOneofCase.Repeated) hash ^= Repeated.GetHashCode(); - if (typeCase_ == TypeOneofCase.Map) hash ^= Map.GetHashCode(); - if (typeCase_ == TypeOneofCase.Any) hash ^= Any.GetHashCode(); - if (typeCase_ == TypeOneofCase.Duration) hash ^= Duration.GetHashCode(); - if (typeCase_ == TypeOneofCase.Timestamp) hash ^= Timestamp.GetHashCode(); - hash ^= (int) typeCase_; - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (typeCase_ == TypeOneofCase.Float) { - output.WriteRawTag(10); - output.WriteMessage(Float); - } - if (typeCase_ == TypeOneofCase.Double) { - output.WriteRawTag(18); - output.WriteMessage(Double); - } - if (typeCase_ == TypeOneofCase.Int32) { - output.WriteRawTag(26); - output.WriteMessage(Int32); - } - if (typeCase_ == TypeOneofCase.Int64) { - output.WriteRawTag(34); - output.WriteMessage(Int64); - } - if (typeCase_ == TypeOneofCase.Uint32) { - output.WriteRawTag(42); - output.WriteMessage(Uint32); - } - if (typeCase_ == TypeOneofCase.Uint64) { - output.WriteRawTag(50); - output.WriteMessage(Uint64); - } - if (typeCase_ == TypeOneofCase.Sint32) { - output.WriteRawTag(58); - output.WriteMessage(Sint32); - } - if (typeCase_ == TypeOneofCase.Sint64) { - output.WriteRawTag(66); - output.WriteMessage(Sint64); - } - if (typeCase_ == TypeOneofCase.Fixed32) { - output.WriteRawTag(74); - output.WriteMessage(Fixed32); - } - if (typeCase_ == TypeOneofCase.Fixed64) { - output.WriteRawTag(82); - output.WriteMessage(Fixed64); - } - if (typeCase_ == TypeOneofCase.Sfixed32) { - output.WriteRawTag(90); - output.WriteMessage(Sfixed32); - } - if (typeCase_ == TypeOneofCase.Sfixed64) { - output.WriteRawTag(98); - output.WriteMessage(Sfixed64); - } - if (typeCase_ == TypeOneofCase.Bool) { - output.WriteRawTag(106); - output.WriteMessage(Bool); - } - if (typeCase_ == TypeOneofCase.String) { - output.WriteRawTag(114); - output.WriteMessage(String); - } - if (typeCase_ == TypeOneofCase.Bytes) { - output.WriteRawTag(122); - output.WriteMessage(Bytes); - } - if (typeCase_ == TypeOneofCase.Enum) { - output.WriteRawTag(130, 1); - output.WriteMessage(Enum); - } - if (message_ != null) { - output.WriteRawTag(138, 1); - output.WriteMessage(Message); - } - if (typeCase_ == TypeOneofCase.Repeated) { - output.WriteRawTag(146, 1); - output.WriteMessage(Repeated); - } - if (typeCase_ == TypeOneofCase.Map) { - output.WriteRawTag(154, 1); - output.WriteMessage(Map); - } - if (typeCase_ == TypeOneofCase.Any) { - output.WriteRawTag(162, 1); - output.WriteMessage(Any); - } - if (typeCase_ == TypeOneofCase.Duration) { - output.WriteRawTag(170, 1); - output.WriteMessage(Duration); - } - if (typeCase_ == TypeOneofCase.Timestamp) { - output.WriteRawTag(178, 1); - output.WriteMessage(Timestamp); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (typeCase_ == TypeOneofCase.Float) { - output.WriteRawTag(10); - output.WriteMessage(Float); - } - if (typeCase_ == TypeOneofCase.Double) { - output.WriteRawTag(18); - output.WriteMessage(Double); - } - if (typeCase_ == TypeOneofCase.Int32) { - output.WriteRawTag(26); - output.WriteMessage(Int32); - } - if (typeCase_ == TypeOneofCase.Int64) { - output.WriteRawTag(34); - output.WriteMessage(Int64); - } - if (typeCase_ == TypeOneofCase.Uint32) { - output.WriteRawTag(42); - output.WriteMessage(Uint32); - } - if (typeCase_ == TypeOneofCase.Uint64) { - output.WriteRawTag(50); - output.WriteMessage(Uint64); - } - if (typeCase_ == TypeOneofCase.Sint32) { - output.WriteRawTag(58); - output.WriteMessage(Sint32); - } - if (typeCase_ == TypeOneofCase.Sint64) { - output.WriteRawTag(66); - output.WriteMessage(Sint64); - } - if (typeCase_ == TypeOneofCase.Fixed32) { - output.WriteRawTag(74); - output.WriteMessage(Fixed32); - } - if (typeCase_ == TypeOneofCase.Fixed64) { - output.WriteRawTag(82); - output.WriteMessage(Fixed64); - } - if (typeCase_ == TypeOneofCase.Sfixed32) { - output.WriteRawTag(90); - output.WriteMessage(Sfixed32); - } - if (typeCase_ == TypeOneofCase.Sfixed64) { - output.WriteRawTag(98); - output.WriteMessage(Sfixed64); - } - if (typeCase_ == TypeOneofCase.Bool) { - output.WriteRawTag(106); - output.WriteMessage(Bool); - } - if (typeCase_ == TypeOneofCase.String) { - output.WriteRawTag(114); - output.WriteMessage(String); - } - if (typeCase_ == TypeOneofCase.Bytes) { - output.WriteRawTag(122); - output.WriteMessage(Bytes); - } - if (typeCase_ == TypeOneofCase.Enum) { - output.WriteRawTag(130, 1); - output.WriteMessage(Enum); - } - if (message_ != null) { - output.WriteRawTag(138, 1); - output.WriteMessage(Message); - } - if (typeCase_ == TypeOneofCase.Repeated) { - output.WriteRawTag(146, 1); - output.WriteMessage(Repeated); - } - if (typeCase_ == TypeOneofCase.Map) { - output.WriteRawTag(154, 1); - output.WriteMessage(Map); - } - if (typeCase_ == TypeOneofCase.Any) { - output.WriteRawTag(162, 1); - output.WriteMessage(Any); - } - if (typeCase_ == TypeOneofCase.Duration) { - output.WriteRawTag(170, 1); - output.WriteMessage(Duration); - } - if (typeCase_ == TypeOneofCase.Timestamp) { - output.WriteRawTag(178, 1); - output.WriteMessage(Timestamp); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (message_ != null) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(Message); - } - if (typeCase_ == TypeOneofCase.Float) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Float); - } - if (typeCase_ == TypeOneofCase.Double) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Double); - } - if (typeCase_ == TypeOneofCase.Int32) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Int32); - } - if (typeCase_ == TypeOneofCase.Int64) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Int64); - } - if (typeCase_ == TypeOneofCase.Uint32) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Uint32); - } - if (typeCase_ == TypeOneofCase.Uint64) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Uint64); - } - if (typeCase_ == TypeOneofCase.Sint32) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Sint32); - } - if (typeCase_ == TypeOneofCase.Sint64) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Sint64); - } - if (typeCase_ == TypeOneofCase.Fixed32) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Fixed32); - } - if (typeCase_ == TypeOneofCase.Fixed64) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Fixed64); - } - if (typeCase_ == TypeOneofCase.Sfixed32) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Sfixed32); - } - if (typeCase_ == TypeOneofCase.Sfixed64) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Sfixed64); - } - if (typeCase_ == TypeOneofCase.Bool) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bool); - } - if (typeCase_ == TypeOneofCase.String) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(String); - } - if (typeCase_ == TypeOneofCase.Bytes) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bytes); - } - if (typeCase_ == TypeOneofCase.Enum) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(Enum); - } - if (typeCase_ == TypeOneofCase.Repeated) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(Repeated); - } - if (typeCase_ == TypeOneofCase.Map) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(Map); - } - if (typeCase_ == TypeOneofCase.Any) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(Any); - } - if (typeCase_ == TypeOneofCase.Duration) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(Duration); - } - if (typeCase_ == TypeOneofCase.Timestamp) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(Timestamp); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(FieldRules other) { - if (other == null) { - return; - } - if (other.message_ != null) { - if (message_ == null) { - Message = new global::Validate.MessageRules(); - } - Message.MergeFrom(other.Message); - } - switch (other.TypeCase) { - case TypeOneofCase.Float: - if (Float == null) { - Float = new global::Validate.FloatRules(); - } - Float.MergeFrom(other.Float); - break; - case TypeOneofCase.Double: - if (Double == null) { - Double = new global::Validate.DoubleRules(); - } - Double.MergeFrom(other.Double); - break; - case TypeOneofCase.Int32: - if (Int32 == null) { - Int32 = new global::Validate.Int32Rules(); - } - Int32.MergeFrom(other.Int32); - break; - case TypeOneofCase.Int64: - if (Int64 == null) { - Int64 = new global::Validate.Int64Rules(); - } - Int64.MergeFrom(other.Int64); - break; - case TypeOneofCase.Uint32: - if (Uint32 == null) { - Uint32 = new global::Validate.UInt32Rules(); - } - Uint32.MergeFrom(other.Uint32); - break; - case TypeOneofCase.Uint64: - if (Uint64 == null) { - Uint64 = new global::Validate.UInt64Rules(); - } - Uint64.MergeFrom(other.Uint64); - break; - case TypeOneofCase.Sint32: - if (Sint32 == null) { - Sint32 = new global::Validate.SInt32Rules(); - } - Sint32.MergeFrom(other.Sint32); - break; - case TypeOneofCase.Sint64: - if (Sint64 == null) { - Sint64 = new global::Validate.SInt64Rules(); - } - Sint64.MergeFrom(other.Sint64); - break; - case TypeOneofCase.Fixed32: - if (Fixed32 == null) { - Fixed32 = new global::Validate.Fixed32Rules(); - } - Fixed32.MergeFrom(other.Fixed32); - break; - case TypeOneofCase.Fixed64: - if (Fixed64 == null) { - Fixed64 = new global::Validate.Fixed64Rules(); - } - Fixed64.MergeFrom(other.Fixed64); - break; - case TypeOneofCase.Sfixed32: - if (Sfixed32 == null) { - Sfixed32 = new global::Validate.SFixed32Rules(); - } - Sfixed32.MergeFrom(other.Sfixed32); - break; - case TypeOneofCase.Sfixed64: - if (Sfixed64 == null) { - Sfixed64 = new global::Validate.SFixed64Rules(); - } - Sfixed64.MergeFrom(other.Sfixed64); - break; - case TypeOneofCase.Bool: - if (Bool == null) { - Bool = new global::Validate.BoolRules(); - } - Bool.MergeFrom(other.Bool); - break; - case TypeOneofCase.String: - if (String == null) { - String = new global::Validate.StringRules(); - } - String.MergeFrom(other.String); - break; - case TypeOneofCase.Bytes: - if (Bytes == null) { - Bytes = new global::Validate.BytesRules(); - } - Bytes.MergeFrom(other.Bytes); - break; - case TypeOneofCase.Enum: - if (Enum == null) { - Enum = new global::Validate.EnumRules(); - } - Enum.MergeFrom(other.Enum); - break; - case TypeOneofCase.Repeated: - if (Repeated == null) { - Repeated = new global::Validate.RepeatedRules(); - } - Repeated.MergeFrom(other.Repeated); - break; - case TypeOneofCase.Map: - if (Map == null) { - Map = new global::Validate.MapRules(); - } - Map.MergeFrom(other.Map); - break; - case TypeOneofCase.Any: - if (Any == null) { - Any = new global::Validate.AnyRules(); - } - Any.MergeFrom(other.Any); - break; - case TypeOneofCase.Duration: - if (Duration == null) { - Duration = new global::Validate.DurationRules(); - } - Duration.MergeFrom(other.Duration); - break; - case TypeOneofCase.Timestamp: - if (Timestamp == null) { - Timestamp = new global::Validate.TimestampRules(); - } - Timestamp.MergeFrom(other.Timestamp); - break; - } - - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - global::Validate.FloatRules subBuilder = new global::Validate.FloatRules(); - if (typeCase_ == TypeOneofCase.Float) { - subBuilder.MergeFrom(Float); - } - input.ReadMessage(subBuilder); - Float = subBuilder; - break; - } - case 18: { - global::Validate.DoubleRules subBuilder = new global::Validate.DoubleRules(); - if (typeCase_ == TypeOneofCase.Double) { - subBuilder.MergeFrom(Double); - } - input.ReadMessage(subBuilder); - Double = subBuilder; - break; - } - case 26: { - global::Validate.Int32Rules subBuilder = new global::Validate.Int32Rules(); - if (typeCase_ == TypeOneofCase.Int32) { - subBuilder.MergeFrom(Int32); - } - input.ReadMessage(subBuilder); - Int32 = subBuilder; - break; - } - case 34: { - global::Validate.Int64Rules subBuilder = new global::Validate.Int64Rules(); - if (typeCase_ == TypeOneofCase.Int64) { - subBuilder.MergeFrom(Int64); - } - input.ReadMessage(subBuilder); - Int64 = subBuilder; - break; - } - case 42: { - global::Validate.UInt32Rules subBuilder = new global::Validate.UInt32Rules(); - if (typeCase_ == TypeOneofCase.Uint32) { - subBuilder.MergeFrom(Uint32); - } - input.ReadMessage(subBuilder); - Uint32 = subBuilder; - break; - } - case 50: { - global::Validate.UInt64Rules subBuilder = new global::Validate.UInt64Rules(); - if (typeCase_ == TypeOneofCase.Uint64) { - subBuilder.MergeFrom(Uint64); - } - input.ReadMessage(subBuilder); - Uint64 = subBuilder; - break; - } - case 58: { - global::Validate.SInt32Rules subBuilder = new global::Validate.SInt32Rules(); - if (typeCase_ == TypeOneofCase.Sint32) { - subBuilder.MergeFrom(Sint32); - } - input.ReadMessage(subBuilder); - Sint32 = subBuilder; - break; - } - case 66: { - global::Validate.SInt64Rules subBuilder = new global::Validate.SInt64Rules(); - if (typeCase_ == TypeOneofCase.Sint64) { - subBuilder.MergeFrom(Sint64); - } - input.ReadMessage(subBuilder); - Sint64 = subBuilder; - break; - } - case 74: { - global::Validate.Fixed32Rules subBuilder = new global::Validate.Fixed32Rules(); - if (typeCase_ == TypeOneofCase.Fixed32) { - subBuilder.MergeFrom(Fixed32); - } - input.ReadMessage(subBuilder); - Fixed32 = subBuilder; - break; - } - case 82: { - global::Validate.Fixed64Rules subBuilder = new global::Validate.Fixed64Rules(); - if (typeCase_ == TypeOneofCase.Fixed64) { - subBuilder.MergeFrom(Fixed64); - } - input.ReadMessage(subBuilder); - Fixed64 = subBuilder; - break; - } - case 90: { - global::Validate.SFixed32Rules subBuilder = new global::Validate.SFixed32Rules(); - if (typeCase_ == TypeOneofCase.Sfixed32) { - subBuilder.MergeFrom(Sfixed32); - } - input.ReadMessage(subBuilder); - Sfixed32 = subBuilder; - break; - } - case 98: { - global::Validate.SFixed64Rules subBuilder = new global::Validate.SFixed64Rules(); - if (typeCase_ == TypeOneofCase.Sfixed64) { - subBuilder.MergeFrom(Sfixed64); - } - input.ReadMessage(subBuilder); - Sfixed64 = subBuilder; - break; - } - case 106: { - global::Validate.BoolRules subBuilder = new global::Validate.BoolRules(); - if (typeCase_ == TypeOneofCase.Bool) { - subBuilder.MergeFrom(Bool); - } - input.ReadMessage(subBuilder); - Bool = subBuilder; - break; - } - case 114: { - global::Validate.StringRules subBuilder = new global::Validate.StringRules(); - if (typeCase_ == TypeOneofCase.String) { - subBuilder.MergeFrom(String); - } - input.ReadMessage(subBuilder); - String = subBuilder; - break; - } - case 122: { - global::Validate.BytesRules subBuilder = new global::Validate.BytesRules(); - if (typeCase_ == TypeOneofCase.Bytes) { - subBuilder.MergeFrom(Bytes); - } - input.ReadMessage(subBuilder); - Bytes = subBuilder; - break; - } - case 130: { - global::Validate.EnumRules subBuilder = new global::Validate.EnumRules(); - if (typeCase_ == TypeOneofCase.Enum) { - subBuilder.MergeFrom(Enum); - } - input.ReadMessage(subBuilder); - Enum = subBuilder; - break; - } - case 138: { - if (message_ == null) { - Message = new global::Validate.MessageRules(); - } - input.ReadMessage(Message); - break; - } - case 146: { - global::Validate.RepeatedRules subBuilder = new global::Validate.RepeatedRules(); - if (typeCase_ == TypeOneofCase.Repeated) { - subBuilder.MergeFrom(Repeated); - } - input.ReadMessage(subBuilder); - Repeated = subBuilder; - break; - } - case 154: { - global::Validate.MapRules subBuilder = new global::Validate.MapRules(); - if (typeCase_ == TypeOneofCase.Map) { - subBuilder.MergeFrom(Map); - } - input.ReadMessage(subBuilder); - Map = subBuilder; - break; - } - case 162: { - global::Validate.AnyRules subBuilder = new global::Validate.AnyRules(); - if (typeCase_ == TypeOneofCase.Any) { - subBuilder.MergeFrom(Any); - } - input.ReadMessage(subBuilder); - Any = subBuilder; - break; - } - case 170: { - global::Validate.DurationRules subBuilder = new global::Validate.DurationRules(); - if (typeCase_ == TypeOneofCase.Duration) { - subBuilder.MergeFrom(Duration); - } - input.ReadMessage(subBuilder); - Duration = subBuilder; - break; - } - case 178: { - global::Validate.TimestampRules subBuilder = new global::Validate.TimestampRules(); - if (typeCase_ == TypeOneofCase.Timestamp) { - subBuilder.MergeFrom(Timestamp); - } - input.ReadMessage(subBuilder); - Timestamp = subBuilder; - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - global::Validate.FloatRules subBuilder = new global::Validate.FloatRules(); - if (typeCase_ == TypeOneofCase.Float) { - subBuilder.MergeFrom(Float); - } - input.ReadMessage(subBuilder); - Float = subBuilder; - break; - } - case 18: { - global::Validate.DoubleRules subBuilder = new global::Validate.DoubleRules(); - if (typeCase_ == TypeOneofCase.Double) { - subBuilder.MergeFrom(Double); - } - input.ReadMessage(subBuilder); - Double = subBuilder; - break; - } - case 26: { - global::Validate.Int32Rules subBuilder = new global::Validate.Int32Rules(); - if (typeCase_ == TypeOneofCase.Int32) { - subBuilder.MergeFrom(Int32); - } - input.ReadMessage(subBuilder); - Int32 = subBuilder; - break; - } - case 34: { - global::Validate.Int64Rules subBuilder = new global::Validate.Int64Rules(); - if (typeCase_ == TypeOneofCase.Int64) { - subBuilder.MergeFrom(Int64); - } - input.ReadMessage(subBuilder); - Int64 = subBuilder; - break; - } - case 42: { - global::Validate.UInt32Rules subBuilder = new global::Validate.UInt32Rules(); - if (typeCase_ == TypeOneofCase.Uint32) { - subBuilder.MergeFrom(Uint32); - } - input.ReadMessage(subBuilder); - Uint32 = subBuilder; - break; - } - case 50: { - global::Validate.UInt64Rules subBuilder = new global::Validate.UInt64Rules(); - if (typeCase_ == TypeOneofCase.Uint64) { - subBuilder.MergeFrom(Uint64); - } - input.ReadMessage(subBuilder); - Uint64 = subBuilder; - break; - } - case 58: { - global::Validate.SInt32Rules subBuilder = new global::Validate.SInt32Rules(); - if (typeCase_ == TypeOneofCase.Sint32) { - subBuilder.MergeFrom(Sint32); - } - input.ReadMessage(subBuilder); - Sint32 = subBuilder; - break; - } - case 66: { - global::Validate.SInt64Rules subBuilder = new global::Validate.SInt64Rules(); - if (typeCase_ == TypeOneofCase.Sint64) { - subBuilder.MergeFrom(Sint64); - } - input.ReadMessage(subBuilder); - Sint64 = subBuilder; - break; - } - case 74: { - global::Validate.Fixed32Rules subBuilder = new global::Validate.Fixed32Rules(); - if (typeCase_ == TypeOneofCase.Fixed32) { - subBuilder.MergeFrom(Fixed32); - } - input.ReadMessage(subBuilder); - Fixed32 = subBuilder; - break; - } - case 82: { - global::Validate.Fixed64Rules subBuilder = new global::Validate.Fixed64Rules(); - if (typeCase_ == TypeOneofCase.Fixed64) { - subBuilder.MergeFrom(Fixed64); - } - input.ReadMessage(subBuilder); - Fixed64 = subBuilder; - break; - } - case 90: { - global::Validate.SFixed32Rules subBuilder = new global::Validate.SFixed32Rules(); - if (typeCase_ == TypeOneofCase.Sfixed32) { - subBuilder.MergeFrom(Sfixed32); - } - input.ReadMessage(subBuilder); - Sfixed32 = subBuilder; - break; - } - case 98: { - global::Validate.SFixed64Rules subBuilder = new global::Validate.SFixed64Rules(); - if (typeCase_ == TypeOneofCase.Sfixed64) { - subBuilder.MergeFrom(Sfixed64); - } - input.ReadMessage(subBuilder); - Sfixed64 = subBuilder; - break; - } - case 106: { - global::Validate.BoolRules subBuilder = new global::Validate.BoolRules(); - if (typeCase_ == TypeOneofCase.Bool) { - subBuilder.MergeFrom(Bool); - } - input.ReadMessage(subBuilder); - Bool = subBuilder; - break; - } - case 114: { - global::Validate.StringRules subBuilder = new global::Validate.StringRules(); - if (typeCase_ == TypeOneofCase.String) { - subBuilder.MergeFrom(String); - } - input.ReadMessage(subBuilder); - String = subBuilder; - break; - } - case 122: { - global::Validate.BytesRules subBuilder = new global::Validate.BytesRules(); - if (typeCase_ == TypeOneofCase.Bytes) { - subBuilder.MergeFrom(Bytes); - } - input.ReadMessage(subBuilder); - Bytes = subBuilder; - break; - } - case 130: { - global::Validate.EnumRules subBuilder = new global::Validate.EnumRules(); - if (typeCase_ == TypeOneofCase.Enum) { - subBuilder.MergeFrom(Enum); - } - input.ReadMessage(subBuilder); - Enum = subBuilder; - break; - } - case 138: { - if (message_ == null) { - Message = new global::Validate.MessageRules(); - } - input.ReadMessage(Message); - break; - } - case 146: { - global::Validate.RepeatedRules subBuilder = new global::Validate.RepeatedRules(); - if (typeCase_ == TypeOneofCase.Repeated) { - subBuilder.MergeFrom(Repeated); - } - input.ReadMessage(subBuilder); - Repeated = subBuilder; - break; - } - case 154: { - global::Validate.MapRules subBuilder = new global::Validate.MapRules(); - if (typeCase_ == TypeOneofCase.Map) { - subBuilder.MergeFrom(Map); - } - input.ReadMessage(subBuilder); - Map = subBuilder; - break; - } - case 162: { - global::Validate.AnyRules subBuilder = new global::Validate.AnyRules(); - if (typeCase_ == TypeOneofCase.Any) { - subBuilder.MergeFrom(Any); - } - input.ReadMessage(subBuilder); - Any = subBuilder; - break; - } - case 170: { - global::Validate.DurationRules subBuilder = new global::Validate.DurationRules(); - if (typeCase_ == TypeOneofCase.Duration) { - subBuilder.MergeFrom(Duration); - } - input.ReadMessage(subBuilder); - Duration = subBuilder; - break; - } - case 178: { - global::Validate.TimestampRules subBuilder = new global::Validate.TimestampRules(); - if (typeCase_ == TypeOneofCase.Timestamp) { - subBuilder.MergeFrom(Timestamp); - } - input.ReadMessage(subBuilder); - Timestamp = subBuilder; - break; - } - } - } - } - #endif - - } - - /// - /// FloatRules describes the constraints applied to `float` values - /// - public sealed partial class FloatRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new FloatRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[1]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FloatRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FloatRules(FloatRules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public FloatRules Clone() { - return new FloatRules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static float ConstDefaultValue = 0F; - - private float const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public float Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static float LtDefaultValue = 0F; - - private float lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public float Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static float LteDefaultValue = 0F; - - private float lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public float Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static float GtDefaultValue = 0F; - - private float gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public float Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static float GteDefaultValue = 0F; - - private float gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public float Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForFloat(53); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForFloat(61); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as FloatRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(FloatRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Const, other.Const)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Lt, other.Lt)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Lte, other.Lte)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Gt, other.Gt)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Gte, other.Gte)) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Const); - if (HasLt) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Lt); - if (HasLte) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Lte); - if (HasGt) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Gt); - if (HasGte) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Gte); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(13); - output.WriteFloat(Const); - } - if (HasLt) { - output.WriteRawTag(21); - output.WriteFloat(Lt); - } - if (HasLte) { - output.WriteRawTag(29); - output.WriteFloat(Lte); - } - if (HasGt) { - output.WriteRawTag(37); - output.WriteFloat(Gt); - } - if (HasGte) { - output.WriteRawTag(45); - output.WriteFloat(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(13); - output.WriteFloat(Const); - } - if (HasLt) { - output.WriteRawTag(21); - output.WriteFloat(Lt); - } - if (HasLte) { - output.WriteRawTag(29); - output.WriteFloat(Lte); - } - if (HasGt) { - output.WriteRawTag(37); - output.WriteFloat(Gt); - } - if (HasGte) { - output.WriteRawTag(45); - output.WriteFloat(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + 4; - } - if (HasLt) { - size += 1 + 4; - } - if (HasLte) { - size += 1 + 4; - } - if (HasGt) { - size += 1 + 4; - } - if (HasGte) { - size += 1 + 4; - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(FloatRules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 13: { - Const = input.ReadFloat(); - break; - } - case 21: { - Lt = input.ReadFloat(); - break; - } - case 29: { - Lte = input.ReadFloat(); - break; - } - case 37: { - Gt = input.ReadFloat(); - break; - } - case 45: { - Gte = input.ReadFloat(); - break; - } - case 50: - case 53: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 61: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 13: { - Const = input.ReadFloat(); - break; - } - case 21: { - Lt = input.ReadFloat(); - break; - } - case 29: { - Lte = input.ReadFloat(); - break; - } - case 37: { - Gt = input.ReadFloat(); - break; - } - case 45: { - Gte = input.ReadFloat(); - break; - } - case 50: - case 53: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 61: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// DoubleRules describes the constraints applied to `double` values - /// - public sealed partial class DoubleRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DoubleRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[2]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DoubleRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DoubleRules(DoubleRules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DoubleRules Clone() { - return new DoubleRules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static double ConstDefaultValue = 0D; - - private double const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public double Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static double LtDefaultValue = 0D; - - private double lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public double Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static double LteDefaultValue = 0D; - - private double lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public double Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static double GtDefaultValue = 0D; - - private double gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public double Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static double GteDefaultValue = 0D; - - private double gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public double Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForDouble(49); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForDouble(57); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as DoubleRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(DoubleRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(Const, other.Const)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(Lt, other.Lt)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(Lte, other.Lte)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(Gt, other.Gt)) return false; - if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(Gte, other.Gte)) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Const); - if (HasLt) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Lt); - if (HasLte) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Lte); - if (HasGt) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Gt); - if (HasGte) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Gte); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(9); - output.WriteDouble(Const); - } - if (HasLt) { - output.WriteRawTag(17); - output.WriteDouble(Lt); - } - if (HasLte) { - output.WriteRawTag(25); - output.WriteDouble(Lte); - } - if (HasGt) { - output.WriteRawTag(33); - output.WriteDouble(Gt); - } - if (HasGte) { - output.WriteRawTag(41); - output.WriteDouble(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(9); - output.WriteDouble(Const); - } - if (HasLt) { - output.WriteRawTag(17); - output.WriteDouble(Lt); - } - if (HasLte) { - output.WriteRawTag(25); - output.WriteDouble(Lte); - } - if (HasGt) { - output.WriteRawTag(33); - output.WriteDouble(Gt); - } - if (HasGte) { - output.WriteRawTag(41); - output.WriteDouble(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + 8; - } - if (HasLt) { - size += 1 + 8; - } - if (HasLte) { - size += 1 + 8; - } - if (HasGt) { - size += 1 + 8; - } - if (HasGte) { - size += 1 + 8; - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(DoubleRules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 9: { - Const = input.ReadDouble(); - break; - } - case 17: { - Lt = input.ReadDouble(); - break; - } - case 25: { - Lte = input.ReadDouble(); - break; - } - case 33: { - Gt = input.ReadDouble(); - break; - } - case 41: { - Gte = input.ReadDouble(); - break; - } - case 50: - case 49: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 57: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 9: { - Const = input.ReadDouble(); - break; - } - case 17: { - Lt = input.ReadDouble(); - break; - } - case 25: { - Lte = input.ReadDouble(); - break; - } - case 33: { - Gt = input.ReadDouble(); - break; - } - case 41: { - Gte = input.ReadDouble(); - break; - } - case 50: - case 49: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 57: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// Int32Rules describes the constraints applied to `int32` values - /// - public sealed partial class Int32Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Int32Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[3]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Int32Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Int32Rules(Int32Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Int32Rules Clone() { - return new Int32Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static int ConstDefaultValue = 0; - - private int const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static int LtDefaultValue = 0; - - private int lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static int LteDefaultValue = 0; - - private int lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static int GtDefaultValue = 0; - - private int gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static int GteDefaultValue = 0; - - private int gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForInt32(48); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForInt32(56); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Int32Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Int32Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(8); - output.WriteInt32(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteInt32(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteInt32(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteInt32(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteInt32(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(8); - output.WriteInt32(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteInt32(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteInt32(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteInt32(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteInt32(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(Const); - } - if (HasLt) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(Lt); - } - if (HasLte) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(Lte); - } - if (HasGt) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(Gt); - } - if (HasGte) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(Gte); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Int32Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Const = input.ReadInt32(); - break; - } - case 16: { - Lt = input.ReadInt32(); - break; - } - case 24: { - Lte = input.ReadInt32(); - break; - } - case 32: { - Gt = input.ReadInt32(); - break; - } - case 40: { - Gte = input.ReadInt32(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Const = input.ReadInt32(); - break; - } - case 16: { - Lt = input.ReadInt32(); - break; - } - case 24: { - Lte = input.ReadInt32(); - break; - } - case 32: { - Gt = input.ReadInt32(); - break; - } - case 40: { - Gte = input.ReadInt32(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// Int64Rules describes the constraints applied to `int64` values - /// - public sealed partial class Int64Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Int64Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[4]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Int64Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Int64Rules(Int64Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Int64Rules Clone() { - return new Int64Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static long ConstDefaultValue = 0L; - - private long const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static long LtDefaultValue = 0L; - - private long lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static long LteDefaultValue = 0L; - - private long lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static long GtDefaultValue = 0L; - - private long gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static long GteDefaultValue = 0L; - - private long gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForInt64(48); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForInt64(56); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Int64Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Int64Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(8); - output.WriteInt64(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteInt64(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteInt64(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteInt64(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteInt64(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(8); - output.WriteInt64(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteInt64(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteInt64(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteInt64(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteInt64(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeInt64Size(Const); - } - if (HasLt) { - size += 1 + pb::CodedOutputStream.ComputeInt64Size(Lt); - } - if (HasLte) { - size += 1 + pb::CodedOutputStream.ComputeInt64Size(Lte); - } - if (HasGt) { - size += 1 + pb::CodedOutputStream.ComputeInt64Size(Gt); - } - if (HasGte) { - size += 1 + pb::CodedOutputStream.ComputeInt64Size(Gte); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Int64Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Const = input.ReadInt64(); - break; - } - case 16: { - Lt = input.ReadInt64(); - break; - } - case 24: { - Lte = input.ReadInt64(); - break; - } - case 32: { - Gt = input.ReadInt64(); - break; - } - case 40: { - Gte = input.ReadInt64(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Const = input.ReadInt64(); - break; - } - case 16: { - Lt = input.ReadInt64(); - break; - } - case 24: { - Lte = input.ReadInt64(); - break; - } - case 32: { - Gt = input.ReadInt64(); - break; - } - case 40: { - Gte = input.ReadInt64(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// UInt32Rules describes the constraints applied to `uint32` values - /// - public sealed partial class UInt32Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UInt32Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[5]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public UInt32Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public UInt32Rules(UInt32Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public UInt32Rules Clone() { - return new UInt32Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static uint ConstDefaultValue = 0; - - private uint const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static uint LtDefaultValue = 0; - - private uint lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static uint LteDefaultValue = 0; - - private uint lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static uint GtDefaultValue = 0; - - private uint gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static uint GteDefaultValue = 0; - - private uint gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForUInt32(48); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForUInt32(56); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as UInt32Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(UInt32Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(8); - output.WriteUInt32(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteUInt32(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteUInt32(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteUInt32(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteUInt32(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(8); - output.WriteUInt32(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteUInt32(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteUInt32(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteUInt32(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteUInt32(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Const); - } - if (HasLt) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Lt); - } - if (HasLte) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Lte); - } - if (HasGt) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Gt); - } - if (HasGte) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Gte); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(UInt32Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Const = input.ReadUInt32(); - break; - } - case 16: { - Lt = input.ReadUInt32(); - break; - } - case 24: { - Lte = input.ReadUInt32(); - break; - } - case 32: { - Gt = input.ReadUInt32(); - break; - } - case 40: { - Gte = input.ReadUInt32(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Const = input.ReadUInt32(); - break; - } - case 16: { - Lt = input.ReadUInt32(); - break; - } - case 24: { - Lte = input.ReadUInt32(); - break; - } - case 32: { - Gt = input.ReadUInt32(); - break; - } - case 40: { - Gte = input.ReadUInt32(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// UInt64Rules describes the constraints applied to `uint64` values - /// - public sealed partial class UInt64Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UInt64Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[6]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public UInt64Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public UInt64Rules(UInt64Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public UInt64Rules Clone() { - return new UInt64Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static ulong ConstDefaultValue = 0UL; - - private ulong const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static ulong LtDefaultValue = 0UL; - - private ulong lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static ulong LteDefaultValue = 0UL; - - private ulong lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static ulong GtDefaultValue = 0UL; - - private ulong gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static ulong GteDefaultValue = 0UL; - - private ulong gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForUInt64(48); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForUInt64(56); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as UInt64Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(UInt64Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(8); - output.WriteUInt64(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteUInt64(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteUInt64(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteUInt64(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteUInt64(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(8); - output.WriteUInt64(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteUInt64(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteUInt64(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteUInt64(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteUInt64(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Const); - } - if (HasLt) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Lt); - } - if (HasLte) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Lte); - } - if (HasGt) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Gt); - } - if (HasGte) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Gte); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(UInt64Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Const = input.ReadUInt64(); - break; - } - case 16: { - Lt = input.ReadUInt64(); - break; - } - case 24: { - Lte = input.ReadUInt64(); - break; - } - case 32: { - Gt = input.ReadUInt64(); - break; - } - case 40: { - Gte = input.ReadUInt64(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Const = input.ReadUInt64(); - break; - } - case 16: { - Lt = input.ReadUInt64(); - break; - } - case 24: { - Lte = input.ReadUInt64(); - break; - } - case 32: { - Gt = input.ReadUInt64(); - break; - } - case 40: { - Gte = input.ReadUInt64(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// SInt32Rules describes the constraints applied to `sint32` values - /// - public sealed partial class SInt32Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SInt32Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[7]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SInt32Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SInt32Rules(SInt32Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SInt32Rules Clone() { - return new SInt32Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static int ConstDefaultValue = 0; - - private int const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static int LtDefaultValue = 0; - - private int lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static int LteDefaultValue = 0; - - private int lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static int GtDefaultValue = 0; - - private int gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static int GteDefaultValue = 0; - - private int gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForSInt32(48); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForSInt32(56); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as SInt32Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(SInt32Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(8); - output.WriteSInt32(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteSInt32(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteSInt32(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteSInt32(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteSInt32(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(8); - output.WriteSInt32(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteSInt32(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteSInt32(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteSInt32(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteSInt32(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeSInt32Size(Const); - } - if (HasLt) { - size += 1 + pb::CodedOutputStream.ComputeSInt32Size(Lt); - } - if (HasLte) { - size += 1 + pb::CodedOutputStream.ComputeSInt32Size(Lte); - } - if (HasGt) { - size += 1 + pb::CodedOutputStream.ComputeSInt32Size(Gt); - } - if (HasGte) { - size += 1 + pb::CodedOutputStream.ComputeSInt32Size(Gte); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(SInt32Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Const = input.ReadSInt32(); - break; - } - case 16: { - Lt = input.ReadSInt32(); - break; - } - case 24: { - Lte = input.ReadSInt32(); - break; - } - case 32: { - Gt = input.ReadSInt32(); - break; - } - case 40: { - Gte = input.ReadSInt32(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Const = input.ReadSInt32(); - break; - } - case 16: { - Lt = input.ReadSInt32(); - break; - } - case 24: { - Lte = input.ReadSInt32(); - break; - } - case 32: { - Gt = input.ReadSInt32(); - break; - } - case 40: { - Gte = input.ReadSInt32(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// SInt64Rules describes the constraints applied to `sint64` values - /// - public sealed partial class SInt64Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SInt64Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[8]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SInt64Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SInt64Rules(SInt64Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SInt64Rules Clone() { - return new SInt64Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static long ConstDefaultValue = 0L; - - private long const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static long LtDefaultValue = 0L; - - private long lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static long LteDefaultValue = 0L; - - private long lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static long GtDefaultValue = 0L; - - private long gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static long GteDefaultValue = 0L; - - private long gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForSInt64(48); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForSInt64(56); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as SInt64Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(SInt64Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(8); - output.WriteSInt64(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteSInt64(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteSInt64(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteSInt64(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteSInt64(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(8); - output.WriteSInt64(Const); - } - if (HasLt) { - output.WriteRawTag(16); - output.WriteSInt64(Lt); - } - if (HasLte) { - output.WriteRawTag(24); - output.WriteSInt64(Lte); - } - if (HasGt) { - output.WriteRawTag(32); - output.WriteSInt64(Gt); - } - if (HasGte) { - output.WriteRawTag(40); - output.WriteSInt64(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeSInt64Size(Const); - } - if (HasLt) { - size += 1 + pb::CodedOutputStream.ComputeSInt64Size(Lt); - } - if (HasLte) { - size += 1 + pb::CodedOutputStream.ComputeSInt64Size(Lte); - } - if (HasGt) { - size += 1 + pb::CodedOutputStream.ComputeSInt64Size(Gt); - } - if (HasGte) { - size += 1 + pb::CodedOutputStream.ComputeSInt64Size(Gte); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(SInt64Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Const = input.ReadSInt64(); - break; - } - case 16: { - Lt = input.ReadSInt64(); - break; - } - case 24: { - Lte = input.ReadSInt64(); - break; - } - case 32: { - Gt = input.ReadSInt64(); - break; - } - case 40: { - Gte = input.ReadSInt64(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Const = input.ReadSInt64(); - break; - } - case 16: { - Lt = input.ReadSInt64(); - break; - } - case 24: { - Lte = input.ReadSInt64(); - break; - } - case 32: { - Gt = input.ReadSInt64(); - break; - } - case 40: { - Gte = input.ReadSInt64(); - break; - } - case 50: - case 48: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 56: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// Fixed32Rules describes the constraints applied to `fixed32` values - /// - public sealed partial class Fixed32Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Fixed32Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[9]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Fixed32Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Fixed32Rules(Fixed32Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Fixed32Rules Clone() { - return new Fixed32Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static uint ConstDefaultValue = 0; - - private uint const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static uint LtDefaultValue = 0; - - private uint lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static uint LteDefaultValue = 0; - - private uint lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static uint GtDefaultValue = 0; - - private uint gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static uint GteDefaultValue = 0; - - private uint gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForFixed32(53); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForFixed32(61); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Fixed32Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Fixed32Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(13); - output.WriteFixed32(Const); - } - if (HasLt) { - output.WriteRawTag(21); - output.WriteFixed32(Lt); - } - if (HasLte) { - output.WriteRawTag(29); - output.WriteFixed32(Lte); - } - if (HasGt) { - output.WriteRawTag(37); - output.WriteFixed32(Gt); - } - if (HasGte) { - output.WriteRawTag(45); - output.WriteFixed32(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(13); - output.WriteFixed32(Const); - } - if (HasLt) { - output.WriteRawTag(21); - output.WriteFixed32(Lt); - } - if (HasLte) { - output.WriteRawTag(29); - output.WriteFixed32(Lte); - } - if (HasGt) { - output.WriteRawTag(37); - output.WriteFixed32(Gt); - } - if (HasGte) { - output.WriteRawTag(45); - output.WriteFixed32(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + 4; - } - if (HasLt) { - size += 1 + 4; - } - if (HasLte) { - size += 1 + 4; - } - if (HasGt) { - size += 1 + 4; - } - if (HasGte) { - size += 1 + 4; - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Fixed32Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 13: { - Const = input.ReadFixed32(); - break; - } - case 21: { - Lt = input.ReadFixed32(); - break; - } - case 29: { - Lte = input.ReadFixed32(); - break; - } - case 37: { - Gt = input.ReadFixed32(); - break; - } - case 45: { - Gte = input.ReadFixed32(); - break; - } - case 50: - case 53: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 61: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 13: { - Const = input.ReadFixed32(); - break; - } - case 21: { - Lt = input.ReadFixed32(); - break; - } - case 29: { - Lte = input.ReadFixed32(); - break; - } - case 37: { - Gt = input.ReadFixed32(); - break; - } - case 45: { - Gte = input.ReadFixed32(); - break; - } - case 50: - case 53: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 61: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// Fixed64Rules describes the constraints applied to `fixed64` values - /// - public sealed partial class Fixed64Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Fixed64Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[10]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Fixed64Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Fixed64Rules(Fixed64Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Fixed64Rules Clone() { - return new Fixed64Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static ulong ConstDefaultValue = 0UL; - - private ulong const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static ulong LtDefaultValue = 0UL; - - private ulong lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static ulong LteDefaultValue = 0UL; - - private ulong lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static ulong GtDefaultValue = 0UL; - - private ulong gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static ulong GteDefaultValue = 0UL; - - private ulong gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForFixed64(49); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForFixed64(57); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as Fixed64Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Fixed64Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(9); - output.WriteFixed64(Const); - } - if (HasLt) { - output.WriteRawTag(17); - output.WriteFixed64(Lt); - } - if (HasLte) { - output.WriteRawTag(25); - output.WriteFixed64(Lte); - } - if (HasGt) { - output.WriteRawTag(33); - output.WriteFixed64(Gt); - } - if (HasGte) { - output.WriteRawTag(41); - output.WriteFixed64(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(9); - output.WriteFixed64(Const); - } - if (HasLt) { - output.WriteRawTag(17); - output.WriteFixed64(Lt); - } - if (HasLte) { - output.WriteRawTag(25); - output.WriteFixed64(Lte); - } - if (HasGt) { - output.WriteRawTag(33); - output.WriteFixed64(Gt); - } - if (HasGte) { - output.WriteRawTag(41); - output.WriteFixed64(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + 8; - } - if (HasLt) { - size += 1 + 8; - } - if (HasLte) { - size += 1 + 8; - } - if (HasGt) { - size += 1 + 8; - } - if (HasGte) { - size += 1 + 8; - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Fixed64Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 9: { - Const = input.ReadFixed64(); - break; - } - case 17: { - Lt = input.ReadFixed64(); - break; - } - case 25: { - Lte = input.ReadFixed64(); - break; - } - case 33: { - Gt = input.ReadFixed64(); - break; - } - case 41: { - Gte = input.ReadFixed64(); - break; - } - case 50: - case 49: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 57: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 9: { - Const = input.ReadFixed64(); - break; - } - case 17: { - Lt = input.ReadFixed64(); - break; - } - case 25: { - Lte = input.ReadFixed64(); - break; - } - case 33: { - Gt = input.ReadFixed64(); - break; - } - case 41: { - Gte = input.ReadFixed64(); - break; - } - case 50: - case 49: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 57: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// SFixed32Rules describes the constraints applied to `sfixed32` values - /// - public sealed partial class SFixed32Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SFixed32Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[11]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SFixed32Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SFixed32Rules(SFixed32Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SFixed32Rules Clone() { - return new SFixed32Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static int ConstDefaultValue = 0; - - private int const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static int LtDefaultValue = 0; - - private int lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static int LteDefaultValue = 0; - - private int lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static int GtDefaultValue = 0; - - private int gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static int GteDefaultValue = 0; - - private int gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForSFixed32(53); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForSFixed32(61); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as SFixed32Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(SFixed32Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(13); - output.WriteSFixed32(Const); - } - if (HasLt) { - output.WriteRawTag(21); - output.WriteSFixed32(Lt); - } - if (HasLte) { - output.WriteRawTag(29); - output.WriteSFixed32(Lte); - } - if (HasGt) { - output.WriteRawTag(37); - output.WriteSFixed32(Gt); - } - if (HasGte) { - output.WriteRawTag(45); - output.WriteSFixed32(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(13); - output.WriteSFixed32(Const); - } - if (HasLt) { - output.WriteRawTag(21); - output.WriteSFixed32(Lt); - } - if (HasLte) { - output.WriteRawTag(29); - output.WriteSFixed32(Lte); - } - if (HasGt) { - output.WriteRawTag(37); - output.WriteSFixed32(Gt); - } - if (HasGte) { - output.WriteRawTag(45); - output.WriteSFixed32(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + 4; - } - if (HasLt) { - size += 1 + 4; - } - if (HasLte) { - size += 1 + 4; - } - if (HasGt) { - size += 1 + 4; - } - if (HasGte) { - size += 1 + 4; - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(SFixed32Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 13: { - Const = input.ReadSFixed32(); - break; - } - case 21: { - Lt = input.ReadSFixed32(); - break; - } - case 29: { - Lte = input.ReadSFixed32(); - break; - } - case 37: { - Gt = input.ReadSFixed32(); - break; - } - case 45: { - Gte = input.ReadSFixed32(); - break; - } - case 50: - case 53: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 61: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 13: { - Const = input.ReadSFixed32(); - break; - } - case 21: { - Lt = input.ReadSFixed32(); - break; - } - case 29: { - Lte = input.ReadSFixed32(); - break; - } - case 37: { - Gt = input.ReadSFixed32(); - break; - } - case 45: { - Gte = input.ReadSFixed32(); - break; - } - case 50: - case 53: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 61: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// SFixed64Rules describes the constraints applied to `sfixed64` values - /// - public sealed partial class SFixed64Rules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SFixed64Rules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[12]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SFixed64Rules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SFixed64Rules(SFixed64Rules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - lt_ = other.lt_; - lte_ = other.lte_; - gt_ = other.gt_; - gte_ = other.gte_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public SFixed64Rules Clone() { - return new SFixed64Rules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static long ConstDefaultValue = 0L; - - private long const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 2; - private readonly static long LtDefaultValue = 0L; - - private long lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Lt { - get { if ((_hasBits0 & 2) != 0) { return lt_; } else { return LtDefaultValue; } } - set { - _hasBits0 |= 2; - lt_ = value; - } - } - /// Gets whether the "lt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLt { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLt() { - _hasBits0 &= ~2; - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 3; - private readonly static long LteDefaultValue = 0L; - - private long lte_; - /// - /// Lte specifies that this field must be less than or equal to the - /// specified value, inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Lte { - get { if ((_hasBits0 & 4) != 0) { return lte_; } else { return LteDefaultValue; } } - set { - _hasBits0 |= 4; - lte_ = value; - } - } - /// Gets whether the "lte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLte { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "lte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLte() { - _hasBits0 &= ~4; - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 4; - private readonly static long GtDefaultValue = 0L; - - private long gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive. If the value of Gt is larger than a specified Lt or Lte, the - /// range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Gt { - get { if ((_hasBits0 & 8) != 0) { return gt_; } else { return GtDefaultValue; } } - set { - _hasBits0 |= 8; - gt_ = value; - } - } - /// Gets whether the "gt" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGt { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "gt" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGt() { - _hasBits0 &= ~8; - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 5; - private readonly static long GteDefaultValue = 0L; - - private long gte_; - /// - /// Gte specifies that this field must be greater than or equal to the - /// specified value, inclusive. If the value of Gte is larger than a - /// specified Lt or Lte, the range is reversed. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Gte { - get { if ((_hasBits0 & 16) != 0) { return gte_; } else { return GteDefaultValue; } } - set { - _hasBits0 |= 16; - gte_ = value; - } - } - /// Gets whether the "gte" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGte { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "gte" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGte() { - _hasBits0 &= ~16; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForSFixed64(49); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForSFixed64(57); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 8; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 32) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 32; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~32; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as SFixed64Rules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(SFixed64Rules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Lt != other.Lt) return false; - if (Lte != other.Lte) return false; - if (Gt != other.Gt) return false; - if (Gte != other.Gte) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLt) hash ^= Lt.GetHashCode(); - if (HasLte) hash ^= Lte.GetHashCode(); - if (HasGt) hash ^= Gt.GetHashCode(); - if (HasGte) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(9); - output.WriteSFixed64(Const); - } - if (HasLt) { - output.WriteRawTag(17); - output.WriteSFixed64(Lt); - } - if (HasLte) { - output.WriteRawTag(25); - output.WriteSFixed64(Lte); - } - if (HasGt) { - output.WriteRawTag(33); - output.WriteSFixed64(Gt); - } - if (HasGte) { - output.WriteRawTag(41); - output.WriteSFixed64(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(9); - output.WriteSFixed64(Const); - } - if (HasLt) { - output.WriteRawTag(17); - output.WriteSFixed64(Lt); - } - if (HasLte) { - output.WriteRawTag(25); - output.WriteSFixed64(Lte); - } - if (HasGt) { - output.WriteRawTag(33); - output.WriteSFixed64(Gt); - } - if (HasGte) { - output.WriteRawTag(41); - output.WriteSFixed64(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIgnoreEmpty) { - output.WriteRawTag(64); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + 8; - } - if (HasLt) { - size += 1 + 8; - } - if (HasLte) { - size += 1 + 8; - } - if (HasGt) { - size += 1 + 8; - } - if (HasGte) { - size += 1 + 8; - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(SFixed64Rules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLt) { - Lt = other.Lt; - } - if (other.HasLte) { - Lte = other.Lte; - } - if (other.HasGt) { - Gt = other.Gt; - } - if (other.HasGte) { - Gte = other.Gte; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 9: { - Const = input.ReadSFixed64(); - break; - } - case 17: { - Lt = input.ReadSFixed64(); - break; - } - case 25: { - Lte = input.ReadSFixed64(); - break; - } - case 33: { - Gt = input.ReadSFixed64(); - break; - } - case 41: { - Gte = input.ReadSFixed64(); - break; - } - case 50: - case 49: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 58: - case 57: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 9: { - Const = input.ReadSFixed64(); - break; - } - case 17: { - Lt = input.ReadSFixed64(); - break; - } - case 25: { - Lte = input.ReadSFixed64(); - break; - } - case 33: { - Gt = input.ReadSFixed64(); - break; - } - case 41: { - Gte = input.ReadSFixed64(); - break; - } - case 50: - case 49: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 58: - case 57: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 64: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// BoolRules describes the constraints applied to `bool` values - /// - public sealed partial class BoolRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new BoolRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[13]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public BoolRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public BoolRules(BoolRules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public BoolRules Clone() { - return new BoolRules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static bool ConstDefaultValue = false; - - private bool const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as BoolRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(BoolRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(8); - output.WriteBool(Const); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(8); - output.WriteBool(Const); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(BoolRules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Const = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Const = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// StringRules describe the constraints applied to `string` values - /// - public sealed partial class StringRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StringRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[14]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public StringRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public StringRules(StringRules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - len_ = other.len_; - minLen_ = other.minLen_; - maxLen_ = other.maxLen_; - lenBytes_ = other.lenBytes_; - minBytes_ = other.minBytes_; - maxBytes_ = other.maxBytes_; - pattern_ = other.pattern_; - prefix_ = other.prefix_; - suffix_ = other.suffix_; - contains_ = other.contains_; - notContains_ = other.notContains_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - strict_ = other.strict_; - ignoreEmpty_ = other.ignoreEmpty_; - switch (other.WellKnownCase) { - case WellKnownOneofCase.Email: - Email = other.Email; - break; - case WellKnownOneofCase.Hostname: - Hostname = other.Hostname; - break; - case WellKnownOneofCase.Ip: - Ip = other.Ip; - break; - case WellKnownOneofCase.Ipv4: - Ipv4 = other.Ipv4; - break; - case WellKnownOneofCase.Ipv6: - Ipv6 = other.Ipv6; - break; - case WellKnownOneofCase.Uri: - Uri = other.Uri; - break; - case WellKnownOneofCase.UriRef: - UriRef = other.UriRef; - break; - case WellKnownOneofCase.Address: - Address = other.Address; - break; - case WellKnownOneofCase.Uuid: - Uuid = other.Uuid; - break; - case WellKnownOneofCase.WellKnownRegex: - WellKnownRegex = other.WellKnownRegex; - break; - } - - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public StringRules Clone() { - return new StringRules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static string ConstDefaultValue = ""; - - private string const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Const { - get { return const_ ?? ConstDefaultValue; } - set { - const_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return const_ != null; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - const_ = null; - } - - /// Field number for the "len" field. - public const int LenFieldNumber = 19; - private readonly static ulong LenDefaultValue = 0UL; - - private ulong len_; - /// - /// Len specifies that this field must be the specified number of - /// characters (Unicode code points). Note that the number of - /// characters may differ from the number of bytes in the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Len { - get { if ((_hasBits0 & 16) != 0) { return len_; } else { return LenDefaultValue; } } - set { - _hasBits0 |= 16; - len_ = value; - } - } - /// Gets whether the "len" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLen { - get { return (_hasBits0 & 16) != 0; } - } - /// Clears the value of the "len" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLen() { - _hasBits0 &= ~16; - } - - /// Field number for the "min_len" field. - public const int MinLenFieldNumber = 2; - private readonly static ulong MinLenDefaultValue = 0UL; - - private ulong minLen_; - /// - /// MinLen specifies that this field must be the specified number of - /// characters (Unicode code points) at a minimum. Note that the number of - /// characters may differ from the number of bytes in the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MinLen { - get { if ((_hasBits0 & 1) != 0) { return minLen_; } else { return MinLenDefaultValue; } } - set { - _hasBits0 |= 1; - minLen_ = value; - } - } - /// Gets whether the "min_len" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMinLen { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "min_len" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMinLen() { - _hasBits0 &= ~1; - } - - /// Field number for the "max_len" field. - public const int MaxLenFieldNumber = 3; - private readonly static ulong MaxLenDefaultValue = 0UL; - - private ulong maxLen_; - /// - /// MaxLen specifies that this field must be the specified number of - /// characters (Unicode code points) at a maximum. Note that the number of - /// characters may differ from the number of bytes in the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MaxLen { - get { if ((_hasBits0 & 2) != 0) { return maxLen_; } else { return MaxLenDefaultValue; } } - set { - _hasBits0 |= 2; - maxLen_ = value; - } - } - /// Gets whether the "max_len" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMaxLen { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "max_len" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMaxLen() { - _hasBits0 &= ~2; - } - - /// Field number for the "len_bytes" field. - public const int LenBytesFieldNumber = 20; - private readonly static ulong LenBytesDefaultValue = 0UL; - - private ulong lenBytes_; - /// - /// LenBytes specifies that this field must be the specified number of bytes - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong LenBytes { - get { if ((_hasBits0 & 32) != 0) { return lenBytes_; } else { return LenBytesDefaultValue; } } - set { - _hasBits0 |= 32; - lenBytes_ = value; - } - } - /// Gets whether the "len_bytes" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLenBytes { - get { return (_hasBits0 & 32) != 0; } - } - /// Clears the value of the "len_bytes" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLenBytes() { - _hasBits0 &= ~32; - } - - /// Field number for the "min_bytes" field. - public const int MinBytesFieldNumber = 4; - private readonly static ulong MinBytesDefaultValue = 0UL; - - private ulong minBytes_; - /// - /// MinBytes specifies that this field must be the specified number of bytes - /// at a minimum - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MinBytes { - get { if ((_hasBits0 & 4) != 0) { return minBytes_; } else { return MinBytesDefaultValue; } } - set { - _hasBits0 |= 4; - minBytes_ = value; - } - } - /// Gets whether the "min_bytes" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMinBytes { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "min_bytes" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMinBytes() { - _hasBits0 &= ~4; - } - - /// Field number for the "max_bytes" field. - public const int MaxBytesFieldNumber = 5; - private readonly static ulong MaxBytesDefaultValue = 0UL; - - private ulong maxBytes_; - /// - /// MaxBytes specifies that this field must be the specified number of bytes - /// at a maximum - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MaxBytes { - get { if ((_hasBits0 & 8) != 0) { return maxBytes_; } else { return MaxBytesDefaultValue; } } - set { - _hasBits0 |= 8; - maxBytes_ = value; - } - } - /// Gets whether the "max_bytes" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMaxBytes { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "max_bytes" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMaxBytes() { - _hasBits0 &= ~8; - } - - /// Field number for the "pattern" field. - public const int PatternFieldNumber = 6; - private readonly static string PatternDefaultValue = ""; - - private string pattern_; - /// - /// Pattern specifes that this field must match against the specified - /// regular expression (RE2 syntax). The included expression should elide - /// any delimiters. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Pattern { - get { return pattern_ ?? PatternDefaultValue; } - set { - pattern_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "pattern" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasPattern { - get { return pattern_ != null; } - } - /// Clears the value of the "pattern" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearPattern() { - pattern_ = null; - } - - /// Field number for the "prefix" field. - public const int PrefixFieldNumber = 7; - private readonly static string PrefixDefaultValue = ""; - - private string prefix_; - /// - /// Prefix specifies that this field must have the specified substring at - /// the beginning of the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Prefix { - get { return prefix_ ?? PrefixDefaultValue; } - set { - prefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "prefix" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasPrefix { - get { return prefix_ != null; } - } - /// Clears the value of the "prefix" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearPrefix() { - prefix_ = null; - } - - /// Field number for the "suffix" field. - public const int SuffixFieldNumber = 8; - private readonly static string SuffixDefaultValue = ""; - - private string suffix_; - /// - /// Suffix specifies that this field must have the specified substring at - /// the end of the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Suffix { - get { return suffix_ ?? SuffixDefaultValue; } - set { - suffix_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "suffix" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasSuffix { - get { return suffix_ != null; } - } - /// Clears the value of the "suffix" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearSuffix() { - suffix_ = null; - } - - /// Field number for the "contains" field. - public const int ContainsFieldNumber = 9; - private readonly static string ContainsDefaultValue = ""; - - private string contains_; - /// - /// Contains specifies that this field must have the specified substring - /// anywhere in the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Contains { - get { return contains_ ?? ContainsDefaultValue; } - set { - contains_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "contains" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasContains { - get { return contains_ != null; } - } - /// Clears the value of the "contains" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearContains() { - contains_ = null; - } - - /// Field number for the "not_contains" field. - public const int NotContainsFieldNumber = 23; - private readonly static string NotContainsDefaultValue = ""; - - private string notContains_; - /// - /// NotContains specifies that this field cannot have the specified substring - /// anywhere in the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string NotContains { - get { return notContains_ ?? NotContainsDefaultValue; } - set { - notContains_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "not_contains" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasNotContains { - get { return notContains_ != null; } - } - /// Clears the value of the "not_contains" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearNotContains() { - notContains_ = null; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 10; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForString(82); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 11; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForString(90); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "email" field. - public const int EmailFieldNumber = 12; - /// - /// Email specifies that the field must be a valid email address as - /// defined by RFC 5322 - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Email { - get { return HasEmail ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Email; - } - } - /// Gets whether the "email" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasEmail { - get { return wellKnownCase_ == WellKnownOneofCase.Email; } - } - /// Clears the value of the oneof if it's currently set to "email" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearEmail() { - if (HasEmail) { - ClearWellKnown(); - } - } - - /// Field number for the "hostname" field. - public const int HostnameFieldNumber = 13; - /// - /// Hostname specifies that the field must be a valid hostname as - /// defined by RFC 1034. This constraint does not support - /// internationalized domain names (IDNs). - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Hostname { - get { return HasHostname ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Hostname; - } - } - /// Gets whether the "hostname" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasHostname { - get { return wellKnownCase_ == WellKnownOneofCase.Hostname; } - } - /// Clears the value of the oneof if it's currently set to "hostname" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearHostname() { - if (HasHostname) { - ClearWellKnown(); - } - } - - /// Field number for the "ip" field. - public const int IpFieldNumber = 14; - /// - /// Ip specifies that the field must be a valid IP (v4 or v6) address. - /// Valid IPv6 addresses should not include surrounding square brackets. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Ip { - get { return HasIp ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Ip; - } - } - /// Gets whether the "ip" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIp { - get { return wellKnownCase_ == WellKnownOneofCase.Ip; } - } - /// Clears the value of the oneof if it's currently set to "ip" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIp() { - if (HasIp) { - ClearWellKnown(); - } - } - - /// Field number for the "ipv4" field. - public const int Ipv4FieldNumber = 15; - /// - /// Ipv4 specifies that the field must be a valid IPv4 address. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Ipv4 { - get { return HasIpv4 ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Ipv4; - } - } - /// Gets whether the "ipv4" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIpv4 { - get { return wellKnownCase_ == WellKnownOneofCase.Ipv4; } - } - /// Clears the value of the oneof if it's currently set to "ipv4" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIpv4() { - if (HasIpv4) { - ClearWellKnown(); - } - } - - /// Field number for the "ipv6" field. - public const int Ipv6FieldNumber = 16; - /// - /// Ipv6 specifies that the field must be a valid IPv6 address. Valid - /// IPv6 addresses should not include surrounding square brackets. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Ipv6 { - get { return HasIpv6 ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Ipv6; - } - } - /// Gets whether the "ipv6" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIpv6 { - get { return wellKnownCase_ == WellKnownOneofCase.Ipv6; } - } - /// Clears the value of the oneof if it's currently set to "ipv6" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIpv6() { - if (HasIpv6) { - ClearWellKnown(); - } - } - - /// Field number for the "uri" field. - public const int UriFieldNumber = 17; - /// - /// Uri specifies that the field must be a valid, absolute URI as defined - /// by RFC 3986 - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Uri { - get { return HasUri ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Uri; - } - } - /// Gets whether the "uri" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasUri { - get { return wellKnownCase_ == WellKnownOneofCase.Uri; } - } - /// Clears the value of the oneof if it's currently set to "uri" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearUri() { - if (HasUri) { - ClearWellKnown(); - } - } - - /// Field number for the "uri_ref" field. - public const int UriRefFieldNumber = 18; - /// - /// UriRef specifies that the field must be a valid URI as defined by RFC - /// 3986 and may be relative or absolute. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool UriRef { - get { return HasUriRef ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.UriRef; - } - } - /// Gets whether the "uri_ref" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasUriRef { - get { return wellKnownCase_ == WellKnownOneofCase.UriRef; } - } - /// Clears the value of the oneof if it's currently set to "uri_ref" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearUriRef() { - if (HasUriRef) { - ClearWellKnown(); - } - } - - /// Field number for the "address" field. - public const int AddressFieldNumber = 21; - /// - /// Address specifies that the field must be either a valid hostname as - /// defined by RFC 1034 (which does not support internationalized domain - /// names or IDNs), or it can be a valid IP (v4 or v6). - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Address { - get { return HasAddress ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Address; - } - } - /// Gets whether the "address" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasAddress { - get { return wellKnownCase_ == WellKnownOneofCase.Address; } - } - /// Clears the value of the oneof if it's currently set to "address" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearAddress() { - if (HasAddress) { - ClearWellKnown(); - } - } - - /// Field number for the "uuid" field. - public const int UuidFieldNumber = 22; - /// - /// Uuid specifies that the field must be a valid UUID as defined by - /// RFC 4122 - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Uuid { - get { return HasUuid ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Uuid; - } - } - /// Gets whether the "uuid" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasUuid { - get { return wellKnownCase_ == WellKnownOneofCase.Uuid; } - } - /// Clears the value of the oneof if it's currently set to "uuid" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearUuid() { - if (HasUuid) { - ClearWellKnown(); - } - } - - /// Field number for the "well_known_regex" field. - public const int WellKnownRegexFieldNumber = 24; - /// - /// WellKnownRegex specifies a common well known pattern defined as a regex. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.KnownRegex WellKnownRegex { - get { return HasWellKnownRegex ? (global::Validate.KnownRegex) wellKnown_ : global::Validate.KnownRegex.Unknown; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.WellKnownRegex; - } - } - /// Gets whether the "well_known_regex" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasWellKnownRegex { - get { return wellKnownCase_ == WellKnownOneofCase.WellKnownRegex; } - } - /// Clears the value of the oneof if it's currently set to "well_known_regex" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearWellKnownRegex() { - if (HasWellKnownRegex) { - ClearWellKnown(); - } - } - - /// Field number for the "strict" field. - public const int StrictFieldNumber = 25; - private readonly static bool StrictDefaultValue = true; - - private bool strict_; - /// - /// 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. - /// Setting to false will enable a looser validations that only disallows - /// \r\n\0 characters, which can be used to bypass header matching rules. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Strict { - get { if ((_hasBits0 & 64) != 0) { return strict_; } else { return StrictDefaultValue; } } - set { - _hasBits0 |= 64; - strict_ = value; - } - } - /// Gets whether the "strict" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasStrict { - get { return (_hasBits0 & 64) != 0; } - } - /// Clears the value of the "strict" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearStrict() { - _hasBits0 &= ~64; - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 26; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 128) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 128; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 128) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~128; - } - - private object wellKnown_; - /// Enum of possible cases for the "well_known" oneof. - public enum WellKnownOneofCase { - None = 0, - Email = 12, - Hostname = 13, - Ip = 14, - Ipv4 = 15, - Ipv6 = 16, - Uri = 17, - UriRef = 18, - Address = 21, - Uuid = 22, - WellKnownRegex = 24, - } - private WellKnownOneofCase wellKnownCase_ = WellKnownOneofCase.None; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public WellKnownOneofCase WellKnownCase { - get { return wellKnownCase_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearWellKnown() { - wellKnownCase_ = WellKnownOneofCase.None; - wellKnown_ = null; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as StringRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(StringRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Len != other.Len) return false; - if (MinLen != other.MinLen) return false; - if (MaxLen != other.MaxLen) return false; - if (LenBytes != other.LenBytes) return false; - if (MinBytes != other.MinBytes) return false; - if (MaxBytes != other.MaxBytes) return false; - if (Pattern != other.Pattern) return false; - if (Prefix != other.Prefix) return false; - if (Suffix != other.Suffix) return false; - if (Contains != other.Contains) return false; - if (NotContains != other.NotContains) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (Email != other.Email) return false; - if (Hostname != other.Hostname) return false; - if (Ip != other.Ip) return false; - if (Ipv4 != other.Ipv4) return false; - if (Ipv6 != other.Ipv6) return false; - if (Uri != other.Uri) return false; - if (UriRef != other.UriRef) return false; - if (Address != other.Address) return false; - if (Uuid != other.Uuid) return false; - if (WellKnownRegex != other.WellKnownRegex) return false; - if (Strict != other.Strict) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - if (WellKnownCase != other.WellKnownCase) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLen) hash ^= Len.GetHashCode(); - if (HasMinLen) hash ^= MinLen.GetHashCode(); - if (HasMaxLen) hash ^= MaxLen.GetHashCode(); - if (HasLenBytes) hash ^= LenBytes.GetHashCode(); - if (HasMinBytes) hash ^= MinBytes.GetHashCode(); - if (HasMaxBytes) hash ^= MaxBytes.GetHashCode(); - if (HasPattern) hash ^= Pattern.GetHashCode(); - if (HasPrefix) hash ^= Prefix.GetHashCode(); - if (HasSuffix) hash ^= Suffix.GetHashCode(); - if (HasContains) hash ^= Contains.GetHashCode(); - if (HasNotContains) hash ^= NotContains.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasEmail) hash ^= Email.GetHashCode(); - if (HasHostname) hash ^= Hostname.GetHashCode(); - if (HasIp) hash ^= Ip.GetHashCode(); - if (HasIpv4) hash ^= Ipv4.GetHashCode(); - if (HasIpv6) hash ^= Ipv6.GetHashCode(); - if (HasUri) hash ^= Uri.GetHashCode(); - if (HasUriRef) hash ^= UriRef.GetHashCode(); - if (HasAddress) hash ^= Address.GetHashCode(); - if (HasUuid) hash ^= Uuid.GetHashCode(); - if (HasWellKnownRegex) hash ^= WellKnownRegex.GetHashCode(); - if (HasStrict) hash ^= Strict.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - hash ^= (int) wellKnownCase_; - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(10); - output.WriteString(Const); - } - if (HasMinLen) { - output.WriteRawTag(16); - output.WriteUInt64(MinLen); - } - if (HasMaxLen) { - output.WriteRawTag(24); - output.WriteUInt64(MaxLen); - } - if (HasMinBytes) { - output.WriteRawTag(32); - output.WriteUInt64(MinBytes); - } - if (HasMaxBytes) { - output.WriteRawTag(40); - output.WriteUInt64(MaxBytes); - } - if (HasPattern) { - output.WriteRawTag(50); - output.WriteString(Pattern); - } - if (HasPrefix) { - output.WriteRawTag(58); - output.WriteString(Prefix); - } - if (HasSuffix) { - output.WriteRawTag(66); - output.WriteString(Suffix); - } - if (HasContains) { - output.WriteRawTag(74); - output.WriteString(Contains); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasEmail) { - output.WriteRawTag(96); - output.WriteBool(Email); - } - if (HasHostname) { - output.WriteRawTag(104); - output.WriteBool(Hostname); - } - if (HasIp) { - output.WriteRawTag(112); - output.WriteBool(Ip); - } - if (HasIpv4) { - output.WriteRawTag(120); - output.WriteBool(Ipv4); - } - if (HasIpv6) { - output.WriteRawTag(128, 1); - output.WriteBool(Ipv6); - } - if (HasUri) { - output.WriteRawTag(136, 1); - output.WriteBool(Uri); - } - if (HasUriRef) { - output.WriteRawTag(144, 1); - output.WriteBool(UriRef); - } - if (HasLen) { - output.WriteRawTag(152, 1); - output.WriteUInt64(Len); - } - if (HasLenBytes) { - output.WriteRawTag(160, 1); - output.WriteUInt64(LenBytes); - } - if (HasAddress) { - output.WriteRawTag(168, 1); - output.WriteBool(Address); - } - if (HasUuid) { - output.WriteRawTag(176, 1); - output.WriteBool(Uuid); - } - if (HasNotContains) { - output.WriteRawTag(186, 1); - output.WriteString(NotContains); - } - if (HasWellKnownRegex) { - output.WriteRawTag(192, 1); - output.WriteEnum((int) WellKnownRegex); - } - if (HasStrict) { - output.WriteRawTag(200, 1); - output.WriteBool(Strict); - } - if (HasIgnoreEmpty) { - output.WriteRawTag(208, 1); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(10); - output.WriteString(Const); - } - if (HasMinLen) { - output.WriteRawTag(16); - output.WriteUInt64(MinLen); - } - if (HasMaxLen) { - output.WriteRawTag(24); - output.WriteUInt64(MaxLen); - } - if (HasMinBytes) { - output.WriteRawTag(32); - output.WriteUInt64(MinBytes); - } - if (HasMaxBytes) { - output.WriteRawTag(40); - output.WriteUInt64(MaxBytes); - } - if (HasPattern) { - output.WriteRawTag(50); - output.WriteString(Pattern); - } - if (HasPrefix) { - output.WriteRawTag(58); - output.WriteString(Prefix); - } - if (HasSuffix) { - output.WriteRawTag(66); - output.WriteString(Suffix); - } - if (HasContains) { - output.WriteRawTag(74); - output.WriteString(Contains); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasEmail) { - output.WriteRawTag(96); - output.WriteBool(Email); - } - if (HasHostname) { - output.WriteRawTag(104); - output.WriteBool(Hostname); - } - if (HasIp) { - output.WriteRawTag(112); - output.WriteBool(Ip); - } - if (HasIpv4) { - output.WriteRawTag(120); - output.WriteBool(Ipv4); - } - if (HasIpv6) { - output.WriteRawTag(128, 1); - output.WriteBool(Ipv6); - } - if (HasUri) { - output.WriteRawTag(136, 1); - output.WriteBool(Uri); - } - if (HasUriRef) { - output.WriteRawTag(144, 1); - output.WriteBool(UriRef); - } - if (HasLen) { - output.WriteRawTag(152, 1); - output.WriteUInt64(Len); - } - if (HasLenBytes) { - output.WriteRawTag(160, 1); - output.WriteUInt64(LenBytes); - } - if (HasAddress) { - output.WriteRawTag(168, 1); - output.WriteBool(Address); - } - if (HasUuid) { - output.WriteRawTag(176, 1); - output.WriteBool(Uuid); - } - if (HasNotContains) { - output.WriteRawTag(186, 1); - output.WriteString(NotContains); - } - if (HasWellKnownRegex) { - output.WriteRawTag(192, 1); - output.WriteEnum((int) WellKnownRegex); - } - if (HasStrict) { - output.WriteRawTag(200, 1); - output.WriteBool(Strict); - } - if (HasIgnoreEmpty) { - output.WriteRawTag(208, 1); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Const); - } - if (HasLen) { - size += 2 + pb::CodedOutputStream.ComputeUInt64Size(Len); - } - if (HasMinLen) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MinLen); - } - if (HasMaxLen) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MaxLen); - } - if (HasLenBytes) { - size += 2 + pb::CodedOutputStream.ComputeUInt64Size(LenBytes); - } - if (HasMinBytes) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MinBytes); - } - if (HasMaxBytes) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MaxBytes); - } - if (HasPattern) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Pattern); - } - if (HasPrefix) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Prefix); - } - if (HasSuffix) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Suffix); - } - if (HasContains) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Contains); - } - if (HasNotContains) { - size += 2 + pb::CodedOutputStream.ComputeStringSize(NotContains); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasEmail) { - size += 1 + 1; - } - if (HasHostname) { - size += 1 + 1; - } - if (HasIp) { - size += 1 + 1; - } - if (HasIpv4) { - size += 1 + 1; - } - if (HasIpv6) { - size += 2 + 1; - } - if (HasUri) { - size += 2 + 1; - } - if (HasUriRef) { - size += 2 + 1; - } - if (HasAddress) { - size += 2 + 1; - } - if (HasUuid) { - size += 2 + 1; - } - if (HasWellKnownRegex) { - size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) WellKnownRegex); - } - if (HasStrict) { - size += 2 + 1; - } - if (HasIgnoreEmpty) { - size += 2 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(StringRules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLen) { - Len = other.Len; - } - if (other.HasMinLen) { - MinLen = other.MinLen; - } - if (other.HasMaxLen) { - MaxLen = other.MaxLen; - } - if (other.HasLenBytes) { - LenBytes = other.LenBytes; - } - if (other.HasMinBytes) { - MinBytes = other.MinBytes; - } - if (other.HasMaxBytes) { - MaxBytes = other.MaxBytes; - } - if (other.HasPattern) { - Pattern = other.Pattern; - } - if (other.HasPrefix) { - Prefix = other.Prefix; - } - if (other.HasSuffix) { - Suffix = other.Suffix; - } - if (other.HasContains) { - Contains = other.Contains; - } - if (other.HasNotContains) { - NotContains = other.NotContains; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasStrict) { - Strict = other.Strict; - } - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - switch (other.WellKnownCase) { - case WellKnownOneofCase.Email: - Email = other.Email; - break; - case WellKnownOneofCase.Hostname: - Hostname = other.Hostname; - break; - case WellKnownOneofCase.Ip: - Ip = other.Ip; - break; - case WellKnownOneofCase.Ipv4: - Ipv4 = other.Ipv4; - break; - case WellKnownOneofCase.Ipv6: - Ipv6 = other.Ipv6; - break; - case WellKnownOneofCase.Uri: - Uri = other.Uri; - break; - case WellKnownOneofCase.UriRef: - UriRef = other.UriRef; - break; - case WellKnownOneofCase.Address: - Address = other.Address; - break; - case WellKnownOneofCase.Uuid: - Uuid = other.Uuid; - break; - case WellKnownOneofCase.WellKnownRegex: - WellKnownRegex = other.WellKnownRegex; - break; - } - - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - Const = input.ReadString(); - break; - } - case 16: { - MinLen = input.ReadUInt64(); - break; - } - case 24: { - MaxLen = input.ReadUInt64(); - break; - } - case 32: { - MinBytes = input.ReadUInt64(); - break; - } - case 40: { - MaxBytes = input.ReadUInt64(); - break; - } - case 50: { - Pattern = input.ReadString(); - break; - } - case 58: { - Prefix = input.ReadString(); - break; - } - case 66: { - Suffix = input.ReadString(); - break; - } - case 74: { - Contains = input.ReadString(); - break; - } - case 82: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 90: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 96: { - Email = input.ReadBool(); - break; - } - case 104: { - Hostname = input.ReadBool(); - break; - } - case 112: { - Ip = input.ReadBool(); - break; - } - case 120: { - Ipv4 = input.ReadBool(); - break; - } - case 128: { - Ipv6 = input.ReadBool(); - break; - } - case 136: { - Uri = input.ReadBool(); - break; - } - case 144: { - UriRef = input.ReadBool(); - break; - } - case 152: { - Len = input.ReadUInt64(); - break; - } - case 160: { - LenBytes = input.ReadUInt64(); - break; - } - case 168: { - Address = input.ReadBool(); - break; - } - case 176: { - Uuid = input.ReadBool(); - break; - } - case 186: { - NotContains = input.ReadString(); - break; - } - case 192: { - wellKnown_ = input.ReadEnum(); - wellKnownCase_ = WellKnownOneofCase.WellKnownRegex; - break; - } - case 200: { - Strict = input.ReadBool(); - break; - } - case 208: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - Const = input.ReadString(); - break; - } - case 16: { - MinLen = input.ReadUInt64(); - break; - } - case 24: { - MaxLen = input.ReadUInt64(); - break; - } - case 32: { - MinBytes = input.ReadUInt64(); - break; - } - case 40: { - MaxBytes = input.ReadUInt64(); - break; - } - case 50: { - Pattern = input.ReadString(); - break; - } - case 58: { - Prefix = input.ReadString(); - break; - } - case 66: { - Suffix = input.ReadString(); - break; - } - case 74: { - Contains = input.ReadString(); - break; - } - case 82: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 90: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 96: { - Email = input.ReadBool(); - break; - } - case 104: { - Hostname = input.ReadBool(); - break; - } - case 112: { - Ip = input.ReadBool(); - break; - } - case 120: { - Ipv4 = input.ReadBool(); - break; - } - case 128: { - Ipv6 = input.ReadBool(); - break; - } - case 136: { - Uri = input.ReadBool(); - break; - } - case 144: { - UriRef = input.ReadBool(); - break; - } - case 152: { - Len = input.ReadUInt64(); - break; - } - case 160: { - LenBytes = input.ReadUInt64(); - break; - } - case 168: { - Address = input.ReadBool(); - break; - } - case 176: { - Uuid = input.ReadBool(); - break; - } - case 186: { - NotContains = input.ReadString(); - break; - } - case 192: { - wellKnown_ = input.ReadEnum(); - wellKnownCase_ = WellKnownOneofCase.WellKnownRegex; - break; - } - case 200: { - Strict = input.ReadBool(); - break; - } - case 208: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// BytesRules describe the constraints applied to `bytes` values - /// - public sealed partial class BytesRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new BytesRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[15]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public BytesRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public BytesRules(BytesRules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - len_ = other.len_; - minLen_ = other.minLen_; - maxLen_ = other.maxLen_; - pattern_ = other.pattern_; - prefix_ = other.prefix_; - suffix_ = other.suffix_; - contains_ = other.contains_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - ignoreEmpty_ = other.ignoreEmpty_; - switch (other.WellKnownCase) { - case WellKnownOneofCase.Ip: - Ip = other.Ip; - break; - case WellKnownOneofCase.Ipv4: - Ipv4 = other.Ipv4; - break; - case WellKnownOneofCase.Ipv6: - Ipv6 = other.Ipv6; - break; - } - - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public BytesRules Clone() { - return new BytesRules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static pb::ByteString ConstDefaultValue = pb::ByteString.Empty; - - private pb::ByteString const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pb::ByteString Const { - get { return const_ ?? ConstDefaultValue; } - set { - const_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return const_ != null; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - const_ = null; - } - - /// Field number for the "len" field. - public const int LenFieldNumber = 13; - private readonly static ulong LenDefaultValue = 0UL; - - private ulong len_; - /// - /// Len specifies that this field must be the specified number of bytes - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong Len { - get { if ((_hasBits0 & 4) != 0) { return len_; } else { return LenDefaultValue; } } - set { - _hasBits0 |= 4; - len_ = value; - } - } - /// Gets whether the "len" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLen { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "len" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLen() { - _hasBits0 &= ~4; - } - - /// Field number for the "min_len" field. - public const int MinLenFieldNumber = 2; - private readonly static ulong MinLenDefaultValue = 0UL; - - private ulong minLen_; - /// - /// MinLen specifies that this field must be the specified number of bytes - /// at a minimum - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MinLen { - get { if ((_hasBits0 & 1) != 0) { return minLen_; } else { return MinLenDefaultValue; } } - set { - _hasBits0 |= 1; - minLen_ = value; - } - } - /// Gets whether the "min_len" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMinLen { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "min_len" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMinLen() { - _hasBits0 &= ~1; - } - - /// Field number for the "max_len" field. - public const int MaxLenFieldNumber = 3; - private readonly static ulong MaxLenDefaultValue = 0UL; - - private ulong maxLen_; - /// - /// MaxLen specifies that this field must be the specified number of bytes - /// at a maximum - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MaxLen { - get { if ((_hasBits0 & 2) != 0) { return maxLen_; } else { return MaxLenDefaultValue; } } - set { - _hasBits0 |= 2; - maxLen_ = value; - } - } - /// Gets whether the "max_len" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMaxLen { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "max_len" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMaxLen() { - _hasBits0 &= ~2; - } - - /// Field number for the "pattern" field. - public const int PatternFieldNumber = 4; - private readonly static string PatternDefaultValue = ""; - - private string pattern_; - /// - /// Pattern specifes that this field must match against the specified - /// regular expression (RE2 syntax). The included expression should elide - /// any delimiters. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Pattern { - get { return pattern_ ?? PatternDefaultValue; } - set { - pattern_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "pattern" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasPattern { - get { return pattern_ != null; } - } - /// Clears the value of the "pattern" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearPattern() { - pattern_ = null; - } - - /// Field number for the "prefix" field. - public const int PrefixFieldNumber = 5; - private readonly static pb::ByteString PrefixDefaultValue = pb::ByteString.Empty; - - private pb::ByteString prefix_; - /// - /// Prefix specifies that this field must have the specified bytes at the - /// beginning of the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pb::ByteString Prefix { - get { return prefix_ ?? PrefixDefaultValue; } - set { - prefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "prefix" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasPrefix { - get { return prefix_ != null; } - } - /// Clears the value of the "prefix" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearPrefix() { - prefix_ = null; - } - - /// Field number for the "suffix" field. - public const int SuffixFieldNumber = 6; - private readonly static pb::ByteString SuffixDefaultValue = pb::ByteString.Empty; - - private pb::ByteString suffix_; - /// - /// Suffix specifies that this field must have the specified bytes at the - /// end of the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pb::ByteString Suffix { - get { return suffix_ ?? SuffixDefaultValue; } - set { - suffix_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "suffix" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasSuffix { - get { return suffix_ != null; } - } - /// Clears the value of the "suffix" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearSuffix() { - suffix_ = null; - } - - /// Field number for the "contains" field. - public const int ContainsFieldNumber = 7; - private readonly static pb::ByteString ContainsDefaultValue = pb::ByteString.Empty; - - private pb::ByteString contains_; - /// - /// Contains specifies that this field must have the specified bytes - /// anywhere in the string. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pb::ByteString Contains { - get { return contains_ ?? ContainsDefaultValue; } - set { - contains_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); - } - } - /// Gets whether the "contains" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasContains { - get { return contains_ != null; } - } - /// Clears the value of the "contains" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearContains() { - contains_ = null; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 8; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForBytes(66); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 9; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForBytes(74); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - /// Field number for the "ip" field. - public const int IpFieldNumber = 10; - /// - /// Ip specifies that the field must be a valid IP (v4 or v6) address in - /// byte format - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Ip { - get { return HasIp ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Ip; - } - } - /// Gets whether the "ip" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIp { - get { return wellKnownCase_ == WellKnownOneofCase.Ip; } - } - /// Clears the value of the oneof if it's currently set to "ip" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIp() { - if (HasIp) { - ClearWellKnown(); - } - } - - /// Field number for the "ipv4" field. - public const int Ipv4FieldNumber = 11; - /// - /// Ipv4 specifies that the field must be a valid IPv4 address in byte - /// format - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Ipv4 { - get { return HasIpv4 ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Ipv4; - } - } - /// Gets whether the "ipv4" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIpv4 { - get { return wellKnownCase_ == WellKnownOneofCase.Ipv4; } - } - /// Clears the value of the oneof if it's currently set to "ipv4" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIpv4() { - if (HasIpv4) { - ClearWellKnown(); - } - } - - /// Field number for the "ipv6" field. - public const int Ipv6FieldNumber = 12; - /// - /// Ipv6 specifies that the field must be a valid IPv6 address in byte - /// format - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Ipv6 { - get { return HasIpv6 ? (bool) wellKnown_ : false; } - set { - wellKnown_ = value; - wellKnownCase_ = WellKnownOneofCase.Ipv6; - } - } - /// Gets whether the "ipv6" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIpv6 { - get { return wellKnownCase_ == WellKnownOneofCase.Ipv6; } - } - /// Clears the value of the oneof if it's currently set to "ipv6" - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIpv6() { - if (HasIpv6) { - ClearWellKnown(); - } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 14; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 8) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 8; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~8; - } - - private object wellKnown_; - /// Enum of possible cases for the "well_known" oneof. - public enum WellKnownOneofCase { - None = 0, - Ip = 10, - Ipv4 = 11, - Ipv6 = 12, - } - private WellKnownOneofCase wellKnownCase_ = WellKnownOneofCase.None; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public WellKnownOneofCase WellKnownCase { - get { return wellKnownCase_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearWellKnown() { - wellKnownCase_ = WellKnownOneofCase.None; - wellKnown_ = null; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as BytesRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(BytesRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (Len != other.Len) return false; - if (MinLen != other.MinLen) return false; - if (MaxLen != other.MaxLen) return false; - if (Pattern != other.Pattern) return false; - if (Prefix != other.Prefix) return false; - if (Suffix != other.Suffix) return false; - if (Contains != other.Contains) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - if (Ip != other.Ip) return false; - if (Ipv4 != other.Ipv4) return false; - if (Ipv6 != other.Ipv6) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - if (WellKnownCase != other.WellKnownCase) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasLen) hash ^= Len.GetHashCode(); - if (HasMinLen) hash ^= MinLen.GetHashCode(); - if (HasMaxLen) hash ^= MaxLen.GetHashCode(); - if (HasPattern) hash ^= Pattern.GetHashCode(); - if (HasPrefix) hash ^= Prefix.GetHashCode(); - if (HasSuffix) hash ^= Suffix.GetHashCode(); - if (HasContains) hash ^= Contains.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (HasIp) hash ^= Ip.GetHashCode(); - if (HasIpv4) hash ^= Ipv4.GetHashCode(); - if (HasIpv6) hash ^= Ipv6.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - hash ^= (int) wellKnownCase_; - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(10); - output.WriteBytes(Const); - } - if (HasMinLen) { - output.WriteRawTag(16); - output.WriteUInt64(MinLen); - } - if (HasMaxLen) { - output.WriteRawTag(24); - output.WriteUInt64(MaxLen); - } - if (HasPattern) { - output.WriteRawTag(34); - output.WriteString(Pattern); - } - if (HasPrefix) { - output.WriteRawTag(42); - output.WriteBytes(Prefix); - } - if (HasSuffix) { - output.WriteRawTag(50); - output.WriteBytes(Suffix); - } - if (HasContains) { - output.WriteRawTag(58); - output.WriteBytes(Contains); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (HasIp) { - output.WriteRawTag(80); - output.WriteBool(Ip); - } - if (HasIpv4) { - output.WriteRawTag(88); - output.WriteBool(Ipv4); - } - if (HasIpv6) { - output.WriteRawTag(96); - output.WriteBool(Ipv6); - } - if (HasLen) { - output.WriteRawTag(104); - output.WriteUInt64(Len); - } - if (HasIgnoreEmpty) { - output.WriteRawTag(112); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(10); - output.WriteBytes(Const); - } - if (HasMinLen) { - output.WriteRawTag(16); - output.WriteUInt64(MinLen); - } - if (HasMaxLen) { - output.WriteRawTag(24); - output.WriteUInt64(MaxLen); - } - if (HasPattern) { - output.WriteRawTag(34); - output.WriteString(Pattern); - } - if (HasPrefix) { - output.WriteRawTag(42); - output.WriteBytes(Prefix); - } - if (HasSuffix) { - output.WriteRawTag(50); - output.WriteBytes(Suffix); - } - if (HasContains) { - output.WriteRawTag(58); - output.WriteBytes(Contains); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (HasIp) { - output.WriteRawTag(80); - output.WriteBool(Ip); - } - if (HasIpv4) { - output.WriteRawTag(88); - output.WriteBool(Ipv4); - } - if (HasIpv6) { - output.WriteRawTag(96); - output.WriteBool(Ipv6); - } - if (HasLen) { - output.WriteRawTag(104); - output.WriteUInt64(Len); - } - if (HasIgnoreEmpty) { - output.WriteRawTag(112); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeBytesSize(Const); - } - if (HasLen) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Len); - } - if (HasMinLen) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MinLen); - } - if (HasMaxLen) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MaxLen); - } - if (HasPattern) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Pattern); - } - if (HasPrefix) { - size += 1 + pb::CodedOutputStream.ComputeBytesSize(Prefix); - } - if (HasSuffix) { - size += 1 + pb::CodedOutputStream.ComputeBytesSize(Suffix); - } - if (HasContains) { - size += 1 + pb::CodedOutputStream.ComputeBytesSize(Contains); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (HasIp) { - size += 1 + 1; - } - if (HasIpv4) { - size += 1 + 1; - } - if (HasIpv6) { - size += 1 + 1; - } - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(BytesRules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasLen) { - Len = other.Len; - } - if (other.HasMinLen) { - MinLen = other.MinLen; - } - if (other.HasMaxLen) { - MaxLen = other.MaxLen; - } - if (other.HasPattern) { - Pattern = other.Pattern; - } - if (other.HasPrefix) { - Prefix = other.Prefix; - } - if (other.HasSuffix) { - Suffix = other.Suffix; - } - if (other.HasContains) { - Contains = other.Contains; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - switch (other.WellKnownCase) { - case WellKnownOneofCase.Ip: - Ip = other.Ip; - break; - case WellKnownOneofCase.Ipv4: - Ipv4 = other.Ipv4; - break; - case WellKnownOneofCase.Ipv6: - Ipv6 = other.Ipv6; - break; - } - - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - Const = input.ReadBytes(); - break; - } - case 16: { - MinLen = input.ReadUInt64(); - break; - } - case 24: { - MaxLen = input.ReadUInt64(); - break; - } - case 34: { - Pattern = input.ReadString(); - break; - } - case 42: { - Prefix = input.ReadBytes(); - break; - } - case 50: { - Suffix = input.ReadBytes(); - break; - } - case 58: { - Contains = input.ReadBytes(); - break; - } - case 66: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 74: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - case 80: { - Ip = input.ReadBool(); - break; - } - case 88: { - Ipv4 = input.ReadBool(); - break; - } - case 96: { - Ipv6 = input.ReadBool(); - break; - } - case 104: { - Len = input.ReadUInt64(); - break; - } - case 112: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 10: { - Const = input.ReadBytes(); - break; - } - case 16: { - MinLen = input.ReadUInt64(); - break; - } - case 24: { - MaxLen = input.ReadUInt64(); - break; - } - case 34: { - Pattern = input.ReadString(); - break; - } - case 42: { - Prefix = input.ReadBytes(); - break; - } - case 50: { - Suffix = input.ReadBytes(); - break; - } - case 58: { - Contains = input.ReadBytes(); - break; - } - case 66: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 74: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - case 80: { - Ip = input.ReadBool(); - break; - } - case 88: { - Ipv4 = input.ReadBool(); - break; - } - case 96: { - Ipv6 = input.ReadBool(); - break; - } - case 104: { - Len = input.ReadUInt64(); - break; - } - case 112: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// EnumRules describe the constraints applied to enum values - /// - public sealed partial class EnumRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EnumRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[16]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public EnumRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public EnumRules(EnumRules other) : this() { - _hasBits0 = other._hasBits0; - const_ = other.const_; - definedOnly_ = other.definedOnly_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public EnumRules Clone() { - return new EnumRules(this); - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 1; - private readonly static int ConstDefaultValue = 0; - - private int const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int Const { - get { if ((_hasBits0 & 1) != 0) { return const_; } else { return ConstDefaultValue; } } - set { - _hasBits0 |= 1; - const_ = value; - } - } - /// Gets whether the "const" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasConst { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "const" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearConst() { - _hasBits0 &= ~1; - } - - /// Field number for the "defined_only" field. - public const int DefinedOnlyFieldNumber = 2; - private readonly static bool DefinedOnlyDefaultValue = false; - - private bool definedOnly_; - /// - /// DefinedOnly specifies that this field must be only one of the defined - /// values for this enum, failing on any undefined value. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool DefinedOnly { - get { if ((_hasBits0 & 2) != 0) { return definedOnly_; } else { return DefinedOnlyDefaultValue; } } - set { - _hasBits0 |= 2; - definedOnly_ = value; - } - } - /// Gets whether the "defined_only" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasDefinedOnly { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "defined_only" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearDefinedOnly() { - _hasBits0 &= ~2; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 3; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForInt32(24); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 4; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForInt32(32); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as EnumRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(EnumRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Const != other.Const) return false; - if (DefinedOnly != other.DefinedOnly) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasConst) hash ^= Const.GetHashCode(); - if (HasDefinedOnly) hash ^= DefinedOnly.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasConst) { - output.WriteRawTag(8); - output.WriteInt32(Const); - } - if (HasDefinedOnly) { - output.WriteRawTag(16); - output.WriteBool(DefinedOnly); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasConst) { - output.WriteRawTag(8); - output.WriteInt32(Const); - } - if (HasDefinedOnly) { - output.WriteRawTag(16); - output.WriteBool(DefinedOnly); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasConst) { - size += 1 + pb::CodedOutputStream.ComputeInt32Size(Const); - } - if (HasDefinedOnly) { - size += 1 + 1; - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(EnumRules other) { - if (other == null) { - return; - } - if (other.HasConst) { - Const = other.Const; - } - if (other.HasDefinedOnly) { - DefinedOnly = other.DefinedOnly; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Const = input.ReadInt32(); - break; - } - case 16: { - DefinedOnly = input.ReadBool(); - break; - } - case 26: - case 24: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 34: - case 32: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Const = input.ReadInt32(); - break; - } - case 16: { - DefinedOnly = input.ReadBool(); - break; - } - case 26: - case 24: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 34: - case 32: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - } - } - } - #endif - - } - - /// - /// MessageRules describe the constraints applied to embedded message values. - /// For message-type fields, validation is performed recursively. - /// - public sealed partial class MessageRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MessageRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[17]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public MessageRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public MessageRules(MessageRules other) : this() { - _hasBits0 = other._hasBits0; - skip_ = other.skip_; - required_ = other.required_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public MessageRules Clone() { - return new MessageRules(this); - } - - /// Field number for the "skip" field. - public const int SkipFieldNumber = 1; - private readonly static bool SkipDefaultValue = false; - - private bool skip_; - /// - /// Skip specifies that the validation rules of this field should not be - /// evaluated - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Skip { - get { if ((_hasBits0 & 1) != 0) { return skip_; } else { return SkipDefaultValue; } } - set { - _hasBits0 |= 1; - skip_ = value; - } - } - /// Gets whether the "skip" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasSkip { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "skip" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearSkip() { - _hasBits0 &= ~1; - } - - /// Field number for the "required" field. - public const int RequiredFieldNumber = 2; - private readonly static bool RequiredDefaultValue = false; - - private bool required_; - /// - /// Required specifies that this field must be set - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Required { - get { if ((_hasBits0 & 2) != 0) { return required_; } else { return RequiredDefaultValue; } } - set { - _hasBits0 |= 2; - required_ = value; - } - } - /// Gets whether the "required" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasRequired { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "required" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearRequired() { - _hasBits0 &= ~2; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as MessageRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(MessageRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Skip != other.Skip) return false; - if (Required != other.Required) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasSkip) hash ^= Skip.GetHashCode(); - if (HasRequired) hash ^= Required.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasSkip) { - output.WriteRawTag(8); - output.WriteBool(Skip); - } - if (HasRequired) { - output.WriteRawTag(16); - output.WriteBool(Required); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasSkip) { - output.WriteRawTag(8); - output.WriteBool(Skip); - } - if (HasRequired) { - output.WriteRawTag(16); - output.WriteBool(Required); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasSkip) { - size += 1 + 1; - } - if (HasRequired) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(MessageRules other) { - if (other == null) { - return; - } - if (other.HasSkip) { - Skip = other.Skip; - } - if (other.HasRequired) { - Required = other.Required; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Skip = input.ReadBool(); - break; - } - case 16: { - Required = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Skip = input.ReadBool(); - break; - } - case 16: { - Required = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// RepeatedRules describe the constraints applied to `repeated` values - /// - public sealed partial class RepeatedRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RepeatedRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[18]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public RepeatedRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public RepeatedRules(RepeatedRules other) : this() { - _hasBits0 = other._hasBits0; - minItems_ = other.minItems_; - maxItems_ = other.maxItems_; - unique_ = other.unique_; - items_ = other.items_ != null ? other.items_.Clone() : null; - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public RepeatedRules Clone() { - return new RepeatedRules(this); - } - - /// Field number for the "min_items" field. - public const int MinItemsFieldNumber = 1; - private readonly static ulong MinItemsDefaultValue = 0UL; - - private ulong minItems_; - /// - /// MinItems specifies that this field must have the specified number of - /// items at a minimum - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MinItems { - get { if ((_hasBits0 & 1) != 0) { return minItems_; } else { return MinItemsDefaultValue; } } - set { - _hasBits0 |= 1; - minItems_ = value; - } - } - /// Gets whether the "min_items" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMinItems { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "min_items" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMinItems() { - _hasBits0 &= ~1; - } - - /// Field number for the "max_items" field. - public const int MaxItemsFieldNumber = 2; - private readonly static ulong MaxItemsDefaultValue = 0UL; - - private ulong maxItems_; - /// - /// MaxItems specifies that this field must have the specified number of - /// items at a maximum - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MaxItems { - get { if ((_hasBits0 & 2) != 0) { return maxItems_; } else { return MaxItemsDefaultValue; } } - set { - _hasBits0 |= 2; - maxItems_ = value; - } - } - /// Gets whether the "max_items" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMaxItems { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "max_items" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMaxItems() { - _hasBits0 &= ~2; - } - - /// Field number for the "unique" field. - public const int UniqueFieldNumber = 3; - private readonly static bool UniqueDefaultValue = false; - - private bool unique_; - /// - /// Unique specifies that all elements in this field must be unique. This - /// contraint is only applicable to scalar and enum types (messages are not - /// supported). - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Unique { - get { if ((_hasBits0 & 4) != 0) { return unique_; } else { return UniqueDefaultValue; } } - set { - _hasBits0 |= 4; - unique_ = value; - } - } - /// Gets whether the "unique" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasUnique { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "unique" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearUnique() { - _hasBits0 &= ~4; - } - - /// Field number for the "items" field. - public const int ItemsFieldNumber = 4; - private global::Validate.FieldRules items_; - /// - /// Items specifies the contraints to be applied to each item in the field. - /// Repeated message fields will still execute validation against each item - /// unless skip is specified here. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.FieldRules Items { - get { return items_; } - set { - items_ = value; - } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 5; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 8) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 8; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~8; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as RepeatedRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(RepeatedRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (MinItems != other.MinItems) return false; - if (MaxItems != other.MaxItems) return false; - if (Unique != other.Unique) return false; - if (!object.Equals(Items, other.Items)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasMinItems) hash ^= MinItems.GetHashCode(); - if (HasMaxItems) hash ^= MaxItems.GetHashCode(); - if (HasUnique) hash ^= Unique.GetHashCode(); - if (items_ != null) hash ^= Items.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasMinItems) { - output.WriteRawTag(8); - output.WriteUInt64(MinItems); - } - if (HasMaxItems) { - output.WriteRawTag(16); - output.WriteUInt64(MaxItems); - } - if (HasUnique) { - output.WriteRawTag(24); - output.WriteBool(Unique); - } - if (items_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Items); - } - if (HasIgnoreEmpty) { - output.WriteRawTag(40); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasMinItems) { - output.WriteRawTag(8); - output.WriteUInt64(MinItems); - } - if (HasMaxItems) { - output.WriteRawTag(16); - output.WriteUInt64(MaxItems); - } - if (HasUnique) { - output.WriteRawTag(24); - output.WriteBool(Unique); - } - if (items_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Items); - } - if (HasIgnoreEmpty) { - output.WriteRawTag(40); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasMinItems) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MinItems); - } - if (HasMaxItems) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MaxItems); - } - if (HasUnique) { - size += 1 + 1; - } - if (items_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Items); - } - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(RepeatedRules other) { - if (other == null) { - return; - } - if (other.HasMinItems) { - MinItems = other.MinItems; - } - if (other.HasMaxItems) { - MaxItems = other.MaxItems; - } - if (other.HasUnique) { - Unique = other.Unique; - } - if (other.items_ != null) { - if (items_ == null) { - Items = new global::Validate.FieldRules(); - } - Items.MergeFrom(other.Items); - } - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - MinItems = input.ReadUInt64(); - break; - } - case 16: { - MaxItems = input.ReadUInt64(); - break; - } - case 24: { - Unique = input.ReadBool(); - break; - } - case 34: { - if (items_ == null) { - Items = new global::Validate.FieldRules(); - } - input.ReadMessage(Items); - break; - } - case 40: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - MinItems = input.ReadUInt64(); - break; - } - case 16: { - MaxItems = input.ReadUInt64(); - break; - } - case 24: { - Unique = input.ReadBool(); - break; - } - case 34: { - if (items_ == null) { - Items = new global::Validate.FieldRules(); - } - input.ReadMessage(Items); - break; - } - case 40: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// MapRules describe the constraints applied to `map` values - /// - public sealed partial class MapRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MapRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[19]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public MapRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public MapRules(MapRules other) : this() { - _hasBits0 = other._hasBits0; - minPairs_ = other.minPairs_; - maxPairs_ = other.maxPairs_; - noSparse_ = other.noSparse_; - keys_ = other.keys_ != null ? other.keys_.Clone() : null; - values_ = other.values_ != null ? other.values_.Clone() : null; - ignoreEmpty_ = other.ignoreEmpty_; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public MapRules Clone() { - return new MapRules(this); - } - - /// Field number for the "min_pairs" field. - public const int MinPairsFieldNumber = 1; - private readonly static ulong MinPairsDefaultValue = 0UL; - - private ulong minPairs_; - /// - /// MinPairs specifies that this field must have the specified number of - /// KVs at a minimum - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MinPairs { - get { if ((_hasBits0 & 1) != 0) { return minPairs_; } else { return MinPairsDefaultValue; } } - set { - _hasBits0 |= 1; - minPairs_ = value; - } - } - /// Gets whether the "min_pairs" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMinPairs { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "min_pairs" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMinPairs() { - _hasBits0 &= ~1; - } - - /// Field number for the "max_pairs" field. - public const int MaxPairsFieldNumber = 2; - private readonly static ulong MaxPairsDefaultValue = 0UL; - - private ulong maxPairs_; - /// - /// MaxPairs specifies that this field must have the specified number of - /// KVs at a maximum - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public ulong MaxPairs { - get { if ((_hasBits0 & 2) != 0) { return maxPairs_; } else { return MaxPairsDefaultValue; } } - set { - _hasBits0 |= 2; - maxPairs_ = value; - } - } - /// Gets whether the "max_pairs" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasMaxPairs { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "max_pairs" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearMaxPairs() { - _hasBits0 &= ~2; - } - - /// Field number for the "no_sparse" field. - public const int NoSparseFieldNumber = 3; - private readonly static bool NoSparseDefaultValue = false; - - private bool noSparse_; - /// - /// NoSparse specifies values in this field cannot be unset. This only - /// applies to map's with message value types. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool NoSparse { - get { if ((_hasBits0 & 4) != 0) { return noSparse_; } else { return NoSparseDefaultValue; } } - set { - _hasBits0 |= 4; - noSparse_ = value; - } - } - /// Gets whether the "no_sparse" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasNoSparse { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "no_sparse" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearNoSparse() { - _hasBits0 &= ~4; - } - - /// Field number for the "keys" field. - public const int KeysFieldNumber = 4; - private global::Validate.FieldRules keys_; - /// - /// Keys specifies the constraints to be applied to each key in the field. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.FieldRules Keys { - get { return keys_; } - set { - keys_ = value; - } - } - - /// Field number for the "values" field. - public const int ValuesFieldNumber = 5; - private global::Validate.FieldRules values_; - /// - /// Values specifies the constraints to be applied to the value of each key - /// in the field. Message values will still have their validations evaluated - /// unless skip is specified here. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Validate.FieldRules Values { - get { return values_; } - set { - values_ = value; - } - } - - /// Field number for the "ignore_empty" field. - public const int IgnoreEmptyFieldNumber = 6; - private readonly static bool IgnoreEmptyDefaultValue = false; - - private bool ignoreEmpty_; - /// - /// IgnoreEmpty specifies that the validation rules of this field should be - /// evaluated only if the field is not empty - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool IgnoreEmpty { - get { if ((_hasBits0 & 8) != 0) { return ignoreEmpty_; } else { return IgnoreEmptyDefaultValue; } } - set { - _hasBits0 |= 8; - ignoreEmpty_ = value; - } - } - /// Gets whether the "ignore_empty" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasIgnoreEmpty { - get { return (_hasBits0 & 8) != 0; } - } - /// Clears the value of the "ignore_empty" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearIgnoreEmpty() { - _hasBits0 &= ~8; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as MapRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(MapRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (MinPairs != other.MinPairs) return false; - if (MaxPairs != other.MaxPairs) return false; - if (NoSparse != other.NoSparse) return false; - if (!object.Equals(Keys, other.Keys)) return false; - if (!object.Equals(Values, other.Values)) return false; - if (IgnoreEmpty != other.IgnoreEmpty) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasMinPairs) hash ^= MinPairs.GetHashCode(); - if (HasMaxPairs) hash ^= MaxPairs.GetHashCode(); - if (HasNoSparse) hash ^= NoSparse.GetHashCode(); - if (keys_ != null) hash ^= Keys.GetHashCode(); - if (values_ != null) hash ^= Values.GetHashCode(); - if (HasIgnoreEmpty) hash ^= IgnoreEmpty.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasMinPairs) { - output.WriteRawTag(8); - output.WriteUInt64(MinPairs); - } - if (HasMaxPairs) { - output.WriteRawTag(16); - output.WriteUInt64(MaxPairs); - } - if (HasNoSparse) { - output.WriteRawTag(24); - output.WriteBool(NoSparse); - } - if (keys_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Keys); - } - if (values_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Values); - } - if (HasIgnoreEmpty) { - output.WriteRawTag(48); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasMinPairs) { - output.WriteRawTag(8); - output.WriteUInt64(MinPairs); - } - if (HasMaxPairs) { - output.WriteRawTag(16); - output.WriteUInt64(MaxPairs); - } - if (HasNoSparse) { - output.WriteRawTag(24); - output.WriteBool(NoSparse); - } - if (keys_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Keys); - } - if (values_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Values); - } - if (HasIgnoreEmpty) { - output.WriteRawTag(48); - output.WriteBool(IgnoreEmpty); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasMinPairs) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MinPairs); - } - if (HasMaxPairs) { - size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MaxPairs); - } - if (HasNoSparse) { - size += 1 + 1; - } - if (keys_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Keys); - } - if (values_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Values); - } - if (HasIgnoreEmpty) { - size += 1 + 1; - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(MapRules other) { - if (other == null) { - return; - } - if (other.HasMinPairs) { - MinPairs = other.MinPairs; - } - if (other.HasMaxPairs) { - MaxPairs = other.MaxPairs; - } - if (other.HasNoSparse) { - NoSparse = other.NoSparse; - } - if (other.keys_ != null) { - if (keys_ == null) { - Keys = new global::Validate.FieldRules(); - } - Keys.MergeFrom(other.Keys); - } - if (other.values_ != null) { - if (values_ == null) { - Values = new global::Validate.FieldRules(); - } - Values.MergeFrom(other.Values); - } - if (other.HasIgnoreEmpty) { - IgnoreEmpty = other.IgnoreEmpty; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - MinPairs = input.ReadUInt64(); - break; - } - case 16: { - MaxPairs = input.ReadUInt64(); - break; - } - case 24: { - NoSparse = input.ReadBool(); - break; - } - case 34: { - if (keys_ == null) { - Keys = new global::Validate.FieldRules(); - } - input.ReadMessage(Keys); - break; - } - case 42: { - if (values_ == null) { - Values = new global::Validate.FieldRules(); - } - input.ReadMessage(Values); - break; - } - case 48: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - MinPairs = input.ReadUInt64(); - break; - } - case 16: { - MaxPairs = input.ReadUInt64(); - break; - } - case 24: { - NoSparse = input.ReadBool(); - break; - } - case 34: { - if (keys_ == null) { - Keys = new global::Validate.FieldRules(); - } - input.ReadMessage(Keys); - break; - } - case 42: { - if (values_ == null) { - Values = new global::Validate.FieldRules(); - } - input.ReadMessage(Values); - break; - } - case 48: { - IgnoreEmpty = input.ReadBool(); - break; - } - } - } - } - #endif - - } - - /// - /// AnyRules describe constraints applied exclusively to the - /// `google.protobuf.Any` well-known type - /// - public sealed partial class AnyRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AnyRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[20]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AnyRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AnyRules(AnyRules other) : this() { - _hasBits0 = other._hasBits0; - required_ = other.required_; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public AnyRules Clone() { - return new AnyRules(this); - } - - /// Field number for the "required" field. - public const int RequiredFieldNumber = 1; - private readonly static bool RequiredDefaultValue = false; - - private bool required_; - /// - /// Required specifies that this field must be set - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Required { - get { if ((_hasBits0 & 1) != 0) { return required_; } else { return RequiredDefaultValue; } } - set { - _hasBits0 |= 1; - required_ = value; - } - } - /// Gets whether the "required" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasRequired { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "required" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearRequired() { - _hasBits0 &= ~1; - } - - /// Field number for the "in" field. - public const int InFieldNumber = 2; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForString(18); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field's `type_url` must be equal to one of the - /// specified values. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 3; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForString(26); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field's `type_url` must not be equal to any of - /// the specified values. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as AnyRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(AnyRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Required != other.Required) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasRequired) hash ^= Required.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasRequired) { - output.WriteRawTag(8); - output.WriteBool(Required); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasRequired) { - output.WriteRawTag(8); - output.WriteBool(Required); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasRequired) { - size += 1 + 1; - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(AnyRules other) { - if (other == null) { - return; - } - if (other.HasRequired) { - Required = other.Required; - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Required = input.ReadBool(); - break; - } - case 18: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 26: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Required = input.ReadBool(); - break; - } - case 18: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 26: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - } - } - } - #endif - - } - - /// - /// DurationRules describe the constraints applied exclusively to the - /// `google.protobuf.Duration` well-known type - /// - public sealed partial class DurationRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DurationRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[21]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DurationRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DurationRules(DurationRules other) : this() { - _hasBits0 = other._hasBits0; - required_ = other.required_; - const_ = other.const_ != null ? other.const_.Clone() : null; - lt_ = other.lt_ != null ? other.lt_.Clone() : null; - lte_ = other.lte_ != null ? other.lte_.Clone() : null; - gt_ = other.gt_ != null ? other.gt_.Clone() : null; - gte_ = other.gte_ != null ? other.gte_.Clone() : null; - in_ = other.in_.Clone(); - notIn_ = other.notIn_.Clone(); - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public DurationRules Clone() { - return new DurationRules(this); - } - - /// Field number for the "required" field. - public const int RequiredFieldNumber = 1; - private readonly static bool RequiredDefaultValue = false; - - private bool required_; - /// - /// Required specifies that this field must be set - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Required { - get { if ((_hasBits0 & 1) != 0) { return required_; } else { return RequiredDefaultValue; } } - set { - _hasBits0 |= 1; - required_ = value; - } - } - /// Gets whether the "required" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasRequired { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "required" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearRequired() { - _hasBits0 &= ~1; - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 2; - private global::Google.Protobuf.WellKnownTypes.Duration const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Const { - get { return const_; } - set { - const_ = value; - } - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 3; - private global::Google.Protobuf.WellKnownTypes.Duration lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Lt { - get { return lt_; } - set { - lt_ = value; - } - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 4; - private global::Google.Protobuf.WellKnownTypes.Duration lte_; - /// - /// Lt specifies that this field must be less than the specified value, - /// inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Lte { - get { return lte_; } - set { - lte_ = value; - } - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 5; - private global::Google.Protobuf.WellKnownTypes.Duration gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Gt { - get { return gt_; } - set { - gt_ = value; - } - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 6; - private global::Google.Protobuf.WellKnownTypes.Duration gte_; - /// - /// Gte specifies that this field must be greater than the specified value, - /// inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Gte { - get { return gte_; } - set { - gte_ = value; - } - } - - /// Field number for the "in" field. - public const int InFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_in_codec - = pb::FieldCodec.ForMessage(58, global::Google.Protobuf.WellKnownTypes.Duration.Parser); - private readonly pbc::RepeatedField in_ = new pbc::RepeatedField(); - /// - /// In specifies that this field must be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField In { - get { return in_; } - } - - /// Field number for the "not_in" field. - public const int NotInFieldNumber = 8; - private static readonly pb::FieldCodec _repeated_notIn_codec - = pb::FieldCodec.ForMessage(66, global::Google.Protobuf.WellKnownTypes.Duration.Parser); - private readonly pbc::RepeatedField notIn_ = new pbc::RepeatedField(); - /// - /// NotIn specifies that this field cannot be equal to one of the specified - /// values - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField NotIn { - get { return notIn_; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as DurationRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(DurationRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Required != other.Required) return false; - if (!object.Equals(Const, other.Const)) return false; - if (!object.Equals(Lt, other.Lt)) return false; - if (!object.Equals(Lte, other.Lte)) return false; - if (!object.Equals(Gt, other.Gt)) return false; - if (!object.Equals(Gte, other.Gte)) return false; - if(!in_.Equals(other.in_)) return false; - if(!notIn_.Equals(other.notIn_)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasRequired) hash ^= Required.GetHashCode(); - if (const_ != null) hash ^= Const.GetHashCode(); - if (lt_ != null) hash ^= Lt.GetHashCode(); - if (lte_ != null) hash ^= Lte.GetHashCode(); - if (gt_ != null) hash ^= Gt.GetHashCode(); - if (gte_ != null) hash ^= Gte.GetHashCode(); - hash ^= in_.GetHashCode(); - hash ^= notIn_.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasRequired) { - output.WriteRawTag(8); - output.WriteBool(Required); - } - if (const_ != null) { - output.WriteRawTag(18); - output.WriteMessage(Const); - } - if (lt_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Lt); - } - if (lte_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Lte); - } - if (gt_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Gt); - } - if (gte_ != null) { - output.WriteRawTag(50); - output.WriteMessage(Gte); - } - in_.WriteTo(output, _repeated_in_codec); - notIn_.WriteTo(output, _repeated_notIn_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasRequired) { - output.WriteRawTag(8); - output.WriteBool(Required); - } - if (const_ != null) { - output.WriteRawTag(18); - output.WriteMessage(Const); - } - if (lt_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Lt); - } - if (lte_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Lte); - } - if (gt_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Gt); - } - if (gte_ != null) { - output.WriteRawTag(50); - output.WriteMessage(Gte); - } - in_.WriteTo(ref output, _repeated_in_codec); - notIn_.WriteTo(ref output, _repeated_notIn_codec); - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasRequired) { - size += 1 + 1; - } - if (const_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Const); - } - if (lt_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lt); - } - if (lte_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lte); - } - if (gt_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gt); - } - if (gte_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gte); - } - size += in_.CalculateSize(_repeated_in_codec); - size += notIn_.CalculateSize(_repeated_notIn_codec); - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(DurationRules other) { - if (other == null) { - return; - } - if (other.HasRequired) { - Required = other.Required; - } - if (other.const_ != null) { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - Const.MergeFrom(other.Const); - } - if (other.lt_ != null) { - if (lt_ == null) { - Lt = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - Lt.MergeFrom(other.Lt); - } - if (other.lte_ != null) { - if (lte_ == null) { - Lte = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - Lte.MergeFrom(other.Lte); - } - if (other.gt_ != null) { - if (gt_ == null) { - Gt = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - Gt.MergeFrom(other.Gt); - } - if (other.gte_ != null) { - if (gte_ == null) { - Gte = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - Gte.MergeFrom(other.Gte); - } - in_.Add(other.in_); - notIn_.Add(other.notIn_); - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Required = input.ReadBool(); - break; - } - case 18: { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Const); - break; - } - case 26: { - if (lt_ == null) { - Lt = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Lt); - break; - } - case 34: { - if (lte_ == null) { - Lte = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Lte); - break; - } - case 42: { - if (gt_ == null) { - Gt = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Gt); - break; - } - case 50: { - if (gte_ == null) { - Gte = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Gte); - break; - } - case 58: { - in_.AddEntriesFrom(input, _repeated_in_codec); - break; - } - case 66: { - notIn_.AddEntriesFrom(input, _repeated_notIn_codec); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Required = input.ReadBool(); - break; - } - case 18: { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Const); - break; - } - case 26: { - if (lt_ == null) { - Lt = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Lt); - break; - } - case 34: { - if (lte_ == null) { - Lte = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Lte); - break; - } - case 42: { - if (gt_ == null) { - Gt = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Gt); - break; - } - case 50: { - if (gte_ == null) { - Gte = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Gte); - break; - } - case 58: { - in_.AddEntriesFrom(ref input, _repeated_in_codec); - break; - } - case 66: { - notIn_.AddEntriesFrom(ref input, _repeated_notIn_codec); - break; - } - } - } - } - #endif - - } - - /// - /// TimestampRules describe the constraints applied exclusively to the - /// `google.protobuf.Timestamp` well-known type - /// - public sealed partial class TimestampRules : pb::IMessage - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - , pb::IBufferMessage - #endif - { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TimestampRules()); - private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pbr::MessageDescriptor Descriptor { - get { return global::Validate.ValidateReflection.Descriptor.MessageTypes[22]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TimestampRules() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TimestampRules(TimestampRules other) : this() { - _hasBits0 = other._hasBits0; - required_ = other.required_; - const_ = other.const_ != null ? other.const_.Clone() : null; - lt_ = other.lt_ != null ? other.lt_.Clone() : null; - lte_ = other.lte_ != null ? other.lte_.Clone() : null; - gt_ = other.gt_ != null ? other.gt_.Clone() : null; - gte_ = other.gte_ != null ? other.gte_.Clone() : null; - ltNow_ = other.ltNow_; - gtNow_ = other.gtNow_; - within_ = other.within_ != null ? other.within_.Clone() : null; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public TimestampRules Clone() { - return new TimestampRules(this); - } - - /// Field number for the "required" field. - public const int RequiredFieldNumber = 1; - private readonly static bool RequiredDefaultValue = false; - - private bool required_; - /// - /// Required specifies that this field must be set - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Required { - get { if ((_hasBits0 & 1) != 0) { return required_; } else { return RequiredDefaultValue; } } - set { - _hasBits0 |= 1; - required_ = value; - } - } - /// Gets whether the "required" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasRequired { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "required" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearRequired() { - _hasBits0 &= ~1; - } - - /// Field number for the "const" field. - public const int ConstFieldNumber = 2; - private global::Google.Protobuf.WellKnownTypes.Timestamp const_; - /// - /// Const specifies that this field must be exactly the specified value - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Const { - get { return const_; } - set { - const_ = value; - } - } - - /// Field number for the "lt" field. - public const int LtFieldNumber = 3; - private global::Google.Protobuf.WellKnownTypes.Timestamp lt_; - /// - /// Lt specifies that this field must be less than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Lt { - get { return lt_; } - set { - lt_ = value; - } - } - - /// Field number for the "lte" field. - public const int LteFieldNumber = 4; - private global::Google.Protobuf.WellKnownTypes.Timestamp lte_; - /// - /// Lte specifies that this field must be less than the specified value, - /// inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Lte { - get { return lte_; } - set { - lte_ = value; - } - } - - /// Field number for the "gt" field. - public const int GtFieldNumber = 5; - private global::Google.Protobuf.WellKnownTypes.Timestamp gt_; - /// - /// Gt specifies that this field must be greater than the specified value, - /// exclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Gt { - get { return gt_; } - set { - gt_ = value; - } - } - - /// Field number for the "gte" field. - public const int GteFieldNumber = 6; - private global::Google.Protobuf.WellKnownTypes.Timestamp gte_; - /// - /// Gte specifies that this field must be greater than the specified value, - /// inclusive - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Timestamp Gte { - get { return gte_; } - set { - gte_ = value; - } - } - - /// Field number for the "lt_now" field. - public const int LtNowFieldNumber = 7; - private readonly static bool LtNowDefaultValue = false; - - private bool ltNow_; - /// - /// LtNow specifies that this must be less than the current time. LtNow - /// can only be used with the Within rule. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool LtNow { - get { if ((_hasBits0 & 2) != 0) { return ltNow_; } else { return LtNowDefaultValue; } } - set { - _hasBits0 |= 2; - ltNow_ = value; - } - } - /// Gets whether the "lt_now" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasLtNow { - get { return (_hasBits0 & 2) != 0; } - } - /// Clears the value of the "lt_now" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearLtNow() { - _hasBits0 &= ~2; - } - - /// Field number for the "gt_now" field. - public const int GtNowFieldNumber = 8; - private readonly static bool GtNowDefaultValue = false; - - private bool gtNow_; - /// - /// GtNow specifies that this must be greater than the current time. GtNow - /// can only be used with the Within rule. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool GtNow { - get { if ((_hasBits0 & 4) != 0) { return gtNow_; } else { return GtNowDefaultValue; } } - set { - _hasBits0 |= 4; - gtNow_ = value; - } - } - /// Gets whether the "gt_now" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasGtNow { - get { return (_hasBits0 & 4) != 0; } - } - /// Clears the value of the "gt_now" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearGtNow() { - _hasBits0 &= ~4; - } - - /// Field number for the "within" field. - public const int WithinFieldNumber = 9; - private global::Google.Protobuf.WellKnownTypes.Duration within_; - /// - /// Within specifies that this field must be within this duration of the - /// current time. This constraint can be used alone or with the LtNow and - /// GtNow rules. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Google.Protobuf.WellKnownTypes.Duration Within { - get { return within_; } - set { - within_ = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override bool Equals(object other) { - return Equals(other as TimestampRules); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(TimestampRules other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (Required != other.Required) return false; - if (!object.Equals(Const, other.Const)) return false; - if (!object.Equals(Lt, other.Lt)) return false; - if (!object.Equals(Lte, other.Lte)) return false; - if (!object.Equals(Gt, other.Gt)) return false; - if (!object.Equals(Gte, other.Gte)) return false; - if (LtNow != other.LtNow) return false; - if (GtNow != other.GtNow) return false; - if (!object.Equals(Within, other.Within)) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override int GetHashCode() { - int hash = 1; - if (HasRequired) hash ^= Required.GetHashCode(); - if (const_ != null) hash ^= Const.GetHashCode(); - if (lt_ != null) hash ^= Lt.GetHashCode(); - if (lte_ != null) hash ^= Lte.GetHashCode(); - if (gt_ != null) hash ^= Gt.GetHashCode(); - if (gte_ != null) hash ^= Gte.GetHashCode(); - if (HasLtNow) hash ^= LtNow.GetHashCode(); - if (HasGtNow) hash ^= GtNow.GetHashCode(); - if (within_ != null) hash ^= Within.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void WriteTo(pb::CodedOutputStream output) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - output.WriteRawMessage(this); - #else - if (HasRequired) { - output.WriteRawTag(8); - output.WriteBool(Required); - } - if (const_ != null) { - output.WriteRawTag(18); - output.WriteMessage(Const); - } - if (lt_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Lt); - } - if (lte_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Lte); - } - if (gt_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Gt); - } - if (gte_ != null) { - output.WriteRawTag(50); - output.WriteMessage(Gte); - } - if (HasLtNow) { - output.WriteRawTag(56); - output.WriteBool(LtNow); - } - if (HasGtNow) { - output.WriteRawTag(64); - output.WriteBool(GtNow); - } - if (within_ != null) { - output.WriteRawTag(74); - output.WriteMessage(Within); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (HasRequired) { - output.WriteRawTag(8); - output.WriteBool(Required); - } - if (const_ != null) { - output.WriteRawTag(18); - output.WriteMessage(Const); - } - if (lt_ != null) { - output.WriteRawTag(26); - output.WriteMessage(Lt); - } - if (lte_ != null) { - output.WriteRawTag(34); - output.WriteMessage(Lte); - } - if (gt_ != null) { - output.WriteRawTag(42); - output.WriteMessage(Gt); - } - if (gte_ != null) { - output.WriteRawTag(50); - output.WriteMessage(Gte); - } - if (HasLtNow) { - output.WriteRawTag(56); - output.WriteBool(LtNow); - } - if (HasGtNow) { - output.WriteRawTag(64); - output.WriteBool(GtNow); - } - if (within_ != null) { - output.WriteRawTag(74); - output.WriteMessage(Within); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(ref output); - } - } - #endif - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public int CalculateSize() { - int size = 0; - if (HasRequired) { - size += 1 + 1; - } - if (const_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Const); - } - if (lt_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lt); - } - if (lte_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lte); - } - if (gt_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gt); - } - if (gte_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Gte); - } - if (HasLtNow) { - size += 1 + 1; - } - if (HasGtNow) { - size += 1 + 1; - } - if (within_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Within); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(TimestampRules other) { - if (other == null) { - return; - } - if (other.HasRequired) { - Required = other.Required; - } - if (other.const_ != null) { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Const.MergeFrom(other.Const); - } - if (other.lt_ != null) { - if (lt_ == null) { - Lt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Lt.MergeFrom(other.Lt); - } - if (other.lte_ != null) { - if (lte_ == null) { - Lte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Lte.MergeFrom(other.Lte); - } - if (other.gt_ != null) { - if (gt_ == null) { - Gt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Gt.MergeFrom(other.Gt); - } - if (other.gte_ != null) { - if (gte_ == null) { - Gte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - Gte.MergeFrom(other.Gte); - } - if (other.HasLtNow) { - LtNow = other.LtNow; - } - if (other.HasGtNow) { - GtNow = other.GtNow; - } - if (other.within_ != null) { - if (within_ == null) { - Within = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - Within.MergeFrom(other.Within); - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(pb::CodedInputStream input) { - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - input.ReadRawMessage(this); - #else - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - Required = input.ReadBool(); - break; - } - case 18: { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Const); - break; - } - case 26: { - if (lt_ == null) { - Lt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Lt); - break; - } - case 34: { - if (lte_ == null) { - Lte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Lte); - break; - } - case 42: { - if (gt_ == null) { - Gt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Gt); - break; - } - case 50: { - if (gte_ == null) { - Gte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Gte); - break; - } - case 56: { - LtNow = input.ReadBool(); - break; - } - case 64: { - GtNow = input.ReadBool(); - break; - } - case 74: { - if (within_ == null) { - Within = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Within); - break; - } - } - } - #endif - } - - #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); - break; - case 8: { - Required = input.ReadBool(); - break; - } - case 18: { - if (const_ == null) { - Const = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Const); - break; - } - case 26: { - if (lt_ == null) { - Lt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Lt); - break; - } - case 34: { - if (lte_ == null) { - Lte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Lte); - break; - } - case 42: { - if (gt_ == null) { - Gt = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Gt); - break; - } - case 50: { - if (gte_ == null) { - Gte = new global::Google.Protobuf.WellKnownTypes.Timestamp(); - } - input.ReadMessage(Gte); - break; - } - case 56: { - LtNow = input.ReadBool(); - break; - } - case 64: { - GtNow = input.ReadBool(); - break; - } - case 74: { - if (within_ == null) { - Within = new global::Google.Protobuf.WellKnownTypes.Duration(); - } - input.ReadMessage(Within); - break; - } - } - } - } - #endif - - } - - #endregion - -} - -#endregion Designer generated code diff --git a/src/Sdk/sdk.csproj b/src/Sdk/sdk.csproj index f7dcc8b..51685d6 100644 --- a/src/Sdk/sdk.csproj +++ b/src/Sdk/sdk.csproj @@ -16,7 +16,7 @@ - +