# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: tecton_proto/api/featureservice/feature_service.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
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
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from tecton_proto.api.featureservice import feature_service_request_pb2 as tecton__proto_dot_api_dot_featureservice_dot_feature__service__request__pb2
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from protoc_gen_swagger.options import annotations_pb2 as protoc__gen__swagger_dot_options_dot_annotations__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5tecton_proto/api/featureservice/feature_service.proto\x12 tecton_proto.api.feature_service\x1a=tecton_proto/api/featureservice/feature_service_request.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a,protoc-gen-swagger/options/annotations.proto\"\xbf\x02\n\x0bNameAndType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12[\n\tdata_type\x18\x03 \x01(\x0b\x32>.tecton_proto.api.feature_service.FeatureServerComplexDataTypeR\x08\x64\x61taType\x12O\n\x04type\x18\x02 \x01(\x0e\x32\x37.tecton_proto.api.feature_service.FeatureServerDataTypeB\x02\x18\x01R\x04type:n\x92\x41k\n\r*\x0bNameAndType:Z{\"name\":\"string\",\"dataType\": \"#/definitions/FeatureServerComplexDataType\",\"type\":\"string\"}\"\xe8\x01\n\x11GetFeaturesResult\x12\x32\n\x08\x66\x65\x61tures\x18\x05 \x03(\x0b\x32\x16.google.protobuf.ValueR\x08\x66\x65\x61tures\x12\x33\n\tjoin_keys\x18\x06 \x03(\x0b\x32\x16.google.protobuf.ValueR\x08joinKeys:R\x92\x41O\n\x13*\x11GetFeaturesResult:8{\"result\":{\"features\":[\"object\"],\"joinKeys\":[\"object\"]}}J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\"\xb6\x05\n\x1c\x46\x65\x61tureServerComplexDataType\x12K\n\x04type\x18\x01 \x01(\x0e\x32\x37.tecton_proto.api.feature_service.FeatureServerDataTypeR\x04type\x12\x61\n\x0c\x65lement_type\x18\x02 \x01(\x0b\x32>.tecton_proto.api.feature_service.FeatureServerComplexDataTypeR\x0b\x65lementType\x12R\n\x06\x66ields\x18\x03 \x03(\x0b\x32:.tecton_proto.api.feature_service.FeatureServerStructFieldR\x06\x66ields:\x91\x03\x92\x41\x8d\x03\n\x1e*\x1c\x46\x65\x61tureServerComplexDataType:\xea\x02{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]}\"\xb8\x04\n\x18\x46\x65\x61tureServerStructField\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12[\n\tdata_type\x18\x02 \x01(\x0b\x32>.tecton_proto.api.feature_service.FeatureServerComplexDataTypeR\x08\x64\x61taType:\xaa\x03\x92\x41\xa6\x03\n\x1a*\x18\x46\x65\x61tureServerStructField:\x87\x03{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]}}\"\xf9\x05\n\x07SloInfo\x12!\n\x0cslo_eligible\x18\x01 \x01(\x08R\x0bsloEligible\x12\x35\n\x17slo_server_time_seconds\x18\x05 \x01(\x01R\x14sloServerTimeSeconds\x12t\n\x19slo_ineligibility_reasons\x18\x02 \x03(\x0e\x32\x38.tecton_proto.api.feature_service.SloIneligibilityReasonR\x17sloIneligibilityReasons\x12?\n\x1c\x64ynamodb_response_size_bytes\x18\x03 \x01(\x05R\x19\x64ynamodbResponseSizeBytes\x12.\n\x13server_time_seconds\x18\x04 \x01(\x01R\x11serverTimeSeconds\x12,\n\x12store_time_seconds\x18\x06 \x01(\x01R\x10storeTimeSeconds\x12*\n\x11store_max_latency\x18\x07 \x01(\x01R\x0fstoreMaxLatency\x12\x39\n\x19store_response_size_bytes\x18\x08 \x01(\x05R\x16storeResponseSizeBytes:\x97\x02\x92\x41\x93\x02\n\t*\x07SloInfo:\x85\x02{\"sloEligible\":\"boolean\",\"sloServerTimeSeconds\":\"number(double)\",\"sloIneligibilityReasons\":[\"string\"],\"dynamodbResponseSizeBytes\":\"integer(int32)\",\"serverTimeSeconds\":\"number(double)\",\"storeMaxLatency\":\"number(double)\",\"storeResponseSizeBytes\":\"integer(int32)\"}\"\xd6\x12\n\x08Metadata\x12K\n\x08\x66\x65\x61tures\x18\x01 \x03(\x0b\x32/.tecton_proto.api.feature_service.Metadata.ItemR\x08\x66\x65\x61tures\x12L\n\tjoin_keys\x18\x02 \x03(\x0b\x32/.tecton_proto.api.feature_service.Metadata.ItemR\x08joinKeys\x12\x44\n\x08slo_info\x18\x03 \x01(\x0b\x32).tecton_proto.api.feature_service.SloInfoR\x07sloInfo\x12\'\n\x0fpartial_results\x18\x04 \x01(\x08R\x0epartialResults\x1a\xba\x06\n\x04Item\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x41\n\x0e\x65\x66\x66\x65\x63tive_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\reffectiveTime\x12O\n\x04type\x18\x03 \x01(\x0e\x32\x37.tecton_proto.api.feature_service.FeatureServerDataTypeB\x02\x18\x01R\x04type\x12[\n\tdata_type\x18\x04 \x01(\x0b\x32>.tecton_proto.api.feature_service.FeatureServerComplexDataTypeR\x08\x64\x61taType\x12@\n\x06status\x18\x06 \x01(\x0e\x32(.tecton_proto.api.feature_service.StatusR\x06status:\xe4\x03\x92\x41\xe0\x03\n\x0e*\x0cMetadataItem:\xcd\x03{\"name\":\"string\",\"effectiveTime\":\"string(date-time)\",\"type\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]},\"status\":\"string\"}J\x04\x08\x05\x10\x06:\x82\n\x92\x41\xfe\t\n\n*\x08Metadata:\xef\t{\"metadata\":{\"features\":[{\"name\":\"string\",\"effectiveTime\":\"string(date-time)\",\"type\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]},\"status\":\"string\"}],\"joinKeys\":[{\"name\":\"string\",\"effectiveTime\":\"string(date-time)\",\"type\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]},\"status\":\"string\"}],\"sloInfo\":{\"sloEligible\":\"boolean\",\"sloServerTimeSeconds\":\"number(double)\",\"sloIneligibilityReasons\":[\"string\"],\"dynamodbResponseSizeBytes\":\"integer(int32)\",\"serverTimeSeconds\":\"number(double)\",\"storeMaxLatency\":\"number(double)\",\"storeResponseSizeBytes\":\"integer(int32)\"},\"partialResults\":\"boolean\"}}\"\xaa\x01\n\x13GetFeaturesResponse\x12K\n\x06result\x18\x02 \x01(\x0b\x32\x33.tecton_proto.api.feature_service.GetFeaturesResultR\x06result\x12\x46\n\x08metadata\x18\x03 \x01(\x0b\x32*.tecton_proto.api.feature_service.MetadataR\x08metadata\"\xba\x01\n\x18GetFeaturesBatchResponse\x12K\n\x06result\x18\x02 \x03(\x0b\x32\x33.tecton_proto.api.feature_service.GetFeaturesResultR\x06result\x12K\n\x08metadata\x18\x04 \x01(\x0b\x32/.tecton_proto.api.feature_service.BatchMetadataR\x08metadataJ\x04\x08\x03\x10\x04\"\xba\x02\n\x0c\x42\x61tchSloInfo\x12!\n\x0cslo_eligible\x18\x01 \x01(\x08R\x0bsloEligible\x12\x35\n\x17slo_server_time_seconds\x18\x02 \x01(\x01R\x14sloServerTimeSeconds\x12t\n\x19slo_ineligibility_reasons\x18\x03 \x03(\x0e\x32\x38.tecton_proto.api.feature_service.SloIneligibilityReasonR\x17sloIneligibilityReasons\x12.\n\x13server_time_seconds\x18\x04 \x01(\x01R\x11serverTimeSeconds\x12*\n\x11store_max_latency\x18\x05 \x01(\x01R\x0fstoreMaxLatency\"\xd5\x04\n\rBatchMetadata\x12P\n\x08\x66\x65\x61tures\x18\x01 \x03(\x0b\x32\x34.tecton_proto.api.feature_service.BatchMetadata.ItemR\x08\x66\x65\x61tures\x12Q\n\tjoin_keys\x18\x02 \x03(\x0b\x32\x34.tecton_proto.api.feature_service.BatchMetadata.ItemR\x08joinKeys\x12\x44\n\x08slo_info\x18\x03 \x03(\x0b\x32).tecton_proto.api.feature_service.SloInfoR\x07sloInfo\x12T\n\x0e\x62\x61tch_slo_info\x18\x04 \x01(\x0b\x32..tecton_proto.api.feature_service.BatchSloInfoR\x0c\x62\x61tchSloInfo\x1a\x82\x02\n\x04Item\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x41\n\x0e\x65\x66\x66\x65\x63tive_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\reffectiveTime\x12[\n\tdata_type\x18\x03 \x01(\x0b\x32>.tecton_proto.api.feature_service.FeatureServerComplexDataTypeR\x08\x64\x61taType\x12@\n\x06status\x18\x05 \x03(\x0e\x32(.tecton_proto.api.feature_service.StatusR\x06statusJ\x04\x08\x04\x10\x05\"i\n\x16ServiceMetadataRequest\x12O\n\x06params\x18\x01 \x01(\x0b\x32\x37.tecton_proto.api.feature_service.FeatureServiceLocatorR\x06params\"\xfa\x05\n\x17ServiceMetadataResponse\x12\x66\n\x14\x66\x65\x61ture_service_type\x18\x01 \x01(\x0e\x32\x34.tecton_proto.api.feature_service.FeatureServiceTypeR\x12\x66\x65\x61tureServiceType\x12U\n\x0finput_join_keys\x18\x02 \x03(\x0b\x32-.tecton_proto.api.feature_service.NameAndTypeR\rinputJoinKeys\x12j\n\x1ainput_request_context_keys\x18\x03 \x03(\x0b\x32-.tecton_proto.api.feature_service.NameAndTypeR\x17inputRequestContextKeys\x12W\n\x10output_join_keys\x18\x04 \x03(\x0b\x32-.tecton_proto.api.feature_service.NameAndTypeR\x0eoutputJoinKeys\x12T\n\x0e\x66\x65\x61ture_values\x18\x05 \x03(\x0b\x32-.tecton_proto.api.feature_service.NameAndTypeR\rfeatureValues:\x84\x02\x92\x41\x80\x02\n\x19*\x17ServiceMetadataResponse:\xe2\x01{\"featureServiceType\":\"string\",\"inputJoinKeys\":[\"#/definitions/NameAndType\"],\"inputRequestContextKeys\":[\"#/definitions/NameAndType\"],\"outputJoinKeys\":[\"#/definitions/NameAndType\"],\"featureValues\":[\"#/definitions/NameAndType\"]}\"g\n\x14QueryFeaturesRequest\x12O\n\x06params\x18\x01 \x01(\x0b\x32\x37.tecton_proto.api.feature_service.GetFeaturesParametersR\x06params\"\xae\x01\n\x15QueryFeaturesResponse\x12M\n\x07results\x18\x01 \x03(\x0b\x32\x33.tecton_proto.api.feature_service.GetFeaturesResultR\x07results\x12\x46\n\x08metadata\x18\x02 \x01(\x0b\x32*.tecton_proto.api.feature_service.MetadataR\x08metadata\"\xb7\x03\n\x15\x46\x65\x61tureServiceLocator\x12.\n\x12\x66\x65\x61ture_service_id\x18\x01 \x01(\tH\x00R\x10\x66\x65\x61tureServiceId\x12\x32\n\x14\x66\x65\x61ture_service_name\x18\x02 \x01(\tH\x00R\x12\x66\x65\x61tureServiceName\x12.\n\x12\x66\x65\x61ture_package_id\x18\x04 \x01(\tH\x00R\x10\x66\x65\x61turePackageId\x12\x32\n\x14\x66\x65\x61ture_package_name\x18\x05 \x01(\tH\x00R\x12\x66\x65\x61turePackageName\x12(\n\x0f\x66\x65\x61ture_view_id\x18\x06 \x01(\tH\x00R\rfeatureViewId\x12,\n\x11\x66\x65\x61ture_view_name\x18\x07 \x01(\tH\x00R\x0f\x66\x65\x61tureViewName\x12%\n\x0eworkspace_name\x18\x03 \x01(\tR\rworkspaceName:L\x92\x41I:G{\"featureServiceName\": \"ctrPredictionService\", \"workspaceName\": \"prod\"}B\t\n\x07locator\"\x90\x01\n\x1dGetFeatureServiceStateRequest\x12o\n\x17\x66\x65\x61ture_service_locator\x18\x01 \x01(\x0b\x32\x37.tecton_proto.api.feature_service.FeatureServiceLocatorR\x15\x66\x65\x61tureServiceLocator\"&\n\x1eGetFeatureServiceStateResponseJ\x04\x08\x01\x10\x02*/\n\x12\x46\x65\x61tureServiceType\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08WILDCARD\x10\x01*\x90\x01\n\x15\x46\x65\x61tureServerDataType\x12\x10\n\x0cmissing_type\x10\x00\x12\x0b\n\x07\x62oolean\x10\x01\x12\x0b\n\x07\x66loat64\x10\x02\x12\t\n\x05int64\x10\x03\x12\n\n\x06string\x10\x04\x12\x10\n\x0cstring_array\x10\x05\x12\t\n\x05\x61rray\x10\x06\x12\x0b\n\x07\x66loat32\x10\x07\x12\n\n\x06struct\x10\x08*;\n\x06Status\x12\x0b\n\x07PRESENT\x10\x00\x12\x10\n\x0cMISSING_DATA\x10\x01\x12\x12\n\x0eUNKNOWN_STATUS\x10\x02*\x9a\x01\n\x16SloIneligibilityReason\x12\x0b\n\x07UNKNOWN\x10\x00\x12)\n%DYNAMODB_RESPONSE_SIZE_LIMIT_EXCEEDED\x10\x01\x12&\n\"REDIS_RESPONSE_SIZE_LIMIT_EXCEEDED\x10\x02\x12 \n\x1cREDIS_LATENCY_LIMIT_EXCEEDED\x10\x03\x32\xf1-\n\x0e\x46\x65\x61tureService\x12\x84\x12\n\x0bGetFeatures\x12\x34.tecton_proto.api.feature_service.GetFeaturesRequest\x1a\x35.tecton_proto.api.feature_service.GetFeaturesResponse\"\x87\x11\x82\xd3\xe4\x93\x02%\" /v1/feature-service/get-features:\x01*\x92\x41\xd8\x10\n\x0bGetFeatures\x1a\x46Get Features API to retrieve feature values from Tecton\'s online storeJ?\n\x03\x32\x30\x30\x12\x38\n\x02OK\"2\n\x10\x61pplication/json\x12\x1e{\"result\": {\"features\": [15]}}J\x97\x03\n\x03\x34\x30\x30\x12\x8f\x03\n8Bad Request : Invalid argument (invalid request payload)\"\xd2\x02\n\x10\x61pplication/json\x12\xbd\x02{\"join key error\": \"Unknown join key: content_id_withTypo, expected one of: [content_id]\", \"missing key error\": \"Unknown join key: Expected key not found: join_key\", \"incorrect type error\": \"Unable to parse \'type\' as an type for GetFeatures.\", \"dynamo db error\": \"sequential DynamoDB query limit exceeded\", \"code\": 3}J\x8a\x03\n\x03\x34\x30\x31\x12\x82\x03\nTNot Authenticated. Newly created credentials may take up to 60 seconds to be usable.\"\xa9\x02\n\x10\x61pplication/json\x12\x94\x02{\"error\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"message\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"code\": 16}J\xcb\x01\n\x03\x34\x30\x33\x12\xc3\x01\nhThe caller is not authorized for the request. Access control changes may take up to 60 seconds to apply.\"W\n\x10\x61pplication/json\x12\x43{\"error\": \"Not Authorized\", \"message\": \"Not Authorized\", \"code\": 7}J\xd6\x03\n\x03\x34\x30\x34\x12\xce\x03\n\tNot Found\"\xc0\x03\n\x10\x61pplication/json\x12\xab\x03{\"feature service id error\": \"Unknown feature_service_id: id\", \"feature service workspace error\": \"Unable to query FeatureService `fs` for workspace `ws`. Newly created feature services may take up to 60 seconds to query. Also, ensure that the workspace is a live workspace.\", \"feature package id error\": \"Unknown feature_package_id: id\", \"feature view name error\": \"Unknown feature_view_name: fv for workspace: ws\", \"code\": 5}J\xe5\x01\n\x03\x34\x32\x39\x12\xdd\x01\n\x12Resource Exhausted\"\xc6\x01\n\x10\x61pplication/json\x12\xb1\x01{\"error\": \"GetFeatures exceeded the concurrent request limit, please retry later\", \"message\": \"GetFeatures exceeded the concurrent request limit, please retry later\", \"code\": 8}J\x9f\x01\n\x03\x35\x30\x33\x12\x97\x01\n\x1fService Temporarily Unavailable\"t\n\x10\x61pplication/json\x12`{\"error\": \"individual request 5xx error\", \"message\": \"individual request 5xx error\", \"code\": 14}Jh\n\x03\x35\x30\x34\x12\x61\n\x11Gateway Timed Out\"L\n\x10\x61pplication/json\x12\x38{\"error\": \"Timedout\", \"message\": \"Timed out\", \"code\": 4}\x12\xd3\t\n\x10GetFeaturesBatch\x12\x39.tecton_proto.api.feature_service.GetFeaturesBatchRequest\x1a:.tecton_proto.api.feature_service.GetFeaturesBatchResponse\"\xc7\x08\x82\xd3\xe4\x93\x02+\"&/v1/feature-service/get-features-batch:\x01*\x92\x41\x92\x08\n\x10GetFeaturesBatch\x1aUBatch get Features API to retrieve feature values in batch from Tecton\'s online storeJ^\n\x03\x32\x30\x30\x12W\n\x02OK\"Q\n\x10\x61pplication/json\x12={\"result\": {\"features\": [[15, 10, 5, 100],[10, 20, 1, 200]]}}J\xae\x01\n\x03\x34\x30\x34\x12\xa6\x01\n\tNot Found\"\x98\x01\n\x10\x61pplication/json\x12\x83\x01{\"error\": \"Unknown feature_service_id: my_feature_service\", \"message\": \"Unknown feature_service_id: my_feature_service\", \"code\": 5}J\x9b\x01\n\x03\x34\x30\x30\x12\x93\x01\n\x0b\x42\x61\x64 Request\"\x83\x01\n\x10\x61pplication/json\x12o{\"error\": \"Batch size 27 exceeds maximum of 25.\", \"message\": \"Batch size 27 exceeds maximum of 25.\", \"code\": 3}J\xea\x01\n\x03\x34\x32\x39\x12\xe2\x01\n\x12Resource Exhausted\"\xcb\x01\n\x10\x61pplication/json\x12\xb6\x01{\"error\": \"GetFeaturesBatch exceeded the concurrent request limit, please retry later\", \"message\": \"GetFeatures exceeded the concurrent request limit, please retry later\", \"code\": 8}J\x9f\x01\n\x03\x35\x30\x33\x12\x97\x01\n\x1fService Temporarily Unavailable\"t\n\x10\x61pplication/json\x12`{\"error\": \"individual request 5xx error\", \"message\": \"individual request 5xx error\", \"code\": 14}Ji\n\x03\x35\x30\x34\x12\x62\n\x11Gateway Timed Out\"M\n\x10\x61pplication/json\x12\x39{\"error\": \"Timed out\", \"message\": \"Timed out\", \"code\": 4}\x12\xaf\x01\n\rQueryFeatures\x12\x36.tecton_proto.api.feature_service.QueryFeaturesRequest\x1a\x37.tecton_proto.api.feature_service.QueryFeaturesResponse\"-\x82\xd3\xe4\x93\x02\'\"\"/v1/feature-service/query-features:\x01*\x12\xd5\x01\n\x16GetFeatureServiceState\x12?.tecton_proto.api.feature_service.GetFeatureServiceStateRequest\x1a@.tecton_proto.api.feature_service.GetFeatureServiceStateResponse\"8\x82\xd3\xe4\x93\x02\x32\"-/v1/feature-service/get-feature-service-state:\x01*\x12\xf7\x0e\n\x0fServiceMetadata\x12\x38.tecton_proto.api.feature_service.ServiceMetadataRequest\x1a\x39.tecton_proto.api.feature_service.ServiceMetadataResponse\"\xee\r\x82\xd3\xe4\x93\x02!\"\x1c/v1/feature-service/metadata:\x01*\x92\x41\xc3\r\n\x08Metadata\x1a\x32Get Metadata about the feature service from TectonJ\xd8\x02\n\x03\x32\x30\x30\x12\xd0\x02\n\x02OK\"\xc9\x02\n\x10\x61pplication/json\x12\xb4\x02{\"featureServiceType\": \"DEFAULT\", \"inputJoinKeys\": [{\"name\": \"adId\", \"type\": \"string\"}],\"featureValues\":[{\"name\": \"ad_ground_truth_ctr_performance_7_days\", \"type\": \"float64\"}, {\"name\": \"user_partner_impression_count_7_days\", \"type\": \"float64\"}, {\"name\": \"user_total_ad_frequency_counts\", \"type\": \"int64\"} ] }J\x8a\x03\n\x03\x34\x30\x31\x12\x82\x03\nTNot Authenticated. Newly created credentials may take up to 60 seconds to be usable.\"\xa9\x02\n\x10\x61pplication/json\x12\x94\x02{\"error\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"message\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"code\": 16}J\xcb\x01\n\x03\x34\x30\x33\x12\xc3\x01\nhThe caller is not authorized for the request. Access control changes may take up to 60 seconds to apply.\"W\n\x10\x61pplication/json\x12\x43{\"error\": \"Not Authorized\", \"message\": \"Not Authorized\", \"code\": 7}J\xda\x01\n\x03\x34\x30\x34\x12\xd2\x01\n\tNot Found\"\xc4\x01\n\x10\x61pplication/json\x12\xaf\x01{\"error\": \"Unknown feature_service_name: my_feature_service for workspace: prod\", \"message\": \"Unknown feature_service_name: my_feature_service for workspace: prod\", \"code\": 5}J\xe2\x01\n\x03\x34\x32\x39\x12\xda\x01\n\x12Resource Exhausted\"\xc3\x01\n\x10\x61pplication/json\x12\xae\x01{\"error\": \"Metadata exceeded the concurrent request limit, please retry later\", \"message\": \"GetFeatures exceeded the concurrent request limit, please retry later\", \"code\": 8}J\x9f\x01\n\x03\x35\x30\x33\x12\x97\x01\n\x1fService Temporarily Unavailable\"t\n\x10\x61pplication/json\x12`{\"error\": \"individual request 5xx error\", \"message\": \"individual request 5xx error\", \"code\": 14}Ji\n\x03\x35\x30\x34\x12\x62\n\x11Gateway Timed Out\"M\n\x10\x61pplication/json\x12\x39{\"error\": \"Timed out\", \"message\": \"Timed out\", \"code\": 4}B\xd6\nZ4github.com/tecton-ai/tecton_proto/api/featureservice\x92\x41\x9c\n\x12\xf9\x02\n\x13\x46\x65\x61ture Service API\x12\xc0\x02Tecton provides a low-latency feature server that exposes HTTP endpoints to retrieve feature values and metadata from the online store. These endpoints are typically used during model predictions. The feature servers retrieve data from the online store and perform any additional aggregations and filtering as necessary.\"\x0b\n\tTecton AI*\r\n\x0bProprietary2\x03\x31.0*\x01\x02\x32\x10\x61pplication/json:\x10\x61pplication/jsonR\x8a\x03\n\x03\x34\x30\x31\x12\x82\x03\nTNot Authenticated. Newly created credentials may take up to 60 seconds to be usable.\"\xa9\x02\n\x10\x61pplication/json\x12\x94\x02{\"error\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"code\": 16, \"message\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\"}R\xd6\x01\n\x03\x34\x30\x33\x12\xce\x01\nsForbidden. The caller is not authorized for the request. Access control changes may take up to 60 seconds to apply.\"W\n\x10\x61pplication/json\x12\x43{\"error\": \"Not Authorized\", \"code\": 7, \"message\": \"Not Authorized\"}Z\xfa\x01\n\xf7\x01\n\x0eTecton API Key\x12\xe4\x01\x08\x02\x12\xce\x01Use your Tecton API Key (prefixed by `Tecton-key`) as the `Authorization` request header field. For example, for the API Key `secretapikey123`, use `Tecton-key secretapikey123` as your authorization header.\x1a\rAuthorization \x02\x62\x14\n\x12\n\x0eTecton API Key\x12\x00')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tecton_proto.api.featureservice.feature_service_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'Z4github.com/tecton-ai/tecton_proto/api/featureservice\222A\234\n\022\371\002\n\023Feature Service API\022\300\002Tecton provides a low-latency feature server that exposes HTTP endpoints to retrieve feature values and metadata from the online store. These endpoints are typically used during model predictions. The feature servers retrieve data from the online store and perform any additional aggregations and filtering as necessary.\"\013\n\tTecton AI*\r\n\013Proprietary2\0031.0*\001\0022\020application/json:\020application/jsonR\212\003\n\003401\022\202\003\nTNot Authenticated. Newly created credentials may take up to 60 seconds to be usable.\"\251\002\n\020application/json\022\224\002{\"error\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"code\": 16, \"message\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\"}R\326\001\n\003403\022\316\001\nsForbidden. The caller is not authorized for the request. Access control changes may take up to 60 seconds to apply.\"W\n\020application/json\022C{\"error\": \"Not Authorized\", \"code\": 7, \"message\": \"Not Authorized\"}Z\372\001\n\367\001\n\016Tecton API Key\022\344\001\010\002\022\316\001Use your Tecton API Key (prefixed by `Tecton-key`) as the `Authorization` request header field. For example, for the API Key `secretapikey123`, use `Tecton-key secretapikey123` as your authorization header.\032\rAuthorization \002b\024\n\022\n\016Tecton API Key\022\000'
  _NAMEANDTYPE.fields_by_name['type']._options = None
  _NAMEANDTYPE.fields_by_name['type']._serialized_options = b'\030\001'
  _NAMEANDTYPE._options = None
  _NAMEANDTYPE._serialized_options = b'\222Ak\n\r*\013NameAndType:Z{\"name\":\"string\",\"dataType\": \"#/definitions/FeatureServerComplexDataType\",\"type\":\"string\"}'
  _GETFEATURESRESULT._options = None
  _GETFEATURESRESULT._serialized_options = b'\222AO\n\023*\021GetFeaturesResult:8{\"result\":{\"features\":[\"object\"],\"joinKeys\":[\"object\"]}}'
  _FEATURESERVERCOMPLEXDATATYPE._options = None
  _FEATURESERVERCOMPLEXDATATYPE._serialized_options = b'\222A\215\003\n\036*\034FeatureServerComplexDataType:\352\002{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]}'
  _FEATURESERVERSTRUCTFIELD._options = None
  _FEATURESERVERSTRUCTFIELD._serialized_options = b'\222A\246\003\n\032*\030FeatureServerStructField:\207\003{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]}}'
  _SLOINFO._options = None
  _SLOINFO._serialized_options = b'\222A\223\002\n\t*\007SloInfo:\205\002{\"sloEligible\":\"boolean\",\"sloServerTimeSeconds\":\"number(double)\",\"sloIneligibilityReasons\":[\"string\"],\"dynamodbResponseSizeBytes\":\"integer(int32)\",\"serverTimeSeconds\":\"number(double)\",\"storeMaxLatency\":\"number(double)\",\"storeResponseSizeBytes\":\"integer(int32)\"}'
  _METADATA_ITEM.fields_by_name['type']._options = None
  _METADATA_ITEM.fields_by_name['type']._serialized_options = b'\030\001'
  _METADATA_ITEM._options = None
  _METADATA_ITEM._serialized_options = b'\222A\340\003\n\016*\014MetadataItem:\315\003{\"name\":\"string\",\"effectiveTime\":\"string(date-time)\",\"type\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]},\"status\":\"string\"}'
  _METADATA._options = None
  _METADATA._serialized_options = b'\222A\376\t\n\n*\010Metadata:\357\t{\"metadata\":{\"features\":[{\"name\":\"string\",\"effectiveTime\":\"string(date-time)\",\"type\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]},\"status\":\"string\"}],\"joinKeys\":[{\"name\":\"string\",\"effectiveTime\":\"string(date-time)\",\"type\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[{\"name\":\"string\",\"dataType\":\"#/definitions/FeatureServerComplexDataType\"}]},\"fields\":[{\"name\":\"string\",\"dataType\":{\"type\":\"string\",\"elementType\":\"#/definitions/FeatureServerComplexDataType\",\"fields\":[\"#/definitions/FeatureServerStructField\"]}}]},\"status\":\"string\"}],\"sloInfo\":{\"sloEligible\":\"boolean\",\"sloServerTimeSeconds\":\"number(double)\",\"sloIneligibilityReasons\":[\"string\"],\"dynamodbResponseSizeBytes\":\"integer(int32)\",\"serverTimeSeconds\":\"number(double)\",\"storeMaxLatency\":\"number(double)\",\"storeResponseSizeBytes\":\"integer(int32)\"},\"partialResults\":\"boolean\"}}'
  _SERVICEMETADATARESPONSE._options = None
  _SERVICEMETADATARESPONSE._serialized_options = b'\222A\200\002\n\031*\027ServiceMetadataResponse:\342\001{\"featureServiceType\":\"string\",\"inputJoinKeys\":[\"#/definitions/NameAndType\"],\"inputRequestContextKeys\":[\"#/definitions/NameAndType\"],\"outputJoinKeys\":[\"#/definitions/NameAndType\"],\"featureValues\":[\"#/definitions/NameAndType\"]}'
  _FEATURESERVICELOCATOR._options = None
  _FEATURESERVICELOCATOR._serialized_options = b'\222AI:G{\"featureServiceName\": \"ctrPredictionService\", \"workspaceName\": \"prod\"}'
  _FEATURESERVICE.methods_by_name['GetFeatures']._options = None
  _FEATURESERVICE.methods_by_name['GetFeatures']._serialized_options = b'\202\323\344\223\002%\" /v1/feature-service/get-features:\001*\222A\330\020\n\013GetFeatures\032FGet Features API to retrieve feature values from Tecton\'s online storeJ?\n\003200\0228\n\002OK\"2\n\020application/json\022\036{\"result\": {\"features\": [15]}}J\227\003\n\003400\022\217\003\n8Bad Request : Invalid argument (invalid request payload)\"\322\002\n\020application/json\022\275\002{\"join key error\": \"Unknown join key: content_id_withTypo, expected one of: [content_id]\", \"missing key error\": \"Unknown join key: Expected key not found: join_key\", \"incorrect type error\": \"Unable to parse \'type\' as an type for GetFeatures.\", \"dynamo db error\": \"sequential DynamoDB query limit exceeded\", \"code\": 3}J\212\003\n\003401\022\202\003\nTNot Authenticated. Newly created credentials may take up to 60 seconds to be usable.\"\251\002\n\020application/json\022\224\002{\"error\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"message\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"code\": 16}J\313\001\n\003403\022\303\001\nhThe caller is not authorized for the request. Access control changes may take up to 60 seconds to apply.\"W\n\020application/json\022C{\"error\": \"Not Authorized\", \"message\": \"Not Authorized\", \"code\": 7}J\326\003\n\003404\022\316\003\n\tNot Found\"\300\003\n\020application/json\022\253\003{\"feature service id error\": \"Unknown feature_service_id: id\", \"feature service workspace error\": \"Unable to query FeatureService `fs` for workspace `ws`. Newly created feature services may take up to 60 seconds to query. Also, ensure that the workspace is a live workspace.\", \"feature package id error\": \"Unknown feature_package_id: id\", \"feature view name error\": \"Unknown feature_view_name: fv for workspace: ws\", \"code\": 5}J\345\001\n\003429\022\335\001\n\022Resource Exhausted\"\306\001\n\020application/json\022\261\001{\"error\": \"GetFeatures exceeded the concurrent request limit, please retry later\", \"message\": \"GetFeatures exceeded the concurrent request limit, please retry later\", \"code\": 8}J\237\001\n\003503\022\227\001\n\037Service Temporarily Unavailable\"t\n\020application/json\022`{\"error\": \"individual request 5xx error\", \"message\": \"individual request 5xx error\", \"code\": 14}Jh\n\003504\022a\n\021Gateway Timed Out\"L\n\020application/json\0228{\"error\": \"Timedout\", \"message\": \"Timed out\", \"code\": 4}'
  _FEATURESERVICE.methods_by_name['GetFeaturesBatch']._options = None
  _FEATURESERVICE.methods_by_name['GetFeaturesBatch']._serialized_options = b'\202\323\344\223\002+\"&/v1/feature-service/get-features-batch:\001*\222A\222\010\n\020GetFeaturesBatch\032UBatch get Features API to retrieve feature values in batch from Tecton\'s online storeJ^\n\003200\022W\n\002OK\"Q\n\020application/json\022={\"result\": {\"features\": [[15, 10, 5, 100],[10, 20, 1, 200]]}}J\256\001\n\003404\022\246\001\n\tNot Found\"\230\001\n\020application/json\022\203\001{\"error\": \"Unknown feature_service_id: my_feature_service\", \"message\": \"Unknown feature_service_id: my_feature_service\", \"code\": 5}J\233\001\n\003400\022\223\001\n\013Bad Request\"\203\001\n\020application/json\022o{\"error\": \"Batch size 27 exceeds maximum of 25.\", \"message\": \"Batch size 27 exceeds maximum of 25.\", \"code\": 3}J\352\001\n\003429\022\342\001\n\022Resource Exhausted\"\313\001\n\020application/json\022\266\001{\"error\": \"GetFeaturesBatch exceeded the concurrent request limit, please retry later\", \"message\": \"GetFeatures exceeded the concurrent request limit, please retry later\", \"code\": 8}J\237\001\n\003503\022\227\001\n\037Service Temporarily Unavailable\"t\n\020application/json\022`{\"error\": \"individual request 5xx error\", \"message\": \"individual request 5xx error\", \"code\": 14}Ji\n\003504\022b\n\021Gateway Timed Out\"M\n\020application/json\0229{\"error\": \"Timed out\", \"message\": \"Timed out\", \"code\": 4}'
  _FEATURESERVICE.methods_by_name['QueryFeatures']._options = None
  _FEATURESERVICE.methods_by_name['QueryFeatures']._serialized_options = b'\202\323\344\223\002\'\"\"/v1/feature-service/query-features:\001*'
  _FEATURESERVICE.methods_by_name['GetFeatureServiceState']._options = None
  _FEATURESERVICE.methods_by_name['GetFeatureServiceState']._serialized_options = b'\202\323\344\223\0022\"-/v1/feature-service/get-feature-service-state:\001*'
  _FEATURESERVICE.methods_by_name['ServiceMetadata']._options = None
  _FEATURESERVICE.methods_by_name['ServiceMetadata']._serialized_options = b'\202\323\344\223\002!\"\034/v1/feature-service/metadata:\001*\222A\303\r\n\010Metadata\0322Get Metadata about the feature service from TectonJ\330\002\n\003200\022\320\002\n\002OK\"\311\002\n\020application/json\022\264\002{\"featureServiceType\": \"DEFAULT\", \"inputJoinKeys\": [{\"name\": \"adId\", \"type\": \"string\"}],\"featureValues\":[{\"name\": \"ad_ground_truth_ctr_performance_7_days\", \"type\": \"float64\"}, {\"name\": \"user_partner_impression_count_7_days\", \"type\": \"float64\"}, {\"name\": \"user_total_ad_frequency_counts\", \"type\": \"int64\"} ] }J\212\003\n\003401\022\202\003\nTNot Authenticated. Newly created credentials may take up to 60 seconds to be usable.\"\251\002\n\020application/json\022\224\002{\"error\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"message\": \"invalid \'Tecton-key\' authorization header. Note that newly created credentials may take up to 60 seconds to be usable.\", \"code\": 16}J\313\001\n\003403\022\303\001\nhThe caller is not authorized for the request. Access control changes may take up to 60 seconds to apply.\"W\n\020application/json\022C{\"error\": \"Not Authorized\", \"message\": \"Not Authorized\", \"code\": 7}J\332\001\n\003404\022\322\001\n\tNot Found\"\304\001\n\020application/json\022\257\001{\"error\": \"Unknown feature_service_name: my_feature_service for workspace: prod\", \"message\": \"Unknown feature_service_name: my_feature_service for workspace: prod\", \"code\": 5}J\342\001\n\003429\022\332\001\n\022Resource Exhausted\"\303\001\n\020application/json\022\256\001{\"error\": \"Metadata exceeded the concurrent request limit, please retry later\", \"message\": \"GetFeatures exceeded the concurrent request limit, please retry later\", \"code\": 8}J\237\001\n\003503\022\227\001\n\037Service Temporarily Unavailable\"t\n\020application/json\022`{\"error\": \"individual request 5xx error\", \"message\": \"individual request 5xx error\", \"code\": 14}Ji\n\003504\022b\n\021Gateway Timed Out\"M\n\020application/json\0229{\"error\": \"Timed out\", \"message\": \"Timed out\", \"code\": 4}'
  _FEATURESERVICETYPE._serialized_start=8337
  _FEATURESERVICETYPE._serialized_end=8384
  _FEATURESERVERDATATYPE._serialized_start=8387
  _FEATURESERVERDATATYPE._serialized_end=8531
  _STATUS._serialized_start=8533
  _STATUS._serialized_end=8592
  _SLOINELIGIBILITYREASON._serialized_start=8595
  _SLOINELIGIBILITYREASON._serialized_end=8749
  _NAMEANDTYPE._serialized_start=294
  _NAMEANDTYPE._serialized_end=613
  _GETFEATURESRESULT._serialized_start=616
  _GETFEATURESRESULT._serialized_end=848
  _FEATURESERVERCOMPLEXDATATYPE._serialized_start=851
  _FEATURESERVERCOMPLEXDATATYPE._serialized_end=1545
  _FEATURESERVERSTRUCTFIELD._serialized_start=1548
  _FEATURESERVERSTRUCTFIELD._serialized_end=2116
  _SLOINFO._serialized_start=2119
  _SLOINFO._serialized_end=2880
  _METADATA._serialized_start=2883
  _METADATA._serialized_end=5273
  _METADATA_ITEM._serialized_start=3162
  _METADATA_ITEM._serialized_end=3988
  _GETFEATURESRESPONSE._serialized_start=5276
  _GETFEATURESRESPONSE._serialized_end=5446
  _GETFEATURESBATCHRESPONSE._serialized_start=5449
  _GETFEATURESBATCHRESPONSE._serialized_end=5635
  _BATCHSLOINFO._serialized_start=5638
  _BATCHSLOINFO._serialized_end=5952
  _BATCHMETADATA._serialized_start=5955
  _BATCHMETADATA._serialized_end=6552
  _BATCHMETADATA_ITEM._serialized_start=6294
  _BATCHMETADATA_ITEM._serialized_end=6552
  _SERVICEMETADATAREQUEST._serialized_start=6554
  _SERVICEMETADATAREQUEST._serialized_end=6659
  _SERVICEMETADATARESPONSE._serialized_start=6662
  _SERVICEMETADATARESPONSE._serialized_end=7424
  _QUERYFEATURESREQUEST._serialized_start=7426
  _QUERYFEATURESREQUEST._serialized_end=7529
  _QUERYFEATURESRESPONSE._serialized_start=7532
  _QUERYFEATURESRESPONSE._serialized_end=7706
  _FEATURESERVICELOCATOR._serialized_start=7709
  _FEATURESERVICELOCATOR._serialized_end=8148
  _GETFEATURESERVICESTATEREQUEST._serialized_start=8151
  _GETFEATURESERVICESTATEREQUEST._serialized_end=8295
  _GETFEATURESERVICESTATERESPONSE._serialized_start=8297
  _GETFEATURESERVICESTATERESPONSE._serialized_end=8335
  _FEATURESERVICE._serialized_start=8752
  _FEATURESERVICE._serialized_end=14625
# @@protoc_insertion_point(module_scope)
