diff --git a/protos/buf.lock b/protos/buf.lock index 34b3d55f0..a2462ad16 100644 --- a/protos/buf.lock +++ b/protos/buf.lock @@ -1,11 +1,6 @@ # Generated by buf. DO NOT EDIT. version: v1 deps: - - remote: buf.build - owner: bufbuild - repository: protovalidate - commit: 50325440f8f24053b047484a6bf60b76 - digest: shake256:32560c4bbc1689fcb893d4ea6c26a9c600300c3c7691abdadbbaa9348e16061c9e74dce96ac296fe561b1abb56ca4b5976619a1f0038981d876da7bc02e3c385 - remote: buf.build owner: googleapis repository: googleapis diff --git a/protos/buf.yaml b/protos/buf.yaml index e7857f182..08cee397f 100644 --- a/protos/buf.yaml +++ b/protos/buf.yaml @@ -13,5 +13,4 @@ lint: - sift/protobuf_descriptors/v2/channel_parsing_options.proto deps: - buf.build/googleapis/googleapis - - buf.build/grpc-ecosystem/grpc-gateway - - buf.build/bufbuild/protovalidate \ No newline at end of file + - buf.build/grpc-ecosystem/grpc-gateway \ No newline at end of file diff --git a/protos/sift/api_keys/v2/api_keys.proto b/protos/sift/api_keys/v2/api_keys.proto index f845582d8..4aa6aa1e4 100644 --- a/protos/sift/api_keys/v2/api_keys.proto +++ b/protos/sift/api_keys/v2/api_keys.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.api_keys.v2; -import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; @@ -113,18 +112,12 @@ message ListApiKeysResponse { message CreateApiKeyRequest { // The name for the new ApiKey. Required. string name = 1 [(google.api.field_behavior) = REQUIRED]; - string user_id = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string user_id = 2 [(google.api.field_behavior) = REQUIRED]; } // The request for a call to ApiKeyService.DeleteApiKey. message DeleteApiKeyRequest { - string api_key_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string api_key_id = 1 [(google.api.field_behavior) = REQUIRED]; } message DeleteApiKeyResponse {} diff --git a/protos/sift/common/type/v1/calculated_channels.proto b/protos/sift/common/type/v1/calculated_channels.proto index e358e70bb..7486fa35b 100644 --- a/protos/sift/common/type/v1/calculated_channels.proto +++ b/protos/sift/common/type/v1/calculated_channels.proto @@ -2,14 +2,10 @@ syntax = "proto3"; package sift.common.type.v1; -import "buf/validate/validate.proto"; import "google/api/field_behavior.proto"; // A dependency on another calculated channel. message CalculatedChannelDependency { - string calculated_channel_version_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string calculated_channel_version_id = 1 [(google.api.field_behavior) = REQUIRED]; } diff --git a/protos/sift/common/type/v1/user_defined_functions.proto b/protos/sift/common/type/v1/user_defined_functions.proto index 019ef95ec..eaee6f4a0 100644 --- a/protos/sift/common/type/v1/user_defined_functions.proto +++ b/protos/sift/common/type/v1/user_defined_functions.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.common.type.v1; -import "buf/validate/validate.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "sift/metadata/v1/metadata.proto"; @@ -39,10 +38,7 @@ message UserDefinedFunction { } message FunctionDependency { - string user_defined_function_version_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string user_defined_function_version_id = 1 [(google.api.field_behavior) = REQUIRED]; } message FunctionInput { diff --git a/protos/sift/runs/v2/runs.proto b/protos/sift/runs/v2/runs.proto index c8cbc7443..fce47eec0 100644 --- a/protos/sift/runs/v2/runs.proto +++ b/protos/sift/runs/v2/runs.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.runs.v2; -import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; @@ -144,10 +143,7 @@ message Run { // The request for a call to `RunService_GetRun` to retrieve run. message GetRunRequest { // The ID of the run to retrieve. - string run_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string run_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `RunService_GetRun` containing the requested run. @@ -218,14 +214,7 @@ message CreateRunRequest { string organization_id = 7 [(google.api.field_behavior) = OPTIONAL]; // An arbitrary user-chosen key that uniquely identifies this run. Optional, though it is recommended to provide. - optional string client_key = 8 [ - (google.api.field_behavior) = OPTIONAL, - (buf.validate.field).cel = { - id: "invalid_client_key" - message: "client key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-]." - expression: "this.matches('^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$')" - } - ]; + optional string client_key = 8 [(google.api.field_behavior) = OPTIONAL]; // The metadata values associated with this run. repeated sift.metadata.v1.MetadataValue metadata = 9 [(google.api.field_behavior) = OPTIONAL]; @@ -242,10 +231,7 @@ message CreateRunResponse { // The request for a call to `RunService_CreateAdhocRun` to create an adhoc run. message CreateAdhocRunRequest { // The name that will be assigned to the new run. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.min_len = 1 - ]; + string name = 1 [(google.api.field_behavior) = REQUIRED]; // A description about the new run. string description = 2 [(google.api.field_behavior) = REQUIRED]; // The time at which data ingestion began for this new run. It must be before the `stop_time` @@ -253,23 +239,13 @@ message CreateAdhocRunRequest { // The time at which data ingestion concluded for this new run. google.protobuf.Timestamp stop_time = 4 [(google.api.field_behavior) = REQUIRED]; // A list of asset IDs to associate with the new run. - repeated string asset_ids = 5 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).repeated.min_items = 1 - ]; + repeated string asset_ids = 5 [(google.api.field_behavior) = REQUIRED]; // Tags to associate with the new run. repeated string tags = 6 [(google.api.field_behavior) = OPTIONAL]; // The metadata values associated with this run. repeated sift.metadata.v1.MetadataValue metadata = 7 [(google.api.field_behavior) = OPTIONAL]; // An arbitrary user-chosen key that uniquely identifies this run. Optional, though it is recommended to provide. - optional string client_key = 8 [ - (google.api.field_behavior) = OPTIONAL, - (buf.validate.field).cel = { - id: "invalid_client_key" - message: "client key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-]." - expression: "this.matches('^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$')" - } - ]; + optional string client_key = 8 [(google.api.field_behavior) = OPTIONAL]; } // The response of a call to `RunService_CreateAdhocRun` containing the newly created adhoc run. @@ -289,14 +265,7 @@ message UpdateRunRequest { // commences for this run, the `start_time` will be automatically overwritten and set to the timestamp // corresponding to the beginning of the latest run. Additionally, `client_key` can only be set once either in run creation or in update. // Any subsequent attempt to update `client_key` will result in an error. - google.protobuf.FieldMask update_mask = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).cel = { - id: "invalid_field_mask_path" - message: "field mask path must be in ['name', 'description', 'start_time', 'startTime', 'stop_time', 'stopTime', 'is_pinned', 'isPinned', 'client_key', 'clientKey', 'tags', 'metadata', 'archived_date', 'is_archived', 'isArchived']" - expression: "this.paths.all(path, path in ['name', 'description', 'start_time', 'startTime', 'stop_time', 'stopTime', 'is_pinned', 'isPinned', 'client_key', 'clientKey', 'tags', 'metadata', 'archived_date', 'is_archived', 'isArchived'])" - } - ]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `RunService_UpdateRun` containing the updated run. @@ -306,10 +275,7 @@ message UpdateRunResponse { message CreateAutomaticRunAssociationForAssetsRequest { // The ID of the run to associate the asset with. - string run_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string run_id = 1 [(google.api.field_behavior) = REQUIRED]; // A list of asset names to automatically associate with the run. // Any data that is received for these assets will automatically added to the run. @@ -325,10 +291,7 @@ message CreateAutomaticRunAssociationForAssetsResponse {} // The request for a call to `RunService_DeleteRun`. message DeleteRunRequest { - string run_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string run_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `RunService_DeleteRun`. @@ -336,10 +299,7 @@ message DeleteRunResponse {} // The request for a call to `RunService_StopRun` to stop a run. message StopRunRequest { - string run_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string run_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `RunService_StopRun` to stop a run. diff --git a/protos/sift/user_defined_functions/v1/user_defined_functions.proto b/protos/sift/user_defined_functions/v1/user_defined_functions.proto index 932084329..a15595224 100644 --- a/protos/sift/user_defined_functions/v1/user_defined_functions.proto +++ b/protos/sift/user_defined_functions/v1/user_defined_functions.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.user_defined_functions.v1; -import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/field_mask.proto"; @@ -118,10 +117,7 @@ service UserDefinedFunctionService { // If `user_defined_function_id` is provided then all other arguments will be ignored. The argument `user_defined_function_id` // should not be used together with `name`. message GetUserDefinedFunctionRequest { - string user_defined_function_id = 1 [ - (google.api.field_behavior) = OPTIONAL, - (buf.validate.field).string.uuid = true - ]; + string user_defined_function_id = 1 [(google.api.field_behavior) = OPTIONAL]; string name = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -131,10 +127,7 @@ message GetUserDefinedFunctionResponse { // The request for a call to `UserDefinedFunctionService_GetUserDefinedFunctionVersion` to retrieve a specific version of a user defined function. message GetUserDefinedFunctionVersionRequest { - string user_defined_function_version_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string user_defined_function_version_id = 1 [(google.api.field_behavior) = REQUIRED]; } message GetUserDefinedFunctionVersionResponse { @@ -145,15 +138,9 @@ message GetUserDefinedFunctionVersionResponse { message GetUserDefinedFunctionDependentsRequest { uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; oneof user_defined_function { - string user_defined_function_id = 2 [ - (buf.validate.field).string.uuid = true, - (google.api.field_behavior) = OPTIONAL - ]; + string user_defined_function_id = 2 [(google.api.field_behavior) = OPTIONAL]; string user_defined_function_name = 3 [(google.api.field_behavior) = OPTIONAL]; - string user_defined_function_version_id = 4 [ - (buf.validate.field).string.uuid = true, - (google.api.field_behavior) = OPTIONAL - ]; + string user_defined_function_version_id = 4 [(google.api.field_behavior) = OPTIONAL]; } } @@ -168,10 +155,7 @@ message GetUserDefinedFunctionDependentsResponse { // The request for a call to `UserDefinedFunctionService_GetUserDefinedFunctionVersions` to retrieve versions of user defined functions. message GetUserDefinedFunctionVersionsRequest { - repeated string user_defined_function_version_ids = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).repeated.items.string.uuid = true - ]; + repeated string user_defined_function_version_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message GetUserDefinedFunctionVersionsResponse { @@ -179,14 +163,7 @@ message GetUserDefinedFunctionVersionsResponse { } message CreateUserDefinedFunctionRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).cel = { - id: "invalid_name" - message: "name must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-]." - expression: "this.matches('^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$')" - } - ]; + string name = 1 [(google.api.field_behavior) = REQUIRED]; optional string description = 2 [(google.api.field_behavior) = OPTIONAL]; string expression = 3 [(google.api.field_behavior) = REQUIRED]; repeated sift.common.type.v1.FunctionInput function_inputs = 4 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/user_groups/v2/user_groups.proto b/protos/sift/user_groups/v2/user_groups.proto index a9367975f..97356fedc 100644 --- a/protos/sift/user_groups/v2/user_groups.proto +++ b/protos/sift/user_groups/v2/user_groups.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.user_groups.v2; -import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/field_mask.proto"; @@ -100,17 +99,11 @@ message UserGroup { string role_id = 3 [(google.api.field_behavior) = OPTIONAL]; bool is_default = 4 [(google.api.field_behavior) = REQUIRED]; message Resource { - repeated string asset_ids = 1 [ - (google.api.field_behavior) = OPTIONAL, - (buf.validate.field).repeated.items.string.uuid = true - ]; + repeated string asset_ids = 1 [(google.api.field_behavior) = OPTIONAL]; bool all_assets = 2 [(google.api.field_behavior) = REQUIRED]; } Resource resources = 6 [(google.api.field_behavior) = OPTIONAL]; - repeated string user_ids = 7 [ - (google.api.field_behavior) = OPTIONAL, - (buf.validate.field).repeated.items.string.uuid = true - ]; + repeated string user_ids = 7 [(google.api.field_behavior) = OPTIONAL]; bool is_external = 8 [(google.api.field_behavior) = REQUIRED]; } @@ -150,7 +143,7 @@ message ListUserGroupsResponse { } message GetUserGroupRequest { - string user_group_id = 1 [(buf.validate.field).string.uuid = true]; + string user_group_id = 1; } message GetUserGroupResponse { @@ -158,8 +151,8 @@ message GetUserGroupResponse { } message UpdateUserUserGroupsRequest { - string user_id = 1 [(buf.validate.field).string.uuid = true]; - repeated string user_group_ids = 2 [(buf.validate.field).repeated.items.string.uuid = true]; + string user_id = 1; + repeated string user_group_ids = 2; } message UpdateUserUserGroupsResponse {} @@ -176,14 +169,7 @@ message UpdateUserGroupRequest { UserGroup user_group = 1 [(google.api.field_behavior) = REQUIRED]; // The list of fields to update. - google.protobuf.FieldMask update_mask = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).cel = { - id: "invalid_field_mask_path" - message: "field mask path must be in ['name', 'is_default', 'role_id', 'resources', 'users']" - expression: "this.paths.all(path, path in ['name', 'is_default', 'role_id', 'resources', 'users'])" - } - ]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } message UpdateUserGroupResponse { @@ -191,45 +177,27 @@ message UpdateUserGroupResponse { } message DeleteUserGroupRequest { - string user_group_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; } message DeleteUserGroupResponse {} message AddUserToUserGroupRequest { - string user_group_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; - string user_id = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; + string user_id = 2 [(google.api.field_behavior) = REQUIRED]; } message AddUserToUserGroupResponse {} message RemoveUserFromUserGroupRequest { - string user_group_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; - string user_id = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; + string user_id = 2 [(google.api.field_behavior) = REQUIRED]; } message RemoveUserFromUserGroupResponse {} message GetUserGroupsForAssetsRequest { - repeated string asset_ids = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).repeated.items.string.uuid = true - ]; + repeated string asset_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message GetUserGroupsForAssetsResponse { diff --git a/protos/sift/webhooks/v1/webhooks.proto b/protos/sift/webhooks/v1/webhooks.proto index ec03d1f41..7d4374ce7 100644 --- a/protos/sift/webhooks/v1/webhooks.proto +++ b/protos/sift/webhooks/v1/webhooks.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.webhooks.v1; -import "buf/validate/validate.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/field_mask.proto"; @@ -141,35 +140,17 @@ service WebhookService { } message Webhook { - string webhook_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; - string organization_id = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; - string target_url = 3 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uri = true - ]; - string name = 4 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.min_len = 1 - ]; + string webhook_id = 1 [(google.api.field_behavior) = REQUIRED]; + string organization_id = 2 [(google.api.field_behavior) = REQUIRED]; + string target_url = 3 [(google.api.field_behavior) = REQUIRED]; + string name = 4 [(google.api.field_behavior) = REQUIRED]; WebhookEventType event_type = 5 [(google.api.field_behavior) = REQUIRED]; optional string payload = 6 [(google.api.field_behavior) = OPTIONAL]; google.protobuf.Timestamp created_date = 7 [(google.api.field_behavior) = REQUIRED]; google.protobuf.Timestamp modified_date = 8 [(google.api.field_behavior) = REQUIRED]; optional google.protobuf.Timestamp archived_date = 9 [(google.api.field_behavior) = OPTIONAL]; - string created_by_user_id = 10 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; - string modified_by_user_id = 11 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string created_by_user_id = 10 [(google.api.field_behavior) = REQUIRED]; + string modified_by_user_id = 11 [(google.api.field_behavior) = REQUIRED]; repeated WebhookHttpHeader http_headers = 12 [(google.api.field_behavior) = REQUIRED]; bool is_archived = 13 [(google.api.field_behavior) = REQUIRED]; } @@ -180,19 +161,10 @@ enum WebhookEventType { } message WebhookLog { - string webhook_log_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uri = true - ]; - string webhook_id = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uri = true - ]; + string webhook_log_id = 1 [(google.api.field_behavior) = REQUIRED]; + string webhook_id = 2 [(google.api.field_behavior) = REQUIRED]; string event_id = 3 [(google.api.field_behavior) = REQUIRED]; - string organization_id = 4 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uri = true - ]; + string organization_id = 4 [(google.api.field_behavior) = REQUIRED]; WebhookLogStatus status = 5 [(google.api.field_behavior) = REQUIRED]; optional string payload = 6 [(google.api.field_behavior) = OPTIONAL]; uint32 retry_attempt_number = 7 [(google.api.field_behavior) = REQUIRED]; @@ -214,10 +186,7 @@ message WebhookSignatureKey { } message WebhookHttpHeader { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.well_known_regex = KNOWN_REGEX_HTTP_HEADER_NAME - ]; + string name = 1 [(google.api.field_behavior) = REQUIRED]; string value = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -230,10 +199,7 @@ enum WebhookLogStatus { // The request for a call to `WebhookService_GetWebhook` to retrieve a webhook. message GetWebhookRequest { - string webhook_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string webhook_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `WebhookService_GetWebhook`. @@ -249,14 +215,7 @@ message UpdateWebhookRequest { // The list of fields to be updated. The fields available to be updated are // 'target_url', 'name', 'event_type', 'payload', 'http_headers', 'archived_date', 'is_archived'. - google.protobuf.FieldMask update_mask = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).cel = { - id: "invalid_field_mask_path" - message: "field mask path must be in ['target_url', 'targetUrl', 'name', 'event_type', 'eventType', 'payload', 'http_headers', 'httpHeaders', 'archived_date', 'archivedDate', 'is_archived', 'isArchived']" - expression: "this.paths.all(path, path in ['target_url', 'targetUrl', 'name', 'event_type', 'eventType', 'payload', 'http_headers', 'httpHeaders', 'archived_date', 'archivedDate', 'is_archived', 'isArchived'])" - } - ]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `WebhookService_UpdateWebhook`. To archive a webhook, specify `archived_date` @@ -269,14 +228,8 @@ message UpdateWebhookResponse { // The request for a call to `WebhookService_CreateWebhook` to create a webhook. message CreateWebhookRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.min_len = 1 - ]; - string target_url = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uri = true - ]; + string name = 1 [(google.api.field_behavior) = REQUIRED]; + string target_url = 2 [(google.api.field_behavior) = REQUIRED]; WebhookEventType event_type = 3 [(google.api.field_behavior) = REQUIRED]; optional string payload = 4 [(google.api.field_behavior) = OPTIONAL]; repeated WebhookHttpHeader http_headers = 5 [(google.api.field_behavior) = REQUIRED]; @@ -293,10 +246,7 @@ message ListWebhooksRequest { // The service may return fewer than this value. // If unspecified, at most 50 runs will be returned. // The maximum value is 1000. - uint32 page_size = 1 [ - (google.api.field_behavior) = OPTIONAL, - (buf.validate.field).uint32.lte = 1000 - ]; + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; // A page token, received from a previous `ListWebhooks` call. // Provide this to retrieve the subsequent page. @@ -388,10 +338,7 @@ message ListWebhookLogsRequest { // The service may return fewer than this value. // If unspecified, at most 50 runs will be returned. // The maximum value is 1000. - uint32 page_size = 1 [ - (google.api.field_behavior) = OPTIONAL, - (buf.validate.field).uint32.lte = 1000 - ]; + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; // A page token, received from a previous `ListWebhookLogs` call. // Provide this to retrieve the subsequent page. @@ -419,14 +366,8 @@ message ListWebhookLogsResponse { // Request to create a single webhook log entry. message CreateWebhookLogRequest { - string webhook_id = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; - string event_id = 2 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).string.uuid = true - ]; + string webhook_id = 1 [(google.api.field_behavior) = REQUIRED]; + string event_id = 2 [(google.api.field_behavior) = REQUIRED]; uint32 retry_attempt_number = 3 [(google.api.field_behavior) = REQUIRED]; WebhookLogStatus status = 4 [(google.api.field_behavior) = REQUIRED]; optional string payload = 5 [(google.api.field_behavior) = REQUIRED]; @@ -436,10 +377,7 @@ message CreateWebhookLogRequest { // The request for a call to `WebhookService_BatchCreateWebhookLogs` to create a batch of webhook logs. message BatchCreateWebhookLogsRequest { - repeated CreateWebhookLogRequest requests = 1 [ - (google.api.field_behavior) = REQUIRED, - (buf.validate.field).repeated.max_items = 1000 - ]; + repeated CreateWebhookLogRequest requests = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `WebhookService_BatchCreateWebhookResponse`. diff --git a/python/lib/buf/__init__.py b/python/lib/buf/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/python/lib/buf/validate/__init__.py b/python/lib/buf/validate/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/python/lib/buf/validate/validate_pb2.py b/python/lib/buf/validate/validate_pb2.py deleted file mode 100644 index 0630b3277..000000000 --- a/python/lib/buf/validate/validate_pb2.py +++ /dev/null @@ -1,459 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: buf/validate/validate.proto -# Protobuf Python Version: 5.26.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 -from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 -from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x62uf/validate/validate.proto\x12\x0c\x62uf.validate\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"P\n\x04Rule\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1e\n\nexpression\x18\x03 \x01(\tR\nexpression\"\xa1\x01\n\x0cMessageRules\x12%\n\x0e\x63\x65l_expression\x18\x05 \x03(\tR\rcelExpression\x12$\n\x03\x63\x65l\x18\x03 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65l\x12\x34\n\x05oneof\x18\x04 \x03(\x0b\x32\x1e.buf.validate.MessageOneofRuleR\x05oneofJ\x04\x08\x01\x10\x02R\x08\x64isabled\"F\n\x10MessageOneofRule\x12\x16\n\x06\x66ields\x18\x01 \x03(\tR\x06\x66ields\x12\x1a\n\x08required\x18\x02 \x01(\x08R\x08required\"(\n\nOneofRules\x12\x1a\n\x08required\x18\x01 \x01(\x08R\x08required\"\xe3\n\n\nFieldRules\x12%\n\x0e\x63\x65l_expression\x18\x1d \x03(\tR\rcelExpression\x12$\n\x03\x63\x65l\x18\x17 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65l\x12\x1a\n\x08required\x18\x19 \x01(\x08R\x08required\x12,\n\x06ignore\x18\x1b \x01(\x0e\x32\x14.buf.validate.IgnoreR\x06ignore\x12\x30\n\x05\x66loat\x18\x01 \x01(\x0b\x32\x18.buf.validate.FloatRulesH\x00R\x05\x66loat\x12\x33\n\x06\x64ouble\x18\x02 \x01(\x0b\x32\x19.buf.validate.DoubleRulesH\x00R\x06\x64ouble\x12\x30\n\x05int32\x18\x03 \x01(\x0b\x32\x18.buf.validate.Int32RulesH\x00R\x05int32\x12\x30\n\x05int64\x18\x04 \x01(\x0b\x32\x18.buf.validate.Int64RulesH\x00R\x05int64\x12\x33\n\x06uint32\x18\x05 \x01(\x0b\x32\x19.buf.validate.UInt32RulesH\x00R\x06uint32\x12\x33\n\x06uint64\x18\x06 \x01(\x0b\x32\x19.buf.validate.UInt64RulesH\x00R\x06uint64\x12\x33\n\x06sint32\x18\x07 \x01(\x0b\x32\x19.buf.validate.SInt32RulesH\x00R\x06sint32\x12\x33\n\x06sint64\x18\x08 \x01(\x0b\x32\x19.buf.validate.SInt64RulesH\x00R\x06sint64\x12\x36\n\x07\x66ixed32\x18\t \x01(\x0b\x32\x1a.buf.validate.Fixed32RulesH\x00R\x07\x66ixed32\x12\x36\n\x07\x66ixed64\x18\n \x01(\x0b\x32\x1a.buf.validate.Fixed64RulesH\x00R\x07\x66ixed64\x12\x39\n\x08sfixed32\x18\x0b \x01(\x0b\x32\x1b.buf.validate.SFixed32RulesH\x00R\x08sfixed32\x12\x39\n\x08sfixed64\x18\x0c \x01(\x0b\x32\x1b.buf.validate.SFixed64RulesH\x00R\x08sfixed64\x12-\n\x04\x62ool\x18\r \x01(\x0b\x32\x17.buf.validate.BoolRulesH\x00R\x04\x62ool\x12\x33\n\x06string\x18\x0e \x01(\x0b\x32\x19.buf.validate.StringRulesH\x00R\x06string\x12\x30\n\x05\x62ytes\x18\x0f \x01(\x0b\x32\x18.buf.validate.BytesRulesH\x00R\x05\x62ytes\x12-\n\x04\x65num\x18\x10 \x01(\x0b\x32\x17.buf.validate.EnumRulesH\x00R\x04\x65num\x12\x39\n\x08repeated\x18\x12 \x01(\x0b\x32\x1b.buf.validate.RepeatedRulesH\x00R\x08repeated\x12*\n\x03map\x18\x13 \x01(\x0b\x32\x16.buf.validate.MapRulesH\x00R\x03map\x12*\n\x03\x61ny\x18\x14 \x01(\x0b\x32\x16.buf.validate.AnyRulesH\x00R\x03\x61ny\x12\x39\n\x08\x64uration\x18\x15 \x01(\x0b\x32\x1b.buf.validate.DurationRulesH\x00R\x08\x64uration\x12=\n\nfield_mask\x18\x1c \x01(\x0b\x32\x1c.buf.validate.FieldMaskRulesH\x00R\tfieldMask\x12<\n\ttimestamp\x18\x16 \x01(\x0b\x32\x1c.buf.validate.TimestampRulesH\x00R\ttimestampB\x06\n\x04typeJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"Z\n\x0fPredefinedRules\x12$\n\x03\x63\x65l\x18\x01 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65lJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"\xae\x17\n\nFloatRules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x02\x42n\xc2Hk\ni\n\x0b\x66loat.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x9d\x01\n\x02lt\x18\x02 \x01(\x02\x42\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x08\x66loat.lt\x1aw!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xae\x01\n\x03lte\x18\x03 \x01(\x02\x42\x99\x01\xc2H\x95\x01\n\x92\x01\n\tfloat.lte\x1a\x84\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xd4\x07\n\x02gt\x18\x04 \x01(\x02\x42\xc1\x07\xc2H\xbd\x07\n\x86\x01\n\x08\x66loat.gt\x1az!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xbd\x01\n\x0b\x66loat.gt_lt\x1a\xad\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x15\x66loat.gt_lt_exclusive\x1a\xad\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x0c\x66loat.gt_lte\x1a\xbc\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xd7\x01\n\x16\x66loat.gt_lte_exclusive\x1a\xbc\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xa1\x08\n\x03gte\x18\x05 \x01(\x02\x42\x8c\x08\xc2H\x88\x08\n\x95\x01\n\tfloat.gte\x1a\x87\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xcc\x01\n\x0c\x66loat.gte_lt\x1a\xbb\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x16\x66loat.gte_lt_exclusive\x1a\xbb\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\rfloat.gte_lte\x1a\xca\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xe6\x01\n\x17\x66loat.gte_lte_exclusive\x1a\xca\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x02\x42m\xc2Hj\nh\n\x08\x66loat.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x02\x42`\xc2H]\n[\n\x0c\x66loat.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12w\n\x06\x66inite\x18\x08 \x01(\x08\x42_\xc2H\\\nZ\n\x0c\x66loat.finite\x1aJrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'R\x06\x66inite\x12\x34\n\x07\x65xample\x18\t \x03(\x02\x42\x1a\xc2H\x17\n\x15\n\rfloat.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xc0\x17\n\x0b\x44oubleRules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x01\x42o\xc2Hl\nj\n\x0c\x64ouble.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x9e\x01\n\x02lt\x18\x02 \x01(\x01\x42\x8b\x01\xc2H\x87\x01\n\x84\x01\n\tdouble.lt\x1aw!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xaf\x01\n\x03lte\x18\x03 \x01(\x01\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\ndouble.lte\x1a\x84\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xd9\x07\n\x02gt\x18\x04 \x01(\x01\x42\xc6\x07\xc2H\xc2\x07\n\x87\x01\n\tdouble.gt\x1az!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xbe\x01\n\x0c\x64ouble.gt_lt\x1a\xad\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc8\x01\n\x16\x64ouble.gt_lt_exclusive\x1a\xad\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\rdouble.gt_lte\x1a\xbc\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xd8\x01\n\x17\x64ouble.gt_lte_exclusive\x1a\xbc\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xa6\x08\n\x03gte\x18\x05 \x01(\x01\x42\x91\x08\xc2H\x8d\x08\n\x96\x01\n\ndouble.gte\x1a\x87\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xcd\x01\n\rdouble.gte_lt\x1a\xbb\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd7\x01\n\x17\x64ouble.gte_lt_exclusive\x1a\xbb\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x0e\x64ouble.gte_lte\x1a\xca\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xe7\x01\n\x18\x64ouble.gte_lte_exclusive\x1a\xca\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x01\x42n\xc2Hk\ni\n\tdouble.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x01\x42\x61\xc2H^\n\\\n\rdouble.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12x\n\x06\x66inite\x18\x08 \x01(\x08\x42`\xc2H]\n[\n\rdouble.finite\x1aJrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'R\x06\x66inite\x12\x35\n\x07\x65xample\x18\t \x03(\x01\x42\x1b\xc2H\x18\n\x16\n\x0e\x64ouble.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xde\x14\n\nInt32Rules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42n\xc2Hk\ni\n\x0bint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x88\x01\n\x02lt\x18\x02 \x01(\x05\x42v\xc2Hs\nq\n\x08int32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9a\x01\n\x03lte\x18\x03 \x01(\x05\x42\x85\x01\xc2H\x81\x01\n\x7f\n\tint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xfd\x06\n\x02gt\x18\x04 \x01(\x05\x42\xea\x06\xc2H\xe6\x06\nt\n\x08int32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xad\x01\n\x0bint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb5\x01\n\x15int32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x0cint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc5\x01\n\x16int32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xca\x07\n\x03gte\x18\x05 \x01(\x05\x42\xb5\x07\xc2H\xb1\x07\n\x82\x01\n\tint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbc\x01\n\x0cint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc4\x01\n\x16int32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\rint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd4\x01\n\x17int32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x05\x42m\xc2Hj\nh\n\x08int32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x05\x42`\xc2H]\n[\n\x0cint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x34\n\x07\x65xample\x18\x08 \x03(\x05\x42\x1a\xc2H\x17\n\x15\n\rint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xde\x14\n\nInt64Rules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x03\x42n\xc2Hk\ni\n\x0bint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x88\x01\n\x02lt\x18\x02 \x01(\x03\x42v\xc2Hs\nq\n\x08int64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9a\x01\n\x03lte\x18\x03 \x01(\x03\x42\x85\x01\xc2H\x81\x01\n\x7f\n\tint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xfd\x06\n\x02gt\x18\x04 \x01(\x03\x42\xea\x06\xc2H\xe6\x06\nt\n\x08int64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xad\x01\n\x0bint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb5\x01\n\x15int64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x0cint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc5\x01\n\x16int64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xca\x07\n\x03gte\x18\x05 \x01(\x03\x42\xb5\x07\xc2H\xb1\x07\n\x82\x01\n\tint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbc\x01\n\x0cint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc4\x01\n\x16int64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\rint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd4\x01\n\x17int64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x03\x42m\xc2Hj\nh\n\x08int64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x03\x42`\xc2H]\n[\n\x0cint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x34\n\x07\x65xample\x18\t \x03(\x03\x42\x1a\xc2H\x17\n\x15\n\rint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bUInt32Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\rBo\xc2Hl\nj\n\x0cuint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\rBw\xc2Ht\nr\n\tuint32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\rB\x87\x01\xc2H\x83\x01\n\x80\x01\n\nuint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\rB\xef\x06\xc2H\xeb\x06\nu\n\tuint32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0cuint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16uint32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\ruint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17uint32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\rB\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nuint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\ruint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17uint32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0euint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18uint32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\rBn\xc2Hk\ni\n\tuint32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\rBa\xc2H^\n\\\n\ruint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\rB\x1b\xc2H\x18\n\x16\n\x0euint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bUInt64Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x04\x42o\xc2Hl\nj\n\x0cuint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x04\x42w\xc2Ht\nr\n\tuint64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nuint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x04\x42\xef\x06\xc2H\xeb\x06\nu\n\tuint64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0cuint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16uint64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\ruint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17uint64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x04\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nuint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\ruint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17uint64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0euint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18uint64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x04\x42n\xc2Hk\ni\n\tuint64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x04\x42\x61\xc2H^\n\\\n\ruint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x04\x42\x1b\xc2H\x18\n\x16\n\x0euint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bSInt32Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x11\x42o\xc2Hl\nj\n\x0csint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x11\x42w\xc2Ht\nr\n\tsint32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x11\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nsint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x11\x42\xef\x06\xc2H\xeb\x06\nu\n\tsint32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0csint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16sint32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\rsint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17sint32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x11\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nsint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\rsint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17sint32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0esint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18sint32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x11\x42n\xc2Hk\ni\n\tsint32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x11\x42\x61\xc2H^\n\\\n\rsint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x11\x42\x1b\xc2H\x18\n\x16\n\x0esint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bSInt64Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x12\x42o\xc2Hl\nj\n\x0csint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x12\x42w\xc2Ht\nr\n\tsint64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x12\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nsint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x12\x42\xef\x06\xc2H\xeb\x06\nu\n\tsint64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0csint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16sint64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\rsint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17sint64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x12\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nsint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\rsint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17sint64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0esint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18sint64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x12\x42n\xc2Hk\ni\n\tsint64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x12\x42\x61\xc2H^\n\\\n\rsint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x12\x42\x1b\xc2H\x18\n\x16\n\x0esint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x81\x15\n\x0c\x46ixed32Rules\x12\x86\x01\n\x05\x63onst\x18\x01 \x01(\x07\x42p\xc2Hm\nk\n\rfixed32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8a\x01\n\x02lt\x18\x02 \x01(\x07\x42x\xc2Hu\ns\n\nfixed32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9d\x01\n\x03lte\x18\x03 \x01(\x07\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x0b\x66ixed32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x87\x07\n\x02gt\x18\x04 \x01(\x07\x42\xf4\x06\xc2H\xf0\x06\nv\n\nfixed32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xaf\x01\n\rfixed32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb7\x01\n\x17\x66ixed32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x0e\x66ixed32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc7\x01\n\x18\x66ixed32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd4\x07\n\x03gte\x18\x05 \x01(\x07\x42\xbf\x07\xc2H\xbb\x07\n\x84\x01\n\x0b\x66ixed32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbe\x01\n\x0e\x66ixed32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc6\x01\n\x18\x66ixed32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x0f\x66ixed32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd6\x01\n\x19\x66ixed32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x7f\n\x02in\x18\x06 \x03(\x07\x42o\xc2Hl\nj\n\nfixed32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12y\n\x06not_in\x18\x07 \x03(\x07\x42\x62\xc2H_\n]\n\x0e\x66ixed32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x36\n\x07\x65xample\x18\x08 \x03(\x07\x42\x1c\xc2H\x19\n\x17\n\x0f\x66ixed32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x81\x15\n\x0c\x46ixed64Rules\x12\x86\x01\n\x05\x63onst\x18\x01 \x01(\x06\x42p\xc2Hm\nk\n\rfixed64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8a\x01\n\x02lt\x18\x02 \x01(\x06\x42x\xc2Hu\ns\n\nfixed64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9d\x01\n\x03lte\x18\x03 \x01(\x06\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x0b\x66ixed64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x87\x07\n\x02gt\x18\x04 \x01(\x06\x42\xf4\x06\xc2H\xf0\x06\nv\n\nfixed64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xaf\x01\n\rfixed64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb7\x01\n\x17\x66ixed64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x0e\x66ixed64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc7\x01\n\x18\x66ixed64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd4\x07\n\x03gte\x18\x05 \x01(\x06\x42\xbf\x07\xc2H\xbb\x07\n\x84\x01\n\x0b\x66ixed64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbe\x01\n\x0e\x66ixed64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc6\x01\n\x18\x66ixed64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x0f\x66ixed64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd6\x01\n\x19\x66ixed64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x7f\n\x02in\x18\x06 \x03(\x06\x42o\xc2Hl\nj\n\nfixed64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12y\n\x06not_in\x18\x07 \x03(\x06\x42\x62\xc2H_\n]\n\x0e\x66ixed64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x36\n\x07\x65xample\x18\x08 \x03(\x06\x42\x1c\xc2H\x19\n\x17\n\x0f\x66ixed64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x93\x15\n\rSFixed32Rules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x0f\x42q\xc2Hn\nl\n\x0esfixed32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8b\x01\n\x02lt\x18\x02 \x01(\x0f\x42y\xc2Hv\nt\n\x0bsfixed32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9e\x01\n\x03lte\x18\x03 \x01(\x0f\x42\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0csfixed32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x8c\x07\n\x02gt\x18\x04 \x01(\x0f\x42\xf9\x06\xc2H\xf5\x06\nw\n\x0bsfixed32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0esfixed32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18sfixed32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fsfixed32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd9\x07\n\x03gte\x18\x05 \x01(\x0f\x42\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0csfixed32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fsfixed32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10sfixed32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x80\x01\n\x02in\x18\x06 \x03(\x0f\x42p\xc2Hm\nk\n\x0bsfixed32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12z\n\x06not_in\x18\x07 \x03(\x0f\x42\x63\xc2H`\n^\n\x0fsfixed32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x37\n\x07\x65xample\x18\x08 \x03(\x0f\x42\x1d\xc2H\x1a\n\x18\n\x10sfixed32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x93\x15\n\rSFixed64Rules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x10\x42q\xc2Hn\nl\n\x0esfixed64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8b\x01\n\x02lt\x18\x02 \x01(\x10\x42y\xc2Hv\nt\n\x0bsfixed64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9e\x01\n\x03lte\x18\x03 \x01(\x10\x42\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0csfixed64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x8c\x07\n\x02gt\x18\x04 \x01(\x10\x42\xf9\x06\xc2H\xf5\x06\nw\n\x0bsfixed64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0esfixed64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18sfixed64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fsfixed64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd9\x07\n\x03gte\x18\x05 \x01(\x10\x42\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0csfixed64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fsfixed64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10sfixed64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x80\x01\n\x02in\x18\x06 \x03(\x10\x42p\xc2Hm\nk\n\x0bsfixed64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12z\n\x06not_in\x18\x07 \x03(\x10\x42\x63\xc2H`\n^\n\x0fsfixed64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x37\n\x07\x65xample\x18\x08 \x03(\x10\x42\x1d\xc2H\x1a\n\x18\n\x10sfixed64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xd1\x01\n\tBoolRules\x12\x83\x01\n\x05\x63onst\x18\x01 \x01(\x08\x42m\xc2Hj\nh\n\nbool.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x33\n\x07\x65xample\x18\x02 \x03(\x08\x42\x19\xc2H\x16\n\x14\n\x0c\x62ool.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xcf?\n\x0bStringRules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\tBq\xc2Hn\nl\n\x0cstring.const\x1a\\this != getField(rules, \'const\') ? \'must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12v\n\x03len\x18\x13 \x01(\x04\x42\x64\xc2Ha\n_\n\nstring.len\x1aQuint(this.size()) != rules.len ? \'must be %s characters\'.format([rules.len]) : \'\'R\x03len\x12\x91\x01\n\x07min_len\x18\x02 \x01(\x04\x42x\xc2Hu\ns\n\x0estring.min_len\x1a\x61uint(this.size()) < rules.min_len ? \'must be at least %s characters\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x90\x01\n\x07max_len\x18\x03 \x01(\x04\x42w\xc2Ht\nr\n\x0estring.max_len\x1a`uint(this.size()) > rules.max_len ? \'must be at most %s characters\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x95\x01\n\tlen_bytes\x18\x14 \x01(\x04\x42x\xc2Hu\ns\n\x10string.len_bytes\x1a_uint(bytes(this).size()) != rules.len_bytes ? \'must be %s bytes\'.format([rules.len_bytes]) : \'\'R\x08lenBytes\x12\x9e\x01\n\tmin_bytes\x18\x04 \x01(\x04\x42\x80\x01\xc2H}\n{\n\x10string.min_bytes\x1aguint(bytes(this).size()) < rules.min_bytes ? \'must be at least %s bytes\'.format([rules.min_bytes]) : \'\'R\x08minBytes\x12\x9c\x01\n\tmax_bytes\x18\x05 \x01(\x04\x42\x7f\xc2H|\nz\n\x10string.max_bytes\x1a\x66uint(bytes(this).size()) > rules.max_bytes ? \'must be at most %s bytes\'.format([rules.max_bytes]) : \'\'R\x08maxBytes\x12\x90\x01\n\x07pattern\x18\x06 \x01(\tBv\xc2Hs\nq\n\x0estring.pattern\x1a_!this.matches(rules.pattern) ? \'does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x86\x01\n\x06prefix\x18\x07 \x01(\tBn\xc2Hk\ni\n\rstring.prefix\x1aX!this.startsWith(rules.prefix) ? \'does not have prefix `%s`\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x84\x01\n\x06suffix\x18\x08 \x01(\tBl\xc2Hi\ng\n\rstring.suffix\x1aV!this.endsWith(rules.suffix) ? \'does not have suffix `%s`\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x94\x01\n\x08\x63ontains\x18\t \x01(\tBx\xc2Hu\ns\n\x0fstring.contains\x1a`!this.contains(rules.contains) ? \'does not contain substring `%s`\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\x9e\x01\n\x0cnot_contains\x18\x17 \x01(\tB{\xc2Hx\nv\n\x13string.not_contains\x1a_this.contains(rules.not_contains) ? \'contains substring `%s`\'.format([rules.not_contains]) : \'\'R\x0bnotContains\x12~\n\x02in\x18\n \x03(\tBn\xc2Hk\ni\n\tstring.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x0b \x03(\tBa\xc2H^\n\\\n\rstring.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe0\x01\n\x05\x65mail\x18\x0c \x01(\x08\x42\xc7\x01\xc2H\xc3\x01\n[\n\x0cstring.email\x12\x1dmust be a valid email address\x1a,!rules.email || this == \'\' || this.isEmail()\nd\n\x12string.email_empty\x12\x32value is empty, which is not a valid email address\x1a\x1a!rules.email || this != \'\'H\x00R\x05\x65mail\x12\xeb\x01\n\x08hostname\x18\r \x01(\x08\x42\xcc\x01\xc2H\xc8\x01\n_\n\x0fstring.hostname\x12\x18must be a valid hostname\x1a\x32!rules.hostname || this == \'\' || this.isHostname()\ne\n\x15string.hostname_empty\x12-value is empty, which is not a valid hostname\x1a\x1d!rules.hostname || this != \'\'H\x00R\x08hostname\x12\xc5\x01\n\x02ip\x18\x0e \x01(\x08\x42\xb2\x01\xc2H\xae\x01\nO\n\tstring.ip\x12\x1amust be a valid IP address\x1a&!rules.ip || this == \'\' || this.isIp()\n[\n\x0fstring.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x17!rules.ip || this != \'\'H\x00R\x02ip\x12\xd6\x01\n\x04ipv4\x18\x0f \x01(\x08\x42\xbf\x01\xc2H\xbb\x01\nV\n\x0bstring.ipv4\x12\x1cmust be a valid IPv4 address\x1a)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\x11string.ipv4_empty\x12\x31value is empty, which is not a valid IPv4 address\x1a\x19!rules.ipv4 || this != \'\'H\x00R\x04ipv4\x12\xd6\x01\n\x04ipv6\x18\x10 \x01(\x08\x42\xbf\x01\xc2H\xbb\x01\nV\n\x0bstring.ipv6\x12\x1cmust be a valid IPv6 address\x1a)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\x11string.ipv6_empty\x12\x31value is empty, which is not a valid IPv6 address\x1a\x19!rules.ipv6 || this != \'\'H\x00R\x04ipv6\x12\xbe\x01\n\x03uri\x18\x11 \x01(\x08\x42\xa9\x01\xc2H\xa5\x01\nK\n\nstring.uri\x12\x13must be a valid URI\x1a(!rules.uri || this == \'\' || this.isUri()\nV\n\x10string.uri_empty\x12(value is empty, which is not a valid URI\x1a\x18!rules.uri || this != \'\'H\x00R\x03uri\x12r\n\x07uri_ref\x18\x12 \x01(\x08\x42W\xc2HT\nR\n\x0estring.uri_ref\x12\x1dmust be a valid URI Reference\x1a!!rules.uri_ref || this.isUriRef()H\x00R\x06uriRef\x12\x92\x02\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08\x42\xf5\x01\xc2H\xf1\x01\n{\n\x0estring.address\x12\'must be a valid hostname, or ip address\x1a@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\x14string.address_empty\x12!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\x92\x01\n string.ipv4_with_prefixlen_empty\x12\x44value is empty, which is not a valid IPv4 address with prefix length\x1a(!rules.ipv4_with_prefixlen || this != \'\'H\x00R\x11ipv4WithPrefixlen\x12\xdc\x02\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08\x42\xa9\x02\xc2H\xa5\x02\n\x8d\x01\n\x1astring.ipv6_with_prefixlen\x12/must be a valid IPv6 address with prefix length\x1a>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\x92\x01\n string.ipv6_with_prefixlen_empty\x12\x44value is empty, which is not a valid IPv6 address with prefix length\x1a(!rules.ipv6_with_prefixlen || this != \'\'H\x00R\x11ipv6WithPrefixlen\x12\xf6\x01\n\tip_prefix\x18\x1d \x01(\x08\x42\xd6\x01\xc2H\xd2\x01\nf\n\x10string.ip_prefix\x12\x19must be a valid IP prefix\x1a\x37!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\x16string.ip_prefix_empty\x12.value is empty, which is not a valid IP prefix\x1a\x1e!rules.ip_prefix || this != \'\'H\x00R\x08ipPrefix\x12\x89\x02\n\x0bipv4_prefix\x18\x1e \x01(\x08\x42\xe5\x01\xc2H\xe1\x01\no\n\x12string.ipv4_prefix\x12\x1bmust be a valid IPv4 prefix\x1a!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\x1astring.host_and_port_empty\x12\x37value is empty, which is not a valid host and port pair\x1a\"!rules.host_and_port || this != \'\'H\x00R\x0bhostAndPort\x12\xf4\x01\n\x04ulid\x18# \x01(\x08\x42\xdd\x01\xc2H\xd9\x01\n|\n\x0bstring.ulid\x12\x14must be a valid ULID\x1aW!rules.ulid || this == \'\' || this.matches(\'^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$\')\nY\n\x11string.ulid_empty\x12)value is empty, which is not a valid ULID\x1a\x19!rules.ulid || this != \'\'H\x00R\x04ulid\x12\xe1\x02\n\x0cprotobuf_fqn\x18% \x01(\x08\x42\xbb\x02\xc2H\xb7\x02\n\xaf\x01\n\x13string.protobuf_fqn\x12-must be a valid fully-qualified Protobuf name\x1ai!rules.protobuf_fqn || this == \'\' || this.matches(\'^[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\x82\x01\n\x19string.protobuf_fqn_empty\x12\x42value is empty, which is not a valid fully-qualified Protobuf name\x1a!!rules.protobuf_fqn || this != \'\'H\x00R\x0bprotobufFqn\x12\xa1\x03\n\x10protobuf_dot_fqn\x18& \x01(\x08\x42\xf4\x02\xc2H\xf0\x02\n\xcd\x01\n\x17string.protobuf_dot_fqn\x12@must be a valid fully-qualified Protobuf name with a leading dot\x1ap!rules.protobuf_dot_fqn || this == \'\' || this.matches(\'^\\\\.[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\x9d\x01\n\x1dstring.protobuf_dot_fqn_empty\x12Uvalue is empty, which is not a valid fully-qualified Protobuf name with a leading dot\x1a%!rules.protobuf_dot_fqn || this != \'\'H\x00R\x0eprotobufDotFqn\x12\xac\x05\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x18.buf.validate.KnownRegexB\xe5\x04\xc2H\xe1\x04\n\xea\x01\n#string.well_known_regex.header_name\x12 must be a valid HTTP header name\x1a\xa0\x01rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\x8d\x01\n)string.well_known_regex.header_name_empty\x12\x35value is empty, which is not a valid HTTP header name\x1a)rules.well_known_regex != 1 || this != \'\'\n\xe1\x01\n$string.well_known_regex.header_value\x12!must be a valid HTTP header value\x1a\x95\x01rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')H\x00R\x0ewellKnownRegex\x12\x16\n\x06strict\x18\x19 \x01(\x08R\x06strict\x12\x35\n\x07\x65xample\x18\" \x03(\tB\x1b\xc2H\x18\n\x16\n\x0estring.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0c\n\nwell_known\"\xca\x12\n\nBytesRules\x12\x81\x01\n\x05\x63onst\x18\x01 \x01(\x0c\x42k\xc2Hh\nf\n\x0b\x62ytes.const\x1aWthis != getField(rules, \'const\') ? \'must be %x\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12p\n\x03len\x18\r \x01(\x04\x42^\xc2H[\nY\n\tbytes.len\x1aLuint(this.size()) != rules.len ? \'must be %s bytes\'.format([rules.len]) : \'\'R\x03len\x12\x8b\x01\n\x07min_len\x18\x02 \x01(\x04\x42r\xc2Ho\nm\n\rbytes.min_len\x1a\\uint(this.size()) < rules.min_len ? \'must be at least %s bytes\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x8a\x01\n\x07max_len\x18\x03 \x01(\x04\x42q\xc2Hn\nl\n\rbytes.max_len\x1a[uint(this.size()) > rules.max_len ? \'must be at most %s bytes\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x93\x01\n\x07pattern\x18\x04 \x01(\tBy\xc2Hv\nt\n\rbytes.pattern\x1a\x63!string(this).matches(rules.pattern) ? \'must match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x83\x01\n\x06prefix\x18\x05 \x01(\x0c\x42k\xc2Hh\nf\n\x0c\x62ytes.prefix\x1aV!this.startsWith(rules.prefix) ? \'does not have prefix %x\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x81\x01\n\x06suffix\x18\x06 \x01(\x0c\x42i\xc2Hf\nd\n\x0c\x62ytes.suffix\x1aT!this.endsWith(rules.suffix) ? \'does not have suffix %x\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x87\x01\n\x08\x63ontains\x18\x07 \x01(\x0c\x42k\xc2Hh\nf\n\x0e\x62ytes.contains\x1aT!this.contains(rules.contains) ? \'does not contain %x\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xa5\x01\n\x02in\x18\x08 \x03(\x0c\x42\x94\x01\xc2H\x90\x01\n\x8d\x01\n\x08\x62ytes.in\x1a\x80\x01getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\t \x03(\x0c\x42`\xc2H]\n[\n\x0c\x62ytes.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe9\x01\n\x02ip\x18\n \x01(\x08\x42\xd6\x01\xc2H\xd2\x01\nn\n\x08\x62ytes.ip\x12\x1amust be a valid IP address\x1a\x46!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\x0e\x62ytes.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x1d!rules.ip || this.size() != 0H\x00R\x02ip\x12\xe4\x01\n\x04ipv4\x18\x0b \x01(\x08\x42\xcd\x01\xc2H\xc9\x01\n_\n\nbytes.ipv4\x12\x1cmust be a valid IPv4 address\x1a\x33!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\x10\x62ytes.ipv4_empty\x12\x31value is empty, which is not a valid IPv4 address\x1a\x1f!rules.ipv4 || this.size() != 0H\x00R\x04ipv4\x12\xe5\x01\n\x04ipv6\x18\x0c \x01(\x08\x42\xce\x01\xc2H\xca\x01\n`\n\nbytes.ipv6\x12\x1cmust be a valid IPv6 address\x1a\x34!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\x10\x62ytes.ipv6_empty\x12\x31value is empty, which is not a valid IPv6 address\x1a\x1f!rules.ipv6 || this.size() != 0H\x00R\x04ipv6\x12\xd5\x01\n\x04uuid\x18\x0f \x01(\x08\x42\xbe\x01\xc2H\xba\x01\nX\n\nbytes.uuid\x12\x14must be a valid UUID\x1a\x34!rules.uuid || this.size() == 0 || this.size() == 16\n^\n\x10\x62ytes.uuid_empty\x12)value is empty, which is not a valid UUID\x1a\x1f!rules.uuid || this.size() != 0H\x00R\x04uuid\x12\x34\n\x07\x65xample\x18\x0e \x03(\x0c\x42\x1a\xc2H\x17\n\x15\n\rbytes.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0c\n\nwell_known\"\xea\x03\n\tEnumRules\x12\x83\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42m\xc2Hj\nh\n\nenum.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12!\n\x0c\x64\x65\x66ined_only\x18\x02 \x01(\x08R\x0b\x64\x65\x66inedOnly\x12|\n\x02in\x18\x03 \x03(\x05\x42l\xc2Hi\ng\n\x07\x65num.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12v\n\x06not_in\x18\x04 \x03(\x05\x42_\xc2H\\\nZ\n\x0b\x65num.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x33\n\x07\x65xample\x18\x05 \x03(\x05\x42\x19\xc2H\x16\n\x14\n\x0c\x65num.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x90\x04\n\rRepeatedRules\x12\xa0\x01\n\tmin_items\x18\x01 \x01(\x04\x42\x82\x01\xc2H\x7f\n}\n\x12repeated.min_items\x1aguint(this.size()) < rules.min_items ? \'must contain at least %d item(s)\'.format([rules.min_items]) : \'\'R\x08minItems\x12\xa6\x01\n\tmax_items\x18\x02 \x01(\x04\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x12repeated.max_items\x1akuint(this.size()) > rules.max_items ? \'must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'R\x08maxItems\x12x\n\x06unique\x18\x03 \x01(\x08\x42`\xc2H]\n[\n\x0frepeated.unique\x12(repeated value must contain unique items\x1a\x1e!rules.unique || this.unique()R\x06unique\x12.\n\x05items\x18\x04 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x05items*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xac\x03\n\x08MapRules\x12\x99\x01\n\tmin_pairs\x18\x01 \x01(\x04\x42|\xc2Hy\nw\n\rmap.min_pairs\x1a\x66uint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'R\x08minPairs\x12\x98\x01\n\tmax_pairs\x18\x02 \x01(\x04\x42{\xc2Hx\nv\n\rmap.max_pairs\x1a\x65uint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'R\x08maxPairs\x12,\n\x04keys\x18\x04 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x04keys\x12\x30\n\x06values\x18\x05 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x06values*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"1\n\x08\x41nyRules\x12\x0e\n\x02in\x18\x02 \x03(\tR\x02in\x12\x15\n\x06not_in\x18\x03 \x03(\tR\x05notIn\"\xec\x16\n\rDurationRules\x12\xa2\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationBq\xc2Hn\nl\n\x0e\x64uration.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa6\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationBy\xc2Hv\nt\n\x0b\x64uration.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb9\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0c\x64uration.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa7\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\xf9\x06\xc2H\xf5\x06\nw\n\x0b\x64uration.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0e\x64uration.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18\x64uration.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0f\x64uration.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19\x64uration.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf4\x07\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0c\x64uration.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0f\x64uration.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19\x64uration.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10\x64uration.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1a\x64uration.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x9b\x01\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.DurationBp\xc2Hm\nk\n\x0b\x64uration.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x95\x01\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.DurationBc\xc2H`\n^\n\x0f\x64uration.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12R\n\x07\x65xample\x18\t \x03(\x0b\x32\x19.google.protobuf.DurationB\x1d\xc2H\x1a\n\x18\n\x10\x64uration.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x86\x06\n\x0e\x46ieldMaskRules\x12\xc0\x01\n\x05\x63onst\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\x10\x66ield_mask.const\x1arthis.paths != getField(rules, \'const\').paths ? \'must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'R\x05\x63onst\x12\xd7\x01\n\x02in\x18\x02 \x03(\tB\xc6\x01\xc2H\xc2\x01\n\xbf\x01\n\rfield_mask.in\x1a\xad\x01!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\xf4\x01\n\x06not_in\x18\x03 \x03(\tB\xdc\x01\xc2H\xd8\x01\n\xd5\x01\n\x11\x66ield_mask.not_in\x1a\xbf\x01!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'must not contain any paths in %s\'.format([getField(rules, \'not_in\')]) : \'\'R\x05notIn\x12U\n\x07\x65xample\x18\x04 \x03(\x0b\x32\x1a.google.protobuf.FieldMaskB\x1f\xc2H\x1c\n\x1a\n\x12\x66ield_mask.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xe8\x17\n\x0eTimestampRules\x12\xa4\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBr\xc2Ho\nm\n\x0ftimestamp.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa8\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampBz\xc2Hw\nu\n\x0ctimestamp.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbb\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x8a\x01\xc2H\x86\x01\n\x83\x01\n\rtimestamp.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12m\n\x06lt_now\x18\x07 \x01(\x08\x42T\xc2HQ\nO\n\x10timestamp.lt_now\x1a;(rules.lt_now && this > now) ? \'must be less than now\' : \'\'H\x00R\x05ltNow\x12\xad\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xfe\x06\xc2H\xfa\x06\nx\n\x0ctimestamp.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb1\x01\n\x0ftimestamp.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb9\x01\n\x19timestamp.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc1\x01\n\x10timestamp.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc9\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xfa\x07\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xc9\x07\xc2H\xc5\x07\n\x86\x01\n\rtimestamp.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc0\x01\n\x10timestamp.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc8\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd0\x01\n\x11timestamp.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd8\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12p\n\x06gt_now\x18\x08 \x01(\x08\x42W\xc2HT\nR\n\x10timestamp.gt_now\x1a>(rules.gt_now && this < now) ? \'must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xb9\x01\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x85\x01\xc2H\x81\x01\n\x7f\n\x10timestamp.within\x1akthis < now-rules.within || this > now+rules.within ? \'must be within %s of now\'.format([rules.within]) : \'\'R\x06within\x12T\n\x07\x65xample\x18\n \x03(\x0b\x32\x1a.google.protobuf.TimestampB\x1e\xc2H\x1b\n\x19\n\x11timestamp.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"E\n\nViolations\x12\x37\n\nviolations\x18\x01 \x03(\x0b\x32\x17.buf.validate.ViolationR\nviolations\"\xc5\x01\n\tViolation\x12-\n\x05\x66ield\x18\x05 \x01(\x0b\x32\x17.buf.validate.FieldPathR\x05\x66ield\x12+\n\x04rule\x18\x06 \x01(\x0b\x32\x17.buf.validate.FieldPathR\x04rule\x12\x17\n\x07rule_id\x18\x02 \x01(\tR\x06ruleId\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\x12\x17\n\x07\x66or_key\x18\x04 \x01(\x08R\x06\x66orKeyJ\x04\x08\x01\x10\x02R\nfield_path\"G\n\tFieldPath\x12:\n\x08\x65lements\x18\x01 \x03(\x0b\x32\x1e.buf.validate.FieldPathElementR\x08\x65lements\"\xcc\x03\n\x10\x46ieldPathElement\x12!\n\x0c\x66ield_number\x18\x01 \x01(\x05R\x0b\x66ieldNumber\x12\x1d\n\nfield_name\x18\x02 \x01(\tR\tfieldName\x12I\n\nfield_type\x18\x03 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\tfieldType\x12\x45\n\x08key_type\x18\x04 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\x07keyType\x12I\n\nvalue_type\x18\x05 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\tvalueType\x12\x16\n\x05index\x18\x06 \x01(\x04H\x00R\x05index\x12\x1b\n\x08\x62ool_key\x18\x07 \x01(\x08H\x00R\x07\x62oolKey\x12\x19\n\x07int_key\x18\x08 \x01(\x03H\x00R\x06intKey\x12\x1b\n\x08uint_key\x18\t \x01(\x04H\x00R\x07uintKey\x12\x1f\n\nstring_key\x18\n \x01(\tH\x00R\tstringKeyB\x0b\n\tsubscript*\xa1\x01\n\x06Ignore\x12\x16\n\x12IGNORE_UNSPECIFIED\x10\x00\x12\x18\n\x14IGNORE_IF_ZERO_VALUE\x10\x01\x12\x11\n\rIGNORE_ALWAYS\x10\x03\"\x04\x08\x02\x10\x02*\x0cIGNORE_EMPTY*\x0eIGNORE_DEFAULT*\x17IGNORE_IF_DEFAULT_VALUE*\x15IGNORE_IF_UNPOPULATED*n\n\nKnownRegex\x12\x1b\n\x17KNOWN_REGEX_UNSPECIFIED\x10\x00\x12 \n\x1cKNOWN_REGEX_HTTP_HEADER_NAME\x10\x01\x12!\n\x1dKNOWN_REGEX_HTTP_HEADER_VALUE\x10\x02:V\n\x07message\x12\x1f.google.protobuf.MessageOptions\x18\x87\t \x01(\x0b\x32\x1a.buf.validate.MessageRulesR\x07message:N\n\x05oneof\x12\x1d.google.protobuf.OneofOptions\x18\x87\t \x01(\x0b\x32\x18.buf.validate.OneofRulesR\x05oneof:N\n\x05\x66ield\x12\x1d.google.protobuf.FieldOptions\x18\x87\t \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x05\x66ield:]\n\npredefined\x12\x1d.google.protobuf.FieldOptions\x18\x88\t \x01(\x0b\x32\x1d.buf.validate.PredefinedRulesR\npredefinedB\xbb\x01\n\x10\x63om.buf.validateB\rValidateProtoP\x01ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate\xa2\x02\x03\x42VX\xaa\x02\x0c\x42uf.Validate\xca\x02\x0c\x42uf\\Validate\xe2\x02\x18\x42uf\\Validate\\GPBMetadata\xea\x02\rBuf::Validate') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'buf.validate.validate_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\020com.buf.validateB\rValidateProtoP\001ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate\242\002\003BVX\252\002\014Buf.Validate\312\002\014Buf\\Validate\342\002\030Buf\\Validate\\GPBMetadata\352\002\rBuf::Validate' - _globals['_FLOATRULES'].fields_by_name['const']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013float.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['lt']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['lt']._serialized_options = b'\302H\206\001\n\203\001\n\010float.lt\032w!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['lte']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['lte']._serialized_options = b'\302H\225\001\n\222\001\n\tfloat.lte\032\204\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['gt']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['gt']._serialized_options = b'\302H\275\007\n\206\001\n\010float.gt\032z!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\275\001\n\013float.gt_lt\032\255\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\307\001\n\025float.gt_lt_exclusive\032\255\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\315\001\n\014float.gt_lte\032\274\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\327\001\n\026float.gt_lte_exclusive\032\274\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['gte']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['gte']._serialized_options = b'\302H\210\010\n\225\001\n\tfloat.gte\032\207\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\314\001\n\014float.gte_lt\032\273\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\326\001\n\026float.gte_lt_exclusive\032\273\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\334\001\n\rfloat.gte_lte\032\312\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\346\001\n\027float.gte_lte_exclusive\032\312\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['in']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010float.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014float.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['finite']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['finite']._serialized_options = b'\302H\\\nZ\n\014float.finite\032Jrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'' - _globals['_FLOATRULES'].fields_by_name['example']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rfloat.example\032\004true' - _globals['_DOUBLERULES'].fields_by_name['const']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014double.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['lt']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['lt']._serialized_options = b'\302H\207\001\n\204\001\n\tdouble.lt\032w!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['lte']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['lte']._serialized_options = b'\302H\226\001\n\223\001\n\ndouble.lte\032\204\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['gt']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['gt']._serialized_options = b'\302H\302\007\n\207\001\n\tdouble.gt\032z!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\276\001\n\014double.gt_lt\032\255\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\310\001\n\026double.gt_lt_exclusive\032\255\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\316\001\n\rdouble.gt_lte\032\274\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\330\001\n\027double.gt_lte_exclusive\032\274\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['gte']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['gte']._serialized_options = b'\302H\215\010\n\226\001\n\ndouble.gte\032\207\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\315\001\n\rdouble.gte_lt\032\273\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\327\001\n\027double.gte_lt_exclusive\032\273\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\335\001\n\016double.gte_lte\032\312\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\347\001\n\030double.gte_lte_exclusive\032\312\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['in']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tdouble.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['not_in']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rdouble.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['finite']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['finite']._serialized_options = b'\302H]\n[\n\rdouble.finite\032Jrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'' - _globals['_DOUBLERULES'].fields_by_name['example']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016double.example\032\004true' - _globals['_INT32RULES'].fields_by_name['const']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013int32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_INT32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hs\nq\n\010int32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_INT32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\201\001\n\177\n\tint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_INT32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\346\006\nt\n\010int32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\255\001\n\013int32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\265\001\n\025int32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\014int32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\305\001\n\026int32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_INT32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\261\007\n\202\001\n\tint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\274\001\n\014int32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\304\001\n\026int32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\rint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\324\001\n\027int32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_INT32RULES'].fields_by_name['in']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010int32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_INT32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014int32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_INT32RULES'].fields_by_name['example']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rint32.example\032\004true' - _globals['_INT64RULES'].fields_by_name['const']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013int64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_INT64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hs\nq\n\010int64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_INT64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\201\001\n\177\n\tint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_INT64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\346\006\nt\n\010int64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\255\001\n\013int64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\265\001\n\025int64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\014int64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\305\001\n\026int64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_INT64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\261\007\n\202\001\n\tint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\274\001\n\014int64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\304\001\n\026int64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\rint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\324\001\n\027int64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_INT64RULES'].fields_by_name['in']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010int64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_INT64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014int64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_INT64RULES'].fields_by_name['example']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rint64.example\032\004true' - _globals['_UINT32RULES'].fields_by_name['const']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014uint32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tuint32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nuint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tuint32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014uint32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026uint32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\ruint32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027uint32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nuint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\ruint32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027uint32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016uint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030uint32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['in']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tuint32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\ruint32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['example']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016uint32.example\032\004true' - _globals['_UINT64RULES'].fields_by_name['const']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014uint64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tuint64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nuint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tuint64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014uint64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026uint64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\ruint64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027uint64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nuint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\ruint64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027uint64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016uint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030uint64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['in']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tuint64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\ruint64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['example']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016uint64.example\032\004true' - _globals['_SINT32RULES'].fields_by_name['const']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014sint32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tsint32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nsint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tsint32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014sint32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026sint32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\rsint32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027sint32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nsint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\rsint32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027sint32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016sint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030sint32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['in']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tsint32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rsint32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['example']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016sint32.example\032\004true' - _globals['_SINT64RULES'].fields_by_name['const']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014sint64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tsint64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nsint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tsint64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014sint64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026sint64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\rsint64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027sint64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nsint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\rsint64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027sint64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016sint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030sint64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['in']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tsint64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rsint64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['example']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016sint64.example\032\004true' - _globals['_FIXED32RULES'].fields_by_name['const']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['const']._serialized_options = b'\302Hm\nk\n\rfixed32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302Hu\ns\n\nfixed32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\204\001\n\201\001\n\013fixed32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\360\006\nv\n\nfixed32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\257\001\n\rfixed32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\267\001\n\027fixed32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\016fixed32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\307\001\n\030fixed32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\273\007\n\204\001\n\013fixed32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\276\001\n\016fixed32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\306\001\n\030fixed32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\017fixed32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\326\001\n\031fixed32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['in']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hl\nj\n\nfixed32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302H_\n]\n\016fixed32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['example']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['example']._serialized_options = b'\302H\031\n\027\n\017fixed32.example\032\004true' - _globals['_FIXED64RULES'].fields_by_name['const']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['const']._serialized_options = b'\302Hm\nk\n\rfixed64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302Hu\ns\n\nfixed64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\204\001\n\201\001\n\013fixed64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\360\006\nv\n\nfixed64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\257\001\n\rfixed64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\267\001\n\027fixed64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\016fixed64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\307\001\n\030fixed64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\273\007\n\204\001\n\013fixed64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\276\001\n\016fixed64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\306\001\n\030fixed64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\017fixed64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\326\001\n\031fixed64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['in']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hl\nj\n\nfixed64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302H_\n]\n\016fixed64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['example']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['example']._serialized_options = b'\302H\031\n\027\n\017fixed64.example\032\004true' - _globals['_SFIXED32RULES'].fields_by_name['const']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016sfixed32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013sfixed32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014sfixed32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013sfixed32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016sfixed32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030sfixed32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017sfixed32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031sfixed32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014sfixed32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017sfixed32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031sfixed32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020sfixed32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032sfixed32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['in']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013sfixed32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017sfixed32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['example']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020sfixed32.example\032\004true' - _globals['_SFIXED64RULES'].fields_by_name['const']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016sfixed64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013sfixed64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014sfixed64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013sfixed64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016sfixed64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030sfixed64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017sfixed64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031sfixed64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014sfixed64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017sfixed64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031sfixed64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020sfixed64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032sfixed64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['in']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013sfixed64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017sfixed64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['example']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020sfixed64.example\032\004true' - _globals['_BOOLRULES'].fields_by_name['const']._loaded_options = None - _globals['_BOOLRULES'].fields_by_name['const']._serialized_options = b'\302Hj\nh\n\nbool.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_BOOLRULES'].fields_by_name['example']._loaded_options = None - _globals['_BOOLRULES'].fields_by_name['example']._serialized_options = b'\302H\026\n\024\n\014bool.example\032\004true' - _globals['_STRINGRULES'].fields_by_name['const']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\014string.const\032\\this != getField(rules, \'const\') ? \'must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['len']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['len']._serialized_options = b'\302Ha\n_\n\nstring.len\032Quint(this.size()) != rules.len ? \'must be %s characters\'.format([rules.len]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['min_len']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['min_len']._serialized_options = b'\302Hu\ns\n\016string.min_len\032auint(this.size()) < rules.min_len ? \'must be at least %s characters\'.format([rules.min_len]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['max_len']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['max_len']._serialized_options = b'\302Ht\nr\n\016string.max_len\032`uint(this.size()) > rules.max_len ? \'must be at most %s characters\'.format([rules.max_len]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['len_bytes']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['len_bytes']._serialized_options = b'\302Hu\ns\n\020string.len_bytes\032_uint(bytes(this).size()) != rules.len_bytes ? \'must be %s bytes\'.format([rules.len_bytes]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['min_bytes']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['min_bytes']._serialized_options = b'\302H}\n{\n\020string.min_bytes\032guint(bytes(this).size()) < rules.min_bytes ? \'must be at least %s bytes\'.format([rules.min_bytes]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['max_bytes']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['max_bytes']._serialized_options = b'\302H|\nz\n\020string.max_bytes\032fuint(bytes(this).size()) > rules.max_bytes ? \'must be at most %s bytes\'.format([rules.max_bytes]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['pattern']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['pattern']._serialized_options = b'\302Hs\nq\n\016string.pattern\032_!this.matches(rules.pattern) ? \'does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['prefix']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['prefix']._serialized_options = b'\302Hk\ni\n\rstring.prefix\032X!this.startsWith(rules.prefix) ? \'does not have prefix `%s`\'.format([rules.prefix]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['suffix']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['suffix']._serialized_options = b'\302Hi\ng\n\rstring.suffix\032V!this.endsWith(rules.suffix) ? \'does not have suffix `%s`\'.format([rules.suffix]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['contains']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['contains']._serialized_options = b'\302Hu\ns\n\017string.contains\032`!this.contains(rules.contains) ? \'does not contain substring `%s`\'.format([rules.contains]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['not_contains']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['not_contains']._serialized_options = b'\302Hx\nv\n\023string.not_contains\032_this.contains(rules.not_contains) ? \'contains substring `%s`\'.format([rules.not_contains]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['in']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tstring.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rstring.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['email']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['email']._serialized_options = b'\302H\303\001\n[\n\014string.email\022\035must be a valid email address\032,!rules.email || this == \'\' || this.isEmail()\nd\n\022string.email_empty\0222value is empty, which is not a valid email address\032\032!rules.email || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['hostname']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['hostname']._serialized_options = b'\302H\310\001\n_\n\017string.hostname\022\030must be a valid hostname\0322!rules.hostname || this == \'\' || this.isHostname()\ne\n\025string.hostname_empty\022-value is empty, which is not a valid hostname\032\035!rules.hostname || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ip']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ip']._serialized_options = b'\302H\256\001\nO\n\tstring.ip\022\032must be a valid IP address\032&!rules.ip || this == \'\' || this.isIp()\n[\n\017string.ip_empty\022/value is empty, which is not a valid IP address\032\027!rules.ip || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ipv4']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ipv4']._serialized_options = b'\302H\273\001\nV\n\013string.ipv4\022\034must be a valid IPv4 address\032)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\021string.ipv4_empty\0221value is empty, which is not a valid IPv4 address\032\031!rules.ipv4 || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ipv6']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ipv6']._serialized_options = b'\302H\273\001\nV\n\013string.ipv6\022\034must be a valid IPv6 address\032)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\021string.ipv6_empty\0221value is empty, which is not a valid IPv6 address\032\031!rules.ipv6 || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['uri']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['uri']._serialized_options = b'\302H\245\001\nK\n\nstring.uri\022\023must be a valid URI\032(!rules.uri || this == \'\' || this.isUri()\nV\n\020string.uri_empty\022(value is empty, which is not a valid URI\032\030!rules.uri || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['uri_ref']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['uri_ref']._serialized_options = b'\302HT\nR\n\016string.uri_ref\022\035must be a valid URI Reference\032!!rules.uri_ref || this.isUriRef()' - _globals['_STRINGRULES'].fields_by_name['address']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['address']._serialized_options = b'\302H\361\001\n{\n\016string.address\022\'must be a valid hostname, or ip address\032@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\024string.address_empty\022!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\222\001\n string.ipv4_with_prefixlen_empty\022Dvalue is empty, which is not a valid IPv4 address with prefix length\032(!rules.ipv4_with_prefixlen || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._serialized_options = b'\302H\245\002\n\215\001\n\032string.ipv6_with_prefixlen\022/must be a valid IPv6 address with prefix length\032>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\222\001\n string.ipv6_with_prefixlen_empty\022Dvalue is empty, which is not a valid IPv6 address with prefix length\032(!rules.ipv6_with_prefixlen || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ip_prefix']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ip_prefix']._serialized_options = b'\302H\322\001\nf\n\020string.ip_prefix\022\031must be a valid IP prefix\0327!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\026string.ip_prefix_empty\022.value is empty, which is not a valid IP prefix\032\036!rules.ip_prefix || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._serialized_options = b'\302H\341\001\no\n\022string.ipv4_prefix\022\033must be a valid IPv4 prefix\032!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\032string.host_and_port_empty\0227value is empty, which is not a valid host and port pair\032\"!rules.host_and_port || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ulid']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ulid']._serialized_options = b'\302H\331\001\n|\n\013string.ulid\022\024must be a valid ULID\032W!rules.ulid || this == \'\' || this.matches(\'^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$\')\nY\n\021string.ulid_empty\022)value is empty, which is not a valid ULID\032\031!rules.ulid || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['protobuf_fqn']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['protobuf_fqn']._serialized_options = b'\302H\267\002\n\257\001\n\023string.protobuf_fqn\022-must be a valid fully-qualified Protobuf name\032i!rules.protobuf_fqn || this == \'\' || this.matches(\'^[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\202\001\n\031string.protobuf_fqn_empty\022Bvalue is empty, which is not a valid fully-qualified Protobuf name\032!!rules.protobuf_fqn || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['protobuf_dot_fqn']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['protobuf_dot_fqn']._serialized_options = b'\302H\360\002\n\315\001\n\027string.protobuf_dot_fqn\022@must be a valid fully-qualified Protobuf name with a leading dot\032p!rules.protobuf_dot_fqn || this == \'\' || this.matches(\'^\\\\.[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\235\001\n\035string.protobuf_dot_fqn_empty\022Uvalue is empty, which is not a valid fully-qualified Protobuf name with a leading dot\032%!rules.protobuf_dot_fqn || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['well_known_regex']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['well_known_regex']._serialized_options = b'\302H\341\004\n\352\001\n#string.well_known_regex.header_name\022 must be a valid HTTP header name\032\240\001rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\215\001\n)string.well_known_regex.header_name_empty\0225value is empty, which is not a valid HTTP header name\032)rules.well_known_regex != 1 || this != \'\'\n\341\001\n$string.well_known_regex.header_value\022!must be a valid HTTP header value\032\225\001rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')' - _globals['_STRINGRULES'].fields_by_name['example']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016string.example\032\004true' - _globals['_BYTESRULES'].fields_by_name['const']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['const']._serialized_options = b'\302Hh\nf\n\013bytes.const\032Wthis != getField(rules, \'const\') ? \'must be %x\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['len']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['len']._serialized_options = b'\302H[\nY\n\tbytes.len\032Luint(this.size()) != rules.len ? \'must be %s bytes\'.format([rules.len]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['min_len']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['min_len']._serialized_options = b'\302Ho\nm\n\rbytes.min_len\032\\uint(this.size()) < rules.min_len ? \'must be at least %s bytes\'.format([rules.min_len]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['max_len']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['max_len']._serialized_options = b'\302Hn\nl\n\rbytes.max_len\032[uint(this.size()) > rules.max_len ? \'must be at most %s bytes\'.format([rules.max_len]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['pattern']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['pattern']._serialized_options = b'\302Hv\nt\n\rbytes.pattern\032c!string(this).matches(rules.pattern) ? \'must match regex pattern `%s`\'.format([rules.pattern]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['prefix']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['prefix']._serialized_options = b'\302Hh\nf\n\014bytes.prefix\032V!this.startsWith(rules.prefix) ? \'does not have prefix %x\'.format([rules.prefix]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['suffix']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['suffix']._serialized_options = b'\302Hf\nd\n\014bytes.suffix\032T!this.endsWith(rules.suffix) ? \'does not have suffix %x\'.format([rules.suffix]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['contains']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['contains']._serialized_options = b'\302Hh\nf\n\016bytes.contains\032T!this.contains(rules.contains) ? \'does not contain %x\'.format([rules.contains]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['in']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['in']._serialized_options = b'\302H\220\001\n\215\001\n\010bytes.in\032\200\001getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014bytes.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['ip']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['ip']._serialized_options = b'\302H\322\001\nn\n\010bytes.ip\022\032must be a valid IP address\032F!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\016bytes.ip_empty\022/value is empty, which is not a valid IP address\032\035!rules.ip || this.size() != 0' - _globals['_BYTESRULES'].fields_by_name['ipv4']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['ipv4']._serialized_options = b'\302H\311\001\n_\n\nbytes.ipv4\022\034must be a valid IPv4 address\0323!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\020bytes.ipv4_empty\0221value is empty, which is not a valid IPv4 address\032\037!rules.ipv4 || this.size() != 0' - _globals['_BYTESRULES'].fields_by_name['ipv6']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['ipv6']._serialized_options = b'\302H\312\001\n`\n\nbytes.ipv6\022\034must be a valid IPv6 address\0324!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\020bytes.ipv6_empty\0221value is empty, which is not a valid IPv6 address\032\037!rules.ipv6 || this.size() != 0' - _globals['_BYTESRULES'].fields_by_name['uuid']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['uuid']._serialized_options = b'\302H\272\001\nX\n\nbytes.uuid\022\024must be a valid UUID\0324!rules.uuid || this.size() == 0 || this.size() == 16\n^\n\020bytes.uuid_empty\022)value is empty, which is not a valid UUID\032\037!rules.uuid || this.size() != 0' - _globals['_BYTESRULES'].fields_by_name['example']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rbytes.example\032\004true' - _globals['_ENUMRULES'].fields_by_name['const']._loaded_options = None - _globals['_ENUMRULES'].fields_by_name['const']._serialized_options = b'\302Hj\nh\n\nenum.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_ENUMRULES'].fields_by_name['in']._loaded_options = None - _globals['_ENUMRULES'].fields_by_name['in']._serialized_options = b'\302Hi\ng\n\007enum.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_ENUMRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_ENUMRULES'].fields_by_name['not_in']._serialized_options = b'\302H\\\nZ\n\013enum.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_ENUMRULES'].fields_by_name['example']._loaded_options = None - _globals['_ENUMRULES'].fields_by_name['example']._serialized_options = b'\302H\026\n\024\n\014enum.example\032\004true' - _globals['_REPEATEDRULES'].fields_by_name['min_items']._loaded_options = None - _globals['_REPEATEDRULES'].fields_by_name['min_items']._serialized_options = b'\302H\177\n}\n\022repeated.min_items\032guint(this.size()) < rules.min_items ? \'must contain at least %d item(s)\'.format([rules.min_items]) : \'\'' - _globals['_REPEATEDRULES'].fields_by_name['max_items']._loaded_options = None - _globals['_REPEATEDRULES'].fields_by_name['max_items']._serialized_options = b'\302H\204\001\n\201\001\n\022repeated.max_items\032kuint(this.size()) > rules.max_items ? \'must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'' - _globals['_REPEATEDRULES'].fields_by_name['unique']._loaded_options = None - _globals['_REPEATEDRULES'].fields_by_name['unique']._serialized_options = b'\302H]\n[\n\017repeated.unique\022(repeated value must contain unique items\032\036!rules.unique || this.unique()' - _globals['_MAPRULES'].fields_by_name['min_pairs']._loaded_options = None - _globals['_MAPRULES'].fields_by_name['min_pairs']._serialized_options = b'\302Hy\nw\n\rmap.min_pairs\032fuint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'' - _globals['_MAPRULES'].fields_by_name['max_pairs']._loaded_options = None - _globals['_MAPRULES'].fields_by_name['max_pairs']._serialized_options = b'\302Hx\nv\n\rmap.max_pairs\032euint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['const']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016duration.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['lt']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013duration.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['lte']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014duration.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['gt']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013duration.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016duration.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030duration.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017duration.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031duration.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['gte']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014duration.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017duration.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031duration.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020duration.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032duration.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['in']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013duration.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017duration.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['example']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020duration.example\032\004true' - _globals['_FIELDMASKRULES'].fields_by_name['const']._loaded_options = None - _globals['_FIELDMASKRULES'].fields_by_name['const']._serialized_options = b'\302H\211\001\n\206\001\n\020field_mask.const\032rthis.paths != getField(rules, \'const\').paths ? \'must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'' - _globals['_FIELDMASKRULES'].fields_by_name['in']._loaded_options = None - _globals['_FIELDMASKRULES'].fields_by_name['in']._serialized_options = b'\302H\302\001\n\277\001\n\rfield_mask.in\032\255\001!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_FIELDMASKRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_FIELDMASKRULES'].fields_by_name['not_in']._serialized_options = b'\302H\330\001\n\325\001\n\021field_mask.not_in\032\277\001!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'must not contain any paths in %s\'.format([getField(rules, \'not_in\')]) : \'\'' - _globals['_FIELDMASKRULES'].fields_by_name['example']._loaded_options = None - _globals['_FIELDMASKRULES'].fields_by_name['example']._serialized_options = b'\302H\034\n\032\n\022field_mask.example\032\004true' - _globals['_TIMESTAMPRULES'].fields_by_name['const']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['const']._serialized_options = b'\302Ho\nm\n\017timestamp.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['lt']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['lt']._serialized_options = b'\302Hw\nu\n\014timestamp.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['lte']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['lte']._serialized_options = b'\302H\206\001\n\203\001\n\rtimestamp.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._serialized_options = b'\302HQ\nO\n\020timestamp.lt_now\032;(rules.lt_now && this > now) ? \'must be less than now\' : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['gt']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['gt']._serialized_options = b'\302H\372\006\nx\n\014timestamp.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\261\001\n\017timestamp.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\271\001\n\031timestamp.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\301\001\n\020timestamp.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\311\001\n\032timestamp.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['gte']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['gte']._serialized_options = b'\302H\305\007\n\206\001\n\rtimestamp.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\300\001\n\020timestamp.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\310\001\n\032timestamp.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\320\001\n\021timestamp.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\330\001\n\033timestamp.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._serialized_options = b'\302HT\nR\n\020timestamp.gt_now\032>(rules.gt_now && this < now) ? \'must be greater than now\' : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['within']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['within']._serialized_options = b'\302H\201\001\n\177\n\020timestamp.within\032kthis < now-rules.within || this > now+rules.within ? \'must be within %s of now\'.format([rules.within]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['example']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['example']._serialized_options = b'\302H\033\n\031\n\021timestamp.example\032\004true' - _globals['_IGNORE']._serialized_start=54642 - _globals['_IGNORE']._serialized_end=54803 - _globals['_KNOWNREGEX']._serialized_start=54805 - _globals['_KNOWNREGEX']._serialized_end=54915 - _globals['_RULE']._serialized_start=178 - _globals['_RULE']._serialized_end=258 - _globals['_MESSAGERULES']._serialized_start=261 - _globals['_MESSAGERULES']._serialized_end=422 - _globals['_MESSAGEONEOFRULE']._serialized_start=424 - _globals['_MESSAGEONEOFRULE']._serialized_end=494 - _globals['_ONEOFRULES']._serialized_start=496 - _globals['_ONEOFRULES']._serialized_end=536 - _globals['_FIELDRULES']._serialized_start=539 - _globals['_FIELDRULES']._serialized_end=1918 - _globals['_PREDEFINEDRULES']._serialized_start=1920 - _globals['_PREDEFINEDRULES']._serialized_end=2010 - _globals['_FLOATRULES']._serialized_start=2013 - _globals['_FLOATRULES']._serialized_end=5003 - _globals['_DOUBLERULES']._serialized_start=5006 - _globals['_DOUBLERULES']._serialized_end=8014 - _globals['_INT32RULES']._serialized_start=8017 - _globals['_INT32RULES']._serialized_end=10671 - _globals['_INT64RULES']._serialized_start=10674 - _globals['_INT64RULES']._serialized_end=13328 - _globals['_UINT32RULES']._serialized_start=13331 - _globals['_UINT32RULES']._serialized_end=16003 - _globals['_UINT64RULES']._serialized_start=16006 - _globals['_UINT64RULES']._serialized_end=18678 - _globals['_SINT32RULES']._serialized_start=18681 - _globals['_SINT32RULES']._serialized_end=21353 - _globals['_SINT64RULES']._serialized_start=21356 - _globals['_SINT64RULES']._serialized_end=24028 - _globals['_FIXED32RULES']._serialized_start=24031 - _globals['_FIXED32RULES']._serialized_end=26720 - _globals['_FIXED64RULES']._serialized_start=26723 - _globals['_FIXED64RULES']._serialized_end=29412 - _globals['_SFIXED32RULES']._serialized_start=29415 - _globals['_SFIXED32RULES']._serialized_end=32122 - _globals['_SFIXED64RULES']._serialized_start=32125 - _globals['_SFIXED64RULES']._serialized_end=34832 - _globals['_BOOLRULES']._serialized_start=34835 - _globals['_BOOLRULES']._serialized_end=35044 - _globals['_STRINGRULES']._serialized_start=35047 - _globals['_STRINGRULES']._serialized_end=43190 - _globals['_BYTESRULES']._serialized_start=43193 - _globals['_BYTESRULES']._serialized_end=45571 - _globals['_ENUMRULES']._serialized_start=45574 - _globals['_ENUMRULES']._serialized_end=46064 - _globals['_REPEATEDRULES']._serialized_start=46067 - _globals['_REPEATEDRULES']._serialized_end=46595 - _globals['_MAPRULES']._serialized_start=46598 - _globals['_MAPRULES']._serialized_end=47026 - _globals['_ANYRULES']._serialized_start=47028 - _globals['_ANYRULES']._serialized_end=47077 - _globals['_DURATIONRULES']._serialized_start=47080 - _globals['_DURATIONRULES']._serialized_end=50004 - _globals['_FIELDMASKRULES']._serialized_start=50007 - _globals['_FIELDMASKRULES']._serialized_end=50781 - _globals['_TIMESTAMPRULES']._serialized_start=50784 - _globals['_TIMESTAMPRULES']._serialized_end=53832 - _globals['_VIOLATIONS']._serialized_start=53834 - _globals['_VIOLATIONS']._serialized_end=53903 - _globals['_VIOLATION']._serialized_start=53906 - _globals['_VIOLATION']._serialized_end=54103 - _globals['_FIELDPATH']._serialized_start=54105 - _globals['_FIELDPATH']._serialized_end=54176 - _globals['_FIELDPATHELEMENT']._serialized_start=54179 - _globals['_FIELDPATHELEMENT']._serialized_end=54639 -# @@protoc_insertion_point(module_scope) diff --git a/python/lib/buf/validate/validate_pb2.pyi b/python/lib/buf/validate/validate_pb2.pyi deleted file mode 100644 index c426943a5..000000000 --- a/python/lib/buf/validate/validate_pb2.pyi +++ /dev/null @@ -1,4307 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -[Protovalidate](https://protovalidate.com/) is the semantic validation library for Protobuf. -It provides standard annotations to validate common rules on messages and fields, as well as the ability to use [CEL](https://cel.dev) to write custom rules. -It's the next generation of [protoc-gen-validate](https://github.com/bufbuild/protoc-gen-validate). - -This package provides the options, messages, and enums that power Protovalidate. -Apply its options to messages, fields, and oneofs in your Protobuf schemas to add validation rules: - -```proto -message User { - string id = 1 [(buf.validate.field).string.uuid = true]; - string first_name = 2 [(buf.validate.field).string.max_len = 64]; - string last_name = 3 [(buf.validate.field).string.max_len = 64]; - - option (buf.validate.message).cel = { - id: "first_name_requires_last_name" - message: "last_name must be present if first_name is present" - expression: "!has(this.first_name) || has(this.last_name)" - }; -} -``` - -These rules are enforced at runtime by language-specific libraries. -See the [developer quickstart](https://protovalidate.com/quickstart/) to get started, or go directly to the runtime library for your language: -[Go](https://github.com/bufbuild/protovalidate-go), -[JavaScript/TypeScript](https://github.com/bufbuild/protovalidate-es), -[Java](https://github.com/bufbuild/protovalidate-java), -[Python](https://github.com/bufbuild/protovalidate-python), -or [C++](https://github.com/bufbuild/protovalidate-cc). -""" - -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.descriptor_pb2 -import google.protobuf.duration_pb2 -import google.protobuf.field_mask_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.internal.extension_dict -import google.protobuf.message -import google.protobuf.timestamp_pb2 -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _Ignore: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _IgnoreEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Ignore.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - IGNORE_UNSPECIFIED: _Ignore.ValueType # 0 - """Ignore rules if the field tracks presence and is unset. This is the default - behavior. - - In proto3, only message fields, members of a Protobuf `oneof`, and fields - with the `optional` label track presence. Consequently, the following fields - are always validated, whether a value is set or not: - - ```proto - syntax="proto3"; - - message RulesApply { - string email = 1 [ - (buf.validate.field).string.email = true - ]; - int32 age = 2 [ - (buf.validate.field).int32.gt = 0 - ]; - repeated string labels = 3 [ - (buf.validate.field).repeated.min_items = 1 - ]; - } - ``` - - In contrast, the following fields track presence, and are only validated if - a value is set: - - ```proto - syntax="proto3"; - - message RulesApplyIfSet { - optional string email = 1 [ - (buf.validate.field).string.email = true - ]; - oneof ref { - string reference = 2 [ - (buf.validate.field).string.uuid = true - ]; - string name = 3 [ - (buf.validate.field).string.min_len = 4 - ]; - } - SomeMessage msg = 4 [ - (buf.validate.field).cel = {/* ... */} - ]; - } - ``` - - To ensure that such a field is set, add the `required` rule. - - To learn which fields track presence, see the - [Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat). - """ - IGNORE_IF_ZERO_VALUE: _Ignore.ValueType # 1 - """Ignore rules if the field is unset, or set to the zero value. - - The zero value depends on the field type: - - For strings, the zero value is the empty string. - - For bytes, the zero value is empty bytes. - - For bool, the zero value is false. - - For numeric types, the zero value is zero. - - For enums, the zero value is the first defined enum value. - - For repeated fields, the zero is an empty list. - - For map fields, the zero is an empty map. - - For message fields, absence of the message (typically a null-value) is considered zero value. - - For fields that track presence (e.g. adding the `optional` label in proto3), - this a no-op and behavior is the same as the default `IGNORE_UNSPECIFIED`. - """ - IGNORE_ALWAYS: _Ignore.ValueType # 3 - """Always ignore rules, including the `required` rule. - - This is useful for ignoring the rules of a referenced message, or to - temporarily ignore rules during development. - - ```proto - message MyMessage { - // The field's rules will always be ignored, including any validations - // on value's fields. - MyOtherMessage value = 1 [ - (buf.validate.field).ignore = IGNORE_ALWAYS - ]; - } - ``` - """ - -class Ignore(_Ignore, metaclass=_IgnoreEnumTypeWrapper): - """Specifies how `FieldRules.ignore` behaves, depending on the field's value, and - whether the field tracks presence. - """ - -IGNORE_UNSPECIFIED: Ignore.ValueType # 0 -"""Ignore rules if the field tracks presence and is unset. This is the default -behavior. - -In proto3, only message fields, members of a Protobuf `oneof`, and fields -with the `optional` label track presence. Consequently, the following fields -are always validated, whether a value is set or not: - -```proto -syntax="proto3"; - -message RulesApply { - string email = 1 [ - (buf.validate.field).string.email = true - ]; - int32 age = 2 [ - (buf.validate.field).int32.gt = 0 - ]; - repeated string labels = 3 [ - (buf.validate.field).repeated.min_items = 1 - ]; -} -``` - -In contrast, the following fields track presence, and are only validated if -a value is set: - -```proto -syntax="proto3"; - -message RulesApplyIfSet { - optional string email = 1 [ - (buf.validate.field).string.email = true - ]; - oneof ref { - string reference = 2 [ - (buf.validate.field).string.uuid = true - ]; - string name = 3 [ - (buf.validate.field).string.min_len = 4 - ]; - } - SomeMessage msg = 4 [ - (buf.validate.field).cel = {/* ... */} - ]; -} -``` - -To ensure that such a field is set, add the `required` rule. - -To learn which fields track presence, see the -[Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat). -""" -IGNORE_IF_ZERO_VALUE: Ignore.ValueType # 1 -"""Ignore rules if the field is unset, or set to the zero value. - -The zero value depends on the field type: -- For strings, the zero value is the empty string. -- For bytes, the zero value is empty bytes. -- For bool, the zero value is false. -- For numeric types, the zero value is zero. -- For enums, the zero value is the first defined enum value. -- For repeated fields, the zero is an empty list. -- For map fields, the zero is an empty map. -- For message fields, absence of the message (typically a null-value) is considered zero value. - -For fields that track presence (e.g. adding the `optional` label in proto3), -this a no-op and behavior is the same as the default `IGNORE_UNSPECIFIED`. -""" -IGNORE_ALWAYS: Ignore.ValueType # 3 -"""Always ignore rules, including the `required` rule. - -This is useful for ignoring the rules of a referenced message, or to -temporarily ignore rules during development. - -```proto -message MyMessage { - // The field's rules will always be ignored, including any validations - // on value's fields. - MyOtherMessage value = 1 [ - (buf.validate.field).ignore = IGNORE_ALWAYS - ]; -} -``` -""" -global___Ignore = Ignore - -class _KnownRegex: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _KnownRegexEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_KnownRegex.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - KNOWN_REGEX_UNSPECIFIED: _KnownRegex.ValueType # 0 - KNOWN_REGEX_HTTP_HEADER_NAME: _KnownRegex.ValueType # 1 - """HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2).""" - KNOWN_REGEX_HTTP_HEADER_VALUE: _KnownRegex.ValueType # 2 - """HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4).""" - -class KnownRegex(_KnownRegex, metaclass=_KnownRegexEnumTypeWrapper): - """KnownRegex contains some well-known patterns.""" - -KNOWN_REGEX_UNSPECIFIED: KnownRegex.ValueType # 0 -KNOWN_REGEX_HTTP_HEADER_NAME: KnownRegex.ValueType # 1 -"""HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2).""" -KNOWN_REGEX_HTTP_HEADER_VALUE: KnownRegex.ValueType # 2 -"""HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4).""" -global___KnownRegex = KnownRegex - -@typing.final -class Rule(google.protobuf.message.Message): - """`Rule` represents a validation rule written in the Common Expression - Language (CEL) syntax. Each Rule includes a unique identifier, an - optional error message, and the CEL expression to evaluate. For more - information, [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). - - ```proto - message Foo { - option (buf.validate.message).cel = { - id: "foo.bar" - message: "bar must be greater than 0" - expression: "this.bar > 0" - }; - int32 bar = 1; - } - ``` - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - ID_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - EXPRESSION_FIELD_NUMBER: builtins.int - id: builtins.str - """`id` is a string that serves as a machine-readable name for this Rule. - It should be unique within its scope, which could be either a message or a field. - """ - message: builtins.str - """`message` is an optional field that provides a human-readable error message - for this Rule when the CEL expression evaluates to false. If a - non-empty message is provided, any strings resulting from the CEL - expression evaluation are ignored. - """ - expression: builtins.str - """`expression` is the actual CEL expression that will be evaluated for - validation. This string must resolve to either a boolean or a string - value. If the expression evaluates to false or a non-empty string, the - validation is considered failed, and the message is rejected. - """ - def __init__( - self, - *, - id: builtins.str | None = ..., - message: builtins.str | None = ..., - expression: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["expression", b"expression", "id", b"id", "message", b"message"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["expression", b"expression", "id", b"id", "message", b"message"]) -> None: ... - -global___Rule = Rule - -@typing.final -class MessageRules(google.protobuf.message.Message): - """MessageRules represents validation rules that are applied to the entire message. - It includes disabling options and a list of Rule messages representing Common Expression Language (CEL) validation rules. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CEL_EXPRESSION_FIELD_NUMBER: builtins.int - CEL_FIELD_NUMBER: builtins.int - ONEOF_FIELD_NUMBER: builtins.int - @property - def cel_expression(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """`cel_expression` is a repeated field CEL expressions. Each expression specifies a validation - rule to be applied to this message. These rules are written in Common Expression Language (CEL) syntax. - - This is a simplified form of the `cel` Rule field, where only `expression` is set. This allows for - simpler syntax when defining CEL Rules where `id` and `message` derived from the `expression`. `id` will - be same as the `expression`. - - For more information, [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). - - ```proto - message MyMessage { - // The field `foo` must be greater than 42. - option (buf.validate.message).cel_expression = "this.foo > 42"; - // The field `foo` must be less than 84. - option (buf.validate.message).cel_expression = "this.foo < 84"; - optional int32 foo = 1; - } - ``` - """ - - @property - def cel(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rule]: - """`cel` is a repeated field of type Rule. Each Rule specifies a validation rule to be applied to this message. - These rules are written in Common Expression Language (CEL) syntax. For more information, - [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). - - - ```proto - message MyMessage { - // The field `foo` must be greater than 42. - option (buf.validate.message).cel = { - id: "my_message.value", - message: "must be greater than 42", - expression: "this.foo > 42", - }; - optional int32 foo = 1; - } - ``` - """ - - @property - def oneof(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MessageOneofRule]: - """`oneof` is a repeated field of type MessageOneofRule that specifies a list of fields - of which at most one can be present. If `required` is also specified, then exactly one - of the specified fields _must_ be present. - - This will enforce oneof-like constraints with a few features not provided by - actual Protobuf oneof declarations: - 1. Repeated and map fields are allowed in this validation. In a Protobuf oneof, - only scalar fields are allowed. - 2. Fields with implicit presence are allowed. In a Protobuf oneof, all member - fields have explicit presence. This means that, for the purpose of determining - how many fields are set, explicitly setting such a field to its zero value is - effectively the same as not setting it at all. - 3. This will always generate validation errors for a message unmarshalled from - serialized data that sets more than one field. With a Protobuf oneof, when - multiple fields are present in the serialized form, earlier values are usually - silently ignored when unmarshalling, with only the last field being set when - unmarshalling completes. - - Note that adding a field to a `oneof` will also set the IGNORE_IF_ZERO_VALUE on the fields. This means - only the field that is set will be validated and the unset fields are not validated according to the field rules. - This behavior can be overridden by setting `ignore` against a field. - - ```proto - message MyMessage { - // Only one of `field1` or `field2` _can_ be present in this message. - option (buf.validate.message).oneof = { fields: ["field1", "field2"] }; - // Exactly one of `field3` or `field4` _must_ be present in this message. - option (buf.validate.message).oneof = { fields: ["field3", "field4"], required: true }; - string field1 = 1; - bytes field2 = 2; - bool field3 = 3; - int32 field4 = 4; - } - ``` - """ - - def __init__( - self, - *, - cel_expression: collections.abc.Iterable[builtins.str] | None = ..., - cel: collections.abc.Iterable[global___Rule] | None = ..., - oneof: collections.abc.Iterable[global___MessageOneofRule] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["cel", b"cel", "cel_expression", b"cel_expression", "oneof", b"oneof"]) -> None: ... - -global___MessageRules = MessageRules - -@typing.final -class MessageOneofRule(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FIELDS_FIELD_NUMBER: builtins.int - REQUIRED_FIELD_NUMBER: builtins.int - required: builtins.bool - """If true, one of the fields specified _must_ be set.""" - @property - def fields(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """A list of field names to include in the oneof. All field names must be - defined in the message. At least one field must be specified, and - duplicates are not permitted. - """ - - def __init__( - self, - *, - fields: collections.abc.Iterable[builtins.str] | None = ..., - required: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["required", b"required"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["fields", b"fields", "required", b"required"]) -> None: ... - -global___MessageOneofRule = MessageOneofRule - -@typing.final -class OneofRules(google.protobuf.message.Message): - """The `OneofRules` message type enables you to manage rules for - oneof fields in your protobuf messages. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - REQUIRED_FIELD_NUMBER: builtins.int - required: builtins.bool - """If `required` is true, exactly one field of the oneof must be set. A - validation error is returned if no fields in the oneof are set. Further rules - should be placed on the fields themselves to ensure they are valid values, - such as `min_len` or `gt`. - - ```proto - message MyMessage { - oneof value { - // Either `a` or `b` must be set. If `a` is set, it must also be - // non-empty; whereas if `b` is set, it can still be an empty string. - option (buf.validate.oneof).required = true; - string a = 1 [(buf.validate.field).string.min_len = 1]; - string b = 2; - } - } - ``` - """ - def __init__( - self, - *, - required: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["required", b"required"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["required", b"required"]) -> None: ... - -global___OneofRules = OneofRules - -@typing.final -class FieldRules(google.protobuf.message.Message): - """FieldRules encapsulates the rules for each type of field. Depending on - the field, the correct set should be used to ensure proper validations. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CEL_EXPRESSION_FIELD_NUMBER: builtins.int - CEL_FIELD_NUMBER: builtins.int - REQUIRED_FIELD_NUMBER: builtins.int - IGNORE_FIELD_NUMBER: builtins.int - FLOAT_FIELD_NUMBER: builtins.int - DOUBLE_FIELD_NUMBER: builtins.int - INT32_FIELD_NUMBER: builtins.int - INT64_FIELD_NUMBER: builtins.int - UINT32_FIELD_NUMBER: builtins.int - UINT64_FIELD_NUMBER: builtins.int - SINT32_FIELD_NUMBER: builtins.int - SINT64_FIELD_NUMBER: builtins.int - FIXED32_FIELD_NUMBER: builtins.int - FIXED64_FIELD_NUMBER: builtins.int - SFIXED32_FIELD_NUMBER: builtins.int - SFIXED64_FIELD_NUMBER: builtins.int - BOOL_FIELD_NUMBER: builtins.int - STRING_FIELD_NUMBER: builtins.int - BYTES_FIELD_NUMBER: builtins.int - ENUM_FIELD_NUMBER: builtins.int - REPEATED_FIELD_NUMBER: builtins.int - MAP_FIELD_NUMBER: builtins.int - ANY_FIELD_NUMBER: builtins.int - DURATION_FIELD_NUMBER: builtins.int - FIELD_MASK_FIELD_NUMBER: builtins.int - TIMESTAMP_FIELD_NUMBER: builtins.int - required: builtins.bool - """If `required` is true, the field must be set. A validation error is returned - if the field is not set. - - ```proto - syntax="proto3"; - - message FieldsWithPresence { - // Requires any string to be set, including the empty string. - optional string link = 1 [ - (buf.validate.field).required = true - ]; - // Requires true or false to be set. - optional bool disabled = 2 [ - (buf.validate.field).required = true - ]; - // Requires a message to be set, including the empty message. - SomeMessage msg = 4 [ - (buf.validate.field).required = true - ]; - } - ``` - - All fields in the example above track presence. By default, Protovalidate - ignores rules on those fields if no value is set. `required` ensures that - the fields are set and valid. - - Fields that don't track presence are always validated by Protovalidate, - whether they are set or not. It is not necessary to add `required`. It - can be added to indicate that the field cannot be the zero value. - - ```proto - syntax="proto3"; - - message FieldsWithoutPresence { - // `string.email` always applies, even to an empty string. - string link = 1 [ - (buf.validate.field).string.email = true - ]; - // `repeated.min_items` always applies, even to an empty list. - repeated string labels = 2 [ - (buf.validate.field).repeated.min_items = 1 - ]; - // `required`, for fields that don't track presence, indicates - // the value of the field can't be the zero value. - int32 zero_value_not_allowed = 3 [ - (buf.validate.field).required = true - ]; - } - ``` - - To learn which fields track presence, see the - [Field Presence cheat sheet](https://protobuf.dev/programming-guides/field_presence/#cheat). - - Note: While field rules can be applied to repeated items, map keys, and map - values, the elements are always considered to be set. Consequently, - specifying `repeated.items.required` is redundant. - """ - ignore: global___Ignore.ValueType - """Ignore validation rules on the field if its value matches the specified - criteria. See the `Ignore` enum for details. - - ```proto - message UpdateRequest { - // The uri rule only applies if the field is not an empty string. - string url = 1 [ - (buf.validate.field).ignore = IGNORE_IF_ZERO_VALUE, - (buf.validate.field).string.uri = true - ]; - } - ``` - """ - @property - def cel_expression(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """`cel_expression` is a repeated field CEL expressions. Each expression specifies a validation - rule to be applied to this message. These rules are written in Common Expression Language (CEL) syntax. - - This is a simplified form of the `cel` Rule field, where only `expression` is set. This allows for - simpler syntax when defining CEL Rules where `id` and `message` derived from the `expression`. `id` will - be same as the `expression`. - - For more information, [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). - - ```proto - message MyMessage { - // The field `value` must be greater than 42. - optional int32 value = 1 [(buf.validate.field).cel_expression = "this > 42"]; - } - ``` - """ - - @property - def cel(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rule]: - """`cel` is a repeated field used to represent a textual expression - in the Common Expression Language (CEL) syntax. For more information, - [see our documentation](https://buf.build/docs/protovalidate/schemas/custom-rules/). - - ```proto - message MyMessage { - // The field `value` must be greater than 42. - optional int32 value = 1 [(buf.validate.field).cel = { - id: "my_message.value", - message: "must be greater than 42", - expression: "this > 42", - }]; - } - ``` - """ - - @property - def float(self) -> global___FloatRules: - """Scalar Field Types""" - - @property - def double(self) -> global___DoubleRules: ... - @property - def int32(self) -> global___Int32Rules: ... - @property - def int64(self) -> global___Int64Rules: ... - @property - def uint32(self) -> global___UInt32Rules: ... - @property - def uint64(self) -> global___UInt64Rules: ... - @property - def sint32(self) -> global___SInt32Rules: ... - @property - def sint64(self) -> global___SInt64Rules: ... - @property - def fixed32(self) -> global___Fixed32Rules: ... - @property - def fixed64(self) -> global___Fixed64Rules: ... - @property - def sfixed32(self) -> global___SFixed32Rules: ... - @property - def sfixed64(self) -> global___SFixed64Rules: ... - @property - def bool(self) -> global___BoolRules: ... - @property - def string(self) -> global___StringRules: ... - @property - def bytes(self) -> global___BytesRules: ... - @property - def enum(self) -> global___EnumRules: - """Complex Field Types""" - - @property - def repeated(self) -> global___RepeatedRules: ... - @property - def map(self) -> global___MapRules: ... - @property - def any(self) -> global___AnyRules: - """Well-Known Field Types""" - - @property - def duration(self) -> global___DurationRules: ... - @property - def field_mask(self) -> global___FieldMaskRules: ... - @property - def timestamp(self) -> global___TimestampRules: ... - def __init__( - self, - *, - cel_expression: collections.abc.Iterable[builtins.str] | None = ..., - cel: collections.abc.Iterable[global___Rule] | None = ..., - required: builtins.bool | None = ..., - ignore: global___Ignore.ValueType | None = ..., - float: global___FloatRules | None = ..., - double: global___DoubleRules | None = ..., - int32: global___Int32Rules | None = ..., - int64: global___Int64Rules | None = ..., - uint32: global___UInt32Rules | None = ..., - uint64: global___UInt64Rules | None = ..., - sint32: global___SInt32Rules | None = ..., - sint64: global___SInt64Rules | None = ..., - fixed32: global___Fixed32Rules | None = ..., - fixed64: global___Fixed64Rules | None = ..., - sfixed32: global___SFixed32Rules | None = ..., - sfixed64: global___SFixed64Rules | None = ..., - bool: global___BoolRules | None = ..., - string: global___StringRules | None = ..., - bytes: global___BytesRules | None = ..., - enum: global___EnumRules | None = ..., - repeated: global___RepeatedRules | None = ..., - map: global___MapRules | None = ..., - any: global___AnyRules | None = ..., - duration: global___DurationRules | None = ..., - field_mask: global___FieldMaskRules | None = ..., - timestamp: global___TimestampRules | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["any", b"any", "bool", b"bool", "bytes", b"bytes", "double", b"double", "duration", b"duration", "enum", b"enum", "field_mask", b"field_mask", "fixed32", b"fixed32", "fixed64", b"fixed64", "float", b"float", "ignore", b"ignore", "int32", b"int32", "int64", b"int64", "map", b"map", "repeated", b"repeated", "required", b"required", "sfixed32", b"sfixed32", "sfixed64", b"sfixed64", "sint32", b"sint32", "sint64", b"sint64", "string", b"string", "timestamp", b"timestamp", "type", b"type", "uint32", b"uint32", "uint64", b"uint64"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["any", b"any", "bool", b"bool", "bytes", b"bytes", "cel", b"cel", "cel_expression", b"cel_expression", "double", b"double", "duration", b"duration", "enum", b"enum", "field_mask", b"field_mask", "fixed32", b"fixed32", "fixed64", b"fixed64", "float", b"float", "ignore", b"ignore", "int32", b"int32", "int64", b"int64", "map", b"map", "repeated", b"repeated", "required", b"required", "sfixed32", b"sfixed32", "sfixed64", b"sfixed64", "sint32", b"sint32", "sint64", b"sint64", "string", b"string", "timestamp", b"timestamp", "type", b"type", "uint32", b"uint32", "uint64", b"uint64"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["float", "double", "int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64", "bool", "string", "bytes", "enum", "repeated", "map", "any", "duration", "field_mask", "timestamp"] | None: ... - -global___FieldRules = FieldRules - -@typing.final -class PredefinedRules(google.protobuf.message.Message): - """PredefinedRules are custom rules that can be re-used with - multiple fields. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CEL_FIELD_NUMBER: builtins.int - @property - def cel(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rule]: - """`cel` is a repeated field used to represent a textual expression - in the Common Expression Language (CEL) syntax. For more information, - [see our documentation](https://buf.build/docs/protovalidate/schemas/predefined-rules/). - - ```proto - message MyMessage { - // The field `value` must be greater than 42. - optional int32 value = 1 [(buf.validate.predefined).cel = { - id: "my_message.value", - message: "must be greater than 42", - expression: "this > 42", - }]; - } - ``` - """ - - def __init__( - self, - *, - cel: collections.abc.Iterable[global___Rule] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["cel", b"cel"]) -> None: ... - -global___PredefinedRules = PredefinedRules - -@typing.final -class FloatRules(google.protobuf.message.Message): - """FloatRules describes the rules applied to `float` values. These - rules may also be applied to the `google.protobuf.FloatValue` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - FINITE_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.float - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MyFloat { - // value must equal 42.0 - float value = 1 [(buf.validate.field).float.const = 42.0]; - } - ``` - """ - lt: builtins.float - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified value, - an error message is generated. - - ```proto - message MyFloat { - // must be less than 10.0 - float value = 1 [(buf.validate.field).float.lt = 10.0]; - } - ``` - """ - lte: builtins.float - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MyFloat { - // must be less than or equal to 10.0 - float value = 1 [(buf.validate.field).float.lte = 10.0]; - } - ``` - """ - gt: builtins.float - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyFloat { - // must be greater than 5.0 [float.gt] - float value = 1 [(buf.validate.field).float.gt = 5.0]; - - // must be greater than 5 and less than 10.0 [float.gt_lt] - float other_value = 2 [(buf.validate.field).float = { gt: 5.0, lt: 10.0 }]; - - // must be greater than 10 or less than 5.0 [float.gt_lt_exclusive] - float another_value = 3 [(buf.validate.field).float = { gt: 10.0, lt: 5.0 }]; - } - ``` - """ - gte: builtins.float - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyFloat { - // must be greater than or equal to 5.0 [float.gte] - float value = 1 [(buf.validate.field).float.gte = 5.0]; - - // must be greater than or equal to 5.0 and less than 10.0 [float.gte_lt] - float other_value = 2 [(buf.validate.field).float = { gte: 5.0, lt: 10.0 }]; - - // must be greater than or equal to 10.0 or less than 5.0 [float.gte_lt_exclusive] - float another_value = 3 [(buf.validate.field).float = { gte: 10.0, lt: 5.0 }]; - } - ``` - """ - finite: builtins.bool - """`finite` requires the field value to be finite. If the field value is - infinite or NaN, an error message is generated. - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MyFloat { - // value must not be in list [1.0, 2.0, 3.0] - float value = 1 [(buf.validate.field).float = { not_in: [1.0, 2.0, 3.0] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyFloat { - float value = 1 [ - (buf.validate.field).float.example = 1.0, - (buf.validate.field).float.example = inf - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.float | None = ..., - lt: builtins.float | None = ..., - lte: builtins.float | None = ..., - gt: builtins.float | None = ..., - gte: builtins.float | None = ..., - not_in: collections.abc.Iterable[builtins.float] | None = ..., - finite: builtins.bool | None = ..., - example: collections.abc.Iterable[builtins.float] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "finite", b"finite", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "finite", b"finite", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___FloatRules = FloatRules - -@typing.final -class DoubleRules(google.protobuf.message.Message): - """DoubleRules describes the rules applied to `double` values. These - rules may also be applied to the `google.protobuf.DoubleValue` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - FINITE_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.float - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MyDouble { - // value must equal 42.0 - double value = 1 [(buf.validate.field).double.const = 42.0]; - } - ``` - """ - lt: builtins.float - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified - value, an error message is generated. - - ```proto - message MyDouble { - // must be less than 10.0 - double value = 1 [(buf.validate.field).double.lt = 10.0]; - } - ``` - """ - lte: builtins.float - """`lte` requires the field value to be less than or equal to the specified value - (field <= value). If the field value is greater than the specified value, - an error message is generated. - - ```proto - message MyDouble { - // must be less than or equal to 10.0 - double value = 1 [(buf.validate.field).double.lte = 10.0]; - } - ``` - """ - gt: builtins.float - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or `lte`, - the range is reversed, and the field value must be outside the specified - range. If the field value doesn't meet the required conditions, an error - message is generated. - - ```proto - message MyDouble { - // must be greater than 5.0 [double.gt] - double value = 1 [(buf.validate.field).double.gt = 5.0]; - - // must be greater than 5 and less than 10.0 [double.gt_lt] - double other_value = 2 [(buf.validate.field).double = { gt: 5.0, lt: 10.0 }]; - - // must be greater than 10 or less than 5.0 [double.gt_lt_exclusive] - double another_value = 3 [(buf.validate.field).double = { gt: 10.0, lt: 5.0 }]; - } - ``` - """ - gte: builtins.float - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyDouble { - // must be greater than or equal to 5.0 [double.gte] - double value = 1 [(buf.validate.field).double.gte = 5.0]; - - // must be greater than or equal to 5.0 and less than 10.0 [double.gte_lt] - double other_value = 2 [(buf.validate.field).double = { gte: 5.0, lt: 10.0 }]; - - // must be greater than or equal to 10.0 or less than 5.0 [double.gte_lt_exclusive] - double another_value = 3 [(buf.validate.field).double = { gte: 10.0, lt: 5.0 }]; - } - ``` - """ - finite: builtins.bool - """`finite` requires the field value to be finite. If the field value is - infinite or NaN, an error message is generated. - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MyDouble { - // value must not be in list [1.0, 2.0, 3.0] - double value = 1 [(buf.validate.field).double = { not_in: [1.0, 2.0, 3.0] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyDouble { - double value = 1 [ - (buf.validate.field).double.example = 1.0, - (buf.validate.field).double.example = inf - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.float | None = ..., - lt: builtins.float | None = ..., - lte: builtins.float | None = ..., - gt: builtins.float | None = ..., - gte: builtins.float | None = ..., - not_in: collections.abc.Iterable[builtins.float] | None = ..., - finite: builtins.bool | None = ..., - example: collections.abc.Iterable[builtins.float] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "finite", b"finite", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "finite", b"finite", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___DoubleRules = DoubleRules - -@typing.final -class Int32Rules(google.protobuf.message.Message): - """Int32Rules describes the rules applied to `int32` values. These - rules may also be applied to the `google.protobuf.Int32Value` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MyInt32 { - // value must equal 42 - int32 value = 1 [(buf.validate.field).int32.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field - < value). If the field value is equal to or greater than the specified - value, an error message is generated. - - ```proto - message MyInt32 { - // must be less than 10 - int32 value = 1 [(buf.validate.field).int32.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MyInt32 { - // must be less than or equal to 10 - int32 value = 1 [(buf.validate.field).int32.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyInt32 { - // must be greater than 5 [int32.gt] - int32 value = 1 [(buf.validate.field).int32.gt = 5]; - - // must be greater than 5 and less than 10 [int32.gt_lt] - int32 other_value = 2 [(buf.validate.field).int32 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [int32.gt_lt_exclusive] - int32 another_value = 3 [(buf.validate.field).int32 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified value - (exclusive). If the value of `gte` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyInt32 { - // must be greater than or equal to 5 [int32.gte] - int32 value = 1 [(buf.validate.field).int32.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [int32.gte_lt] - int32 other_value = 2 [(buf.validate.field).int32 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [int32.gte_lt_exclusive] - int32 another_value = 3 [(buf.validate.field).int32 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error message - is generated. - - ```proto - message MyInt32 { - // value must not be in list [1, 2, 3] - int32 value = 1 [(buf.validate.field).int32 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyInt32 { - int32 value = 1 [ - (buf.validate.field).int32.example = 1, - (buf.validate.field).int32.example = -10 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___Int32Rules = Int32Rules - -@typing.final -class Int64Rules(google.protobuf.message.Message): - """Int64Rules describes the rules applied to `int64` values. These - rules may also be applied to the `google.protobuf.Int64Value` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MyInt64 { - // value must equal 42 - int64 value = 1 [(buf.validate.field).int64.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified value, - an error message is generated. - - ```proto - message MyInt64 { - // must be less than 10 - int64 value = 1 [(buf.validate.field).int64.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MyInt64 { - // must be less than or equal to 10 - int64 value = 1 [(buf.validate.field).int64.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyInt64 { - // must be greater than 5 [int64.gt] - int64 value = 1 [(buf.validate.field).int64.gt = 5]; - - // must be greater than 5 and less than 10 [int64.gt_lt] - int64 other_value = 2 [(buf.validate.field).int64 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [int64.gt_lt_exclusive] - int64 another_value = 3 [(buf.validate.field).int64 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyInt64 { - // must be greater than or equal to 5 [int64.gte] - int64 value = 1 [(buf.validate.field).int64.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [int64.gte_lt] - int64 other_value = 2 [(buf.validate.field).int64 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [int64.gte_lt_exclusive] - int64 another_value = 3 [(buf.validate.field).int64 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MyInt64 { - // value must not be in list [1, 2, 3] - int64 value = 1 [(buf.validate.field).int64 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyInt64 { - int64 value = 1 [ - (buf.validate.field).int64.example = 1, - (buf.validate.field).int64.example = -10 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___Int64Rules = Int64Rules - -@typing.final -class UInt32Rules(google.protobuf.message.Message): - """UInt32Rules describes the rules applied to `uint32` values. These - rules may also be applied to the `google.protobuf.UInt32Value` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MyUInt32 { - // value must equal 42 - uint32 value = 1 [(buf.validate.field).uint32.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified value, - an error message is generated. - - ```proto - message MyUInt32 { - // must be less than 10 - uint32 value = 1 [(buf.validate.field).uint32.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MyUInt32 { - // must be less than or equal to 10 - uint32 value = 1 [(buf.validate.field).uint32.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyUInt32 { - // must be greater than 5 [uint32.gt] - uint32 value = 1 [(buf.validate.field).uint32.gt = 5]; - - // must be greater than 5 and less than 10 [uint32.gt_lt] - uint32 other_value = 2 [(buf.validate.field).uint32 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [uint32.gt_lt_exclusive] - uint32 another_value = 3 [(buf.validate.field).uint32 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyUInt32 { - // must be greater than or equal to 5 [uint32.gte] - uint32 value = 1 [(buf.validate.field).uint32.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [uint32.gte_lt] - uint32 other_value = 2 [(buf.validate.field).uint32 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [uint32.gte_lt_exclusive] - uint32 another_value = 3 [(buf.validate.field).uint32 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MyUInt32 { - // value must not be in list [1, 2, 3] - uint32 value = 1 [(buf.validate.field).uint32 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyUInt32 { - uint32 value = 1 [ - (buf.validate.field).uint32.example = 1, - (buf.validate.field).uint32.example = 10 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___UInt32Rules = UInt32Rules - -@typing.final -class UInt64Rules(google.protobuf.message.Message): - """UInt64Rules describes the rules applied to `uint64` values. These - rules may also be applied to the `google.protobuf.UInt64Value` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MyUInt64 { - // value must equal 42 - uint64 value = 1 [(buf.validate.field).uint64.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified value, - an error message is generated. - - ```proto - message MyUInt64 { - // must be less than 10 - uint64 value = 1 [(buf.validate.field).uint64.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MyUInt64 { - // must be less than or equal to 10 - uint64 value = 1 [(buf.validate.field).uint64.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyUInt64 { - // must be greater than 5 [uint64.gt] - uint64 value = 1 [(buf.validate.field).uint64.gt = 5]; - - // must be greater than 5 and less than 10 [uint64.gt_lt] - uint64 other_value = 2 [(buf.validate.field).uint64 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [uint64.gt_lt_exclusive] - uint64 another_value = 3 [(buf.validate.field).uint64 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyUInt64 { - // must be greater than or equal to 5 [uint64.gte] - uint64 value = 1 [(buf.validate.field).uint64.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [uint64.gte_lt] - uint64 other_value = 2 [(buf.validate.field).uint64 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [uint64.gte_lt_exclusive] - uint64 another_value = 3 [(buf.validate.field).uint64 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MyUInt64 { - // value must not be in list [1, 2, 3] - uint64 value = 1 [(buf.validate.field).uint64 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyUInt64 { - uint64 value = 1 [ - (buf.validate.field).uint64.example = 1, - (buf.validate.field).uint64.example = -10 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___UInt64Rules = UInt64Rules - -@typing.final -class SInt32Rules(google.protobuf.message.Message): - """SInt32Rules describes the rules applied to `sint32` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MySInt32 { - // value must equal 42 - sint32 value = 1 [(buf.validate.field).sint32.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field - < value). If the field value is equal to or greater than the specified - value, an error message is generated. - - ```proto - message MySInt32 { - // must be less than 10 - sint32 value = 1 [(buf.validate.field).sint32.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MySInt32 { - // must be less than or equal to 10 - sint32 value = 1 [(buf.validate.field).sint32.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MySInt32 { - // must be greater than 5 [sint32.gt] - sint32 value = 1 [(buf.validate.field).sint32.gt = 5]; - - // must be greater than 5 and less than 10 [sint32.gt_lt] - sint32 other_value = 2 [(buf.validate.field).sint32 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [sint32.gt_lt_exclusive] - sint32 another_value = 3 [(buf.validate.field).sint32 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MySInt32 { - // must be greater than or equal to 5 [sint32.gte] - sint32 value = 1 [(buf.validate.field).sint32.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [sint32.gte_lt] - sint32 other_value = 2 [(buf.validate.field).sint32 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [sint32.gte_lt_exclusive] - sint32 another_value = 3 [(buf.validate.field).sint32 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MySInt32 { - // value must not be in list [1, 2, 3] - sint32 value = 1 [(buf.validate.field).sint32 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MySInt32 { - sint32 value = 1 [ - (buf.validate.field).sint32.example = 1, - (buf.validate.field).sint32.example = -10 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___SInt32Rules = SInt32Rules - -@typing.final -class SInt64Rules(google.protobuf.message.Message): - """SInt64Rules describes the rules applied to `sint64` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MySInt64 { - // value must equal 42 - sint64 value = 1 [(buf.validate.field).sint64.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field - < value). If the field value is equal to or greater than the specified - value, an error message is generated. - - ```proto - message MySInt64 { - // must be less than 10 - sint64 value = 1 [(buf.validate.field).sint64.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MySInt64 { - // must be less than or equal to 10 - sint64 value = 1 [(buf.validate.field).sint64.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MySInt64 { - // must be greater than 5 [sint64.gt] - sint64 value = 1 [(buf.validate.field).sint64.gt = 5]; - - // must be greater than 5 and less than 10 [sint64.gt_lt] - sint64 other_value = 2 [(buf.validate.field).sint64 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [sint64.gt_lt_exclusive] - sint64 another_value = 3 [(buf.validate.field).sint64 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MySInt64 { - // must be greater than or equal to 5 [sint64.gte] - sint64 value = 1 [(buf.validate.field).sint64.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [sint64.gte_lt] - sint64 other_value = 2 [(buf.validate.field).sint64 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [sint64.gte_lt_exclusive] - sint64 another_value = 3 [(buf.validate.field).sint64 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MySInt64 { - // value must not be in list [1, 2, 3] - sint64 value = 1 [(buf.validate.field).sint64 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MySInt64 { - sint64 value = 1 [ - (buf.validate.field).sint64.example = 1, - (buf.validate.field).sint64.example = -10 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___SInt64Rules = SInt64Rules - -@typing.final -class Fixed32Rules(google.protobuf.message.Message): - """Fixed32Rules describes the rules applied to `fixed32` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. - If the field value doesn't match, an error message is generated. - - ```proto - message MyFixed32 { - // value must equal 42 - fixed32 value = 1 [(buf.validate.field).fixed32.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified value, - an error message is generated. - - ```proto - message MyFixed32 { - // must be less than 10 - fixed32 value = 1 [(buf.validate.field).fixed32.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MyFixed32 { - // must be less than or equal to 10 - fixed32 value = 1 [(buf.validate.field).fixed32.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyFixed32 { - // must be greater than 5 [fixed32.gt] - fixed32 value = 1 [(buf.validate.field).fixed32.gt = 5]; - - // must be greater than 5 and less than 10 [fixed32.gt_lt] - fixed32 other_value = 2 [(buf.validate.field).fixed32 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [fixed32.gt_lt_exclusive] - fixed32 another_value = 3 [(buf.validate.field).fixed32 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyFixed32 { - // must be greater than or equal to 5 [fixed32.gte] - fixed32 value = 1 [(buf.validate.field).fixed32.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [fixed32.gte_lt] - fixed32 other_value = 2 [(buf.validate.field).fixed32 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [fixed32.gte_lt_exclusive] - fixed32 another_value = 3 [(buf.validate.field).fixed32 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MyFixed32 { - // value must not be in list [1, 2, 3] - fixed32 value = 1 [(buf.validate.field).fixed32 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyFixed32 { - fixed32 value = 1 [ - (buf.validate.field).fixed32.example = 1, - (buf.validate.field).fixed32.example = 2 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___Fixed32Rules = Fixed32Rules - -@typing.final -class Fixed64Rules(google.protobuf.message.Message): - """Fixed64Rules describes the rules applied to `fixed64` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MyFixed64 { - // value must equal 42 - fixed64 value = 1 [(buf.validate.field).fixed64.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified value, - an error message is generated. - - ```proto - message MyFixed64 { - // must be less than 10 - fixed64 value = 1 [(buf.validate.field).fixed64.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MyFixed64 { - // must be less than or equal to 10 - fixed64 value = 1 [(buf.validate.field).fixed64.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyFixed64 { - // must be greater than 5 [fixed64.gt] - fixed64 value = 1 [(buf.validate.field).fixed64.gt = 5]; - - // must be greater than 5 and less than 10 [fixed64.gt_lt] - fixed64 other_value = 2 [(buf.validate.field).fixed64 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [fixed64.gt_lt_exclusive] - fixed64 another_value = 3 [(buf.validate.field).fixed64 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyFixed64 { - // must be greater than or equal to 5 [fixed64.gte] - fixed64 value = 1 [(buf.validate.field).fixed64.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [fixed64.gte_lt] - fixed64 other_value = 2 [(buf.validate.field).fixed64 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [fixed64.gte_lt_exclusive] - fixed64 another_value = 3 [(buf.validate.field).fixed64 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MyFixed64 { - // value must not be in list [1, 2, 3] - fixed64 value = 1 [(buf.validate.field).fixed64 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyFixed64 { - fixed64 value = 1 [ - (buf.validate.field).fixed64.example = 1, - (buf.validate.field).fixed64.example = 2 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___Fixed64Rules = Fixed64Rules - -@typing.final -class SFixed32Rules(google.protobuf.message.Message): - """SFixed32Rules describes the rules applied to `fixed32` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MySFixed32 { - // value must equal 42 - sfixed32 value = 1 [(buf.validate.field).sfixed32.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified value, - an error message is generated. - - ```proto - message MySFixed32 { - // must be less than 10 - sfixed32 value = 1 [(buf.validate.field).sfixed32.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MySFixed32 { - // must be less than or equal to 10 - sfixed32 value = 1 [(buf.validate.field).sfixed32.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MySFixed32 { - // must be greater than 5 [sfixed32.gt] - sfixed32 value = 1 [(buf.validate.field).sfixed32.gt = 5]; - - // must be greater than 5 and less than 10 [sfixed32.gt_lt] - sfixed32 other_value = 2 [(buf.validate.field).sfixed32 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [sfixed32.gt_lt_exclusive] - sfixed32 another_value = 3 [(buf.validate.field).sfixed32 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MySFixed32 { - // must be greater than or equal to 5 [sfixed32.gte] - sfixed32 value = 1 [(buf.validate.field).sfixed32.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [sfixed32.gte_lt] - sfixed32 other_value = 2 [(buf.validate.field).sfixed32 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [sfixed32.gte_lt_exclusive] - sfixed32 another_value = 3 [(buf.validate.field).sfixed32 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MySFixed32 { - // value must not be in list [1, 2, 3] - sfixed32 value = 1 [(buf.validate.field).sfixed32 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MySFixed32 { - sfixed32 value = 1 [ - (buf.validate.field).sfixed32.example = 1, - (buf.validate.field).sfixed32.example = 2 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___SFixed32Rules = SFixed32Rules - -@typing.final -class SFixed64Rules(google.protobuf.message.Message): - """SFixed64Rules describes the rules applied to `fixed64` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MySFixed64 { - // value must equal 42 - sfixed64 value = 1 [(buf.validate.field).sfixed64.const = 42]; - } - ``` - """ - lt: builtins.int - """`lt` requires the field value to be less than the specified value (field < - value). If the field value is equal to or greater than the specified value, - an error message is generated. - - ```proto - message MySFixed64 { - // must be less than 10 - sfixed64 value = 1 [(buf.validate.field).sfixed64.lt = 10]; - } - ``` - """ - lte: builtins.int - """`lte` requires the field value to be less than or equal to the specified - value (field <= value). If the field value is greater than the specified - value, an error message is generated. - - ```proto - message MySFixed64 { - // must be less than or equal to 10 - sfixed64 value = 1 [(buf.validate.field).sfixed64.lte = 10]; - } - ``` - """ - gt: builtins.int - """`gt` requires the field value to be greater than the specified value - (exclusive). If the value of `gt` is larger than a specified `lt` or - `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MySFixed64 { - // must be greater than 5 [sfixed64.gt] - sfixed64 value = 1 [(buf.validate.field).sfixed64.gt = 5]; - - // must be greater than 5 and less than 10 [sfixed64.gt_lt] - sfixed64 other_value = 2 [(buf.validate.field).sfixed64 = { gt: 5, lt: 10 }]; - - // must be greater than 10 or less than 5 [sfixed64.gt_lt_exclusive] - sfixed64 another_value = 3 [(buf.validate.field).sfixed64 = { gt: 10, lt: 5 }]; - } - ``` - """ - gte: builtins.int - """`gte` requires the field value to be greater than or equal to the specified - value (exclusive). If the value of `gte` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MySFixed64 { - // must be greater than or equal to 5 [sfixed64.gte] - sfixed64 value = 1 [(buf.validate.field).sfixed64.gte = 5]; - - // must be greater than or equal to 5 and less than 10 [sfixed64.gte_lt] - sfixed64 other_value = 2 [(buf.validate.field).sfixed64 = { gte: 5, lt: 10 }]; - - // must be greater than or equal to 10 or less than 5 [sfixed64.gte_lt_exclusive] - sfixed64 another_value = 3 [(buf.validate.field).sfixed64 = { gte: 10, lt: 5 }]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to not be equal to any of the specified - values. If the field value is one of the specified values, an error - message is generated. - - ```proto - message MySFixed64 { - // value must not be in list [1, 2, 3] - sfixed64 value = 1 [(buf.validate.field).sfixed64 = { not_in: [1, 2, 3] }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MySFixed64 { - sfixed64 value = 1 [ - (buf.validate.field).sfixed64.example = 1, - (buf.validate.field).sfixed64.example = 2 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - lt: builtins.int | None = ..., - lte: builtins.int | None = ..., - gt: builtins.int | None = ..., - gte: builtins.int | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___SFixed64Rules = SFixed64Rules - -@typing.final -class BoolRules(google.protobuf.message.Message): - """BoolRules describes the rules applied to `bool` values. These rules - may also be applied to the `google.protobuf.BoolValue` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.bool - """`const` requires the field value to exactly match the specified boolean value. - If the field value doesn't match, an error message is generated. - - ```proto - message MyBool { - // value must equal true - bool value = 1 [(buf.validate.field).bool.const = true]; - } - ``` - """ - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyBool { - bool value = 1 [ - (buf.validate.field).bool.example = 1, - (buf.validate.field).bool.example = 2 - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.bool | None = ..., - example: collections.abc.Iterable[builtins.bool] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example"]) -> None: ... - -global___BoolRules = BoolRules - -@typing.final -class StringRules(google.protobuf.message.Message): - """StringRules describes the rules applied to `string` values These - rules may also be applied to the `google.protobuf.StringValue` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LEN_FIELD_NUMBER: builtins.int - MIN_LEN_FIELD_NUMBER: builtins.int - MAX_LEN_FIELD_NUMBER: builtins.int - LEN_BYTES_FIELD_NUMBER: builtins.int - MIN_BYTES_FIELD_NUMBER: builtins.int - MAX_BYTES_FIELD_NUMBER: builtins.int - PATTERN_FIELD_NUMBER: builtins.int - PREFIX_FIELD_NUMBER: builtins.int - SUFFIX_FIELD_NUMBER: builtins.int - CONTAINS_FIELD_NUMBER: builtins.int - NOT_CONTAINS_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - HOSTNAME_FIELD_NUMBER: builtins.int - IP_FIELD_NUMBER: builtins.int - IPV4_FIELD_NUMBER: builtins.int - IPV6_FIELD_NUMBER: builtins.int - URI_FIELD_NUMBER: builtins.int - URI_REF_FIELD_NUMBER: builtins.int - ADDRESS_FIELD_NUMBER: builtins.int - UUID_FIELD_NUMBER: builtins.int - TUUID_FIELD_NUMBER: builtins.int - IP_WITH_PREFIXLEN_FIELD_NUMBER: builtins.int - IPV4_WITH_PREFIXLEN_FIELD_NUMBER: builtins.int - IPV6_WITH_PREFIXLEN_FIELD_NUMBER: builtins.int - IP_PREFIX_FIELD_NUMBER: builtins.int - IPV4_PREFIX_FIELD_NUMBER: builtins.int - IPV6_PREFIX_FIELD_NUMBER: builtins.int - HOST_AND_PORT_FIELD_NUMBER: builtins.int - ULID_FIELD_NUMBER: builtins.int - PROTOBUF_FQN_FIELD_NUMBER: builtins.int - PROTOBUF_DOT_FQN_FIELD_NUMBER: builtins.int - WELL_KNOWN_REGEX_FIELD_NUMBER: builtins.int - STRICT_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.str - """`const` requires the field value to exactly match the specified value. If - the field value doesn't match, an error message is generated. - - ```proto - message MyString { - // value must equal `hello` - string value = 1 [(buf.validate.field).string.const = "hello"]; - } - ``` - """ - len: builtins.int - """`len` dictates that the field value must have the specified - number of characters (Unicode code points), which may differ from the number - of bytes in the string. If the field value does not meet the specified - length, an error message will be generated. - - ```proto - message MyString { - // value length must be 5 characters - string value = 1 [(buf.validate.field).string.len = 5]; - } - ``` - """ - min_len: builtins.int - """`min_len` specifies that the field value must have at least the specified - number of characters (Unicode code points), which may differ from the number - of bytes in the string. If the field value contains fewer characters, an error - message will be generated. - - ```proto - message MyString { - // value length must be at least 3 characters - string value = 1 [(buf.validate.field).string.min_len = 3]; - } - ``` - """ - max_len: builtins.int - """`max_len` specifies that the field value must have no more than the specified - number of characters (Unicode code points), which may differ from the - number of bytes in the string. If the field value contains more characters, - an error message will be generated. - - ```proto - message MyString { - // value length must be at most 10 characters - string value = 1 [(buf.validate.field).string.max_len = 10]; - } - ``` - """ - len_bytes: builtins.int - """`len_bytes` dictates that the field value must have the specified number of - bytes. If the field value does not match the specified length in bytes, - an error message will be generated. - - ```proto - message MyString { - // value length must be 6 bytes - string value = 1 [(buf.validate.field).string.len_bytes = 6]; - } - ``` - """ - min_bytes: builtins.int - """`min_bytes` specifies that the field value must have at least the specified - number of bytes. If the field value contains fewer bytes, an error message - will be generated. - - ```proto - message MyString { - // value length must be at least 4 bytes - string value = 1 [(buf.validate.field).string.min_bytes = 4]; - } - - ``` - """ - max_bytes: builtins.int - """`max_bytes` specifies that the field value must have no more than the - specified number of bytes. If the field value contains more bytes, an - error message will be generated. - - ```proto - message MyString { - // value length must be at most 8 bytes - string value = 1 [(buf.validate.field).string.max_bytes = 8]; - } - ``` - """ - pattern: builtins.str - """`pattern` specifies that the field value must match the specified - regular expression (RE2 syntax), with the expression provided without any - delimiters. If the field value doesn't match the regular expression, an - error message will be generated. - - ```proto - message MyString { - // value does not match regex pattern `^[a-zA-Z]//$` - string value = 1 [(buf.validate.field).string.pattern = "^[a-zA-Z]//$"]; - } - ``` - """ - prefix: builtins.str - """`prefix` specifies that the field value must have the - specified substring at the beginning of the string. If the field value - doesn't start with the specified prefix, an error message will be - generated. - - ```proto - message MyString { - // value does not have prefix `pre` - string value = 1 [(buf.validate.field).string.prefix = "pre"]; - } - ``` - """ - suffix: builtins.str - """`suffix` specifies that the field value must have the - specified substring at the end of the string. If the field value doesn't - end with the specified suffix, an error message will be generated. - - ```proto - message MyString { - // value does not have suffix `post` - string value = 1 [(buf.validate.field).string.suffix = "post"]; - } - ``` - """ - contains: builtins.str - """`contains` specifies that the field value must have the - specified substring anywhere in the string. If the field value doesn't - contain the specified substring, an error message will be generated. - - ```proto - message MyString { - // value does not contain substring `inside`. - string value = 1 [(buf.validate.field).string.contains = "inside"]; - } - ``` - """ - not_contains: builtins.str - """`not_contains` specifies that the field value must not have the - specified substring anywhere in the string. If the field value contains - the specified substring, an error message will be generated. - - ```proto - message MyString { - // value contains substring `inside`. - string value = 1 [(buf.validate.field).string.not_contains = "inside"]; - } - ``` - """ - email: builtins.bool - """`email` specifies that the field value must be a valid email address, for - example "foo@example.com". - - Conforms to the definition for a valid email address from the [HTML standard](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address). - Note that this standard willfully deviates from [RFC 5322](https://datatracker.ietf.org/doc/html/rfc5322), - which allows many unexpected forms of email addresses and will easily match - a typographical error. - - If the field value isn't a valid email address, an error message will be generated. - - ```proto - message MyString { - // must be a valid email address - string value = 1 [(buf.validate.field).string.email = true]; - } - ``` - """ - hostname: builtins.bool - """`hostname` specifies that the field value must be a valid hostname, for - example "foo.example.com". - - A valid hostname follows the rules below: - - The name consists of one or more labels, separated by a dot ("."). - - Each label can be 1 to 63 alphanumeric characters. - - A label can contain hyphens ("-"), but must not start or end with a hyphen. - - The right-most label must not be digits only. - - The name can have a trailing dot—for example, "foo.example.com.". - - The name can be 253 characters at most, excluding the optional trailing dot. - - If the field value isn't a valid hostname, an error message will be generated. - - ```proto - message MyString { - // must be a valid hostname - string value = 1 [(buf.validate.field).string.hostname = true]; - } - ``` - """ - ip: builtins.bool - """`ip` specifies that the field value must be a valid IP (v4 or v6) address. - - IPv4 addresses are expected in the dotted decimal format—for example, "192.168.5.21". - IPv6 addresses are expected in their text representation—for example, "::1", - or "2001:0DB8:ABCD:0012::0". - - Both formats are well-defined in the internet standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). - Zone identifiers for IPv6 addresses (for example, "fe80::a%en1") are supported. - - If the field value isn't a valid IP address, an error message will be - generated. - - ```proto - message MyString { - // must be a valid IP address - string value = 1 [(buf.validate.field).string.ip = true]; - } - ``` - """ - ipv4: builtins.bool - """`ipv4` specifies that the field value must be a valid IPv4 address—for - example "192.168.5.21". If the field value isn't a valid IPv4 address, an - error message will be generated. - - ```proto - message MyString { - // must be a valid IPv4 address - string value = 1 [(buf.validate.field).string.ipv4 = true]; - } - ``` - """ - ipv6: builtins.bool - """`ipv6` specifies that the field value must be a valid IPv6 address—for - example "::1", or "d7a:115c:a1e0:ab12:4843:cd96:626b:430b". If the field - value is not a valid IPv6 address, an error message will be generated. - - ```proto - message MyString { - // must be a valid IPv6 address - string value = 1 [(buf.validate.field).string.ipv6 = true]; - } - ``` - """ - uri: builtins.bool - """`uri` specifies that the field value must be a valid URI, for example - "https://example.com/foo/bar?baz=quux#frag". - - URI is defined in the internet standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). - Zone Identifiers in IPv6 address literals are supported ([RFC 6874](https://datatracker.ietf.org/doc/html/rfc6874)). - - If the field value isn't a valid URI, an error message will be generated. - - ```proto - message MyString { - // must be a valid URI - string value = 1 [(buf.validate.field).string.uri = true]; - } - ``` - """ - uri_ref: builtins.bool - """`uri_ref` specifies that the field value must be a valid URI Reference—either - a URI such as "https://example.com/foo/bar?baz=quux#frag", or a Relative - Reference such as "./foo/bar?query". - - URI, URI Reference, and Relative Reference are defined in the internet - standard [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). Zone - Identifiers in IPv6 address literals are supported ([RFC 6874](https://datatracker.ietf.org/doc/html/rfc6874)). - - If the field value isn't a valid URI Reference, an error message will be - generated. - - ```proto - message MyString { - // must be a valid URI Reference - string value = 1 [(buf.validate.field).string.uri_ref = true]; - } - ``` - """ - address: builtins.bool - """`address` specifies that the field value must be either a valid hostname - (for example, "example.com"), or a valid IP (v4 or v6) address (for example, - "192.168.0.1", or "::1"). If the field value isn't a valid hostname or IP, - an error message will be generated. - - ```proto - message MyString { - // must be a valid hostname, or ip address - string value = 1 [(buf.validate.field).string.address = true]; - } - ``` - """ - uuid: builtins.bool - """`uuid` specifies that the field value must be a valid UUID as defined by - [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2). If the - field value isn't a valid UUID, an error message will be generated. - - ```proto - message MyString { - // must be a valid UUID - string value = 1 [(buf.validate.field).string.uuid = true]; - } - ``` - """ - tuuid: builtins.bool - """`tuuid` (trimmed UUID) specifies that the field value must be a valid UUID as - defined by [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2) with all dashes - omitted. If the field value isn't a valid UUID without dashes, an error message - will be generated. - - ```proto - message MyString { - // must be a valid trimmed UUID - string value = 1 [(buf.validate.field).string.tuuid = true]; - } - ``` - """ - ip_with_prefixlen: builtins.bool - """`ip_with_prefixlen` specifies that the field value must be a valid IP - (v4 or v6) address with prefix length—for example, "192.168.5.21/16" or - "2001:0DB8:ABCD:0012::F1/64". If the field value isn't a valid IP with - prefix length, an error message will be generated. - - ```proto - message MyString { - // must be a valid IP with prefix length - string value = 1 [(buf.validate.field).string.ip_with_prefixlen = true]; - } - ``` - """ - ipv4_with_prefixlen: builtins.bool - """`ipv4_with_prefixlen` specifies that the field value must be a valid - IPv4 address with prefix length—for example, "192.168.5.21/16". If the - field value isn't a valid IPv4 address with prefix length, an error - message will be generated. - - ```proto - message MyString { - // must be a valid IPv4 address with prefix length - string value = 1 [(buf.validate.field).string.ipv4_with_prefixlen = true]; - } - ``` - """ - ipv6_with_prefixlen: builtins.bool - """`ipv6_with_prefixlen` specifies that the field value must be a valid - IPv6 address with prefix length—for example, "2001:0DB8:ABCD:0012::F1/64". - If the field value is not a valid IPv6 address with prefix length, - an error message will be generated. - - ```proto - message MyString { - // must be a valid IPv6 address prefix length - string value = 1 [(buf.validate.field).string.ipv6_with_prefixlen = true]; - } - ``` - """ - ip_prefix: builtins.bool - """`ip_prefix` specifies that the field value must be a valid IP (v4 or v6) - prefix—for example, "192.168.0.0/16" or "2001:0DB8:ABCD:0012::0/64". - - The prefix must have all zeros for the unmasked bits. For example, - "2001:0DB8:ABCD:0012::0/64" designates the left-most 64 bits for the - prefix, and the remaining 64 bits must be zero. - - If the field value isn't a valid IP prefix, an error message will be - generated. - - ```proto - message MyString { - // must be a valid IP prefix - string value = 1 [(buf.validate.field).string.ip_prefix = true]; - } - ``` - """ - ipv4_prefix: builtins.bool - """`ipv4_prefix` specifies that the field value must be a valid IPv4 - prefix, for example "192.168.0.0/16". - - The prefix must have all zeros for the unmasked bits. For example, - "192.168.0.0/16" designates the left-most 16 bits for the prefix, - and the remaining 16 bits must be zero. - - If the field value isn't a valid IPv4 prefix, an error message - will be generated. - - ```proto - message MyString { - // must be a valid IPv4 prefix - string value = 1 [(buf.validate.field).string.ipv4_prefix = true]; - } - ``` - """ - ipv6_prefix: builtins.bool - """`ipv6_prefix` specifies that the field value must be a valid IPv6 prefix—for - example, "2001:0DB8:ABCD:0012::0/64". - - The prefix must have all zeros for the unmasked bits. For example, - "2001:0DB8:ABCD:0012::0/64" designates the left-most 64 bits for the - prefix, and the remaining 64 bits must be zero. - - If the field value is not a valid IPv6 prefix, an error message will be - generated. - - ```proto - message MyString { - // must be a valid IPv6 prefix - string value = 1 [(buf.validate.field).string.ipv6_prefix = true]; - } - ``` - """ - host_and_port: builtins.bool - """`host_and_port` specifies that the field value must be a valid host/port - pair—for example, "example.com:8080". - - The host can be one of: - - An IPv4 address in dotted decimal format—for example, "192.168.5.21". - - An IPv6 address enclosed in square brackets—for example, "[2001:0DB8:ABCD:0012::F1]". - - A hostname—for example, "example.com". - - The port is separated by a colon. It must be non-empty, with a decimal number - in the range of 0-65535, inclusive. - """ - ulid: builtins.bool - """`ulid` specifies that the field value must be a valid ULID (Universally Unique - Lexicographically Sortable Identifier) as defined by the [ULID specification](https://github.com/ulid/spec). - If the field value isn't a valid ULID, an error message will be generated. - - ```proto - message MyString { - // must be a valid ULID - string value = 1 [(buf.validate.field).string.ulid = true]; - } - ``` - """ - protobuf_fqn: builtins.bool - """`protobuf_fqn` specifies that the field value must be a valid fully-qualified - Protobuf name as defined by the [Protobuf Language Specification](https://protobuf.com/docs/language-spec). - - A fully-qualified Protobuf name is a dot-separated list of Protobuf identifiers, - where each identifier starts with a letter or underscore and is followed by zero or - more letters, underscores, or digits. - - Examples: "buf.validate", "google.protobuf.Timestamp", "my_package.MyMessage". - - Note: historically, fully-qualified Protobuf names were represented with a leading - dot (for example, ".buf.validate.StringRules"). Modern Protobuf does not use the - leading dot, and most fully-qualified names are represented without it. Use - `protobuf_dot_fqn` if a leading dot is required. - - If the field value isn't a valid fully-qualified Protobuf name, an error message - will be generated. - - ```proto - message MyString { - // value must be a valid fully-qualified Protobuf name - string value = 1 [(buf.validate.field).string.protobuf_fqn = true]; - } - ``` - """ - protobuf_dot_fqn: builtins.bool - """`protobuf_dot_fqn` specifies that the field value must be a valid fully-qualified - Protobuf name with a leading dot, as defined by the - [Protobuf Language Specification](https://protobuf.com/docs/language-spec). - - A fully-qualified Protobuf name with a leading dot is a dot followed by a - dot-separated list of Protobuf identifiers, where each identifier starts with a - letter or underscore and is followed by zero or more letters, underscores, or - digits. - - Examples: ".buf.validate", ".google.protobuf.Timestamp", ".my_package.MyMessage". - - Note: this is the historical representation of fully-qualified Protobuf names, - where a leading dot denotes an absolute reference. Modern Protobuf does not use - the leading dot, and most fully-qualified names are represented without it. Most - users will want to use `protobuf_fqn` instead. - - If the field value isn't a valid fully-qualified Protobuf name with a leading dot, - an error message will be generated. - - ```proto - message MyString { - // value must be a valid fully-qualified Protobuf name with a leading dot - string value = 1 [(buf.validate.field).string.protobuf_dot_fqn = true]; - } - ``` - """ - well_known_regex: global___KnownRegex.ValueType - """`well_known_regex` specifies a common well-known pattern - defined as a regex. If the field value doesn't match the well-known - regex, an error message will be generated. - - ```proto - message MyString { - // must be a valid HTTP header value - string value = 1 [(buf.validate.field).string.well_known_regex = KNOWN_REGEX_HTTP_HEADER_VALUE]; - } - ``` - - #### KnownRegex - - `well_known_regex` contains some well-known patterns. - - | Name | Number | Description | - |-------------------------------|--------|-------------------------------------------| - | KNOWN_REGEX_UNSPECIFIED | 0 | | - | KNOWN_REGEX_HTTP_HEADER_NAME | 1 | HTTP header name as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2) | - | KNOWN_REGEX_HTTP_HEADER_VALUE | 2 | HTTP header value as defined by [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4) | - """ - strict: builtins.bool - """This applies to regexes `HTTP_HEADER_NAME` and `HTTP_HEADER_VALUE` to - enable strict header validation. By default, this is true, and HTTP header - validations are [RFC-compliant](https://datatracker.ietf.org/doc/html/rfc7230#section-3). Setting to false will enable looser - validations that only disallow `\\r\\n\\0` characters, which can be used to - bypass header matching rules. - - ```proto - message MyString { - // The field `value` must have be a valid HTTP headers, but not enforced with strict rules. - string value = 1 [(buf.validate.field).string.strict = false]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """`not_in` specifies that the field value cannot be equal to any - of the specified values. If the field value is one of the specified values, - an error message will be generated. - ```proto - message MyString { - // value must not be in list ["orange", "grape"] - string value = 1 [(buf.validate.field).string.not_in = "orange", (buf.validate.field).string.not_in = "grape"]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyString { - string value = 1 [ - (buf.validate.field).string.example = "hello", - (buf.validate.field).string.example = "world" - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.str | None = ..., - len: builtins.int | None = ..., - min_len: builtins.int | None = ..., - max_len: builtins.int | None = ..., - len_bytes: builtins.int | None = ..., - min_bytes: builtins.int | None = ..., - max_bytes: builtins.int | None = ..., - pattern: builtins.str | None = ..., - prefix: builtins.str | None = ..., - suffix: builtins.str | None = ..., - contains: builtins.str | None = ..., - not_contains: builtins.str | None = ..., - not_in: collections.abc.Iterable[builtins.str] | None = ..., - email: builtins.bool | None = ..., - hostname: builtins.bool | None = ..., - ip: builtins.bool | None = ..., - ipv4: builtins.bool | None = ..., - ipv6: builtins.bool | None = ..., - uri: builtins.bool | None = ..., - uri_ref: builtins.bool | None = ..., - address: builtins.bool | None = ..., - uuid: builtins.bool | None = ..., - tuuid: builtins.bool | None = ..., - ip_with_prefixlen: builtins.bool | None = ..., - ipv4_with_prefixlen: builtins.bool | None = ..., - ipv6_with_prefixlen: builtins.bool | None = ..., - ip_prefix: builtins.bool | None = ..., - ipv4_prefix: builtins.bool | None = ..., - ipv6_prefix: builtins.bool | None = ..., - host_and_port: builtins.bool | None = ..., - ulid: builtins.bool | None = ..., - protobuf_fqn: builtins.bool | None = ..., - protobuf_dot_fqn: builtins.bool | None = ..., - well_known_regex: global___KnownRegex.ValueType | None = ..., - strict: builtins.bool | None = ..., - example: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["address", b"address", "const", b"const", "contains", b"contains", "email", b"email", "host_and_port", b"host_and_port", "hostname", b"hostname", "ip", b"ip", "ip_prefix", b"ip_prefix", "ip_with_prefixlen", b"ip_with_prefixlen", "ipv4", b"ipv4", "ipv4_prefix", b"ipv4_prefix", "ipv4_with_prefixlen", b"ipv4_with_prefixlen", "ipv6", b"ipv6", "ipv6_prefix", b"ipv6_prefix", "ipv6_with_prefixlen", b"ipv6_with_prefixlen", "len", b"len", "len_bytes", b"len_bytes", "max_bytes", b"max_bytes", "max_len", b"max_len", "min_bytes", b"min_bytes", "min_len", b"min_len", "not_contains", b"not_contains", "pattern", b"pattern", "prefix", b"prefix", "protobuf_dot_fqn", b"protobuf_dot_fqn", "protobuf_fqn", b"protobuf_fqn", "strict", b"strict", "suffix", b"suffix", "tuuid", b"tuuid", "ulid", b"ulid", "uri", b"uri", "uri_ref", b"uri_ref", "uuid", b"uuid", "well_known", b"well_known", "well_known_regex", b"well_known_regex"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["address", b"address", "const", b"const", "contains", b"contains", "email", b"email", "example", b"example", "host_and_port", b"host_and_port", "hostname", b"hostname", "in", b"in", "ip", b"ip", "ip_prefix", b"ip_prefix", "ip_with_prefixlen", b"ip_with_prefixlen", "ipv4", b"ipv4", "ipv4_prefix", b"ipv4_prefix", "ipv4_with_prefixlen", b"ipv4_with_prefixlen", "ipv6", b"ipv6", "ipv6_prefix", b"ipv6_prefix", "ipv6_with_prefixlen", b"ipv6_with_prefixlen", "len", b"len", "len_bytes", b"len_bytes", "max_bytes", b"max_bytes", "max_len", b"max_len", "min_bytes", b"min_bytes", "min_len", b"min_len", "not_contains", b"not_contains", "not_in", b"not_in", "pattern", b"pattern", "prefix", b"prefix", "protobuf_dot_fqn", b"protobuf_dot_fqn", "protobuf_fqn", b"protobuf_fqn", "strict", b"strict", "suffix", b"suffix", "tuuid", b"tuuid", "ulid", b"ulid", "uri", b"uri", "uri_ref", b"uri_ref", "uuid", b"uuid", "well_known", b"well_known", "well_known_regex", b"well_known_regex"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["well_known", b"well_known"]) -> typing.Literal["email", "hostname", "ip", "ipv4", "ipv6", "uri", "uri_ref", "address", "uuid", "tuuid", "ip_with_prefixlen", "ipv4_with_prefixlen", "ipv6_with_prefixlen", "ip_prefix", "ipv4_prefix", "ipv6_prefix", "host_and_port", "ulid", "protobuf_fqn", "protobuf_dot_fqn", "well_known_regex"] | None: ... - -global___StringRules = StringRules - -@typing.final -class BytesRules(google.protobuf.message.Message): - """BytesRules describe the rules applied to `bytes` values. These rules - may also be applied to the `google.protobuf.BytesValue` Well-Known-Type. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LEN_FIELD_NUMBER: builtins.int - MIN_LEN_FIELD_NUMBER: builtins.int - MAX_LEN_FIELD_NUMBER: builtins.int - PATTERN_FIELD_NUMBER: builtins.int - PREFIX_FIELD_NUMBER: builtins.int - SUFFIX_FIELD_NUMBER: builtins.int - CONTAINS_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - IP_FIELD_NUMBER: builtins.int - IPV4_FIELD_NUMBER: builtins.int - IPV6_FIELD_NUMBER: builtins.int - UUID_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.bytes - """`const` requires the field value to exactly match the specified bytes - value. If the field value doesn't match, an error message is generated. - - ```proto - message MyBytes { - // must be "\\x01\\x02\\x03\\x04" - bytes value = 1 [(buf.validate.field).bytes.const = "\\x01\\x02\\x03\\x04"]; - } - ``` - """ - len: builtins.int - """`len` requires the field value to have the specified length in bytes. - If the field value doesn't match, an error message is generated. - - ```proto - message MyBytes { - // value length must be 4 bytes. - optional bytes value = 1 [(buf.validate.field).bytes.len = 4]; - } - ``` - """ - min_len: builtins.int - """`min_len` requires the field value to have at least the specified minimum - length in bytes. - If the field value doesn't meet the requirement, an error message is generated. - - ```proto - message MyBytes { - // value length must be at least 2 bytes. - optional bytes value = 1 [(buf.validate.field).bytes.min_len = 2]; - } - ``` - """ - max_len: builtins.int - """`max_len` requires the field value to have at most the specified maximum - length in bytes. - If the field value exceeds the requirement, an error message is generated. - - ```proto - message MyBytes { - // must be at most 6 bytes. - optional bytes value = 1 [(buf.validate.field).bytes.max_len = 6]; - } - ``` - """ - pattern: builtins.str - """`pattern` requires the field value to match the specified regular - expression ([RE2 syntax](https://github.com/google/re2/wiki/Syntax)). - The value of the field must be valid UTF-8 or validation will fail with a - runtime error. - If the field value doesn't match the pattern, an error message is generated. - - ```proto - message MyBytes { - // value must match regex pattern "^[a-zA-Z0-9]+$". - optional bytes value = 1 [(buf.validate.field).bytes.pattern = "^[a-zA-Z0-9]+$"]; - } - ``` - """ - prefix: builtins.bytes - """`prefix` requires the field value to have the specified bytes at the - beginning of the string. - If the field value doesn't meet the requirement, an error message is generated. - - ```proto - message MyBytes { - // value does not have prefix \\x01\\x02 - optional bytes value = 1 [(buf.validate.field).bytes.prefix = "\\x01\\x02"]; - } - ``` - """ - suffix: builtins.bytes - """`suffix` requires the field value to have the specified bytes at the end - of the string. - If the field value doesn't meet the requirement, an error message is generated. - - ```proto - message MyBytes { - // value does not have suffix \\x03\\x04 - optional bytes value = 1 [(buf.validate.field).bytes.suffix = "\\x03\\x04"]; - } - ``` - """ - contains: builtins.bytes - """`contains` requires the field value to have the specified bytes anywhere in - the string. - If the field value doesn't meet the requirement, an error message is generated. - - ```proto - message MyBytes { - // value does not contain \\x02\\x03 - optional bytes value = 1 [(buf.validate.field).bytes.contains = "\\x02\\x03"]; - } - ``` - """ - ip: builtins.bool - """`ip` ensures that the field `value` is a valid IP address (v4 or v6) in byte format. - If the field value doesn't meet this rule, an error message is generated. - - ```proto - message MyBytes { - // must be a valid IP address - optional bytes value = 1 [(buf.validate.field).bytes.ip = true]; - } - ``` - """ - ipv4: builtins.bool - """`ipv4` ensures that the field `value` is a valid IPv4 address in byte format. - If the field value doesn't meet this rule, an error message is generated. - - ```proto - message MyBytes { - // must be a valid IPv4 address - optional bytes value = 1 [(buf.validate.field).bytes.ipv4 = true]; - } - ``` - """ - ipv6: builtins.bool - """`ipv6` ensures that the field `value` is a valid IPv6 address in byte format. - If the field value doesn't meet this rule, an error message is generated. - ```proto - message MyBytes { - // must be a valid IPv6 address - optional bytes value = 1 [(buf.validate.field).bytes.ipv6 = true]; - } - ``` - """ - uuid: builtins.bool - """`uuid` ensures that the field value encodes 128-bit UUID data as defined - by [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.2). - The field must contain exactly 16 bytes representing the UUID. If the - field value isn't a valid UUID, an error message will be generated. - - ```proto - message MyBytes { - // must be a valid UUID - optional bytes value = 1 [(buf.validate.field).bytes.uuid = true]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: - """`not_in` requires the field value to be not equal to any of the specified - values. - If the field value matches any of the specified values, an error message is - generated. - - ```proto - message MyBytes { - // value must not in ["\\x01\\x02", "\\x02\\x03", "\\x03\\x04"] - optional bytes value = 1 [(buf.validate.field).bytes.not_in = {"\\x01\\x02", "\\x02\\x03", "\\x03\\x04"}]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyBytes { - bytes value = 1 [ - (buf.validate.field).bytes.example = "\\x01\\x02", - (buf.validate.field).bytes.example = "\\x02\\x03" - ]; - } - ``` - """ - - def __init__( - self, - *, - const: builtins.bytes | None = ..., - len: builtins.int | None = ..., - min_len: builtins.int | None = ..., - max_len: builtins.int | None = ..., - pattern: builtins.str | None = ..., - prefix: builtins.bytes | None = ..., - suffix: builtins.bytes | None = ..., - contains: builtins.bytes | None = ..., - not_in: collections.abc.Iterable[builtins.bytes] | None = ..., - ip: builtins.bool | None = ..., - ipv4: builtins.bool | None = ..., - ipv6: builtins.bool | None = ..., - uuid: builtins.bool | None = ..., - example: collections.abc.Iterable[builtins.bytes] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "contains", b"contains", "ip", b"ip", "ipv4", b"ipv4", "ipv6", b"ipv6", "len", b"len", "max_len", b"max_len", "min_len", b"min_len", "pattern", b"pattern", "prefix", b"prefix", "suffix", b"suffix", "uuid", b"uuid", "well_known", b"well_known"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "contains", b"contains", "example", b"example", "in", b"in", "ip", b"ip", "ipv4", b"ipv4", "ipv6", b"ipv6", "len", b"len", "max_len", b"max_len", "min_len", b"min_len", "not_in", b"not_in", "pattern", b"pattern", "prefix", b"prefix", "suffix", b"suffix", "uuid", b"uuid", "well_known", b"well_known"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["well_known", b"well_known"]) -> typing.Literal["ip", "ipv4", "ipv6", "uuid"] | None: ... - -global___BytesRules = BytesRules - -@typing.final -class EnumRules(google.protobuf.message.Message): - """EnumRules describe the rules applied to `enum` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - DEFINED_ONLY_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - const: builtins.int - """`const` requires the field value to exactly match the specified enum value. - If the field value doesn't match, an error message is generated. - - ```proto - enum MyEnum { - MY_ENUM_UNSPECIFIED = 0; - MY_ENUM_VALUE1 = 1; - MY_ENUM_VALUE2 = 2; - } - - message MyMessage { - // The field `value` must be exactly MY_ENUM_VALUE1. - MyEnum value = 1 [(buf.validate.field).enum.const = 1]; - } - ``` - """ - defined_only: builtins.bool - """`defined_only` requires the field value to be one of the defined values for - this enum, failing on any undefined value. - - ```proto - enum MyEnum { - MY_ENUM_UNSPECIFIED = 0; - MY_ENUM_VALUE1 = 1; - MY_ENUM_VALUE2 = 2; - } - - message MyMessage { - // The field `value` must be a defined value of MyEnum. - MyEnum value = 1 [(buf.validate.field).enum.defined_only = true]; - } - ``` - """ - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`not_in` requires the field value to be not equal to any of the - specified enum values. If the field value matches one of the specified - values, an error message is generated. - - ```proto - enum MyEnum { - MY_ENUM_UNSPECIFIED = 0; - MY_ENUM_VALUE1 = 1; - MY_ENUM_VALUE2 = 2; - } - - message MyMessage { - // The field `value` must not be equal to any of the specified values. - MyEnum value = 1 [(buf.validate.field).enum = { not_in: [1, 2]}]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - enum MyEnum { - MY_ENUM_UNSPECIFIED = 0; - MY_ENUM_VALUE1 = 1; - MY_ENUM_VALUE2 = 2; - } - - message MyMessage { - (buf.validate.field).enum.example = 1, - (buf.validate.field).enum.example = 2 - } - ``` - """ - - def __init__( - self, - *, - const: builtins.int | None = ..., - defined_only: builtins.bool | None = ..., - not_in: collections.abc.Iterable[builtins.int] | None = ..., - example: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "defined_only", b"defined_only"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "defined_only", b"defined_only", "example", b"example", "in", b"in", "not_in", b"not_in"]) -> None: ... - -global___EnumRules = EnumRules - -@typing.final -class RepeatedRules(google.protobuf.message.Message): - """RepeatedRules describe the rules applied to `repeated` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - MIN_ITEMS_FIELD_NUMBER: builtins.int - MAX_ITEMS_FIELD_NUMBER: builtins.int - UNIQUE_FIELD_NUMBER: builtins.int - ITEMS_FIELD_NUMBER: builtins.int - min_items: builtins.int - """`min_items` requires that this field must contain at least the specified - minimum number of items. - - Note that `min_items = 1` is equivalent to setting a field as `required`. - - ```proto - message MyRepeated { - // value must contain at least 2 items - repeated string value = 1 [(buf.validate.field).repeated.min_items = 2]; - } - ``` - """ - max_items: builtins.int - """`max_items` denotes that this field must not exceed a - certain number of items as the upper limit. If the field contains more - items than specified, an error message will be generated, requiring the - field to maintain no more than the specified number of items. - - ```proto - message MyRepeated { - // value must contain no more than 3 item(s) - repeated string value = 1 [(buf.validate.field).repeated.max_items = 3]; - } - ``` - """ - unique: builtins.bool - """`unique` indicates that all elements in this field must - be unique. This rule is strictly applicable to scalar and enum - types, with message types not being supported. - - ```proto - message MyRepeated { - // repeated value must contain unique items - repeated string value = 1 [(buf.validate.field).repeated.unique = true]; - } - ``` - """ - @property - def items(self) -> global___FieldRules: - """`items` details the rules to be applied to each item - in the field. Even for repeated message fields, validation is executed - against each item unless `ignore` is specified. - - ```proto - message MyRepeated { - // The items in the field `value` must follow the specified rules. - repeated string value = 1 [(buf.validate.field).repeated.items = { - string: { - min_len: 3 - max_len: 10 - } - }]; - } - ``` - - Note that the `required` rule does not apply. Repeated items - cannot be unset. - """ - - def __init__( - self, - *, - min_items: builtins.int | None = ..., - max_items: builtins.int | None = ..., - unique: builtins.bool | None = ..., - items: global___FieldRules | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["items", b"items", "max_items", b"max_items", "min_items", b"min_items", "unique", b"unique"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["items", b"items", "max_items", b"max_items", "min_items", b"min_items", "unique", b"unique"]) -> None: ... - -global___RepeatedRules = RepeatedRules - -@typing.final -class MapRules(google.protobuf.message.Message): - """MapRules describe the rules applied to `map` values.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - MIN_PAIRS_FIELD_NUMBER: builtins.int - MAX_PAIRS_FIELD_NUMBER: builtins.int - KEYS_FIELD_NUMBER: builtins.int - VALUES_FIELD_NUMBER: builtins.int - min_pairs: builtins.int - """Specifies the minimum number of key-value pairs allowed. If the field has - fewer key-value pairs than specified, an error message is generated. - - ```proto - message MyMap { - // The field `value` must have at least 2 key-value pairs. - map value = 1 [(buf.validate.field).map.min_pairs = 2]; - } - ``` - """ - max_pairs: builtins.int - """Specifies the maximum number of key-value pairs allowed. If the field has - more key-value pairs than specified, an error message is generated. - - ```proto - message MyMap { - // The field `value` must have at most 3 key-value pairs. - map value = 1 [(buf.validate.field).map.max_pairs = 3]; - } - ``` - """ - @property - def keys(self) -> global___FieldRules: - """Specifies the rules to be applied to each key in the field. - - ```proto - message MyMap { - // The keys in the field `value` must follow the specified rules. - map value = 1 [(buf.validate.field).map.keys = { - string: { - min_len: 3 - max_len: 10 - } - }]; - } - ``` - - Note that the `required` rule does not apply. Map keys cannot be unset. - """ - - @property - def values(self) -> global___FieldRules: - """Specifies the rules to be applied to the value of each key in the - field. Message values will still have their validations evaluated unless - `ignore` is specified. - - ```proto - message MyMap { - // The values in the field `value` must follow the specified rules. - map value = 1 [(buf.validate.field).map.values = { - string: { - min_len: 5 - max_len: 20 - } - }]; - } - ``` - Note that the `required` rule does not apply. Map values cannot be unset. - """ - - def __init__( - self, - *, - min_pairs: builtins.int | None = ..., - max_pairs: builtins.int | None = ..., - keys: global___FieldRules | None = ..., - values: global___FieldRules | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["keys", b"keys", "max_pairs", b"max_pairs", "min_pairs", b"min_pairs", "values", b"values"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["keys", b"keys", "max_pairs", b"max_pairs", "min_pairs", b"min_pairs", "values", b"values"]) -> None: ... - -global___MapRules = MapRules - -@typing.final -class AnyRules(google.protobuf.message.Message): - """AnyRules describe rules applied exclusively to the `google.protobuf.Any` well-known type.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """`not_in` requires the field's type_url to be not equal to any of the specified values. If it matches any of the specified values, an error message is generated. - - ```proto - message MyAny { - // The `value` field must not have a `type_url` equal to any of the specified values. - google.protobuf.Any value = 1 [(buf.validate.field).any = { - not_in: ["type.googleapis.com/ForbiddenType1", "type.googleapis.com/ForbiddenType2"] - }]; - } - ``` - """ - - def __init__( - self, - *, - not_in: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["in", b"in", "not_in", b"not_in"]) -> None: ... - -global___AnyRules = AnyRules - -@typing.final -class DurationRules(google.protobuf.message.Message): - """DurationRules describe the rules applied exclusively to the `google.protobuf.Duration` well-known type.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - @property - def const(self) -> google.protobuf.duration_pb2.Duration: - """`const` dictates that the field must match the specified value of the `google.protobuf.Duration` type exactly. - If the field's value deviates from the specified value, an error message - will be generated. - - ```proto - message MyDuration { - // value must equal 5s - google.protobuf.Duration value = 1 [(buf.validate.field).duration.const = "5s"]; - } - ``` - """ - - @property - def lt(self) -> google.protobuf.duration_pb2.Duration: - """`lt` stipulates that the field must be less than the specified value of the `google.protobuf.Duration` type, - exclusive. If the field's value is greater than or equal to the specified - value, an error message will be generated. - - ```proto - message MyDuration { - // must be less than 5s - google.protobuf.Duration value = 1 [(buf.validate.field).duration.lt = "5s"]; - } - ``` - """ - - @property - def lte(self) -> google.protobuf.duration_pb2.Duration: - """`lte` indicates that the field must be less than or equal to the specified - value of the `google.protobuf.Duration` type, inclusive. If the field's value is greater than the specified value, - an error message will be generated. - - ```proto - message MyDuration { - // must be less than or equal to 10s - google.protobuf.Duration value = 1 [(buf.validate.field).duration.lte = "10s"]; - } - ``` - """ - - @property - def gt(self) -> google.protobuf.duration_pb2.Duration: - """`gt` requires the duration field value to be greater than the specified - value (exclusive). If the value of `gt` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyDuration { - // duration must be greater than 5s [duration.gt] - google.protobuf.Duration value = 1 [(buf.validate.field).duration.gt = { seconds: 5 }]; - - // duration must be greater than 5s and less than 10s [duration.gt_lt] - google.protobuf.Duration another_value = 2 [(buf.validate.field).duration = { gt: { seconds: 5 }, lt: { seconds: 10 } }]; - - // duration must be greater than 10s or less than 5s [duration.gt_lt_exclusive] - google.protobuf.Duration other_value = 3 [(buf.validate.field).duration = { gt: { seconds: 10 }, lt: { seconds: 5 } }]; - } - ``` - """ - - @property - def gte(self) -> google.protobuf.duration_pb2.Duration: - """`gte` requires the duration field value to be greater than or equal to the - specified value (exclusive). If the value of `gte` is larger than a - specified `lt` or `lte`, the range is reversed, and the field value must - be outside the specified range. If the field value doesn't meet the - required conditions, an error message is generated. - - ```proto - message MyDuration { - // duration must be greater than or equal to 5s [duration.gte] - google.protobuf.Duration value = 1 [(buf.validate.field).duration.gte = { seconds: 5 }]; - - // duration must be greater than or equal to 5s and less than 10s [duration.gte_lt] - google.protobuf.Duration another_value = 2 [(buf.validate.field).duration = { gte: { seconds: 5 }, lt: { seconds: 10 } }]; - - // duration must be greater than or equal to 10s or less than 5s [duration.gte_lt_exclusive] - google.protobuf.Duration other_value = 3 [(buf.validate.field).duration = { gte: { seconds: 10 }, lt: { seconds: 5 } }]; - } - ``` - """ - - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.duration_pb2.Duration]: - """`not_in` denotes that the field must not be equal to - any of the specified values of the `google.protobuf.Duration` type. - If the field's value matches any of these values, an error message will be - generated. - - ```proto - message MyDuration { - // value must not be in list [1s, 2s, 3s] - google.protobuf.Duration value = 1 [(buf.validate.field).duration.not_in = ["1s", "2s", "3s"]]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.duration_pb2.Duration]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyDuration { - google.protobuf.Duration value = 1 [ - (buf.validate.field).duration.example = { seconds: 1 }, - (buf.validate.field).duration.example = { seconds: 2 }, - ]; - } - ``` - """ - - def __init__( - self, - *, - const: google.protobuf.duration_pb2.Duration | None = ..., - lt: google.protobuf.duration_pb2.Duration | None = ..., - lte: google.protobuf.duration_pb2.Duration | None = ..., - gt: google.protobuf.duration_pb2.Duration | None = ..., - gte: google.protobuf.duration_pb2.Duration | None = ..., - not_in: collections.abc.Iterable[google.protobuf.duration_pb2.Duration] | None = ..., - example: collections.abc.Iterable[google.protobuf.duration_pb2.Duration] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gte", b"gte", "in", b"in", "less_than", b"less_than", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte"] | None: ... - -global___DurationRules = DurationRules - -@typing.final -class FieldMaskRules(google.protobuf.message.Message): - """FieldMaskRules describe rules applied exclusively to the `google.protobuf.FieldMask` well-known type.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - NOT_IN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - @property - def const(self) -> google.protobuf.field_mask_pb2.FieldMask: - """`const` dictates that the field must match the specified value of the `google.protobuf.FieldMask` type exactly. - If the field's value deviates from the specified value, an error message - will be generated. - - ```proto - message MyFieldMask { - // value must equal ["a"] - google.protobuf.FieldMask value = 1 [(buf.validate.field).field_mask.const = { - paths: ["a"] - }]; - } - ``` - """ - - @property - def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """`not_in` requires the field value to not contain paths matching specified - values or their subpaths. - If any of the field value's paths matches the rule, - an error message is generated. - See: https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask - - ```proto - message MyFieldMask { - // The `value` FieldMask shall not contain paths listed in `not_in`. - google.protobuf.FieldMask value = 1 [(buf.validate.field).field_mask = { - not_in: ["forbidden", "immutable", "c.a"] - }]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.field_mask_pb2.FieldMask]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyFieldMask { - google.protobuf.FieldMask value = 1 [ - (buf.validate.field).field_mask.example = { paths: ["a", "b"] }, - (buf.validate.field).field_mask.example = { paths: ["c.a", "d"] }, - ]; - } - ``` - """ - - def __init__( - self, - *, - const: google.protobuf.field_mask_pb2.FieldMask | None = ..., - not_in: collections.abc.Iterable[builtins.str] | None = ..., - example: collections.abc.Iterable[google.protobuf.field_mask_pb2.FieldMask] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "in", b"in", "not_in", b"not_in"]) -> None: ... - -global___FieldMaskRules = FieldMaskRules - -@typing.final -class TimestampRules(google.protobuf.message.Message): - """TimestampRules describe the rules applied exclusively to the `google.protobuf.Timestamp` well-known type.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONST_FIELD_NUMBER: builtins.int - LT_FIELD_NUMBER: builtins.int - LTE_FIELD_NUMBER: builtins.int - LT_NOW_FIELD_NUMBER: builtins.int - GT_FIELD_NUMBER: builtins.int - GTE_FIELD_NUMBER: builtins.int - GT_NOW_FIELD_NUMBER: builtins.int - WITHIN_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - lt_now: builtins.bool - """`lt_now` specifies that this field, of the `google.protobuf.Timestamp` type, must be less than the current time. `lt_now` can only be used with the `within` rule. - - ```proto - message MyTimestamp { - // must be less than now - google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.lt_now = true]; - } - ``` - """ - gt_now: builtins.bool - """`gt_now` specifies that this field, of the `google.protobuf.Timestamp` type, must be greater than the current time. `gt_now` can only be used with the `within` rule. - - ```proto - message MyTimestamp { - // must be greater than now - google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.gt_now = true]; - } - ``` - """ - @property - def const(self) -> google.protobuf.timestamp_pb2.Timestamp: - """`const` dictates that this field, of the `google.protobuf.Timestamp` type, must exactly match the specified value. If the field value doesn't correspond to the specified timestamp, an error message will be generated. - - ```proto - message MyTimestamp { - // value must equal 2023-05-03T10:00:00Z - google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.const = {seconds: 1727998800}]; - } - ``` - """ - - @property - def lt(self) -> google.protobuf.timestamp_pb2.Timestamp: - """`lt` requires the timestamp 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 MyTimestamp { - // timestamp must be less than '2023-01-01T00:00:00Z' [timestamp.lt] - google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.lt = { seconds: 1672444800 }]; - } - ``` - """ - - @property - def lte(self) -> google.protobuf.timestamp_pb2.Timestamp: - """`lte` requires the timestamp field value to be less than or equal to the specified value (field <= value). If the field value doesn't meet the required conditions, an error message is generated. - - ```proto - message MyTimestamp { - // timestamp must be less than or equal to '2023-05-14T00:00:00Z' [timestamp.lte] - google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.lte = { seconds: 1678867200 }]; - } - ``` - """ - - @property - def gt(self) -> google.protobuf.timestamp_pb2.Timestamp: - """`gt` requires the timestamp field value to be greater than the specified - value (exclusive). If the value of `gt` is larger than a specified `lt` - or `lte`, the range is reversed, and the field value must be outside the - specified range. If the field value doesn't meet the required conditions, - an error message is generated. - - ```proto - message MyTimestamp { - // timestamp must be greater than '2023-01-01T00:00:00Z' [timestamp.gt] - google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.gt = { seconds: 1672444800 }]; - - // timestamp must be greater than '2023-01-01T00:00:00Z' and less than '2023-01-02T00:00:00Z' [timestamp.gt_lt] - google.protobuf.Timestamp another_value = 2 [(buf.validate.field).timestamp = { gt: { seconds: 1672444800 }, lt: { seconds: 1672531200 } }]; - - // timestamp must be greater than '2023-01-02T00:00:00Z' or less than '2023-01-01T00:00:00Z' [timestamp.gt_lt_exclusive] - google.protobuf.Timestamp other_value = 3 [(buf.validate.field).timestamp = { gt: { seconds: 1672531200 }, lt: { seconds: 1672444800 } }]; - } - ``` - """ - - @property - def gte(self) -> google.protobuf.timestamp_pb2.Timestamp: - """`gte` requires the timestamp field value to be greater than or equal to the - specified value (exclusive). If the value of `gte` is larger than a - specified `lt` or `lte`, the range is reversed, and the field value - must be outside the specified range. If the field value doesn't meet - the required conditions, an error message is generated. - - ```proto - message MyTimestamp { - // timestamp must be greater than or equal to '2023-01-01T00:00:00Z' [timestamp.gte] - google.protobuf.Timestamp value = 1 [(buf.validate.field).timestamp.gte = { seconds: 1672444800 }]; - - // timestamp must be greater than or equal to '2023-01-01T00:00:00Z' and less than '2023-01-02T00:00:00Z' [timestamp.gte_lt] - google.protobuf.Timestamp another_value = 2 [(buf.validate.field).timestamp = { gte: { seconds: 1672444800 }, lt: { seconds: 1672531200 } }]; - - // timestamp must be greater than or equal to '2023-01-02T00:00:00Z' or less than '2023-01-01T00:00:00Z' [timestamp.gte_lt_exclusive] - google.protobuf.Timestamp other_value = 3 [(buf.validate.field).timestamp = { gte: { seconds: 1672531200 }, lt: { seconds: 1672444800 } }]; - } - ``` - """ - - @property - def within(self) -> google.protobuf.duration_pb2.Duration: - """`within` specifies that this field, of the `google.protobuf.Timestamp` type, must be within the specified duration of the current time. If the field value isn't within the duration, an error message is generated. - - ```proto - message MyTimestamp { - // must be within 1 hour of now - google.protobuf.Timestamp created_at = 1 [(buf.validate.field).timestamp.within = {seconds: 3600}]; - } - ``` - """ - - @property - def example(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]: - """`example` specifies values that the field may have. These values SHOULD - conform to other rules. `example` values will not impact validation - but may be used as helpful guidance on how to populate the given field. - - ```proto - message MyTimestamp { - google.protobuf.Timestamp value = 1 [ - (buf.validate.field).timestamp.example = { seconds: 1672444800 }, - (buf.validate.field).timestamp.example = { seconds: 1672531200 }, - ]; - } - ``` - """ - - def __init__( - self, - *, - const: google.protobuf.timestamp_pb2.Timestamp | None = ..., - lt: google.protobuf.timestamp_pb2.Timestamp | None = ..., - lte: google.protobuf.timestamp_pb2.Timestamp | None = ..., - lt_now: builtins.bool | None = ..., - gt: google.protobuf.timestamp_pb2.Timestamp | None = ..., - gte: google.protobuf.timestamp_pb2.Timestamp | None = ..., - gt_now: builtins.bool | None = ..., - within: google.protobuf.duration_pb2.Duration | None = ..., - example: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["const", b"const", "greater_than", b"greater_than", "gt", b"gt", "gt_now", b"gt_now", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lt_now", b"lt_now", "lte", b"lte", "within", b"within"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["const", b"const", "example", b"example", "greater_than", b"greater_than", "gt", b"gt", "gt_now", b"gt_now", "gte", b"gte", "less_than", b"less_than", "lt", b"lt", "lt_now", b"lt_now", "lte", b"lte", "within", b"within"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["greater_than", b"greater_than"]) -> typing.Literal["gt", "gte", "gt_now"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["less_than", b"less_than"]) -> typing.Literal["lt", "lte", "lt_now"] | None: ... - -global___TimestampRules = TimestampRules - -@typing.final -class Violations(google.protobuf.message.Message): - """`Violations` is a collection of `Violation` messages. This message type is returned by - Protovalidate when a proto message fails to meet the requirements set by the `Rule` validation rules. - Each individual violation is represented by a `Violation` message. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VIOLATIONS_FIELD_NUMBER: builtins.int - @property - def violations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Violation]: - """`violations` is a repeated field that contains all the `Violation` messages corresponding to the violations detected.""" - - def __init__( - self, - *, - violations: collections.abc.Iterable[global___Violation] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["violations", b"violations"]) -> None: ... - -global___Violations = Violations - -@typing.final -class Violation(google.protobuf.message.Message): - """`Violation` represents a single instance where a validation rule, expressed - as a `Rule`, was not met. It provides information about the field that - caused the violation, the specific rule that wasn't fulfilled, and a - human-readable error message. - - For example, consider the following message: - - ```proto - message User { - int32 age = 1 [(buf.validate.field).cel = { - id: "user.age", - expression: "this < 18 ? 'User must be at least 18 years old' : ''", - }]; - } - ``` - - It could produce the following violation: - - ```json - { - "ruleId": "user.age", - "message": "User must be at least 18 years old", - "field": { - "elements": [ - { - "fieldNumber": 1, - "fieldName": "age", - "fieldType": "TYPE_INT32" - } - ] - }, - "rule": { - "elements": [ - { - "fieldNumber": 23, - "fieldName": "cel", - "fieldType": "TYPE_MESSAGE", - "index": "0" - } - ] - } - } - ``` - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FIELD_FIELD_NUMBER: builtins.int - RULE_FIELD_NUMBER: builtins.int - RULE_ID_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - FOR_KEY_FIELD_NUMBER: builtins.int - rule_id: builtins.str - """`rule_id` is the unique identifier of the `Rule` that was not fulfilled. - This is the same `id` that was specified in the `Rule` message, allowing easy tracing of which rule was violated. - """ - message: builtins.str - """`message` is a human-readable error message that describes the nature of the violation. - This can be the default error message from the violated `Rule`, or it can be a custom message that gives more context about the violation. - """ - for_key: builtins.bool - """`for_key` indicates whether the violation was caused by a map key, rather than a value.""" - @property - def field(self) -> global___FieldPath: - """`field` is a machine-readable path to the field that failed validation. - This could be a nested field, in which case the path will include all the parent fields leading to the actual field that caused the violation. - - For example, consider the following message: - - ```proto - message Message { - bool a = 1 [(buf.validate.field).required = true]; - } - ``` - - It could produce the following violation: - - ```textproto - violation { - field { element { field_number: 1, field_name: "a", field_type: 8 } } - ... - } - ``` - """ - - @property - def rule(self) -> global___FieldPath: - """`rule` is a machine-readable path that points to the specific rule that failed validation. - This will be a nested field starting from the FieldRules of the field that failed validation. - For custom rules, this will provide the path of the rule, e.g. `cel[0]`. - - For example, consider the following message: - - ```proto - message Message { - bool a = 1 [(buf.validate.field).required = true]; - bool b = 2 [(buf.validate.field).cel = { - id: "custom_rule", - expression: "!this ? 'b must be true': ''" - }] - } - ``` - - It could produce the following violations: - - ```textproto - violation { - rule { element { field_number: 25, field_name: "required", field_type: 8 } } - ... - } - violation { - rule { element { field_number: 23, field_name: "cel", field_type: 11, index: 0 } } - ... - } - ``` - """ - - def __init__( - self, - *, - field: global___FieldPath | None = ..., - rule: global___FieldPath | None = ..., - rule_id: builtins.str | None = ..., - message: builtins.str | None = ..., - for_key: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["field", b"field", "for_key", b"for_key", "message", b"message", "rule", b"rule", "rule_id", b"rule_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["field", b"field", "for_key", b"for_key", "message", b"message", "rule", b"rule", "rule_id", b"rule_id"]) -> None: ... - -global___Violation = Violation - -@typing.final -class FieldPath(google.protobuf.message.Message): - """`FieldPath` provides a path to a nested protobuf field. - - This message provides enough information to render a dotted field path even without protobuf descriptors. - It also provides enough information to resolve a nested field through unknown wire data. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - ELEMENTS_FIELD_NUMBER: builtins.int - @property - def elements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FieldPathElement]: - """`elements` contains each element of the path, starting from the root and recursing downward.""" - - def __init__( - self, - *, - elements: collections.abc.Iterable[global___FieldPathElement] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["elements", b"elements"]) -> None: ... - -global___FieldPath = FieldPath - -@typing.final -class FieldPathElement(google.protobuf.message.Message): - """`FieldPathElement` provides enough information to nest through a single protobuf field. - - If the selected field is a map or repeated field, the `subscript` value selects a specific element from it. - A path that refers to a value nested under a map key or repeated field index will have a `subscript` value. - The `field_type` field allows unambiguous resolution of a field even if descriptors are not available. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FIELD_NUMBER_FIELD_NUMBER: builtins.int - FIELD_NAME_FIELD_NUMBER: builtins.int - FIELD_TYPE_FIELD_NUMBER: builtins.int - KEY_TYPE_FIELD_NUMBER: builtins.int - VALUE_TYPE_FIELD_NUMBER: builtins.int - INDEX_FIELD_NUMBER: builtins.int - BOOL_KEY_FIELD_NUMBER: builtins.int - INT_KEY_FIELD_NUMBER: builtins.int - UINT_KEY_FIELD_NUMBER: builtins.int - STRING_KEY_FIELD_NUMBER: builtins.int - field_number: builtins.int - """`field_number` is the field number this path element refers to.""" - field_name: builtins.str - """`field_name` contains the field name this path element refers to. - This can be used to display a human-readable path even if the field number is unknown. - """ - field_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType - """`field_type` specifies the type of this field. When using reflection, this value is not needed. - - This value is provided to make it possible to traverse unknown fields through wire data. - When traversing wire data, be mindful of both packed[1] and delimited[2] encoding schemes. - - [1]: https://protobuf.dev/programming-guides/encoding/#packed - [2]: https://protobuf.dev/programming-guides/encoding/#groups - - N.B.: Although groups are deprecated, the corresponding delimited encoding scheme is not, and - can be explicitly used in Protocol Buffers 2023 Edition. - """ - key_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType - """`key_type` specifies the map key type of this field. This value is useful when traversing - unknown fields through wire data: specifically, it allows handling the differences between - different integer encodings. - """ - value_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType - """`value_type` specifies map value type of this field. This is useful if you want to display a - value inside unknown fields through wire data. - """ - index: builtins.int - """`index` specifies a 0-based index into a repeated field.""" - bool_key: builtins.bool - """`bool_key` specifies a map key of type bool.""" - int_key: builtins.int - """`int_key` specifies a map key of type int32, int64, sint32, sint64, sfixed32 or sfixed64.""" - uint_key: builtins.int - """`uint_key` specifies a map key of type uint32, uint64, fixed32 or fixed64.""" - string_key: builtins.str - """`string_key` specifies a map key of type string.""" - def __init__( - self, - *, - field_number: builtins.int | None = ..., - field_name: builtins.str | None = ..., - field_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType | None = ..., - key_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType | None = ..., - value_type: google.protobuf.descriptor_pb2.FieldDescriptorProto.Type.ValueType | None = ..., - index: builtins.int | None = ..., - bool_key: builtins.bool | None = ..., - int_key: builtins.int | None = ..., - uint_key: builtins.int | None = ..., - string_key: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["bool_key", b"bool_key", "field_name", b"field_name", "field_number", b"field_number", "field_type", b"field_type", "index", b"index", "int_key", b"int_key", "key_type", b"key_type", "string_key", b"string_key", "subscript", b"subscript", "uint_key", b"uint_key", "value_type", b"value_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["bool_key", b"bool_key", "field_name", b"field_name", "field_number", b"field_number", "field_type", b"field_type", "index", b"index", "int_key", b"int_key", "key_type", b"key_type", "string_key", b"string_key", "subscript", b"subscript", "uint_key", b"uint_key", "value_type", b"value_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["subscript", b"subscript"]) -> typing.Literal["index", "bool_key", "int_key", "uint_key", "string_key"] | None: ... - -global___FieldPathElement = FieldPathElement - -MESSAGE_FIELD_NUMBER: builtins.int -ONEOF_FIELD_NUMBER: builtins.int -FIELD_FIELD_NUMBER: builtins.int -PREDEFINED_FIELD_NUMBER: builtins.int -message: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, global___MessageRules] -"""Rules specify the validations to be performed on this message. By default, -no validation is performed against a message. -""" -oneof: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.OneofOptions, global___OneofRules] -"""Rules specify the validations to be performed on this oneof. By default, -no validation is performed against a oneof. -""" -field: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, global___FieldRules] -"""Rules specify the validations to be performed on this field. By default, -no validation is performed against a field. -""" -predefined: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, global___PredefinedRules] -"""Specifies predefined rules. When extending a standard rule message, -this adds additional CEL expressions that apply when the extension is used. - -```proto -extend buf.validate.Int32Rules { - bool is_zero [(buf.validate.predefined).cel = { - id: "int32.is_zero", - message: "must be zero", - expression: "!rule || this == 0", - }]; -} - -message Foo { - int32 reserved = 1 [(buf.validate.field).int32.(is_zero) = true]; -} -``` -""" diff --git a/python/lib/buf/validate/validate_pb2_grpc.py b/python/lib/buf/validate/validate_pb2_grpc.py deleted file mode 100644 index 2daafffeb..000000000 --- a/python/lib/buf/validate/validate_pb2_grpc.py +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - diff --git a/python/lib/buf/validate/validate_pb2_grpc.pyi b/python/lib/buf/validate/validate_pb2_grpc.pyi deleted file mode 100644 index e5cd9f9f4..000000000 --- a/python/lib/buf/validate/validate_pb2_grpc.pyi +++ /dev/null @@ -1,45 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -[Protovalidate](https://protovalidate.com/) is the semantic validation library for Protobuf. -It provides standard annotations to validate common rules on messages and fields, as well as the ability to use [CEL](https://cel.dev) to write custom rules. -It's the next generation of [protoc-gen-validate](https://github.com/bufbuild/protoc-gen-validate). - -This package provides the options, messages, and enums that power Protovalidate. -Apply its options to messages, fields, and oneofs in your Protobuf schemas to add validation rules: - -```proto -message User { - string id = 1 [(buf.validate.field).string.uuid = true]; - string first_name = 2 [(buf.validate.field).string.max_len = 64]; - string last_name = 3 [(buf.validate.field).string.max_len = 64]; - - option (buf.validate.message).cel = { - id: "first_name_requires_last_name" - message: "last_name must be present if first_name is present" - expression: "!has(this.first_name) || has(this.last_name)" - }; -} -``` - -These rules are enforced at runtime by language-specific libraries. -See the [developer quickstart](https://protovalidate.com/quickstart/) to get started, or go directly to the runtime library for your language: -[Go](https://github.com/bufbuild/protovalidate-go), -[JavaScript/TypeScript](https://github.com/bufbuild/protovalidate-es), -[Java](https://github.com/bufbuild/protovalidate-java), -[Python](https://github.com/bufbuild/protovalidate-python), -or [C++](https://github.com/bufbuild/protovalidate-cc). -""" - -import abc -import collections.abc -import grpc -import grpc.aio -import typing - -_T = typing.TypeVar("_T") - -class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... - -class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] - ... diff --git a/python/lib/sift/api_keys/v2/api_keys_pb2.py b/python/lib/sift/api_keys/v2/api_keys_pb2.py index c8a6c2197..d4f26f191 100644 --- a/python/lib/sift/api_keys/v2/api_keys_pb2.py +++ b/python/lib/sift/api_keys/v2/api_keys_pb2.py @@ -12,7 +12,6 @@ _sym_db = _symbol_database.Default() -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 @@ -20,7 +19,7 @@ from sift.common.type.v1 import organization_pb2 as sift_dot_common_dot_type_dot_v1_dot_organization__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/api_keys/v2/api_keys.proto\x12\x10sift.api_keys.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a&sift/common/type/v1/organization.proto\"\xd8\x01\n\x06\x41piKey\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x42\n\x0c\x63reated_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x1c\n\x07user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x06userId\"U\n\x14\x43reateApiKeyResponse\x12=\n\x07\x61pi_key\x18\x01 \x01(\x0b\x32\x1f.sift.api_keys.v2.CreatedApiKeyB\x03\xe0\x41\x02R\x06\x61piKey\"\xf6\x01\n\rCreatedApiKey\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x15\n\x03key\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x03key\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x1c\n\x07user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x06userId\"\x97\x01\n\x12ListApiKeysRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"|\n\x13ListApiKeysResponse\x12\x38\n\x08\x61pi_keys\x18\x01 \x03(\x0b\x32\x18.sift.api_keys.v2.ApiKeyB\x03\xe0\x41\x02R\x07\x61piKeys\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"T\n\x13\x43reateApiKeyRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12$\n\x07user_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x06userId\"@\n\x13\x44\x65leteApiKeyRequest\x12)\n\napi_key_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x08\x61piKeyId\"\x16\n\x14\x44\x65leteApiKeyResponse\"\x1b\n\x19\x41piKeyOrganizationRequest\"c\n\x1a\x41piKeyOrganizationResponse\x12\x45\n\x0corganization\x18\x01 \x01(\x0b\x32!.sift.common.type.v1.OrganizationR\x0corganization2\xee\x06\n\rApiKeyService\x12\xcf\x01\n\x0bListApiKeys\x12$.sift.api_keys.v2.ListApiKeysRequest\x1a%.sift.api_keys.v2.ListApiKeysResponse\"s\x92\x41X\x12\x0bListApiKeys\x1a,Retrieves API keys using an optional filter.*\x1b\x41piKeyService_ListApiKeysV2\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v2/api-keys\x12\xbe\x01\n\x0c\x43reateApiKey\x12%.sift.api_keys.v2.CreateApiKeyRequest\x1a&.sift.api_keys.v2.CreateApiKeyResponse\"_\x92\x41\x41\x12\x0c\x43reateApiKey\x1a\x13\x43reates an API key.*\x1c\x41piKeyService_CreateApiKeyV2\x82\xd3\xe4\x93\x02\x15\"\x10/api/v2/api-keys:\x01*\x12\xc8\x01\n\x0c\x44\x65leteApiKey\x12%.sift.api_keys.v2.DeleteApiKeyRequest\x1a&.sift.api_keys.v2.DeleteApiKeyResponse\"i\x92\x41\x41\x12\x0c\x44\x65leteApiKey\x1a\x13\x44\x65letes an API key.*\x1c\x41piKeyService_DeleteApiKeyV2\x82\xd3\xe4\x93\x02\x1f*\x1d/api/v2/api-keys/{api_key_id}\x12\xfe\x01\n\x12\x41piKeyOrganization\x12+.sift.api_keys.v2.ApiKeyOrganizationRequest\x1a,.sift.api_keys.v2.ApiKeyOrganizationResponse\"\x8c\x01\x92\x41\x64\x12\x12\x41piKeyOrganization\x1a*Retrieves the organization for an API key.*\"ApiKeyService_ApiKeyOrganizationV2\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v2/api-keys/organizationB\x98\x01\n\x14\x63om.sift.api_keys.v2B\x0c\x41piKeysProtoP\x01\xa2\x02\x03SAX\xaa\x02\x0fSift.ApiKeys.V2\xca\x02\x0fSift\\ApiKeys\\V2\xe2\x02\x1bSift\\ApiKeys\\V2\\GPBMetadata\xea\x02\x11Sift::ApiKeys::V2\x92\x41\x13\x12\x11\n\x0f\x41PI Key Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/api_keys/v2/api_keys.proto\x12\x10sift.api_keys.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a&sift/common/type/v1/organization.proto\"\xd8\x01\n\x06\x41piKey\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x42\n\x0c\x63reated_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x1c\n\x07user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x06userId\"U\n\x14\x43reateApiKeyResponse\x12=\n\x07\x61pi_key\x18\x01 \x01(\x0b\x32\x1f.sift.api_keys.v2.CreatedApiKeyB\x03\xe0\x41\x02R\x06\x61piKey\"\xf6\x01\n\rCreatedApiKey\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x15\n\x03key\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x03key\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x1c\n\x07user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x06userId\"\x97\x01\n\x12ListApiKeysRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"|\n\x13ListApiKeysResponse\x12\x38\n\x08\x61pi_keys\x18\x01 \x03(\x0b\x32\x18.sift.api_keys.v2.ApiKeyB\x03\xe0\x41\x02R\x07\x61piKeys\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"L\n\x13\x43reateApiKeyRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x1c\n\x07user_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06userId\"8\n\x13\x44\x65leteApiKeyRequest\x12!\n\napi_key_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x61piKeyId\"\x16\n\x14\x44\x65leteApiKeyResponse\"\x1b\n\x19\x41piKeyOrganizationRequest\"c\n\x1a\x41piKeyOrganizationResponse\x12\x45\n\x0corganization\x18\x01 \x01(\x0b\x32!.sift.common.type.v1.OrganizationR\x0corganization2\xee\x06\n\rApiKeyService\x12\xcf\x01\n\x0bListApiKeys\x12$.sift.api_keys.v2.ListApiKeysRequest\x1a%.sift.api_keys.v2.ListApiKeysResponse\"s\x92\x41X\x12\x0bListApiKeys\x1a,Retrieves API keys using an optional filter.*\x1b\x41piKeyService_ListApiKeysV2\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v2/api-keys\x12\xbe\x01\n\x0c\x43reateApiKey\x12%.sift.api_keys.v2.CreateApiKeyRequest\x1a&.sift.api_keys.v2.CreateApiKeyResponse\"_\x92\x41\x41\x12\x0c\x43reateApiKey\x1a\x13\x43reates an API key.*\x1c\x41piKeyService_CreateApiKeyV2\x82\xd3\xe4\x93\x02\x15\"\x10/api/v2/api-keys:\x01*\x12\xc8\x01\n\x0c\x44\x65leteApiKey\x12%.sift.api_keys.v2.DeleteApiKeyRequest\x1a&.sift.api_keys.v2.DeleteApiKeyResponse\"i\x92\x41\x41\x12\x0c\x44\x65leteApiKey\x1a\x13\x44\x65letes an API key.*\x1c\x41piKeyService_DeleteApiKeyV2\x82\xd3\xe4\x93\x02\x1f*\x1d/api/v2/api-keys/{api_key_id}\x12\xfe\x01\n\x12\x41piKeyOrganization\x12+.sift.api_keys.v2.ApiKeyOrganizationRequest\x1a,.sift.api_keys.v2.ApiKeyOrganizationResponse\"\x8c\x01\x92\x41\x64\x12\x12\x41piKeyOrganization\x1a*Retrieves the organization for an API key.*\"ApiKeyService_ApiKeyOrganizationV2\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v2/api-keys/organizationB\x98\x01\n\x14\x63om.sift.api_keys.v2B\x0c\x41piKeysProtoP\x01\xa2\x02\x03SAX\xaa\x02\x0fSift.ApiKeys.V2\xca\x02\x0fSift\\ApiKeys\\V2\xe2\x02\x1bSift\\ApiKeys\\V2\\GPBMetadata\xea\x02\x11Sift::ApiKeys::V2\x92\x41\x13\x12\x11\n\x0f\x41PI Key Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -67,9 +66,9 @@ _globals['_CREATEAPIKEYREQUEST'].fields_by_name['name']._loaded_options = None _globals['_CREATEAPIKEYREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_CREATEAPIKEYREQUEST'].fields_by_name['user_id']._loaded_options = None - _globals['_CREATEAPIKEYREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_CREATEAPIKEYREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002' _globals['_DELETEAPIKEYREQUEST'].fields_by_name['api_key_id']._loaded_options = None - _globals['_DELETEAPIKEYREQUEST'].fields_by_name['api_key_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_DELETEAPIKEYREQUEST'].fields_by_name['api_key_id']._serialized_options = b'\340A\002' _globals['_APIKEYSERVICE'].methods_by_name['ListApiKeys']._loaded_options = None _globals['_APIKEYSERVICE'].methods_by_name['ListApiKeys']._serialized_options = b'\222AX\022\013ListApiKeys\032,Retrieves API keys using an optional filter.*\033ApiKeyService_ListApiKeysV2\202\323\344\223\002\022\022\020/api/v2/api-keys' _globals['_APIKEYSERVICE'].methods_by_name['CreateApiKey']._loaded_options = None @@ -78,26 +77,26 @@ _globals['_APIKEYSERVICE'].methods_by_name['DeleteApiKey']._serialized_options = b'\222AA\022\014DeleteApiKey\032\023Deletes an API key.*\034ApiKeyService_DeleteApiKeyV2\202\323\344\223\002\037*\035/api/v2/api-keys/{api_key_id}' _globals['_APIKEYSERVICE'].methods_by_name['ApiKeyOrganization']._loaded_options = None _globals['_APIKEYSERVICE'].methods_by_name['ApiKeyOrganization']._serialized_options = b'\222Ad\022\022ApiKeyOrganization\032*Retrieves the organization for an API key.*\"ApiKeyService_ApiKeyOrganizationV2\202\323\344\223\002\037\022\035/api/v2/api-keys/organization' - _globals['_APIKEY']._serialized_start=267 - _globals['_APIKEY']._serialized_end=483 - _globals['_CREATEAPIKEYRESPONSE']._serialized_start=485 - _globals['_CREATEAPIKEYRESPONSE']._serialized_end=570 - _globals['_CREATEDAPIKEY']._serialized_start=573 - _globals['_CREATEDAPIKEY']._serialized_end=819 - _globals['_LISTAPIKEYSREQUEST']._serialized_start=822 - _globals['_LISTAPIKEYSREQUEST']._serialized_end=973 - _globals['_LISTAPIKEYSRESPONSE']._serialized_start=975 - _globals['_LISTAPIKEYSRESPONSE']._serialized_end=1099 - _globals['_CREATEAPIKEYREQUEST']._serialized_start=1101 - _globals['_CREATEAPIKEYREQUEST']._serialized_end=1185 - _globals['_DELETEAPIKEYREQUEST']._serialized_start=1187 - _globals['_DELETEAPIKEYREQUEST']._serialized_end=1251 - _globals['_DELETEAPIKEYRESPONSE']._serialized_start=1253 - _globals['_DELETEAPIKEYRESPONSE']._serialized_end=1275 - _globals['_APIKEYORGANIZATIONREQUEST']._serialized_start=1277 - _globals['_APIKEYORGANIZATIONREQUEST']._serialized_end=1304 - _globals['_APIKEYORGANIZATIONRESPONSE']._serialized_start=1306 - _globals['_APIKEYORGANIZATIONRESPONSE']._serialized_end=1405 - _globals['_APIKEYSERVICE']._serialized_start=1408 - _globals['_APIKEYSERVICE']._serialized_end=2286 + _globals['_APIKEY']._serialized_start=238 + _globals['_APIKEY']._serialized_end=454 + _globals['_CREATEAPIKEYRESPONSE']._serialized_start=456 + _globals['_CREATEAPIKEYRESPONSE']._serialized_end=541 + _globals['_CREATEDAPIKEY']._serialized_start=544 + _globals['_CREATEDAPIKEY']._serialized_end=790 + _globals['_LISTAPIKEYSREQUEST']._serialized_start=793 + _globals['_LISTAPIKEYSREQUEST']._serialized_end=944 + _globals['_LISTAPIKEYSRESPONSE']._serialized_start=946 + _globals['_LISTAPIKEYSRESPONSE']._serialized_end=1070 + _globals['_CREATEAPIKEYREQUEST']._serialized_start=1072 + _globals['_CREATEAPIKEYREQUEST']._serialized_end=1148 + _globals['_DELETEAPIKEYREQUEST']._serialized_start=1150 + _globals['_DELETEAPIKEYREQUEST']._serialized_end=1206 + _globals['_DELETEAPIKEYRESPONSE']._serialized_start=1208 + _globals['_DELETEAPIKEYRESPONSE']._serialized_end=1230 + _globals['_APIKEYORGANIZATIONREQUEST']._serialized_start=1232 + _globals['_APIKEYORGANIZATIONREQUEST']._serialized_end=1259 + _globals['_APIKEYORGANIZATIONRESPONSE']._serialized_start=1261 + _globals['_APIKEYORGANIZATIONRESPONSE']._serialized_end=1360 + _globals['_APIKEYSERVICE']._serialized_start=1363 + _globals['_APIKEYSERVICE']._serialized_end=2241 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/common/type/v1/calculated_channels_pb2.py b/python/lib/sift/common/type/v1/calculated_channels_pb2.py index d32715405..c1c05d469 100644 --- a/python/lib/sift/common/type/v1/calculated_channels_pb2.py +++ b/python/lib/sift/common/type/v1/calculated_channels_pb2.py @@ -12,11 +12,10 @@ _sym_db = _symbol_database.Default() -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-sift/common/type/v1/calculated_channels.proto\x12\x13sift.common.type.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/api/field_behavior.proto\"m\n\x1b\x43\x61lculatedChannelDependency\x12N\n\x1d\x63\x61lculated_channel_version_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x1a\x63\x61lculatedChannelVersionIdB\xa1\x01\n\x17\x63om.sift.common.type.v1B\x17\x43\x61lculatedChannelsProtoP\x01\xa2\x02\x03SCT\xaa\x02\x13Sift.Common.Type.V1\xca\x02\x13Sift\\Common\\Type\\V1\xe2\x02\x1fSift\\Common\\Type\\V1\\GPBMetadata\xea\x02\x16Sift::Common::Type::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-sift/common/type/v1/calculated_channels.proto\x12\x13sift.common.type.v1\x1a\x1fgoogle/api/field_behavior.proto\"e\n\x1b\x43\x61lculatedChannelDependency\x12\x46\n\x1d\x63\x61lculated_channel_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x1a\x63\x61lculatedChannelVersionIdB\xa1\x01\n\x17\x63om.sift.common.type.v1B\x17\x43\x61lculatedChannelsProtoP\x01\xa2\x02\x03SCT\xaa\x02\x13Sift.Common.Type.V1\xca\x02\x13Sift\\Common\\Type\\V1\xe2\x02\x1fSift\\Common\\Type\\V1\\GPBMetadata\xea\x02\x16Sift::Common::Type::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,7 +24,7 @@ _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\027com.sift.common.type.v1B\027CalculatedChannelsProtoP\001\242\002\003SCT\252\002\023Sift.Common.Type.V1\312\002\023Sift\\Common\\Type\\V1\342\002\037Sift\\Common\\Type\\V1\\GPBMetadata\352\002\026Sift::Common::Type::V1' _globals['_CALCULATEDCHANNELDEPENDENCY'].fields_by_name['calculated_channel_version_id']._loaded_options = None - _globals['_CALCULATEDCHANNELDEPENDENCY'].fields_by_name['calculated_channel_version_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' - _globals['_CALCULATEDCHANNELDEPENDENCY']._serialized_start=132 - _globals['_CALCULATEDCHANNELDEPENDENCY']._serialized_end=241 + _globals['_CALCULATEDCHANNELDEPENDENCY'].fields_by_name['calculated_channel_version_id']._serialized_options = b'\340A\002' + _globals['_CALCULATEDCHANNELDEPENDENCY']._serialized_start=103 + _globals['_CALCULATEDCHANNELDEPENDENCY']._serialized_end=204 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/common/type/v1/user_defined_functions_pb2.py b/python/lib/sift/common/type/v1/user_defined_functions_pb2.py index 80bfdc2a2..756792aaf 100644 --- a/python/lib/sift/common/type/v1/user_defined_functions_pb2.py +++ b/python/lib/sift/common/type/v1/user_defined_functions_pb2.py @@ -12,13 +12,12 @@ _sym_db = _symbol_database.Default() -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0sift/common/type/v1/user_defined_functions.proto\x12\x13sift.common.type.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xbc\x08\n\x13UserDefinedFunction\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12I\n\rarchived_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\x0c\x61rchivedDate\x88\x01\x01\x12K\n user_defined_function_version_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x1cuserDefinedFunctionVersionId\x12\x1d\n\x07version\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07version\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12*\n\x0e\x63hange_message\x18\x08 \x01(\tB\x03\xe0\x41\x02R\rchangeMessage\x12\"\n\nuser_notes\x18\t \x01(\tB\x03\xe0\x41\x02R\tuserNotes\x12#\n\nexpression\x18\n \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x0c \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\x12\\\n\x14\x66unction_output_type\x18\r \x01(\x0e\x32%.sift.common.type.v1.FunctionDataTypeB\x03\xe0\x41\x01R\x12\x66unctionOutputType\x12\x61\n\x15\x66unction_dependencies\x18\x0b \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x02R\x14\x66unctionDependencies\x12\x42\n\x0c\x63reated_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x10 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x11 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12@\n\x08metadata\x18\x12 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x13 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\x10\n\x0e_archived_date\"i\n\x12\x46unctionDependency\x12S\n user_defined_function_version_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x1cuserDefinedFunctionVersionId\"\x9e\x01\n\rFunctionInput\x12#\n\nidentifier\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nidentifier\x12G\n\tdata_type\x18\x02 \x01(\x0e\x32%.sift.common.type.v1.FunctionDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x1f\n\x08\x63onstant\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02R\x08\x63onstant*\x92\x01\n\x10\x46unctionDataType\x12\"\n\x1e\x46UNCTION_DATA_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x46UNCTION_DATA_TYPE_NUMERIC\x10\x01\x12\x1d\n\x19\x46UNCTION_DATA_TYPE_STRING\x10\x02\x12\x1b\n\x17\x46UNCTION_DATA_TYPE_BOOL\x10\x03\x42\xa3\x01\n\x17\x63om.sift.common.type.v1B\x19UserDefinedFunctionsProtoP\x01\xa2\x02\x03SCT\xaa\x02\x13Sift.Common.Type.V1\xca\x02\x13Sift\\Common\\Type\\V1\xe2\x02\x1fSift\\Common\\Type\\V1\\GPBMetadata\xea\x02\x16Sift::Common::Type::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0sift/common/type/v1/user_defined_functions.proto\x12\x13sift.common.type.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xbc\x08\n\x13UserDefinedFunction\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12I\n\rarchived_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\x0c\x61rchivedDate\x88\x01\x01\x12K\n user_defined_function_version_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x1cuserDefinedFunctionVersionId\x12\x1d\n\x07version\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07version\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12*\n\x0e\x63hange_message\x18\x08 \x01(\tB\x03\xe0\x41\x02R\rchangeMessage\x12\"\n\nuser_notes\x18\t \x01(\tB\x03\xe0\x41\x02R\tuserNotes\x12#\n\nexpression\x18\n \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x0c \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\x12\\\n\x14\x66unction_output_type\x18\r \x01(\x0e\x32%.sift.common.type.v1.FunctionDataTypeB\x03\xe0\x41\x01R\x12\x66unctionOutputType\x12\x61\n\x15\x66unction_dependencies\x18\x0b \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x02R\x14\x66unctionDependencies\x12\x42\n\x0c\x63reated_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x10 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x11 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12@\n\x08metadata\x18\x12 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x13 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\x10\n\x0e_archived_date\"a\n\x12\x46unctionDependency\x12K\n user_defined_function_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x1cuserDefinedFunctionVersionId\"\x9e\x01\n\rFunctionInput\x12#\n\nidentifier\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nidentifier\x12G\n\tdata_type\x18\x02 \x01(\x0e\x32%.sift.common.type.v1.FunctionDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType\x12\x1f\n\x08\x63onstant\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02R\x08\x63onstant*\x92\x01\n\x10\x46unctionDataType\x12\"\n\x1e\x46UNCTION_DATA_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x46UNCTION_DATA_TYPE_NUMERIC\x10\x01\x12\x1d\n\x19\x46UNCTION_DATA_TYPE_STRING\x10\x02\x12\x1b\n\x17\x46UNCTION_DATA_TYPE_BOOL\x10\x03\x42\xa3\x01\n\x17\x63om.sift.common.type.v1B\x19UserDefinedFunctionsProtoP\x01\xa2\x02\x03SCT\xaa\x02\x13Sift.Common.Type.V1\xca\x02\x13Sift\\Common\\Type\\V1\xe2\x02\x1fSift\\Common\\Type\\V1\\GPBMetadata\xea\x02\x16Sift::Common::Type::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -63,19 +62,19 @@ _globals['_USERDEFINEDFUNCTION'].fields_by_name['is_archived']._loaded_options = None _globals['_USERDEFINEDFUNCTION'].fields_by_name['is_archived']._serialized_options = b'\340A\002' _globals['_FUNCTIONDEPENDENCY'].fields_by_name['user_defined_function_version_id']._loaded_options = None - _globals['_FUNCTIONDEPENDENCY'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_FUNCTIONDEPENDENCY'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\002' _globals['_FUNCTIONINPUT'].fields_by_name['identifier']._loaded_options = None _globals['_FUNCTIONINPUT'].fields_by_name['identifier']._serialized_options = b'\340A\002' _globals['_FUNCTIONINPUT'].fields_by_name['data_type']._loaded_options = None _globals['_FUNCTIONINPUT'].fields_by_name['data_type']._serialized_options = b'\340A\002' _globals['_FUNCTIONINPUT'].fields_by_name['constant']._loaded_options = None _globals['_FUNCTIONINPUT'].fields_by_name['constant']._serialized_options = b'\340A\002' - _globals['_FUNCTIONDATATYPE']._serialized_start=1557 - _globals['_FUNCTIONDATATYPE']._serialized_end=1703 - _globals['_USERDEFINEDFUNCTION']._serialized_start=202 - _globals['_USERDEFINEDFUNCTION']._serialized_end=1286 - _globals['_FUNCTIONDEPENDENCY']._serialized_start=1288 - _globals['_FUNCTIONDEPENDENCY']._serialized_end=1393 - _globals['_FUNCTIONINPUT']._serialized_start=1396 - _globals['_FUNCTIONINPUT']._serialized_end=1554 + _globals['_FUNCTIONDATATYPE']._serialized_start=1520 + _globals['_FUNCTIONDATATYPE']._serialized_end=1666 + _globals['_USERDEFINEDFUNCTION']._serialized_start=173 + _globals['_USERDEFINEDFUNCTION']._serialized_end=1257 + _globals['_FUNCTIONDEPENDENCY']._serialized_start=1259 + _globals['_FUNCTIONDEPENDENCY']._serialized_end=1356 + _globals['_FUNCTIONINPUT']._serialized_start=1359 + _globals['_FUNCTIONINPUT']._serialized_end=1517 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/runs/v2/runs_pb2.py b/python/lib/sift/runs/v2/runs_pb2.py index 055570e8d..7f5f6d6b5 100644 --- a/python/lib/sift/runs/v2/runs_pb2.py +++ b/python/lib/sift/runs/v2/runs_pb2.py @@ -12,7 +12,6 @@ _sym_db = _symbol_database.Default() -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 @@ -22,7 +21,7 @@ from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/runs/v2/runs.proto\x12\x0csift.runs.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x9d\x08\n\x03Run\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x42\n\x0c\x63reated_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x43\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\tstartTime\x88\x01\x01\x12\x41\n\tstop_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x08stopTime\x88\x01\x01\x12 \n\tis_pinned\x18\t \x01(\x08\x42\x03\xe0\x41\x02R\x08isPinned\x12\x17\n\x04name\x18\n \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x0c \x03(\tB\x03\xe0\x41\x02R\x04tags\x12/\n\x11\x64\x65\x66\x61ult_report_id\x18\r \x01(\tB\x03\xe0\x41\x01R\x0f\x64\x65\x66\x61ultReportId\x12\'\n\nclient_key\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\tclientKey\x88\x01\x01\x12@\n\x08metadata\x18\x0f \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12 \n\tasset_ids\x18\x10 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12I\n\rarchived_date\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12\x1e\n\x08is_adhoc\x18\x12 \x01(\x08\x42\x03\xe0\x41\x02R\x07isAdhoc\x12$\n\x0bis_archived\x18\x13 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\x12?\n\x08\x64uration\x18\x14 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01H\x04R\x08\x64uration\x88\x01\x01\x42\r\n\x0b_start_timeB\x0c\n\n_stop_timeB\r\n\x0b_client_keyB\x10\n\x0e_archived_dateB\x0b\n\t_duration\"3\n\rGetRunRequest\x12\"\n\x06run_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x05runId\":\n\x0eGetRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\x94\x01\n\x0fListRunsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"f\n\x10ListRunsResponse\x12*\n\x04runs\x18\x01 \x03(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x04runs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xb3\x05\n\x10\x43reateRunRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x03 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12>\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\tstartTime\x12<\n\tstop_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x08stopTime\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\xf0\x01\n\nclient_key\x18\x08 \x01(\tB\xcb\x01\xe0\x41\x01\xbaH\xc4\x01\xba\x01\xc0\x01\n\x12invalid_client_key\x12jclient key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\x1a>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')H\x00R\tclientKey\x88\x01\x01\x12@\n\x08metadata\x18\t \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12<\n\x15\x63reate_default_report\x18\n \x01(\x08\x42\x03\xe0\x41\x01H\x01R\x13\x63reateDefaultReport\x88\x01\x01\x42\r\n\x0b_client_keyB\x18\n\x16_create_default_report\"=\n\x11\x43reateRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\xe3\x04\n\x15\x43reateAdhocRunRequest\x12\x1e\n\x04name\x18\x01 \x01(\tB\n\xe0\x41\x02\xbaH\x04r\x02\x10\x01R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12<\n\tstop_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08stopTime\x12(\n\tasset_ids\x18\x05 \x03(\tB\x0b\xe0\x41\x02\xbaH\x05\x92\x01\x02\x08\x01R\x08\x61ssetIds\x12\x17\n\x04tags\x18\x06 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12@\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12\xf0\x01\n\nclient_key\x18\x08 \x01(\tB\xcb\x01\xe0\x41\x01\xbaH\xc4\x01\xba\x01\xc0\x01\n\x12invalid_client_key\x12jclient key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\x1a>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')H\x00R\tclientKey\x88\x01\x01\x42\r\n\x0b_client_key\"B\n\x16\x43reateAdhocRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\xe2\x04\n\x10UpdateRunRequest\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\x12\xa3\x04\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\xe5\x03\xe0\x41\x02\xbaH\xde\x03\xba\x01\xda\x03\n\x17invalid_field_mask_path\x12\xdc\x01\x66ield mask path must be in [\'name\', \'description\', \'start_time\', \'startTime\', \'stop_time\', \'stopTime\', \'is_pinned\', \'isPinned\', \'client_key\', \'clientKey\', \'tags\', \'metadata\', \'archived_date\', \'is_archived\', \'isArchived\']\x1a\xdf\x01this.paths.all(path, path in [\'name\', \'description\', \'start_time\', \'startTime\', \'stop_time\', \'stopTime\', \'is_pinned\', \'isPinned\', \'client_key\', \'clientKey\', \'tags\', \'metadata\', \'archived_date\', \'is_archived\', \'isArchived\'])R\nupdateMask\"=\n\x11UpdateRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"y\n-CreateAutomaticRunAssociationForAssetsRequest\x12\"\n\x06run_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x05runId\x12$\n\x0b\x61sset_names\x18\x02 \x03(\tB\x03\xe0\x41\x02R\nassetNames\"0\n.CreateAutomaticRunAssociationForAssetsResponse\"6\n\x10\x44\x65leteRunRequest\x12\"\n\x06run_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x05runId\"\x13\n\x11\x44\x65leteRunResponse\"4\n\x0eStopRunRequest\x12\"\n\x06run_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x05runId\"\x11\n\x0fStopRunResponse2\xdd\r\n\nRunService\x12~\n\x06GetRun\x12\x1b.sift.runs.v2.GetRunRequest\x1a\x1c.sift.runs.v2.GetRunResponse\"9\x92\x41\x19\x12\x06GetRun\x1a\x0fRetrieve a run.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v2/runs/{run_id}\x12\x95\x01\n\x08ListRuns\x12\x1d.sift.runs.v2.ListRunsRequest\x1a\x1e.sift.runs.v2.ListRunsResponse\"J\x92\x41\x33\x12\x08ListRuns\x1a\'Retrieve runs using an optional filter.\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v2/runs\x12\x82\x01\n\tCreateRun\x12\x1e.sift.runs.v2.CreateRunRequest\x1a\x1f.sift.runs.v2.CreateRunResponse\"4\x92\x41\x1a\x12\tCreateRun\x1a\rCreate a run.\x82\xd3\xe4\x93\x02\x11\"\x0c/api/v2/runs:\x01*\x12\xa3\x01\n\x0e\x43reateAdhocRun\x12#.sift.runs.v2.CreateAdhocRunRequest\x1a$.sift.runs.v2.CreateAdhocRunResponse\"F\x92\x41&\x12\x0e\x43reateAdhocRun\x1a\x14\x43reate an adhoc run.\x82\xd3\xe4\x93\x02\x17\"\x12/api/v2/runs:adhoc:\x01*\x12\xc7\x01\n\tUpdateRun\x12\x1e.sift.runs.v2.UpdateRunRequest\x1a\x1f.sift.runs.v2.UpdateRunResponse\"y\x92\x41_\x12\tUpdateRun\x1aRUpdates an existing run using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x11\x32\x0c/api/v2/runs:\x01*\x12\xc6\x01\n\tDeleteRun\x12\x1e.sift.runs.v2.DeleteRunRequest\x1a\x1f.sift.runs.v2.DeleteRunResponse\"x\x88\x02\x01\x92\x41U\x12\tDeleteRun\x1aHPermanently delete a given run. Deprecated: Use update with is_archived.\x82\xd3\xe4\x93\x02\x17*\x15/api/v2/runs/{run_id}\x12\xe6\x01\n\x07StopRun\x12\x1c.sift.runs.v2.StopRunRequest\x1a\x1d.sift.runs.v2.StopRunResponse\"\x9d\x01\x92\x41~\x12\x07StopRun\x1asSet the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`.\x82\xd3\xe4\x93\x02\x16\x32\x11/api/v2/runs:stop:\x01*\x12\xcc\x02\n&CreateAutomaticRunAssociationForAssets\x12;.sift.runs.v2.CreateAutomaticRunAssociationForAssetsRequest\x1a<.sift.runs.v2.CreateAutomaticRunAssociationForAssetsResponse\"\xa6\x01\x92\x41W\x12&CreateAutomaticRunAssociationForAssets\x1a-Associates a list of assets with a given run.\x82\xd3\xe4\x93\x02\x46\"A/api/v2/runs/{run_id}:create-automatic-run-association-for-assets:\x01*\x1a\xc0\x01\x92\x41\xbc\x01\x12@Service to programmatically interact with [runs](/glossary#run).\x1ax\n\x1eRead more about what runs are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053B\x81\x01\n\x10\x63om.sift.runs.v2B\tRunsProtoP\x01\xa2\x02\x03SRX\xaa\x02\x0cSift.Runs.V2\xca\x02\x0cSift\\Runs\\V2\xe2\x02\x18Sift\\Runs\\V2\\GPBMetadata\xea\x02\x0eSift::Runs::V2\x92\x41\x0f\x12\r\n\x0bRun serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/runs/v2/runs.proto\x12\x0csift.runs.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\x9d\x08\n\x03Run\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x42\n\x0c\x63reated_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x43\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\tstartTime\x88\x01\x01\x12\x41\n\tstop_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x08stopTime\x88\x01\x01\x12 \n\tis_pinned\x18\t \x01(\x08\x42\x03\xe0\x41\x02R\x08isPinned\x12\x17\n\x04name\x18\n \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x0c \x03(\tB\x03\xe0\x41\x02R\x04tags\x12/\n\x11\x64\x65\x66\x61ult_report_id\x18\r \x01(\tB\x03\xe0\x41\x01R\x0f\x64\x65\x66\x61ultReportId\x12\'\n\nclient_key\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\tclientKey\x88\x01\x01\x12@\n\x08metadata\x18\x0f \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12 \n\tasset_ids\x18\x10 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12I\n\rarchived_date\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12\x1e\n\x08is_adhoc\x18\x12 \x01(\x08\x42\x03\xe0\x41\x02R\x07isAdhoc\x12$\n\x0bis_archived\x18\x13 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\x12?\n\x08\x64uration\x18\x14 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01H\x04R\x08\x64uration\x88\x01\x01\x42\r\n\x0b_start_timeB\x0c\n\n_stop_timeB\r\n\x0b_client_keyB\x10\n\x0e_archived_dateB\x0b\n\t_duration\"+\n\rGetRunRequest\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\":\n\x0eGetRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\x94\x01\n\x0fListRunsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"f\n\x10ListRunsResponse\x12*\n\x04runs\x18\x01 \x03(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x04runs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xe9\x03\n\x10\x43reateRunRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\x17\n\x04tags\x18\x03 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12>\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\tstartTime\x12<\n\tstop_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x08stopTime\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\'\n\nclient_key\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x12@\n\x08metadata\x18\t \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12<\n\x15\x63reate_default_report\x18\n \x01(\x08\x42\x03\xe0\x41\x01H\x01R\x13\x63reateDefaultReport\x88\x01\x01\x42\r\n\x0b_client_keyB\x18\n\x16_create_default_report\"=\n\x11\x43reateRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"\x8a\x03\n\x15\x43reateAdhocRunRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12<\n\tstop_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08stopTime\x12 \n\tasset_ids\x18\x05 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12\x17\n\x04tags\x18\x06 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12@\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12\'\n\nclient_key\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x42\r\n\x0b_client_key\"B\n\x16\x43reateAdhocRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"~\n\x10UpdateRunRequest\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"=\n\x11UpdateRunResponse\x12(\n\x03run\x18\x01 \x01(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x03run\"q\n-CreateAutomaticRunAssociationForAssetsRequest\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12$\n\x0b\x61sset_names\x18\x02 \x03(\tB\x03\xe0\x41\x02R\nassetNames\"0\n.CreateAutomaticRunAssociationForAssetsResponse\".\n\x10\x44\x65leteRunRequest\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\"\x13\n\x11\x44\x65leteRunResponse\",\n\x0eStopRunRequest\x12\x1a\n\x06run_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05runId\"\x11\n\x0fStopRunResponse2\xdd\r\n\nRunService\x12~\n\x06GetRun\x12\x1b.sift.runs.v2.GetRunRequest\x1a\x1c.sift.runs.v2.GetRunResponse\"9\x92\x41\x19\x12\x06GetRun\x1a\x0fRetrieve a run.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v2/runs/{run_id}\x12\x95\x01\n\x08ListRuns\x12\x1d.sift.runs.v2.ListRunsRequest\x1a\x1e.sift.runs.v2.ListRunsResponse\"J\x92\x41\x33\x12\x08ListRuns\x1a\'Retrieve runs using an optional filter.\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v2/runs\x12\x82\x01\n\tCreateRun\x12\x1e.sift.runs.v2.CreateRunRequest\x1a\x1f.sift.runs.v2.CreateRunResponse\"4\x92\x41\x1a\x12\tCreateRun\x1a\rCreate a run.\x82\xd3\xe4\x93\x02\x11\"\x0c/api/v2/runs:\x01*\x12\xa3\x01\n\x0e\x43reateAdhocRun\x12#.sift.runs.v2.CreateAdhocRunRequest\x1a$.sift.runs.v2.CreateAdhocRunResponse\"F\x92\x41&\x12\x0e\x43reateAdhocRun\x1a\x14\x43reate an adhoc run.\x82\xd3\xe4\x93\x02\x17\"\x12/api/v2/runs:adhoc:\x01*\x12\xc7\x01\n\tUpdateRun\x12\x1e.sift.runs.v2.UpdateRunRequest\x1a\x1f.sift.runs.v2.UpdateRunResponse\"y\x92\x41_\x12\tUpdateRun\x1aRUpdates an existing run using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x11\x32\x0c/api/v2/runs:\x01*\x12\xc6\x01\n\tDeleteRun\x12\x1e.sift.runs.v2.DeleteRunRequest\x1a\x1f.sift.runs.v2.DeleteRunResponse\"x\x88\x02\x01\x92\x41U\x12\tDeleteRun\x1aHPermanently delete a given run. Deprecated: Use update with is_archived.\x82\xd3\xe4\x93\x02\x17*\x15/api/v2/runs/{run_id}\x12\xe6\x01\n\x07StopRun\x12\x1c.sift.runs.v2.StopRunRequest\x1a\x1d.sift.runs.v2.StopRunResponse\"\x9d\x01\x92\x41~\x12\x07StopRun\x1asSet the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`.\x82\xd3\xe4\x93\x02\x16\x32\x11/api/v2/runs:stop:\x01*\x12\xcc\x02\n&CreateAutomaticRunAssociationForAssets\x12;.sift.runs.v2.CreateAutomaticRunAssociationForAssetsRequest\x1a<.sift.runs.v2.CreateAutomaticRunAssociationForAssetsResponse\"\xa6\x01\x92\x41W\x12&CreateAutomaticRunAssociationForAssets\x1a-Associates a list of assets with a given run.\x82\xd3\xe4\x93\x02\x46\"A/api/v2/runs/{run_id}:create-automatic-run-association-for-assets:\x01*\x1a\xc0\x01\x92\x41\xbc\x01\x12@Service to programmatically interact with [runs](/glossary#run).\x1ax\n\x1eRead more about what runs are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053B\x81\x01\n\x10\x63om.sift.runs.v2B\tRunsProtoP\x01\xa2\x02\x03SRX\xaa\x02\x0cSift.Runs.V2\xca\x02\x0cSift\\Runs\\V2\xe2\x02\x18Sift\\Runs\\V2\\GPBMetadata\xea\x02\x0eSift::Runs::V2\x92\x41\x0f\x12\r\n\x0bRun serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -71,7 +70,7 @@ _globals['_RUN'].fields_by_name['duration']._loaded_options = None _globals['_RUN'].fields_by_name['duration']._serialized_options = b'\340A\001' _globals['_GETRUNREQUEST'].fields_by_name['run_id']._loaded_options = None - _globals['_GETRUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_GETRUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002' _globals['_GETRUNRESPONSE'].fields_by_name['run']._loaded_options = None _globals['_GETRUNRESPONSE'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_LISTRUNSREQUEST'].fields_by_name['page_size']._loaded_options = None @@ -97,7 +96,7 @@ _globals['_CREATERUNREQUEST'].fields_by_name['organization_id']._loaded_options = None _globals['_CREATERUNREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001' _globals['_CREATERUNREQUEST'].fields_by_name['client_key']._loaded_options = None - _globals['_CREATERUNREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001\272H\304\001\272\001\300\001\n\022invalid_client_key\022jclient key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\032>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')' + _globals['_CREATERUNREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001' _globals['_CREATERUNREQUEST'].fields_by_name['metadata']._loaded_options = None _globals['_CREATERUNREQUEST'].fields_by_name['metadata']._serialized_options = b'\340A\001' _globals['_CREATERUNREQUEST'].fields_by_name['create_default_report']._loaded_options = None @@ -105,7 +104,7 @@ _globals['_CREATERUNRESPONSE'].fields_by_name['run']._loaded_options = None _globals['_CREATERUNRESPONSE'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['name']._loaded_options = None - _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002\272H\004r\002\020\001' + _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['description']._loaded_options = None _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['description']._serialized_options = b'\340A\002' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['start_time']._loaded_options = None @@ -113,29 +112,29 @@ _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['stop_time']._loaded_options = None _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['stop_time']._serialized_options = b'\340A\002' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['asset_ids']._loaded_options = None - _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\002\272H\005\222\001\002\010\001' + _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\002' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['tags']._loaded_options = None _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['tags']._serialized_options = b'\340A\001' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['metadata']._loaded_options = None _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['metadata']._serialized_options = b'\340A\001' _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['client_key']._loaded_options = None - _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001\272H\304\001\272\001\300\001\n\022invalid_client_key\022jclient key must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\032>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')' + _globals['_CREATEADHOCRUNREQUEST'].fields_by_name['client_key']._serialized_options = b'\340A\001' _globals['_CREATEADHOCRUNRESPONSE'].fields_by_name['run']._loaded_options = None _globals['_CREATEADHOCRUNRESPONSE'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_UPDATERUNREQUEST'].fields_by_name['run']._loaded_options = None _globals['_UPDATERUNREQUEST'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_UPDATERUNREQUEST'].fields_by_name['update_mask']._loaded_options = None - _globals['_UPDATERUNREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002\272H\336\003\272\001\332\003\n\027invalid_field_mask_path\022\334\001field mask path must be in [\'name\', \'description\', \'start_time\', \'startTime\', \'stop_time\', \'stopTime\', \'is_pinned\', \'isPinned\', \'client_key\', \'clientKey\', \'tags\', \'metadata\', \'archived_date\', \'is_archived\', \'isArchived\']\032\337\001this.paths.all(path, path in [\'name\', \'description\', \'start_time\', \'startTime\', \'stop_time\', \'stopTime\', \'is_pinned\', \'isPinned\', \'client_key\', \'clientKey\', \'tags\', \'metadata\', \'archived_date\', \'is_archived\', \'isArchived\'])' + _globals['_UPDATERUNREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002' _globals['_UPDATERUNRESPONSE'].fields_by_name['run']._loaded_options = None _globals['_UPDATERUNRESPONSE'].fields_by_name['run']._serialized_options = b'\340A\002' _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['run_id']._loaded_options = None - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002' _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['asset_names']._loaded_options = None _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST'].fields_by_name['asset_names']._serialized_options = b'\340A\002' _globals['_DELETERUNREQUEST'].fields_by_name['run_id']._loaded_options = None - _globals['_DELETERUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_DELETERUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002' _globals['_STOPRUNREQUEST'].fields_by_name['run_id']._loaded_options = None - _globals['_STOPRUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_STOPRUNREQUEST'].fields_by_name['run_id']._serialized_options = b'\340A\002' _globals['_RUNSERVICE']._loaded_options = None _globals['_RUNSERVICE']._serialized_options = b'\222A\274\001\022@Service to programmatically interact with [runs](/glossary#run).\032x\n\036Read more about what runs are.\022Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053' _globals['_RUNSERVICE'].methods_by_name['GetRun']._loaded_options = None @@ -154,40 +153,40 @@ _globals['_RUNSERVICE'].methods_by_name['StopRun']._serialized_options = b'\222A~\022\007StopRun\032sSet the stop time of a run to the current time. To set the stop time of a run to an arbitrary time see `UpdateRun`.\202\323\344\223\002\0262\021/api/v2/runs:stop:\001*' _globals['_RUNSERVICE'].methods_by_name['CreateAutomaticRunAssociationForAssets']._loaded_options = None _globals['_RUNSERVICE'].methods_by_name['CreateAutomaticRunAssociationForAssets']._serialized_options = b'\222AW\022&CreateAutomaticRunAssociationForAssets\032-Associates a list of assets with a given run.\202\323\344\223\002F\"A/api/v2/runs/{run_id}:create-automatic-run-association-for-assets:\001*' - _globals['_RUN']._serialized_start=314 - _globals['_RUN']._serialized_end=1367 - _globals['_GETRUNREQUEST']._serialized_start=1369 - _globals['_GETRUNREQUEST']._serialized_end=1420 - _globals['_GETRUNRESPONSE']._serialized_start=1422 - _globals['_GETRUNRESPONSE']._serialized_end=1480 - _globals['_LISTRUNSREQUEST']._serialized_start=1483 - _globals['_LISTRUNSREQUEST']._serialized_end=1631 - _globals['_LISTRUNSRESPONSE']._serialized_start=1633 - _globals['_LISTRUNSRESPONSE']._serialized_end=1735 - _globals['_CREATERUNREQUEST']._serialized_start=1738 - _globals['_CREATERUNREQUEST']._serialized_end=2429 - _globals['_CREATERUNRESPONSE']._serialized_start=2431 - _globals['_CREATERUNRESPONSE']._serialized_end=2492 - _globals['_CREATEADHOCRUNREQUEST']._serialized_start=2495 - _globals['_CREATEADHOCRUNREQUEST']._serialized_end=3106 - _globals['_CREATEADHOCRUNRESPONSE']._serialized_start=3108 - _globals['_CREATEADHOCRUNRESPONSE']._serialized_end=3174 - _globals['_UPDATERUNREQUEST']._serialized_start=3177 - _globals['_UPDATERUNREQUEST']._serialized_end=3787 - _globals['_UPDATERUNRESPONSE']._serialized_start=3789 - _globals['_UPDATERUNRESPONSE']._serialized_end=3850 - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST']._serialized_start=3852 - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST']._serialized_end=3973 - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSRESPONSE']._serialized_start=3975 - _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSRESPONSE']._serialized_end=4023 - _globals['_DELETERUNREQUEST']._serialized_start=4025 - _globals['_DELETERUNREQUEST']._serialized_end=4079 - _globals['_DELETERUNRESPONSE']._serialized_start=4081 - _globals['_DELETERUNRESPONSE']._serialized_end=4100 - _globals['_STOPRUNREQUEST']._serialized_start=4102 - _globals['_STOPRUNREQUEST']._serialized_end=4154 - _globals['_STOPRUNRESPONSE']._serialized_start=4156 - _globals['_STOPRUNRESPONSE']._serialized_end=4173 - _globals['_RUNSERVICE']._serialized_start=4176 - _globals['_RUNSERVICE']._serialized_end=5933 + _globals['_RUN']._serialized_start=285 + _globals['_RUN']._serialized_end=1338 + _globals['_GETRUNREQUEST']._serialized_start=1340 + _globals['_GETRUNREQUEST']._serialized_end=1383 + _globals['_GETRUNRESPONSE']._serialized_start=1385 + _globals['_GETRUNRESPONSE']._serialized_end=1443 + _globals['_LISTRUNSREQUEST']._serialized_start=1446 + _globals['_LISTRUNSREQUEST']._serialized_end=1594 + _globals['_LISTRUNSRESPONSE']._serialized_start=1596 + _globals['_LISTRUNSRESPONSE']._serialized_end=1698 + _globals['_CREATERUNREQUEST']._serialized_start=1701 + _globals['_CREATERUNREQUEST']._serialized_end=2190 + _globals['_CREATERUNRESPONSE']._serialized_start=2192 + _globals['_CREATERUNRESPONSE']._serialized_end=2253 + _globals['_CREATEADHOCRUNREQUEST']._serialized_start=2256 + _globals['_CREATEADHOCRUNREQUEST']._serialized_end=2650 + _globals['_CREATEADHOCRUNRESPONSE']._serialized_start=2652 + _globals['_CREATEADHOCRUNRESPONSE']._serialized_end=2718 + _globals['_UPDATERUNREQUEST']._serialized_start=2720 + _globals['_UPDATERUNREQUEST']._serialized_end=2846 + _globals['_UPDATERUNRESPONSE']._serialized_start=2848 + _globals['_UPDATERUNRESPONSE']._serialized_end=2909 + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST']._serialized_start=2911 + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSREQUEST']._serialized_end=3024 + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSRESPONSE']._serialized_start=3026 + _globals['_CREATEAUTOMATICRUNASSOCIATIONFORASSETSRESPONSE']._serialized_end=3074 + _globals['_DELETERUNREQUEST']._serialized_start=3076 + _globals['_DELETERUNREQUEST']._serialized_end=3122 + _globals['_DELETERUNRESPONSE']._serialized_start=3124 + _globals['_DELETERUNRESPONSE']._serialized_end=3143 + _globals['_STOPRUNREQUEST']._serialized_start=3145 + _globals['_STOPRUNREQUEST']._serialized_end=3189 + _globals['_STOPRUNRESPONSE']._serialized_start=3191 + _globals['_STOPRUNRESPONSE']._serialized_end=3208 + _globals['_RUNSERVICE']._serialized_start=3211 + _globals['_RUNSERVICE']._serialized_end=4968 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py b/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py index 562a4a822..0d62112f9 100644 --- a/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py +++ b/python/lib/sift/user_defined_functions/v1/user_defined_functions_pb2.py @@ -12,7 +12,6 @@ _sym_db = _symbol_database.Default() -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 @@ -23,7 +22,7 @@ from sift.rules.v1 import rules_pb2 as sift_dot_rules_dot_v1_dot_rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;sift/user_defined_functions/v1/user_defined_functions.proto\x12\x1esift.user_defined_functions.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v2/calculated_channels.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\x1a\x19sift/rules/v1/rules.proto\"~\n\x1dGetUserDefinedFunctionRequest\x12\x44\n\x18user_defined_function_id\x18\x01 \x01(\tB\x0b\xe0\x41\x01\xbaH\x05r\x03\xb0\x01\x01R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04name\"\x83\x01\n\x1eGetUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"{\n$GetUserDefinedFunctionVersionRequest\x12S\n user_defined_function_version_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x1cuserDefinedFunctionVersionId\"\x8a\x01\n%GetUserDefinedFunctionVersionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\xc7\x02\n\'GetUserDefinedFunctionDependentsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\x46\n\x18user_defined_function_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xbaH\x05r\x03\xb0\x01\x01H\x00R\x15userDefinedFunctionId\x12\x42\n\x1auser_defined_function_name\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\x17userDefinedFunctionName\x12U\n user_defined_function_version_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xbaH\x05r\x03\xb0\x01\x01H\x00R\x1cuserDefinedFunctionVersionIdB\x17\n\x15user_defined_function\"\x82\x04\n(GetUserDefinedFunctionDependentsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12T\n%next_page_token_user_defined_function\x18\x02 \x01(\tB\x03\xe0\x41\x01R nextPageTokenUserDefinedFunction\x12\x64\n\x13\x63\x61lculated_channels\x18\x03 \x03(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x12\x63\x61lculatedChannels\x12O\n\"next_page_token_calculated_channel\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x1enextPageTokenCalculatedChannel\x12.\n\x05rules\x18\x05 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\x12\x34\n\x14next_page_token_rule\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x11nextPageTokenRule\"\x83\x01\n%GetUserDefinedFunctionVersionsRequest\x12Z\n!user_defined_function_version_ids\x18\x01 \x03(\tB\x10\xe0\x41\x02\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x1duserDefinedFunctionVersionIds\"\x8d\x01\n&GetUserDefinedFunctionVersionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\"\xa6\x04\n CreateUserDefinedFunctionRequest\x12\xd4\x01\n\x04name\x18\x01 \x01(\tB\xbf\x01\xe0\x41\x02\xbaH\xb8\x01\xba\x01\xb4\x01\n\x0cinvalid_name\x12\x64name must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\x1a>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12#\n\nexpression\x18\x03 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x04 \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\x12\'\n\nuser_notes\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\tuserNotes\x88\x01\x01\x12@\n\x08metadata\x18\x06 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\x0e\n\x0c_descriptionB\r\n\x0b_user_notes\"\x86\x01\n!CreateUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\x9b\x01\n\"ValidateUserDefinedFunctionRequest\x12#\n\nexpression\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x02 \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\"\xab\x04\n#ValidateUserDefinedFunctionResponse\x12\x84\x01\n\x05\x65rror\x18\x01 \x01(\x0b\x32l.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse.ErrorValidatingUserDefinedFunctionResultH\x00R\x05\x65rror\x12\x8a\x01\n\x07success\x18\x02 \x01(\x0b\x32n.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse.SuccessValidatingUserDefinedFunctionResultH\x00R\x07success\x1aT\n(ErrorValidatingUserDefinedFunctionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x1a\x8f\x01\n*SuccessValidatingUserDefinedFunctionResult\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunctionB\x08\n\x06result\"\xc7\x01\n UpdateUserDefinedFunctionRequest\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x86\x01\n!UpdateUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\x9d\x01\n\x1b\x43heckUpdatableFieldsRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x15userDefinedFunctionId\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\xb2\x02\n\x1c\x43heckUpdatableFieldsResponse\x12\x46\n\x0e\x61llowed_fields\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\rallowedFields\x12\x84\x01\n\x11\x64isallowed_fields\x18\x02 \x03(\x0b\x32R.sift.user_defined_functions.v1.CheckUpdatableFieldsResponse.DisallowedFieldsEntryB\x03\xe0\x41\x02R\x10\x64isallowedFields\x1a\x43\n\x15\x44isallowedFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n\x1fListUserDefinedFunctionsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xb4\x01\n ListUserDefinedFunctionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\x82\x02\n&ListUserDefinedFunctionVersionsRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04name\x12 \n\tpage_size\x18\x03 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xbb\x01\n\'ListUserDefinedFunctionVersionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken2\xee\x18\n\x1aUserDefinedFunctionService\x12\xaf\x02\n\x16GetUserDefinedFunction\x12=.sift.user_defined_functions.v1.GetUserDefinedFunctionRequest\x1a>.sift.user_defined_functions.v1.GetUserDefinedFunctionResponse\"\x95\x01\x92\x41Q\x12\x16GetUserDefinedFunction\x1a\x37Retrieve the latest version of a user defined function.\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/user-defined-functions/{user_defined_function_id}\x12\xdc\x02\n\x1dGetUserDefinedFunctionVersion\x12\x44.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionRequest\x1a\x45.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionResponse\"\xad\x01\x92\x41X\x12\x1dGetUserDefinedFunctionVersion\x1a\x37Retrieve a specific version of a user defined function.\x82\xd3\xe4\x93\x02L\x12J/api/v1/user-defined-functions/versions/{user_defined_function_version_id}\x12\xb2\x02\n\x1eGetUserDefinedFunctionVersions\x12\x45.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionsRequest\x1a\x46.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionsResponse\"\x80\x01\x92\x41N\x12\x1eGetUserDefinedFunctionVersions\x1a,Retrieve versions of user defined functions.\x82\xd3\xe4\x93\x02)\x12\'/api/v1/user-defined-functions/versions\x12\xbf\x02\n GetUserDefinedFunctionDependents\x12G.sift.user_defined_functions.v1.GetUserDefinedFunctionDependentsRequest\x1aH.sift.user_defined_functions.v1.GetUserDefinedFunctionDependentsResponse\"\x87\x01\x92\x41S\x12 GetUserDefinedFunctionDependents\x1a/Retrieve dependents of a user defined function.\x82\xd3\xe4\x93\x02+\x12)/api/v1/user-defined-functions/dependents\x12\x8a\x02\n\x19\x43reateUserDefinedFunction\x12@.sift.user_defined_functions.v1.CreateUserDefinedFunctionRequest\x1a\x41.sift.user_defined_functions.v1.CreateUserDefinedFunctionResponse\"h\x92\x41<\x12\x19\x43reateUserDefinedFunction\x1a\x1f\x43reate a user defined function.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/user-defined-functions:\x01*\x12\xa9\x02\n\x1bValidateUserDefinedFunction\x12\x42.sift.user_defined_functions.v1.ValidateUserDefinedFunctionRequest\x1a\x43.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse\"\x80\x01\x92\x41K\x12\x1bValidateUserDefinedFunction\x1a,Validates a potential user defined function.\x82\xd3\xe4\x93\x02,\"\'/api/v1/user-defined-functions:validate:\x01*\x12\xa7\x02\n\x19UpdateUserDefinedFunction\x12@.sift.user_defined_functions.v1.UpdateUserDefinedFunctionRequest\x1a\x41.sift.user_defined_functions.v1.UpdateUserDefinedFunctionResponse\"\x84\x01\x92\x41X\x12\x19UpdateUserDefinedFunction\x1a;Update and create a new version of a user defined function.\x82\xd3\xe4\x93\x02#2\x1e/api/v1/user-defined-functions:\x01*\x12\xb5\x02\n\x14\x43heckUpdatableFields\x12;.sift.user_defined_functions.v1.CheckUpdatableFieldsRequest\x1a<.sift.user_defined_functions.v1.CheckUpdatableFieldsResponse\"\xa1\x01\x92\x41g\x12\x14\x43heckUpdatableFields\x1aOCheck if given update paths are allowed to update for the user defined function\x82\xd3\xe4\x93\x02\x31\"//api/v1/user-defined-functions/updatable-fields\x12\xb8\x02\n\x18ListUserDefinedFunctions\x12?.sift.user_defined_functions.v1.ListUserDefinedFunctionsRequest\x1a@.sift.user_defined_functions.v1.ListUserDefinedFunctionsResponse\"\x98\x01\x92\x41o\x12\x18ListUserDefinedFunctions\x1aSRetrieve the latest versions of user defined functions based on an optional filter.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/user-defined-functions\x12\xf1\x02\n\x1fListUserDefinedFunctionVersions\x12\x46.sift.user_defined_functions.v1.ListUserDefinedFunctionVersionsRequest\x1aG.sift.user_defined_functions.v1.ListUserDefinedFunctionVersionsResponse\"\xbc\x01\x92\x41o\x12\x1fListUserDefinedFunctionVersions\x1aLList versions of a particular user defined function with an optional filter.\x82\xd3\xe4\x93\x02\x44\x12\x42/api/v1/user-defined-functions/{user_defined_function_id}/versionsB\xd1\x01\n\"com.sift.user_defined_functions.v1B\x19UserDefinedFunctionsProtoP\x01\xa2\x02\x03SUX\xaa\x02\x1cSift.UserDefinedFunctions.V1\xca\x02\x1cSift\\UserDefinedFunctions\\V1\xe2\x02(Sift\\UserDefinedFunctions\\V1\\GPBMetadata\xea\x02\x1eSift::UserDefinedFunctions::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;sift/user_defined_functions/v1/user_defined_functions.proto\x12\x1esift.user_defined_functions.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v2/calculated_channels.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\x1a\x19sift/rules/v1/rules.proto\"v\n\x1dGetUserDefinedFunctionRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04name\"\x83\x01\n\x1eGetUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"s\n$GetUserDefinedFunctionVersionRequest\x12K\n user_defined_function_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x1cuserDefinedFunctionVersionId\"\x8a\x01\n%GetUserDefinedFunctionVersionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\xb7\x02\n\'GetUserDefinedFunctionDependentsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12>\n\x18user_defined_function_id\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x15userDefinedFunctionId\x12\x42\n\x1auser_defined_function_name\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\x17userDefinedFunctionName\x12M\n user_defined_function_version_id\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x1cuserDefinedFunctionVersionIdB\x17\n\x15user_defined_function\"\x82\x04\n(GetUserDefinedFunctionDependentsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12T\n%next_page_token_user_defined_function\x18\x02 \x01(\tB\x03\xe0\x41\x01R nextPageTokenUserDefinedFunction\x12\x64\n\x13\x63\x61lculated_channels\x18\x03 \x03(\x0b\x32..sift.calculated_channels.v2.CalculatedChannelB\x03\xe0\x41\x02R\x12\x63\x61lculatedChannels\x12O\n\"next_page_token_calculated_channel\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x1enextPageTokenCalculatedChannel\x12.\n\x05rules\x18\x05 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\x12\x34\n\x14next_page_token_rule\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x11nextPageTokenRule\"v\n%GetUserDefinedFunctionVersionsRequest\x12M\n!user_defined_function_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x1duserDefinedFunctionVersionIds\"\x8d\x01\n&GetUserDefinedFunctionVersionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\"\xe8\x02\n CreateUserDefinedFunctionRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12#\n\nexpression\x18\x03 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x04 \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\x12\'\n\nuser_notes\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x01R\tuserNotes\x88\x01\x01\x12@\n\x08metadata\x18\x06 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadataB\x0e\n\x0c_descriptionB\r\n\x0b_user_notes\"\x86\x01\n!CreateUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\x9b\x01\n\"ValidateUserDefinedFunctionRequest\x12#\n\nexpression\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12P\n\x0f\x66unction_inputs\x18\x02 \x03(\x0b\x32\".sift.common.type.v1.FunctionInputB\x03\xe0\x41\x02R\x0e\x66unctionInputs\"\xab\x04\n#ValidateUserDefinedFunctionResponse\x12\x84\x01\n\x05\x65rror\x18\x01 \x01(\x0b\x32l.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse.ErrorValidatingUserDefinedFunctionResultH\x00R\x05\x65rror\x12\x8a\x01\n\x07success\x18\x02 \x01(\x0b\x32n.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse.SuccessValidatingUserDefinedFunctionResultH\x00R\x07success\x1aT\n(ErrorValidatingUserDefinedFunctionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x1a\x8f\x01\n*SuccessValidatingUserDefinedFunctionResult\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunctionB\x08\n\x06result\"\xc7\x01\n UpdateUserDefinedFunctionRequest\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x86\x01\n!UpdateUserDefinedFunctionResponse\x12\x61\n\x15user_defined_function\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x13userDefinedFunction\"\x9d\x01\n\x1b\x43heckUpdatableFieldsRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x15userDefinedFunctionId\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\xb2\x02\n\x1c\x43heckUpdatableFieldsResponse\x12\x46\n\x0e\x61llowed_fields\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\rallowedFields\x12\x84\x01\n\x11\x64isallowed_fields\x18\x02 \x03(\x0b\x32R.sift.user_defined_functions.v1.CheckUpdatableFieldsResponse.DisallowedFieldsEntryB\x03\xe0\x41\x02R\x10\x64isallowedFields\x1a\x43\n\x15\x44isallowedFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n\x1fListUserDefinedFunctionsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xb4\x01\n ListUserDefinedFunctionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\x82\x02\n&ListUserDefinedFunctionVersionsRequest\x12<\n\x18user_defined_function_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x15userDefinedFunctionId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04name\x12 \n\tpage_size\x18\x03 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xbb\x01\n\'ListUserDefinedFunctionVersionsResponse\x12\x63\n\x16user_defined_functions\x18\x01 \x03(\x0b\x32(.sift.common.type.v1.UserDefinedFunctionB\x03\xe0\x41\x02R\x14userDefinedFunctions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken2\xee\x18\n\x1aUserDefinedFunctionService\x12\xaf\x02\n\x16GetUserDefinedFunction\x12=.sift.user_defined_functions.v1.GetUserDefinedFunctionRequest\x1a>.sift.user_defined_functions.v1.GetUserDefinedFunctionResponse\"\x95\x01\x92\x41Q\x12\x16GetUserDefinedFunction\x1a\x37Retrieve the latest version of a user defined function.\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/user-defined-functions/{user_defined_function_id}\x12\xdc\x02\n\x1dGetUserDefinedFunctionVersion\x12\x44.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionRequest\x1a\x45.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionResponse\"\xad\x01\x92\x41X\x12\x1dGetUserDefinedFunctionVersion\x1a\x37Retrieve a specific version of a user defined function.\x82\xd3\xe4\x93\x02L\x12J/api/v1/user-defined-functions/versions/{user_defined_function_version_id}\x12\xb2\x02\n\x1eGetUserDefinedFunctionVersions\x12\x45.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionsRequest\x1a\x46.sift.user_defined_functions.v1.GetUserDefinedFunctionVersionsResponse\"\x80\x01\x92\x41N\x12\x1eGetUserDefinedFunctionVersions\x1a,Retrieve versions of user defined functions.\x82\xd3\xe4\x93\x02)\x12\'/api/v1/user-defined-functions/versions\x12\xbf\x02\n GetUserDefinedFunctionDependents\x12G.sift.user_defined_functions.v1.GetUserDefinedFunctionDependentsRequest\x1aH.sift.user_defined_functions.v1.GetUserDefinedFunctionDependentsResponse\"\x87\x01\x92\x41S\x12 GetUserDefinedFunctionDependents\x1a/Retrieve dependents of a user defined function.\x82\xd3\xe4\x93\x02+\x12)/api/v1/user-defined-functions/dependents\x12\x8a\x02\n\x19\x43reateUserDefinedFunction\x12@.sift.user_defined_functions.v1.CreateUserDefinedFunctionRequest\x1a\x41.sift.user_defined_functions.v1.CreateUserDefinedFunctionResponse\"h\x92\x41<\x12\x19\x43reateUserDefinedFunction\x1a\x1f\x43reate a user defined function.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/user-defined-functions:\x01*\x12\xa9\x02\n\x1bValidateUserDefinedFunction\x12\x42.sift.user_defined_functions.v1.ValidateUserDefinedFunctionRequest\x1a\x43.sift.user_defined_functions.v1.ValidateUserDefinedFunctionResponse\"\x80\x01\x92\x41K\x12\x1bValidateUserDefinedFunction\x1a,Validates a potential user defined function.\x82\xd3\xe4\x93\x02,\"\'/api/v1/user-defined-functions:validate:\x01*\x12\xa7\x02\n\x19UpdateUserDefinedFunction\x12@.sift.user_defined_functions.v1.UpdateUserDefinedFunctionRequest\x1a\x41.sift.user_defined_functions.v1.UpdateUserDefinedFunctionResponse\"\x84\x01\x92\x41X\x12\x19UpdateUserDefinedFunction\x1a;Update and create a new version of a user defined function.\x82\xd3\xe4\x93\x02#2\x1e/api/v1/user-defined-functions:\x01*\x12\xb5\x02\n\x14\x43heckUpdatableFields\x12;.sift.user_defined_functions.v1.CheckUpdatableFieldsRequest\x1a<.sift.user_defined_functions.v1.CheckUpdatableFieldsResponse\"\xa1\x01\x92\x41g\x12\x14\x43heckUpdatableFields\x1aOCheck if given update paths are allowed to update for the user defined function\x82\xd3\xe4\x93\x02\x31\"//api/v1/user-defined-functions/updatable-fields\x12\xb8\x02\n\x18ListUserDefinedFunctions\x12?.sift.user_defined_functions.v1.ListUserDefinedFunctionsRequest\x1a@.sift.user_defined_functions.v1.ListUserDefinedFunctionsResponse\"\x98\x01\x92\x41o\x12\x18ListUserDefinedFunctions\x1aSRetrieve the latest versions of user defined functions based on an optional filter.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/user-defined-functions\x12\xf1\x02\n\x1fListUserDefinedFunctionVersions\x12\x46.sift.user_defined_functions.v1.ListUserDefinedFunctionVersionsRequest\x1aG.sift.user_defined_functions.v1.ListUserDefinedFunctionVersionsResponse\"\xbc\x01\x92\x41o\x12\x1fListUserDefinedFunctionVersions\x1aLList versions of a particular user defined function with an optional filter.\x82\xd3\xe4\x93\x02\x44\x12\x42/api/v1/user-defined-functions/{user_defined_function_id}/versionsB\xd1\x01\n\"com.sift.user_defined_functions.v1B\x19UserDefinedFunctionsProtoP\x01\xa2\x02\x03SUX\xaa\x02\x1cSift.UserDefinedFunctions.V1\xca\x02\x1cSift\\UserDefinedFunctions\\V1\xe2\x02(Sift\\UserDefinedFunctions\\V1\\GPBMetadata\xea\x02\x1eSift::UserDefinedFunctions::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,23 +31,23 @@ _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\"com.sift.user_defined_functions.v1B\031UserDefinedFunctionsProtoP\001\242\002\003SUX\252\002\034Sift.UserDefinedFunctions.V1\312\002\034Sift\\UserDefinedFunctions\\V1\342\002(Sift\\UserDefinedFunctions\\V1\\GPBMetadata\352\002\036Sift::UserDefinedFunctions::V1' _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['user_defined_function_id']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['user_defined_function_id']._serialized_options = b'\340A\001\272H\005r\003\260\001\001' + _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['user_defined_function_id']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONRESPONSE'].fields_by_name['user_defined_function']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONRESPONSE'].fields_by_name['user_defined_function']._serialized_options = b'\340A\002' _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST'].fields_by_name['user_defined_function_version_id']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\002' _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE'].fields_by_name['user_defined_function']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE'].fields_by_name['user_defined_function']._serialized_options = b'\340A\002' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['page_size']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_id']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_id']._serialized_options = b'\340A\001\272H\005r\003\260\001\001' + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_id']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_name']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_name']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_version_id']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\001\272H\005r\003\260\001\001' + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST'].fields_by_name['user_defined_function_version_id']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['user_defined_functions']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['user_defined_functions']._serialized_options = b'\340A\002' _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['next_page_token_user_defined_function']._loaded_options = None @@ -62,11 +61,11 @@ _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['next_page_token_rule']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE'].fields_by_name['next_page_token_rule']._serialized_options = b'\340A\001' _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST'].fields_by_name['user_defined_function_version_ids']._loaded_options = None - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST'].fields_by_name['user_defined_function_version_ids']._serialized_options = b'\340A\002\272H\n\222\001\007\"\005r\003\260\001\001' + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST'].fields_by_name['user_defined_function_version_ids']._serialized_options = b'\340A\002' _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE'].fields_by_name['user_defined_functions']._loaded_options = None _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE'].fields_by_name['user_defined_functions']._serialized_options = b'\340A\002' _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._loaded_options = None - _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002\272H\270\001\272\001\264\001\n\014invalid_name\022dname must be 3-128 characters, start and end with an alphanumeric, and contain only [a-zA-Z0-9_~.-].\032>this.matches(\'^[a-zA-Z0-9][a-zA-Z0-9_~.-]{0,126}[a-zA-Z0-9]$\')' + _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['description']._loaded_options = None _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['description']._serialized_options = b'\340A\001' _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST'].fields_by_name['expression']._loaded_options = None @@ -151,52 +150,52 @@ _globals['_USERDEFINEDFUNCTIONSERVICE'].methods_by_name['ListUserDefinedFunctions']._serialized_options = b'\222Ao\022\030ListUserDefinedFunctions\032SRetrieve the latest versions of user defined functions based on an optional filter.\202\323\344\223\002 \022\036/api/v1/user-defined-functions' _globals['_USERDEFINEDFUNCTIONSERVICE'].methods_by_name['ListUserDefinedFunctionVersions']._loaded_options = None _globals['_USERDEFINEDFUNCTIONSERVICE'].methods_by_name['ListUserDefinedFunctionVersions']._serialized_options = b'\222Ao\022\037ListUserDefinedFunctionVersions\032LList versions of a particular user defined function with an optional filter.\202\323\344\223\002D\022B/api/v1/user-defined-functions/{user_defined_function_id}/versions' - _globals['_GETUSERDEFINEDFUNCTIONREQUEST']._serialized_start=434 - _globals['_GETUSERDEFINEDFUNCTIONREQUEST']._serialized_end=560 - _globals['_GETUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=563 - _globals['_GETUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=694 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST']._serialized_start=696 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST']._serialized_end=819 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE']._serialized_start=822 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE']._serialized_end=960 - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST']._serialized_start=963 - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST']._serialized_end=1290 - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE']._serialized_start=1293 - _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE']._serialized_end=1807 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_start=1810 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_end=1941 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_start=1944 - _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_end=2085 - _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=2088 - _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=2638 - _globals['_CREATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=2641 - _globals['_CREATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=2775 - _globals['_VALIDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=2778 - _globals['_VALIDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=2933 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=2936 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=3491 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_ERRORVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_start=3251 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_ERRORVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_end=3335 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_SUCCESSVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_start=3338 - _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_SUCCESSVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_end=3481 - _globals['_UPDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=3494 - _globals['_UPDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=3693 - _globals['_UPDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=3696 - _globals['_UPDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=3830 - _globals['_CHECKUPDATABLEFIELDSREQUEST']._serialized_start=3833 - _globals['_CHECKUPDATABLEFIELDSREQUEST']._serialized_end=3990 - _globals['_CHECKUPDATABLEFIELDSRESPONSE']._serialized_start=3993 - _globals['_CHECKUPDATABLEFIELDSRESPONSE']._serialized_end=4299 - _globals['_CHECKUPDATABLEFIELDSRESPONSE_DISALLOWEDFIELDSENTRY']._serialized_start=4232 - _globals['_CHECKUPDATABLEFIELDSRESPONSE_DISALLOWEDFIELDSENTRY']._serialized_end=4299 - _globals['_LISTUSERDEFINEDFUNCTIONSREQUEST']._serialized_start=4302 - _globals['_LISTUSERDEFINEDFUNCTIONSREQUEST']._serialized_end=4466 - _globals['_LISTUSERDEFINEDFUNCTIONSRESPONSE']._serialized_start=4469 - _globals['_LISTUSERDEFINEDFUNCTIONSRESPONSE']._serialized_end=4649 - _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_start=4652 - _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_end=4910 - _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_start=4913 - _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_end=5100 - _globals['_USERDEFINEDFUNCTIONSERVICE']._serialized_start=5103 - _globals['_USERDEFINEDFUNCTIONSERVICE']._serialized_end=8285 + _globals['_GETUSERDEFINEDFUNCTIONREQUEST']._serialized_start=405 + _globals['_GETUSERDEFINEDFUNCTIONREQUEST']._serialized_end=523 + _globals['_GETUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=526 + _globals['_GETUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=657 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST']._serialized_start=659 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONREQUEST']._serialized_end=774 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE']._serialized_start=777 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONRESPONSE']._serialized_end=915 + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST']._serialized_start=918 + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSREQUEST']._serialized_end=1229 + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE']._serialized_start=1232 + _globals['_GETUSERDEFINEDFUNCTIONDEPENDENTSRESPONSE']._serialized_end=1746 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_start=1748 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_end=1866 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_start=1869 + _globals['_GETUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_end=2010 + _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=2013 + _globals['_CREATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=2373 + _globals['_CREATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=2376 + _globals['_CREATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=2510 + _globals['_VALIDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=2513 + _globals['_VALIDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=2668 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=2671 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=3226 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_ERRORVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_start=2986 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_ERRORVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_end=3070 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_SUCCESSVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_start=3073 + _globals['_VALIDATEUSERDEFINEDFUNCTIONRESPONSE_SUCCESSVALIDATINGUSERDEFINEDFUNCTIONRESULT']._serialized_end=3216 + _globals['_UPDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_start=3229 + _globals['_UPDATEUSERDEFINEDFUNCTIONREQUEST']._serialized_end=3428 + _globals['_UPDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_start=3431 + _globals['_UPDATEUSERDEFINEDFUNCTIONRESPONSE']._serialized_end=3565 + _globals['_CHECKUPDATABLEFIELDSREQUEST']._serialized_start=3568 + _globals['_CHECKUPDATABLEFIELDSREQUEST']._serialized_end=3725 + _globals['_CHECKUPDATABLEFIELDSRESPONSE']._serialized_start=3728 + _globals['_CHECKUPDATABLEFIELDSRESPONSE']._serialized_end=4034 + _globals['_CHECKUPDATABLEFIELDSRESPONSE_DISALLOWEDFIELDSENTRY']._serialized_start=3967 + _globals['_CHECKUPDATABLEFIELDSRESPONSE_DISALLOWEDFIELDSENTRY']._serialized_end=4034 + _globals['_LISTUSERDEFINEDFUNCTIONSREQUEST']._serialized_start=4037 + _globals['_LISTUSERDEFINEDFUNCTIONSREQUEST']._serialized_end=4201 + _globals['_LISTUSERDEFINEDFUNCTIONSRESPONSE']._serialized_start=4204 + _globals['_LISTUSERDEFINEDFUNCTIONSRESPONSE']._serialized_end=4384 + _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_start=4387 + _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSREQUEST']._serialized_end=4645 + _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_start=4648 + _globals['_LISTUSERDEFINEDFUNCTIONVERSIONSRESPONSE']._serialized_end=4835 + _globals['_USERDEFINEDFUNCTIONSERVICE']._serialized_start=4838 + _globals['_USERDEFINEDFUNCTIONSERVICE']._serialized_end=8020 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/user_groups/v2/user_groups_pb2.py b/python/lib/sift/user_groups/v2/user_groups_pb2.py index 3d0b797e4..7129b29ba 100644 --- a/python/lib/sift/user_groups/v2/user_groups_pb2.py +++ b/python/lib/sift/user_groups/v2/user_groups_pb2.py @@ -12,7 +12,6 @@ _sym_db = _symbol_database.Default() -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 @@ -20,7 +19,7 @@ from sift.roles.v2 import roles_pb2 as sift_dot_roles_dot_v2_dot_roles__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sift/user_groups/v2/user_groups.proto\x12\x13sift.user_groups.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x19sift/roles/v2/roles.proto\"\x8d\x03\n\tUserGroup\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0buserGroupId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x1c\n\x07role_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06roleId\x12\"\n\nis_default\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\tisDefault\x12J\n\tresources\x18\x06 \x01(\x0b\x32\'.sift.user_groups.v2.UserGroup.ResourceB\x03\xe0\x41\x01R\tresources\x12+\n\x08user_ids\x18\x07 \x03(\tB\x10\xe0\x41\x01\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x07userIds\x12$\n\x0bis_external\x18\x08 \x01(\x08\x42\x03\xe0\x41\x02R\nisExternal\x1a]\n\x08Resource\x12-\n\tasset_ids\x18\x01 \x03(\tB\x10\xe0\x41\x01\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x08\x61ssetIds\x12\"\n\nall_assets\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\tallAssets\"\x9a\x01\n\x15ListUserGroupsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8b\x01\n\x16ListUserGroupsResponse\x12\x44\n\x0buser_groups\x18\x01 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\nuserGroups\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"C\n\x13GetUserGroupRequest\x12,\n\ruser_group_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0buserGroupId\"Z\n\x14GetUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"u\n\x1bUpdateUserUserGroupsRequest\x12!\n\x07user_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x06userId\x12\x33\n\x0euser_group_ids\x18\x02 \x03(\tB\r\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x0cuserGroupIds\"\x1e\n\x1cUpdateUserUserGroupsResponse\"\\\n\x16\x43reateUserGroupRequest\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"]\n\x17\x43reateUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"\xec\x02\n\x16UpdateUserGroupRequest\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\x12\x8d\x02\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\xcf\x01\xe0\x41\x02\xbaH\xc8\x01\xba\x01\xc4\x01\n\x17invalid_field_mask_path\x12Rfield mask path must be in [\'name\', \'is_default\', \'role_id\', \'resources\', \'users\']\x1aUthis.paths.all(path, path in [\'name\', \'is_default\', \'role_id\', \'resources\', \'users\'])R\nupdateMask\"]\n\x17UpdateUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"I\n\x16\x44\x65leteUserGroupRequest\x12/\n\ruser_group_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0buserGroupId\"\x19\n\x17\x44\x65leteUserGroupResponse\"r\n\x19\x41\x64\x64UserToUserGroupRequest\x12/\n\ruser_group_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0buserGroupId\x12$\n\x07user_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x06userId\"\x1c\n\x1a\x41\x64\x64UserToUserGroupResponse\"w\n\x1eRemoveUserFromUserGroupRequest\x12/\n\ruser_group_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0buserGroupId\x12$\n\x07user_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x06userId\"!\n\x1fRemoveUserFromUserGroupResponse\"N\n\x1dGetUserGroupsForAssetsRequest\x12-\n\tasset_ids\x18\x01 \x03(\tB\x10\xe0\x41\x02\xbaH\n\x92\x01\x07\"\x05r\x03\xb0\x01\x01R\x08\x61ssetIds\"\x96\x01\n\x1eGetUserGroupsForAssetsResponse\x12\x44\n\x0buser_groups\x18\x01 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\nuserGroups\x12.\n\x05roles\x18\x02 \x03(\x0b\x32\x13.sift.roles.v2.RoleB\x03\xe0\x41\x02R\x05roles2\xe8\x11\n\x10UserGroupService\x12\xee\x01\n\x0eListUserGroups\x12*.sift.user_groups.v2.ListUserGroupsRequest\x1a+.sift.user_groups.v2.ListUserGroupsResponse\"\x82\x01\x92\x41\x64\x12\x0eListUserGroups\x1a/Retrieves user groups using an optional filter.*!UserGroupService_ListUserGroupsV2\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v2/user-groups\x12\xdb\x01\n\x0cGetUserGroup\x12(.sift.user_groups.v2.GetUserGroupRequest\x1a).sift.user_groups.v2.GetUserGroupResponse\"v\x92\x41H\x12\x0cGetUserGroup\x1a\x17Retrieves a user group.*\x1fUserGroupService_GetUserGroupV2\x82\xd3\xe4\x93\x02%\x12#/api/v2/user-groups/{user_group_id}\x12\xdb\x01\n\x0f\x43reateUserGroup\x12+.sift.user_groups.v2.CreateUserGroupRequest\x1a,.sift.user_groups.v2.CreateUserGroupResponse\"m\x92\x41L\x12\x0f\x43reateUserGroup\x1a\x15\x43reates a user group.*\"UserGroupService_CreateUserGroupV2\x82\xd3\xe4\x93\x02\x18\"\x13/api/v2/user-groups:\x01*\x12\xf7\x01\n\x0fUpdateUserGroup\x12+.sift.user_groups.v2.UpdateUserGroupRequest\x1a,.sift.user_groups.v2.UpdateUserGroupResponse\"\x88\x01\x92\x41L\x12\x0fUpdateUserGroup\x1a\x15Updates a user group.*\"UserGroupService_UpdateUserGroupV2\x82\xd3\xe4\x93\x02\x33\x32./api/v2/user-groups/{user_group.user_group_id}:\x01*\x12\xe8\x01\n\x0f\x44\x65leteUserGroup\x12+.sift.user_groups.v2.DeleteUserGroupRequest\x1a,.sift.user_groups.v2.DeleteUserGroupResponse\"z\x92\x41L\x12\x0f\x44\x65leteUserGroup\x1a\x15\x44\x65letes a user group.*\"UserGroupService_DeleteUserGroupV2\x82\xd3\xe4\x93\x02%*#/api/v2/user-groups/{user_group_id}\x12\xf8\x01\n\x12\x41\x64\x64UserToUserGroup\x12..sift.user_groups.v2.AddUserToUserGroupRequest\x1a/.sift.user_groups.v2.AddUserToUserGroupResponse\"\x80\x01\x92\x41Y\x12\x12\x41\x64\x64UserToUserGroup\x1a\x1c\x41\x64\x64s a user to a user group.*%UserGroupService_AddUserToUserGroupV2\x82\xd3\xe4\x93\x02\x1e\"\x1c/api/v2/user-groups:add-user\x12\x99\x02\n\x17RemoveUserFromUserGroup\x12\x33.sift.user_groups.v2.RemoveUserFromUserGroupRequest\x1a\x34.sift.user_groups.v2.RemoveUserFromUserGroupResponse\"\x92\x01\x92\x41h\x12\x17RemoveUserFromUserGroup\x1a!Removes a user from a user group.**UserGroupService_RemoveUserFromUserGroupV2\x82\xd3\xe4\x93\x02!\"\x1f/api/v2/user-groups:remove-user\x12\x86\x02\n\x14UpdateUserUserGroups\x12\x30.sift.user_groups.v2.UpdateUserUserGroupsRequest\x1a\x31.sift.user_groups.v2.UpdateUserUserGroupsResponse\"\x88\x01\x92\x41^\x12\x14UpdateUserUserGroups\x1a\x1dUpdates a user\'s user groups.*\'UserGroupService_UpdateUserUserGroupsV2\x82\xd3\xe4\x93\x02!\"\x1f/api/v2/user-groups:update-user\x12\xa1\x02\n\x16GetUserGroupsForAssets\x12\x32.sift.user_groups.v2.GetUserGroupsForAssetsRequest\x1a\x33.sift.user_groups.v2.GetUserGroupsForAssetsResponse\"\x9d\x01\x92\x41p\x12\x16GetUserGroupsForAssets\x1a+Retrieves user groups for a list of assets.*)UserGroupService_GetUserGroupsForAssetsV2\x82\xd3\xe4\x93\x02$\x12\"/api/v2/user-groups:get-for-assetsB\xad\x01\n\x17\x63om.sift.user_groups.v2B\x0fUserGroupsProtoP\x01\xa2\x02\x03SUX\xaa\x02\x12Sift.UserGroups.V2\xca\x02\x12Sift\\UserGroups\\V2\xe2\x02\x1eSift\\UserGroups\\V2\\GPBMetadata\xea\x02\x14Sift::UserGroups::V2\x92\x41\x16\x12\x14\n\x12User Group Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sift/user_groups/v2/user_groups.proto\x12\x13sift.user_groups.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x19sift/roles/v2/roles.proto\"\xf3\x02\n\tUserGroup\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0buserGroupId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x1c\n\x07role_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06roleId\x12\"\n\nis_default\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\tisDefault\x12J\n\tresources\x18\x06 \x01(\x0b\x32\'.sift.user_groups.v2.UserGroup.ResourceB\x03\xe0\x41\x01R\tresources\x12\x1e\n\x08user_ids\x18\x07 \x03(\tB\x03\xe0\x41\x01R\x07userIds\x12$\n\x0bis_external\x18\x08 \x01(\x08\x42\x03\xe0\x41\x02R\nisExternal\x1aP\n\x08Resource\x12 \n\tasset_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x08\x61ssetIds\x12\"\n\nall_assets\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\tallAssets\"\x9a\x01\n\x15ListUserGroupsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8b\x01\n\x16ListUserGroupsResponse\x12\x44\n\x0buser_groups\x18\x01 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\nuserGroups\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"9\n\x13GetUserGroupRequest\x12\"\n\ruser_group_id\x18\x01 \x01(\tR\x0buserGroupId\"Z\n\x14GetUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"\\\n\x1bUpdateUserUserGroupsRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12$\n\x0euser_group_ids\x18\x02 \x03(\tR\x0cuserGroupIds\"\x1e\n\x1cUpdateUserUserGroupsResponse\"\\\n\x16\x43reateUserGroupRequest\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"]\n\x17\x43reateUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"\x9e\x01\n\x16UpdateUserGroupRequest\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"]\n\x17UpdateUserGroupResponse\x12\x42\n\nuser_group\x18\x01 \x01(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\tuserGroup\"A\n\x16\x44\x65leteUserGroupRequest\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0buserGroupId\"\x19\n\x17\x44\x65leteUserGroupResponse\"b\n\x19\x41\x64\x64UserToUserGroupRequest\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0buserGroupId\x12\x1c\n\x07user_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06userId\"\x1c\n\x1a\x41\x64\x64UserToUserGroupResponse\"g\n\x1eRemoveUserFromUserGroupRequest\x12\'\n\ruser_group_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0buserGroupId\x12\x1c\n\x07user_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06userId\"!\n\x1fRemoveUserFromUserGroupResponse\"A\n\x1dGetUserGroupsForAssetsRequest\x12 \n\tasset_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\"\x96\x01\n\x1eGetUserGroupsForAssetsResponse\x12\x44\n\x0buser_groups\x18\x01 \x03(\x0b\x32\x1e.sift.user_groups.v2.UserGroupB\x03\xe0\x41\x02R\nuserGroups\x12.\n\x05roles\x18\x02 \x03(\x0b\x32\x13.sift.roles.v2.RoleB\x03\xe0\x41\x02R\x05roles2\xe8\x11\n\x10UserGroupService\x12\xee\x01\n\x0eListUserGroups\x12*.sift.user_groups.v2.ListUserGroupsRequest\x1a+.sift.user_groups.v2.ListUserGroupsResponse\"\x82\x01\x92\x41\x64\x12\x0eListUserGroups\x1a/Retrieves user groups using an optional filter.*!UserGroupService_ListUserGroupsV2\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v2/user-groups\x12\xdb\x01\n\x0cGetUserGroup\x12(.sift.user_groups.v2.GetUserGroupRequest\x1a).sift.user_groups.v2.GetUserGroupResponse\"v\x92\x41H\x12\x0cGetUserGroup\x1a\x17Retrieves a user group.*\x1fUserGroupService_GetUserGroupV2\x82\xd3\xe4\x93\x02%\x12#/api/v2/user-groups/{user_group_id}\x12\xdb\x01\n\x0f\x43reateUserGroup\x12+.sift.user_groups.v2.CreateUserGroupRequest\x1a,.sift.user_groups.v2.CreateUserGroupResponse\"m\x92\x41L\x12\x0f\x43reateUserGroup\x1a\x15\x43reates a user group.*\"UserGroupService_CreateUserGroupV2\x82\xd3\xe4\x93\x02\x18\"\x13/api/v2/user-groups:\x01*\x12\xf7\x01\n\x0fUpdateUserGroup\x12+.sift.user_groups.v2.UpdateUserGroupRequest\x1a,.sift.user_groups.v2.UpdateUserGroupResponse\"\x88\x01\x92\x41L\x12\x0fUpdateUserGroup\x1a\x15Updates a user group.*\"UserGroupService_UpdateUserGroupV2\x82\xd3\xe4\x93\x02\x33\x32./api/v2/user-groups/{user_group.user_group_id}:\x01*\x12\xe8\x01\n\x0f\x44\x65leteUserGroup\x12+.sift.user_groups.v2.DeleteUserGroupRequest\x1a,.sift.user_groups.v2.DeleteUserGroupResponse\"z\x92\x41L\x12\x0f\x44\x65leteUserGroup\x1a\x15\x44\x65letes a user group.*\"UserGroupService_DeleteUserGroupV2\x82\xd3\xe4\x93\x02%*#/api/v2/user-groups/{user_group_id}\x12\xf8\x01\n\x12\x41\x64\x64UserToUserGroup\x12..sift.user_groups.v2.AddUserToUserGroupRequest\x1a/.sift.user_groups.v2.AddUserToUserGroupResponse\"\x80\x01\x92\x41Y\x12\x12\x41\x64\x64UserToUserGroup\x1a\x1c\x41\x64\x64s a user to a user group.*%UserGroupService_AddUserToUserGroupV2\x82\xd3\xe4\x93\x02\x1e\"\x1c/api/v2/user-groups:add-user\x12\x99\x02\n\x17RemoveUserFromUserGroup\x12\x33.sift.user_groups.v2.RemoveUserFromUserGroupRequest\x1a\x34.sift.user_groups.v2.RemoveUserFromUserGroupResponse\"\x92\x01\x92\x41h\x12\x17RemoveUserFromUserGroup\x1a!Removes a user from a user group.**UserGroupService_RemoveUserFromUserGroupV2\x82\xd3\xe4\x93\x02!\"\x1f/api/v2/user-groups:remove-user\x12\x86\x02\n\x14UpdateUserUserGroups\x12\x30.sift.user_groups.v2.UpdateUserUserGroupsRequest\x1a\x31.sift.user_groups.v2.UpdateUserUserGroupsResponse\"\x88\x01\x92\x41^\x12\x14UpdateUserUserGroups\x1a\x1dUpdates a user\'s user groups.*\'UserGroupService_UpdateUserUserGroupsV2\x82\xd3\xe4\x93\x02!\"\x1f/api/v2/user-groups:update-user\x12\xa1\x02\n\x16GetUserGroupsForAssets\x12\x32.sift.user_groups.v2.GetUserGroupsForAssetsRequest\x1a\x33.sift.user_groups.v2.GetUserGroupsForAssetsResponse\"\x9d\x01\x92\x41p\x12\x16GetUserGroupsForAssets\x1a+Retrieves user groups for a list of assets.*)UserGroupService_GetUserGroupsForAssetsV2\x82\xd3\xe4\x93\x02$\x12\"/api/v2/user-groups:get-for-assetsB\xad\x01\n\x17\x63om.sift.user_groups.v2B\x0fUserGroupsProtoP\x01\xa2\x02\x03SUX\xaa\x02\x12Sift.UserGroups.V2\xca\x02\x12Sift\\UserGroups\\V2\xe2\x02\x1eSift\\UserGroups\\V2\\GPBMetadata\xea\x02\x14Sift::UserGroups::V2\x92\x41\x16\x12\x14\n\x12User Group Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,7 +28,7 @@ _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\027com.sift.user_groups.v2B\017UserGroupsProtoP\001\242\002\003SUX\252\002\022Sift.UserGroups.V2\312\002\022Sift\\UserGroups\\V2\342\002\036Sift\\UserGroups\\V2\\GPBMetadata\352\002\024Sift::UserGroups::V2\222A\026\022\024\n\022User Group Service' _globals['_USERGROUP_RESOURCE'].fields_by_name['asset_ids']._loaded_options = None - _globals['_USERGROUP_RESOURCE'].fields_by_name['asset_ids']._serialized_options = b'\340A\001\272H\n\222\001\007\"\005r\003\260\001\001' + _globals['_USERGROUP_RESOURCE'].fields_by_name['asset_ids']._serialized_options = b'\340A\001' _globals['_USERGROUP_RESOURCE'].fields_by_name['all_assets']._loaded_options = None _globals['_USERGROUP_RESOURCE'].fields_by_name['all_assets']._serialized_options = b'\340A\002' _globals['_USERGROUP'].fields_by_name['user_group_id']._loaded_options = None @@ -43,7 +42,7 @@ _globals['_USERGROUP'].fields_by_name['resources']._loaded_options = None _globals['_USERGROUP'].fields_by_name['resources']._serialized_options = b'\340A\001' _globals['_USERGROUP'].fields_by_name['user_ids']._loaded_options = None - _globals['_USERGROUP'].fields_by_name['user_ids']._serialized_options = b'\340A\001\272H\n\222\001\007\"\005r\003\260\001\001' + _globals['_USERGROUP'].fields_by_name['user_ids']._serialized_options = b'\340A\001' _globals['_USERGROUP'].fields_by_name['is_external']._loaded_options = None _globals['_USERGROUP'].fields_by_name['is_external']._serialized_options = b'\340A\002' _globals['_LISTUSERGROUPSREQUEST'].fields_by_name['page_size']._loaded_options = None @@ -58,14 +57,8 @@ _globals['_LISTUSERGROUPSRESPONSE'].fields_by_name['user_groups']._serialized_options = b'\340A\002' _globals['_LISTUSERGROUPSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None _globals['_LISTUSERGROUPSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\340A\001' - _globals['_GETUSERGROUPREQUEST'].fields_by_name['user_group_id']._loaded_options = None - _globals['_GETUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_GETUSERGROUPRESPONSE'].fields_by_name['user_group']._loaded_options = None _globals['_GETUSERGROUPRESPONSE'].fields_by_name['user_group']._serialized_options = b'\340A\002' - _globals['_UPDATEUSERUSERGROUPSREQUEST'].fields_by_name['user_id']._loaded_options = None - _globals['_UPDATEUSERUSERGROUPSREQUEST'].fields_by_name['user_id']._serialized_options = b'\272H\005r\003\260\001\001' - _globals['_UPDATEUSERUSERGROUPSREQUEST'].fields_by_name['user_group_ids']._loaded_options = None - _globals['_UPDATEUSERUSERGROUPSREQUEST'].fields_by_name['user_group_ids']._serialized_options = b'\272H\n\222\001\007\"\005r\003\260\001\001' _globals['_CREATEUSERGROUPREQUEST'].fields_by_name['user_group']._loaded_options = None _globals['_CREATEUSERGROUPREQUEST'].fields_by_name['user_group']._serialized_options = b'\340A\002' _globals['_CREATEUSERGROUPRESPONSE'].fields_by_name['user_group']._loaded_options = None @@ -73,21 +66,21 @@ _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['user_group']._loaded_options = None _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['user_group']._serialized_options = b'\340A\002' _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['update_mask']._loaded_options = None - _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002\272H\310\001\272\001\304\001\n\027invalid_field_mask_path\022Rfield mask path must be in [\'name\', \'is_default\', \'role_id\', \'resources\', \'users\']\032Uthis.paths.all(path, path in [\'name\', \'is_default\', \'role_id\', \'resources\', \'users\'])' + _globals['_UPDATEUSERGROUPREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002' _globals['_UPDATEUSERGROUPRESPONSE'].fields_by_name['user_group']._loaded_options = None _globals['_UPDATEUSERGROUPRESPONSE'].fields_by_name['user_group']._serialized_options = b'\340A\002' _globals['_DELETEUSERGROUPREQUEST'].fields_by_name['user_group_id']._loaded_options = None - _globals['_DELETEUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_DELETEUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002' _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_group_id']._loaded_options = None - _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002' _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_id']._loaded_options = None - _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_ADDUSERTOUSERGROUPREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002' _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_group_id']._loaded_options = None - _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_group_id']._serialized_options = b'\340A\002' _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_id']._loaded_options = None - _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_REMOVEUSERFROMUSERGROUPREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002' _globals['_GETUSERGROUPSFORASSETSREQUEST'].fields_by_name['asset_ids']._loaded_options = None - _globals['_GETUSERGROUPSFORASSETSREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\002\272H\n\222\001\007\"\005r\003\260\001\001' + _globals['_GETUSERGROUPSFORASSETSREQUEST'].fields_by_name['asset_ids']._serialized_options = b'\340A\002' _globals['_GETUSERGROUPSFORASSETSRESPONSE'].fields_by_name['user_groups']._loaded_options = None _globals['_GETUSERGROUPSFORASSETSRESPONSE'].fields_by_name['user_groups']._serialized_options = b'\340A\002' _globals['_GETUSERGROUPSFORASSETSRESPONSE'].fields_by_name['roles']._loaded_options = None @@ -110,46 +103,46 @@ _globals['_USERGROUPSERVICE'].methods_by_name['UpdateUserUserGroups']._serialized_options = b'\222A^\022\024UpdateUserUserGroups\032\035Updates a user\'s user groups.*\'UserGroupService_UpdateUserUserGroupsV2\202\323\344\223\002!\"\037/api/v2/user-groups:update-user' _globals['_USERGROUPSERVICE'].methods_by_name['GetUserGroupsForAssets']._loaded_options = None _globals['_USERGROUPSERVICE'].methods_by_name['GetUserGroupsForAssets']._serialized_options = b'\222Ap\022\026GetUserGroupsForAssets\032+Retrieves user groups for a list of assets.*)UserGroupService_GetUserGroupsForAssetsV2\202\323\344\223\002$\022\"/api/v2/user-groups:get-for-assets' - _globals['_USERGROUP']._serialized_start=264 - _globals['_USERGROUP']._serialized_end=661 - _globals['_USERGROUP_RESOURCE']._serialized_start=568 - _globals['_USERGROUP_RESOURCE']._serialized_end=661 - _globals['_LISTUSERGROUPSREQUEST']._serialized_start=664 - _globals['_LISTUSERGROUPSREQUEST']._serialized_end=818 - _globals['_LISTUSERGROUPSRESPONSE']._serialized_start=821 - _globals['_LISTUSERGROUPSRESPONSE']._serialized_end=960 - _globals['_GETUSERGROUPREQUEST']._serialized_start=962 - _globals['_GETUSERGROUPREQUEST']._serialized_end=1029 - _globals['_GETUSERGROUPRESPONSE']._serialized_start=1031 - _globals['_GETUSERGROUPRESPONSE']._serialized_end=1121 - _globals['_UPDATEUSERUSERGROUPSREQUEST']._serialized_start=1123 - _globals['_UPDATEUSERUSERGROUPSREQUEST']._serialized_end=1240 - _globals['_UPDATEUSERUSERGROUPSRESPONSE']._serialized_start=1242 - _globals['_UPDATEUSERUSERGROUPSRESPONSE']._serialized_end=1272 - _globals['_CREATEUSERGROUPREQUEST']._serialized_start=1274 - _globals['_CREATEUSERGROUPREQUEST']._serialized_end=1366 - _globals['_CREATEUSERGROUPRESPONSE']._serialized_start=1368 - _globals['_CREATEUSERGROUPRESPONSE']._serialized_end=1461 - _globals['_UPDATEUSERGROUPREQUEST']._serialized_start=1464 - _globals['_UPDATEUSERGROUPREQUEST']._serialized_end=1828 - _globals['_UPDATEUSERGROUPRESPONSE']._serialized_start=1830 - _globals['_UPDATEUSERGROUPRESPONSE']._serialized_end=1923 - _globals['_DELETEUSERGROUPREQUEST']._serialized_start=1925 - _globals['_DELETEUSERGROUPREQUEST']._serialized_end=1998 - _globals['_DELETEUSERGROUPRESPONSE']._serialized_start=2000 - _globals['_DELETEUSERGROUPRESPONSE']._serialized_end=2025 - _globals['_ADDUSERTOUSERGROUPREQUEST']._serialized_start=2027 - _globals['_ADDUSERTOUSERGROUPREQUEST']._serialized_end=2141 - _globals['_ADDUSERTOUSERGROUPRESPONSE']._serialized_start=2143 - _globals['_ADDUSERTOUSERGROUPRESPONSE']._serialized_end=2171 - _globals['_REMOVEUSERFROMUSERGROUPREQUEST']._serialized_start=2173 - _globals['_REMOVEUSERFROMUSERGROUPREQUEST']._serialized_end=2292 - _globals['_REMOVEUSERFROMUSERGROUPRESPONSE']._serialized_start=2294 - _globals['_REMOVEUSERFROMUSERGROUPRESPONSE']._serialized_end=2327 - _globals['_GETUSERGROUPSFORASSETSREQUEST']._serialized_start=2329 - _globals['_GETUSERGROUPSFORASSETSREQUEST']._serialized_end=2407 - _globals['_GETUSERGROUPSFORASSETSRESPONSE']._serialized_start=2410 - _globals['_GETUSERGROUPSFORASSETSRESPONSE']._serialized_end=2560 - _globals['_USERGROUPSERVICE']._serialized_start=2563 - _globals['_USERGROUPSERVICE']._serialized_end=4843 + _globals['_USERGROUP']._serialized_start=235 + _globals['_USERGROUP']._serialized_end=606 + _globals['_USERGROUP_RESOURCE']._serialized_start=526 + _globals['_USERGROUP_RESOURCE']._serialized_end=606 + _globals['_LISTUSERGROUPSREQUEST']._serialized_start=609 + _globals['_LISTUSERGROUPSREQUEST']._serialized_end=763 + _globals['_LISTUSERGROUPSRESPONSE']._serialized_start=766 + _globals['_LISTUSERGROUPSRESPONSE']._serialized_end=905 + _globals['_GETUSERGROUPREQUEST']._serialized_start=907 + _globals['_GETUSERGROUPREQUEST']._serialized_end=964 + _globals['_GETUSERGROUPRESPONSE']._serialized_start=966 + _globals['_GETUSERGROUPRESPONSE']._serialized_end=1056 + _globals['_UPDATEUSERUSERGROUPSREQUEST']._serialized_start=1058 + _globals['_UPDATEUSERUSERGROUPSREQUEST']._serialized_end=1150 + _globals['_UPDATEUSERUSERGROUPSRESPONSE']._serialized_start=1152 + _globals['_UPDATEUSERUSERGROUPSRESPONSE']._serialized_end=1182 + _globals['_CREATEUSERGROUPREQUEST']._serialized_start=1184 + _globals['_CREATEUSERGROUPREQUEST']._serialized_end=1276 + _globals['_CREATEUSERGROUPRESPONSE']._serialized_start=1278 + _globals['_CREATEUSERGROUPRESPONSE']._serialized_end=1371 + _globals['_UPDATEUSERGROUPREQUEST']._serialized_start=1374 + _globals['_UPDATEUSERGROUPREQUEST']._serialized_end=1532 + _globals['_UPDATEUSERGROUPRESPONSE']._serialized_start=1534 + _globals['_UPDATEUSERGROUPRESPONSE']._serialized_end=1627 + _globals['_DELETEUSERGROUPREQUEST']._serialized_start=1629 + _globals['_DELETEUSERGROUPREQUEST']._serialized_end=1694 + _globals['_DELETEUSERGROUPRESPONSE']._serialized_start=1696 + _globals['_DELETEUSERGROUPRESPONSE']._serialized_end=1721 + _globals['_ADDUSERTOUSERGROUPREQUEST']._serialized_start=1723 + _globals['_ADDUSERTOUSERGROUPREQUEST']._serialized_end=1821 + _globals['_ADDUSERTOUSERGROUPRESPONSE']._serialized_start=1823 + _globals['_ADDUSERTOUSERGROUPRESPONSE']._serialized_end=1851 + _globals['_REMOVEUSERFROMUSERGROUPREQUEST']._serialized_start=1853 + _globals['_REMOVEUSERFROMUSERGROUPREQUEST']._serialized_end=1956 + _globals['_REMOVEUSERFROMUSERGROUPRESPONSE']._serialized_start=1958 + _globals['_REMOVEUSERFROMUSERGROUPRESPONSE']._serialized_end=1991 + _globals['_GETUSERGROUPSFORASSETSREQUEST']._serialized_start=1993 + _globals['_GETUSERGROUPSFORASSETSREQUEST']._serialized_end=2058 + _globals['_GETUSERGROUPSFORASSETSRESPONSE']._serialized_start=2061 + _globals['_GETUSERGROUPSFORASSETSRESPONSE']._serialized_end=2211 + _globals['_USERGROUPSERVICE']._serialized_start=2214 + _globals['_USERGROUPSERVICE']._serialized_end=4494 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/webhooks/v1/webhooks_pb2.py b/python/lib/sift/webhooks/v1/webhooks_pb2.py index e5eea375f..0a8065b74 100644 --- a/python/lib/sift/webhooks/v1/webhooks_pb2.py +++ b/python/lib/sift/webhooks/v1/webhooks_pb2.py @@ -12,7 +12,6 @@ _sym_db = _symbol_database.Default() -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 @@ -20,7 +19,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/webhooks/v1/webhooks.proto\x12\x10sift.webhooks.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xff\x05\n\x07Webhook\x12*\n\nwebhook_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\twebhookId\x12\x34\n\x0forganization_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0eorganizationId\x12*\n\ntarget_url\x18\x03 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\ttargetUrl\x12\x1e\n\x04name\x18\x04 \x01(\tB\n\xe0\x41\x02\xbaH\x04r\x02\x10\x01R\x04name\x12\x46\n\nevent_type\x18\x05 \x01(\x0e\x32\".sift.webhooks.v1.WebhookEventTypeB\x03\xe0\x41\x02R\teventType\x12\"\n\x07payload\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12I\n\rarchived_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x0c\x61rchivedDate\x88\x01\x01\x12\x38\n\x12\x63reated_by_user_id\x18\n \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x0f\x63reatedByUserId\x12:\n\x13modified_by_user_id\x18\x0b \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x10modifiedByUserId\x12K\n\x0chttp_headers\x18\x0c \x03(\x0b\x32#.sift.webhooks.v1.WebhookHttpHeaderB\x03\xe0\x41\x02R\x0bhttpHeaders\x12$\n\x0bis_archived\x18\r \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\n\n\x08_payloadB\x10\n\x0e_archived_date\"\xd5\x05\n\nWebhookLog\x12\x31\n\x0ewebhook_log_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\x0cwebhookLogId\x12*\n\nwebhook_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\twebhookId\x12\x1e\n\x08\x65vent_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07\x65ventId\x12\x34\n\x0forganization_id\x18\x04 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\x0eorganizationId\x12?\n\x06status\x18\x05 \x01(\x0e\x32\".sift.webhooks.v1.WebhookLogStatusB\x03\xe0\x41\x02R\x06status\x12\"\n\x07payload\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12\x35\n\x14retry_attempt_number\x18\x07 \x01(\rB\x03\xe0\x41\x02R\x12retryAttemptNumber\x12+\n\x0c\x65rror_reason\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x65rrorReason\x88\x01\x01\x12<\n\tsent_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08sentDate\x12\x42\n\x0c\x63reated_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x0c \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserIdB\n\n\x08_payloadB\x0f\n\r_error_reason\"\xcc\x02\n\x13WebhookSignatureKey\x12(\n\rsignature_key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0csignatureKey\x12\x1b\n\x06\x61\x63tive\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\x06\x61\x63tive\x12\x42\n\x0c\x63reated_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\"O\n\x11WebhookHttpHeader\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xc0\x01\x01R\x04name\x12\x19\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x05value\"?\n\x11GetWebhookRequest\x12*\n\nwebhook_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\twebhookId\"N\n\x12GetWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\xc0\x04\n\x14UpdateWebhookRequest\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\x12\xed\x03\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\xaf\x03\xe0\x41\x02\xbaH\xa8\x03\xba\x01\xa4\x03\n\x17invalid_field_mask_path\x12\xc1\x01\x66ield mask path must be in [\'target_url\', \'targetUrl\', \'name\', \'event_type\', \'eventType\', \'payload\', \'http_headers\', \'httpHeaders\', \'archived_date\', \'archivedDate\', \'is_archived\', \'isArchived\']\x1a\xc4\x01this.paths.all(path, path in [\'target_url\', \'targetUrl\', \'name\', \'event_type\', \'eventType\', \'payload\', \'http_headers\', \'httpHeaders\', \'archived_date\', \'archivedDate\', \'is_archived\', \'isArchived\'])R\nupdateMask\"Q\n\x15UpdateWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\xa7\x02\n\x14\x43reateWebhookRequest\x12\x1e\n\x04name\x18\x01 \x01(\tB\n\xe0\x41\x02\xbaH\x04r\x02\x10\x01R\x04name\x12*\n\ntarget_url\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\x88\x01\x01R\ttargetUrl\x12\x46\n\nevent_type\x18\x03 \x01(\x0e\x32\".sift.webhooks.v1.WebhookEventTypeB\x03\xe0\x41\x02R\teventType\x12\"\n\x07payload\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12K\n\x0chttp_headers\x18\x05 \x03(\x0b\x32#.sift.webhooks.v1.WebhookHttpHeaderB\x03\xe0\x41\x02R\x0bhttpHeadersB\n\n\x08_payload\"Q\n\x15\x43reateWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\xa0\x01\n\x13ListWebhooksRequest\x12(\n\tpage_size\x18\x01 \x01(\rB\x0b\xe0\x41\x01\xbaH\x05*\x03\x18\xe8\x07R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x7f\n\x14ListWebhooksResponse\x12:\n\x08webhooks\x18\x01 \x03(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x08webhooks\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\"\xc5\x01\n\x12TestWebhookRequest\x12\x1f\n\nwebhook_id\x18\x01 \x01(\tH\x00R\twebhookId\x12\x35\n\x07webhook\x18\x02 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookH\x00R\x07webhook\x12O\n\x0e\x63reate_request\x18\x03 \x01(\x0b\x32&.sift.webhooks.v1.CreateWebhookRequestH\x00R\rcreateRequestB\x06\n\x04\x66orm\"{\n\x13TestWebhookResponse\x12\x31\n\x12http_response_code\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x10httpResponseCode\x12\x31\n\x12http_response_body\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02R\x10httpResponseBody\"\"\n CreateWebhookSignatureKeyRequest\"t\n!CreateWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"M\n\x1dGetWebhookSignatureKeyRequest\x12,\n\x0forganization_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"q\n\x1eGetWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"I\n*ToggleWebhookSignatureKeyActivationRequest\x12\x1b\n\x06\x65nable\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x06\x65nable\"~\n+ToggleWebhookSignatureKeyActivationResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"\"\n RotateWebhookSignatureKeyRequest\"t\n!RotateWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"\xa3\x01\n\x16ListWebhookLogsRequest\x12(\n\tpage_size\x18\x01 \x01(\rB\x0b\xe0\x41\x01\xbaH\x05*\x03\x18\xe8\x07R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"}\n\x17ListWebhookLogsResponse\x12\x35\n\x04logs\x18\x01 \x03(\x0b\x32\x1c.sift.webhooks.v1.WebhookLogB\x03\xe0\x41\x02R\x04logs\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\"\x91\x03\n\x17\x43reateWebhookLogRequest\x12*\n\nwebhook_id\x18\x01 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\twebhookId\x12&\n\x08\x65vent_id\x18\x02 \x01(\tB\x0b\xe0\x41\x02\xbaH\x05r\x03\xb0\x01\x01R\x07\x65ventId\x12\x35\n\x14retry_attempt_number\x18\x03 \x01(\rB\x03\xe0\x41\x02R\x12retryAttemptNumber\x12?\n\x06status\x18\x04 \x01(\x0e\x32\".sift.webhooks.v1.WebhookLogStatusB\x03\xe0\x41\x02R\x06status\x12\"\n\x07payload\x18\x05 \x01(\tB\x03\xe0\x41\x02H\x00R\x07payload\x88\x01\x01\x12+\n\x0c\x65rror_reason\x18\x06 \x01(\tB\x03\xe0\x41\x02H\x01R\x0b\x65rrorReason\x88\x01\x01\x12<\n\tsent_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08sentDateB\n\n\x08_payloadB\x0f\n\r_error_reason\"t\n\x1d\x42\x61tchCreateWebhookLogsRequest\x12S\n\x08requests\x18\x01 \x03(\x0b\x32).sift.webhooks.v1.CreateWebhookLogRequestB\x0c\xe0\x41\x02\xbaH\x06\x92\x01\x03\x10\xe8\x07R\x08requests\" \n\x1e\x42\x61tchCreateWebhookLogsResponse*]\n\x10WebhookEventType\x12\"\n\x1eWEBHOOK_EVENT_TYPE_UNSPECIFIED\x10\x00\x12%\n!WEBHOOK_EVENT_TYPE_RULE_VIOLATION\x10\x01*\x93\x01\n\x10WebhookLogStatus\x12\"\n\x1eWEBHOOK_LOG_STATUS_UNSPECIFIED\x10\x00\x12\x1b\n\x17WEBHOOK_LOG_STATUS_SENT\x10\x01\x12\x1d\n\x19WEBHOOK_LOG_STATUS_FAILED\x10\x02\x12\x1f\n\x1bWEBHOOK_LOG_STATUS_RETRYING\x10\x03\x32\xbb\x19\n\x0eWebhookService\x12\xa8\x01\n\nGetWebhook\x12#.sift.webhooks.v1.GetWebhookRequest\x1a$.sift.webhooks.v1.GetWebhookResponse\"O\x92\x41\'\x12\nGetWebhook\x1a\x19Retrieve a webhook by ID.\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v1/webhooks/{webhook_id}\x12\xa2\x01\n\rCreateWebhook\x12&.sift.webhooks.v1.CreateWebhookRequest\x1a\'.sift.webhooks.v1.CreateWebhookResponse\"@\x92\x41\"\x12\rCreateWebhook\x1a\x11\x43reate a webhook.\x82\xd3\xe4\x93\x02\x15\"\x10/api/v1/webhooks:\x01*\x12\xbd\x01\n\rUpdateWebhook\x12&.sift.webhooks.v1.UpdateWebhookRequest\x1a\'.sift.webhooks.v1.UpdateWebhookResponse\"[\x92\x41=\x12\rUpdateWebhook\x1a,Update select fields of an existing webhook.\x82\xd3\xe4\x93\x02\x15\x32\x10/api/v1/webhooks:\x01*\x12\xbc\x01\n\x0cListWebhooks\x12%.sift.webhooks.v1.ListWebhooksRequest\x1a&.sift.webhooks.v1.ListWebhooksResponse\"]\x92\x41\x42\x12\x0cListWebhooks\x1a\x32Retrieve and optionally filter a list of webhooks.\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/webhooks\x12\xc2\x02\n\x0bTestWebhook\x12$.sift.webhooks.v1.TestWebhookRequest\x1a%.sift.webhooks.v1.TestWebhookResponse\"\xe5\x01\x92\x41\xc1\x01\x12\x0bTestWebhook\x1a\xb1\x01Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook with the provided parameters and forward back the response from the target.\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/webhooks:test:\x01*\x12\x8a\x05\n\x19\x43reateWebhookSignatureKey\x12\x32.sift.webhooks.v1.CreateWebhookSignatureKeyRequest\x1a\x33.sift.webhooks.v1.CreateWebhookSignatureKeyResponse\"\x83\x04\x92\x41\xd6\x03\x12!CreateOrUpdateWebhookSignatureKey\x1a\xb0\x03\x43reate a webhook signature key and set its activation state. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256.The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then this will simply return it.See `WebhookService_RotateWebhookSignatureKey` to rotate the key.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/webhooks/signature-key:\x01*\x12\xa4\x02\n\x16GetWebhookSignatureKey\x12/.sift.webhooks.v1.GetWebhookSignatureKeyRequest\x1a\x30.sift.webhooks.v1.GetWebhookSignatureKeyResponse\"\xa6\x01\x92\x41}\x12\x16GetWebhookSignatureKey\x1a\x63Retrieve the current webhook signature key. Will return a not found error if one doesn\'t yet exist.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/webhooks/signature-key\x12\xff\x02\n#ToggleWebhookSignatureKeyActivation\x12<.sift.webhooks.v1.ToggleWebhookSignatureKeyActivationRequest\x1a=.sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse\"\xda\x01\x92\x41\xad\x01\x12#ToggleWebhookSignatureKeyActivation\x1a\x85\x01Set the activation state of the organization\'s current webhook signature key. Will return a not found error if one doesn\'t yet exist.\x82\xd3\xe4\x93\x02#2\x1e/api/v1/webhooks/signature-key:\x01*\x12\xf3\x02\n\x19RotateWebhookSignatureKey\x12\x32.sift.webhooks.v1.RotateWebhookSignatureKeyRequest\x1a\x33.sift.webhooks.v1.RotateWebhookSignatureKeyResponse\"\xec\x01\x92\x41\xbf\x01\x12#ToggleWebhookSignatureKeyActivation\x1a\x97\x01Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous.\x82\xd3\xe4\x93\x02#\x1a\x1e/api/v1/webhooks/signature-key:\x01*\x12\x94\x02\n\x16\x42\x61tchCreateWebhookLogs\x12/.sift.webhooks.v1.BatchCreateWebhookLogsRequest\x1a\x30.sift.webhooks.v1.BatchCreateWebhookLogsResponse\"\x96\x01\x92\x41\x66\x12\x16\x42\x61tchCreateWebhookLogs\x1aLCreate a batch of webhook logs. Users should not have to call this directly.\x82\xd3\xe4\x93\x02\'\"\"/api/v1/webhooks/logs:batch-create:\x01*\x12\xd1\x01\n\x0fListWebhookLogs\x12(.sift.webhooks.v1.ListWebhookLogsRequest\x1a).sift.webhooks.v1.ListWebhookLogsResponse\"i\x92\x41I\x12\x0fListWebhookLogs\x1a\x36Retrieve and optionally filter a list of webhook logs.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/webhooks/logsB\x87\x01\n\x14\x63om.sift.webhooks.v1B\rWebhooksProtoP\x01\xa2\x02\x03SWX\xaa\x02\x10Sift.Webhooks.V1\xca\x02\x10Sift\\Webhooks\\V1\xe2\x02\x1cSift\\Webhooks\\V1\\GPBMetadata\xea\x02\x12Sift::Webhooks::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/webhooks/v1/webhooks.proto\x12\x10sift.webhooks.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xd0\x05\n\x07Webhook\x12\"\n\nwebhook_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\twebhookId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\"\n\ntarget_url\x18\x03 \x01(\tB\x03\xe0\x41\x02R\ttargetUrl\x12\x17\n\x04name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x46\n\nevent_type\x18\x05 \x01(\x0e\x32\".sift.webhooks.v1.WebhookEventTypeB\x03\xe0\x41\x02R\teventType\x12\"\n\x07payload\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12I\n\rarchived_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x0c\x61rchivedDate\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12K\n\x0chttp_headers\x18\x0c \x03(\x0b\x32#.sift.webhooks.v1.WebhookHttpHeaderB\x03\xe0\x41\x02R\x0bhttpHeaders\x12$\n\x0bis_archived\x18\r \x01(\x08\x42\x03\xe0\x41\x02R\nisArchivedB\n\n\x08_payloadB\x10\n\x0e_archived_date\"\xbd\x05\n\nWebhookLog\x12)\n\x0ewebhook_log_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cwebhookLogId\x12\"\n\nwebhook_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\twebhookId\x12\x1e\n\x08\x65vent_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07\x65ventId\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12?\n\x06status\x18\x05 \x01(\x0e\x32\".sift.webhooks.v1.WebhookLogStatusB\x03\xe0\x41\x02R\x06status\x12\"\n\x07payload\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12\x35\n\x14retry_attempt_number\x18\x07 \x01(\rB\x03\xe0\x41\x02R\x12retryAttemptNumber\x12+\n\x0c\x65rror_reason\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x01R\x0b\x65rrorReason\x88\x01\x01\x12<\n\tsent_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08sentDate\x12\x42\n\x0c\x63reated_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x0c \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserIdB\n\n\x08_payloadB\x0f\n\r_error_reason\"\xcc\x02\n\x13WebhookSignatureKey\x12(\n\rsignature_key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0csignatureKey\x12\x1b\n\x06\x61\x63tive\x18\x02 \x01(\x08\x42\x03\xe0\x41\x02R\x06\x61\x63tive\x12\x42\n\x0c\x63reated_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\"G\n\x11WebhookHttpHeader\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\x19\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x05value\"7\n\x11GetWebhookRequest\x12\"\n\nwebhook_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\twebhookId\"N\n\x12GetWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\x92\x01\n\x14UpdateWebhookRequest\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"Q\n\x15UpdateWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\x98\x02\n\x14\x43reateWebhookRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\"\n\ntarget_url\x18\x02 \x01(\tB\x03\xe0\x41\x02R\ttargetUrl\x12\x46\n\nevent_type\x18\x03 \x01(\x0e\x32\".sift.webhooks.v1.WebhookEventTypeB\x03\xe0\x41\x02R\teventType\x12\"\n\x07payload\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x07payload\x88\x01\x01\x12K\n\x0chttp_headers\x18\x05 \x03(\x0b\x32#.sift.webhooks.v1.WebhookHttpHeaderB\x03\xe0\x41\x02R\x0bhttpHeadersB\n\n\x08_payload\"Q\n\x15\x43reateWebhookResponse\x12\x38\n\x07webhook\x18\x01 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x07webhook\"\x98\x01\n\x13ListWebhooksRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x7f\n\x14ListWebhooksResponse\x12:\n\x08webhooks\x18\x01 \x03(\x0b\x32\x19.sift.webhooks.v1.WebhookB\x03\xe0\x41\x02R\x08webhooks\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\"\xc5\x01\n\x12TestWebhookRequest\x12\x1f\n\nwebhook_id\x18\x01 \x01(\tH\x00R\twebhookId\x12\x35\n\x07webhook\x18\x02 \x01(\x0b\x32\x19.sift.webhooks.v1.WebhookH\x00R\x07webhook\x12O\n\x0e\x63reate_request\x18\x03 \x01(\x0b\x32&.sift.webhooks.v1.CreateWebhookRequestH\x00R\rcreateRequestB\x06\n\x04\x66orm\"{\n\x13TestWebhookResponse\x12\x31\n\x12http_response_code\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x10httpResponseCode\x12\x31\n\x12http_response_body\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02R\x10httpResponseBody\"\"\n CreateWebhookSignatureKeyRequest\"t\n!CreateWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"M\n\x1dGetWebhookSignatureKeyRequest\x12,\n\x0forganization_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"q\n\x1eGetWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"I\n*ToggleWebhookSignatureKeyActivationRequest\x12\x1b\n\x06\x65nable\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x06\x65nable\"~\n+ToggleWebhookSignatureKeyActivationResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"\"\n RotateWebhookSignatureKeyRequest\"t\n!RotateWebhookSignatureKeyResponse\x12O\n\rsignature_key\x18\x01 \x01(\x0b\x32%.sift.webhooks.v1.WebhookSignatureKeyB\x03\xe0\x41\x02R\x0csignatureKey\"\x9b\x01\n\x16ListWebhookLogsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"}\n\x17ListWebhookLogsResponse\x12\x35\n\x04logs\x18\x01 \x03(\x0b\x32\x1c.sift.webhooks.v1.WebhookLogB\x03\xe0\x41\x02R\x04logs\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\"\x81\x03\n\x17\x43reateWebhookLogRequest\x12\"\n\nwebhook_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\twebhookId\x12\x1e\n\x08\x65vent_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x07\x65ventId\x12\x35\n\x14retry_attempt_number\x18\x03 \x01(\rB\x03\xe0\x41\x02R\x12retryAttemptNumber\x12?\n\x06status\x18\x04 \x01(\x0e\x32\".sift.webhooks.v1.WebhookLogStatusB\x03\xe0\x41\x02R\x06status\x12\"\n\x07payload\x18\x05 \x01(\tB\x03\xe0\x41\x02H\x00R\x07payload\x88\x01\x01\x12+\n\x0c\x65rror_reason\x18\x06 \x01(\tB\x03\xe0\x41\x02H\x01R\x0b\x65rrorReason\x88\x01\x01\x12<\n\tsent_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08sentDateB\n\n\x08_payloadB\x0f\n\r_error_reason\"k\n\x1d\x42\x61tchCreateWebhookLogsRequest\x12J\n\x08requests\x18\x01 \x03(\x0b\x32).sift.webhooks.v1.CreateWebhookLogRequestB\x03\xe0\x41\x02R\x08requests\" \n\x1e\x42\x61tchCreateWebhookLogsResponse*]\n\x10WebhookEventType\x12\"\n\x1eWEBHOOK_EVENT_TYPE_UNSPECIFIED\x10\x00\x12%\n!WEBHOOK_EVENT_TYPE_RULE_VIOLATION\x10\x01*\x93\x01\n\x10WebhookLogStatus\x12\"\n\x1eWEBHOOK_LOG_STATUS_UNSPECIFIED\x10\x00\x12\x1b\n\x17WEBHOOK_LOG_STATUS_SENT\x10\x01\x12\x1d\n\x19WEBHOOK_LOG_STATUS_FAILED\x10\x02\x12\x1f\n\x1bWEBHOOK_LOG_STATUS_RETRYING\x10\x03\x32\xbb\x19\n\x0eWebhookService\x12\xa8\x01\n\nGetWebhook\x12#.sift.webhooks.v1.GetWebhookRequest\x1a$.sift.webhooks.v1.GetWebhookResponse\"O\x92\x41\'\x12\nGetWebhook\x1a\x19Retrieve a webhook by ID.\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v1/webhooks/{webhook_id}\x12\xa2\x01\n\rCreateWebhook\x12&.sift.webhooks.v1.CreateWebhookRequest\x1a\'.sift.webhooks.v1.CreateWebhookResponse\"@\x92\x41\"\x12\rCreateWebhook\x1a\x11\x43reate a webhook.\x82\xd3\xe4\x93\x02\x15\"\x10/api/v1/webhooks:\x01*\x12\xbd\x01\n\rUpdateWebhook\x12&.sift.webhooks.v1.UpdateWebhookRequest\x1a\'.sift.webhooks.v1.UpdateWebhookResponse\"[\x92\x41=\x12\rUpdateWebhook\x1a,Update select fields of an existing webhook.\x82\xd3\xe4\x93\x02\x15\x32\x10/api/v1/webhooks:\x01*\x12\xbc\x01\n\x0cListWebhooks\x12%.sift.webhooks.v1.ListWebhooksRequest\x1a&.sift.webhooks.v1.ListWebhooksResponse\"]\x92\x41\x42\x12\x0cListWebhooks\x1a\x32Retrieve and optionally filter a list of webhooks.\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/webhooks\x12\xc2\x02\n\x0bTestWebhook\x12$.sift.webhooks.v1.TestWebhookRequest\x1a%.sift.webhooks.v1.TestWebhookResponse\"\xe5\x01\x92\x41\xc1\x01\x12\x0bTestWebhook\x1a\xb1\x01Test an existing webhook or a webhook create request. This RPC will attempt to send an actual webhook with the provided parameters and forward back the response from the target.\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/webhooks:test:\x01*\x12\x8a\x05\n\x19\x43reateWebhookSignatureKey\x12\x32.sift.webhooks.v1.CreateWebhookSignatureKeyRequest\x1a\x33.sift.webhooks.v1.CreateWebhookSignatureKeyResponse\"\x83\x04\x92\x41\xd6\x03\x12!CreateOrUpdateWebhookSignatureKey\x1a\xb0\x03\x43reate a webhook signature key and set its activation state. If a webhook signature key is active, the bodies of all webhooks will be signed using the signature key with HMAC-SHA-256.The signature generated will then included in the `X-Sift-Signature` HTTP header. Only one key can be held per organization. If an existing key exists, then this will simply return it.See `WebhookService_RotateWebhookSignatureKey` to rotate the key.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/webhooks/signature-key:\x01*\x12\xa4\x02\n\x16GetWebhookSignatureKey\x12/.sift.webhooks.v1.GetWebhookSignatureKeyRequest\x1a\x30.sift.webhooks.v1.GetWebhookSignatureKeyResponse\"\xa6\x01\x92\x41}\x12\x16GetWebhookSignatureKey\x1a\x63Retrieve the current webhook signature key. Will return a not found error if one doesn\'t yet exist.\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/webhooks/signature-key\x12\xff\x02\n#ToggleWebhookSignatureKeyActivation\x12<.sift.webhooks.v1.ToggleWebhookSignatureKeyActivationRequest\x1a=.sift.webhooks.v1.ToggleWebhookSignatureKeyActivationResponse\"\xda\x01\x92\x41\xad\x01\x12#ToggleWebhookSignatureKeyActivation\x1a\x85\x01Set the activation state of the organization\'s current webhook signature key. Will return a not found error if one doesn\'t yet exist.\x82\xd3\xe4\x93\x02#2\x1e/api/v1/webhooks/signature-key:\x01*\x12\xf3\x02\n\x19RotateWebhookSignatureKey\x12\x32.sift.webhooks.v1.RotateWebhookSignatureKeyRequest\x1a\x33.sift.webhooks.v1.RotateWebhookSignatureKeyResponse\"\xec\x01\x92\x41\xbf\x01\x12#ToggleWebhookSignatureKeyActivation\x1a\x97\x01Generate a new webhook signature key and replace the previous one. The activation state of the new key will match the activation state of the previous.\x82\xd3\xe4\x93\x02#\x1a\x1e/api/v1/webhooks/signature-key:\x01*\x12\x94\x02\n\x16\x42\x61tchCreateWebhookLogs\x12/.sift.webhooks.v1.BatchCreateWebhookLogsRequest\x1a\x30.sift.webhooks.v1.BatchCreateWebhookLogsResponse\"\x96\x01\x92\x41\x66\x12\x16\x42\x61tchCreateWebhookLogs\x1aLCreate a batch of webhook logs. Users should not have to call this directly.\x82\xd3\xe4\x93\x02\'\"\"/api/v1/webhooks/logs:batch-create:\x01*\x12\xd1\x01\n\x0fListWebhookLogs\x12(.sift.webhooks.v1.ListWebhookLogsRequest\x1a).sift.webhooks.v1.ListWebhookLogsResponse\"i\x92\x41I\x12\x0fListWebhookLogs\x1a\x36Retrieve and optionally filter a list of webhook logs.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/webhooks/logsB\x87\x01\n\x14\x63om.sift.webhooks.v1B\rWebhooksProtoP\x01\xa2\x02\x03SWX\xaa\x02\x10Sift.Webhooks.V1\xca\x02\x10Sift\\Webhooks\\V1\xe2\x02\x1cSift\\Webhooks\\V1\\GPBMetadata\xea\x02\x12Sift::Webhooks::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,13 +28,13 @@ _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\024com.sift.webhooks.v1B\rWebhooksProtoP\001\242\002\003SWX\252\002\020Sift.Webhooks.V1\312\002\020Sift\\Webhooks\\V1\342\002\034Sift\\Webhooks\\V1\\GPBMetadata\352\002\022Sift::Webhooks::V1' _globals['_WEBHOOK'].fields_by_name['webhook_id']._loaded_options = None - _globals['_WEBHOOK'].fields_by_name['webhook_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_WEBHOOK'].fields_by_name['webhook_id']._serialized_options = b'\340A\002' _globals['_WEBHOOK'].fields_by_name['organization_id']._loaded_options = None - _globals['_WEBHOOK'].fields_by_name['organization_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_WEBHOOK'].fields_by_name['organization_id']._serialized_options = b'\340A\002' _globals['_WEBHOOK'].fields_by_name['target_url']._loaded_options = None - _globals['_WEBHOOK'].fields_by_name['target_url']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_WEBHOOK'].fields_by_name['target_url']._serialized_options = b'\340A\002' _globals['_WEBHOOK'].fields_by_name['name']._loaded_options = None - _globals['_WEBHOOK'].fields_by_name['name']._serialized_options = b'\340A\002\272H\004r\002\020\001' + _globals['_WEBHOOK'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_WEBHOOK'].fields_by_name['event_type']._loaded_options = None _globals['_WEBHOOK'].fields_by_name['event_type']._serialized_options = b'\340A\002' _globals['_WEBHOOK'].fields_by_name['payload']._loaded_options = None @@ -47,21 +46,21 @@ _globals['_WEBHOOK'].fields_by_name['archived_date']._loaded_options = None _globals['_WEBHOOK'].fields_by_name['archived_date']._serialized_options = b'\340A\001' _globals['_WEBHOOK'].fields_by_name['created_by_user_id']._loaded_options = None - _globals['_WEBHOOK'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_WEBHOOK'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\002' _globals['_WEBHOOK'].fields_by_name['modified_by_user_id']._loaded_options = None - _globals['_WEBHOOK'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_WEBHOOK'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\002' _globals['_WEBHOOK'].fields_by_name['http_headers']._loaded_options = None _globals['_WEBHOOK'].fields_by_name['http_headers']._serialized_options = b'\340A\002' _globals['_WEBHOOK'].fields_by_name['is_archived']._loaded_options = None _globals['_WEBHOOK'].fields_by_name['is_archived']._serialized_options = b'\340A\002' _globals['_WEBHOOKLOG'].fields_by_name['webhook_log_id']._loaded_options = None - _globals['_WEBHOOKLOG'].fields_by_name['webhook_log_id']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_WEBHOOKLOG'].fields_by_name['webhook_log_id']._serialized_options = b'\340A\002' _globals['_WEBHOOKLOG'].fields_by_name['webhook_id']._loaded_options = None - _globals['_WEBHOOKLOG'].fields_by_name['webhook_id']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_WEBHOOKLOG'].fields_by_name['webhook_id']._serialized_options = b'\340A\002' _globals['_WEBHOOKLOG'].fields_by_name['event_id']._loaded_options = None _globals['_WEBHOOKLOG'].fields_by_name['event_id']._serialized_options = b'\340A\002' _globals['_WEBHOOKLOG'].fields_by_name['organization_id']._loaded_options = None - _globals['_WEBHOOKLOG'].fields_by_name['organization_id']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_WEBHOOKLOG'].fields_by_name['organization_id']._serialized_options = b'\340A\002' _globals['_WEBHOOKLOG'].fields_by_name['status']._loaded_options = None _globals['_WEBHOOKLOG'].fields_by_name['status']._serialized_options = b'\340A\002' _globals['_WEBHOOKLOG'].fields_by_name['payload']._loaded_options = None @@ -93,23 +92,23 @@ _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['modified_by_user_id']._loaded_options = None _globals['_WEBHOOKSIGNATUREKEY'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\002' _globals['_WEBHOOKHTTPHEADER'].fields_by_name['name']._loaded_options = None - _globals['_WEBHOOKHTTPHEADER'].fields_by_name['name']._serialized_options = b'\340A\002\272H\005r\003\300\001\001' + _globals['_WEBHOOKHTTPHEADER'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_WEBHOOKHTTPHEADER'].fields_by_name['value']._loaded_options = None _globals['_WEBHOOKHTTPHEADER'].fields_by_name['value']._serialized_options = b'\340A\002' _globals['_GETWEBHOOKREQUEST'].fields_by_name['webhook_id']._loaded_options = None - _globals['_GETWEBHOOKREQUEST'].fields_by_name['webhook_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_GETWEBHOOKREQUEST'].fields_by_name['webhook_id']._serialized_options = b'\340A\002' _globals['_GETWEBHOOKRESPONSE'].fields_by_name['webhook']._loaded_options = None _globals['_GETWEBHOOKRESPONSE'].fields_by_name['webhook']._serialized_options = b'\340A\002' _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['webhook']._loaded_options = None _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['webhook']._serialized_options = b'\340A\002' _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['update_mask']._loaded_options = None - _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002\272H\250\003\272\001\244\003\n\027invalid_field_mask_path\022\301\001field mask path must be in [\'target_url\', \'targetUrl\', \'name\', \'event_type\', \'eventType\', \'payload\', \'http_headers\', \'httpHeaders\', \'archived_date\', \'archivedDate\', \'is_archived\', \'isArchived\']\032\304\001this.paths.all(path, path in [\'target_url\', \'targetUrl\', \'name\', \'event_type\', \'eventType\', \'payload\', \'http_headers\', \'httpHeaders\', \'archived_date\', \'archivedDate\', \'is_archived\', \'isArchived\'])' + _globals['_UPDATEWEBHOOKREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002' _globals['_UPDATEWEBHOOKRESPONSE'].fields_by_name['webhook']._loaded_options = None _globals['_UPDATEWEBHOOKRESPONSE'].fields_by_name['webhook']._serialized_options = b'\340A\002' _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['name']._loaded_options = None - _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002\272H\004r\002\020\001' + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['target_url']._loaded_options = None - _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['target_url']._serialized_options = b'\340A\002\272H\005r\003\210\001\001' + _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['target_url']._serialized_options = b'\340A\002' _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['event_type']._loaded_options = None _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['event_type']._serialized_options = b'\340A\002' _globals['_CREATEWEBHOOKREQUEST'].fields_by_name['payload']._loaded_options = None @@ -119,7 +118,7 @@ _globals['_CREATEWEBHOOKRESPONSE'].fields_by_name['webhook']._loaded_options = None _globals['_CREATEWEBHOOKRESPONSE'].fields_by_name['webhook']._serialized_options = b'\340A\002' _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_size']._loaded_options = None - _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001\272H\005*\003\030\350\007' + _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001' _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_token']._loaded_options = None _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001' _globals['_LISTWEBHOOKSREQUEST'].fields_by_name['filter']._loaded_options = None @@ -147,7 +146,7 @@ _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE'].fields_by_name['signature_key']._loaded_options = None _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE'].fields_by_name['signature_key']._serialized_options = b'\340A\002' _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_size']._loaded_options = None - _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001\272H\005*\003\030\350\007' + _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001' _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_token']._loaded_options = None _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001' _globals['_LISTWEBHOOKLOGSREQUEST'].fields_by_name['filter']._loaded_options = None @@ -159,9 +158,9 @@ _globals['_LISTWEBHOOKLOGSRESPONSE'].fields_by_name['next_page_token']._loaded_options = None _globals['_LISTWEBHOOKLOGSRESPONSE'].fields_by_name['next_page_token']._serialized_options = b'\340A\002' _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['webhook_id']._loaded_options = None - _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['webhook_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['webhook_id']._serialized_options = b'\340A\002' _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['event_id']._loaded_options = None - _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['event_id']._serialized_options = b'\340A\002\272H\005r\003\260\001\001' + _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['event_id']._serialized_options = b'\340A\002' _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['retry_attempt_number']._loaded_options = None _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['retry_attempt_number']._serialized_options = b'\340A\002' _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['status']._loaded_options = None @@ -173,7 +172,7 @@ _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['sent_date']._loaded_options = None _globals['_CREATEWEBHOOKLOGREQUEST'].fields_by_name['sent_date']._serialized_options = b'\340A\002' _globals['_BATCHCREATEWEBHOOKLOGSREQUEST'].fields_by_name['requests']._loaded_options = None - _globals['_BATCHCREATEWEBHOOKLOGSREQUEST'].fields_by_name['requests']._serialized_options = b'\340A\002\272H\006\222\001\003\020\350\007' + _globals['_BATCHCREATEWEBHOOKLOGSREQUEST'].fields_by_name['requests']._serialized_options = b'\340A\002' _globals['_WEBHOOKSERVICE'].methods_by_name['GetWebhook']._loaded_options = None _globals['_WEBHOOKSERVICE'].methods_by_name['GetWebhook']._serialized_options = b'\222A\'\022\nGetWebhook\032\031Retrieve a webhook by ID.\202\323\344\223\002\037\022\035/api/v1/webhooks/{webhook_id}' _globals['_WEBHOOKSERVICE'].methods_by_name['CreateWebhook']._loaded_options = None @@ -196,64 +195,64 @@ _globals['_WEBHOOKSERVICE'].methods_by_name['BatchCreateWebhookLogs']._serialized_options = b'\222Af\022\026BatchCreateWebhookLogs\032LCreate a batch of webhook logs. Users should not have to call this directly.\202\323\344\223\002\'\"\"/api/v1/webhooks/logs:batch-create:\001*' _globals['_WEBHOOKSERVICE'].methods_by_name['ListWebhookLogs']._loaded_options = None _globals['_WEBHOOKSERVICE'].methods_by_name['ListWebhookLogs']._serialized_options = b'\222AI\022\017ListWebhookLogs\0326Retrieve and optionally filter a list of webhook logs.\202\323\344\223\002\027\022\025/api/v1/webhooks/logs' - _globals['_WEBHOOKEVENTTYPE']._serialized_start=5533 - _globals['_WEBHOOKEVENTTYPE']._serialized_end=5626 - _globals['_WEBHOOKLOGSTATUS']._serialized_start=5629 - _globals['_WEBHOOKLOGSTATUS']._serialized_end=5776 - _globals['_WEBHOOK']._serialized_start=261 - _globals['_WEBHOOK']._serialized_end=1028 - _globals['_WEBHOOKLOG']._serialized_start=1031 - _globals['_WEBHOOKLOG']._serialized_end=1756 - _globals['_WEBHOOKSIGNATUREKEY']._serialized_start=1759 - _globals['_WEBHOOKSIGNATUREKEY']._serialized_end=2091 - _globals['_WEBHOOKHTTPHEADER']._serialized_start=2093 - _globals['_WEBHOOKHTTPHEADER']._serialized_end=2172 - _globals['_GETWEBHOOKREQUEST']._serialized_start=2174 - _globals['_GETWEBHOOKREQUEST']._serialized_end=2237 - _globals['_GETWEBHOOKRESPONSE']._serialized_start=2239 - _globals['_GETWEBHOOKRESPONSE']._serialized_end=2317 - _globals['_UPDATEWEBHOOKREQUEST']._serialized_start=2320 - _globals['_UPDATEWEBHOOKREQUEST']._serialized_end=2896 - _globals['_UPDATEWEBHOOKRESPONSE']._serialized_start=2898 - _globals['_UPDATEWEBHOOKRESPONSE']._serialized_end=2979 - _globals['_CREATEWEBHOOKREQUEST']._serialized_start=2982 - _globals['_CREATEWEBHOOKREQUEST']._serialized_end=3277 - _globals['_CREATEWEBHOOKRESPONSE']._serialized_start=3279 - _globals['_CREATEWEBHOOKRESPONSE']._serialized_end=3360 - _globals['_LISTWEBHOOKSREQUEST']._serialized_start=3363 - _globals['_LISTWEBHOOKSREQUEST']._serialized_end=3523 - _globals['_LISTWEBHOOKSRESPONSE']._serialized_start=3525 - _globals['_LISTWEBHOOKSRESPONSE']._serialized_end=3652 - _globals['_TESTWEBHOOKREQUEST']._serialized_start=3655 - _globals['_TESTWEBHOOKREQUEST']._serialized_end=3852 - _globals['_TESTWEBHOOKRESPONSE']._serialized_start=3854 - _globals['_TESTWEBHOOKRESPONSE']._serialized_end=3977 - _globals['_CREATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=3979 - _globals['_CREATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=4013 - _globals['_CREATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=4015 - _globals['_CREATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=4131 - _globals['_GETWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=4133 - _globals['_GETWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=4210 - _globals['_GETWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=4212 - _globals['_GETWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=4325 - _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONREQUEST']._serialized_start=4327 - _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONREQUEST']._serialized_end=4400 - _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONRESPONSE']._serialized_start=4402 - _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONRESPONSE']._serialized_end=4528 - _globals['_ROTATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=4530 - _globals['_ROTATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=4564 - _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=4566 - _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=4682 - _globals['_LISTWEBHOOKLOGSREQUEST']._serialized_start=4685 - _globals['_LISTWEBHOOKLOGSREQUEST']._serialized_end=4848 - _globals['_LISTWEBHOOKLOGSRESPONSE']._serialized_start=4850 - _globals['_LISTWEBHOOKLOGSRESPONSE']._serialized_end=4975 - _globals['_CREATEWEBHOOKLOGREQUEST']._serialized_start=4978 - _globals['_CREATEWEBHOOKLOGREQUEST']._serialized_end=5379 - _globals['_BATCHCREATEWEBHOOKLOGSREQUEST']._serialized_start=5381 - _globals['_BATCHCREATEWEBHOOKLOGSREQUEST']._serialized_end=5497 - _globals['_BATCHCREATEWEBHOOKLOGSRESPONSE']._serialized_start=5499 - _globals['_BATCHCREATEWEBHOOKLOGSRESPONSE']._serialized_end=5531 - _globals['_WEBHOOKSERVICE']._serialized_start=5779 - _globals['_WEBHOOKSERVICE']._serialized_end=9038 + _globals['_WEBHOOKEVENTTYPE']._serialized_start=4931 + _globals['_WEBHOOKEVENTTYPE']._serialized_end=5024 + _globals['_WEBHOOKLOGSTATUS']._serialized_start=5027 + _globals['_WEBHOOKLOGSTATUS']._serialized_end=5174 + _globals['_WEBHOOK']._serialized_start=232 + _globals['_WEBHOOK']._serialized_end=952 + _globals['_WEBHOOKLOG']._serialized_start=955 + _globals['_WEBHOOKLOG']._serialized_end=1656 + _globals['_WEBHOOKSIGNATUREKEY']._serialized_start=1659 + _globals['_WEBHOOKSIGNATUREKEY']._serialized_end=1991 + _globals['_WEBHOOKHTTPHEADER']._serialized_start=1993 + _globals['_WEBHOOKHTTPHEADER']._serialized_end=2064 + _globals['_GETWEBHOOKREQUEST']._serialized_start=2066 + _globals['_GETWEBHOOKREQUEST']._serialized_end=2121 + _globals['_GETWEBHOOKRESPONSE']._serialized_start=2123 + _globals['_GETWEBHOOKRESPONSE']._serialized_end=2201 + _globals['_UPDATEWEBHOOKREQUEST']._serialized_start=2204 + _globals['_UPDATEWEBHOOKREQUEST']._serialized_end=2350 + _globals['_UPDATEWEBHOOKRESPONSE']._serialized_start=2352 + _globals['_UPDATEWEBHOOKRESPONSE']._serialized_end=2433 + _globals['_CREATEWEBHOOKREQUEST']._serialized_start=2436 + _globals['_CREATEWEBHOOKREQUEST']._serialized_end=2716 + _globals['_CREATEWEBHOOKRESPONSE']._serialized_start=2718 + _globals['_CREATEWEBHOOKRESPONSE']._serialized_end=2799 + _globals['_LISTWEBHOOKSREQUEST']._serialized_start=2802 + _globals['_LISTWEBHOOKSREQUEST']._serialized_end=2954 + _globals['_LISTWEBHOOKSRESPONSE']._serialized_start=2956 + _globals['_LISTWEBHOOKSRESPONSE']._serialized_end=3083 + _globals['_TESTWEBHOOKREQUEST']._serialized_start=3086 + _globals['_TESTWEBHOOKREQUEST']._serialized_end=3283 + _globals['_TESTWEBHOOKRESPONSE']._serialized_start=3285 + _globals['_TESTWEBHOOKRESPONSE']._serialized_end=3408 + _globals['_CREATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=3410 + _globals['_CREATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=3444 + _globals['_CREATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=3446 + _globals['_CREATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=3562 + _globals['_GETWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=3564 + _globals['_GETWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=3641 + _globals['_GETWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=3643 + _globals['_GETWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=3756 + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONREQUEST']._serialized_start=3758 + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONREQUEST']._serialized_end=3831 + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONRESPONSE']._serialized_start=3833 + _globals['_TOGGLEWEBHOOKSIGNATUREKEYACTIVATIONRESPONSE']._serialized_end=3959 + _globals['_ROTATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_start=3961 + _globals['_ROTATEWEBHOOKSIGNATUREKEYREQUEST']._serialized_end=3995 + _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_start=3997 + _globals['_ROTATEWEBHOOKSIGNATUREKEYRESPONSE']._serialized_end=4113 + _globals['_LISTWEBHOOKLOGSREQUEST']._serialized_start=4116 + _globals['_LISTWEBHOOKLOGSREQUEST']._serialized_end=4271 + _globals['_LISTWEBHOOKLOGSRESPONSE']._serialized_start=4273 + _globals['_LISTWEBHOOKLOGSRESPONSE']._serialized_end=4398 + _globals['_CREATEWEBHOOKLOGREQUEST']._serialized_start=4401 + _globals['_CREATEWEBHOOKLOGREQUEST']._serialized_end=4786 + _globals['_BATCHCREATEWEBHOOKLOGSREQUEST']._serialized_start=4788 + _globals['_BATCHCREATEWEBHOOKLOGSREQUEST']._serialized_end=4895 + _globals['_BATCHCREATEWEBHOOKLOGSRESPONSE']._serialized_start=4897 + _globals['_BATCHCREATEWEBHOOKLOGSRESPONSE']._serialized_end=4929 + _globals['_WEBHOOKSERVICE']._serialized_start=5177 + _globals['_WEBHOOKSERVICE']._serialized_end=8436 # @@protoc_insertion_point(module_scope) diff --git a/scripts/gen.sh b/scripts/gen.sh index 18b1980a6..3fece5812 100755 --- a/scripts/gen.sh +++ b/scripts/gen.sh @@ -108,7 +108,6 @@ gen_protos() { buf generate "$OUTPUT_PROTOS" --template "$lang/buf.gen.yaml" --output "$lang" else buf generate "$OUTPUT_PROTOS" --template "$lang/buf.gen.yaml" --output "$lang" --path "$OUTPUT_PROTOS/sift" - buf generate "$OUTPUT_PROTOS" --template "$lang/buf.gen.yaml" --output "$lang" --path "$OUTPUT_PROTOS/buf" fi echo "ok"