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,383 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import collections.abc
8
+ import google.protobuf.descriptor
9
+ import google.protobuf.field_mask_pb2
10
+ import google.protobuf.internal.containers
11
+ import google.protobuf.message
12
+ import google.protobuf.timestamp_pb2
13
+ import sift.common.type.v1.resource_identifier_pb2
14
+ import sift.tags.v1.tags_pb2
15
+ import typing
16
+
17
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
18
+
19
+ @typing.final
20
+ class Campaign(google.protobuf.message.Message):
21
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
22
+
23
+ CAMPAIGN_ID_FIELD_NUMBER: builtins.int
24
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
25
+ CLIENT_KEY_FIELD_NUMBER: builtins.int
26
+ NAME_FIELD_NUMBER: builtins.int
27
+ DESCRIPTION_FIELD_NUMBER: builtins.int
28
+ CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int
29
+ MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int
30
+ CREATED_DATE_FIELD_NUMBER: builtins.int
31
+ MODIFIED_DATE_FIELD_NUMBER: builtins.int
32
+ ARCHIVED_DATE_FIELD_NUMBER: builtins.int
33
+ TAGS_FIELD_NUMBER: builtins.int
34
+ REPORTS_FIELD_NUMBER: builtins.int
35
+ CREATED_FROM_CAMPAIGN_ID_FIELD_NUMBER: builtins.int
36
+ campaign_id: builtins.str
37
+ organization_id: builtins.str
38
+ client_key: builtins.str
39
+ name: builtins.str
40
+ description: builtins.str
41
+ created_by_user_id: builtins.str
42
+ modified_by_user_id: builtins.str
43
+ created_from_campaign_id: builtins.str
44
+ """If this campaign was created by duplicating another campaign, that other campaign will be referenced here"""
45
+ @property
46
+ def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
47
+ @property
48
+ def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
49
+ @property
50
+ def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
51
+ @property
52
+ def tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.tags.v1.tags_pb2.TagRef]: ...
53
+ @property
54
+ def reports(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CampaignReport]:
55
+ """A campaign, at its core, is a list of reports"""
56
+
57
+ def __init__(
58
+ self,
59
+ *,
60
+ campaign_id: builtins.str = ...,
61
+ organization_id: builtins.str = ...,
62
+ client_key: builtins.str = ...,
63
+ name: builtins.str = ...,
64
+ description: builtins.str = ...,
65
+ created_by_user_id: builtins.str = ...,
66
+ modified_by_user_id: builtins.str = ...,
67
+ created_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
68
+ modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
69
+ archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
70
+ tags: collections.abc.Iterable[sift.tags.v1.tags_pb2.TagRef] | None = ...,
71
+ reports: collections.abc.Iterable[global___CampaignReport] | None = ...,
72
+ created_from_campaign_id: builtins.str = ...,
73
+ ) -> None: ...
74
+ def HasField(self, field_name: typing.Literal["archived_date", b"archived_date", "created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ...
75
+ def ClearField(self, field_name: typing.Literal["archived_date", b"archived_date", "campaign_id", b"campaign_id", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "created_from_campaign_id", b"created_from_campaign_id", "description", b"description", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "reports", b"reports", "tags", b"tags"]) -> None: ...
76
+
77
+ global___Campaign = Campaign
78
+
79
+ @typing.final
80
+ class CampaignReport(google.protobuf.message.Message):
81
+ """A top-level summary of the report's rules is provided here so clients needn't aggregate this information themselves"""
82
+
83
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
84
+
85
+ REPORT_ID_FIELD_NUMBER: builtins.int
86
+ REPORT_NAME_FIELD_NUMBER: builtins.int
87
+ NUM_ANNOTATIONS_FIELD_NUMBER: builtins.int
88
+ NUM_PASSED_RULES_FIELD_NUMBER: builtins.int
89
+ NUM_ACCEPTED_RULES_FIELD_NUMBER: builtins.int
90
+ NUM_FAILED_RULES_FIELD_NUMBER: builtins.int
91
+ NUM_OPEN_RULES_FIELD_NUMBER: builtins.int
92
+ report_id: builtins.str
93
+ """Direct reference to the report. Set this on the client to tell the backend which report you're referring to."""
94
+ report_name: builtins.str
95
+ num_annotations: builtins.int
96
+ """How many annotations exist under the report's various rules."""
97
+ num_passed_rules: builtins.int
98
+ """How many rules from this report were never triggered and generated NO annotations."""
99
+ num_accepted_rules: builtins.int
100
+ """How many rules have annotations which are ALL marked as accepted."""
101
+ num_failed_rules: builtins.int
102
+ """How many rules have ANY annotations which are marked as failed."""
103
+ num_open_rules: builtins.int
104
+ """How many rules have annotations of which SOME are marked as open and NONE are marked as failed."""
105
+ def __init__(
106
+ self,
107
+ *,
108
+ report_id: builtins.str = ...,
109
+ report_name: builtins.str = ...,
110
+ num_annotations: builtins.int = ...,
111
+ num_passed_rules: builtins.int = ...,
112
+ num_accepted_rules: builtins.int = ...,
113
+ num_failed_rules: builtins.int = ...,
114
+ num_open_rules: builtins.int = ...,
115
+ ) -> None: ...
116
+ def ClearField(self, field_name: typing.Literal["num_accepted_rules", b"num_accepted_rules", "num_annotations", b"num_annotations", "num_failed_rules", b"num_failed_rules", "num_open_rules", b"num_open_rules", "num_passed_rules", b"num_passed_rules", "report_id", b"report_id", "report_name", b"report_name"]) -> None: ...
117
+
118
+ global___CampaignReport = CampaignReport
119
+
120
+ @typing.final
121
+ class GetCampaignRequest(google.protobuf.message.Message):
122
+ """The request for a call to `CampaignService_GetCampaign` to retrieve a campaign.
123
+ If `campaign_id` is provided then all other arguments will be ignored.
124
+ The `organization_id` argument is only required if using `client_key` and the user belongs to multiple organizations.
125
+ """
126
+
127
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
128
+
129
+ CAMPAIGN_ID_FIELD_NUMBER: builtins.int
130
+ CLIENT_KEY_FIELD_NUMBER: builtins.int
131
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
132
+ campaign_id: builtins.str
133
+ client_key: builtins.str
134
+ organization_id: builtins.str
135
+ def __init__(
136
+ self,
137
+ *,
138
+ campaign_id: builtins.str = ...,
139
+ client_key: builtins.str = ...,
140
+ organization_id: builtins.str = ...,
141
+ ) -> None: ...
142
+ def ClearField(self, field_name: typing.Literal["campaign_id", b"campaign_id", "client_key", b"client_key", "organization_id", b"organization_id"]) -> None: ...
143
+
144
+ global___GetCampaignRequest = GetCampaignRequest
145
+
146
+ @typing.final
147
+ class GetCampaignResponse(google.protobuf.message.Message):
148
+ """The response of a call to `CampaignService_GetCampaign` to retrieve a campaign."""
149
+
150
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
151
+
152
+ CAMPAIGN_FIELD_NUMBER: builtins.int
153
+ @property
154
+ def campaign(self) -> global___Campaign: ...
155
+ def __init__(
156
+ self,
157
+ *,
158
+ campaign: global___Campaign | None = ...,
159
+ ) -> None: ...
160
+ def HasField(self, field_name: typing.Literal["campaign", b"campaign"]) -> builtins.bool: ...
161
+ def ClearField(self, field_name: typing.Literal["campaign", b"campaign"]) -> None: ...
162
+
163
+ global___GetCampaignResponse = GetCampaignResponse
164
+
165
+ @typing.final
166
+ class CreateCampaignRequest(google.protobuf.message.Message):
167
+ """The request of a call to `CampaignService_CreateCampaign` to create a campaign."""
168
+
169
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
170
+
171
+ NAME_FIELD_NUMBER: builtins.int
172
+ DESCRIPTION_FIELD_NUMBER: builtins.int
173
+ TAGS_FIELD_NUMBER: builtins.int
174
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
175
+ CLIENT_KEY_FIELD_NUMBER: builtins.int
176
+ CREATE_FROM_FIELD_NUMBER: builtins.int
177
+ name: builtins.str
178
+ """The descriptive display name of the created campaign"""
179
+ description: builtins.str
180
+ """A custom description for the campaign"""
181
+ organization_id: builtins.str
182
+ """`organization_id` is only required if your user belongs to multiple organizations"""
183
+ client_key: builtins.str
184
+ """User-specified unique identifier."""
185
+ @property
186
+ def tags(self) -> sift.common.type.v1.resource_identifier_pb2.NamedResources:
187
+ """Tags to be applied to the new campaign"""
188
+
189
+ @property
190
+ def create_from(self) -> global___CreateCampaignFrom:
191
+ """Initialize the campaign, or leave this field empty to create an empty campaign to be populated later"""
192
+
193
+ def __init__(
194
+ self,
195
+ *,
196
+ name: builtins.str = ...,
197
+ description: builtins.str = ...,
198
+ tags: sift.common.type.v1.resource_identifier_pb2.NamedResources | None = ...,
199
+ organization_id: builtins.str = ...,
200
+ client_key: builtins.str = ...,
201
+ create_from: global___CreateCampaignFrom | None = ...,
202
+ ) -> None: ...
203
+ def HasField(self, field_name: typing.Literal["create_from", b"create_from", "tags", b"tags"]) -> builtins.bool: ...
204
+ def ClearField(self, field_name: typing.Literal["client_key", b"client_key", "create_from", b"create_from", "description", b"description", "name", b"name", "organization_id", b"organization_id", "tags", b"tags"]) -> None: ...
205
+
206
+ global___CreateCampaignRequest = CreateCampaignRequest
207
+
208
+ @typing.final
209
+ class CreateCampaignFrom(google.protobuf.message.Message):
210
+ """Campaigns can be created from a few different sources"""
211
+
212
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
213
+
214
+ REPORT_IDS_FIELD_NUMBER: builtins.int
215
+ RUN_IDS_FIELD_NUMBER: builtins.int
216
+ CAMPAIGN_ID_FIELD_NUMBER: builtins.int
217
+ @property
218
+ def report_ids(self) -> sift.common.type.v1.resource_identifier_pb2.ResourceIdentifiers:
219
+ """Create a campaign directly from a set of reports"""
220
+
221
+ @property
222
+ def run_ids(self) -> sift.common.type.v1.resource_identifier_pb2.ResourceIdentifiers:
223
+ """Create a campaign from a set of runs by collecting all the reports generated by those runs"""
224
+
225
+ @property
226
+ def campaign_id(self) -> sift.common.type.v1.resource_identifier_pb2.ResourceIdentifier:
227
+ """Duplicate another campaign"""
228
+
229
+ def __init__(
230
+ self,
231
+ *,
232
+ report_ids: sift.common.type.v1.resource_identifier_pb2.ResourceIdentifiers | None = ...,
233
+ run_ids: sift.common.type.v1.resource_identifier_pb2.ResourceIdentifiers | None = ...,
234
+ campaign_id: sift.common.type.v1.resource_identifier_pb2.ResourceIdentifier | None = ...,
235
+ ) -> None: ...
236
+ def HasField(self, field_name: typing.Literal["campaign_id", b"campaign_id", "initializer", b"initializer", "report_ids", b"report_ids", "run_ids", b"run_ids"]) -> builtins.bool: ...
237
+ def ClearField(self, field_name: typing.Literal["campaign_id", b"campaign_id", "initializer", b"initializer", "report_ids", b"report_ids", "run_ids", b"run_ids"]) -> None: ...
238
+ def WhichOneof(self, oneof_group: typing.Literal["initializer", b"initializer"]) -> typing.Literal["report_ids", "run_ids", "campaign_id"] | None: ...
239
+
240
+ global___CreateCampaignFrom = CreateCampaignFrom
241
+
242
+ @typing.final
243
+ class CreateCampaignResponse(google.protobuf.message.Message):
244
+ """The response of a call to `CampaignService_CreateCampaign` to create a campaign."""
245
+
246
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
247
+
248
+ CAMPAIGN_FIELD_NUMBER: builtins.int
249
+ @property
250
+ def campaign(self) -> global___Campaign: ...
251
+ def __init__(
252
+ self,
253
+ *,
254
+ campaign: global___Campaign | None = ...,
255
+ ) -> None: ...
256
+ def HasField(self, field_name: typing.Literal["campaign", b"campaign"]) -> builtins.bool: ...
257
+ def ClearField(self, field_name: typing.Literal["campaign", b"campaign"]) -> None: ...
258
+
259
+ global___CreateCampaignResponse = CreateCampaignResponse
260
+
261
+ @typing.final
262
+ class ListCampaignsRequest(google.protobuf.message.Message):
263
+ """The request for a call to `CampaignService_ListCampaigns` to retrieve campaigns."""
264
+
265
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
266
+
267
+ PAGE_SIZE_FIELD_NUMBER: builtins.int
268
+ PAGE_TOKEN_FIELD_NUMBER: builtins.int
269
+ FILTER_FIELD_NUMBER: builtins.int
270
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
271
+ INCLUDE_ARCHIVED_FIELD_NUMBER: builtins.int
272
+ ORDER_BY_FIELD_NUMBER: builtins.int
273
+ page_size: builtins.int
274
+ """The maximum number of campaigns to return. The service may return fewer than this value.
275
+ If unspecified, at most 50 campaigns will be returned. The maximum value is 1000; values above
276
+ 1000 will be coerced to 1000. Optional.
277
+ """
278
+ page_token: builtins.str
279
+ """A page token, received from a previous `ListCampaigns` call.
280
+ Provide this to retrieve the subsequent page.
281
+ When paginating, all other parameters provided to `ListCampaigns` must match
282
+ the call that provided the page token. Optional.
283
+ """
284
+ filter: builtins.str
285
+ """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.
286
+ Available fields to filter by are `campaign_id`, `tag_id`, `tag_name`, `client_key`, and `name`.
287
+ 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).
288
+ For more information about the fields used for filtering, please refer to [this definition](/protocol-buffers/documentation#campaigns). Optional.
289
+ """
290
+ organization_id: builtins.str
291
+ """This field is only required if your user belongs to multiple organizations."""
292
+ include_archived: builtins.bool
293
+ """If `true` then archived campaigns will be included in the query. Defaults to `false`."""
294
+ order_by: builtins.str
295
+ """How to order the retrieved campaigns. Formatted as a comma-separated string i.e. "<field_name>[ desc],...".
296
+ Available fields to order_by are `created_date` and `modified_date`.
297
+ If left empty, items are ordered by `created_date` in ascending order (oldest-first).
298
+ For more information about the format of this field, read [this](https://google.aip.dev/132#ordering)
299
+ Example: "created_date desc,modified_date"
300
+ """
301
+ def __init__(
302
+ self,
303
+ *,
304
+ page_size: builtins.int = ...,
305
+ page_token: builtins.str = ...,
306
+ filter: builtins.str = ...,
307
+ organization_id: builtins.str = ...,
308
+ include_archived: builtins.bool = ...,
309
+ order_by: builtins.str = ...,
310
+ ) -> None: ...
311
+ def ClearField(self, field_name: typing.Literal["filter", b"filter", "include_archived", b"include_archived", "order_by", b"order_by", "organization_id", b"organization_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...
312
+
313
+ global___ListCampaignsRequest = ListCampaignsRequest
314
+
315
+ @typing.final
316
+ class ListCampaignsResponse(google.protobuf.message.Message):
317
+ """The response of a call to `CampaignService_ListCampaignsResponse`."""
318
+
319
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
320
+
321
+ CAMPAIGNS_FIELD_NUMBER: builtins.int
322
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
323
+ next_page_token: builtins.str
324
+ @property
325
+ def campaigns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Campaign]: ...
326
+ def __init__(
327
+ self,
328
+ *,
329
+ campaigns: collections.abc.Iterable[global___Campaign] | None = ...,
330
+ next_page_token: builtins.str = ...,
331
+ ) -> None: ...
332
+ def ClearField(self, field_name: typing.Literal["campaigns", b"campaigns", "next_page_token", b"next_page_token"]) -> None: ...
333
+
334
+ global___ListCampaignsResponse = ListCampaignsResponse
335
+
336
+ @typing.final
337
+ class UpdateCampaignRequest(google.protobuf.message.Message):
338
+ """The request for a call to `CampaignService_UpdateCampaign` to update a campaign. When updating
339
+ tags or rules, the update will perform a full replace. Additionally, when updating rules, only the rule ID or the rule client key
340
+ is required, but it is okay to provide both. If some rules contain only client keys and others only rule IDs, they will be consolidated.
341
+ """
342
+
343
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
344
+
345
+ CAMPAIGN_FIELD_NUMBER: builtins.int
346
+ UPDATE_MASK_FIELD_NUMBER: builtins.int
347
+ @property
348
+ def campaign(self) -> global___Campaign:
349
+ """The campaign to update."""
350
+
351
+ @property
352
+ def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask:
353
+ """The list of fields to be updated. The fields available to be updated are `name`, `archived_date`, `description`, `tags`, and `reports`."""
354
+
355
+ def __init__(
356
+ self,
357
+ *,
358
+ campaign: global___Campaign | None = ...,
359
+ update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ...,
360
+ ) -> None: ...
361
+ def HasField(self, field_name: typing.Literal["campaign", b"campaign", "update_mask", b"update_mask"]) -> builtins.bool: ...
362
+ def ClearField(self, field_name: typing.Literal["campaign", b"campaign", "update_mask", b"update_mask"]) -> None: ...
363
+
364
+ global___UpdateCampaignRequest = UpdateCampaignRequest
365
+
366
+ @typing.final
367
+ class UpdateCampaignResponse(google.protobuf.message.Message):
368
+ """The response of a call to `CampaignService_UpdateCampaign`."""
369
+
370
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
371
+
372
+ CAMPAIGN_FIELD_NUMBER: builtins.int
373
+ @property
374
+ def campaign(self) -> global___Campaign: ...
375
+ def __init__(
376
+ self,
377
+ *,
378
+ campaign: global___Campaign | None = ...,
379
+ ) -> None: ...
380
+ def HasField(self, field_name: typing.Literal["campaign", b"campaign"]) -> builtins.bool: ...
381
+ def ClearField(self, field_name: typing.Literal["campaign", b"campaign"]) -> None: ...
382
+
383
+ global___UpdateCampaignResponse = UpdateCampaignResponse
@@ -0,0 +1,169 @@
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.campaigns.v1 import campaigns_pb2 as sift_dot_campaigns_dot_v1_dot_campaigns__pb2
6
+
7
+
8
+ class CampaignServiceStub(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.GetCampaign = channel.unary_unary(
18
+ '/sift.campaigns.v1.CampaignService/GetCampaign',
19
+ request_serializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.GetCampaignRequest.SerializeToString,
20
+ response_deserializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.GetCampaignResponse.FromString,
21
+ )
22
+ self.CreateCampaign = channel.unary_unary(
23
+ '/sift.campaigns.v1.CampaignService/CreateCampaign',
24
+ request_serializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.CreateCampaignRequest.SerializeToString,
25
+ response_deserializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.CreateCampaignResponse.FromString,
26
+ )
27
+ self.ListCampaigns = channel.unary_unary(
28
+ '/sift.campaigns.v1.CampaignService/ListCampaigns',
29
+ request_serializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.ListCampaignsRequest.SerializeToString,
30
+ response_deserializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.ListCampaignsResponse.FromString,
31
+ )
32
+ self.UpdateCampaign = channel.unary_unary(
33
+ '/sift.campaigns.v1.CampaignService/UpdateCampaign',
34
+ request_serializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.UpdateCampaignRequest.SerializeToString,
35
+ response_deserializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.UpdateCampaignResponse.FromString,
36
+ )
37
+
38
+
39
+ class CampaignServiceServicer(object):
40
+ """Missing associated documentation comment in .proto file."""
41
+
42
+ def GetCampaign(self, request, context):
43
+ """Retrieve a campaign.
44
+ """
45
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
46
+ context.set_details('Method not implemented!')
47
+ raise NotImplementedError('Method not implemented!')
48
+
49
+ def CreateCampaign(self, request, context):
50
+ """Create a campaign.
51
+ """
52
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
53
+ context.set_details('Method not implemented!')
54
+ raise NotImplementedError('Method not implemented!')
55
+
56
+ def ListCampaigns(self, request, context):
57
+ """List campaigns.
58
+ """
59
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
60
+ context.set_details('Method not implemented!')
61
+ raise NotImplementedError('Method not implemented!')
62
+
63
+ def UpdateCampaign(self, request, context):
64
+ """Updates an existing campaign using the list of fields specified in `update_mask`.
65
+ """
66
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
67
+ context.set_details('Method not implemented!')
68
+ raise NotImplementedError('Method not implemented!')
69
+
70
+
71
+ def add_CampaignServiceServicer_to_server(servicer, server):
72
+ rpc_method_handlers = {
73
+ 'GetCampaign': grpc.unary_unary_rpc_method_handler(
74
+ servicer.GetCampaign,
75
+ request_deserializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.GetCampaignRequest.FromString,
76
+ response_serializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.GetCampaignResponse.SerializeToString,
77
+ ),
78
+ 'CreateCampaign': grpc.unary_unary_rpc_method_handler(
79
+ servicer.CreateCampaign,
80
+ request_deserializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.CreateCampaignRequest.FromString,
81
+ response_serializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.CreateCampaignResponse.SerializeToString,
82
+ ),
83
+ 'ListCampaigns': grpc.unary_unary_rpc_method_handler(
84
+ servicer.ListCampaigns,
85
+ request_deserializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.ListCampaignsRequest.FromString,
86
+ response_serializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.ListCampaignsResponse.SerializeToString,
87
+ ),
88
+ 'UpdateCampaign': grpc.unary_unary_rpc_method_handler(
89
+ servicer.UpdateCampaign,
90
+ request_deserializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.UpdateCampaignRequest.FromString,
91
+ response_serializer=sift_dot_campaigns_dot_v1_dot_campaigns__pb2.UpdateCampaignResponse.SerializeToString,
92
+ ),
93
+ }
94
+ generic_handler = grpc.method_handlers_generic_handler(
95
+ 'sift.campaigns.v1.CampaignService', rpc_method_handlers)
96
+ server.add_generic_rpc_handlers((generic_handler,))
97
+
98
+
99
+ # This class is part of an EXPERIMENTAL API.
100
+ class CampaignService(object):
101
+ """Missing associated documentation comment in .proto file."""
102
+
103
+ @staticmethod
104
+ def GetCampaign(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.campaigns.v1.CampaignService/GetCampaign',
115
+ sift_dot_campaigns_dot_v1_dot_campaigns__pb2.GetCampaignRequest.SerializeToString,
116
+ sift_dot_campaigns_dot_v1_dot_campaigns__pb2.GetCampaignResponse.FromString,
117
+ options, channel_credentials,
118
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
119
+
120
+ @staticmethod
121
+ def CreateCampaign(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.campaigns.v1.CampaignService/CreateCampaign',
132
+ sift_dot_campaigns_dot_v1_dot_campaigns__pb2.CreateCampaignRequest.SerializeToString,
133
+ sift_dot_campaigns_dot_v1_dot_campaigns__pb2.CreateCampaignResponse.FromString,
134
+ options, channel_credentials,
135
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
136
+
137
+ @staticmethod
138
+ def ListCampaigns(request,
139
+ target,
140
+ options=(),
141
+ channel_credentials=None,
142
+ call_credentials=None,
143
+ insecure=False,
144
+ compression=None,
145
+ wait_for_ready=None,
146
+ timeout=None,
147
+ metadata=None):
148
+ return grpc.experimental.unary_unary(request, target, '/sift.campaigns.v1.CampaignService/ListCampaigns',
149
+ sift_dot_campaigns_dot_v1_dot_campaigns__pb2.ListCampaignsRequest.SerializeToString,
150
+ sift_dot_campaigns_dot_v1_dot_campaigns__pb2.ListCampaignsResponse.FromString,
151
+ options, channel_credentials,
152
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
153
+
154
+ @staticmethod
155
+ def UpdateCampaign(request,
156
+ target,
157
+ options=(),
158
+ channel_credentials=None,
159
+ call_credentials=None,
160
+ insecure=False,
161
+ compression=None,
162
+ wait_for_ready=None,
163
+ timeout=None,
164
+ metadata=None):
165
+ return grpc.experimental.unary_unary(request, target, '/sift.campaigns.v1.CampaignService/UpdateCampaign',
166
+ sift_dot_campaigns_dot_v1_dot_campaigns__pb2.UpdateCampaignRequest.SerializeToString,
167
+ sift_dot_campaigns_dot_v1_dot_campaigns__pb2.UpdateCampaignResponse.FromString,
168
+ options, channel_credentials,
169
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,104 @@
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.campaigns.v1.campaigns_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 CampaignServiceStub:
21
+ def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
22
+ GetCampaign: grpc.UnaryUnaryMultiCallable[
23
+ sift.campaigns.v1.campaigns_pb2.GetCampaignRequest,
24
+ sift.campaigns.v1.campaigns_pb2.GetCampaignResponse,
25
+ ]
26
+ """Retrieve a campaign."""
27
+
28
+ CreateCampaign: grpc.UnaryUnaryMultiCallable[
29
+ sift.campaigns.v1.campaigns_pb2.CreateCampaignRequest,
30
+ sift.campaigns.v1.campaigns_pb2.CreateCampaignResponse,
31
+ ]
32
+ """Create a campaign."""
33
+
34
+ ListCampaigns: grpc.UnaryUnaryMultiCallable[
35
+ sift.campaigns.v1.campaigns_pb2.ListCampaignsRequest,
36
+ sift.campaigns.v1.campaigns_pb2.ListCampaignsResponse,
37
+ ]
38
+ """List campaigns."""
39
+
40
+ UpdateCampaign: grpc.UnaryUnaryMultiCallable[
41
+ sift.campaigns.v1.campaigns_pb2.UpdateCampaignRequest,
42
+ sift.campaigns.v1.campaigns_pb2.UpdateCampaignResponse,
43
+ ]
44
+ """Updates an existing campaign using the list of fields specified in `update_mask`."""
45
+
46
+ class CampaignServiceAsyncStub:
47
+ GetCampaign: grpc.aio.UnaryUnaryMultiCallable[
48
+ sift.campaigns.v1.campaigns_pb2.GetCampaignRequest,
49
+ sift.campaigns.v1.campaigns_pb2.GetCampaignResponse,
50
+ ]
51
+ """Retrieve a campaign."""
52
+
53
+ CreateCampaign: grpc.aio.UnaryUnaryMultiCallable[
54
+ sift.campaigns.v1.campaigns_pb2.CreateCampaignRequest,
55
+ sift.campaigns.v1.campaigns_pb2.CreateCampaignResponse,
56
+ ]
57
+ """Create a campaign."""
58
+
59
+ ListCampaigns: grpc.aio.UnaryUnaryMultiCallable[
60
+ sift.campaigns.v1.campaigns_pb2.ListCampaignsRequest,
61
+ sift.campaigns.v1.campaigns_pb2.ListCampaignsResponse,
62
+ ]
63
+ """List campaigns."""
64
+
65
+ UpdateCampaign: grpc.aio.UnaryUnaryMultiCallable[
66
+ sift.campaigns.v1.campaigns_pb2.UpdateCampaignRequest,
67
+ sift.campaigns.v1.campaigns_pb2.UpdateCampaignResponse,
68
+ ]
69
+ """Updates an existing campaign using the list of fields specified in `update_mask`."""
70
+
71
+ class CampaignServiceServicer(metaclass=abc.ABCMeta):
72
+ @abc.abstractmethod
73
+ def GetCampaign(
74
+ self,
75
+ request: sift.campaigns.v1.campaigns_pb2.GetCampaignRequest,
76
+ context: _ServicerContext,
77
+ ) -> typing.Union[sift.campaigns.v1.campaigns_pb2.GetCampaignResponse, collections.abc.Awaitable[sift.campaigns.v1.campaigns_pb2.GetCampaignResponse]]:
78
+ """Retrieve a campaign."""
79
+
80
+ @abc.abstractmethod
81
+ def CreateCampaign(
82
+ self,
83
+ request: sift.campaigns.v1.campaigns_pb2.CreateCampaignRequest,
84
+ context: _ServicerContext,
85
+ ) -> typing.Union[sift.campaigns.v1.campaigns_pb2.CreateCampaignResponse, collections.abc.Awaitable[sift.campaigns.v1.campaigns_pb2.CreateCampaignResponse]]:
86
+ """Create a campaign."""
87
+
88
+ @abc.abstractmethod
89
+ def ListCampaigns(
90
+ self,
91
+ request: sift.campaigns.v1.campaigns_pb2.ListCampaignsRequest,
92
+ context: _ServicerContext,
93
+ ) -> typing.Union[sift.campaigns.v1.campaigns_pb2.ListCampaignsResponse, collections.abc.Awaitable[sift.campaigns.v1.campaigns_pb2.ListCampaignsResponse]]:
94
+ """List campaigns."""
95
+
96
+ @abc.abstractmethod
97
+ def UpdateCampaign(
98
+ self,
99
+ request: sift.campaigns.v1.campaigns_pb2.UpdateCampaignRequest,
100
+ context: _ServicerContext,
101
+ ) -> typing.Union[sift.campaigns.v1.campaigns_pb2.UpdateCampaignResponse, collections.abc.Awaitable[sift.campaigns.v1.campaigns_pb2.UpdateCampaignResponse]]:
102
+ """Updates an existing campaign using the list of fields specified in `update_mask`."""
103
+
104
+ def add_CampaignServiceServicer_to_server(servicer: CampaignServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
File without changes
File without changes