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,144 @@
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.saved_searches.v1.saved_searches_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 SavedSearchServiceStub:
21
+ def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
22
+ GetSavedSearch: grpc.UnaryUnaryMultiCallable[
23
+ sift.saved_searches.v1.saved_searches_pb2.GetSavedSearchRequest,
24
+ sift.saved_searches.v1.saved_searches_pb2.GetSavedSearchResponse,
25
+ ]
26
+ """Retrieve a saved search."""
27
+
28
+ CreateSavedSearch: grpc.UnaryUnaryMultiCallable[
29
+ sift.saved_searches.v1.saved_searches_pb2.CreateSavedSearchRequest,
30
+ sift.saved_searches.v1.saved_searches_pb2.CreateSavedSearchResponse,
31
+ ]
32
+ """Create a saved search."""
33
+
34
+ ListSavedSearches: grpc.UnaryUnaryMultiCallable[
35
+ sift.saved_searches.v1.saved_searches_pb2.ListSavedSearchesRequest,
36
+ sift.saved_searches.v1.saved_searches_pb2.ListSavedSearchesResponse,
37
+ ]
38
+ """List saved searches."""
39
+
40
+ UpdateSavedSearch: grpc.UnaryUnaryMultiCallable[
41
+ sift.saved_searches.v1.saved_searches_pb2.UpdateSavedSearchRequest,
42
+ sift.saved_searches.v1.saved_searches_pb2.UpdateSavedSearchResponse,
43
+ ]
44
+ """Updates an existing saved search using using the list of fields specified in `update_mask`."""
45
+
46
+ DeleteSavedSearch: grpc.UnaryUnaryMultiCallable[
47
+ sift.saved_searches.v1.saved_searches_pb2.DeleteSavedSearchRequest,
48
+ sift.saved_searches.v1.saved_searches_pb2.DeleteSavedSearchResponse,
49
+ ]
50
+ """Delete a saved search."""
51
+
52
+ BatchDeleteSavedSearches: grpc.UnaryUnaryMultiCallable[
53
+ sift.saved_searches.v1.saved_searches_pb2.BatchDeleteSavedSearchesRequest,
54
+ sift.saved_searches.v1.saved_searches_pb2.BatchDeleteSavedSearchesResponse,
55
+ ]
56
+ """Batch deletes saved searches."""
57
+
58
+ class SavedSearchServiceAsyncStub:
59
+ GetSavedSearch: grpc.aio.UnaryUnaryMultiCallable[
60
+ sift.saved_searches.v1.saved_searches_pb2.GetSavedSearchRequest,
61
+ sift.saved_searches.v1.saved_searches_pb2.GetSavedSearchResponse,
62
+ ]
63
+ """Retrieve a saved search."""
64
+
65
+ CreateSavedSearch: grpc.aio.UnaryUnaryMultiCallable[
66
+ sift.saved_searches.v1.saved_searches_pb2.CreateSavedSearchRequest,
67
+ sift.saved_searches.v1.saved_searches_pb2.CreateSavedSearchResponse,
68
+ ]
69
+ """Create a saved search."""
70
+
71
+ ListSavedSearches: grpc.aio.UnaryUnaryMultiCallable[
72
+ sift.saved_searches.v1.saved_searches_pb2.ListSavedSearchesRequest,
73
+ sift.saved_searches.v1.saved_searches_pb2.ListSavedSearchesResponse,
74
+ ]
75
+ """List saved searches."""
76
+
77
+ UpdateSavedSearch: grpc.aio.UnaryUnaryMultiCallable[
78
+ sift.saved_searches.v1.saved_searches_pb2.UpdateSavedSearchRequest,
79
+ sift.saved_searches.v1.saved_searches_pb2.UpdateSavedSearchResponse,
80
+ ]
81
+ """Updates an existing saved search using using the list of fields specified in `update_mask`."""
82
+
83
+ DeleteSavedSearch: grpc.aio.UnaryUnaryMultiCallable[
84
+ sift.saved_searches.v1.saved_searches_pb2.DeleteSavedSearchRequest,
85
+ sift.saved_searches.v1.saved_searches_pb2.DeleteSavedSearchResponse,
86
+ ]
87
+ """Delete a saved search."""
88
+
89
+ BatchDeleteSavedSearches: grpc.aio.UnaryUnaryMultiCallable[
90
+ sift.saved_searches.v1.saved_searches_pb2.BatchDeleteSavedSearchesRequest,
91
+ sift.saved_searches.v1.saved_searches_pb2.BatchDeleteSavedSearchesResponse,
92
+ ]
93
+ """Batch deletes saved searches."""
94
+
95
+ class SavedSearchServiceServicer(metaclass=abc.ABCMeta):
96
+ @abc.abstractmethod
97
+ def GetSavedSearch(
98
+ self,
99
+ request: sift.saved_searches.v1.saved_searches_pb2.GetSavedSearchRequest,
100
+ context: _ServicerContext,
101
+ ) -> typing.Union[sift.saved_searches.v1.saved_searches_pb2.GetSavedSearchResponse, collections.abc.Awaitable[sift.saved_searches.v1.saved_searches_pb2.GetSavedSearchResponse]]:
102
+ """Retrieve a saved search."""
103
+
104
+ @abc.abstractmethod
105
+ def CreateSavedSearch(
106
+ self,
107
+ request: sift.saved_searches.v1.saved_searches_pb2.CreateSavedSearchRequest,
108
+ context: _ServicerContext,
109
+ ) -> typing.Union[sift.saved_searches.v1.saved_searches_pb2.CreateSavedSearchResponse, collections.abc.Awaitable[sift.saved_searches.v1.saved_searches_pb2.CreateSavedSearchResponse]]:
110
+ """Create a saved search."""
111
+
112
+ @abc.abstractmethod
113
+ def ListSavedSearches(
114
+ self,
115
+ request: sift.saved_searches.v1.saved_searches_pb2.ListSavedSearchesRequest,
116
+ context: _ServicerContext,
117
+ ) -> typing.Union[sift.saved_searches.v1.saved_searches_pb2.ListSavedSearchesResponse, collections.abc.Awaitable[sift.saved_searches.v1.saved_searches_pb2.ListSavedSearchesResponse]]:
118
+ """List saved searches."""
119
+
120
+ @abc.abstractmethod
121
+ def UpdateSavedSearch(
122
+ self,
123
+ request: sift.saved_searches.v1.saved_searches_pb2.UpdateSavedSearchRequest,
124
+ context: _ServicerContext,
125
+ ) -> typing.Union[sift.saved_searches.v1.saved_searches_pb2.UpdateSavedSearchResponse, collections.abc.Awaitable[sift.saved_searches.v1.saved_searches_pb2.UpdateSavedSearchResponse]]:
126
+ """Updates an existing saved search using using the list of fields specified in `update_mask`."""
127
+
128
+ @abc.abstractmethod
129
+ def DeleteSavedSearch(
130
+ self,
131
+ request: sift.saved_searches.v1.saved_searches_pb2.DeleteSavedSearchRequest,
132
+ context: _ServicerContext,
133
+ ) -> typing.Union[sift.saved_searches.v1.saved_searches_pb2.DeleteSavedSearchResponse, collections.abc.Awaitable[sift.saved_searches.v1.saved_searches_pb2.DeleteSavedSearchResponse]]:
134
+ """Delete a saved search."""
135
+
136
+ @abc.abstractmethod
137
+ def BatchDeleteSavedSearches(
138
+ self,
139
+ request: sift.saved_searches.v1.saved_searches_pb2.BatchDeleteSavedSearchesRequest,
140
+ context: _ServicerContext,
141
+ ) -> typing.Union[sift.saved_searches.v1.saved_searches_pb2.BatchDeleteSavedSearchesResponse, collections.abc.Awaitable[sift.saved_searches.v1.saved_searches_pb2.BatchDeleteSavedSearchesResponse]]:
142
+ """Batch deletes saved searches."""
143
+
144
+ def add_SavedSearchServiceServicer_to_server(servicer: SavedSearchServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
sift/tags/__init__.py ADDED
File without changes
File without changes
@@ -0,0 +1,49 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: sift/tags/v1/tags.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 field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
16
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
17
+
18
+
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/tags/v1/tags.proto\x12\x0csift.tags.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd8\x02\n\x03Tag\x12\x1a\n\x06tag_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05tagId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x30\n\x12\x63reated_by_user_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\"=\n\x06TagRef\x12\x1a\n\x06tag_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x05tagId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x04nameBo\n\x10\x63om.sift.tags.v1B\tTagsProtoP\x01\xa2\x02\x03STX\xaa\x02\x0cSift.Tags.V1\xca\x02\x0cSift\\Tags\\V1\xe2\x02\x18Sift\\Tags\\V1\\GPBMetadata\xea\x02\x0eSift::Tags::V1b\x06proto3')
20
+
21
+ _globals = globals()
22
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
23
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.tags.v1.tags_pb2', _globals)
24
+ if not _descriptor._USE_C_DESCRIPTORS:
25
+ _globals['DESCRIPTOR']._loaded_options = None
26
+ _globals['DESCRIPTOR']._serialized_options = b'\n\020com.sift.tags.v1B\tTagsProtoP\001\242\002\003STX\252\002\014Sift.Tags.V1\312\002\014Sift\\Tags\\V1\342\002\030Sift\\Tags\\V1\\GPBMetadata\352\002\016Sift::Tags::V1'
27
+ _globals['_TAG'].fields_by_name['tag_id']._loaded_options = None
28
+ _globals['_TAG'].fields_by_name['tag_id']._serialized_options = b'\340A\002'
29
+ _globals['_TAG'].fields_by_name['name']._loaded_options = None
30
+ _globals['_TAG'].fields_by_name['name']._serialized_options = b'\340A\002'
31
+ _globals['_TAG'].fields_by_name['organization_id']._loaded_options = None
32
+ _globals['_TAG'].fields_by_name['organization_id']._serialized_options = b'\340A\002'
33
+ _globals['_TAG'].fields_by_name['created_by_user_id']._loaded_options = None
34
+ _globals['_TAG'].fields_by_name['created_by_user_id']._serialized_options = b'\340A\002'
35
+ _globals['_TAG'].fields_by_name['modified_by_user_id']._loaded_options = None
36
+ _globals['_TAG'].fields_by_name['modified_by_user_id']._serialized_options = b'\340A\002'
37
+ _globals['_TAG'].fields_by_name['created_date']._loaded_options = None
38
+ _globals['_TAG'].fields_by_name['created_date']._serialized_options = b'\340A\002'
39
+ _globals['_TAG'].fields_by_name['modified_date']._loaded_options = None
40
+ _globals['_TAG'].fields_by_name['modified_date']._serialized_options = b'\340A\002'
41
+ _globals['_TAGREF'].fields_by_name['tag_id']._loaded_options = None
42
+ _globals['_TAGREF'].fields_by_name['tag_id']._serialized_options = b'\340A\001'
43
+ _globals['_TAGREF'].fields_by_name['name']._loaded_options = None
44
+ _globals['_TAGREF'].fields_by_name['name']._serialized_options = b'\340A\001'
45
+ _globals['_TAG']._serialized_start=108
46
+ _globals['_TAG']._serialized_end=452
47
+ _globals['_TAGREF']._serialized_start=454
48
+ _globals['_TAGREF']._serialized_end=515
49
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,71 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.message
9
+ import google.protobuf.timestamp_pb2
10
+ import typing
11
+
12
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
13
+
14
+ @typing.final
15
+ class Tag(google.protobuf.message.Message):
16
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
17
+
18
+ TAG_ID_FIELD_NUMBER: builtins.int
19
+ NAME_FIELD_NUMBER: builtins.int
20
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
21
+ CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int
22
+ MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int
23
+ CREATED_DATE_FIELD_NUMBER: builtins.int
24
+ MODIFIED_DATE_FIELD_NUMBER: builtins.int
25
+ tag_id: builtins.str
26
+ name: builtins.str
27
+ organization_id: builtins.str
28
+ created_by_user_id: builtins.str
29
+ modified_by_user_id: builtins.str
30
+ @property
31
+ def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
32
+ @property
33
+ def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
34
+ def __init__(
35
+ self,
36
+ *,
37
+ tag_id: builtins.str = ...,
38
+ name: builtins.str = ...,
39
+ organization_id: builtins.str = ...,
40
+ created_by_user_id: builtins.str = ...,
41
+ modified_by_user_id: builtins.str = ...,
42
+ created_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
43
+ modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
44
+ ) -> None: ...
45
+ def HasField(self, field_name: typing.Literal["created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ...
46
+ def ClearField(self, field_name: typing.Literal["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", "tag_id", b"tag_id"]) -> None: ...
47
+
48
+ global___Tag = Tag
49
+
50
+ @typing.final
51
+ class TagRef(google.protobuf.message.Message):
52
+ """Points to a tag by name or tag_id.
53
+ When this message is used for a request, you can use either name or tag_id to refer to a tag.
54
+ When this message is returned in a response, both of the fields will be populated and valid.
55
+ """
56
+
57
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
58
+
59
+ TAG_ID_FIELD_NUMBER: builtins.int
60
+ NAME_FIELD_NUMBER: builtins.int
61
+ tag_id: builtins.str
62
+ name: builtins.str
63
+ def __init__(
64
+ self,
65
+ *,
66
+ tag_id: builtins.str = ...,
67
+ name: builtins.str = ...,
68
+ ) -> None: ...
69
+ def ClearField(self, field_name: typing.Literal["name", b"name", "tag_id", b"tag_id"]) -> None: ...
70
+
71
+ global___TagRef = TagRef
@@ -0,0 +1,4 @@
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
+
@@ -0,0 +1,17 @@
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 typing
11
+
12
+ _T = typing.TypeVar("_T")
13
+
14
+ class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ...
15
+
16
+ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg]
17
+ ...
sift/users/__init__.py ADDED
File without changes
File without changes
@@ -0,0 +1,61 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: sift/users/v2/users.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 user_pb2 as sift_dot_common_dot_type_dot_v1_dot_user__pb2
19
+
20
+
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/users/v2/users.proto\x12\rsift.users.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1esift/common/type/v1/user.proto\"\x7f\n#UpdateUserOrganizationActiveRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\x16\n\x06\x61\x63tive\x18\x03 \x01(\x08R\x06\x61\x63tive\"&\n$UpdateUserOrganizationActiveResponse\".\n\x0eGetUserRequest\x12\x1c\n\x07user_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06userId\"@\n\x0fGetUserResponse\x12-\n\x04user\x18\x01 \x01(\x0b\x32\x19.sift.common.type.v1.UserR\x04user\"\xa9\x01\n\x16ListActiveUsersRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"r\n\x17ListActiveUsersResponse\x12/\n\x05users\x18\x01 \x03(\x0b\x32\x19.sift.common.type.v1.UserR\x05users\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken2\x98\x05\n\x0bUserService\x12\x96\x02\n\x1cUpdateUserOrganizationActive\x12\x32.sift.users.v2.UpdateUserOrganizationActiveRequest\x1a\x33.sift.users.v2.UpdateUserOrganizationActiveResponse\"\x8c\x01\x92\x41`\x12\x1cUpdateUserOrganizationActive\x1a@Used to toggle a user\'s active status within their organization.\x82\xd3\xe4\x93\x02#\"\x1e/api/v2/users/{user_id}/active:\x01*\x12\x8f\x01\n\x07GetUser\x12\x1d.sift.users.v2.GetUserRequest\x1a\x1e.sift.users.v2.GetUserResponse\"E\x92\x41#\x12\x07GetUser\x1a\x18Retrieves a user object.\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v2/users/{user_id}\x12\x9f\x01\n\x0fListActiveUsers\x12%.sift.users.v2.ListActiveUsersRequest\x1a&.sift.users.v2.ListActiveUsersResponse\"=\x92\x41%\x12\x0fListActiveUsers\x1a\x12List active users.\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v2/users\x1a<\x92\x41\x39\x12\x37Service to programmatically interact with user objects.B\x88\x01\n\x11\x63om.sift.users.v2B\nUsersProtoP\x01\xa2\x02\x03SUX\xaa\x02\rSift.Users.V2\xca\x02\rSift\\Users\\V2\xe2\x02\x19Sift\\Users\\V2\\GPBMetadata\xea\x02\x0fSift::Users::V2\x92\x41\x10\x12\x0e\n\x0cUser Serviceb\x06proto3')
22
+
23
+ _globals = globals()
24
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
25
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.users.v2.users_pb2', _globals)
26
+ if not _descriptor._USE_C_DESCRIPTORS:
27
+ _globals['DESCRIPTOR']._loaded_options = None
28
+ _globals['DESCRIPTOR']._serialized_options = b'\n\021com.sift.users.v2B\nUsersProtoP\001\242\002\003SUX\252\002\rSift.Users.V2\312\002\rSift\\Users\\V2\342\002\031Sift\\Users\\V2\\GPBMetadata\352\002\017Sift::Users::V2\222A\020\022\016\n\014User Service'
29
+ _globals['_GETUSERREQUEST'].fields_by_name['user_id']._loaded_options = None
30
+ _globals['_GETUSERREQUEST'].fields_by_name['user_id']._serialized_options = b'\340A\002'
31
+ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['page_size']._loaded_options = None
32
+ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001'
33
+ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['page_token']._loaded_options = None
34
+ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001'
35
+ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['filter']._loaded_options = None
36
+ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001'
37
+ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['organization_id']._loaded_options = None
38
+ _globals['_LISTACTIVEUSERSREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001'
39
+ _globals['_USERSERVICE']._loaded_options = None
40
+ _globals['_USERSERVICE']._serialized_options = b'\222A9\0227Service to programmatically interact with user objects.'
41
+ _globals['_USERSERVICE'].methods_by_name['UpdateUserOrganizationActive']._loaded_options = None
42
+ _globals['_USERSERVICE'].methods_by_name['UpdateUserOrganizationActive']._serialized_options = b'\222A`\022\034UpdateUserOrganizationActive\032@Used to toggle a user\'s active status within their organization.\202\323\344\223\002#\"\036/api/v2/users/{user_id}/active:\001*'
43
+ _globals['_USERSERVICE'].methods_by_name['GetUser']._loaded_options = None
44
+ _globals['_USERSERVICE'].methods_by_name['GetUser']._serialized_options = b'\222A#\022\007GetUser\032\030Retrieves a user object.\202\323\344\223\002\031\022\027/api/v2/users/{user_id}'
45
+ _globals['_USERSERVICE'].methods_by_name['ListActiveUsers']._loaded_options = None
46
+ _globals['_USERSERVICE'].methods_by_name['ListActiveUsers']._serialized_options = b'\222A%\022\017ListActiveUsers\032\022List active users.\202\323\344\223\002\017\022\r/api/v2/users'
47
+ _globals['_UPDATEUSERORGANIZATIONACTIVEREQUEST']._serialized_start=187
48
+ _globals['_UPDATEUSERORGANIZATIONACTIVEREQUEST']._serialized_end=314
49
+ _globals['_UPDATEUSERORGANIZATIONACTIVERESPONSE']._serialized_start=316
50
+ _globals['_UPDATEUSERORGANIZATIONACTIVERESPONSE']._serialized_end=354
51
+ _globals['_GETUSERREQUEST']._serialized_start=356
52
+ _globals['_GETUSERREQUEST']._serialized_end=402
53
+ _globals['_GETUSERRESPONSE']._serialized_start=404
54
+ _globals['_GETUSERRESPONSE']._serialized_end=468
55
+ _globals['_LISTACTIVEUSERSREQUEST']._serialized_start=471
56
+ _globals['_LISTACTIVEUSERSREQUEST']._serialized_end=640
57
+ _globals['_LISTACTIVEUSERSRESPONSE']._serialized_start=642
58
+ _globals['_LISTACTIVEUSERSRESPONSE']._serialized_end=756
59
+ _globals['_USERSERVICE']._serialized_start=759
60
+ _globals['_USERSERVICE']._serialized_end=1423
61
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,142 @@
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.internal.containers
10
+ import google.protobuf.message
11
+ import sift.common.type.v1.user_pb2
12
+ import typing
13
+
14
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
15
+
16
+ @typing.final
17
+ class UpdateUserOrganizationActiveRequest(google.protobuf.message.Message):
18
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
19
+
20
+ USER_ID_FIELD_NUMBER: builtins.int
21
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
22
+ ACTIVE_FIELD_NUMBER: builtins.int
23
+ user_id: builtins.str
24
+ organization_id: builtins.str
25
+ active: builtins.bool
26
+ def __init__(
27
+ self,
28
+ *,
29
+ user_id: builtins.str = ...,
30
+ organization_id: builtins.str = ...,
31
+ active: builtins.bool = ...,
32
+ ) -> None: ...
33
+ def ClearField(self, field_name: typing.Literal["active", b"active", "organization_id", b"organization_id", "user_id", b"user_id"]) -> None: ...
34
+
35
+ global___UpdateUserOrganizationActiveRequest = UpdateUserOrganizationActiveRequest
36
+
37
+ @typing.final
38
+ class UpdateUserOrganizationActiveResponse(google.protobuf.message.Message):
39
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
40
+
41
+ def __init__(
42
+ self,
43
+ ) -> None: ...
44
+
45
+ global___UpdateUserOrganizationActiveResponse = UpdateUserOrganizationActiveResponse
46
+
47
+ @typing.final
48
+ class GetUserRequest(google.protobuf.message.Message):
49
+ """The request for a call to retrieve a single existing user by its user_id."""
50
+
51
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
52
+
53
+ USER_ID_FIELD_NUMBER: builtins.int
54
+ user_id: builtins.str
55
+ """The id of the asset to be retrieved. Required."""
56
+ def __init__(
57
+ self,
58
+ *,
59
+ user_id: builtins.str = ...,
60
+ ) -> None: ...
61
+ def ClearField(self, field_name: typing.Literal["user_id", b"user_id"]) -> None: ...
62
+
63
+ global___GetUserRequest = GetUserRequest
64
+
65
+ @typing.final
66
+ class GetUserResponse(google.protobuf.message.Message):
67
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
68
+
69
+ USER_FIELD_NUMBER: builtins.int
70
+ @property
71
+ def user(self) -> sift.common.type.v1.user_pb2.User: ...
72
+ def __init__(
73
+ self,
74
+ *,
75
+ user: sift.common.type.v1.user_pb2.User | None = ...,
76
+ ) -> None: ...
77
+ def HasField(self, field_name: typing.Literal["user", b"user"]) -> builtins.bool: ...
78
+ def ClearField(self, field_name: typing.Literal["user", b"user"]) -> None: ...
79
+
80
+ global___GetUserResponse = GetUserResponse
81
+
82
+ @typing.final
83
+ class ListActiveUsersRequest(google.protobuf.message.Message):
84
+ """The request for a call to `UserService_ListActiveUsers` to retrieve users."""
85
+
86
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
87
+
88
+ PAGE_SIZE_FIELD_NUMBER: builtins.int
89
+ PAGE_TOKEN_FIELD_NUMBER: builtins.int
90
+ FILTER_FIELD_NUMBER: builtins.int
91
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
92
+ page_size: builtins.int
93
+ """The maximum number of users to return. The service may return fewer than this value.
94
+ If unspecified, at most 50 users will be returned. The maximum value is 1000; values above
95
+ 1000 will be coerced to 1000. Optional.
96
+ """
97
+ page_token: builtins.str
98
+ """A page token, received from a previous `ListActiveUsers` call.
99
+ Provide this to retrieve the subsequent page.
100
+ When paginating, all other parameters provided to `ListActiveUsers` must match
101
+ the call that provided the page token. Optional.
102
+ """
103
+ filter: builtins.str
104
+ """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.
105
+ Available fields to filter by are `user_id` and `name`.
106
+ 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).
107
+ For more information about the fields used for filtering, please refer to [this definition](/api/grpc/protocol_buffers/users#user). Optional.
108
+ """
109
+ organization_id: builtins.str
110
+ """Optional. If provided, this will scope down the user search to just those in the organization ID provided."""
111
+ def __init__(
112
+ self,
113
+ *,
114
+ page_size: builtins.int = ...,
115
+ page_token: builtins.str = ...,
116
+ filter: builtins.str = ...,
117
+ organization_id: builtins.str = ...,
118
+ ) -> None: ...
119
+ def ClearField(self, field_name: typing.Literal["filter", b"filter", "organization_id", b"organization_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...
120
+
121
+ global___ListActiveUsersRequest = ListActiveUsersRequest
122
+
123
+ @typing.final
124
+ class ListActiveUsersResponse(google.protobuf.message.Message):
125
+ """The response of a call to `UserService_ListActiveUsersResponse`."""
126
+
127
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
128
+
129
+ USERS_FIELD_NUMBER: builtins.int
130
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
131
+ next_page_token: builtins.str
132
+ @property
133
+ def users(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.type.v1.user_pb2.User]: ...
134
+ def __init__(
135
+ self,
136
+ *,
137
+ users: collections.abc.Iterable[sift.common.type.v1.user_pb2.User] | None = ...,
138
+ next_page_token: builtins.str = ...,
139
+ ) -> None: ...
140
+ def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "users", b"users"]) -> None: ...
141
+
142
+ global___ListActiveUsersResponse = ListActiveUsersResponse
@@ -0,0 +1,135 @@
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.users.v2 import users_pb2 as sift_dot_users_dot_v2_dot_users__pb2
6
+
7
+
8
+ class UserServiceStub(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.UpdateUserOrganizationActive = channel.unary_unary(
18
+ '/sift.users.v2.UserService/UpdateUserOrganizationActive',
19
+ request_serializer=sift_dot_users_dot_v2_dot_users__pb2.UpdateUserOrganizationActiveRequest.SerializeToString,
20
+ response_deserializer=sift_dot_users_dot_v2_dot_users__pb2.UpdateUserOrganizationActiveResponse.FromString,
21
+ )
22
+ self.GetUser = channel.unary_unary(
23
+ '/sift.users.v2.UserService/GetUser',
24
+ request_serializer=sift_dot_users_dot_v2_dot_users__pb2.GetUserRequest.SerializeToString,
25
+ response_deserializer=sift_dot_users_dot_v2_dot_users__pb2.GetUserResponse.FromString,
26
+ )
27
+ self.ListActiveUsers = channel.unary_unary(
28
+ '/sift.users.v2.UserService/ListActiveUsers',
29
+ request_serializer=sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersRequest.SerializeToString,
30
+ response_deserializer=sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersResponse.FromString,
31
+ )
32
+
33
+
34
+ class UserServiceServicer(object):
35
+ """Missing associated documentation comment in .proto file."""
36
+
37
+ def UpdateUserOrganizationActive(self, request, context):
38
+ """Used to toggle a user's active status within their organization.
39
+ """
40
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
41
+ context.set_details('Method not implemented!')
42
+ raise NotImplementedError('Method not implemented!')
43
+
44
+ def GetUser(self, request, context):
45
+ """Retrieves a user object.
46
+ """
47
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
48
+ context.set_details('Method not implemented!')
49
+ raise NotImplementedError('Method not implemented!')
50
+
51
+ def ListActiveUsers(self, request, context):
52
+ """List active users.
53
+ """
54
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
55
+ context.set_details('Method not implemented!')
56
+ raise NotImplementedError('Method not implemented!')
57
+
58
+
59
+ def add_UserServiceServicer_to_server(servicer, server):
60
+ rpc_method_handlers = {
61
+ 'UpdateUserOrganizationActive': grpc.unary_unary_rpc_method_handler(
62
+ servicer.UpdateUserOrganizationActive,
63
+ request_deserializer=sift_dot_users_dot_v2_dot_users__pb2.UpdateUserOrganizationActiveRequest.FromString,
64
+ response_serializer=sift_dot_users_dot_v2_dot_users__pb2.UpdateUserOrganizationActiveResponse.SerializeToString,
65
+ ),
66
+ 'GetUser': grpc.unary_unary_rpc_method_handler(
67
+ servicer.GetUser,
68
+ request_deserializer=sift_dot_users_dot_v2_dot_users__pb2.GetUserRequest.FromString,
69
+ response_serializer=sift_dot_users_dot_v2_dot_users__pb2.GetUserResponse.SerializeToString,
70
+ ),
71
+ 'ListActiveUsers': grpc.unary_unary_rpc_method_handler(
72
+ servicer.ListActiveUsers,
73
+ request_deserializer=sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersRequest.FromString,
74
+ response_serializer=sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersResponse.SerializeToString,
75
+ ),
76
+ }
77
+ generic_handler = grpc.method_handlers_generic_handler(
78
+ 'sift.users.v2.UserService', rpc_method_handlers)
79
+ server.add_generic_rpc_handlers((generic_handler,))
80
+
81
+
82
+ # This class is part of an EXPERIMENTAL API.
83
+ class UserService(object):
84
+ """Missing associated documentation comment in .proto file."""
85
+
86
+ @staticmethod
87
+ def UpdateUserOrganizationActive(request,
88
+ target,
89
+ options=(),
90
+ channel_credentials=None,
91
+ call_credentials=None,
92
+ insecure=False,
93
+ compression=None,
94
+ wait_for_ready=None,
95
+ timeout=None,
96
+ metadata=None):
97
+ return grpc.experimental.unary_unary(request, target, '/sift.users.v2.UserService/UpdateUserOrganizationActive',
98
+ sift_dot_users_dot_v2_dot_users__pb2.UpdateUserOrganizationActiveRequest.SerializeToString,
99
+ sift_dot_users_dot_v2_dot_users__pb2.UpdateUserOrganizationActiveResponse.FromString,
100
+ options, channel_credentials,
101
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
102
+
103
+ @staticmethod
104
+ def GetUser(request,
105
+ target,
106
+ options=(),
107
+ channel_credentials=None,
108
+ call_credentials=None,
109
+ insecure=False,
110
+ compression=None,
111
+ wait_for_ready=None,
112
+ timeout=None,
113
+ metadata=None):
114
+ return grpc.experimental.unary_unary(request, target, '/sift.users.v2.UserService/GetUser',
115
+ sift_dot_users_dot_v2_dot_users__pb2.GetUserRequest.SerializeToString,
116
+ sift_dot_users_dot_v2_dot_users__pb2.GetUserResponse.FromString,
117
+ options, channel_credentials,
118
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
119
+
120
+ @staticmethod
121
+ def ListActiveUsers(request,
122
+ target,
123
+ options=(),
124
+ channel_credentials=None,
125
+ call_credentials=None,
126
+ insecure=False,
127
+ compression=None,
128
+ wait_for_ready=None,
129
+ timeout=None,
130
+ metadata=None):
131
+ return grpc.experimental.unary_unary(request, target, '/sift.users.v2.UserService/ListActiveUsers',
132
+ sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersRequest.SerializeToString,
133
+ sift_dot_users_dot_v2_dot_users__pb2.ListActiveUsersResponse.FromString,
134
+ options, channel_credentials,
135
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)