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.
- google/__init__.py +1 -0
- google/api/__init__.py +0 -0
- google/api/annotations_pb2.py +27 -0
- google/api/annotations_pb2.pyi +29 -0
- google/api/annotations_pb2_grpc.py +4 -0
- google/api/annotations_pb2_grpc.pyi +30 -0
- google/api/field_behavior_pb2.py +30 -0
- google/api/field_behavior_pb2.pyi +175 -0
- google/api/field_behavior_pb2_grpc.py +4 -0
- google/api/field_behavior_pb2_grpc.pyi +30 -0
- google/api/http_pb2.py +31 -0
- google/api/http_pb2.pyi +433 -0
- google/api/http_pb2_grpc.py +4 -0
- google/api/http_pb2_grpc.pyi +30 -0
- protoc_gen_openapiv2/__init__.py +0 -0
- protoc_gen_openapiv2/options/__init__.py +0 -0
- protoc_gen_openapiv2/options/annotations_pb2.py +27 -0
- protoc_gen_openapiv2/options/annotations_pb2.pyi +48 -0
- protoc_gen_openapiv2/options/annotations_pb2_grpc.py +4 -0
- protoc_gen_openapiv2/options/annotations_pb2_grpc.pyi +17 -0
- protoc_gen_openapiv2/options/openapiv2_pb2.py +132 -0
- protoc_gen_openapiv2/options/openapiv2_pb2.pyi +1533 -0
- protoc_gen_openapiv2/options/openapiv2_pb2_grpc.py +4 -0
- protoc_gen_openapiv2/options/openapiv2_pb2_grpc.pyi +17 -0
- sift/__init__.py +0 -0
- sift/annotation_logs/__init__.py +0 -0
- sift/annotation_logs/v1/__init__.py +0 -0
- sift/annotation_logs/v1/annotation_logs_pb2.py +115 -0
- sift/annotation_logs/v1/annotation_logs_pb2.pyi +370 -0
- sift/annotation_logs/v1/annotation_logs_pb2_grpc.py +135 -0
- sift/annotation_logs/v1/annotation_logs_pb2_grpc.pyi +84 -0
- sift/annotations/__init__.py +0 -0
- sift/annotations/v1/__init__.py +0 -0
- sift/annotations/v1/annotations_pb2.py +180 -0
- sift/annotations/v1/annotations_pb2.pyi +539 -0
- sift/annotations/v1/annotations_pb2_grpc.py +237 -0
- sift/annotations/v1/annotations_pb2_grpc.pyi +144 -0
- sift/assets/__init__.py +0 -0
- sift/assets/v1/__init__.py +0 -0
- sift/assets/v1/assets_pb2.py +90 -0
- sift/assets/v1/assets_pb2.pyi +235 -0
- sift/assets/v1/assets_pb2_grpc.py +168 -0
- sift/assets/v1/assets_pb2_grpc.pyi +101 -0
- sift/calculated_channels/__init__.py +0 -0
- sift/calculated_channels/v1/__init__.py +0 -0
- sift/calculated_channels/v1/calculated_channels_pb2.py +99 -0
- sift/calculated_channels/v1/calculated_channels_pb2.pyi +280 -0
- sift/calculated_channels/v1/calculated_channels_pb2_grpc.py +101 -0
- sift/calculated_channels/v1/calculated_channels_pb2_grpc.pyi +64 -0
- sift/campaigns/__init__.py +0 -0
- sift/campaigns/v1/__init__.py +0 -0
- sift/campaigns/v1/campaigns_pb2.py +144 -0
- sift/campaigns/v1/campaigns_pb2.pyi +383 -0
- sift/campaigns/v1/campaigns_pb2_grpc.py +169 -0
- sift/campaigns/v1/campaigns_pb2_grpc.pyi +104 -0
- sift/channel_schemas/__init__.py +0 -0
- sift/channel_schemas/v1/__init__.py +0 -0
- sift/channel_schemas/v1/channel_schemas_pb2.py +69 -0
- sift/channel_schemas/v1/channel_schemas_pb2.pyi +117 -0
- sift/channel_schemas/v1/channel_schemas_pb2_grpc.py +101 -0
- sift/channel_schemas/v1/channel_schemas_pb2_grpc.pyi +64 -0
- sift/channels/__init__.py +0 -0
- sift/channels/v2/__init__.py +0 -0
- sift/channels/v2/channels_pb2.py +88 -0
- sift/channels/v2/channels_pb2.pyi +183 -0
- sift/channels/v2/channels_pb2_grpc.py +101 -0
- sift/channels/v2/channels_pb2_grpc.pyi +64 -0
- sift/common/__init__.py +0 -0
- sift/common/type/__init__.py +0 -0
- sift/common/type/v1/__init__.py +0 -0
- sift/common/type/v1/channel_bit_field_element_pb2.py +34 -0
- sift/common/type/v1/channel_bit_field_element_pb2.pyi +33 -0
- sift/common/type/v1/channel_bit_field_element_pb2_grpc.py +4 -0
- sift/common/type/v1/channel_bit_field_element_pb2_grpc.pyi +17 -0
- sift/common/type/v1/channel_data_type_pb2.py +29 -0
- sift/common/type/v1/channel_data_type_pb2.pyi +50 -0
- sift/common/type/v1/channel_data_type_pb2_grpc.py +4 -0
- sift/common/type/v1/channel_data_type_pb2_grpc.pyi +17 -0
- sift/common/type/v1/channel_enum_type_pb2.py +32 -0
- sift/common/type/v1/channel_enum_type_pb2.pyi +29 -0
- sift/common/type/v1/channel_enum_type_pb2_grpc.py +4 -0
- sift/common/type/v1/channel_enum_type_pb2_grpc.pyi +17 -0
- sift/common/type/v1/organization_pb2.py +27 -0
- sift/common/type/v1/organization_pb2.pyi +29 -0
- sift/common/type/v1/organization_pb2_grpc.py +4 -0
- sift/common/type/v1/organization_pb2_grpc.pyi +17 -0
- sift/common/type/v1/resource_identifier_pb2.py +46 -0
- sift/common/type/v1/resource_identifier_pb2.pyi +145 -0
- sift/common/type/v1/resource_identifier_pb2_grpc.py +4 -0
- sift/common/type/v1/resource_identifier_pb2_grpc.pyi +17 -0
- sift/common/type/v1/user_pb2.py +33 -0
- sift/common/type/v1/user_pb2.pyi +36 -0
- sift/common/type/v1/user_pb2_grpc.py +4 -0
- sift/common/type/v1/user_pb2_grpc.pyi +17 -0
- sift/data/__init__.py +0 -0
- sift/data/v1/__init__.py +0 -0
- sift/data/v1/data_pb2.py +212 -0
- sift/data/v1/data_pb2.pyi +745 -0
- sift/data/v1/data_pb2_grpc.py +67 -0
- sift/data/v1/data_pb2_grpc.pyi +44 -0
- sift/ingest/__init__.py +0 -0
- sift/ingest/v1/__init__.py +0 -0
- sift/ingest/v1/ingest_pb2.py +35 -0
- sift/ingest/v1/ingest_pb2.pyi +118 -0
- sift/ingest/v1/ingest_pb2_grpc.py +66 -0
- sift/ingest/v1/ingest_pb2_grpc.pyi +41 -0
- sift/ingestion_configs/__init__.py +0 -0
- sift/ingestion_configs/v1/__init__.py +0 -0
- sift/ingestion_configs/v1/ingestion_configs_pb2.py +115 -0
- sift/ingestion_configs/v1/ingestion_configs_pb2.pyi +332 -0
- sift/ingestion_configs/v1/ingestion_configs_pb2_grpc.py +203 -0
- sift/ingestion_configs/v1/ingestion_configs_pb2_grpc.pyi +124 -0
- sift/notifications/__init__.py +0 -0
- sift/notifications/v1/__init__.py +0 -0
- sift/notifications/v1/notifications_pb2.py +64 -0
- sift/notifications/v1/notifications_pb2.pyi +225 -0
- sift/notifications/v1/notifications_pb2_grpc.py +101 -0
- sift/notifications/v1/notifications_pb2_grpc.pyi +64 -0
- sift/ping/__init__.py +0 -0
- sift/ping/v1/__init__.py +0 -0
- sift/ping/v1/ping_pb2.py +38 -0
- sift/ping/v1/ping_pb2.pyi +36 -0
- sift/ping/v1/ping_pb2_grpc.py +66 -0
- sift/ping/v1/ping_pb2_grpc.pyi +41 -0
- sift/remote_files/__init__.py +0 -0
- sift/remote_files/v1/__init__.py +0 -0
- sift/remote_files/v1/remote_files_pb2.py +174 -0
- sift/remote_files/v1/remote_files_pb2.pyi +472 -0
- sift/remote_files/v1/remote_files_pb2_grpc.py +271 -0
- sift/remote_files/v1/remote_files_pb2_grpc.pyi +164 -0
- sift/report_templates/__init__.py +0 -0
- sift/report_templates/v1/__init__.py +0 -0
- sift/report_templates/v1/report_templates_pb2.py +146 -0
- sift/report_templates/v1/report_templates_pb2.pyi +381 -0
- sift/report_templates/v1/report_templates_pb2_grpc.py +169 -0
- sift/report_templates/v1/report_templates_pb2_grpc.pyi +104 -0
- sift/reports/__init__.py +0 -0
- sift/reports/v1/__init__.py +0 -0
- sift/reports/v1/reports_pb2.py +193 -0
- sift/reports/v1/reports_pb2.pyi +562 -0
- sift/reports/v1/reports_pb2_grpc.py +205 -0
- sift/reports/v1/reports_pb2_grpc.pyi +136 -0
- sift/rule_evaluation/__init__.py +0 -0
- sift/rule_evaluation/v1/__init__.py +0 -0
- sift/rule_evaluation/v1/rule_evaluation_pb2.py +89 -0
- sift/rule_evaluation/v1/rule_evaluation_pb2.pyi +263 -0
- sift/rule_evaluation/v1/rule_evaluation_pb2_grpc.py +101 -0
- sift/rule_evaluation/v1/rule_evaluation_pb2_grpc.pyi +64 -0
- sift/rules/__init__.py +0 -0
- sift/rules/v1/__init__.py +0 -0
- sift/rules/v1/rules_pb2.py +420 -0
- sift/rules/v1/rules_pb2.pyi +1355 -0
- sift/rules/v1/rules_pb2_grpc.py +577 -0
- sift/rules/v1/rules_pb2_grpc.pyi +351 -0
- sift/runs/__init__.py +0 -0
- sift/runs/v2/__init__.py +0 -0
- sift/runs/v2/runs_pb2.py +150 -0
- sift/runs/v2/runs_pb2.pyi +413 -0
- sift/runs/v2/runs_pb2_grpc.py +271 -0
- sift/runs/v2/runs_pb2_grpc.pyi +164 -0
- sift/saved_searches/__init__.py +0 -0
- sift/saved_searches/v1/__init__.py +0 -0
- sift/saved_searches/v1/saved_searches_pb2.py +144 -0
- sift/saved_searches/v1/saved_searches_pb2.pyi +385 -0
- sift/saved_searches/v1/saved_searches_pb2_grpc.py +237 -0
- sift/saved_searches/v1/saved_searches_pb2_grpc.pyi +144 -0
- sift/tags/__init__.py +0 -0
- sift/tags/v1/__init__.py +0 -0
- sift/tags/v1/tags_pb2.py +49 -0
- sift/tags/v1/tags_pb2.pyi +71 -0
- sift/tags/v1/tags_pb2_grpc.py +4 -0
- sift/tags/v1/tags_pb2_grpc.pyi +17 -0
- sift/users/__init__.py +0 -0
- sift/users/v2/__init__.py +0 -0
- sift/users/v2/users_pb2.py +61 -0
- sift/users/v2/users_pb2.pyi +142 -0
- sift/users/v2/users_pb2_grpc.py +135 -0
- sift/users/v2/users_pb2_grpc.pyi +84 -0
- sift/views/__init__.py +0 -0
- sift/views/v1/__init__.py +0 -0
- sift/views/v1/views_pb2.py +130 -0
- sift/views/v1/views_pb2.pyi +466 -0
- sift/views/v1/views_pb2_grpc.py +305 -0
- sift/views/v1/views_pb2_grpc.pyi +184 -0
- sift_grafana/py.typed +0 -0
- sift_grafana/sift_query_model.py +64 -0
- sift_py/__init__.py +923 -0
- sift_py/_internal/__init__.py +5 -0
- sift_py/_internal/cel.py +18 -0
- sift_py/_internal/channel.py +42 -0
- sift_py/_internal/convert/__init__.py +3 -0
- sift_py/_internal/convert/json.py +24 -0
- sift_py/_internal/convert/protobuf.py +34 -0
- sift_py/_internal/convert/timestamp.py +9 -0
- sift_py/_internal/test_util/__init__.py +0 -0
- sift_py/_internal/test_util/channel.py +136 -0
- sift_py/_internal/test_util/fn.py +14 -0
- sift_py/_internal/test_util/server_interceptor.py +62 -0
- sift_py/_internal/time.py +48 -0
- sift_py/_internal/user.py +39 -0
- sift_py/data/__init__.py +171 -0
- sift_py/data/_channel.py +38 -0
- sift_py/data/_deserialize.py +208 -0
- sift_py/data/_deserialize_test.py +134 -0
- sift_py/data/_service_test.py +276 -0
- sift_py/data/_validate.py +10 -0
- sift_py/data/error.py +5 -0
- sift_py/data/query.py +299 -0
- sift_py/data/service.py +497 -0
- sift_py/data_import/__init__.py +130 -0
- sift_py/data_import/_config.py +167 -0
- sift_py/data_import/_config_test.py +166 -0
- sift_py/data_import/_csv_test.py +395 -0
- sift_py/data_import/_status_test.py +176 -0
- sift_py/data_import/_tdms_test.py +238 -0
- sift_py/data_import/ch10.py +157 -0
- sift_py/data_import/config.py +19 -0
- sift_py/data_import/csv.py +259 -0
- sift_py/data_import/status.py +113 -0
- sift_py/data_import/tdms.py +206 -0
- sift_py/data_import/tempfile.py +30 -0
- sift_py/data_import/time_format.py +39 -0
- sift_py/error.py +11 -0
- sift_py/file_attachment/__init__.py +88 -0
- sift_py/file_attachment/_internal/__init__.py +0 -0
- sift_py/file_attachment/_internal/download.py +13 -0
- sift_py/file_attachment/_internal/upload.py +100 -0
- sift_py/file_attachment/_service_test.py +161 -0
- sift_py/file_attachment/entity.py +30 -0
- sift_py/file_attachment/metadata.py +107 -0
- sift_py/file_attachment/service.py +142 -0
- sift_py/grpc/__init__.py +15 -0
- sift_py/grpc/_async_interceptors/__init__.py +0 -0
- sift_py/grpc/_async_interceptors/base.py +72 -0
- sift_py/grpc/_async_interceptors/metadata.py +36 -0
- sift_py/grpc/_interceptors/__init__.py +0 -0
- sift_py/grpc/_interceptors/base.py +61 -0
- sift_py/grpc/_interceptors/context.py +25 -0
- sift_py/grpc/_interceptors/metadata.py +33 -0
- sift_py/grpc/_retry.py +70 -0
- sift_py/grpc/keepalive.py +34 -0
- sift_py/grpc/transport.py +250 -0
- sift_py/grpc/transport_test.py +170 -0
- sift_py/ingestion/__init__.py +6 -0
- sift_py/ingestion/_internal/__init__.py +6 -0
- sift_py/ingestion/_internal/channel.py +12 -0
- sift_py/ingestion/_internal/error.py +10 -0
- sift_py/ingestion/_internal/ingest.py +350 -0
- sift_py/ingestion/_internal/ingest_test.py +357 -0
- sift_py/ingestion/_internal/ingestion_config.py +130 -0
- sift_py/ingestion/_internal/run.py +46 -0
- sift_py/ingestion/_service_test.py +478 -0
- sift_py/ingestion/buffer.py +189 -0
- sift_py/ingestion/channel.py +422 -0
- sift_py/ingestion/config/__init__.py +3 -0
- sift_py/ingestion/config/telemetry.py +281 -0
- sift_py/ingestion/config/telemetry_test.py +405 -0
- sift_py/ingestion/config/yaml/__init__.py +0 -0
- sift_py/ingestion/config/yaml/error.py +44 -0
- sift_py/ingestion/config/yaml/load.py +126 -0
- sift_py/ingestion/config/yaml/spec.py +58 -0
- sift_py/ingestion/config/yaml/test_load.py +25 -0
- sift_py/ingestion/flow.py +73 -0
- sift_py/ingestion/manager.py +99 -0
- sift_py/ingestion/rule/__init__.py +4 -0
- sift_py/ingestion/rule/config.py +11 -0
- sift_py/ingestion/service.py +237 -0
- sift_py/py.typed +0 -0
- sift_py/report_templates/__init__.py +0 -0
- sift_py/report_templates/_config_test.py +34 -0
- sift_py/report_templates/_service_test.py +94 -0
- sift_py/report_templates/config.py +36 -0
- sift_py/report_templates/service.py +171 -0
- sift_py/rest.py +29 -0
- sift_py/rule/__init__.py +0 -0
- sift_py/rule/_config_test.py +109 -0
- sift_py/rule/_service_test.py +168 -0
- sift_py/rule/config.py +229 -0
- sift_py/rule/service.py +484 -0
- sift_py/yaml/__init__.py +0 -0
- sift_py/yaml/_channel_test.py +169 -0
- sift_py/yaml/_rule_test.py +207 -0
- sift_py/yaml/channel.py +224 -0
- sift_py/yaml/report_templates.py +73 -0
- sift_py/yaml/rule.py +321 -0
- sift_py/yaml/utils.py +15 -0
- sift_stack_py-0.3.2.dist-info/LICENSE +7 -0
- sift_stack_py-0.3.2.dist-info/METADATA +109 -0
- sift_stack_py-0.3.2.dist-info/RECORD +291 -0
- sift_stack_py-0.3.2.dist-info/WHEEL +5 -0
- 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
|
sift/ping/v1/__init__.py
ADDED
|
File without changes
|
sift/ping/v1/ping_pb2.py
ADDED
|
@@ -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
|