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,64 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: sift/notifications/v1/notifications.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 google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2
18
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
19
+ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
20
+
21
+
22
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)sift/notifications/v1/notifications.proto\x12\x15sift.notifications.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xad\x04\n\x0cNotification\x12\'\n\x0fnotification_id\x18\x01 \x01(\tR\x0enotificationId\x12=\n\x0c\x63reated_date\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0b\x63reatedDate\x12?\n\rmodified_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0cmodifiedDate\x12+\n\x12\x63reated_by_user_id\x18\x04 \x01(\tR\x0f\x63reatedByUserId\x12-\n\x13modified_by_user_id\x18\x05 \x01(\tR\x10modifiedByUserId\x12\'\n\x0forganization_id\x18\x06 \x01(\tR\x0eorganizationId\x12*\n\x11recipient_user_id\x18\x07 \x01(\tR\x0frecipientUserId\x12\x17\n\x07is_read\x18\x08 \x01(\x08R\x06isRead\x12\x1b\n\tfull_link\x18\t \x01(\tR\x08\x66ullLink\x12T\n\x11notification_type\x18\n \x01(\x0e\x32\'.sift.notifications.v1.NotificationKindR\x10notificationType\x12\x1a\n\x08\x63ontents\x18\x0b \x01(\tR\x08\x63ontents\x12\x1b\n\tentity_id\x18\x0c \x01(\tR\x08\x65ntityId\"}\n\x18ListNotificationsRequest\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\"\x8e\x01\n\x19ListNotificationsResponse\x12I\n\rnotifications\x18\x01 \x03(\x0b\x32#.sift.notifications.v1.NotificationR\rnotifications\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"t\n\x1f\x42\x61tchUpdateNotificationsRequest\x12Q\n\x08requests\x18\x01 \x03(\x0b\x32\x30.sift.notifications.v1.UpdateNotificationRequestB\x03\xe0\x41\x02R\x08requests\"\xab\x01\n\x19UpdateNotificationRequest\x12L\n\x0cnotification\x18\x01 \x01(\x0b\x32#.sift.notifications.v1.NotificationB\x03\xe0\x41\x02R\x0cnotification\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"m\n BatchUpdateNotificationsResponse\x12I\n\rnotifications\x18\x01 \x03(\x0b\x32#.sift.notifications.v1.NotificationR\rnotifications*\xb2\x02\n\x10NotificationKind\x12!\n\x1dNOTIFICATION_KIND_UNSPECIFIED\x10\x00\x12\x1a\n\x16NOTIFICATION_KIND_TEXT\x10\x01\x12)\n%NOTIFICATION_KIND_ANNOTATION_ASSIGNED\x10\x02\x12\x35\n1NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT\x10\x03\x12)\n%NOTIFICATION_KIND_CONDITION_TRIGGERED\x10\x04\x12.\n*NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED\x10\x05\x12\"\n\x1eNOTIFICATION_KIND_REPORT_READY\x10\x06\x32\x85\x05\n\x13NotificationService\x12\xde\x01\n\x11ListNotifications\x12/.sift.notifications.v1.ListNotificationsRequest\x1a\x30.sift.notifications.v1.ListNotificationsResponse\"f\x92\x41\x46\x12\x11ListNotifications\x1a\x31Retrieves notifications using an optional filter.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/notifications\x12\xc6\x02\n\x18\x42\x61tchUpdateNotifications\x12\x36.sift.notifications.v1.BatchUpdateNotificationsRequest\x1a\x37.sift.notifications.v1.BatchUpdateNotificationsResponse\"\xb8\x01\x92\x41\x88\x01\x12\x18\x42\x61tchUpdateNotifications\x1alBatch updates a list of notifications using the list of fields specified in their respective `update_mask`s.\x82\xd3\xe4\x93\x02&\"!/api/v1/notifications:batchUpdate:\x01*\x1a\x44\x92\x41\x41\x12?Service to programmatically interact with in-app notifications.B\xc0\x01\n\x19\x63om.sift.notifications.v1B\x12NotificationsProtoP\x01\xa2\x02\x03SNX\xaa\x02\x15Sift.Notifications.V1\xca\x02\x15Sift\\Notifications\\V1\xe2\x02!Sift\\Notifications\\V1\\GPBMetadata\xea\x02\x17Sift::Notifications::V1\x92\x41\x18\x12\x16\n\x14Notification Serviceb\x06proto3')
23
+
24
+ _globals = globals()
25
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
26
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.notifications.v1.notifications_pb2', _globals)
27
+ if not _descriptor._USE_C_DESCRIPTORS:
28
+ _globals['DESCRIPTOR']._loaded_options = None
29
+ _globals['DESCRIPTOR']._serialized_options = b'\n\031com.sift.notifications.v1B\022NotificationsProtoP\001\242\002\003SNX\252\002\025Sift.Notifications.V1\312\002\025Sift\\Notifications\\V1\342\002!Sift\\Notifications\\V1\\GPBMetadata\352\002\027Sift::Notifications::V1\222A\030\022\026\n\024Notification Service'
30
+ _globals['_LISTNOTIFICATIONSREQUEST'].fields_by_name['page_size']._loaded_options = None
31
+ _globals['_LISTNOTIFICATIONSREQUEST'].fields_by_name['page_size']._serialized_options = b'\340A\001'
32
+ _globals['_LISTNOTIFICATIONSREQUEST'].fields_by_name['page_token']._loaded_options = None
33
+ _globals['_LISTNOTIFICATIONSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001'
34
+ _globals['_LISTNOTIFICATIONSREQUEST'].fields_by_name['filter']._loaded_options = None
35
+ _globals['_LISTNOTIFICATIONSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001'
36
+ _globals['_BATCHUPDATENOTIFICATIONSREQUEST'].fields_by_name['requests']._loaded_options = None
37
+ _globals['_BATCHUPDATENOTIFICATIONSREQUEST'].fields_by_name['requests']._serialized_options = b'\340A\002'
38
+ _globals['_UPDATENOTIFICATIONREQUEST'].fields_by_name['notification']._loaded_options = None
39
+ _globals['_UPDATENOTIFICATIONREQUEST'].fields_by_name['notification']._serialized_options = b'\340A\002'
40
+ _globals['_UPDATENOTIFICATIONREQUEST'].fields_by_name['update_mask']._loaded_options = None
41
+ _globals['_UPDATENOTIFICATIONREQUEST'].fields_by_name['update_mask']._serialized_options = b'\340A\002'
42
+ _globals['_NOTIFICATIONSERVICE']._loaded_options = None
43
+ _globals['_NOTIFICATIONSERVICE']._serialized_options = b'\222AA\022?Service to programmatically interact with in-app notifications.'
44
+ _globals['_NOTIFICATIONSERVICE'].methods_by_name['ListNotifications']._loaded_options = None
45
+ _globals['_NOTIFICATIONSERVICE'].methods_by_name['ListNotifications']._serialized_options = b'\222AF\022\021ListNotifications\0321Retrieves notifications using an optional filter.\202\323\344\223\002\027\022\025/api/v1/notifications'
46
+ _globals['_NOTIFICATIONSERVICE'].methods_by_name['BatchUpdateNotifications']._loaded_options = None
47
+ _globals['_NOTIFICATIONSERVICE'].methods_by_name['BatchUpdateNotifications']._serialized_options = b'\222A\210\001\022\030BatchUpdateNotifications\032lBatch updates a list of notifications using the list of fields specified in their respective `update_mask`s.\202\323\344\223\002&\"!/api/v1/notifications:batchUpdate:\001*'
48
+ _globals['_NOTIFICATIONKIND']._serialized_start=1482
49
+ _globals['_NOTIFICATIONKIND']._serialized_end=1788
50
+ _globals['_NOTIFICATION']._serialized_start=247
51
+ _globals['_NOTIFICATION']._serialized_end=804
52
+ _globals['_LISTNOTIFICATIONSREQUEST']._serialized_start=806
53
+ _globals['_LISTNOTIFICATIONSREQUEST']._serialized_end=931
54
+ _globals['_LISTNOTIFICATIONSRESPONSE']._serialized_start=934
55
+ _globals['_LISTNOTIFICATIONSRESPONSE']._serialized_end=1076
56
+ _globals['_BATCHUPDATENOTIFICATIONSREQUEST']._serialized_start=1078
57
+ _globals['_BATCHUPDATENOTIFICATIONSREQUEST']._serialized_end=1194
58
+ _globals['_UPDATENOTIFICATIONREQUEST']._serialized_start=1197
59
+ _globals['_UPDATENOTIFICATIONREQUEST']._serialized_end=1368
60
+ _globals['_BATCHUPDATENOTIFICATIONSRESPONSE']._serialized_start=1370
61
+ _globals['_BATCHUPDATENOTIFICATIONSRESPONSE']._serialized_end=1479
62
+ _globals['_NOTIFICATIONSERVICE']._serialized_start=1791
63
+ _globals['_NOTIFICATIONSERVICE']._serialized_end=2436
64
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,225 @@
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.internal.enum_type_wrapper
12
+ import google.protobuf.message
13
+ import google.protobuf.timestamp_pb2
14
+ import sys
15
+ import typing
16
+
17
+ if sys.version_info >= (3, 10):
18
+ import typing as typing_extensions
19
+ else:
20
+ import typing_extensions
21
+
22
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
23
+
24
+ class _NotificationKind:
25
+ ValueType = typing.NewType("ValueType", builtins.int)
26
+ V: typing_extensions.TypeAlias = ValueType
27
+
28
+ class _NotificationKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NotificationKind.ValueType], builtins.type):
29
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
30
+ NOTIFICATION_KIND_UNSPECIFIED: _NotificationKind.ValueType # 0
31
+ NOTIFICATION_KIND_TEXT: _NotificationKind.ValueType # 1
32
+ NOTIFICATION_KIND_ANNOTATION_ASSIGNED: _NotificationKind.ValueType # 2
33
+ NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT: _NotificationKind.ValueType # 3
34
+ NOTIFICATION_KIND_CONDITION_TRIGGERED: _NotificationKind.ValueType # 4
35
+ NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED: _NotificationKind.ValueType # 5
36
+ NOTIFICATION_KIND_REPORT_READY: _NotificationKind.ValueType # 6
37
+
38
+ class NotificationKind(_NotificationKind, metaclass=_NotificationKindEnumTypeWrapper): ...
39
+
40
+ NOTIFICATION_KIND_UNSPECIFIED: NotificationKind.ValueType # 0
41
+ NOTIFICATION_KIND_TEXT: NotificationKind.ValueType # 1
42
+ NOTIFICATION_KIND_ANNOTATION_ASSIGNED: NotificationKind.ValueType # 2
43
+ NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT: NotificationKind.ValueType # 3
44
+ NOTIFICATION_KIND_CONDITION_TRIGGERED: NotificationKind.ValueType # 4
45
+ NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED: NotificationKind.ValueType # 5
46
+ NOTIFICATION_KIND_REPORT_READY: NotificationKind.ValueType # 6
47
+ global___NotificationKind = NotificationKind
48
+
49
+ @typing.final
50
+ class Notification(google.protobuf.message.Message):
51
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
52
+
53
+ NOTIFICATION_ID_FIELD_NUMBER: builtins.int
54
+ CREATED_DATE_FIELD_NUMBER: builtins.int
55
+ MODIFIED_DATE_FIELD_NUMBER: builtins.int
56
+ CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int
57
+ MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int
58
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
59
+ RECIPIENT_USER_ID_FIELD_NUMBER: builtins.int
60
+ IS_READ_FIELD_NUMBER: builtins.int
61
+ FULL_LINK_FIELD_NUMBER: builtins.int
62
+ NOTIFICATION_TYPE_FIELD_NUMBER: builtins.int
63
+ CONTENTS_FIELD_NUMBER: builtins.int
64
+ ENTITY_ID_FIELD_NUMBER: builtins.int
65
+ notification_id: builtins.str
66
+ created_by_user_id: builtins.str
67
+ modified_by_user_id: builtins.str
68
+ organization_id: builtins.str
69
+ recipient_user_id: builtins.str
70
+ is_read: builtins.bool
71
+ full_link: builtins.str
72
+ notification_type: global___NotificationKind.ValueType
73
+ contents: builtins.str
74
+ entity_id: builtins.str
75
+ @property
76
+ def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
77
+ @property
78
+ def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
79
+ def __init__(
80
+ self,
81
+ *,
82
+ notification_id: builtins.str = ...,
83
+ created_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
84
+ modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
85
+ created_by_user_id: builtins.str = ...,
86
+ modified_by_user_id: builtins.str = ...,
87
+ organization_id: builtins.str = ...,
88
+ recipient_user_id: builtins.str = ...,
89
+ is_read: builtins.bool = ...,
90
+ full_link: builtins.str = ...,
91
+ notification_type: global___NotificationKind.ValueType = ...,
92
+ contents: builtins.str = ...,
93
+ entity_id: builtins.str = ...,
94
+ ) -> None: ...
95
+ def HasField(self, field_name: typing.Literal["created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ...
96
+ def ClearField(self, field_name: typing.Literal["contents", b"contents", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "entity_id", b"entity_id", "full_link", b"full_link", "is_read", b"is_read", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "notification_id", b"notification_id", "notification_type", b"notification_type", "organization_id", b"organization_id", "recipient_user_id", b"recipient_user_id"]) -> None: ...
97
+
98
+ global___Notification = Notification
99
+
100
+ @typing.final
101
+ class ListNotificationsRequest(google.protobuf.message.Message):
102
+ """The request for a call to `NotificationService_ListNotifications` to retrieve notifications."""
103
+
104
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
105
+
106
+ PAGE_SIZE_FIELD_NUMBER: builtins.int
107
+ PAGE_TOKEN_FIELD_NUMBER: builtins.int
108
+ FILTER_FIELD_NUMBER: builtins.int
109
+ page_size: builtins.int
110
+ """The maximum number of notifications to return.
111
+ The service may return fewer than this value.
112
+ If unspecified, at most 50 notifications will be returned.
113
+ The maximum value is 1000; values above 1000 will be coerced to 1000.
114
+ """
115
+ page_token: builtins.str
116
+ """A page token, received from a previous `ListNotifications` call.
117
+ Provide this to retrieve the subsequent page.
118
+ When paginating, all other parameters provided to `ListNotifications` must match
119
+ the call that provided the page token.
120
+ """
121
+ filter: builtins.str
122
+ """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.
123
+ Available fields to filter by are `notification_id`, `created_by_user_id`, `recipient_user_id`,
124
+ `created_date`, `notification_type`, and `is_read`.
125
+ 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).
126
+ For more information about the fields used for filtering, please refer to [this definition](/api/grpc/protocol_buffers/notifications#notification). Optional.
127
+ """
128
+ def __init__(
129
+ self,
130
+ *,
131
+ page_size: builtins.int = ...,
132
+ page_token: builtins.str = ...,
133
+ filter: builtins.str = ...,
134
+ ) -> None: ...
135
+ def ClearField(self, field_name: typing.Literal["filter", b"filter", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...
136
+
137
+ global___ListNotificationsRequest = ListNotificationsRequest
138
+
139
+ @typing.final
140
+ class ListNotificationsResponse(google.protobuf.message.Message):
141
+ """The response of a call to `NotificationService_ListNotifications`."""
142
+
143
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
144
+
145
+ NOTIFICATIONS_FIELD_NUMBER: builtins.int
146
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
147
+ next_page_token: builtins.str
148
+ @property
149
+ def notifications(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Notification]: ...
150
+ def __init__(
151
+ self,
152
+ *,
153
+ notifications: collections.abc.Iterable[global___Notification] | None = ...,
154
+ next_page_token: builtins.str = ...,
155
+ ) -> None: ...
156
+ def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "notifications", b"notifications"]) -> None: ...
157
+
158
+ global___ListNotificationsResponse = ListNotificationsResponse
159
+
160
+ @typing.final
161
+ class BatchUpdateNotificationsRequest(google.protobuf.message.Message):
162
+ """The request for a call to `NotificationService_BatchUpdateNotifications` to update notifications.
163
+ A maximum of 1000 notifications can be modified in a batch.
164
+ """
165
+
166
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
167
+
168
+ REQUESTS_FIELD_NUMBER: builtins.int
169
+ @property
170
+ def requests(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___UpdateNotificationRequest]: ...
171
+ def __init__(
172
+ self,
173
+ *,
174
+ requests: collections.abc.Iterable[global___UpdateNotificationRequest] | None = ...,
175
+ ) -> None: ...
176
+ def ClearField(self, field_name: typing.Literal["requests", b"requests"]) -> None: ...
177
+
178
+ global___BatchUpdateNotificationsRequest = BatchUpdateNotificationsRequest
179
+
180
+ @typing.final
181
+ class UpdateNotificationRequest(google.protobuf.message.Message):
182
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
183
+
184
+ NOTIFICATION_FIELD_NUMBER: builtins.int
185
+ UPDATE_MASK_FIELD_NUMBER: builtins.int
186
+ @property
187
+ def notification(self) -> global___Notification:
188
+ """The notification to update. The notification's `notification_id` field is used to identify the notification to update
189
+ and must be provided.
190
+ """
191
+
192
+ @property
193
+ def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask:
194
+ """The list of fields to be updated. Currently, the only field that can be updated is `is_read`."""
195
+
196
+ def __init__(
197
+ self,
198
+ *,
199
+ notification: global___Notification | None = ...,
200
+ update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ...,
201
+ ) -> None: ...
202
+ def HasField(self, field_name: typing.Literal["notification", b"notification", "update_mask", b"update_mask"]) -> builtins.bool: ...
203
+ def ClearField(self, field_name: typing.Literal["notification", b"notification", "update_mask", b"update_mask"]) -> None: ...
204
+
205
+ global___UpdateNotificationRequest = UpdateNotificationRequest
206
+
207
+ @typing.final
208
+ class BatchUpdateNotificationsResponse(google.protobuf.message.Message):
209
+ """The response of a call to `NotificationService_BatchUpdateNotifications` containing the updated notifications."""
210
+
211
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
212
+
213
+ NOTIFICATIONS_FIELD_NUMBER: builtins.int
214
+ @property
215
+ def notifications(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Notification]:
216
+ """The updated notifications."""
217
+
218
+ def __init__(
219
+ self,
220
+ *,
221
+ notifications: collections.abc.Iterable[global___Notification] | None = ...,
222
+ ) -> None: ...
223
+ def ClearField(self, field_name: typing.Literal["notifications", b"notifications"]) -> None: ...
224
+
225
+ global___BatchUpdateNotificationsResponse = BatchUpdateNotificationsResponse
@@ -0,0 +1,101 @@
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.notifications.v1 import notifications_pb2 as sift_dot_notifications_dot_v1_dot_notifications__pb2
6
+
7
+
8
+ class NotificationServiceStub(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.ListNotifications = channel.unary_unary(
18
+ '/sift.notifications.v1.NotificationService/ListNotifications',
19
+ request_serializer=sift_dot_notifications_dot_v1_dot_notifications__pb2.ListNotificationsRequest.SerializeToString,
20
+ response_deserializer=sift_dot_notifications_dot_v1_dot_notifications__pb2.ListNotificationsResponse.FromString,
21
+ )
22
+ self.BatchUpdateNotifications = channel.unary_unary(
23
+ '/sift.notifications.v1.NotificationService/BatchUpdateNotifications',
24
+ request_serializer=sift_dot_notifications_dot_v1_dot_notifications__pb2.BatchUpdateNotificationsRequest.SerializeToString,
25
+ response_deserializer=sift_dot_notifications_dot_v1_dot_notifications__pb2.BatchUpdateNotificationsResponse.FromString,
26
+ )
27
+
28
+
29
+ class NotificationServiceServicer(object):
30
+ """Missing associated documentation comment in .proto file."""
31
+
32
+ def ListNotifications(self, request, context):
33
+ """Retrieves notifications using an optional filter.
34
+ """
35
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
36
+ context.set_details('Method not implemented!')
37
+ raise NotImplementedError('Method not implemented!')
38
+
39
+ def BatchUpdateNotifications(self, request, context):
40
+ """Batch updates a list of notifications using the list of fields specified in their respective `update_mask`s.
41
+ """
42
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
43
+ context.set_details('Method not implemented!')
44
+ raise NotImplementedError('Method not implemented!')
45
+
46
+
47
+ def add_NotificationServiceServicer_to_server(servicer, server):
48
+ rpc_method_handlers = {
49
+ 'ListNotifications': grpc.unary_unary_rpc_method_handler(
50
+ servicer.ListNotifications,
51
+ request_deserializer=sift_dot_notifications_dot_v1_dot_notifications__pb2.ListNotificationsRequest.FromString,
52
+ response_serializer=sift_dot_notifications_dot_v1_dot_notifications__pb2.ListNotificationsResponse.SerializeToString,
53
+ ),
54
+ 'BatchUpdateNotifications': grpc.unary_unary_rpc_method_handler(
55
+ servicer.BatchUpdateNotifications,
56
+ request_deserializer=sift_dot_notifications_dot_v1_dot_notifications__pb2.BatchUpdateNotificationsRequest.FromString,
57
+ response_serializer=sift_dot_notifications_dot_v1_dot_notifications__pb2.BatchUpdateNotificationsResponse.SerializeToString,
58
+ ),
59
+ }
60
+ generic_handler = grpc.method_handlers_generic_handler(
61
+ 'sift.notifications.v1.NotificationService', rpc_method_handlers)
62
+ server.add_generic_rpc_handlers((generic_handler,))
63
+
64
+
65
+ # This class is part of an EXPERIMENTAL API.
66
+ class NotificationService(object):
67
+ """Missing associated documentation comment in .proto file."""
68
+
69
+ @staticmethod
70
+ def ListNotifications(request,
71
+ target,
72
+ options=(),
73
+ channel_credentials=None,
74
+ call_credentials=None,
75
+ insecure=False,
76
+ compression=None,
77
+ wait_for_ready=None,
78
+ timeout=None,
79
+ metadata=None):
80
+ return grpc.experimental.unary_unary(request, target, '/sift.notifications.v1.NotificationService/ListNotifications',
81
+ sift_dot_notifications_dot_v1_dot_notifications__pb2.ListNotificationsRequest.SerializeToString,
82
+ sift_dot_notifications_dot_v1_dot_notifications__pb2.ListNotificationsResponse.FromString,
83
+ options, channel_credentials,
84
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
85
+
86
+ @staticmethod
87
+ def BatchUpdateNotifications(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.notifications.v1.NotificationService/BatchUpdateNotifications',
98
+ sift_dot_notifications_dot_v1_dot_notifications__pb2.BatchUpdateNotificationsRequest.SerializeToString,
99
+ sift_dot_notifications_dot_v1_dot_notifications__pb2.BatchUpdateNotificationsResponse.FromString,
100
+ options, channel_credentials,
101
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,64 @@
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.notifications.v1.notifications_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 NotificationServiceStub:
21
+ def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
22
+ ListNotifications: grpc.UnaryUnaryMultiCallable[
23
+ sift.notifications.v1.notifications_pb2.ListNotificationsRequest,
24
+ sift.notifications.v1.notifications_pb2.ListNotificationsResponse,
25
+ ]
26
+ """Retrieves notifications using an optional filter."""
27
+
28
+ BatchUpdateNotifications: grpc.UnaryUnaryMultiCallable[
29
+ sift.notifications.v1.notifications_pb2.BatchUpdateNotificationsRequest,
30
+ sift.notifications.v1.notifications_pb2.BatchUpdateNotificationsResponse,
31
+ ]
32
+ """Batch updates a list of notifications using the list of fields specified in their respective `update_mask`s."""
33
+
34
+ class NotificationServiceAsyncStub:
35
+ ListNotifications: grpc.aio.UnaryUnaryMultiCallable[
36
+ sift.notifications.v1.notifications_pb2.ListNotificationsRequest,
37
+ sift.notifications.v1.notifications_pb2.ListNotificationsResponse,
38
+ ]
39
+ """Retrieves notifications using an optional filter."""
40
+
41
+ BatchUpdateNotifications: grpc.aio.UnaryUnaryMultiCallable[
42
+ sift.notifications.v1.notifications_pb2.BatchUpdateNotificationsRequest,
43
+ sift.notifications.v1.notifications_pb2.BatchUpdateNotificationsResponse,
44
+ ]
45
+ """Batch updates a list of notifications using the list of fields specified in their respective `update_mask`s."""
46
+
47
+ class NotificationServiceServicer(metaclass=abc.ABCMeta):
48
+ @abc.abstractmethod
49
+ def ListNotifications(
50
+ self,
51
+ request: sift.notifications.v1.notifications_pb2.ListNotificationsRequest,
52
+ context: _ServicerContext,
53
+ ) -> typing.Union[sift.notifications.v1.notifications_pb2.ListNotificationsResponse, collections.abc.Awaitable[sift.notifications.v1.notifications_pb2.ListNotificationsResponse]]:
54
+ """Retrieves notifications using an optional filter."""
55
+
56
+ @abc.abstractmethod
57
+ def BatchUpdateNotifications(
58
+ self,
59
+ request: sift.notifications.v1.notifications_pb2.BatchUpdateNotificationsRequest,
60
+ context: _ServicerContext,
61
+ ) -> typing.Union[sift.notifications.v1.notifications_pb2.BatchUpdateNotificationsResponse, collections.abc.Awaitable[sift.notifications.v1.notifications_pb2.BatchUpdateNotificationsResponse]]:
62
+ """Batch updates a list of notifications using the list of fields specified in their respective `update_mask`s."""
63
+
64
+ def add_NotificationServiceServicer_to_server(servicer: NotificationServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
sift/ping/__init__.py ADDED
File without changes
File without changes
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: sift/ping/v1/ping.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
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17sift/ping/v1/ping.proto\x12\x0csift.ping.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\r\n\x0bPingRequest\"/\n\x0cPingResponse\x12\x1f\n\x08response\x18\x01 \x01(\tB\x03\xe0\x41\x03R\x08response2b\n\x0bPingService\x12S\n\x04Ping\x12\x19.sift.ping.v1.PingRequest\x1a\x1a.sift.ping.v1.PingResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/pingB\x82\x01\n\x10\x63om.sift.ping.v1B\tPingProtoP\x01\xa2\x02\x03SPX\xaa\x02\x0cSift.Ping.V1\xca\x02\x0cSift\\Ping\\V1\xe2\x02\x18Sift\\Ping\\V1\\GPBMetadata\xea\x02\x0eSift::Ping::V1\x92\x41\x10\x12\x0e\n\x0cPing Serviceb\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sift.ping.v1.ping_pb2', _globals)
25
+ if not _descriptor._USE_C_DESCRIPTORS:
26
+ _globals['DESCRIPTOR']._loaded_options = None
27
+ _globals['DESCRIPTOR']._serialized_options = b'\n\020com.sift.ping.v1B\tPingProtoP\001\242\002\003SPX\252\002\014Sift.Ping.V1\312\002\014Sift\\Ping\\V1\342\002\030Sift\\Ping\\V1\\GPBMetadata\352\002\016Sift::Ping::V1\222A\020\022\016\n\014Ping Service'
28
+ _globals['_PINGRESPONSE'].fields_by_name['response']._loaded_options = None
29
+ _globals['_PINGRESPONSE'].fields_by_name['response']._serialized_options = b'\340A\003'
30
+ _globals['_PINGSERVICE'].methods_by_name['Ping']._loaded_options = None
31
+ _globals['_PINGSERVICE'].methods_by_name['Ping']._serialized_options = b'\202\323\344\223\002\016\022\014/api/v1/ping'
32
+ _globals['_PINGREQUEST']._serialized_start=152
33
+ _globals['_PINGREQUEST']._serialized_end=165
34
+ _globals['_PINGRESPONSE']._serialized_start=167
35
+ _globals['_PINGRESPONSE']._serialized_end=214
36
+ _globals['_PINGSERVICE']._serialized_start=216
37
+ _globals['_PINGSERVICE']._serialized_end=314
38
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,36 @@
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 typing
10
+
11
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
12
+
13
+ @typing.final
14
+ class PingRequest(google.protobuf.message.Message):
15
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
16
+
17
+ def __init__(
18
+ self,
19
+ ) -> None: ...
20
+
21
+ global___PingRequest = PingRequest
22
+
23
+ @typing.final
24
+ class PingResponse(google.protobuf.message.Message):
25
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
26
+
27
+ RESPONSE_FIELD_NUMBER: builtins.int
28
+ response: builtins.str
29
+ def __init__(
30
+ self,
31
+ *,
32
+ response: builtins.str = ...,
33
+ ) -> None: ...
34
+ def ClearField(self, field_name: typing.Literal["response", b"response"]) -> None: ...
35
+
36
+ global___PingResponse = PingResponse
@@ -0,0 +1,66 @@
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.ping.v1 import ping_pb2 as sift_dot_ping_dot_v1_dot_ping__pb2
6
+
7
+
8
+ class PingServiceStub(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.Ping = channel.unary_unary(
18
+ '/sift.ping.v1.PingService/Ping',
19
+ request_serializer=sift_dot_ping_dot_v1_dot_ping__pb2.PingRequest.SerializeToString,
20
+ response_deserializer=sift_dot_ping_dot_v1_dot_ping__pb2.PingResponse.FromString,
21
+ )
22
+
23
+
24
+ class PingServiceServicer(object):
25
+ """Missing associated documentation comment in .proto file."""
26
+
27
+ def Ping(self, request, context):
28
+ """Missing associated documentation comment in .proto file."""
29
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
30
+ context.set_details('Method not implemented!')
31
+ raise NotImplementedError('Method not implemented!')
32
+
33
+
34
+ def add_PingServiceServicer_to_server(servicer, server):
35
+ rpc_method_handlers = {
36
+ 'Ping': grpc.unary_unary_rpc_method_handler(
37
+ servicer.Ping,
38
+ request_deserializer=sift_dot_ping_dot_v1_dot_ping__pb2.PingRequest.FromString,
39
+ response_serializer=sift_dot_ping_dot_v1_dot_ping__pb2.PingResponse.SerializeToString,
40
+ ),
41
+ }
42
+ generic_handler = grpc.method_handlers_generic_handler(
43
+ 'sift.ping.v1.PingService', rpc_method_handlers)
44
+ server.add_generic_rpc_handlers((generic_handler,))
45
+
46
+
47
+ # This class is part of an EXPERIMENTAL API.
48
+ class PingService(object):
49
+ """Missing associated documentation comment in .proto file."""
50
+
51
+ @staticmethod
52
+ def Ping(request,
53
+ target,
54
+ options=(),
55
+ channel_credentials=None,
56
+ call_credentials=None,
57
+ insecure=False,
58
+ compression=None,
59
+ wait_for_ready=None,
60
+ timeout=None,
61
+ metadata=None):
62
+ return grpc.experimental.unary_unary(request, target, '/sift.ping.v1.PingService/Ping',
63
+ sift_dot_ping_dot_v1_dot_ping__pb2.PingRequest.SerializeToString,
64
+ sift_dot_ping_dot_v1_dot_ping__pb2.PingResponse.FromString,
65
+ options, channel_credentials,
66
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,41 @@
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.ping.v1.ping_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 PingServiceStub:
21
+ def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
22
+ Ping: grpc.UnaryUnaryMultiCallable[
23
+ sift.ping.v1.ping_pb2.PingRequest,
24
+ sift.ping.v1.ping_pb2.PingResponse,
25
+ ]
26
+
27
+ class PingServiceAsyncStub:
28
+ Ping: grpc.aio.UnaryUnaryMultiCallable[
29
+ sift.ping.v1.ping_pb2.PingRequest,
30
+ sift.ping.v1.ping_pb2.PingResponse,
31
+ ]
32
+
33
+ class PingServiceServicer(metaclass=abc.ABCMeta):
34
+ @abc.abstractmethod
35
+ def Ping(
36
+ self,
37
+ request: sift.ping.v1.ping_pb2.PingRequest,
38
+ context: _ServicerContext,
39
+ ) -> typing.Union[sift.ping.v1.ping_pb2.PingResponse, collections.abc.Awaitable[sift.ping.v1.ping_pb2.PingResponse]]: ...
40
+
41
+ def add_PingServiceServicer_to_server(servicer: PingServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
File without changes
File without changes