sift-stack-py 0.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. google/__init__.py +1 -0
  2. google/api/__init__.py +0 -0
  3. google/api/annotations_pb2.py +27 -0
  4. google/api/annotations_pb2.pyi +29 -0
  5. google/api/annotations_pb2_grpc.py +4 -0
  6. google/api/annotations_pb2_grpc.pyi +30 -0
  7. google/api/field_behavior_pb2.py +30 -0
  8. google/api/field_behavior_pb2.pyi +175 -0
  9. google/api/field_behavior_pb2_grpc.py +4 -0
  10. google/api/field_behavior_pb2_grpc.pyi +30 -0
  11. google/api/http_pb2.py +31 -0
  12. google/api/http_pb2.pyi +433 -0
  13. google/api/http_pb2_grpc.py +4 -0
  14. google/api/http_pb2_grpc.pyi +30 -0
  15. protoc_gen_openapiv2/__init__.py +0 -0
  16. protoc_gen_openapiv2/options/__init__.py +0 -0
  17. protoc_gen_openapiv2/options/annotations_pb2.py +27 -0
  18. protoc_gen_openapiv2/options/annotations_pb2.pyi +48 -0
  19. protoc_gen_openapiv2/options/annotations_pb2_grpc.py +4 -0
  20. protoc_gen_openapiv2/options/annotations_pb2_grpc.pyi +17 -0
  21. protoc_gen_openapiv2/options/openapiv2_pb2.py +132 -0
  22. protoc_gen_openapiv2/options/openapiv2_pb2.pyi +1533 -0
  23. protoc_gen_openapiv2/options/openapiv2_pb2_grpc.py +4 -0
  24. protoc_gen_openapiv2/options/openapiv2_pb2_grpc.pyi +17 -0
  25. sift/__init__.py +0 -0
  26. sift/annotation_logs/__init__.py +0 -0
  27. sift/annotation_logs/v1/__init__.py +0 -0
  28. sift/annotation_logs/v1/annotation_logs_pb2.py +115 -0
  29. sift/annotation_logs/v1/annotation_logs_pb2.pyi +370 -0
  30. sift/annotation_logs/v1/annotation_logs_pb2_grpc.py +135 -0
  31. sift/annotation_logs/v1/annotation_logs_pb2_grpc.pyi +84 -0
  32. sift/annotations/__init__.py +0 -0
  33. sift/annotations/v1/__init__.py +0 -0
  34. sift/annotations/v1/annotations_pb2.py +180 -0
  35. sift/annotations/v1/annotations_pb2.pyi +539 -0
  36. sift/annotations/v1/annotations_pb2_grpc.py +237 -0
  37. sift/annotations/v1/annotations_pb2_grpc.pyi +144 -0
  38. sift/assets/__init__.py +0 -0
  39. sift/assets/v1/__init__.py +0 -0
  40. sift/assets/v1/assets_pb2.py +90 -0
  41. sift/assets/v1/assets_pb2.pyi +235 -0
  42. sift/assets/v1/assets_pb2_grpc.py +168 -0
  43. sift/assets/v1/assets_pb2_grpc.pyi +101 -0
  44. sift/calculated_channels/__init__.py +0 -0
  45. sift/calculated_channels/v1/__init__.py +0 -0
  46. sift/calculated_channels/v1/calculated_channels_pb2.py +99 -0
  47. sift/calculated_channels/v1/calculated_channels_pb2.pyi +280 -0
  48. sift/calculated_channels/v1/calculated_channels_pb2_grpc.py +101 -0
  49. sift/calculated_channels/v1/calculated_channels_pb2_grpc.pyi +64 -0
  50. sift/campaigns/__init__.py +0 -0
  51. sift/campaigns/v1/__init__.py +0 -0
  52. sift/campaigns/v1/campaigns_pb2.py +144 -0
  53. sift/campaigns/v1/campaigns_pb2.pyi +383 -0
  54. sift/campaigns/v1/campaigns_pb2_grpc.py +169 -0
  55. sift/campaigns/v1/campaigns_pb2_grpc.pyi +104 -0
  56. sift/channel_schemas/__init__.py +0 -0
  57. sift/channel_schemas/v1/__init__.py +0 -0
  58. sift/channel_schemas/v1/channel_schemas_pb2.py +69 -0
  59. sift/channel_schemas/v1/channel_schemas_pb2.pyi +117 -0
  60. sift/channel_schemas/v1/channel_schemas_pb2_grpc.py +101 -0
  61. sift/channel_schemas/v1/channel_schemas_pb2_grpc.pyi +64 -0
  62. sift/channels/__init__.py +0 -0
  63. sift/channels/v2/__init__.py +0 -0
  64. sift/channels/v2/channels_pb2.py +88 -0
  65. sift/channels/v2/channels_pb2.pyi +183 -0
  66. sift/channels/v2/channels_pb2_grpc.py +101 -0
  67. sift/channels/v2/channels_pb2_grpc.pyi +64 -0
  68. sift/common/__init__.py +0 -0
  69. sift/common/type/__init__.py +0 -0
  70. sift/common/type/v1/__init__.py +0 -0
  71. sift/common/type/v1/channel_bit_field_element_pb2.py +34 -0
  72. sift/common/type/v1/channel_bit_field_element_pb2.pyi +33 -0
  73. sift/common/type/v1/channel_bit_field_element_pb2_grpc.py +4 -0
  74. sift/common/type/v1/channel_bit_field_element_pb2_grpc.pyi +17 -0
  75. sift/common/type/v1/channel_data_type_pb2.py +29 -0
  76. sift/common/type/v1/channel_data_type_pb2.pyi +50 -0
  77. sift/common/type/v1/channel_data_type_pb2_grpc.py +4 -0
  78. sift/common/type/v1/channel_data_type_pb2_grpc.pyi +17 -0
  79. sift/common/type/v1/channel_enum_type_pb2.py +32 -0
  80. sift/common/type/v1/channel_enum_type_pb2.pyi +29 -0
  81. sift/common/type/v1/channel_enum_type_pb2_grpc.py +4 -0
  82. sift/common/type/v1/channel_enum_type_pb2_grpc.pyi +17 -0
  83. sift/common/type/v1/organization_pb2.py +27 -0
  84. sift/common/type/v1/organization_pb2.pyi +29 -0
  85. sift/common/type/v1/organization_pb2_grpc.py +4 -0
  86. sift/common/type/v1/organization_pb2_grpc.pyi +17 -0
  87. sift/common/type/v1/resource_identifier_pb2.py +46 -0
  88. sift/common/type/v1/resource_identifier_pb2.pyi +145 -0
  89. sift/common/type/v1/resource_identifier_pb2_grpc.py +4 -0
  90. sift/common/type/v1/resource_identifier_pb2_grpc.pyi +17 -0
  91. sift/common/type/v1/user_pb2.py +33 -0
  92. sift/common/type/v1/user_pb2.pyi +36 -0
  93. sift/common/type/v1/user_pb2_grpc.py +4 -0
  94. sift/common/type/v1/user_pb2_grpc.pyi +17 -0
  95. sift/data/__init__.py +0 -0
  96. sift/data/v1/__init__.py +0 -0
  97. sift/data/v1/data_pb2.py +212 -0
  98. sift/data/v1/data_pb2.pyi +745 -0
  99. sift/data/v1/data_pb2_grpc.py +67 -0
  100. sift/data/v1/data_pb2_grpc.pyi +44 -0
  101. sift/ingest/__init__.py +0 -0
  102. sift/ingest/v1/__init__.py +0 -0
  103. sift/ingest/v1/ingest_pb2.py +35 -0
  104. sift/ingest/v1/ingest_pb2.pyi +118 -0
  105. sift/ingest/v1/ingest_pb2_grpc.py +66 -0
  106. sift/ingest/v1/ingest_pb2_grpc.pyi +41 -0
  107. sift/ingestion_configs/__init__.py +0 -0
  108. sift/ingestion_configs/v1/__init__.py +0 -0
  109. sift/ingestion_configs/v1/ingestion_configs_pb2.py +115 -0
  110. sift/ingestion_configs/v1/ingestion_configs_pb2.pyi +332 -0
  111. sift/ingestion_configs/v1/ingestion_configs_pb2_grpc.py +203 -0
  112. sift/ingestion_configs/v1/ingestion_configs_pb2_grpc.pyi +124 -0
  113. sift/notifications/__init__.py +0 -0
  114. sift/notifications/v1/__init__.py +0 -0
  115. sift/notifications/v1/notifications_pb2.py +64 -0
  116. sift/notifications/v1/notifications_pb2.pyi +225 -0
  117. sift/notifications/v1/notifications_pb2_grpc.py +101 -0
  118. sift/notifications/v1/notifications_pb2_grpc.pyi +64 -0
  119. sift/ping/__init__.py +0 -0
  120. sift/ping/v1/__init__.py +0 -0
  121. sift/ping/v1/ping_pb2.py +38 -0
  122. sift/ping/v1/ping_pb2.pyi +36 -0
  123. sift/ping/v1/ping_pb2_grpc.py +66 -0
  124. sift/ping/v1/ping_pb2_grpc.pyi +41 -0
  125. sift/remote_files/__init__.py +0 -0
  126. sift/remote_files/v1/__init__.py +0 -0
  127. sift/remote_files/v1/remote_files_pb2.py +174 -0
  128. sift/remote_files/v1/remote_files_pb2.pyi +472 -0
  129. sift/remote_files/v1/remote_files_pb2_grpc.py +271 -0
  130. sift/remote_files/v1/remote_files_pb2_grpc.pyi +164 -0
  131. sift/report_templates/__init__.py +0 -0
  132. sift/report_templates/v1/__init__.py +0 -0
  133. sift/report_templates/v1/report_templates_pb2.py +146 -0
  134. sift/report_templates/v1/report_templates_pb2.pyi +381 -0
  135. sift/report_templates/v1/report_templates_pb2_grpc.py +169 -0
  136. sift/report_templates/v1/report_templates_pb2_grpc.pyi +104 -0
  137. sift/reports/__init__.py +0 -0
  138. sift/reports/v1/__init__.py +0 -0
  139. sift/reports/v1/reports_pb2.py +193 -0
  140. sift/reports/v1/reports_pb2.pyi +562 -0
  141. sift/reports/v1/reports_pb2_grpc.py +205 -0
  142. sift/reports/v1/reports_pb2_grpc.pyi +136 -0
  143. sift/rule_evaluation/__init__.py +0 -0
  144. sift/rule_evaluation/v1/__init__.py +0 -0
  145. sift/rule_evaluation/v1/rule_evaluation_pb2.py +89 -0
  146. sift/rule_evaluation/v1/rule_evaluation_pb2.pyi +263 -0
  147. sift/rule_evaluation/v1/rule_evaluation_pb2_grpc.py +101 -0
  148. sift/rule_evaluation/v1/rule_evaluation_pb2_grpc.pyi +64 -0
  149. sift/rules/__init__.py +0 -0
  150. sift/rules/v1/__init__.py +0 -0
  151. sift/rules/v1/rules_pb2.py +420 -0
  152. sift/rules/v1/rules_pb2.pyi +1355 -0
  153. sift/rules/v1/rules_pb2_grpc.py +577 -0
  154. sift/rules/v1/rules_pb2_grpc.pyi +351 -0
  155. sift/runs/__init__.py +0 -0
  156. sift/runs/v2/__init__.py +0 -0
  157. sift/runs/v2/runs_pb2.py +150 -0
  158. sift/runs/v2/runs_pb2.pyi +413 -0
  159. sift/runs/v2/runs_pb2_grpc.py +271 -0
  160. sift/runs/v2/runs_pb2_grpc.pyi +164 -0
  161. sift/saved_searches/__init__.py +0 -0
  162. sift/saved_searches/v1/__init__.py +0 -0
  163. sift/saved_searches/v1/saved_searches_pb2.py +144 -0
  164. sift/saved_searches/v1/saved_searches_pb2.pyi +385 -0
  165. sift/saved_searches/v1/saved_searches_pb2_grpc.py +237 -0
  166. sift/saved_searches/v1/saved_searches_pb2_grpc.pyi +144 -0
  167. sift/tags/__init__.py +0 -0
  168. sift/tags/v1/__init__.py +0 -0
  169. sift/tags/v1/tags_pb2.py +49 -0
  170. sift/tags/v1/tags_pb2.pyi +71 -0
  171. sift/tags/v1/tags_pb2_grpc.py +4 -0
  172. sift/tags/v1/tags_pb2_grpc.pyi +17 -0
  173. sift/users/__init__.py +0 -0
  174. sift/users/v2/__init__.py +0 -0
  175. sift/users/v2/users_pb2.py +61 -0
  176. sift/users/v2/users_pb2.pyi +142 -0
  177. sift/users/v2/users_pb2_grpc.py +135 -0
  178. sift/users/v2/users_pb2_grpc.pyi +84 -0
  179. sift/views/__init__.py +0 -0
  180. sift/views/v1/__init__.py +0 -0
  181. sift/views/v1/views_pb2.py +130 -0
  182. sift/views/v1/views_pb2.pyi +466 -0
  183. sift/views/v1/views_pb2_grpc.py +305 -0
  184. sift/views/v1/views_pb2_grpc.pyi +184 -0
  185. sift_grafana/py.typed +0 -0
  186. sift_grafana/sift_query_model.py +64 -0
  187. sift_py/__init__.py +923 -0
  188. sift_py/_internal/__init__.py +5 -0
  189. sift_py/_internal/cel.py +18 -0
  190. sift_py/_internal/channel.py +42 -0
  191. sift_py/_internal/convert/__init__.py +3 -0
  192. sift_py/_internal/convert/json.py +24 -0
  193. sift_py/_internal/convert/protobuf.py +34 -0
  194. sift_py/_internal/convert/timestamp.py +9 -0
  195. sift_py/_internal/test_util/__init__.py +0 -0
  196. sift_py/_internal/test_util/channel.py +136 -0
  197. sift_py/_internal/test_util/fn.py +14 -0
  198. sift_py/_internal/test_util/server_interceptor.py +62 -0
  199. sift_py/_internal/time.py +48 -0
  200. sift_py/_internal/user.py +39 -0
  201. sift_py/data/__init__.py +171 -0
  202. sift_py/data/_channel.py +38 -0
  203. sift_py/data/_deserialize.py +208 -0
  204. sift_py/data/_deserialize_test.py +134 -0
  205. sift_py/data/_service_test.py +276 -0
  206. sift_py/data/_validate.py +10 -0
  207. sift_py/data/error.py +5 -0
  208. sift_py/data/query.py +299 -0
  209. sift_py/data/service.py +497 -0
  210. sift_py/data_import/__init__.py +130 -0
  211. sift_py/data_import/_config.py +167 -0
  212. sift_py/data_import/_config_test.py +166 -0
  213. sift_py/data_import/_csv_test.py +395 -0
  214. sift_py/data_import/_status_test.py +176 -0
  215. sift_py/data_import/_tdms_test.py +238 -0
  216. sift_py/data_import/ch10.py +157 -0
  217. sift_py/data_import/config.py +19 -0
  218. sift_py/data_import/csv.py +259 -0
  219. sift_py/data_import/status.py +113 -0
  220. sift_py/data_import/tdms.py +206 -0
  221. sift_py/data_import/tempfile.py +30 -0
  222. sift_py/data_import/time_format.py +39 -0
  223. sift_py/error.py +11 -0
  224. sift_py/file_attachment/__init__.py +88 -0
  225. sift_py/file_attachment/_internal/__init__.py +0 -0
  226. sift_py/file_attachment/_internal/download.py +13 -0
  227. sift_py/file_attachment/_internal/upload.py +100 -0
  228. sift_py/file_attachment/_service_test.py +161 -0
  229. sift_py/file_attachment/entity.py +30 -0
  230. sift_py/file_attachment/metadata.py +107 -0
  231. sift_py/file_attachment/service.py +142 -0
  232. sift_py/grpc/__init__.py +15 -0
  233. sift_py/grpc/_async_interceptors/__init__.py +0 -0
  234. sift_py/grpc/_async_interceptors/base.py +72 -0
  235. sift_py/grpc/_async_interceptors/metadata.py +36 -0
  236. sift_py/grpc/_interceptors/__init__.py +0 -0
  237. sift_py/grpc/_interceptors/base.py +61 -0
  238. sift_py/grpc/_interceptors/context.py +25 -0
  239. sift_py/grpc/_interceptors/metadata.py +33 -0
  240. sift_py/grpc/_retry.py +70 -0
  241. sift_py/grpc/keepalive.py +34 -0
  242. sift_py/grpc/transport.py +250 -0
  243. sift_py/grpc/transport_test.py +170 -0
  244. sift_py/ingestion/__init__.py +6 -0
  245. sift_py/ingestion/_internal/__init__.py +6 -0
  246. sift_py/ingestion/_internal/channel.py +12 -0
  247. sift_py/ingestion/_internal/error.py +10 -0
  248. sift_py/ingestion/_internal/ingest.py +350 -0
  249. sift_py/ingestion/_internal/ingest_test.py +357 -0
  250. sift_py/ingestion/_internal/ingestion_config.py +130 -0
  251. sift_py/ingestion/_internal/run.py +46 -0
  252. sift_py/ingestion/_service_test.py +478 -0
  253. sift_py/ingestion/buffer.py +189 -0
  254. sift_py/ingestion/channel.py +422 -0
  255. sift_py/ingestion/config/__init__.py +3 -0
  256. sift_py/ingestion/config/telemetry.py +281 -0
  257. sift_py/ingestion/config/telemetry_test.py +405 -0
  258. sift_py/ingestion/config/yaml/__init__.py +0 -0
  259. sift_py/ingestion/config/yaml/error.py +44 -0
  260. sift_py/ingestion/config/yaml/load.py +126 -0
  261. sift_py/ingestion/config/yaml/spec.py +58 -0
  262. sift_py/ingestion/config/yaml/test_load.py +25 -0
  263. sift_py/ingestion/flow.py +73 -0
  264. sift_py/ingestion/manager.py +99 -0
  265. sift_py/ingestion/rule/__init__.py +4 -0
  266. sift_py/ingestion/rule/config.py +11 -0
  267. sift_py/ingestion/service.py +237 -0
  268. sift_py/py.typed +0 -0
  269. sift_py/report_templates/__init__.py +0 -0
  270. sift_py/report_templates/_config_test.py +34 -0
  271. sift_py/report_templates/_service_test.py +94 -0
  272. sift_py/report_templates/config.py +36 -0
  273. sift_py/report_templates/service.py +171 -0
  274. sift_py/rest.py +29 -0
  275. sift_py/rule/__init__.py +0 -0
  276. sift_py/rule/_config_test.py +109 -0
  277. sift_py/rule/_service_test.py +168 -0
  278. sift_py/rule/config.py +229 -0
  279. sift_py/rule/service.py +484 -0
  280. sift_py/yaml/__init__.py +0 -0
  281. sift_py/yaml/_channel_test.py +169 -0
  282. sift_py/yaml/_rule_test.py +207 -0
  283. sift_py/yaml/channel.py +224 -0
  284. sift_py/yaml/report_templates.py +73 -0
  285. sift_py/yaml/rule.py +321 -0
  286. sift_py/yaml/utils.py +15 -0
  287. sift_stack_py-0.3.2.dist-info/LICENSE +7 -0
  288. sift_stack_py-0.3.2.dist-info/METADATA +109 -0
  289. sift_stack_py-0.3.2.dist-info/RECORD +291 -0
  290. sift_stack_py-0.3.2.dist-info/WHEEL +5 -0
  291. sift_stack_py-0.3.2.dist-info/top_level.txt +5 -0
