From 3a0f4582a4ab02ab8b30f1177b73cc3f087df37e Mon Sep 17 00:00:00 2001 From: James Kebinger Date: Thu, 13 Mar 2025 15:48:17 -0500 Subject: [PATCH 1/3] Update protos, re-export them for easier use --- CHANGELOG.md | 4 + README.md | 17 ++ prefab.proto | 14 ++ prefab_cloud_python/__init__.py | 34 ++++ prefab_pb2.py | 264 ++++++++++++++++---------------- prefab_pb2.pyi | 55 ++++++- 6 files changed, 253 insertions(+), 135 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20f6226..336738b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,12 @@ # Changelog +## Unreleased +- Re-exported Protocol Buffer types including `ConfigValue`, `StringList`, `ProtoContext`, `ContextSet`, `ContextShape`, `LogLevel`, `Json`, and `Schema` for easier access. + ## [0.11.2] - 2025-02-24 - Updates ConfigValueType's union to include dict to better support json values [#117] +- Renamed encrypted content paths ## [0.11.1] - 2025-02-20 diff --git a/README.md b/README.md index f0c15f9..2d411ab 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,23 @@ result = prefab_cloud_python.get_client().enabled("my-first-feature-flag", conte print("my-first-feature-flag is:", result) ``` +## Protocol Buffer Types + +If you need to work with the underlying Protocol Buffer types, the following are re-exported for convenience: + +```python +from prefab_cloud_python import ConfigValue, StringList, ProtoContext, ContextSet, ContextShape, LogLevel, Json, Schema + +# Create a config value +config_value = ConfigValue(string="example value") + +# Create a JSON value +json_value = ConfigValue(json=Json(json='{"key": "value"}')) + +# Create a Schema value +schema_value = Schema(definition='{"type": "object", "properties": {"name": {"type": "string"}}}') +``` + See full documentation https://docs.prefab.cloud/docs/sdks/python ## Development diff --git a/prefab.proto b/prefab.proto index 9db3ad6..c9dec48 100644 --- a/prefab.proto +++ b/prefab.proto @@ -27,6 +27,7 @@ message ConfigValue { Provided provided = 12; IsoDuration duration = 15; Json json = 16; + Schema schema = 17; } optional bool confidential = 13; // don't log or telemetry this value optional string decrypt_with = 14; // key name to decrypt with @@ -91,6 +92,7 @@ enum ConfigType { SEGMENT = 4; LIMIT_DEFINITION = 5; DELETED = 6; + SCHEMA = 7; } message Config { @@ -104,6 +106,7 @@ message Config { optional int64 draft_id = 8; ValueType value_type = 9; bool send_to_client_sdk = 10; // default value of a boolean in proto3 is false + optional string schema_key = 11; enum ValueType { NOT_SET_VALUE_TYPE = 0; // proto null @@ -464,3 +467,14 @@ message ClientStats { int64 end = 2; uint64 dropped_event_count = 3; } + + +message Schema { + enum SchemaType { + UNKNOWN = 0; + ZOD = 1; + JSON_SCHEMA = 2; + } + string schema = 1; + SchemaType schema_type = 2; +} \ No newline at end of file diff --git a/prefab_cloud_python/__init__.py b/prefab_cloud_python/__init__.py index ec1922a..a81bd6c 100644 --- a/prefab_cloud_python/__init__.py +++ b/prefab_cloud_python/__init__.py @@ -1,3 +1,24 @@ +""" +Prefab Cloud Python client library. + +This module provides access to the Prefab Cloud configuration and feature flag service. + +Main components: +- Client: The main client for interacting with Prefab Cloud +- Options: Configuration options for the client +- Context: Context information for evaluating configs and feature flags + +Re-exported Protocol Buffer types: +- ConfigValue: Represents a configuration value +- StringList: Represents a list of strings +- ProtoContext: Protocol buffer Context class +- ContextSet: Collection of contexts +- ContextShape: Shape information for contexts +- LogLevel: Enumeration of log levels +- Json: Represents JSON data in configuration values +- Schema: Represents schema validation for configuration values +""" + from typing import Optional from . import _internal_logging @@ -10,6 +31,19 @@ from .feature_flag_client import FeatureFlagClient from .config_client import ConfigClient +# Re-export Protocol Buffer types for easier access +import prefab_pb2 +from prefab_pb2 import ( + ConfigValue, + StringList, + Context as ProtoContext, + ContextSet, + ContextShape, + LogLevel, + Json, + Schema, +) + log = _internal_logging.InternalLogger(__name__) diff --git a/prefab_pb2.py b/prefab_pb2.py index 6b4c4e0..038a2c0 100644 --- a/prefab_pb2.py +++ b/prefab_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cprefab.proto\x12\x06prefab\"{\n\x14\x43onfigServicePointer\x12\x1d\n\nproject_id\x18\x01 \x01(\x03R\tprojectId\x12\x1e\n\x0bstart_at_id\x18\x02 \x01(\x03R\tstartAtId\x12$\n\x0eproject_env_id\x18\x03 \x01(\x03R\x0cprojectEnvId\"\xa7\x05\n\x0b\x43onfigValue\x12\x12\n\x03int\x18\x01 \x01(\x03H\x00R\x03int\x12\x18\n\x06string\x18\x02 \x01(\tH\x00R\x06string\x12\x16\n\x05\x62ytes\x18\x03 \x01(\x0cH\x00R\x05\x62ytes\x12\x18\n\x06\x64ouble\x18\x04 \x01(\x01H\x00R\x06\x64ouble\x12\x14\n\x04\x62ool\x18\x05 \x01(\x08H\x00R\x04\x62ool\x12\x41\n\x0fweighted_values\x18\x06 \x01(\x0b\x32\x16.prefab.WeightedValuesH\x00R\x0eweightedValues\x12\x44\n\x10limit_definition\x18\x07 \x01(\x0b\x32\x17.prefab.LimitDefinitionH\x00R\x0flimitDefinition\x12/\n\tlog_level\x18\t \x01(\x0e\x32\x10.prefab.LogLevelH\x00R\x08logLevel\x12\x35\n\x0bstring_list\x18\n \x01(\x0b\x32\x12.prefab.StringListH\x00R\nstringList\x12/\n\tint_range\x18\x0b \x01(\x0b\x32\x10.prefab.IntRangeH\x00R\x08intRange\x12.\n\x08provided\x18\x0c \x01(\x0b\x32\x10.prefab.ProvidedH\x00R\x08provided\x12\x31\n\x08\x64uration\x18\x0f \x01(\x0b\x32\x13.prefab.IsoDurationH\x00R\x08\x64uration\x12\"\n\x04json\x18\x10 \x01(\x0b\x32\x0c.prefab.JsonH\x00R\x04json\x12\'\n\x0c\x63onfidential\x18\r \x01(\x08H\x01R\x0c\x63onfidential\x88\x01\x01\x12&\n\x0c\x64\x65\x63rypt_with\x18\x0e \x01(\tH\x02R\x0b\x64\x65\x63ryptWith\x88\x01\x01\x42\x06\n\x04typeB\x0f\n\r_confidentialB\x0f\n\r_decrypt_with\"\x1a\n\x04Json\x12\x12\n\x04json\x18\x01 \x01(\tR\x04json\"-\n\x0bIsoDuration\x12\x1e\n\ndefinition\x18\x01 \x01(\tR\ndefinition\"r\n\x08Provided\x12\x33\n\x06source\x18\x01 \x01(\x0e\x32\x16.prefab.ProvidedSourceH\x00R\x06source\x88\x01\x01\x12\x1b\n\x06lookup\x18\x02 \x01(\tH\x01R\x06lookup\x88\x01\x01\x42\t\n\x07_sourceB\t\n\x07_lookup\"N\n\x08IntRange\x12\x19\n\x05start\x18\x01 \x01(\x03H\x00R\x05start\x88\x01\x01\x12\x15\n\x03\x65nd\x18\x02 \x01(\x03H\x01R\x03\x65nd\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_end\"$\n\nStringList\x12\x16\n\x06values\x18\x01 \x03(\tR\x06values\"R\n\rWeightedValue\x12\x16\n\x06weight\x18\x01 \x01(\x05R\x06weight\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x13.prefab.ConfigValueR\x05value\"\xa2\x01\n\x0eWeightedValues\x12>\n\x0fweighted_values\x18\x01 \x03(\x0b\x32\x15.prefab.WeightedValueR\x0eweightedValues\x12\x36\n\x15hash_by_property_name\x18\x02 \x01(\tH\x00R\x12hashByPropertyName\x88\x01\x01\x42\x18\n\x16_hash_by_property_name\"g\n\x0e\x41piKeyMetadata\x12\x1a\n\x06key_id\x18\x01 \x01(\tH\x00R\x05keyId\x88\x01\x01\x12\x1c\n\x07user_id\x18\x03 \x01(\tH\x01R\x06userId\x88\x01\x01\x42\t\n\x07_key_idB\n\n\x08_user_idJ\x04\x08\x02\x10\x03\"\xea\x02\n\x07\x43onfigs\x12(\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x0e.prefab.ConfigR\x07\x63onfigs\x12R\n\x16\x63onfig_service_pointer\x18\x02 \x01(\x0b\x32\x1c.prefab.ConfigServicePointerR\x14\x63onfigServicePointer\x12\x44\n\x0f\x61pikey_metadata\x18\x03 \x01(\x0b\x32\x16.prefab.ApiKeyMetadataH\x00R\x0e\x61pikeyMetadata\x88\x01\x01\x12@\n\x0f\x64\x65\x66\x61ult_context\x18\x04 \x01(\x0b\x32\x12.prefab.ContextSetH\x01R\x0e\x64\x65\x66\x61ultContext\x88\x01\x01\x12\"\n\nkeep_alive\x18\x05 \x01(\x08H\x02R\tkeepAlive\x88\x01\x01\x42\x12\n\x10_apikey_metadataB\x12\n\x10_default_contextB\r\n\x0b_keep_alive\"\xe3\x04\n\x06\x43onfig\x12\x0e\n\x02id\x18\x01 \x01(\x03R\x02id\x12\x1d\n\nproject_id\x18\x02 \x01(\x03R\tprojectId\x12\x10\n\x03key\x18\x03 \x01(\tR\x03key\x12\x30\n\nchanged_by\x18\x04 \x01(\x0b\x32\x11.prefab.ChangedByR\tchangedBy\x12%\n\x04rows\x18\x05 \x03(\x0b\x32\x11.prefab.ConfigRowR\x04rows\x12>\n\x10\x61llowable_values\x18\x06 \x03(\x0b\x32\x13.prefab.ConfigValueR\x0f\x61llowableValues\x12\x33\n\x0b\x63onfig_type\x18\x07 \x01(\x0e\x32\x12.prefab.ConfigTypeR\nconfigType\x12\x1e\n\x08\x64raft_id\x18\x08 \x01(\x03H\x00R\x07\x64raftId\x88\x01\x01\x12\x37\n\nvalue_type\x18\t \x01(\x0e\x32\x18.prefab.Config.ValueTypeR\tvalueType\x12+\n\x12send_to_client_sdk\x18\n \x01(\x08R\x0fsendToClientSdk\"\xb6\x01\n\tValueType\x12\x16\n\x12NOT_SET_VALUE_TYPE\x10\x00\x12\x07\n\x03INT\x10\x01\x12\n\n\x06STRING\x10\x02\x12\t\n\x05\x42YTES\x10\x03\x12\n\n\x06\x44OUBLE\x10\x04\x12\x08\n\x04\x42OOL\x10\x05\x12\x14\n\x10LIMIT_DEFINITION\x10\x07\x12\r\n\tLOG_LEVEL\x10\t\x12\x0f\n\x0bSTRING_LIST\x10\n\x12\r\n\tINT_RANGE\x10\x0b\x12\x0c\n\x08\x44URATION\x10\x0c\x12\x08\n\x04JSON\x10\rB\x0b\n\t_draft_id\"X\n\tChangedBy\x12\x17\n\x07user_id\x18\x01 \x01(\x03R\x06userId\x12\x14\n\x05\x65mail\x18\x02 \x01(\tR\x05\x65mail\x12\x1c\n\napi_key_id\x18\x03 \x01(\tR\x08\x61piKeyId\"\x92\x02\n\tConfigRow\x12)\n\x0eproject_env_id\x18\x01 \x01(\x03H\x00R\x0cprojectEnvId\x88\x01\x01\x12\x30\n\x06values\x18\x02 \x03(\x0b\x32\x18.prefab.ConditionalValueR\x06values\x12\x41\n\nproperties\x18\x03 \x03(\x0b\x32!.prefab.ConfigRow.PropertiesEntryR\nproperties\x1aR\n\x0fPropertiesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x13.prefab.ConfigValueR\x05value:\x02\x38\x01\x42\x11\n\x0f_project_env_id\"l\n\x10\x43onditionalValue\x12-\n\x08\x63riteria\x18\x01 \x03(\x0b\x32\x11.prefab.CriterionR\x08\x63riteria\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x13.prefab.ConfigValueR\x05value\"\xbc\x06\n\tCriterion\x12#\n\rproperty_name\x18\x01 \x01(\tR\x0cpropertyName\x12?\n\x08operator\x18\x02 \x01(\x0e\x32#.prefab.Criterion.CriterionOperatorR\x08operator\x12\x39\n\x0evalue_to_match\x18\x03 \x01(\x0b\x32\x13.prefab.ConfigValueR\x0cvalueToMatch\"\x8d\x05\n\x11\x43riterionOperator\x12\x0b\n\x07NOT_SET\x10\x00\x12\x11\n\rLOOKUP_KEY_IN\x10\x01\x12\x15\n\x11LOOKUP_KEY_NOT_IN\x10\x02\x12\n\n\x06IN_SEG\x10\x03\x12\x0e\n\nNOT_IN_SEG\x10\x04\x12\x0f\n\x0b\x41LWAYS_TRUE\x10\x05\x12\x12\n\x0ePROP_IS_ONE_OF\x10\x06\x12\x16\n\x12PROP_IS_NOT_ONE_OF\x10\x07\x12\x19\n\x15PROP_ENDS_WITH_ONE_OF\x10\x08\x12!\n\x1dPROP_DOES_NOT_END_WITH_ONE_OF\x10\t\x12\x16\n\x12HIERARCHICAL_MATCH\x10\n\x12\x10\n\x0cIN_INT_RANGE\x10\x0b\x12\x1b\n\x17PROP_STARTS_WITH_ONE_OF\x10\x0c\x12#\n\x1fPROP_DOES_NOT_START_WITH_ONE_OF\x10\r\x12\x18\n\x14PROP_CONTAINS_ONE_OF\x10\x0e\x12 \n\x1cPROP_DOES_NOT_CONTAIN_ONE_OF\x10\x0f\x12\x12\n\x0ePROP_LESS_THAN\x10\x10\x12\x1b\n\x17PROP_LESS_THAN_OR_EQUAL\x10\x11\x12\x15\n\x11PROP_GREATER_THAN\x10\x12\x12\x1e\n\x1aPROP_GREATER_THAN_OR_EQUAL\x10\x13\x12\x0f\n\x0bPROP_BEFORE\x10\x14\x12\x0e\n\nPROP_AFTER\x10\x15\x12\x10\n\x0cPROP_MATCHES\x10\x16\x12\x17\n\x13PROP_DOES_NOT_MATCH\x10\x17\x12\x19\n\x15PROP_SEMVER_LESS_THAN\x10\x18\x12\x15\n\x11PROP_SEMVER_EQUAL\x10\x19\x12\x1c\n\x18PROP_SEMVER_GREATER_THAN\x10\x1a\"\xbb\x01\n\x07Loggers\x12(\n\x07loggers\x18\x01 \x03(\x0b\x32\x0e.prefab.LoggerR\x07loggers\x12\x19\n\x08start_at\x18\x02 \x01(\x03R\x07startAt\x12\x15\n\x06\x65nd_at\x18\x03 \x01(\x03R\x05\x65ndAt\x12#\n\rinstance_hash\x18\x04 \x01(\tR\x0cinstanceHash\x12!\n\tnamespace\x18\x05 \x01(\tH\x00R\tnamespace\x88\x01\x01\x42\x0c\n\n_namespace\"\x93\x02\n\x06Logger\x12\x1f\n\x0blogger_name\x18\x01 \x01(\tR\nloggerName\x12\x1b\n\x06traces\x18\x02 \x01(\x03H\x00R\x06traces\x88\x01\x01\x12\x1b\n\x06\x64\x65\x62ugs\x18\x03 \x01(\x03H\x01R\x06\x64\x65\x62ugs\x88\x01\x01\x12\x19\n\x05infos\x18\x04 \x01(\x03H\x02R\x05infos\x88\x01\x01\x12\x19\n\x05warns\x18\x05 \x01(\x03H\x03R\x05warns\x88\x01\x01\x12\x1b\n\x06\x65rrors\x18\x06 \x01(\x03H\x04R\x06\x65rrors\x88\x01\x01\x12\x1b\n\x06\x66\x61tals\x18\x07 \x01(\x03H\x05R\x06\x66\x61tals\x88\x01\x01\x42\t\n\x07_tracesB\t\n\x07_debugsB\x08\n\x06_infosB\x08\n\x06_warnsB\t\n\x07_errorsB\t\n\x07_fatals\"\x16\n\x14LoggerReportResponse\"\xd5\x04\n\rLimitResponse\x12\x16\n\x06passed\x18\x01 \x01(\x08R\x06passed\x12\x1d\n\nexpires_at\x18\x02 \x01(\x03R\texpiresAt\x12%\n\x0e\x65nforced_group\x18\x03 \x01(\tR\renforcedGroup\x12%\n\x0e\x63urrent_bucket\x18\x04 \x01(\x03R\rcurrentBucket\x12!\n\x0cpolicy_group\x18\x05 \x01(\tR\x0bpolicyGroup\x12G\n\x0bpolicy_name\x18\x06 \x01(\x0e\x32&.prefab.LimitResponse.LimitPolicyNamesR\npolicyName\x12!\n\x0cpolicy_limit\x18\x07 \x01(\x05R\x0bpolicyLimit\x12\x16\n\x06\x61mount\x18\x08 \x01(\x03R\x06\x61mount\x12$\n\x0elimit_reset_at\x18\t \x01(\x03R\x0climitResetAt\x12\x46\n\x0csafety_level\x18\n \x01(\x0e\x32#.prefab.LimitDefinition.SafetyLevelR\x0bsafetyLevel\"\xa9\x01\n\x10LimitPolicyNames\x12\x0b\n\x07NOT_SET\x10\x00\x12\x14\n\x10SECONDLY_ROLLING\x10\x01\x12\x14\n\x10MINUTELY_ROLLING\x10\x03\x12\x12\n\x0eHOURLY_ROLLING\x10\x05\x12\x11\n\rDAILY_ROLLING\x10\x07\x12\x13\n\x0fMONTHLY_ROLLING\x10\x08\x12\x0c\n\x08INFINITE\x10\t\x12\x12\n\x0eYEARLY_ROLLING\x10\n\"\xed\x02\n\x0cLimitRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\x03R\taccountId\x12%\n\x0e\x61\x63quire_amount\x18\x02 \x01(\x05R\racquireAmount\x12\x16\n\x06groups\x18\x03 \x03(\tR\x06groups\x12I\n\x0elimit_combiner\x18\x04 \x01(\x0e\x32\".prefab.LimitRequest.LimitCombinerR\rlimitCombiner\x12\x34\n\x16\x61llow_partial_response\x18\x05 \x01(\x08R\x14\x61llowPartialResponse\x12\x46\n\x0csafety_level\x18\x06 \x01(\x0e\x32#.prefab.LimitDefinition.SafetyLevelR\x0bsafetyLevel\"6\n\rLimitCombiner\x12\x0b\n\x07NOT_SET\x10\x00\x12\x0b\n\x07MINIMUM\x10\x01\x12\x0b\n\x07MAXIMUM\x10\x02\"9\n\nContextSet\x12+\n\x08\x63ontexts\x18\x01 \x03(\x0b\x32\x0f.prefab.ContextR\x08\x63ontexts\"\xb0\x01\n\x07\x43ontext\x12\x17\n\x04type\x18\x01 \x01(\tH\x00R\x04type\x88\x01\x01\x12\x33\n\x06values\x18\x02 \x03(\x0b\x32\x1b.prefab.Context.ValuesEntryR\x06values\x1aN\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x13.prefab.ConfigValueR\x05value:\x02\x38\x01\x42\x07\n\x05_type\"\xb3\x01\n\x08Identity\x12\x1b\n\x06lookup\x18\x01 \x01(\tH\x00R\x06lookup\x88\x01\x01\x12@\n\nattributes\x18\x02 \x03(\x0b\x32 .prefab.Identity.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\t\n\x07_lookup\"\xa6\x03\n\x18\x43onfigEvaluationMetaData\x12-\n\x10\x63onfig_row_index\x18\x01 \x01(\x03H\x00R\x0e\x63onfigRowIndex\x88\x01\x01\x12;\n\x17\x63onditional_value_index\x18\x02 \x01(\x03H\x01R\x15\x63onditionalValueIndex\x88\x01\x01\x12\x35\n\x14weighted_value_index\x18\x03 \x01(\x03H\x02R\x12weightedValueIndex\x88\x01\x01\x12+\n\x04type\x18\x04 \x01(\x0e\x32\x12.prefab.ConfigTypeH\x03R\x04type\x88\x01\x01\x12\x13\n\x02id\x18\x05 \x01(\x03H\x04R\x02id\x88\x01\x01\x12<\n\nvalue_type\x18\x06 \x01(\x0e\x32\x18.prefab.Config.ValueTypeH\x05R\tvalueType\x88\x01\x01\x42\x13\n\x11_config_row_indexB\x1a\n\x18_conditional_value_indexB\x17\n\x15_weighted_value_indexB\x07\n\x05_typeB\x05\n\x03_idB\r\n\x0b_value_type\"\xf0\x03\n\x11\x43lientConfigValue\x12\x12\n\x03int\x18\x01 \x01(\x03H\x00R\x03int\x12\x18\n\x06string\x18\x02 \x01(\tH\x00R\x06string\x12\x18\n\x06\x64ouble\x18\x03 \x01(\x01H\x00R\x06\x64ouble\x12\x14\n\x04\x62ool\x18\x04 \x01(\x08H\x00R\x04\x62ool\x12/\n\tlog_level\x18\x05 \x01(\x0e\x32\x10.prefab.LogLevelH\x00R\x08logLevel\x12\x35\n\x0bstring_list\x18\x07 \x01(\x0b\x32\x12.prefab.StringListH\x00R\nstringList\x12/\n\tint_range\x18\x08 \x01(\x0b\x32\x10.prefab.IntRangeH\x00R\x08intRange\x12\x34\n\x08\x64uration\x18\t \x01(\x0b\x32\x16.prefab.ClientDurationH\x00R\x08\x64uration\x12\"\n\x04json\x18\n \x01(\x0b\x32\x0c.prefab.JsonH\x00R\x04json\x12\x63\n\x1a\x63onfig_evaluation_metadata\x18\x06 \x01(\x0b\x32 .prefab.ConfigEvaluationMetaDataH\x01R\x18\x63onfigEvaluationMetadata\x88\x01\x01\x42\x06\n\x04typeB\x1d\n\x1b_config_evaluation_metadata\"`\n\x0e\x43lientDuration\x12\x18\n\x07seconds\x18\x01 \x01(\x03R\x07seconds\x12\x14\n\x05nanos\x18\x02 \x01(\x05R\x05nanos\x12\x1e\n\ndefinition\x18\x03 \x01(\tR\ndefinition\"\xd8\x02\n\x11\x43onfigEvaluations\x12=\n\x06values\x18\x01 \x03(\x0b\x32%.prefab.ConfigEvaluations.ValuesEntryR\x06values\x12\x44\n\x0f\x61pikey_metadata\x18\x02 \x01(\x0b\x32\x16.prefab.ApiKeyMetadataH\x00R\x0e\x61pikeyMetadata\x88\x01\x01\x12@\n\x0f\x64\x65\x66\x61ult_context\x18\x03 \x01(\x0b\x32\x12.prefab.ContextSetH\x01R\x0e\x64\x65\x66\x61ultContext\x88\x01\x01\x1aT\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.prefab.ClientConfigValueR\x05value:\x02\x38\x01\x42\x12\n\x10_apikey_metadataB\x12\n\x10_default_context\"\xf4\x02\n\x0fLimitDefinition\x12G\n\x0bpolicy_name\x18\x02 \x01(\x0e\x32&.prefab.LimitResponse.LimitPolicyNamesR\npolicyName\x12\x14\n\x05limit\x18\x03 \x01(\x05R\x05limit\x12\x14\n\x05\x62urst\x18\x04 \x01(\x05R\x05\x62urst\x12\x1d\n\naccount_id\x18\x05 \x01(\x03R\taccountId\x12#\n\rlast_modified\x18\x06 \x01(\x03R\x0clastModified\x12\x1e\n\nreturnable\x18\x07 \x01(\x08R\nreturnable\x12\x46\n\x0csafety_level\x18\x08 \x01(\x0e\x32#.prefab.LimitDefinition.SafetyLevelR\x0bsafetyLevel\"@\n\x0bSafetyLevel\x12\x0b\n\x07NOT_SET\x10\x00\x12\x12\n\x0eL4_BEST_EFFORT\x10\x04\x12\x10\n\x0cL5_BOMBPROOF\x10\x05\"M\n\x10LimitDefinitions\x12\x39\n\x0b\x64\x65\x66initions\x18\x01 \x03(\x0b\x32\x17.prefab.LimitDefinitionR\x0b\x64\x65\x66initions\"\xc8\x01\n\x0f\x42ufferedRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\x03R\taccountId\x12\x16\n\x06method\x18\x02 \x01(\tR\x06method\x12\x10\n\x03uri\x18\x03 \x01(\tR\x03uri\x12\x12\n\x04\x62ody\x18\x04 \x01(\tR\x04\x62ody\x12!\n\x0climit_groups\x18\x05 \x03(\tR\x0blimitGroups\x12!\n\x0c\x63ontent_type\x18\x06 \x01(\tR\x0b\x63ontentType\x12\x12\n\x04\x66ifo\x18\x07 \x01(\x08R\x04\x66ifo\"\xde\x01\n\x0c\x42\x61tchRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\x03R\taccountId\x12\x16\n\x06method\x18\x02 \x01(\tR\x06method\x12\x10\n\x03uri\x18\x03 \x01(\tR\x03uri\x12\x12\n\x04\x62ody\x18\x04 \x01(\tR\x04\x62ody\x12!\n\x0climit_groups\x18\x05 \x03(\tR\x0blimitGroups\x12%\n\x0e\x62\x61tch_template\x18\x06 \x01(\tR\rbatchTemplate\x12\'\n\x0f\x62\x61tch_separator\x18\x07 \x01(\tR\x0e\x62\x61tchSeparator\")\n\rBasicResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"C\n\x10\x43reationResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\x12\x15\n\x06new_id\x18\x02 \x01(\x03R\x05newId\"\x9b\x01\n\x07IdBlock\x12\x1d\n\nproject_id\x18\x01 \x01(\x03R\tprojectId\x12$\n\x0eproject_env_id\x18\x02 \x01(\x03R\x0cprojectEnvId\x12#\n\rsequence_name\x18\x03 \x01(\tR\x0csequenceName\x12\x14\n\x05start\x18\x04 \x01(\x03R\x05start\x12\x10\n\x03\x65nd\x18\x05 \x01(\x03R\x03\x65nd\"\x8e\x01\n\x0eIdBlockRequest\x12\x1d\n\nproject_id\x18\x01 \x01(\x03R\tprojectId\x12$\n\x0eproject_env_id\x18\x02 \x01(\x03R\x0cprojectEnvId\x12#\n\rsequence_name\x18\x03 \x01(\tR\x0csequenceName\x12\x12\n\x04size\x18\x04 \x01(\x03R\x04size\"\xa8\x01\n\x0c\x43ontextShape\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x45\n\x0b\x66ield_types\x18\x02 \x03(\x0b\x32$.prefab.ContextShape.FieldTypesEntryR\nfieldTypes\x1a=\n\x0f\x46ieldTypesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01\"n\n\rContextShapes\x12,\n\x06shapes\x18\x01 \x03(\x0b\x32\x14.prefab.ContextShapeR\x06shapes\x12!\n\tnamespace\x18\x02 \x01(\tH\x00R\tnamespace\x88\x01\x01\x42\x0c\n\n_namespace\"T\n\rEvaluatedKeys\x12\x12\n\x04keys\x18\x01 \x03(\tR\x04keys\x12!\n\tnamespace\x18\x02 \x01(\tH\x00R\tnamespace\x88\x01\x01\x42\x0c\n\n_namespace\"\xc3\x01\n\x0f\x45valuatedConfig\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12%\n\x0e\x63onfig_version\x18\x02 \x01(\x03R\rconfigVersion\x12+\n\x06result\x18\x03 \x01(\x0b\x32\x13.prefab.ConfigValueR\x06result\x12,\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x12.prefab.ContextSetR\x07\x63ontext\x12\x1c\n\ttimestamp\x18\x05 \x01(\x03R\ttimestamp\"E\n\x10\x45valuatedConfigs\x12\x31\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x17.prefab.EvaluatedConfigR\x07\x63onfigs\"\xb6\x04\n\x17\x43onfigEvaluationCounter\x12\x14\n\x05\x63ount\x18\x01 \x01(\x03R\x05\x63ount\x12 \n\tconfig_id\x18\x02 \x01(\x03H\x00R\x08\x63onfigId\x88\x01\x01\x12*\n\x0eselected_index\x18\x03 \x01(\rH\x01R\rselectedIndex\x88\x01\x01\x12?\n\x0eselected_value\x18\x04 \x01(\x0b\x32\x13.prefab.ConfigValueH\x02R\rselectedValue\x88\x01\x01\x12-\n\x10\x63onfig_row_index\x18\x05 \x01(\rH\x03R\x0e\x63onfigRowIndex\x88\x01\x01\x12;\n\x17\x63onditional_value_index\x18\x06 \x01(\rH\x04R\x15\x63onditionalValueIndex\x88\x01\x01\x12\x35\n\x14weighted_value_index\x18\x07 \x01(\rH\x05R\x12weightedValueIndex\x88\x01\x01\x12>\n\x06reason\x18\x08 \x01(\x0e\x32&.prefab.ConfigEvaluationCounter.ReasonR\x06reason\"\x15\n\x06Reason\x12\x0b\n\x07UNKNOWN\x10\x00\x42\x0c\n\n_config_idB\x11\n\x0f_selected_indexB\x11\n\x0f_selected_valueB\x13\n\x11_config_row_indexB\x1a\n\x18_conditional_value_indexB\x17\n\x15_weighted_value_index\"\x90\x01\n\x17\x43onfigEvaluationSummary\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12&\n\x04type\x18\x02 \x01(\x0e\x32\x12.prefab.ConfigTypeR\x04type\x12;\n\x08\x63ounters\x18\x03 \x03(\x0b\x32\x1f.prefab.ConfigEvaluationCounterR\x08\x63ounters\"\x82\x01\n\x19\x43onfigEvaluationSummaries\x12\x14\n\x05start\x18\x01 \x01(\x03R\x05start\x12\x10\n\x03\x65nd\x18\x02 \x01(\x03R\x03\x65nd\x12=\n\tsummaries\x18\x03 \x03(\x0b\x32\x1f.prefab.ConfigEvaluationSummaryR\tsummaries\"s\n\x15LoggersTelemetryEvent\x12(\n\x07loggers\x18\x01 \x03(\x0b\x32\x0e.prefab.LoggerR\x07loggers\x12\x19\n\x08start_at\x18\x02 \x01(\x03R\x07startAt\x12\x15\n\x06\x65nd_at\x18\x03 \x01(\x03R\x05\x65ndAt\"\xd9\x02\n\x0eTelemetryEvent\x12\x41\n\tsummaries\x18\x02 \x01(\x0b\x32!.prefab.ConfigEvaluationSummariesH\x00R\tsummaries\x12\x44\n\x10\x65xample_contexts\x18\x03 \x01(\x0b\x32\x17.prefab.ExampleContextsH\x00R\x0f\x65xampleContexts\x12\x38\n\x0c\x63lient_stats\x18\x04 \x01(\x0b\x32\x13.prefab.ClientStatsH\x00R\x0b\x63lientStats\x12\x39\n\x07loggers\x18\x05 \x01(\x0b\x32\x1d.prefab.LoggersTelemetryEventH\x00R\x07loggers\x12>\n\x0e\x63ontext_shapes\x18\x06 \x01(\x0b\x32\x15.prefab.ContextShapesH\x00R\rcontextShapesB\t\n\x07payload\"f\n\x0fTelemetryEvents\x12#\n\rinstance_hash\x18\x01 \x01(\tR\x0cinstanceHash\x12.\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x16.prefab.TelemetryEventR\x06\x65vents\"3\n\x17TelemetryEventsResponse\x12\x18\n\x07success\x18\x01 \x01(\x08R\x07success\"E\n\x0f\x45xampleContexts\x12\x32\n\x08\x65xamples\x18\x01 \x03(\x0b\x32\x16.prefab.ExampleContextR\x08\x65xamples\"b\n\x0e\x45xampleContext\x12\x1c\n\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x12\x32\n\ncontextSet\x18\x02 \x01(\x0b\x32\x12.prefab.ContextSetR\ncontextSet\"e\n\x0b\x43lientStats\x12\x14\n\x05start\x18\x01 \x01(\x03R\x05start\x12\x10\n\x03\x65nd\x18\x02 \x01(\x03R\x03\x65nd\x12.\n\x13\x64ropped_event_count\x18\x03 \x01(\x04R\x11\x64roppedEventCount*:\n\x0eProvidedSource\x12\x1b\n\x17PROVIDED_SOURCE_NOT_SET\x10\x00\x12\x0b\n\x07\x45NV_VAR\x10\x01*\x82\x01\n\nConfigType\x12\x17\n\x13NOT_SET_CONFIG_TYPE\x10\x00\x12\n\n\x06\x43ONFIG\x10\x01\x12\x10\n\x0c\x46\x45\x41TURE_FLAG\x10\x02\x12\r\n\tLOG_LEVEL\x10\x03\x12\x0b\n\x07SEGMENT\x10\x04\x12\x14\n\x10LIMIT_DEFINITION\x10\x05\x12\x0b\n\x07\x44\x45LETED\x10\x06*a\n\x08LogLevel\x12\x15\n\x11NOT_SET_LOG_LEVEL\x10\x00\x12\t\n\x05TRACE\x10\x01\x12\t\n\x05\x44\x45\x42UG\x10\x02\x12\x08\n\x04INFO\x10\x03\x12\x08\n\x04WARN\x10\x05\x12\t\n\x05\x45RROR\x10\x06\x12\t\n\x05\x46\x41TAL\x10\t*G\n\tOnFailure\x12\x0b\n\x07NOT_SET\x10\x00\x12\x10\n\x0cLOG_AND_PASS\x10\x01\x12\x10\n\x0cLOG_AND_FAIL\x10\x02\x12\t\n\x05THROW\x10\x03\x42L\n\x13\x63loud.prefab.domainB\x06PrefabZ-github.com/prefab-cloud/prefab-cloud-go/protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cprefab.proto\x12\x06prefab\"{\n\x14\x43onfigServicePointer\x12\x1d\n\nproject_id\x18\x01 \x01(\x03R\tprojectId\x12\x1e\n\x0bstart_at_id\x18\x02 \x01(\x03R\tstartAtId\x12$\n\x0eproject_env_id\x18\x03 \x01(\x03R\x0cprojectEnvId\"\xd1\x05\n\x0b\x43onfigValue\x12\x12\n\x03int\x18\x01 \x01(\x03H\x00R\x03int\x12\x18\n\x06string\x18\x02 \x01(\tH\x00R\x06string\x12\x16\n\x05\x62ytes\x18\x03 \x01(\x0cH\x00R\x05\x62ytes\x12\x18\n\x06\x64ouble\x18\x04 \x01(\x01H\x00R\x06\x64ouble\x12\x14\n\x04\x62ool\x18\x05 \x01(\x08H\x00R\x04\x62ool\x12\x41\n\x0fweighted_values\x18\x06 \x01(\x0b\x32\x16.prefab.WeightedValuesH\x00R\x0eweightedValues\x12\x44\n\x10limit_definition\x18\x07 \x01(\x0b\x32\x17.prefab.LimitDefinitionH\x00R\x0flimitDefinition\x12/\n\tlog_level\x18\t \x01(\x0e\x32\x10.prefab.LogLevelH\x00R\x08logLevel\x12\x35\n\x0bstring_list\x18\n \x01(\x0b\x32\x12.prefab.StringListH\x00R\nstringList\x12/\n\tint_range\x18\x0b \x01(\x0b\x32\x10.prefab.IntRangeH\x00R\x08intRange\x12.\n\x08provided\x18\x0c \x01(\x0b\x32\x10.prefab.ProvidedH\x00R\x08provided\x12\x31\n\x08\x64uration\x18\x0f \x01(\x0b\x32\x13.prefab.IsoDurationH\x00R\x08\x64uration\x12\"\n\x04json\x18\x10 \x01(\x0b\x32\x0c.prefab.JsonH\x00R\x04json\x12(\n\x06schema\x18\x11 \x01(\x0b\x32\x0e.prefab.SchemaH\x00R\x06schema\x12\'\n\x0c\x63onfidential\x18\r \x01(\x08H\x01R\x0c\x63onfidential\x88\x01\x01\x12&\n\x0c\x64\x65\x63rypt_with\x18\x0e \x01(\tH\x02R\x0b\x64\x65\x63ryptWith\x88\x01\x01\x42\x06\n\x04typeB\x0f\n\r_confidentialB\x0f\n\r_decrypt_with\"\x1a\n\x04Json\x12\x12\n\x04json\x18\x01 \x01(\tR\x04json\"-\n\x0bIsoDuration\x12\x1e\n\ndefinition\x18\x01 \x01(\tR\ndefinition\"r\n\x08Provided\x12\x33\n\x06source\x18\x01 \x01(\x0e\x32\x16.prefab.ProvidedSourceH\x00R\x06source\x88\x01\x01\x12\x1b\n\x06lookup\x18\x02 \x01(\tH\x01R\x06lookup\x88\x01\x01\x42\t\n\x07_sourceB\t\n\x07_lookup\"N\n\x08IntRange\x12\x19\n\x05start\x18\x01 \x01(\x03H\x00R\x05start\x88\x01\x01\x12\x15\n\x03\x65nd\x18\x02 \x01(\x03H\x01R\x03\x65nd\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_end\"$\n\nStringList\x12\x16\n\x06values\x18\x01 \x03(\tR\x06values\"R\n\rWeightedValue\x12\x16\n\x06weight\x18\x01 \x01(\x05R\x06weight\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x13.prefab.ConfigValueR\x05value\"\xa2\x01\n\x0eWeightedValues\x12>\n\x0fweighted_values\x18\x01 \x03(\x0b\x32\x15.prefab.WeightedValueR\x0eweightedValues\x12\x36\n\x15hash_by_property_name\x18\x02 \x01(\tH\x00R\x12hashByPropertyName\x88\x01\x01\x42\x18\n\x16_hash_by_property_name\"g\n\x0e\x41piKeyMetadata\x12\x1a\n\x06key_id\x18\x01 \x01(\tH\x00R\x05keyId\x88\x01\x01\x12\x1c\n\x07user_id\x18\x03 \x01(\tH\x01R\x06userId\x88\x01\x01\x42\t\n\x07_key_idB\n\n\x08_user_idJ\x04\x08\x02\x10\x03\"\xea\x02\n\x07\x43onfigs\x12(\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x0e.prefab.ConfigR\x07\x63onfigs\x12R\n\x16\x63onfig_service_pointer\x18\x02 \x01(\x0b\x32\x1c.prefab.ConfigServicePointerR\x14\x63onfigServicePointer\x12\x44\n\x0f\x61pikey_metadata\x18\x03 \x01(\x0b\x32\x16.prefab.ApiKeyMetadataH\x00R\x0e\x61pikeyMetadata\x88\x01\x01\x12@\n\x0f\x64\x65\x66\x61ult_context\x18\x04 \x01(\x0b\x32\x12.prefab.ContextSetH\x01R\x0e\x64\x65\x66\x61ultContext\x88\x01\x01\x12\"\n\nkeep_alive\x18\x05 \x01(\x08H\x02R\tkeepAlive\x88\x01\x01\x42\x12\n\x10_apikey_metadataB\x12\n\x10_default_contextB\r\n\x0b_keep_alive\"\x96\x05\n\x06\x43onfig\x12\x0e\n\x02id\x18\x01 \x01(\x03R\x02id\x12\x1d\n\nproject_id\x18\x02 \x01(\x03R\tprojectId\x12\x10\n\x03key\x18\x03 \x01(\tR\x03key\x12\x30\n\nchanged_by\x18\x04 \x01(\x0b\x32\x11.prefab.ChangedByR\tchangedBy\x12%\n\x04rows\x18\x05 \x03(\x0b\x32\x11.prefab.ConfigRowR\x04rows\x12>\n\x10\x61llowable_values\x18\x06 \x03(\x0b\x32\x13.prefab.ConfigValueR\x0f\x61llowableValues\x12\x33\n\x0b\x63onfig_type\x18\x07 \x01(\x0e\x32\x12.prefab.ConfigTypeR\nconfigType\x12\x1e\n\x08\x64raft_id\x18\x08 \x01(\x03H\x00R\x07\x64raftId\x88\x01\x01\x12\x37\n\nvalue_type\x18\t \x01(\x0e\x32\x18.prefab.Config.ValueTypeR\tvalueType\x12+\n\x12send_to_client_sdk\x18\n \x01(\x08R\x0fsendToClientSdk\x12\"\n\nschema_key\x18\x0b \x01(\tH\x01R\tschemaKey\x88\x01\x01\"\xb6\x01\n\tValueType\x12\x16\n\x12NOT_SET_VALUE_TYPE\x10\x00\x12\x07\n\x03INT\x10\x01\x12\n\n\x06STRING\x10\x02\x12\t\n\x05\x42YTES\x10\x03\x12\n\n\x06\x44OUBLE\x10\x04\x12\x08\n\x04\x42OOL\x10\x05\x12\x14\n\x10LIMIT_DEFINITION\x10\x07\x12\r\n\tLOG_LEVEL\x10\t\x12\x0f\n\x0bSTRING_LIST\x10\n\x12\r\n\tINT_RANGE\x10\x0b\x12\x0c\n\x08\x44URATION\x10\x0c\x12\x08\n\x04JSON\x10\rB\x0b\n\t_draft_idB\r\n\x0b_schema_key\"X\n\tChangedBy\x12\x17\n\x07user_id\x18\x01 \x01(\x03R\x06userId\x12\x14\n\x05\x65mail\x18\x02 \x01(\tR\x05\x65mail\x12\x1c\n\napi_key_id\x18\x03 \x01(\tR\x08\x61piKeyId\"\x92\x02\n\tConfigRow\x12)\n\x0eproject_env_id\x18\x01 \x01(\x03H\x00R\x0cprojectEnvId\x88\x01\x01\x12\x30\n\x06values\x18\x02 \x03(\x0b\x32\x18.prefab.ConditionalValueR\x06values\x12\x41\n\nproperties\x18\x03 \x03(\x0b\x32!.prefab.ConfigRow.PropertiesEntryR\nproperties\x1aR\n\x0fPropertiesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x13.prefab.ConfigValueR\x05value:\x02\x38\x01\x42\x11\n\x0f_project_env_id\"l\n\x10\x43onditionalValue\x12-\n\x08\x63riteria\x18\x01 \x03(\x0b\x32\x11.prefab.CriterionR\x08\x63riteria\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x13.prefab.ConfigValueR\x05value\"\xbc\x06\n\tCriterion\x12#\n\rproperty_name\x18\x01 \x01(\tR\x0cpropertyName\x12?\n\x08operator\x18\x02 \x01(\x0e\x32#.prefab.Criterion.CriterionOperatorR\x08operator\x12\x39\n\x0evalue_to_match\x18\x03 \x01(\x0b\x32\x13.prefab.ConfigValueR\x0cvalueToMatch\"\x8d\x05\n\x11\x43riterionOperator\x12\x0b\n\x07NOT_SET\x10\x00\x12\x11\n\rLOOKUP_KEY_IN\x10\x01\x12\x15\n\x11LOOKUP_KEY_NOT_IN\x10\x02\x12\n\n\x06IN_SEG\x10\x03\x12\x0e\n\nNOT_IN_SEG\x10\x04\x12\x0f\n\x0b\x41LWAYS_TRUE\x10\x05\x12\x12\n\x0ePROP_IS_ONE_OF\x10\x06\x12\x16\n\x12PROP_IS_NOT_ONE_OF\x10\x07\x12\x19\n\x15PROP_ENDS_WITH_ONE_OF\x10\x08\x12!\n\x1dPROP_DOES_NOT_END_WITH_ONE_OF\x10\t\x12\x16\n\x12HIERARCHICAL_MATCH\x10\n\x12\x10\n\x0cIN_INT_RANGE\x10\x0b\x12\x1b\n\x17PROP_STARTS_WITH_ONE_OF\x10\x0c\x12#\n\x1fPROP_DOES_NOT_START_WITH_ONE_OF\x10\r\x12\x18\n\x14PROP_CONTAINS_ONE_OF\x10\x0e\x12 \n\x1cPROP_DOES_NOT_CONTAIN_ONE_OF\x10\x0f\x12\x12\n\x0ePROP_LESS_THAN\x10\x10\x12\x1b\n\x17PROP_LESS_THAN_OR_EQUAL\x10\x11\x12\x15\n\x11PROP_GREATER_THAN\x10\x12\x12\x1e\n\x1aPROP_GREATER_THAN_OR_EQUAL\x10\x13\x12\x0f\n\x0bPROP_BEFORE\x10\x14\x12\x0e\n\nPROP_AFTER\x10\x15\x12\x10\n\x0cPROP_MATCHES\x10\x16\x12\x17\n\x13PROP_DOES_NOT_MATCH\x10\x17\x12\x19\n\x15PROP_SEMVER_LESS_THAN\x10\x18\x12\x15\n\x11PROP_SEMVER_EQUAL\x10\x19\x12\x1c\n\x18PROP_SEMVER_GREATER_THAN\x10\x1a\"\xbb\x01\n\x07Loggers\x12(\n\x07loggers\x18\x01 \x03(\x0b\x32\x0e.prefab.LoggerR\x07loggers\x12\x19\n\x08start_at\x18\x02 \x01(\x03R\x07startAt\x12\x15\n\x06\x65nd_at\x18\x03 \x01(\x03R\x05\x65ndAt\x12#\n\rinstance_hash\x18\x04 \x01(\tR\x0cinstanceHash\x12!\n\tnamespace\x18\x05 \x01(\tH\x00R\tnamespace\x88\x01\x01\x42\x0c\n\n_namespace\"\x93\x02\n\x06Logger\x12\x1f\n\x0blogger_name\x18\x01 \x01(\tR\nloggerName\x12\x1b\n\x06traces\x18\x02 \x01(\x03H\x00R\x06traces\x88\x01\x01\x12\x1b\n\x06\x64\x65\x62ugs\x18\x03 \x01(\x03H\x01R\x06\x64\x65\x62ugs\x88\x01\x01\x12\x19\n\x05infos\x18\x04 \x01(\x03H\x02R\x05infos\x88\x01\x01\x12\x19\n\x05warns\x18\x05 \x01(\x03H\x03R\x05warns\x88\x01\x01\x12\x1b\n\x06\x65rrors\x18\x06 \x01(\x03H\x04R\x06\x65rrors\x88\x01\x01\x12\x1b\n\x06\x66\x61tals\x18\x07 \x01(\x03H\x05R\x06\x66\x61tals\x88\x01\x01\x42\t\n\x07_tracesB\t\n\x07_debugsB\x08\n\x06_infosB\x08\n\x06_warnsB\t\n\x07_errorsB\t\n\x07_fatals\"\x16\n\x14LoggerReportResponse\"\xd5\x04\n\rLimitResponse\x12\x16\n\x06passed\x18\x01 \x01(\x08R\x06passed\x12\x1d\n\nexpires_at\x18\x02 \x01(\x03R\texpiresAt\x12%\n\x0e\x65nforced_group\x18\x03 \x01(\tR\renforcedGroup\x12%\n\x0e\x63urrent_bucket\x18\x04 \x01(\x03R\rcurrentBucket\x12!\n\x0cpolicy_group\x18\x05 \x01(\tR\x0bpolicyGroup\x12G\n\x0bpolicy_name\x18\x06 \x01(\x0e\x32&.prefab.LimitResponse.LimitPolicyNamesR\npolicyName\x12!\n\x0cpolicy_limit\x18\x07 \x01(\x05R\x0bpolicyLimit\x12\x16\n\x06\x61mount\x18\x08 \x01(\x03R\x06\x61mount\x12$\n\x0elimit_reset_at\x18\t \x01(\x03R\x0climitResetAt\x12\x46\n\x0csafety_level\x18\n \x01(\x0e\x32#.prefab.LimitDefinition.SafetyLevelR\x0bsafetyLevel\"\xa9\x01\n\x10LimitPolicyNames\x12\x0b\n\x07NOT_SET\x10\x00\x12\x14\n\x10SECONDLY_ROLLING\x10\x01\x12\x14\n\x10MINUTELY_ROLLING\x10\x03\x12\x12\n\x0eHOURLY_ROLLING\x10\x05\x12\x11\n\rDAILY_ROLLING\x10\x07\x12\x13\n\x0fMONTHLY_ROLLING\x10\x08\x12\x0c\n\x08INFINITE\x10\t\x12\x12\n\x0eYEARLY_ROLLING\x10\n\"\xed\x02\n\x0cLimitRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\x03R\taccountId\x12%\n\x0e\x61\x63quire_amount\x18\x02 \x01(\x05R\racquireAmount\x12\x16\n\x06groups\x18\x03 \x03(\tR\x06groups\x12I\n\x0elimit_combiner\x18\x04 \x01(\x0e\x32\".prefab.LimitRequest.LimitCombinerR\rlimitCombiner\x12\x34\n\x16\x61llow_partial_response\x18\x05 \x01(\x08R\x14\x61llowPartialResponse\x12\x46\n\x0csafety_level\x18\x06 \x01(\x0e\x32#.prefab.LimitDefinition.SafetyLevelR\x0bsafetyLevel\"6\n\rLimitCombiner\x12\x0b\n\x07NOT_SET\x10\x00\x12\x0b\n\x07MINIMUM\x10\x01\x12\x0b\n\x07MAXIMUM\x10\x02\"9\n\nContextSet\x12+\n\x08\x63ontexts\x18\x01 \x03(\x0b\x32\x0f.prefab.ContextR\x08\x63ontexts\"\xb0\x01\n\x07\x43ontext\x12\x17\n\x04type\x18\x01 \x01(\tH\x00R\x04type\x88\x01\x01\x12\x33\n\x06values\x18\x02 \x03(\x0b\x32\x1b.prefab.Context.ValuesEntryR\x06values\x1aN\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x13.prefab.ConfigValueR\x05value:\x02\x38\x01\x42\x07\n\x05_type\"\xb3\x01\n\x08Identity\x12\x1b\n\x06lookup\x18\x01 \x01(\tH\x00R\x06lookup\x88\x01\x01\x12@\n\nattributes\x18\x02 \x03(\x0b\x32 .prefab.Identity.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\t\n\x07_lookup\"\xa6\x03\n\x18\x43onfigEvaluationMetaData\x12-\n\x10\x63onfig_row_index\x18\x01 \x01(\x03H\x00R\x0e\x63onfigRowIndex\x88\x01\x01\x12;\n\x17\x63onditional_value_index\x18\x02 \x01(\x03H\x01R\x15\x63onditionalValueIndex\x88\x01\x01\x12\x35\n\x14weighted_value_index\x18\x03 \x01(\x03H\x02R\x12weightedValueIndex\x88\x01\x01\x12+\n\x04type\x18\x04 \x01(\x0e\x32\x12.prefab.ConfigTypeH\x03R\x04type\x88\x01\x01\x12\x13\n\x02id\x18\x05 \x01(\x03H\x04R\x02id\x88\x01\x01\x12<\n\nvalue_type\x18\x06 \x01(\x0e\x32\x18.prefab.Config.ValueTypeH\x05R\tvalueType\x88\x01\x01\x42\x13\n\x11_config_row_indexB\x1a\n\x18_conditional_value_indexB\x17\n\x15_weighted_value_indexB\x07\n\x05_typeB\x05\n\x03_idB\r\n\x0b_value_type\"\xf0\x03\n\x11\x43lientConfigValue\x12\x12\n\x03int\x18\x01 \x01(\x03H\x00R\x03int\x12\x18\n\x06string\x18\x02 \x01(\tH\x00R\x06string\x12\x18\n\x06\x64ouble\x18\x03 \x01(\x01H\x00R\x06\x64ouble\x12\x14\n\x04\x62ool\x18\x04 \x01(\x08H\x00R\x04\x62ool\x12/\n\tlog_level\x18\x05 \x01(\x0e\x32\x10.prefab.LogLevelH\x00R\x08logLevel\x12\x35\n\x0bstring_list\x18\x07 \x01(\x0b\x32\x12.prefab.StringListH\x00R\nstringList\x12/\n\tint_range\x18\x08 \x01(\x0b\x32\x10.prefab.IntRangeH\x00R\x08intRange\x12\x34\n\x08\x64uration\x18\t \x01(\x0b\x32\x16.prefab.ClientDurationH\x00R\x08\x64uration\x12\"\n\x04json\x18\n \x01(\x0b\x32\x0c.prefab.JsonH\x00R\x04json\x12\x63\n\x1a\x63onfig_evaluation_metadata\x18\x06 \x01(\x0b\x32 .prefab.ConfigEvaluationMetaDataH\x01R\x18\x63onfigEvaluationMetadata\x88\x01\x01\x42\x06\n\x04typeB\x1d\n\x1b_config_evaluation_metadata\"`\n\x0e\x43lientDuration\x12\x18\n\x07seconds\x18\x01 \x01(\x03R\x07seconds\x12\x14\n\x05nanos\x18\x02 \x01(\x05R\x05nanos\x12\x1e\n\ndefinition\x18\x03 \x01(\tR\ndefinition\"\xd8\x02\n\x11\x43onfigEvaluations\x12=\n\x06values\x18\x01 \x03(\x0b\x32%.prefab.ConfigEvaluations.ValuesEntryR\x06values\x12\x44\n\x0f\x61pikey_metadata\x18\x02 \x01(\x0b\x32\x16.prefab.ApiKeyMetadataH\x00R\x0e\x61pikeyMetadata\x88\x01\x01\x12@\n\x0f\x64\x65\x66\x61ult_context\x18\x03 \x01(\x0b\x32\x12.prefab.ContextSetH\x01R\x0e\x64\x65\x66\x61ultContext\x88\x01\x01\x1aT\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.prefab.ClientConfigValueR\x05value:\x02\x38\x01\x42\x12\n\x10_apikey_metadataB\x12\n\x10_default_context\"\xf4\x02\n\x0fLimitDefinition\x12G\n\x0bpolicy_name\x18\x02 \x01(\x0e\x32&.prefab.LimitResponse.LimitPolicyNamesR\npolicyName\x12\x14\n\x05limit\x18\x03 \x01(\x05R\x05limit\x12\x14\n\x05\x62urst\x18\x04 \x01(\x05R\x05\x62urst\x12\x1d\n\naccount_id\x18\x05 \x01(\x03R\taccountId\x12#\n\rlast_modified\x18\x06 \x01(\x03R\x0clastModified\x12\x1e\n\nreturnable\x18\x07 \x01(\x08R\nreturnable\x12\x46\n\x0csafety_level\x18\x08 \x01(\x0e\x32#.prefab.LimitDefinition.SafetyLevelR\x0bsafetyLevel\"@\n\x0bSafetyLevel\x12\x0b\n\x07NOT_SET\x10\x00\x12\x12\n\x0eL4_BEST_EFFORT\x10\x04\x12\x10\n\x0cL5_BOMBPROOF\x10\x05\"M\n\x10LimitDefinitions\x12\x39\n\x0b\x64\x65\x66initions\x18\x01 \x03(\x0b\x32\x17.prefab.LimitDefinitionR\x0b\x64\x65\x66initions\"\xc8\x01\n\x0f\x42ufferedRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\x03R\taccountId\x12\x16\n\x06method\x18\x02 \x01(\tR\x06method\x12\x10\n\x03uri\x18\x03 \x01(\tR\x03uri\x12\x12\n\x04\x62ody\x18\x04 \x01(\tR\x04\x62ody\x12!\n\x0climit_groups\x18\x05 \x03(\tR\x0blimitGroups\x12!\n\x0c\x63ontent_type\x18\x06 \x01(\tR\x0b\x63ontentType\x12\x12\n\x04\x66ifo\x18\x07 \x01(\x08R\x04\x66ifo\"\xde\x01\n\x0c\x42\x61tchRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\x03R\taccountId\x12\x16\n\x06method\x18\x02 \x01(\tR\x06method\x12\x10\n\x03uri\x18\x03 \x01(\tR\x03uri\x12\x12\n\x04\x62ody\x18\x04 \x01(\tR\x04\x62ody\x12!\n\x0climit_groups\x18\x05 \x03(\tR\x0blimitGroups\x12%\n\x0e\x62\x61tch_template\x18\x06 \x01(\tR\rbatchTemplate\x12\'\n\x0f\x62\x61tch_separator\x18\x07 \x01(\tR\x0e\x62\x61tchSeparator\")\n\rBasicResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"C\n\x10\x43reationResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\x12\x15\n\x06new_id\x18\x02 \x01(\x03R\x05newId\"\x9b\x01\n\x07IdBlock\x12\x1d\n\nproject_id\x18\x01 \x01(\x03R\tprojectId\x12$\n\x0eproject_env_id\x18\x02 \x01(\x03R\x0cprojectEnvId\x12#\n\rsequence_name\x18\x03 \x01(\tR\x0csequenceName\x12\x14\n\x05start\x18\x04 \x01(\x03R\x05start\x12\x10\n\x03\x65nd\x18\x05 \x01(\x03R\x03\x65nd\"\x8e\x01\n\x0eIdBlockRequest\x12\x1d\n\nproject_id\x18\x01 \x01(\x03R\tprojectId\x12$\n\x0eproject_env_id\x18\x02 \x01(\x03R\x0cprojectEnvId\x12#\n\rsequence_name\x18\x03 \x01(\tR\x0csequenceName\x12\x12\n\x04size\x18\x04 \x01(\x03R\x04size\"\xa8\x01\n\x0c\x43ontextShape\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x45\n\x0b\x66ield_types\x18\x02 \x03(\x0b\x32$.prefab.ContextShape.FieldTypesEntryR\nfieldTypes\x1a=\n\x0f\x46ieldTypesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01\"n\n\rContextShapes\x12,\n\x06shapes\x18\x01 \x03(\x0b\x32\x14.prefab.ContextShapeR\x06shapes\x12!\n\tnamespace\x18\x02 \x01(\tH\x00R\tnamespace\x88\x01\x01\x42\x0c\n\n_namespace\"T\n\rEvaluatedKeys\x12\x12\n\x04keys\x18\x01 \x03(\tR\x04keys\x12!\n\tnamespace\x18\x02 \x01(\tH\x00R\tnamespace\x88\x01\x01\x42\x0c\n\n_namespace\"\xc3\x01\n\x0f\x45valuatedConfig\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12%\n\x0e\x63onfig_version\x18\x02 \x01(\x03R\rconfigVersion\x12+\n\x06result\x18\x03 \x01(\x0b\x32\x13.prefab.ConfigValueR\x06result\x12,\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x12.prefab.ContextSetR\x07\x63ontext\x12\x1c\n\ttimestamp\x18\x05 \x01(\x03R\ttimestamp\"E\n\x10\x45valuatedConfigs\x12\x31\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x17.prefab.EvaluatedConfigR\x07\x63onfigs\"\xb6\x04\n\x17\x43onfigEvaluationCounter\x12\x14\n\x05\x63ount\x18\x01 \x01(\x03R\x05\x63ount\x12 \n\tconfig_id\x18\x02 \x01(\x03H\x00R\x08\x63onfigId\x88\x01\x01\x12*\n\x0eselected_index\x18\x03 \x01(\rH\x01R\rselectedIndex\x88\x01\x01\x12?\n\x0eselected_value\x18\x04 \x01(\x0b\x32\x13.prefab.ConfigValueH\x02R\rselectedValue\x88\x01\x01\x12-\n\x10\x63onfig_row_index\x18\x05 \x01(\rH\x03R\x0e\x63onfigRowIndex\x88\x01\x01\x12;\n\x17\x63onditional_value_index\x18\x06 \x01(\rH\x04R\x15\x63onditionalValueIndex\x88\x01\x01\x12\x35\n\x14weighted_value_index\x18\x07 \x01(\rH\x05R\x12weightedValueIndex\x88\x01\x01\x12>\n\x06reason\x18\x08 \x01(\x0e\x32&.prefab.ConfigEvaluationCounter.ReasonR\x06reason\"\x15\n\x06Reason\x12\x0b\n\x07UNKNOWN\x10\x00\x42\x0c\n\n_config_idB\x11\n\x0f_selected_indexB\x11\n\x0f_selected_valueB\x13\n\x11_config_row_indexB\x1a\n\x18_conditional_value_indexB\x17\n\x15_weighted_value_index\"\x90\x01\n\x17\x43onfigEvaluationSummary\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12&\n\x04type\x18\x02 \x01(\x0e\x32\x12.prefab.ConfigTypeR\x04type\x12;\n\x08\x63ounters\x18\x03 \x03(\x0b\x32\x1f.prefab.ConfigEvaluationCounterR\x08\x63ounters\"\x82\x01\n\x19\x43onfigEvaluationSummaries\x12\x14\n\x05start\x18\x01 \x01(\x03R\x05start\x12\x10\n\x03\x65nd\x18\x02 \x01(\x03R\x03\x65nd\x12=\n\tsummaries\x18\x03 \x03(\x0b\x32\x1f.prefab.ConfigEvaluationSummaryR\tsummaries\"s\n\x15LoggersTelemetryEvent\x12(\n\x07loggers\x18\x01 \x03(\x0b\x32\x0e.prefab.LoggerR\x07loggers\x12\x19\n\x08start_at\x18\x02 \x01(\x03R\x07startAt\x12\x15\n\x06\x65nd_at\x18\x03 \x01(\x03R\x05\x65ndAt\"\xd9\x02\n\x0eTelemetryEvent\x12\x41\n\tsummaries\x18\x02 \x01(\x0b\x32!.prefab.ConfigEvaluationSummariesH\x00R\tsummaries\x12\x44\n\x10\x65xample_contexts\x18\x03 \x01(\x0b\x32\x17.prefab.ExampleContextsH\x00R\x0f\x65xampleContexts\x12\x38\n\x0c\x63lient_stats\x18\x04 \x01(\x0b\x32\x13.prefab.ClientStatsH\x00R\x0b\x63lientStats\x12\x39\n\x07loggers\x18\x05 \x01(\x0b\x32\x1d.prefab.LoggersTelemetryEventH\x00R\x07loggers\x12>\n\x0e\x63ontext_shapes\x18\x06 \x01(\x0b\x32\x15.prefab.ContextShapesH\x00R\rcontextShapesB\t\n\x07payload\"f\n\x0fTelemetryEvents\x12#\n\rinstance_hash\x18\x01 \x01(\tR\x0cinstanceHash\x12.\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x16.prefab.TelemetryEventR\x06\x65vents\"3\n\x17TelemetryEventsResponse\x12\x18\n\x07success\x18\x01 \x01(\x08R\x07success\"E\n\x0f\x45xampleContexts\x12\x32\n\x08\x65xamples\x18\x01 \x03(\x0b\x32\x16.prefab.ExampleContextR\x08\x65xamples\"b\n\x0e\x45xampleContext\x12\x1c\n\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x12\x32\n\ncontextSet\x18\x02 \x01(\x0b\x32\x12.prefab.ContextSetR\ncontextSet\"e\n\x0b\x43lientStats\x12\x14\n\x05start\x18\x01 \x01(\x03R\x05start\x12\x10\n\x03\x65nd\x18\x02 \x01(\x03R\x03\x65nd\x12.\n\x13\x64ropped_event_count\x18\x03 \x01(\x04R\x11\x64roppedEventCount\"\x91\x01\n\x06Schema\x12\x16\n\x06schema\x18\x01 \x01(\tR\x06schema\x12:\n\x0bschema_type\x18\x02 \x01(\x0e\x32\x19.prefab.Schema.SchemaTypeR\nschemaType\"3\n\nSchemaType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03ZOD\x10\x01\x12\x0f\n\x0bJSON_SCHEMA\x10\x02*:\n\x0eProvidedSource\x12\x1b\n\x17PROVIDED_SOURCE_NOT_SET\x10\x00\x12\x0b\n\x07\x45NV_VAR\x10\x01*\x8e\x01\n\nConfigType\x12\x17\n\x13NOT_SET_CONFIG_TYPE\x10\x00\x12\n\n\x06\x43ONFIG\x10\x01\x12\x10\n\x0c\x46\x45\x41TURE_FLAG\x10\x02\x12\r\n\tLOG_LEVEL\x10\x03\x12\x0b\n\x07SEGMENT\x10\x04\x12\x14\n\x10LIMIT_DEFINITION\x10\x05\x12\x0b\n\x07\x44\x45LETED\x10\x06\x12\n\n\x06SCHEMA\x10\x07*a\n\x08LogLevel\x12\x15\n\x11NOT_SET_LOG_LEVEL\x10\x00\x12\t\n\x05TRACE\x10\x01\x12\t\n\x05\x44\x45\x42UG\x10\x02\x12\x08\n\x04INFO\x10\x03\x12\x08\n\x04WARN\x10\x05\x12\t\n\x05\x45RROR\x10\x06\x12\t\n\x05\x46\x41TAL\x10\t*G\n\tOnFailure\x12\x0b\n\x07NOT_SET\x10\x00\x12\x10\n\x0cLOG_AND_PASS\x10\x01\x12\x10\n\x0cLOG_AND_FAIL\x10\x02\x12\t\n\x05THROW\x10\x03\x42L\n\x13\x63loud.prefab.domainB\x06PrefabZ-github.com/prefab-cloud/prefab-cloud-go/protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,136 +32,140 @@ _CONFIGEVALUATIONS_VALUESENTRY._serialized_options = b'8\001' _CONTEXTSHAPE_FIELDTYPESENTRY._options = None _CONTEXTSHAPE_FIELDTYPESENTRY._serialized_options = b'8\001' - _globals['_PROVIDEDSOURCE']._serialized_start=10710 - _globals['_PROVIDEDSOURCE']._serialized_end=10768 - _globals['_CONFIGTYPE']._serialized_start=10771 - _globals['_CONFIGTYPE']._serialized_end=10901 - _globals['_LOGLEVEL']._serialized_start=10903 - _globals['_LOGLEVEL']._serialized_end=11000 - _globals['_ONFAILURE']._serialized_start=11002 - _globals['_ONFAILURE']._serialized_end=11073 + _globals['_PROVIDEDSOURCE']._serialized_start=10951 + _globals['_PROVIDEDSOURCE']._serialized_end=11009 + _globals['_CONFIGTYPE']._serialized_start=11012 + _globals['_CONFIGTYPE']._serialized_end=11154 + _globals['_LOGLEVEL']._serialized_start=11156 + _globals['_LOGLEVEL']._serialized_end=11253 + _globals['_ONFAILURE']._serialized_start=11255 + _globals['_ONFAILURE']._serialized_end=11326 _globals['_CONFIGSERVICEPOINTER']._serialized_start=24 _globals['_CONFIGSERVICEPOINTER']._serialized_end=147 _globals['_CONFIGVALUE']._serialized_start=150 - _globals['_CONFIGVALUE']._serialized_end=829 - _globals['_JSON']._serialized_start=831 - _globals['_JSON']._serialized_end=857 - _globals['_ISODURATION']._serialized_start=859 - _globals['_ISODURATION']._serialized_end=904 - _globals['_PROVIDED']._serialized_start=906 - _globals['_PROVIDED']._serialized_end=1020 - _globals['_INTRANGE']._serialized_start=1022 - _globals['_INTRANGE']._serialized_end=1100 - _globals['_STRINGLIST']._serialized_start=1102 - _globals['_STRINGLIST']._serialized_end=1138 - _globals['_WEIGHTEDVALUE']._serialized_start=1140 - _globals['_WEIGHTEDVALUE']._serialized_end=1222 - _globals['_WEIGHTEDVALUES']._serialized_start=1225 - _globals['_WEIGHTEDVALUES']._serialized_end=1387 - _globals['_APIKEYMETADATA']._serialized_start=1389 - _globals['_APIKEYMETADATA']._serialized_end=1492 - _globals['_CONFIGS']._serialized_start=1495 - _globals['_CONFIGS']._serialized_end=1857 - _globals['_CONFIG']._serialized_start=1860 - _globals['_CONFIG']._serialized_end=2471 - _globals['_CONFIG_VALUETYPE']._serialized_start=2276 - _globals['_CONFIG_VALUETYPE']._serialized_end=2458 - _globals['_CHANGEDBY']._serialized_start=2473 - _globals['_CHANGEDBY']._serialized_end=2561 - _globals['_CONFIGROW']._serialized_start=2564 - _globals['_CONFIGROW']._serialized_end=2838 - _globals['_CONFIGROW_PROPERTIESENTRY']._serialized_start=2737 - _globals['_CONFIGROW_PROPERTIESENTRY']._serialized_end=2819 - _globals['_CONDITIONALVALUE']._serialized_start=2840 - _globals['_CONDITIONALVALUE']._serialized_end=2948 - _globals['_CRITERION']._serialized_start=2951 - _globals['_CRITERION']._serialized_end=3779 - _globals['_CRITERION_CRITERIONOPERATOR']._serialized_start=3126 - _globals['_CRITERION_CRITERIONOPERATOR']._serialized_end=3779 - _globals['_LOGGERS']._serialized_start=3782 - _globals['_LOGGERS']._serialized_end=3969 - _globals['_LOGGER']._serialized_start=3972 - _globals['_LOGGER']._serialized_end=4247 - _globals['_LOGGERREPORTRESPONSE']._serialized_start=4249 - _globals['_LOGGERREPORTRESPONSE']._serialized_end=4271 - _globals['_LIMITRESPONSE']._serialized_start=4274 - _globals['_LIMITRESPONSE']._serialized_end=4871 - _globals['_LIMITRESPONSE_LIMITPOLICYNAMES']._serialized_start=4702 - _globals['_LIMITRESPONSE_LIMITPOLICYNAMES']._serialized_end=4871 - _globals['_LIMITREQUEST']._serialized_start=4874 - _globals['_LIMITREQUEST']._serialized_end=5239 - _globals['_LIMITREQUEST_LIMITCOMBINER']._serialized_start=5185 - _globals['_LIMITREQUEST_LIMITCOMBINER']._serialized_end=5239 - _globals['_CONTEXTSET']._serialized_start=5241 - _globals['_CONTEXTSET']._serialized_end=5298 - _globals['_CONTEXT']._serialized_start=5301 - _globals['_CONTEXT']._serialized_end=5477 - _globals['_CONTEXT_VALUESENTRY']._serialized_start=5390 - _globals['_CONTEXT_VALUESENTRY']._serialized_end=5468 - _globals['_IDENTITY']._serialized_start=5480 - _globals['_IDENTITY']._serialized_end=5659 - _globals['_IDENTITY_ATTRIBUTESENTRY']._serialized_start=5587 - _globals['_IDENTITY_ATTRIBUTESENTRY']._serialized_end=5648 - _globals['_CONFIGEVALUATIONMETADATA']._serialized_start=5662 - _globals['_CONFIGEVALUATIONMETADATA']._serialized_end=6084 - _globals['_CLIENTCONFIGVALUE']._serialized_start=6087 - _globals['_CLIENTCONFIGVALUE']._serialized_end=6583 - _globals['_CLIENTDURATION']._serialized_start=6585 - _globals['_CLIENTDURATION']._serialized_end=6681 - _globals['_CONFIGEVALUATIONS']._serialized_start=6684 - _globals['_CONFIGEVALUATIONS']._serialized_end=7028 - _globals['_CONFIGEVALUATIONS_VALUESENTRY']._serialized_start=6904 - _globals['_CONFIGEVALUATIONS_VALUESENTRY']._serialized_end=6988 - _globals['_LIMITDEFINITION']._serialized_start=7031 - _globals['_LIMITDEFINITION']._serialized_end=7403 - _globals['_LIMITDEFINITION_SAFETYLEVEL']._serialized_start=7339 - _globals['_LIMITDEFINITION_SAFETYLEVEL']._serialized_end=7403 - _globals['_LIMITDEFINITIONS']._serialized_start=7405 - _globals['_LIMITDEFINITIONS']._serialized_end=7482 - _globals['_BUFFEREDREQUEST']._serialized_start=7485 - _globals['_BUFFEREDREQUEST']._serialized_end=7685 - _globals['_BATCHREQUEST']._serialized_start=7688 - _globals['_BATCHREQUEST']._serialized_end=7910 - _globals['_BASICRESPONSE']._serialized_start=7912 - _globals['_BASICRESPONSE']._serialized_end=7953 - _globals['_CREATIONRESPONSE']._serialized_start=7955 - _globals['_CREATIONRESPONSE']._serialized_end=8022 - _globals['_IDBLOCK']._serialized_start=8025 - _globals['_IDBLOCK']._serialized_end=8180 - _globals['_IDBLOCKREQUEST']._serialized_start=8183 - _globals['_IDBLOCKREQUEST']._serialized_end=8325 - _globals['_CONTEXTSHAPE']._serialized_start=8328 - _globals['_CONTEXTSHAPE']._serialized_end=8496 - _globals['_CONTEXTSHAPE_FIELDTYPESENTRY']._serialized_start=8435 - _globals['_CONTEXTSHAPE_FIELDTYPESENTRY']._serialized_end=8496 - _globals['_CONTEXTSHAPES']._serialized_start=8498 - _globals['_CONTEXTSHAPES']._serialized_end=8608 - _globals['_EVALUATEDKEYS']._serialized_start=8610 - _globals['_EVALUATEDKEYS']._serialized_end=8694 - _globals['_EVALUATEDCONFIG']._serialized_start=8697 - _globals['_EVALUATEDCONFIG']._serialized_end=8892 - _globals['_EVALUATEDCONFIGS']._serialized_start=8894 - _globals['_EVALUATEDCONFIGS']._serialized_end=8963 - _globals['_CONFIGEVALUATIONCOUNTER']._serialized_start=8966 - _globals['_CONFIGEVALUATIONCOUNTER']._serialized_end=9532 - _globals['_CONFIGEVALUATIONCOUNTER_REASON']._serialized_start=9385 - _globals['_CONFIGEVALUATIONCOUNTER_REASON']._serialized_end=9406 - _globals['_CONFIGEVALUATIONSUMMARY']._serialized_start=9535 - _globals['_CONFIGEVALUATIONSUMMARY']._serialized_end=9679 - _globals['_CONFIGEVALUATIONSUMMARIES']._serialized_start=9682 - _globals['_CONFIGEVALUATIONSUMMARIES']._serialized_end=9812 - _globals['_LOGGERSTELEMETRYEVENT']._serialized_start=9814 - _globals['_LOGGERSTELEMETRYEVENT']._serialized_end=9929 - _globals['_TELEMETRYEVENT']._serialized_start=9932 - _globals['_TELEMETRYEVENT']._serialized_end=10277 - _globals['_TELEMETRYEVENTS']._serialized_start=10279 - _globals['_TELEMETRYEVENTS']._serialized_end=10381 - _globals['_TELEMETRYEVENTSRESPONSE']._serialized_start=10383 - _globals['_TELEMETRYEVENTSRESPONSE']._serialized_end=10434 - _globals['_EXAMPLECONTEXTS']._serialized_start=10436 - _globals['_EXAMPLECONTEXTS']._serialized_end=10505 - _globals['_EXAMPLECONTEXT']._serialized_start=10507 - _globals['_EXAMPLECONTEXT']._serialized_end=10605 - _globals['_CLIENTSTATS']._serialized_start=10607 - _globals['_CLIENTSTATS']._serialized_end=10708 + _globals['_CONFIGVALUE']._serialized_end=871 + _globals['_JSON']._serialized_start=873 + _globals['_JSON']._serialized_end=899 + _globals['_ISODURATION']._serialized_start=901 + _globals['_ISODURATION']._serialized_end=946 + _globals['_PROVIDED']._serialized_start=948 + _globals['_PROVIDED']._serialized_end=1062 + _globals['_INTRANGE']._serialized_start=1064 + _globals['_INTRANGE']._serialized_end=1142 + _globals['_STRINGLIST']._serialized_start=1144 + _globals['_STRINGLIST']._serialized_end=1180 + _globals['_WEIGHTEDVALUE']._serialized_start=1182 + _globals['_WEIGHTEDVALUE']._serialized_end=1264 + _globals['_WEIGHTEDVALUES']._serialized_start=1267 + _globals['_WEIGHTEDVALUES']._serialized_end=1429 + _globals['_APIKEYMETADATA']._serialized_start=1431 + _globals['_APIKEYMETADATA']._serialized_end=1534 + _globals['_CONFIGS']._serialized_start=1537 + _globals['_CONFIGS']._serialized_end=1899 + _globals['_CONFIG']._serialized_start=1902 + _globals['_CONFIG']._serialized_end=2564 + _globals['_CONFIG_VALUETYPE']._serialized_start=2354 + _globals['_CONFIG_VALUETYPE']._serialized_end=2536 + _globals['_CHANGEDBY']._serialized_start=2566 + _globals['_CHANGEDBY']._serialized_end=2654 + _globals['_CONFIGROW']._serialized_start=2657 + _globals['_CONFIGROW']._serialized_end=2931 + _globals['_CONFIGROW_PROPERTIESENTRY']._serialized_start=2830 + _globals['_CONFIGROW_PROPERTIESENTRY']._serialized_end=2912 + _globals['_CONDITIONALVALUE']._serialized_start=2933 + _globals['_CONDITIONALVALUE']._serialized_end=3041 + _globals['_CRITERION']._serialized_start=3044 + _globals['_CRITERION']._serialized_end=3872 + _globals['_CRITERION_CRITERIONOPERATOR']._serialized_start=3219 + _globals['_CRITERION_CRITERIONOPERATOR']._serialized_end=3872 + _globals['_LOGGERS']._serialized_start=3875 + _globals['_LOGGERS']._serialized_end=4062 + _globals['_LOGGER']._serialized_start=4065 + _globals['_LOGGER']._serialized_end=4340 + _globals['_LOGGERREPORTRESPONSE']._serialized_start=4342 + _globals['_LOGGERREPORTRESPONSE']._serialized_end=4364 + _globals['_LIMITRESPONSE']._serialized_start=4367 + _globals['_LIMITRESPONSE']._serialized_end=4964 + _globals['_LIMITRESPONSE_LIMITPOLICYNAMES']._serialized_start=4795 + _globals['_LIMITRESPONSE_LIMITPOLICYNAMES']._serialized_end=4964 + _globals['_LIMITREQUEST']._serialized_start=4967 + _globals['_LIMITREQUEST']._serialized_end=5332 + _globals['_LIMITREQUEST_LIMITCOMBINER']._serialized_start=5278 + _globals['_LIMITREQUEST_LIMITCOMBINER']._serialized_end=5332 + _globals['_CONTEXTSET']._serialized_start=5334 + _globals['_CONTEXTSET']._serialized_end=5391 + _globals['_CONTEXT']._serialized_start=5394 + _globals['_CONTEXT']._serialized_end=5570 + _globals['_CONTEXT_VALUESENTRY']._serialized_start=5483 + _globals['_CONTEXT_VALUESENTRY']._serialized_end=5561 + _globals['_IDENTITY']._serialized_start=5573 + _globals['_IDENTITY']._serialized_end=5752 + _globals['_IDENTITY_ATTRIBUTESENTRY']._serialized_start=5680 + _globals['_IDENTITY_ATTRIBUTESENTRY']._serialized_end=5741 + _globals['_CONFIGEVALUATIONMETADATA']._serialized_start=5755 + _globals['_CONFIGEVALUATIONMETADATA']._serialized_end=6177 + _globals['_CLIENTCONFIGVALUE']._serialized_start=6180 + _globals['_CLIENTCONFIGVALUE']._serialized_end=6676 + _globals['_CLIENTDURATION']._serialized_start=6678 + _globals['_CLIENTDURATION']._serialized_end=6774 + _globals['_CONFIGEVALUATIONS']._serialized_start=6777 + _globals['_CONFIGEVALUATIONS']._serialized_end=7121 + _globals['_CONFIGEVALUATIONS_VALUESENTRY']._serialized_start=6997 + _globals['_CONFIGEVALUATIONS_VALUESENTRY']._serialized_end=7081 + _globals['_LIMITDEFINITION']._serialized_start=7124 + _globals['_LIMITDEFINITION']._serialized_end=7496 + _globals['_LIMITDEFINITION_SAFETYLEVEL']._serialized_start=7432 + _globals['_LIMITDEFINITION_SAFETYLEVEL']._serialized_end=7496 + _globals['_LIMITDEFINITIONS']._serialized_start=7498 + _globals['_LIMITDEFINITIONS']._serialized_end=7575 + _globals['_BUFFEREDREQUEST']._serialized_start=7578 + _globals['_BUFFEREDREQUEST']._serialized_end=7778 + _globals['_BATCHREQUEST']._serialized_start=7781 + _globals['_BATCHREQUEST']._serialized_end=8003 + _globals['_BASICRESPONSE']._serialized_start=8005 + _globals['_BASICRESPONSE']._serialized_end=8046 + _globals['_CREATIONRESPONSE']._serialized_start=8048 + _globals['_CREATIONRESPONSE']._serialized_end=8115 + _globals['_IDBLOCK']._serialized_start=8118 + _globals['_IDBLOCK']._serialized_end=8273 + _globals['_IDBLOCKREQUEST']._serialized_start=8276 + _globals['_IDBLOCKREQUEST']._serialized_end=8418 + _globals['_CONTEXTSHAPE']._serialized_start=8421 + _globals['_CONTEXTSHAPE']._serialized_end=8589 + _globals['_CONTEXTSHAPE_FIELDTYPESENTRY']._serialized_start=8528 + _globals['_CONTEXTSHAPE_FIELDTYPESENTRY']._serialized_end=8589 + _globals['_CONTEXTSHAPES']._serialized_start=8591 + _globals['_CONTEXTSHAPES']._serialized_end=8701 + _globals['_EVALUATEDKEYS']._serialized_start=8703 + _globals['_EVALUATEDKEYS']._serialized_end=8787 + _globals['_EVALUATEDCONFIG']._serialized_start=8790 + _globals['_EVALUATEDCONFIG']._serialized_end=8985 + _globals['_EVALUATEDCONFIGS']._serialized_start=8987 + _globals['_EVALUATEDCONFIGS']._serialized_end=9056 + _globals['_CONFIGEVALUATIONCOUNTER']._serialized_start=9059 + _globals['_CONFIGEVALUATIONCOUNTER']._serialized_end=9625 + _globals['_CONFIGEVALUATIONCOUNTER_REASON']._serialized_start=9478 + _globals['_CONFIGEVALUATIONCOUNTER_REASON']._serialized_end=9499 + _globals['_CONFIGEVALUATIONSUMMARY']._serialized_start=9628 + _globals['_CONFIGEVALUATIONSUMMARY']._serialized_end=9772 + _globals['_CONFIGEVALUATIONSUMMARIES']._serialized_start=9775 + _globals['_CONFIGEVALUATIONSUMMARIES']._serialized_end=9905 + _globals['_LOGGERSTELEMETRYEVENT']._serialized_start=9907 + _globals['_LOGGERSTELEMETRYEVENT']._serialized_end=10022 + _globals['_TELEMETRYEVENT']._serialized_start=10025 + _globals['_TELEMETRYEVENT']._serialized_end=10370 + _globals['_TELEMETRYEVENTS']._serialized_start=10372 + _globals['_TELEMETRYEVENTS']._serialized_end=10474 + _globals['_TELEMETRYEVENTSRESPONSE']._serialized_start=10476 + _globals['_TELEMETRYEVENTSRESPONSE']._serialized_end=10527 + _globals['_EXAMPLECONTEXTS']._serialized_start=10529 + _globals['_EXAMPLECONTEXTS']._serialized_end=10598 + _globals['_EXAMPLECONTEXT']._serialized_start=10600 + _globals['_EXAMPLECONTEXT']._serialized_end=10698 + _globals['_CLIENTSTATS']._serialized_start=10700 + _globals['_CLIENTSTATS']._serialized_end=10801 + _globals['_SCHEMA']._serialized_start=10804 + _globals['_SCHEMA']._serialized_end=10949 + _globals['_SCHEMA_SCHEMATYPE']._serialized_start=10898 + _globals['_SCHEMA_SCHEMATYPE']._serialized_end=10949 # @@protoc_insertion_point(module_scope) diff --git a/prefab_pb2.pyi b/prefab_pb2.pyi index e2f8a8f..990b5a2 100644 --- a/prefab_pb2.pyi +++ b/prefab_pb2.pyi @@ -47,6 +47,7 @@ class _ConfigTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._Enu SEGMENT: _ConfigType.ValueType # 4 LIMIT_DEFINITION: _ConfigType.ValueType # 5 DELETED: _ConfigType.ValueType # 6 + SCHEMA: _ConfigType.ValueType # 7 class ConfigType(_ConfigType, metaclass=_ConfigTypeEnumTypeWrapper): ... @@ -58,6 +59,7 @@ LOG_LEVEL: ConfigType.ValueType # 3 SEGMENT: ConfigType.ValueType # 4 LIMIT_DEFINITION: ConfigType.ValueType # 5 DELETED: ConfigType.ValueType # 6 +SCHEMA: ConfigType.ValueType # 7 global___ConfigType = ConfigType class _LogLevel: @@ -150,6 +152,7 @@ class ConfigValue(google.protobuf.message.Message): PROVIDED_FIELD_NUMBER: builtins.int DURATION_FIELD_NUMBER: builtins.int JSON_FIELD_NUMBER: builtins.int + SCHEMA_FIELD_NUMBER: builtins.int CONFIDENTIAL_FIELD_NUMBER: builtins.int DECRYPT_WITH_FIELD_NUMBER: builtins.int int: builtins.int @@ -172,6 +175,8 @@ class ConfigValue(google.protobuf.message.Message): def duration(self) -> global___IsoDuration: ... @property def json(self) -> global___Json: ... + @property + def schema(self) -> global___Schema: ... confidential: builtins.bool """don't log or telemetry this value""" decrypt_with: builtins.str @@ -192,17 +197,18 @@ class ConfigValue(google.protobuf.message.Message): provided: global___Provided | None = ..., duration: global___IsoDuration | None = ..., json: global___Json | None = ..., + schema: global___Schema | None = ..., confidential: builtins.bool | None = ..., decrypt_with: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_confidential", b"_confidential", "_decrypt_with", b"_decrypt_with", "bool", b"bool", "bytes", b"bytes", "confidential", b"confidential", "decrypt_with", b"decrypt_with", "double", b"double", "duration", b"duration", "int", b"int", "int_range", b"int_range", "json", b"json", "limit_definition", b"limit_definition", "log_level", b"log_level", "provided", b"provided", "string", b"string", "string_list", b"string_list", "type", b"type", "weighted_values", b"weighted_values"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_confidential", b"_confidential", "_decrypt_with", b"_decrypt_with", "bool", b"bool", "bytes", b"bytes", "confidential", b"confidential", "decrypt_with", b"decrypt_with", "double", b"double", "duration", b"duration", "int", b"int", "int_range", b"int_range", "json", b"json", "limit_definition", b"limit_definition", "log_level", b"log_level", "provided", b"provided", "string", b"string", "string_list", b"string_list", "type", b"type", "weighted_values", b"weighted_values"]) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_confidential", b"_confidential", "_decrypt_with", b"_decrypt_with", "bool", b"bool", "bytes", b"bytes", "confidential", b"confidential", "decrypt_with", b"decrypt_with", "double", b"double", "duration", b"duration", "int", b"int", "int_range", b"int_range", "json", b"json", "limit_definition", b"limit_definition", "log_level", b"log_level", "provided", b"provided", "schema", b"schema", "string", b"string", "string_list", b"string_list", "type", b"type", "weighted_values", b"weighted_values"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_confidential", b"_confidential", "_decrypt_with", b"_decrypt_with", "bool", b"bool", "bytes", b"bytes", "confidential", b"confidential", "decrypt_with", b"decrypt_with", "double", b"double", "duration", b"duration", "int", b"int", "int_range", b"int_range", "json", b"json", "limit_definition", b"limit_definition", "log_level", b"log_level", "provided", b"provided", "schema", b"schema", "string", b"string", "string_list", b"string_list", "type", b"type", "weighted_values", b"weighted_values"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing_extensions.Literal["_confidential", b"_confidential"]) -> typing_extensions.Literal["confidential"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing_extensions.Literal["_decrypt_with", b"_decrypt_with"]) -> typing_extensions.Literal["decrypt_with"] | None: ... @typing.overload - def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["int", "string", "bytes", "double", "bool", "weighted_values", "limit_definition", "log_level", "string_list", "int_range", "provided", "duration", "json"] | None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["int", "string", "bytes", "double", "bool", "weighted_values", "limit_definition", "log_level", "string_list", "int_range", "provided", "duration", "json", "schema"] | None: ... global___ConfigValue = ConfigValue @@ -456,6 +462,7 @@ class Config(google.protobuf.message.Message): DRAFT_ID_FIELD_NUMBER: builtins.int VALUE_TYPE_FIELD_NUMBER: builtins.int SEND_TO_CLIENT_SDK_FIELD_NUMBER: builtins.int + SCHEMA_KEY_FIELD_NUMBER: builtins.int id: builtins.int project_id: builtins.int key: builtins.str @@ -470,6 +477,7 @@ class Config(google.protobuf.message.Message): value_type: global___Config.ValueType.ValueType send_to_client_sdk: builtins.bool """default value of a boolean in proto3 is false""" + schema_key: builtins.str def __init__( self, *, @@ -483,10 +491,14 @@ class Config(google.protobuf.message.Message): draft_id: builtins.int | None = ..., value_type: global___Config.ValueType.ValueType = ..., send_to_client_sdk: builtins.bool = ..., + schema_key: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_draft_id", b"_draft_id", "changed_by", b"changed_by", "draft_id", b"draft_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_draft_id", b"_draft_id", "allowable_values", b"allowable_values", "changed_by", b"changed_by", "config_type", b"config_type", "draft_id", b"draft_id", "id", b"id", "key", b"key", "project_id", b"project_id", "rows", b"rows", "send_to_client_sdk", b"send_to_client_sdk", "value_type", b"value_type"]) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_draft_id", b"_draft_id", "_schema_key", b"_schema_key", "changed_by", b"changed_by", "draft_id", b"draft_id", "schema_key", b"schema_key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_draft_id", b"_draft_id", "_schema_key", b"_schema_key", "allowable_values", b"allowable_values", "changed_by", b"changed_by", "config_type", b"config_type", "draft_id", b"draft_id", "id", b"id", "key", b"key", "project_id", b"project_id", "rows", b"rows", "schema_key", b"schema_key", "send_to_client_sdk", b"send_to_client_sdk", "value_type", b"value_type"]) -> None: ... + @typing.overload def WhichOneof(self, oneof_group: typing_extensions.Literal["_draft_id", b"_draft_id"]) -> typing_extensions.Literal["draft_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_schema_key", b"_schema_key"]) -> typing_extensions.Literal["schema_key"] | None: ... global___Config = Config @@ -1725,3 +1737,36 @@ class ClientStats(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal["dropped_event_count", b"dropped_event_count", "end", b"end", "start", b"start"]) -> None: ... global___ClientStats = ClientStats + +@typing_extensions.final +class Schema(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _SchemaType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _SchemaTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Schema._SchemaType.ValueType], builtins.type): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNKNOWN: Schema._SchemaType.ValueType # 0 + ZOD: Schema._SchemaType.ValueType # 1 + JSON_SCHEMA: Schema._SchemaType.ValueType # 2 + + class SchemaType(_SchemaType, metaclass=_SchemaTypeEnumTypeWrapper): ... + UNKNOWN: Schema.SchemaType.ValueType # 0 + ZOD: Schema.SchemaType.ValueType # 1 + JSON_SCHEMA: Schema.SchemaType.ValueType # 2 + + SCHEMA_FIELD_NUMBER: builtins.int + SCHEMA_TYPE_FIELD_NUMBER: builtins.int + schema: builtins.str + schema_type: global___Schema.SchemaType.ValueType + def __init__( + self, + *, + schema: builtins.str = ..., + schema_type: global___Schema.SchemaType.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["schema", b"schema", "schema_type", b"schema_type"]) -> None: ... + +global___Schema = Schema From 583accf759fea5a59b38f4d121c416b45532c1d2 Mon Sep 17 00:00:00 2001 From: James Kebinger Date: Thu, 13 Mar 2025 15:50:30 -0500 Subject: [PATCH 2/3] Mark "schema" type as unsupported in context shape --- tests/test_context_shape.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_context_shape.py b/tests/test_context_shape.py index db4baf2..8a71add 100644 --- a/tests/test_context_shape.py +++ b/tests/test_context_shape.py @@ -40,6 +40,7 @@ def test_mapping_is_exhaustive(self): "confidential", "decrypt_with", "duration", + "schema" ] supported = list( From acfea6239b8907af3170e401bc8eede82b585588 Mon Sep 17 00:00:00 2001 From: James Kebinger Date: Thu, 13 Mar 2025 15:57:16 -0500 Subject: [PATCH 3/3] Resolve some formatting issues --- CHANGELOG.md | 1 + prefab.proto | 2 +- tests/test_context_shape.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 336738b..c44a8c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog ## Unreleased + - Re-exported Protocol Buffer types including `ConfigValue`, `StringList`, `ProtoContext`, `ContextSet`, `ContextShape`, `LogLevel`, `Json`, and `Schema` for easier access. ## [0.11.2] - 2025-02-24 diff --git a/prefab.proto b/prefab.proto index c9dec48..8587ca8 100644 --- a/prefab.proto +++ b/prefab.proto @@ -477,4 +477,4 @@ message Schema { } string schema = 1; SchemaType schema_type = 2; -} \ No newline at end of file +} diff --git a/tests/test_context_shape.py b/tests/test_context_shape.py index 8a71add..17eafdb 100644 --- a/tests/test_context_shape.py +++ b/tests/test_context_shape.py @@ -40,7 +40,7 @@ def test_mapping_is_exhaustive(self): "confidential", "decrypt_with", "duration", - "schema" + "schema", ] supported = list(