# -*- 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\"\xcf\x01\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\"\x94\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\x08joinKeysJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\"\xa2\x02\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\"\x8b\x01\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\"\xdf\x03\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\"\xea\x04\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\xd3\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\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\x06statusJ\x04\x08\x05\x10\x06\"\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\"\xf3\x03\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\"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\"\xa2\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:7\x92\x41\x34:2{\"feature_service_name\": \"ctr_prediction_service\"}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\x9a\x13\n\x0e\x46\x65\x61tureService\x12\xf3\x03\n\x0bGetFeatures\x12\x34.tecton_proto.api.feature_service.GetFeaturesRequest\x1a\x35.tecton_proto.api.feature_service.GetFeaturesResponse\"\xf6\x02\x82\xd3\xe4\x93\x02%\" /v1/feature-service/get-features:\x01*\x92\x41\xc7\x02\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\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}\x12\xd9\x05\n\x10GetFeaturesBatch\x12\x39.tecton_proto.api.feature_service.GetFeaturesBatchRequest\x1a:.tecton_proto.api.feature_service.GetFeaturesBatchResponse\"\xcd\x04\x82\xd3\xe4\x93\x02+\"&/v1/feature-service/get-features-batch:\x01*\x92\x41\x98\x04\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}\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\xab\x06\n\x0fServiceMetadata\x12\x38.tecton_proto.api.feature_service.ServiceMetadataRequest\x1a\x39.tecton_proto.api.feature_service.ServiceMetadataResponse\"\xa2\x05\x82\xd3\xe4\x93\x02!\"\x1c/v1/feature-service/metadata:\x01*\x92\x41\xf7\x04\n\x08Metadata\x1a\x32Get Metadata about the feature service from TectonJ\xd9\x02\n\x03\x32\x30\x30\x12\xd1\x02\n\x02OK\"\xca\x02\n\x10\x61pplication/json\x12\xb5\x02{\"featureServiceType\": \"DEFAULT\", \"inputJoinKeys\": [{\"name\": \"adId\", \"type\": \"string\"}],\"feature_values\":[{\"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\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}B\xbb\x05Z4github.com/tecton-ai/tecton_proto/api/featureservice\x92\x41\x81\x05\x12\xec\x02\n\x12\x46\x65\x61tureService API\x12\xb4\x02Tecton provides a low latency feature server that exposes HTTP endpoints to retrieve feature values and metadata from the online store. This is 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/jsonZ\xd2\x01\n\xcf\x01\n\x0eTecton API Key\x12\xbc\x01\x08\x02\x12\xa6\x01Use your Tecton API Key (prefixed by `tecton-key` ) as the `Authorization` request header field. E.g. for API Key `secretapikey123`, use `tecton-key secretapikey123`.\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\201\005\022\354\002\n\022FeatureService API\022\264\002Tecton provides a low latency feature server that exposes HTTP endpoints to retrieve feature values and metadata from the online store. This is 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/jsonZ\322\001\n\317\001\n\016Tecton API Key\022\274\001\010\002\022\246\001Use your Tecton API Key (prefixed by `tecton-key` ) as the `Authorization` request header field. E.g. for API Key `secretapikey123`, use `tecton-key secretapikey123`.\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'
  _METADATA_ITEM.fields_by_name['type']._options = None
  _METADATA_ITEM.fields_by_name['type']._serialized_options = b'\030\001'
  _FEATURESERVICELOCATOR._options = None
  _FEATURESERVICELOCATOR._serialized_options = b'\222A4:2{\"feature_service_name\": \"ctr_prediction_service\"}'
  _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\307\002\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\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}'
  _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\230\004\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}'
  _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\367\004\n\010Metadata\0322Get Metadata about the feature service from TectonJ\331\002\n\003200\022\321\002\n\002OK\"\312\002\n\020application/json\022\265\002{\"featureServiceType\": \"DEFAULT\", \"inputJoinKeys\": [{\"name\": \"adId\", \"type\": \"string\"}],\"feature_values\":[{\"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\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}'
  _FEATURESERVICETYPE._serialized_start=4970
  _FEATURESERVICETYPE._serialized_end=5017
  _FEATURESERVERDATATYPE._serialized_start=5020
  _FEATURESERVERDATATYPE._serialized_end=5164
  _STATUS._serialized_start=5166
  _STATUS._serialized_end=5225
  _SLOINELIGIBILITYREASON._serialized_start=5228
  _SLOINELIGIBILITYREASON._serialized_end=5382
  _NAMEANDTYPE._serialized_start=294
  _NAMEANDTYPE._serialized_end=501
  _GETFEATURESRESULT._serialized_start=504
  _GETFEATURESRESULT._serialized_end=652
  _FEATURESERVERCOMPLEXDATATYPE._serialized_start=655
  _FEATURESERVERCOMPLEXDATATYPE._serialized_end=945
  _FEATURESERVERSTRUCTFIELD._serialized_start=948
  _FEATURESERVERSTRUCTFIELD._serialized_end=1087
  _SLOINFO._serialized_start=1090
  _SLOINFO._serialized_end=1569
  _METADATA._serialized_start=1572
  _METADATA._serialized_end=2190
  _METADATA_ITEM._serialized_start=1851
  _METADATA_ITEM._serialized_end=2190
  _GETFEATURESRESPONSE._serialized_start=2193
  _GETFEATURESRESPONSE._serialized_end=2363
  _GETFEATURESBATCHRESPONSE._serialized_start=2366
  _GETFEATURESBATCHRESPONSE._serialized_end=2552
  _BATCHSLOINFO._serialized_start=2555
  _BATCHSLOINFO._serialized_end=2869
  _BATCHMETADATA._serialized_start=2872
  _BATCHMETADATA._serialized_end=3469
  _BATCHMETADATA_ITEM._serialized_start=3211
  _BATCHMETADATA_ITEM._serialized_end=3469
  _SERVICEMETADATAREQUEST._serialized_start=3471
  _SERVICEMETADATAREQUEST._serialized_end=3576
  _SERVICEMETADATARESPONSE._serialized_start=3579
  _SERVICEMETADATARESPONSE._serialized_end=4078
  _QUERYFEATURESREQUEST._serialized_start=4080
  _QUERYFEATURESREQUEST._serialized_end=4183
  _QUERYFEATURESRESPONSE._serialized_start=4186
  _QUERYFEATURESRESPONSE._serialized_end=4360
  _FEATURESERVICELOCATOR._serialized_start=4363
  _FEATURESERVICELOCATOR._serialized_end=4781
  _GETFEATURESERVICESTATEREQUEST._serialized_start=4784
  _GETFEATURESERVICESTATEREQUEST._serialized_end=4928
  _GETFEATURESERVICESTATERESPONSE._serialized_start=4930
  _GETFEATURESERVICESTATERESPONSE._serialized_end=4968
  _FEATURESERVICE._serialized_start=5385
  _FEATURESERVICE._serialized_end=7843
# @@protoc_insertion_point(module_scope)