@@ -0,0 +1,235 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import collections.abc
8
+ import google.protobuf.descriptor
9
+ import google.protobuf.field_mask_pb2
10
+ import google.protobuf.internal.containers
11
+ import google.protobuf.message
12
+ import google.protobuf.timestamp_pb2
13
+ import typing
14
+
15
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
16
+
17
+ @typing.final
18
+ class Asset(google.protobuf.message.Message):
19
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
20
+
21
+ ASSET_ID_FIELD_NUMBER: builtins.int
22
+ NAME_FIELD_NUMBER: builtins.int
23
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
24
+ CREATED_DATE_FIELD_NUMBER: builtins.int
25
+ CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int
26
+ MODIFIED_DATE_FIELD_NUMBER: builtins.int
27
+ MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int
28
+ TAGS_FIELD_NUMBER: builtins.int
29
+ asset_id: builtins.str
30
+ name: builtins.str
31
+ organization_id: builtins.str
32
+ created_by_user_id: builtins.str
33
+ modified_by_user_id: builtins.str
34
+ @property
35
+ def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
36
+ @property
37
+ def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
38
+ @property
39
+ def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
40
+ """The names of the tags to associate with this asset."""
41
+
42
+ def __init__(
43
+ self,
44
+ *,
45
+ asset_id: builtins.str = ...,
46
+ name: builtins.str = ...,
47
+ organization_id: builtins.str = ...,
48
+ created_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
49
+ created_by_user_id: builtins.str = ...,
50
+ modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
51
+ modified_by_user_id: builtins.str = ...,
52
+ tags: collections.abc.Iterable[builtins.str] | None = ...,
53
+ ) -> None: ...
54
+ def HasField(self, field_name: typing.Literal["created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ...
55
+ def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "tags", b"tags"]) -> None: ...
56
+
57
+ global___Asset = Asset
58
+
59
+ @typing.final
60
+ class ListAssetsRequest(google.protobuf.message.Message):
61
+ """The request for a call to `AssetService_ListAssets`."""
62
+
63
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
64
+
65
+ PAGE_SIZE_FIELD_NUMBER: builtins.int
66
+ PAGE_TOKEN_FIELD_NUMBER: builtins.int
67
+ FILTER_FIELD_NUMBER: builtins.int
68
+ ORDER_BY_FIELD_NUMBER: builtins.int
69
+ page_size: builtins.int
70
+ """The maximum number of assets to return.
71
+ The service may return fewer than this value.
72
+ If unspecified, at most 50 assets will be returned.
73
+ The maximum value is 1000; values above 1000 will be coerced to 1000.
74
+ """
75
+ page_token: builtins.str
76
+ """A page token, received from a previous `ListAssets` call.
77
+ Provide this to retrieve the subsequent page.
78
+ When paginating, all other parameters provided to `ListAssets` must match
79
+ the call that provided the page token.
80
+ """
81
+ filter: builtins.str
82
+ """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.
83
+ Available fields to filter by are `asset_id`, `created_by_user_id`, `modified_by_user_id`,
84
+ `created_date`, `modified_date`, and `name`.
85
+ For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).
86
+ For more information about the fields used for filtering, please refer to [this definition](/api/grpc/protocol_buffers/assets#asset). Optional.
87
+ """
88
+ order_by: builtins.str
89
+ """How to order the retrieved assets. Formatted as a comma-separated string i.e. "<field_name>[ desc],...".
90
+ Available fields to order_by are `created_date` and `modified_date`.
91
+ If left empty, items are ordered by `created_date` in ascending order (oldest-first).
92
+ For more information about the format of this field, read [this](https://google.aip.dev/132#ordering)
93
+ Example: "created_date desc,modified_date"
94
+ """
95
+ def __init__(
96
+ self,
97
+ *,
98
+ page_size: builtins.int = ...,
99
+ page_token: builtins.str = ...,
100
+ filter: builtins.str = ...,
101
+ order_by: builtins.str = ...,
102
+ ) -> None: ...
103
+ def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...
104
+
105
+ global___ListAssetsRequest = ListAssetsRequest
106
+
107
+ @typing.final
108
+ class ListAssetsResponse(google.protobuf.message.Message):
109
+ """The result of a call to `AssetService_ListAssets`."""
110
+
111
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
112
+
113
+ ASSETS_FIELD_NUMBER: builtins.int
114
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
115
+ next_page_token: builtins.str
116
+ @property
117
+ def assets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Asset]: ...
118
+ def __init__(
119
+ self,
120
+ *,
121
+ assets: collections.abc.Iterable[global___Asset] | None = ...,
122
+ next_page_token: builtins.str = ...,
123
+ ) -> None: ...
124
+ def ClearField(self, field_name: typing.Literal["assets", b"assets", "next_page_token", b"next_page_token"]) -> None: ...
125
+
126
+ global___ListAssetsResponse = ListAssetsResponse
127
+
128
+ @typing.final
129
+ class DeleteAssetRequest(google.protobuf.message.Message):
130
+ """The request for a call to `AssetService_DeleteAsset` to delete a single existing annotation by its asset_id."""
131
+
132
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
133
+
134
+ ASSET_ID_FIELD_NUMBER: builtins.int
135
+ asset_id: builtins.str
136
+ """The id of the asset to be deleted. Required."""
137
+ def __init__(
138
+ self,
139
+ *,
140
+ asset_id: builtins.str = ...,
141
+ ) -> None: ...
142
+ def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id"]) -> None: ...
143
+
144
+ global___DeleteAssetRequest = DeleteAssetRequest
145
+
146
+ @typing.final
147
+ class DeleteAssetResponse(google.protobuf.message.Message):
148
+ """The response of a call to `AssetService_DeleteAsset`."""
149
+
150
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
151
+
152
+ def __init__(
153
+ self,
154
+ ) -> None: ...
155
+
156
+ global___DeleteAssetResponse = DeleteAssetResponse
157
+
158
+ @typing.final
159
+ class GetAssetRequest(google.protobuf.message.Message):
160
+ """The request for a call to `AssetService_GetAsset` to retrieve a single existing asset by its asset_id."""
161
+
162
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
163
+
164
+ ASSET_ID_FIELD_NUMBER: builtins.int
165
+ asset_id: builtins.str
166
+ """The id of the asset to be retrieved. Required."""
167
+ def __init__(
168
+ self,
169
+ *,
170
+ asset_id: builtins.str = ...,
171
+ ) -> None: ...
172
+ def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id"]) -> None: ...
173
+
174
+ global___GetAssetRequest = GetAssetRequest
175
+
176
+ @typing.final
177
+ class GetAssetResponse(google.protobuf.message.Message):
178
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
179
+
180
+ ASSET_FIELD_NUMBER: builtins.int
181
+ @property
182
+ def asset(self) -> global___Asset: ...
183
+ def __init__(
184
+ self,
185
+ *,
186
+ asset: global___Asset | None = ...,
187
+ ) -> None: ...
188
+ def HasField(self, field_name: typing.Literal["asset", b"asset"]) -> builtins.bool: ...
189
+ def ClearField(self, field_name: typing.Literal["asset", b"asset"]) -> None: ...
190
+
191
+ global___GetAssetResponse = GetAssetResponse
192
+
193
+ @typing.final
194
+ class UpdateAssetRequest(google.protobuf.message.Message):
195
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
196
+
197
+ ASSET_FIELD_NUMBER: builtins.int
198
+ UPDATE_MASK_FIELD_NUMBER: builtins.int
199
+ @property
200
+ def asset(self) -> global___Asset:
201
+ """The asset to update. The asset's `asset_id` field is used to identify asset run to update
202
+ and is required.
203
+ """
204
+
205
+ @property
206
+ def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask:
207
+ """The list of fields to be updated. Currently, the only field available to be updated is `tags`."""
208
+
209
+ def __init__(
210
+ self,
211
+ *,
212
+ asset: global___Asset | None = ...,
213
+ update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ...,
214
+ ) -> None: ...
215
+ def HasField(self, field_name: typing.Literal["asset", b"asset", "update_mask", b"update_mask"]) -> builtins.bool: ...
216
+ def ClearField(self, field_name: typing.Literal["asset", b"asset", "update_mask", b"update_mask"]) -> None: ...
217
+
218
+ global___UpdateAssetRequest = UpdateAssetRequest
219
+
220
+ @typing.final
221
+ class UpdateAssetResponse(google.protobuf.message.Message):
222
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
223
+
224
+ ASSET_FIELD_NUMBER: builtins.int
225
+ @property
226
+ def asset(self) -> global___Asset: ...
227
+ def __init__(
228
+ self,
229
+ *,
230
+ asset: global___Asset | None = ...,
231
+ ) -> None: ...
232
+ def HasField(self, field_name: typing.Literal["asset", b"asset"]) -> builtins.bool: ...
233
+ def ClearField(self, field_name: typing.Literal["asset", b"asset"]) -> None: ...
234
+
235
+ global___UpdateAssetResponse = UpdateAssetResponse
@@ -0,0 +1,168 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from sift.assets.v1 import assets_pb2 as sift_dot_assets_dot_v1_dot_assets__pb2
6
+
7
+
8
+ class AssetServiceStub(object):
9
+ """Missing associated documentation comment in .proto file."""
10
+
11
+ def __init__(self, channel):
12
+ """Constructor.
13
+
14
+ Args:
15
+ channel: A grpc.Channel.
16
+ """
17
+ self.DeleteAsset = channel.unary_unary(
18
+ '/sift.assets.v1.AssetService/DeleteAsset',
19
+ request_serializer=sift_dot_assets_dot_v1_dot_assets__pb2.DeleteAssetRequest.SerializeToString,
20
+ response_deserializer=sift_dot_assets_dot_v1_dot_assets__pb2.DeleteAssetResponse.FromString,
21
+ )
22
+ self.GetAsset = channel.unary_unary(
23
+ '/sift.assets.v1.AssetService/GetAsset',
24
+ request_serializer=sift_dot_assets_dot_v1_dot_assets__pb2.GetAssetRequest.SerializeToString,
25
+ response_deserializer=sift_dot_assets_dot_v1_dot_assets__pb2.GetAssetResponse.FromString,
26
+ )
27
+ self.ListAssets = channel.unary_unary(
28
+ '/sift.assets.v1.AssetService/ListAssets',
29
+ request_serializer=sift_dot_assets_dot_v1_dot_assets__pb2.ListAssetsRequest.SerializeToString,
30
+ response_deserializer=sift_dot_assets_dot_v1_dot_assets__pb2.ListAssetsResponse.FromString,
31
+ )
32
+ self.UpdateAsset = channel.unary_unary(
33
+ '/sift.assets.v1.AssetService/UpdateAsset',
34
+ request_serializer=sift_dot_assets_dot_v1_dot_assets__pb2.UpdateAssetRequest.SerializeToString,
35
+ response_deserializer=sift_dot_assets_dot_v1_dot_assets__pb2.UpdateAssetResponse.FromString,
36
+ )
37
+
38
+
39
+ class AssetServiceServicer(object):
40
+ """Missing associated documentation comment in .proto file."""
41
+
42
+ def DeleteAsset(self, request, context):
43
+ """Deletes an asset.
44
+ """
45
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
46
+ context.set_details('Method not implemented!')
47
+ raise NotImplementedError('Method not implemented!')
48
+
49
+ def GetAsset(self, request, context):
50
+ """Retrieves an asset.
51
+ """
52
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
53
+ context.set_details('Method not implemented!')
54
+ raise NotImplementedError('Method not implemented!')
55
+
56
+ def ListAssets(self, request, context):
57
+ """Retrieves assets using an optional filter.
58
+ """
59
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
60
+ context.set_details('Method not implemented!')
61
+ raise NotImplementedError('Method not implemented!')
62
+
63
+ def UpdateAsset(self, request, context):
64
+ """Missing associated documentation comment in .proto file."""
65
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
66
+ context.set_details('Method not implemented!')
67
+ raise NotImplementedError('Method not implemented!')
68
+
69
+
70
+ def add_AssetServiceServicer_to_server(servicer, server):
71
+ rpc_method_handlers = {
72
+ 'DeleteAsset': grpc.unary_unary_rpc_method_handler(
73
+ servicer.DeleteAsset,
74
+ request_deserializer=sift_dot_assets_dot_v1_dot_assets__pb2.DeleteAssetRequest.FromString,
75
+ response_serializer=sift_dot_assets_dot_v1_dot_assets__pb2.DeleteAssetResponse.SerializeToString,
76
+ ),
77
+ 'GetAsset': grpc.unary_unary_rpc_method_handler(
78
+ servicer.GetAsset,
79
+ request_deserializer=sift_dot_assets_dot_v1_dot_assets__pb2.GetAssetRequest.FromString,
80
+ response_serializer=sift_dot_assets_dot_v1_dot_assets__pb2.GetAssetResponse.SerializeToString,
81
+ ),
82
+ 'ListAssets': grpc.unary_unary_rpc_method_handler(
83
+ servicer.ListAssets,
84
+ request_deserializer=sift_dot_assets_dot_v1_dot_assets__pb2.ListAssetsRequest.FromString,
85
+ response_serializer=sift_dot_assets_dot_v1_dot_assets__pb2.ListAssetsResponse.SerializeToString,
86
+ ),
87
+ 'UpdateAsset': grpc.unary_unary_rpc_method_handler(
88
+ servicer.UpdateAsset,
89
+ request_deserializer=sift_dot_assets_dot_v1_dot_assets__pb2.UpdateAssetRequest.FromString,
90
+ response_serializer=sift_dot_assets_dot_v1_dot_assets__pb2.UpdateAssetResponse.SerializeToString,
91
+ ),
92
+ }
93
+ generic_handler = grpc.method_handlers_generic_handler(
94
+ 'sift.assets.v1.AssetService', rpc_method_handlers)
95
+ server.add_generic_rpc_handlers((generic_handler,))
96
+
97
+
98
+ # This class is part of an EXPERIMENTAL API.
99
+ class AssetService(object):
100
+ """Missing associated documentation comment in .proto file."""
101
+
102
+ @staticmethod
103
+ def DeleteAsset(request,
104
+ target,
105
+ options=(),
106
+ channel_credentials=None,
107
+ call_credentials=None,
108
+ insecure=False,
109
+ compression=None,
110
+ wait_for_ready=None,
111
+ timeout=None,
112
+ metadata=None):
113
+ return grpc.experimental.unary_unary(request, target, '/sift.assets.v1.AssetService/DeleteAsset',
114
+ sift_dot_assets_dot_v1_dot_assets__pb2.DeleteAssetRequest.SerializeToString,
115
+ sift_dot_assets_dot_v1_dot_assets__pb2.DeleteAssetResponse.FromString,
116
+ options, channel_credentials,
117
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
118
+
119
+ @staticmethod
120
+ def GetAsset(request,
121
+ target,
122
+ options=(),
123
+ channel_credentials=None,
124
+ call_credentials=None,
125
+ insecure=False,
126
+ compression=None,
127
+ wait_for_ready=None,
128
+ timeout=None,
129
+ metadata=None):
130
+ return grpc.experimental.unary_unary(request, target, '/sift.assets.v1.AssetService/GetAsset',
131
+ sift_dot_assets_dot_v1_dot_assets__pb2.GetAssetRequest.SerializeToString,
132
+ sift_dot_assets_dot_v1_dot_assets__pb2.GetAssetResponse.FromString,
133
+ options, channel_credentials,
134
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
135
+
136
+ @staticmethod
137
+ def ListAssets(request,
138
+ target,
139
+ options=(),
140
+ channel_credentials=None,
141
+ call_credentials=None,
142
+ insecure=False,
143
+ compression=None,
144
+ wait_for_ready=None,
145
+ timeout=None,
146
+ metadata=None):
147
+ return grpc.experimental.unary_unary(request, target, '/sift.assets.v1.AssetService/ListAssets',
148
+ sift_dot_assets_dot_v1_dot_assets__pb2.ListAssetsRequest.SerializeToString,
149
+ sift_dot_assets_dot_v1_dot_assets__pb2.ListAssetsResponse.FromString,
150
+ options, channel_credentials,
151
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
152
+
153
+ @staticmethod
154
+ def UpdateAsset(request,
155
+ target,
156
+ options=(),
157
+ channel_credentials=None,
158
+ call_credentials=None,
159
+ insecure=False,
160
+ compression=None,
161
+ wait_for_ready=None,
162
+ timeout=None,
163
+ metadata=None):
164
+ return grpc.experimental.unary_unary(request, target, '/sift.assets.v1.AssetService/UpdateAsset',
165
+ sift_dot_assets_dot_v1_dot_assets__pb2.UpdateAssetRequest.SerializeToString,
166
+ sift_dot_assets_dot_v1_dot_assets__pb2.UpdateAssetResponse.FromString,
167
+ options, channel_credentials,
168
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,101 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import abc
7
+ import collections.abc
8
+ import grpc
9
+ import grpc.aio
10
+ import sift.assets.v1.assets_pb2
11
+ import typing
12
+
13
+ _T = typing.TypeVar("_T")
14
+
15
+ class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ...
16
+
17
+ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg]
18
+ ...
19
+
20
+ class AssetServiceStub:
21
+ def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
22
+ DeleteAsset: grpc.UnaryUnaryMultiCallable[
23
+ sift.assets.v1.assets_pb2.DeleteAssetRequest,
24
+ sift.assets.v1.assets_pb2.DeleteAssetResponse,
25
+ ]
26
+ """Deletes an asset."""
27
+
28
+ GetAsset: grpc.UnaryUnaryMultiCallable[
29
+ sift.assets.v1.assets_pb2.GetAssetRequest,
30
+ sift.assets.v1.assets_pb2.GetAssetResponse,
31
+ ]
32
+ """Retrieves an asset."""
33
+
34
+ ListAssets: grpc.UnaryUnaryMultiCallable[
35
+ sift.assets.v1.assets_pb2.ListAssetsRequest,
36
+ sift.assets.v1.assets_pb2.ListAssetsResponse,
37
+ ]
38
+ """Retrieves assets using an optional filter."""
39
+
40
+ UpdateAsset: grpc.UnaryUnaryMultiCallable[
41
+ sift.assets.v1.assets_pb2.UpdateAssetRequest,
42
+ sift.assets.v1.assets_pb2.UpdateAssetResponse,
43
+ ]
44
+
45
+ class AssetServiceAsyncStub:
46
+ DeleteAsset: grpc.aio.UnaryUnaryMultiCallable[
47
+ sift.assets.v1.assets_pb2.DeleteAssetRequest,
48
+ sift.assets.v1.assets_pb2.DeleteAssetResponse,
49
+ ]
50
+ """Deletes an asset."""
51
+
52
+ GetAsset: grpc.aio.UnaryUnaryMultiCallable[
53
+ sift.assets.v1.assets_pb2.GetAssetRequest,
54
+ sift.assets.v1.assets_pb2.GetAssetResponse,
55
+ ]
56
+ """Retrieves an asset."""
57
+
58
+ ListAssets: grpc.aio.UnaryUnaryMultiCallable[
59
+ sift.assets.v1.assets_pb2.ListAssetsRequest,
60
+ sift.assets.v1.assets_pb2.ListAssetsResponse,
61
+ ]
62
+ """Retrieves assets using an optional filter."""
63
+
64
+ UpdateAsset: grpc.aio.UnaryUnaryMultiCallable[
65
+ sift.assets.v1.assets_pb2.UpdateAssetRequest,
66
+ sift.assets.v1.assets_pb2.UpdateAssetResponse,
67
+ ]
68
+
69
+ class AssetServiceServicer(metaclass=abc.ABCMeta):
70
+ @abc.abstractmethod
71
+ def DeleteAsset(
72
+ self,
73
+ request: sift.assets.v1.assets_pb2.DeleteAssetRequest,
74
+ context: _ServicerContext,
75
+ ) -> typing.Union[sift.assets.v1.assets_pb2.DeleteAssetResponse, collections.abc.Awaitable[sift.assets.v1.assets_pb2.DeleteAssetResponse]]:
76
+ """Deletes an asset."""
77
+
78
+ @abc.abstractmethod
79
+ def GetAsset(
80
+ self,
81
+ request: sift.assets.v1.assets_pb2.GetAssetRequest,
82
+ context: _ServicerContext,
83
+ ) -> typing.Union[sift.assets.v1.assets_pb2.GetAssetResponse, collections.abc.Awaitable[sift.assets.v1.assets_pb2.GetAssetResponse]]:
84
+ """Retrieves an asset."""
85
+
86
+ @abc.abstractmethod
87
+ def ListAssets(
88
+ self,
89
+ request: sift.assets.v1.assets_pb2.ListAssetsRequest,
90
+ context: _ServicerContext,
91
+ ) -> typing.Union[sift.assets.v1.assets_pb2.ListAssetsResponse, collections.abc.Awaitable[sift.assets.v1.assets_pb2.ListAssetsResponse]]:
92
+ """Retrieves assets using an optional filter."""
93
+
94
+ @abc.abstractmethod
95
+ def UpdateAsset(
96
+ self,
97
+ request: sift.assets.v1.assets_pb2.UpdateAssetRequest,
98
+ context: _ServicerContext,
99
+ ) -> typing.Union[sift.assets.v1.assets_pb2.UpdateAssetResponse, collections.abc.Awaitable[sift.assets.v1.assets_pb2.UpdateAssetResponse]]: ...
100
+
101
+ def add_AssetServiceServicer_to_server(servicer: AssetServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
File without changes
File without changes
@@ -0,0 +1,99 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: sift/calculated_channels/v1/calculated_channels.proto
4
+ # Protobuf Python Version: 5.26.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
16
+ from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
17
+ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
18
+ from sift.common.type.v1 import channel_data_type_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__data__type__pb2
19
+
20
+
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5sift/calculated_channels/v1/calculated_channels.proto\x12\x1bsift.calculated_channels.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a+sift/common/type/v1/channel_data_type.proto\"r\n\x1a\x45xpressionChannelReference\x12\x30\n\x11\x63hannel_reference\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelReference\x12\"\n\nchannel_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"\xf5\x02\n\x11\x45xpressionRequest\x12x\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32\x45.sift.calculated_channels.v1.ExpressionRequest.ChannelReferencesEntryB\x02\x18\x01R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12{\n\x1d\x65xpression_channel_references\x18\x03 \x03(\x0b\x32\x37.sift.calculated_channels.v1.ExpressionChannelReferenceR\x1b\x65xpressionChannelReferences\x1a\x44\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n ListExpressionIdentifiersRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x44\n\x04mode\x18\x03 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"}\n!ListExpressionIdentifiersResponse\x12X\n\x0bidentifiers\x18\x01 \x03(\x0b\x32\x31.sift.calculated_channels.v1.ExpressionIdentifierB\x03\xe0\x41\x02R\x0bidentifiers\"\xa7\x02\n\x14\x45xpressionIdentifier\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12N\n\x04type\x18\x03 \x01(\x0e\x32\x35.sift.calculated_channels.v1.ExpressionIdentifierTypeB\x03\xe0\x41\x02R\x04type\x12&\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64isplayName\x12W\n\x07library\x18\x05 \x01(\x0e\x32\x38.sift.calculated_channels.v1.ExpressionIdentifierLibraryB\x03\xe0\x41\x02R\x07library\"\xb6\x01\n\x19ValidateExpressionRequest\x12S\n\nexpression\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\nexpression\x12\x44\n\x04mode\x18\x02 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"\xd8\x01\n\x1aValidateExpressionResponse\x12T\n\x05\x65rror\x18\x01 \x01(\x0b\x32<.sift.calculated_channels.v1.ErrorValidatingExpressionResultH\x00R\x05\x65rror\x12Z\n\x07success\x18\x02 \x01(\x0b\x32>.sift.calculated_channels.v1.SuccessValidatingExpressionResultH\x00R\x07successB\x08\n\x06result\"K\n\x1f\x45rrorValidatingExpressionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\"k\n!SuccessValidatingExpressionResult\x12\x46\n\tdata_type\x18\x01 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType*\x9b\x01\n\x18\x45xpressionIdentifierType\x12.\n&EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\'\n#EXPRESSION_IDENTIFIER_TYPE_FUNCTION\x10\x01\x12&\n\"EXPRESSION_IDENTIFIER_TYPE_CHANNEL\x10\x02*\xc5\x02\n\x1b\x45xpressionIdentifierLibrary\x12-\n)EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED\x10\x00\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_MATH\x10\x01\x12(\n$EXPRESSION_IDENTIFIER_LIBRARY_STRING\x10\x02\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_LIST\x10\x03\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_ITER\x10\x04\x12*\n&EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL\x10\x05\x12)\n%EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY\x10\x06*\x94\x01\n\x0e\x45xpressionMode\x12#\n\x1b\x45XPRESSION_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x19\n\x15\x45XPRESSION_MODE_RULES\x10\x01\x12\'\n#EXPRESSION_MODE_CALCULATED_CHANNELS\x10\x02\x12\x19\n\x15\x45XPRESSION_MODE_RULER\x10\x03\x32\xf1\x06\n\x19\x43\x61lculatedChannelsService\x12\xd9\x02\n\x19ListExpressionIdentifiers\x12=.sift.calculated_channels.v1.ListExpressionIdentifiersRequest\x1a>.sift.calculated_channels.v1.ListExpressionIdentifiersResponse\"\xbc\x01\x92\x41\x7f\x12\x19ListExpressionIdentifiers\x1a\x62Retrieves a list of valid identifiers that can be used as part of a calculated channel expression.\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v1/calculated-channels:expression-identifiers\x12\xb0\x02\n\x12ValidateExpression\x12\x36.sift.calculated_channels.v1.ValidateExpressionRequest\x1a\x37.sift.calculated_channels.v1.ValidateExpressionResponse\"\xa8\x01\x92\x41k\x12\x12ValidateExpression\x1aUUsed to validate whether or not an expression used for a calculated channel is valid.\x82\xd3\xe4\x93\x02\x34\"//api/v1/calculated-channels:validate-expression:\x01*\x1a\xc4\x01\x92\x41\xc0\x01\x12>Service to programmatically interact with calculated channels.\x1a~\n$Read more about calculated channels.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153B\xe6\x01\n\x1f\x63om.sift.calculated_channels.v1B\x17\x43\x61lculatedChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x1aSift.CalculatedChannels.V1\xca\x02\x1aSift\\CalculatedChannels\\V1\xe2\x02&Sift\\CalculatedChannels\\V1\\GPBMetadata\xea\x02\x1cSift::CalculatedChannels::V1\x92\x41\x1f\x12\x1d\n\x1b\x43\x61lculated Channels Serviceb\x06proto3')
22
+
23
+ _globals = globals()
24
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
25
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.calculated_channels.v1.calculated_channels_pb2', _globals)
26
+ if not _descriptor._USE_C_DESCRIPTORS:
27
+ _globals['DESCRIPTOR']._loaded_options = None
28
+ _globals['DESCRIPTOR']._serialized_options = b'\n\037com.sift.calculated_channels.v1B\027CalculatedChannelsProtoP\001\242\002\003SCX\252\002\032Sift.CalculatedChannels.V1\312\002\032Sift\\CalculatedChannels\\V1\342\002&Sift\\CalculatedChannels\\V1\\GPBMetadata\352\002\034Sift::CalculatedChannels::V1\222A\037\022\035\n\033Calculated Channels Service'
29
+ _globals['_EXPRESSIONIDENTIFIERTYPE'].values_by_name["EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED"]._loaded_options = None
30
+ _globals['_EXPRESSIONIDENTIFIERTYPE'].values_by_name["EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED"]._serialized_options = b'\010\001'
31
+ _globals['_EXPRESSIONMODE'].values_by_name["EXPRESSION_MODE_UNSPECIFIED"]._loaded_options = None
32
+ _globals['_EXPRESSIONMODE'].values_by_name["EXPRESSION_MODE_UNSPECIFIED"]._serialized_options = b'\010\001'
33
+ _globals['_EXPRESSIONCHANNELREFERENCE'].fields_by_name['channel_reference']._loaded_options = None
34
+ _globals['_EXPRESSIONCHANNELREFERENCE'].fields_by_name['channel_reference']._serialized_options = b'\340A\002'
35
+ _globals['_EXPRESSIONCHANNELREFERENCE'].fields_by_name['channel_id']._loaded_options = None
36
+ _globals['_EXPRESSIONCHANNELREFERENCE'].fields_by_name['channel_id']._serialized_options = b'\340A\002'
37
+ _globals['_EXPRESSIONREQUEST_CHANNELREFERENCESENTRY']._loaded_options = None
38
+ _globals['_EXPRESSIONREQUEST_CHANNELREFERENCESENTRY']._serialized_options = b'8\001'
39
+ _globals['_EXPRESSIONREQUEST'].fields_by_name['channel_references']._loaded_options = None
40
+ _globals['_EXPRESSIONREQUEST'].fields_by_name['channel_references']._serialized_options = b'\030\001'
41
+ _globals['_EXPRESSIONREQUEST'].fields_by_name['expression']._loaded_options = None
42
+ _globals['_EXPRESSIONREQUEST'].fields_by_name['expression']._serialized_options = b'\340A\002'
43
+ _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST'].fields_by_name['mode']._loaded_options = None
44
+ _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST'].fields_by_name['mode']._serialized_options = b'\340A\002'
45
+ _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE'].fields_by_name['identifiers']._loaded_options = None
46
+ _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE'].fields_by_name['identifiers']._serialized_options = b'\340A\002'
47
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['name']._loaded_options = None
48
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['name']._serialized_options = b'\340A\002'
49
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['description']._loaded_options = None
50
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['description']._serialized_options = b'\340A\002'
51
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['type']._loaded_options = None
52
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['type']._serialized_options = b'\340A\002'
53
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['display_name']._loaded_options = None
54
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['display_name']._serialized_options = b'\340A\002'
55
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['library']._loaded_options = None
56
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['library']._serialized_options = b'\340A\002'
57
+ _globals['_VALIDATEEXPRESSIONREQUEST'].fields_by_name['expression']._loaded_options = None
58
+ _globals['_VALIDATEEXPRESSIONREQUEST'].fields_by_name['expression']._serialized_options = b'\340A\002'
59
+ _globals['_VALIDATEEXPRESSIONREQUEST'].fields_by_name['mode']._loaded_options = None
60
+ _globals['_VALIDATEEXPRESSIONREQUEST'].fields_by_name['mode']._serialized_options = b'\340A\002'
61
+ _globals['_ERRORVALIDATINGEXPRESSIONRESULT'].fields_by_name['error_message']._loaded_options = None
62
+ _globals['_ERRORVALIDATINGEXPRESSIONRESULT'].fields_by_name['error_message']._serialized_options = b'\340A\002'
63
+ _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT'].fields_by_name['data_type']._loaded_options = None
64
+ _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT'].fields_by_name['data_type']._serialized_options = b'\340A\002'
65
+ _globals['_CALCULATEDCHANNELSSERVICE']._loaded_options = None
66
+ _globals['_CALCULATEDCHANNELSSERVICE']._serialized_options = b'\222A\300\001\022>Service to programmatically interact with calculated channels.\032~\n$Read more about calculated channels.\022Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153'
67
+ _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ListExpressionIdentifiers']._loaded_options = None
68
+ _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ListExpressionIdentifiers']._serialized_options = b'\222A\177\022\031ListExpressionIdentifiers\032bRetrieves a list of valid identifiers that can be used as part of a calculated channel expression.\202\323\344\223\0024\0222/api/v1/calculated-channels:expression-identifiers'
69
+ _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ValidateExpression']._loaded_options = None
70
+ _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ValidateExpression']._serialized_options = b'\222Ak\022\022ValidateExpression\032UUsed to validate whether or not an expression used for a calculated channel is valid.\202\323\344\223\0024\"//api/v1/calculated-channels:validate-expression:\001*'
71
+ _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_start=1917
72
+ _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_end=2072
73
+ _globals['_EXPRESSIONIDENTIFIERLIBRARY']._serialized_start=2075
74
+ _globals['_EXPRESSIONIDENTIFIERLIBRARY']._serialized_end=2400
75
+ _globals['_EXPRESSIONMODE']._serialized_start=2403
76
+ _globals['_EXPRESSIONMODE']._serialized_end=2551
77
+ _globals['_EXPRESSIONCHANNELREFERENCE']._serialized_start=242
78
+ _globals['_EXPRESSIONCHANNELREFERENCE']._serialized_end=356
79
+ _globals['_EXPRESSIONREQUEST']._serialized_start=359
80
+ _globals['_EXPRESSIONREQUEST']._serialized_end=732
81
+ _globals['_EXPRESSIONREQUEST_CHANNELREFERENCESENTRY']._serialized_start=664
82
+ _globals['_EXPRESSIONREQUEST_CHANNELREFERENCESENTRY']._serialized_end=732
83
+ _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST']._serialized_start=735
84
+ _globals['_LISTEXPRESSIONIDENTIFIERSREQUEST']._serialized_end=899
85
+ _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE']._serialized_start=901
86
+ _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE']._serialized_end=1026
87
+ _globals['_EXPRESSIONIDENTIFIER']._serialized_start=1029
88
+ _globals['_EXPRESSIONIDENTIFIER']._serialized_end=1324
89
+ _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_start=1327
90
+ _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_end=1509
91
+ _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_start=1512
92
+ _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_end=1728
93
+ _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_start=1730
94
+ _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_end=1805
95
+ _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_start=1807
96
+ _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_end=1914
97
+ _globals['_CALCULATEDCHANNELSSERVICE']._serialized_start=2554
98
+ _globals['_CALCULATEDCHANNELSSERVICE']._serialized_end=3435
99
+ # @@protoc_insertion_point(module_scope)