sift-stack-py 0.2.2__tar.gz → 0.3.0__tar.gz

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 (306) hide show
  1. {sift_stack_py-0.2.2/lib/sift_stack_py.egg-info → sift_stack_py-0.3.0}/PKG-INFO +12 -5
  2. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotation_logs/v1/annotation_logs_pb2.pyi +1 -1
  3. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotations/v1/annotations_pb2.py +44 -38
  4. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotations/v1/annotations_pb2.pyi +27 -6
  5. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/assets/v1/assets_pb2.py +21 -19
  6. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/assets/v1/assets_pb2.pyi +14 -3
  7. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/calculated_channels/v1/calculated_channels_pb2.py +20 -16
  8. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/calculated_channels/v1/calculated_channels_pb2.pyi +29 -1
  9. sift_stack_py-0.3.0/lib/sift/campaigns/v1/campaigns_pb2.py +144 -0
  10. sift_stack_py-0.3.0/lib/sift/campaigns/v1/campaigns_pb2.pyi +383 -0
  11. sift_stack_py-0.3.0/lib/sift/campaigns/v1/campaigns_pb2_grpc.py +169 -0
  12. sift_stack_py-0.3.0/lib/sift/campaigns/v1/campaigns_pb2_grpc.pyi +104 -0
  13. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/channel_schemas/v1/channel_schemas_pb2.pyi +3 -1
  14. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/channels/v2/channels_pb2.py +11 -7
  15. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/channels/v2/channels_pb2.pyi +17 -4
  16. sift_stack_py-0.3.0/lib/sift/common/type/v1/resource_identifier_pb2.py +46 -0
  17. sift_stack_py-0.3.0/lib/sift/common/type/v1/resource_identifier_pb2.pyi +145 -0
  18. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/data/v1/data_pb2.pyi +1 -0
  19. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/ingestion_configs/v1/ingestion_configs_pb2.pyi +2 -2
  20. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/notifications/v1/notifications_pb2.py +4 -4
  21. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/notifications/v1/notifications_pb2.pyi +3 -1
  22. sift_stack_py-0.3.0/lib/sift/ping/v1/ping_pb2.py +38 -0
  23. sift_stack_py-0.3.0/lib/sift/ping/v1/ping_pb2.pyi +36 -0
  24. sift_stack_py-0.3.0/lib/sift/ping/v1/ping_pb2_grpc.py +66 -0
  25. sift_stack_py-0.3.0/lib/sift/ping/v1/ping_pb2_grpc.pyi +41 -0
  26. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/remote_files/v1/remote_files_pb2.pyi +1 -1
  27. sift_stack_py-0.3.0/lib/sift/report_templates/v1/report_templates_pb2.py +146 -0
  28. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/report_templates/v1/report_templates_pb2.pyi +129 -1
  29. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/report_templates/v1/report_templates_pb2_grpc.py +68 -0
  30. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/report_templates/v1/report_templates_pb2_grpc.pyi +40 -0
  31. sift_stack_py-0.3.0/lib/sift/reports/v1/reports_pb2.py +193 -0
  32. sift_stack_py-0.3.0/lib/sift/reports/v1/reports_pb2.pyi +562 -0
  33. sift_stack_py-0.3.0/lib/sift/reports/v1/reports_pb2_grpc.py +205 -0
  34. sift_stack_py-0.3.0/lib/sift/reports/v1/reports_pb2_grpc.pyi +136 -0
  35. sift_stack_py-0.3.0/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py +89 -0
  36. sift_stack_py-0.3.0/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi +263 -0
  37. sift_stack_py-0.3.0/lib/sift/rule_evaluation/v1/rule_evaluation_pb2_grpc.py +101 -0
  38. sift_stack_py-0.3.0/lib/sift/rule_evaluation/v1/rule_evaluation_pb2_grpc.pyi +64 -0
  39. sift_stack_py-0.3.0/lib/sift/rules/v1/rules_pb2.py +420 -0
  40. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/rules/v1/rules_pb2.pyi +98 -6
  41. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/rules/v1/rules_pb2_grpc.py +35 -1
  42. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/rules/v1/rules_pb2_grpc.pyi +23 -3
  43. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/runs/v2/runs_pb2.py +40 -32
  44. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/runs/v2/runs_pb2.pyi +29 -7
  45. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/saved_searches/v1/saved_searches_pb2.py +34 -30
  46. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/saved_searches/v1/saved_searches_pb2.pyi +15 -4
  47. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/tags/v1/tags_pb2.py +7 -1
  48. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/tags/v1/tags_pb2.pyi +23 -0
  49. sift_stack_py-0.3.0/lib/sift/tags/v1/tags_pb2_grpc.py +4 -0
  50. sift_stack_py-0.3.0/lib/sift/tags/v1/tags_pb2_grpc.pyi +17 -0
  51. sift_stack_py-0.3.0/lib/sift/users/v2/__init__.py +0 -0
  52. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/users/v2/users_pb2.pyi +1 -1
  53. sift_stack_py-0.3.0/lib/sift/views/__init__.py +0 -0
  54. sift_stack_py-0.3.0/lib/sift/views/v1/__init__.py +0 -0
  55. sift_stack_py-0.3.0/lib/sift/views/v1/views_pb2.py +130 -0
  56. sift_stack_py-0.3.0/lib/sift/views/v1/views_pb2.pyi +466 -0
  57. sift_stack_py-0.3.0/lib/sift/views/v1/views_pb2_grpc.py +305 -0
  58. sift_stack_py-0.3.0/lib/sift/views/v1/views_pb2_grpc.pyi +184 -0
  59. sift_stack_py-0.3.0/lib/sift_grafana/py.typed +0 -0
  60. sift_stack_py-0.3.0/lib/sift_py/_internal/channel.py +42 -0
  61. sift_stack_py-0.3.0/lib/sift_py/_internal/test_util/__init__.py +0 -0
  62. sift_stack_py-0.3.0/lib/sift_py/_internal/user.py +39 -0
  63. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/_service_test.py +63 -11
  64. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/service.py +31 -26
  65. sift_stack_py-0.3.0/lib/sift_py/data_import/__init__.py +129 -0
  66. sift_stack_py-0.3.0/lib/sift_py/data_import/_config.py +167 -0
  67. sift_stack_py-0.3.0/lib/sift_py/data_import/_config_test.py +166 -0
  68. sift_stack_py-0.3.0/lib/sift_py/data_import/_csv_test.py +395 -0
  69. sift_stack_py-0.3.0/lib/sift_py/data_import/_status_test.py +176 -0
  70. sift_stack_py-0.3.0/lib/sift_py/data_import/_tdms_test.py +238 -0
  71. sift_stack_py-0.3.0/lib/sift_py/data_import/ch10.py +157 -0
  72. sift_stack_py-0.3.0/lib/sift_py/data_import/config.py +19 -0
  73. sift_stack_py-0.3.0/lib/sift_py/data_import/csv.py +259 -0
  74. sift_stack_py-0.3.0/lib/sift_py/data_import/status.py +113 -0
  75. sift_stack_py-0.3.0/lib/sift_py/data_import/tdms.py +200 -0
  76. sift_stack_py-0.3.0/lib/sift_py/data_import/time_format.py +39 -0
  77. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/file_attachment/__init__.py +2 -2
  78. sift_stack_py-0.3.0/lib/sift_py/file_attachment/_internal/__init__.py +0 -0
  79. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/file_attachment/_internal/upload.py +3 -16
  80. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/file_attachment/_service_test.py +9 -8
  81. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/file_attachment/metadata.py +18 -2
  82. sift_stack_py-0.3.0/lib/sift_py/grpc/_async_interceptors/__init__.py +0 -0
  83. sift_stack_py-0.3.0/lib/sift_py/grpc/_interceptors/__init__.py +0 -0
  84. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/keepalive.py +3 -3
  85. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/transport.py +71 -23
  86. sift_stack_py-0.3.0/lib/sift_py/ingestion/_internal/channel.py +12 -0
  87. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/_internal/ingest.py +12 -39
  88. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/_internal/ingest_test.py +16 -56
  89. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/channel.py +91 -48
  90. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/config/telemetry.py +29 -13
  91. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/config/telemetry_test.py +7 -2
  92. sift_stack_py-0.3.0/lib/sift_py/ingestion/config/yaml/__init__.py +0 -0
  93. sift_stack_py-0.3.0/lib/sift_py/ingestion/config/yaml/load.py +126 -0
  94. sift_stack_py-0.3.0/lib/sift_py/ingestion/config/yaml/spec.py +58 -0
  95. sift_stack_py-0.3.0/lib/sift_py/ingestion/config/yaml/test_load.py +25 -0
  96. sift_stack_py-0.3.0/lib/sift_py/ingestion/rule/__init__.py +4 -0
  97. sift_stack_py-0.3.0/lib/sift_py/ingestion/rule/config.py +11 -0
  98. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/service.py +0 -1
  99. sift_stack_py-0.3.0/lib/sift_py/py.typed +0 -0
  100. sift_stack_py-0.3.0/lib/sift_py/report_templates/__init__.py +0 -0
  101. sift_stack_py-0.3.0/lib/sift_py/report_templates/_config_test.py +34 -0
  102. sift_stack_py-0.3.0/lib/sift_py/report_templates/_service_test.py +94 -0
  103. sift_stack_py-0.3.0/lib/sift_py/report_templates/config.py +36 -0
  104. sift_stack_py-0.3.0/lib/sift_py/report_templates/service.py +171 -0
  105. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/rest.py +13 -0
  106. sift_stack_py-0.3.0/lib/sift_py/rule/__init__.py +0 -0
  107. sift_stack_py-0.3.0/lib/sift_py/rule/_service_test.py +168 -0
  108. {sift_stack_py-0.2.2/lib/sift_py/ingestion → sift_stack_py-0.3.0/lib/sift_py}/rule/config.py +44 -30
  109. sift_stack_py-0.3.0/lib/sift_py/rule/service.py +484 -0
  110. sift_stack_py-0.3.0/lib/sift_py/yaml/__init__.py +0 -0
  111. sift_stack_py-0.3.0/lib/sift_py/yaml/channel.py +224 -0
  112. sift_stack_py-0.3.0/lib/sift_py/yaml/channel_test.py +169 -0
  113. sift_stack_py-0.3.0/lib/sift_py/yaml/report_templates.py +73 -0
  114. sift_stack_py-0.3.0/lib/sift_py/yaml/rule.py +321 -0
  115. sift_stack_py-0.3.0/lib/sift_py/yaml/rule_test.py +207 -0
  116. sift_stack_py-0.3.0/lib/sift_py/yaml/utils.py +15 -0
  117. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0/lib/sift_stack_py.egg-info}/PKG-INFO +12 -5
  118. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_stack_py.egg-info/SOURCES.txt +64 -2
  119. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_stack_py.egg-info/requires.txt +12 -4
  120. sift_stack_py-0.3.0/pyproject.toml +169 -0
  121. sift_stack_py-0.2.2/lib/sift/report_templates/v1/report_templates_pb2.py +0 -113
  122. sift_stack_py-0.2.2/lib/sift/rules/v1/rules_pb2.py +0 -390
  123. sift_stack_py-0.2.2/lib/sift_py/_internal/channel.py +0 -5
  124. sift_stack_py-0.2.2/lib/sift_py/ingestion/_internal/channel.py +0 -39
  125. sift_stack_py-0.2.2/lib/sift_py/ingestion/_internal/rule.py +0 -50
  126. sift_stack_py-0.2.2/lib/sift_py/ingestion/config/yaml/load.py +0 -444
  127. sift_stack_py-0.2.2/lib/sift_py/ingestion/config/yaml/spec.py +0 -179
  128. sift_stack_py-0.2.2/lib/sift_py/ingestion/config/yaml/test_load.py +0 -337
  129. sift_stack_py-0.2.2/lib/sift_py/ingestion/rule/__init__.py +0 -3
  130. sift_stack_py-0.2.2/pyproject.toml +0 -134
  131. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/LICENSE +0 -0
  132. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/README.md +0 -0
  133. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/__init__.py +0 -0
  134. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/__init__.py +0 -0
  135. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/annotations_pb2.py +0 -0
  136. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/annotations_pb2.pyi +0 -0
  137. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/annotations_pb2_grpc.py +0 -0
  138. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/annotations_pb2_grpc.pyi +0 -0
  139. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/field_behavior_pb2.py +0 -0
  140. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/field_behavior_pb2.pyi +0 -0
  141. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/field_behavior_pb2_grpc.py +0 -0
  142. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/field_behavior_pb2_grpc.pyi +0 -0
  143. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/http_pb2.py +0 -0
  144. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/http_pb2.pyi +0 -0
  145. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/http_pb2_grpc.py +0 -0
  146. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/google/api/http_pb2_grpc.pyi +0 -0
  147. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/__init__.py +0 -0
  148. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/__init__.py +0 -0
  149. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/annotations_pb2.py +0 -0
  150. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/annotations_pb2.pyi +0 -0
  151. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/annotations_pb2_grpc.py +0 -0
  152. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/annotations_pb2_grpc.pyi +0 -0
  153. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/openapiv2_pb2.py +0 -0
  154. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/openapiv2_pb2.pyi +0 -0
  155. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/openapiv2_pb2_grpc.py +0 -0
  156. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/protoc_gen_openapiv2/options/openapiv2_pb2_grpc.pyi +0 -0
  157. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/__init__.py +0 -0
  158. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotation_logs/__init__.py +0 -0
  159. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotation_logs/v1/__init__.py +0 -0
  160. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotation_logs/v1/annotation_logs_pb2.py +0 -0
  161. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotation_logs/v1/annotation_logs_pb2_grpc.py +0 -0
  162. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotation_logs/v1/annotation_logs_pb2_grpc.pyi +0 -0
  163. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotations/__init__.py +0 -0
  164. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotations/v1/__init__.py +0 -0
  165. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotations/v1/annotations_pb2_grpc.py +0 -0
  166. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/annotations/v1/annotations_pb2_grpc.pyi +0 -0
  167. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/assets/__init__.py +0 -0
  168. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/assets/v1/__init__.py +0 -0
  169. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/assets/v1/assets_pb2_grpc.py +0 -0
  170. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/assets/v1/assets_pb2_grpc.pyi +0 -0
  171. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/calculated_channels/__init__.py +0 -0
  172. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/calculated_channels/v1/__init__.py +0 -0
  173. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/calculated_channels/v1/calculated_channels_pb2_grpc.py +0 -0
  174. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/calculated_channels/v1/calculated_channels_pb2_grpc.pyi +0 -0
  175. {sift_stack_py-0.2.2/lib/sift/channel_schemas → sift_stack_py-0.3.0/lib/sift/campaigns}/__init__.py +0 -0
  176. {sift_stack_py-0.2.2/lib/sift/channel_schemas → sift_stack_py-0.3.0/lib/sift/campaigns}/v1/__init__.py +0 -0
  177. {sift_stack_py-0.2.2/lib/sift/channels → sift_stack_py-0.3.0/lib/sift/channel_schemas}/__init__.py +0 -0
  178. {sift_stack_py-0.2.2/lib/sift/channels/v2 → sift_stack_py-0.3.0/lib/sift/channel_schemas/v1}/__init__.py +0 -0
  179. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/channel_schemas/v1/channel_schemas_pb2.py +0 -0
  180. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/channel_schemas/v1/channel_schemas_pb2_grpc.py +0 -0
  181. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/channel_schemas/v1/channel_schemas_pb2_grpc.pyi +0 -0
  182. {sift_stack_py-0.2.2/lib/sift/common → sift_stack_py-0.3.0/lib/sift/channels}/__init__.py +0 -0
  183. {sift_stack_py-0.2.2/lib/sift/common/type → sift_stack_py-0.3.0/lib/sift/channels/v2}/__init__.py +0 -0
  184. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/channels/v2/channels_pb2_grpc.py +0 -0
  185. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/channels/v2/channels_pb2_grpc.pyi +0 -0
  186. {sift_stack_py-0.2.2/lib/sift/common/type/v1 → sift_stack_py-0.3.0/lib/sift/common}/__init__.py +0 -0
  187. {sift_stack_py-0.2.2/lib/sift/data → sift_stack_py-0.3.0/lib/sift/common/type}/__init__.py +0 -0
  188. {sift_stack_py-0.2.2/lib/sift/data → sift_stack_py-0.3.0/lib/sift/common/type}/v1/__init__.py +0 -0
  189. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_bit_field_element_pb2.py +0 -0
  190. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_bit_field_element_pb2.pyi +0 -0
  191. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_bit_field_element_pb2_grpc.py +0 -0
  192. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_bit_field_element_pb2_grpc.pyi +0 -0
  193. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_data_type_pb2.py +0 -0
  194. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_data_type_pb2.pyi +0 -0
  195. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_data_type_pb2_grpc.py +0 -0
  196. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_data_type_pb2_grpc.pyi +0 -0
  197. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_enum_type_pb2.py +0 -0
  198. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_enum_type_pb2.pyi +0 -0
  199. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_enum_type_pb2_grpc.py +0 -0
  200. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/channel_enum_type_pb2_grpc.pyi +0 -0
  201. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/organization_pb2.py +0 -0
  202. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/organization_pb2.pyi +0 -0
  203. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/organization_pb2_grpc.py +0 -0
  204. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/organization_pb2_grpc.pyi +0 -0
  205. /sift_stack_py-0.2.2/lib/sift/common/type/v1/user_pb2_grpc.py → /sift_stack_py-0.3.0/lib/sift/common/type/v1/resource_identifier_pb2_grpc.py +0 -0
  206. /sift_stack_py-0.2.2/lib/sift/common/type/v1/user_pb2_grpc.pyi → /sift_stack_py-0.3.0/lib/sift/common/type/v1/resource_identifier_pb2_grpc.pyi +0 -0
  207. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/user_pb2.py +0 -0
  208. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/common/type/v1/user_pb2.pyi +0 -0
  209. /sift_stack_py-0.2.2/lib/sift/tags/v1/tags_pb2_grpc.py → /sift_stack_py-0.3.0/lib/sift/common/type/v1/user_pb2_grpc.py +0 -0
  210. /sift_stack_py-0.2.2/lib/sift/tags/v1/tags_pb2_grpc.pyi → /sift_stack_py-0.3.0/lib/sift/common/type/v1/user_pb2_grpc.pyi +0 -0
  211. {sift_stack_py-0.2.2/lib/sift/ingest → sift_stack_py-0.3.0/lib/sift/data}/__init__.py +0 -0
  212. {sift_stack_py-0.2.2/lib/sift/ingest → sift_stack_py-0.3.0/lib/sift/data}/v1/__init__.py +0 -0
  213. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/data/v1/data_pb2.py +0 -0
  214. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/data/v1/data_pb2_grpc.py +0 -0
  215. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/data/v1/data_pb2_grpc.pyi +0 -0
  216. {sift_stack_py-0.2.2/lib/sift/ingestion_configs → sift_stack_py-0.3.0/lib/sift/ingest}/__init__.py +0 -0
  217. {sift_stack_py-0.2.2/lib/sift/ingestion_configs → sift_stack_py-0.3.0/lib/sift/ingest}/v1/__init__.py +0 -0
  218. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/ingest/v1/ingest_pb2.py +0 -0
  219. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/ingest/v1/ingest_pb2.pyi +0 -0
  220. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/ingest/v1/ingest_pb2_grpc.py +0 -0
  221. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/ingest/v1/ingest_pb2_grpc.pyi +0 -0
  222. {sift_stack_py-0.2.2/lib/sift/notifications → sift_stack_py-0.3.0/lib/sift/ingestion_configs}/__init__.py +0 -0
  223. {sift_stack_py-0.2.2/lib/sift/notifications → sift_stack_py-0.3.0/lib/sift/ingestion_configs}/v1/__init__.py +0 -0
  224. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/ingestion_configs/v1/ingestion_configs_pb2.py +0 -0
  225. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/ingestion_configs/v1/ingestion_configs_pb2_grpc.py +0 -0
  226. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/ingestion_configs/v1/ingestion_configs_pb2_grpc.pyi +0 -0
  227. {sift_stack_py-0.2.2/lib/sift/remote_files → sift_stack_py-0.3.0/lib/sift/notifications}/__init__.py +0 -0
  228. {sift_stack_py-0.2.2/lib/sift/remote_files → sift_stack_py-0.3.0/lib/sift/notifications}/v1/__init__.py +0 -0
  229. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/notifications/v1/notifications_pb2_grpc.py +0 -0
  230. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/notifications/v1/notifications_pb2_grpc.pyi +0 -0
  231. {sift_stack_py-0.2.2/lib/sift/report_templates → sift_stack_py-0.3.0/lib/sift/ping}/__init__.py +0 -0
  232. {sift_stack_py-0.2.2/lib/sift/report_templates → sift_stack_py-0.3.0/lib/sift/ping}/v1/__init__.py +0 -0
  233. {sift_stack_py-0.2.2/lib/sift/rules → sift_stack_py-0.3.0/lib/sift/remote_files}/__init__.py +0 -0
  234. {sift_stack_py-0.2.2/lib/sift/rules → sift_stack_py-0.3.0/lib/sift/remote_files}/v1/__init__.py +0 -0
  235. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/remote_files/v1/remote_files_pb2.py +0 -0
  236. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/remote_files/v1/remote_files_pb2_grpc.py +0 -0
  237. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/remote_files/v1/remote_files_pb2_grpc.pyi +0 -0
  238. {sift_stack_py-0.2.2/lib/sift/runs → sift_stack_py-0.3.0/lib/sift/report_templates}/__init__.py +0 -0
  239. {sift_stack_py-0.2.2/lib/sift/runs/v2 → sift_stack_py-0.3.0/lib/sift/report_templates/v1}/__init__.py +0 -0
  240. {sift_stack_py-0.2.2/lib/sift/saved_searches → sift_stack_py-0.3.0/lib/sift/reports}/__init__.py +0 -0
  241. {sift_stack_py-0.2.2/lib/sift/saved_searches → sift_stack_py-0.3.0/lib/sift/reports}/v1/__init__.py +0 -0
  242. {sift_stack_py-0.2.2/lib/sift/tags → sift_stack_py-0.3.0/lib/sift/rule_evaluation}/__init__.py +0 -0
  243. {sift_stack_py-0.2.2/lib/sift/tags → sift_stack_py-0.3.0/lib/sift/rule_evaluation}/v1/__init__.py +0 -0
  244. {sift_stack_py-0.2.2/lib/sift/users → sift_stack_py-0.3.0/lib/sift/rules}/__init__.py +0 -0
  245. {sift_stack_py-0.2.2/lib/sift/users/v2 → sift_stack_py-0.3.0/lib/sift/rules/v1}/__init__.py +0 -0
  246. {sift_stack_py-0.2.2/lib/sift_py/_internal/test_util → sift_stack_py-0.3.0/lib/sift/runs}/__init__.py +0 -0
  247. {sift_stack_py-0.2.2/lib/sift_py/file_attachment/_internal → sift_stack_py-0.3.0/lib/sift/runs/v2}/__init__.py +0 -0
  248. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/runs/v2/runs_pb2_grpc.py +0 -0
  249. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/runs/v2/runs_pb2_grpc.pyi +0 -0
  250. {sift_stack_py-0.2.2/lib/sift_py/grpc/_async_interceptors → sift_stack_py-0.3.0/lib/sift/saved_searches}/__init__.py +0 -0
  251. {sift_stack_py-0.2.2/lib/sift_py/grpc/_interceptors → sift_stack_py-0.3.0/lib/sift/saved_searches/v1}/__init__.py +0 -0
  252. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/saved_searches/v1/saved_searches_pb2_grpc.py +0 -0
  253. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/saved_searches/v1/saved_searches_pb2_grpc.pyi +0 -0
  254. {sift_stack_py-0.2.2/lib/sift_py/ingestion/config/yaml → sift_stack_py-0.3.0/lib/sift/tags}/__init__.py +0 -0
  255. /sift_stack_py-0.2.2/lib/sift_grafana/py.typed → /sift_stack_py-0.3.0/lib/sift/tags/v1/__init__.py +0 -0
  256. /sift_stack_py-0.2.2/lib/sift_py/py.typed → /sift_stack_py-0.3.0/lib/sift/users/__init__.py +0 -0
  257. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/users/v2/users_pb2.py +0 -0
  258. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/users/v2/users_pb2_grpc.py +0 -0
  259. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift/users/v2/users_pb2_grpc.pyi +0 -0
  260. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_grafana/sift_query_model.py +0 -0
  261. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/__init__.py +0 -0
  262. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/__init__.py +0 -0
  263. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/cel.py +0 -0
  264. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/convert/__init__.py +0 -0
  265. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/convert/json.py +0 -0
  266. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/convert/protobuf.py +0 -0
  267. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/convert/timestamp.py +0 -0
  268. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/test_util/channel.py +0 -0
  269. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/test_util/fn.py +0 -0
  270. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/test_util/server_interceptor.py +0 -0
  271. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/_internal/time.py +0 -0
  272. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/__init__.py +0 -0
  273. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/_channel.py +0 -0
  274. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/_deserialize.py +0 -0
  275. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/_deserialize_test.py +0 -0
  276. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/_validate.py +0 -0
  277. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/error.py +0 -0
  278. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/data/query.py +0 -0
  279. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/error.py +0 -0
  280. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/file_attachment/_internal/download.py +0 -0
  281. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/file_attachment/entity.py +0 -0
  282. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/file_attachment/service.py +0 -0
  283. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/__init__.py +0 -0
  284. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/_async_interceptors/base.py +0 -0
  285. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/_async_interceptors/metadata.py +0 -0
  286. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/_interceptors/base.py +0 -0
  287. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/_interceptors/context.py +0 -0
  288. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/_interceptors/metadata.py +0 -0
  289. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/_retry.py +0 -0
  290. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/grpc/transport_test.py +0 -0
  291. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/__init__.py +0 -0
  292. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/_internal/__init__.py +0 -0
  293. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/_internal/error.py +0 -0
  294. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/_internal/ingestion_config.py +0 -0
  295. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/_internal/run.py +0 -0
  296. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/_service_test.py +0 -0
  297. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/buffer.py +0 -0
  298. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/config/__init__.py +0 -0
  299. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/config/yaml/error.py +0 -0
  300. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/flow.py +0 -0
  301. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_py/ingestion/manager.py +0 -0
  302. /sift_stack_py-0.2.2/lib/sift_py/ingestion/rule/config_test.py → /sift_stack_py-0.3.0/lib/sift_py/rule/_config_test.py +0 -0
  303. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_stack_py.egg-info/dependency_links.txt +0 -0
  304. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/lib/sift_stack_py.egg-info/top_level.txt +0 -0
  305. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/setup.cfg +0 -0
  306. {sift_stack_py-0.2.2 → sift_stack_py-0.3.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sift_stack_py
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: Python client library for the Sift API
5
5
  Maintainer-email: Sift Software Engineers <engineering@siftstack.com>
6
6
  License: Copyright (c) 2024 Azimuth Industries Inc.
@@ -25,21 +25,24 @@ Classifier: Programming Language :: Python :: 3.12
25
25
  Requires-Python: >=3.8
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
- Requires-Dist: grpcio~=1.64
28
+ Requires-Dist: grpcio~=1.13
29
29
  Requires-Dist: PyYAML~=6.0
30
30
  Requires-Dist: pandas~=2.0
31
- Requires-Dist: protobuf~=5.26
31
+ Requires-Dist: protobuf>=4.0
32
32
  Requires-Dist: pydantic~=2.0
33
+ Requires-Dist: pydantic_core~=2.3
33
34
  Requires-Dist: requests~=2.25
34
35
  Requires-Dist: requests-toolbelt~=1.0
36
+ Requires-Dist: npTDMS~=1.9
35
37
  Requires-Dist: pandas-stubs~=2.0
36
38
  Requires-Dist: types-PyYAML~=6.0
37
- Requires-Dist: types-protobuf~=5.26
39
+ Requires-Dist: types-protobuf>=4.0
38
40
  Requires-Dist: typing-extensions~=4.6
39
41
  Requires-Dist: types-requests~=2.25
40
42
  Provides-Extra: development
41
- Requires-Dist: grpcio-testing==1.64.1; extra == "development"
43
+ Requires-Dist: grpcio-testing~=1.13; extra == "development"
42
44
  Requires-Dist: mypy==1.10.0; extra == "development"
45
+ Requires-Dist: pyright==1.1.386; extra == "development"
43
46
  Requires-Dist: pytest==8.2.2; extra == "development"
44
47
  Requires-Dist: pytest-asyncio==0.23.7; extra == "development"
45
48
  Requires-Dist: pytest-benchmark==4.0.0; extra == "development"
@@ -48,6 +51,10 @@ Requires-Dist: ruff; extra == "development"
48
51
  Provides-Extra: build
49
52
  Requires-Dist: pdoc==14.5.0; extra == "build"
50
53
  Requires-Dist: build==1.2.1; extra == "build"
54
+ Provides-Extra: openssl
55
+ Requires-Dist: pyOpenSSL<24.0.0; extra == "openssl"
56
+ Requires-Dist: types-pyOpenSSL<24.0.0; extra == "openssl"
57
+ Requires-Dist: cffi~=1.14; extra == "openssl"
51
58
 
52
59
  # Sift Python
53
60
  [![pypi](https://img.shields.io/pypi/v/sift-stack-py)](https://pypi.org/project/sift-stack-py/)
@@ -161,7 +161,7 @@ class ListAnnotationLogsRequest(google.protobuf.message.Message):
161
161
  Available fields to filter by are `annotation_log_id`, `annotation_id`, `created_by_user_id`,
162
162
  `created_date`, `modified_date`, and `kind`.
163
163
  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).
164
- For more information about the fields used for filtering, please refer to [this definition](/protocol-buffers/documentation#annotationlogsearchresult). Optional.
164
+ For more information about the fields used for filtering, please refer to [this definition](/api/grpc/protocol_buffers/annotation_logs#annotationlogsearchresult). Optional.
165
165
  """
166
166
  def __init__(
167
167
  self,
@@ -19,7 +19,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
19
19
  from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
20
20
 
21
21
 
22
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sift/annotations/v1/annotations.proto\x12\x13sift.annotations.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\"\xcc\x08\n\nAnnotation\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x1f\n\x06run_id\x18\n \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12\x44\n\x05state\x18\x0b \x01(\x0e\x32$.sift.annotations.v1.AnnotationStateB\x03\xe0\x41\x01H\x01R\x05state\x88\x01\x01\x12,\n\x0forganization_id\x18\x0c \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x32\n\x13\x61ssigned_to_user_id\x18\r \x01(\tB\x03\xe0\x41\x01R\x10\x61ssignedToUserId\x12Q\n\x0f\x61nnotation_type\x18\x0e \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeB\x03\xe0\x41\x02R\x0e\x61nnotationType\x12\x17\n\x04tags\x18\x0f \x03(\tB\x03\xe0\x41\x02R\x04tags\x12-\n\rlegend_config\x18\x10 \x01(\tB\x03\xe0\x41\x01H\x02R\x0clegendConfig\x88\x01\x01\x12?\n\x17\x63reated_by_condition_id\x18\x11 \x01(\tB\x03\xe0\x41\x01H\x03R\x14\x63reatedByConditionId\x88\x01\x01\x12W\n$created_by_rule_condition_version_id\x18\x12 \x01(\tB\x03\xe0\x41\x01H\x04R\x1f\x63reatedByRuleConditionVersionId\x88\x01\x01\x42\t\n\x07_run_idB\x08\n\x06_stateB\x10\n\x0e_legend_configB\x1a\n\x18_created_by_condition_idB\'\n%_created_by_rule_condition_version_id\"E\n\x1f\x41nnotationLinkedChannelsChannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"x\n\'AnnotationLinkedChannelsBitFieldElement\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12)\n\x0e\x62it_field_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0c\x62itFieldName\"\xdf\x01\n\x17\x41nnotationLinkedChannel\x12P\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x34.sift.annotations.v1.AnnotationLinkedChannelsChannelH\x00R\x07\x63hannel\x12j\n\x11\x62it_field_element\x18\x02 \x01(\x0b\x32<.sift.annotations.v1.AnnotationLinkedChannelsBitFieldElementH\x00R\x0f\x62itFieldElementB\x06\n\x04type\"\xcf\x07\n\x17\x43reateAnnotationRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x1b\n\x06\x61ssets\x18\x05 \x03(\tB\x03\xe0\x41\x01R\x06\x61ssets\x12Z\n\x0flinked_channels\x18\x06 \x03(\x0b\x32,.sift.annotations.v1.AnnotationLinkedChannelB\x03\xe0\x41\x01R\x0elinkedChannels\x12\x17\n\x04tags\x18\x07 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12\x1f\n\x06run_id\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12\x33\n\x11\x61ssign_to_user_id\x18\t \x01(\tB\x03\xe0\x41\x01H\x01R\x0e\x61ssignToUserId\x88\x01\x01\x12,\n\x0forganization_id\x18\n \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x44\n\x05state\x18\x0b \x01(\x0e\x32$.sift.annotations.v1.AnnotationStateB\x03\xe0\x41\x01H\x02R\x05state\x88\x01\x01\x12Q\n\x0f\x61nnotation_type\x18\x0c \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeB\x03\xe0\x41\x01R\x0e\x61nnotationType\x12?\n\x17\x63reated_by_condition_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x03R\x14\x63reatedByConditionId\x88\x01\x01\x12-\n\rlegend_config\x18\r \x01(\tB\x03\xe0\x41\x01H\x04R\x0clegendConfig\x88\x01\x01\x12W\n$created_by_rule_condition_version_id\x18\x0f \x01(\tB\x03\xe0\x41\x01H\x05R\x1f\x63reatedByRuleConditionVersionId\x88\x01\x01\x42\t\n\x07_run_idB\x14\n\x12_assign_to_user_idB\x08\n\x06_stateB\x1a\n\x18_created_by_condition_idB\x10\n\x0e_legend_configB\'\n%_created_by_rule_condition_version_id\"`\n\x18\x43reateAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"C\n\x17\x44\x65leteAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"\x1a\n\x18\x44\x65leteAnnotationResponse\"K\n\x1d\x42\x61tchDeleteAnnotationsRequest\x12*\n\x0e\x61nnotation_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\rannotationIds\" \n\x1e\x42\x61tchDeleteAnnotationsResponse\"@\n\x14GetAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"]\n\x15GetAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"{\n\x16ListAnnotationsRequest\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\"\x84\x01\n\x17ListAnnotationsResponse\x12\x41\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\x0b\x61nnotations\x12&\n\x0fnext_page_token\x18\x05 \x01(\tR\rnextPageToken\"\xa1\x01\n\x17UpdateAnnotationRequest\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"[\n\x18UpdateAnnotationResponse\x12?\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\nannotation*\x8b\x01\n\x0f\x41nnotationState\x12 \n\x1c\x41NNOTATION_STATE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41NNOTATION_STATE_OPEN\x10\x01\x12\x1c\n\x18\x41NNOTATION_STATE_FLAGGED\x10\x02\x12\x1d\n\x19\x41NNOTATION_STATE_RESOLVED\x10\x03*m\n\x0e\x41nnotationType\x12\x1f\n\x1b\x41NNOTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41NNOTATION_TYPE_DATA_REVIEW\x10\x01\x12\x19\n\x15\x41NNOTATION_TYPE_PHASE\x10\x02\x32\xcf\x0b\n\x11\x41nnotationService\x12\xbc\x01\n\x10\x43reateAnnotation\x12,.sift.annotations.v1.CreateAnnotationRequest\x1a-.sift.annotations.v1.CreateAnnotationResponse\"K\x92\x41*\x12\x10\x43reateAnnotation\x1a\x16\x43reates an annotation.\x82\xd3\xe4\x93\x02\x18\"\x13/api/v1/annotations:\x01*\x12\xc9\x01\n\x10\x44\x65leteAnnotation\x12,.sift.annotations.v1.DeleteAnnotationRequest\x1a-.sift.annotations.v1.DeleteAnnotationResponse\"X\x92\x41*\x12\x10\x44\x65leteAnnotation\x1a\x16\x44\x65letes an annotation.\x82\xd3\xe4\x93\x02%*#/api/v1/annotations/{annotation_id}\x12\xe3\x01\n\x16\x42\x61tchDeleteAnnotations\x12\x32.sift.annotations.v1.BatchDeleteAnnotationsRequest\x1a\x33.sift.annotations.v1.BatchDeleteAnnotationsResponse\"`\x92\x41\x33\x12\x15\x42\x61tchDeleteAnnotation\x1a\x1a\x42\x61tch deletes annotations.\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/annotations:batchDelete:\x01*\x12\xcd\x01\n\x0fListAnnotations\x12+.sift.annotations.v1.ListAnnotationsRequest\x1a,.sift.annotations.v1.ListAnnotationsResponse\"_\x92\x41\x41\x12\x0eListAnnotation\x1a/Retrieves annotations using an optional filter.\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/annotations\x12\xbe\x01\n\rGetAnnotation\x12).sift.annotations.v1.GetAnnotationRequest\x1a*.sift.annotations.v1.GetAnnotationResponse\"V\x92\x41(\x12\rGetAnnotation\x1a\x17Retrieves an annotation\x82\xd3\xe4\x93\x02%\x12#/api/v1/annotations/{annotation_id}\x12\x80\x02\n\x10UpdateAnnotation\x12,.sift.annotations.v1.UpdateAnnotationRequest\x1a-.sift.annotations.v1.UpdateAnnotationResponse\"\x8e\x01\x92\x41m\x12\x10UpdateAnnotation\x1aYUpdates an existing annotation using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x18\x32\x13/api/v1/annotations:\x01*\x1a\xb4\x01\x92\x41\xb0\x01\x12\x36Service to programmatically interact with annotations.\x1av\n\x1cRead more about annotations.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685B\xb2\x01\n\x17\x63om.sift.annotations.v1B\x10\x41nnotationsProtoP\x01\xa2\x02\x03SAX\xaa\x02\x13Sift.Annotations.V1\xca\x02\x13Sift\\Annotations\\V1\xe2\x02\x1fSift\\Annotations\\V1\\GPBMetadata\xea\x02\x15Sift::Annotations::V1\x92\x41\x16\x12\x14\n\x12\x41nnotation Serviceb\x06proto3')
22
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%sift/annotations/v1/annotations.proto\x12\x13sift.annotations.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\"\xa6\t\n\nAnnotation\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x1f\n\x06run_id\x18\n \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12\x44\n\x05state\x18\x0b \x01(\x0e\x32$.sift.annotations.v1.AnnotationStateB\x03\xe0\x41\x01H\x01R\x05state\x88\x01\x01\x12,\n\x0forganization_id\x18\x0c \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x32\n\x13\x61ssigned_to_user_id\x18\r \x01(\tB\x03\xe0\x41\x01R\x10\x61ssignedToUserId\x12Q\n\x0f\x61nnotation_type\x18\x0e \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeB\x03\xe0\x41\x02R\x0e\x61nnotationType\x12\x17\n\x04tags\x18\x0f \x03(\tB\x03\xe0\x41\x02R\x04tags\x12-\n\rlegend_config\x18\x10 \x01(\tB\x03\xe0\x41\x01H\x02R\x0clegendConfig\x88\x01\x01\x12?\n\x17\x63reated_by_condition_id\x18\x11 \x01(\tB\x03\xe0\x41\x01H\x03R\x14\x63reatedByConditionId\x88\x01\x01\x12W\n$created_by_rule_condition_version_id\x18\x12 \x01(\tB\x03\xe0\x41\x01H\x04R\x1f\x63reatedByRuleConditionVersionId\x88\x01\x01\x12=\n\x16report_rule_version_id\x18\x13 \x01(\tB\x03\xe0\x41\x01H\x05R\x13reportRuleVersionId\x88\x01\x01\x42\t\n\x07_run_idB\x08\n\x06_stateB\x10\n\x0e_legend_configB\x1a\n\x18_created_by_condition_idB\'\n%_created_by_rule_condition_version_idB\x19\n\x17_report_rule_version_id\"E\n\x1f\x41nnotationLinkedChannelsChannel\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"x\n\'AnnotationLinkedChannelsBitFieldElement\x12\"\n\nchannel_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12)\n\x0e\x62it_field_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0c\x62itFieldName\"\xdf\x01\n\x17\x41nnotationLinkedChannel\x12P\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x34.sift.annotations.v1.AnnotationLinkedChannelsChannelH\x00R\x07\x63hannel\x12j\n\x11\x62it_field_element\x18\x02 \x01(\x0b\x32<.sift.annotations.v1.AnnotationLinkedChannelsBitFieldElementH\x00R\x0f\x62itFieldElementB\x06\n\x04type\"\xcf\x07\n\x17\x43reateAnnotationRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x0b\x64\x65scription\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x1b\n\x06\x61ssets\x18\x05 \x03(\tB\x03\xe0\x41\x01R\x06\x61ssets\x12Z\n\x0flinked_channels\x18\x06 \x03(\x0b\x32,.sift.annotations.v1.AnnotationLinkedChannelB\x03\xe0\x41\x01R\x0elinkedChannels\x12\x17\n\x04tags\x18\x07 \x03(\tB\x03\xe0\x41\x01R\x04tags\x12\x1f\n\x06run_id\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12\x33\n\x11\x61ssign_to_user_id\x18\t \x01(\tB\x03\xe0\x41\x01H\x01R\x0e\x61ssignToUserId\x88\x01\x01\x12,\n\x0forganization_id\x18\n \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x44\n\x05state\x18\x0b \x01(\x0e\x32$.sift.annotations.v1.AnnotationStateB\x03\xe0\x41\x01H\x02R\x05state\x88\x01\x01\x12Q\n\x0f\x61nnotation_type\x18\x0c \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeB\x03\xe0\x41\x01R\x0e\x61nnotationType\x12?\n\x17\x63reated_by_condition_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x03R\x14\x63reatedByConditionId\x88\x01\x01\x12-\n\rlegend_config\x18\r \x01(\tB\x03\xe0\x41\x01H\x04R\x0clegendConfig\x88\x01\x01\x12W\n$created_by_rule_condition_version_id\x18\x0f \x01(\tB\x03\xe0\x41\x01H\x05R\x1f\x63reatedByRuleConditionVersionId\x88\x01\x01\x42\t\n\x07_run_idB\x14\n\x12_assign_to_user_idB\x08\n\x06_stateB\x1a\n\x18_created_by_condition_idB\x10\n\x0e_legend_configB\'\n%_created_by_rule_condition_version_id\"`\n\x18\x43reateAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"C\n\x17\x44\x65leteAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"\x1a\n\x18\x44\x65leteAnnotationResponse\"K\n\x1d\x42\x61tchDeleteAnnotationsRequest\x12*\n\x0e\x61nnotation_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\rannotationIds\" \n\x1e\x42\x61tchDeleteAnnotationsResponse\"@\n\x14GetAnnotationRequest\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\"]\n\x15GetAnnotationResponse\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\"\xc9\x01\n\x16ListAnnotationsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x84\x01\n\x17ListAnnotationsResponse\x12\x41\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\x0b\x61nnotations\x12&\n\x0fnext_page_token\x18\x05 \x01(\tR\rnextPageToken\"\xa1\x01\n\x17UpdateAnnotationRequest\x12\x44\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationB\x03\xe0\x41\x02R\nannotation\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"[\n\x18UpdateAnnotationResponse\x12?\n\nannotation\x18\x01 \x01(\x0b\x32\x1f.sift.annotations.v1.AnnotationR\nannotation*\x8b\x01\n\x0f\x41nnotationState\x12 \n\x1c\x41NNOTATION_STATE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41NNOTATION_STATE_OPEN\x10\x01\x12\x1c\n\x18\x41NNOTATION_STATE_FLAGGED\x10\x02\x12\x1d\n\x19\x41NNOTATION_STATE_RESOLVED\x10\x03*m\n\x0e\x41nnotationType\x12\x1f\n\x1b\x41NNOTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41NNOTATION_TYPE_DATA_REVIEW\x10\x01\x12\x19\n\x15\x41NNOTATION_TYPE_PHASE\x10\x02\x32\xcf\x0b\n\x11\x41nnotationService\x12\xbc\x01\n\x10\x43reateAnnotation\x12,.sift.annotations.v1.CreateAnnotationRequest\x1a-.sift.annotations.v1.CreateAnnotationResponse\"K\x92\x41*\x12\x10\x43reateAnnotation\x1a\x16\x43reates an annotation.\x82\xd3\xe4\x93\x02\x18\"\x13/api/v1/annotations:\x01*\x12\xc9\x01\n\x10\x44\x65leteAnnotation\x12,.sift.annotations.v1.DeleteAnnotationRequest\x1a-.sift.annotations.v1.DeleteAnnotationResponse\"X\x92\x41*\x12\x10\x44\x65leteAnnotation\x1a\x16\x44\x65letes an annotation.\x82\xd3\xe4\x93\x02%*#/api/v1/annotations/{annotation_id}\x12\xe3\x01\n\x16\x42\x61tchDeleteAnnotations\x12\x32.sift.annotations.v1.BatchDeleteAnnotationsRequest\x1a\x33.sift.annotations.v1.BatchDeleteAnnotationsResponse\"`\x92\x41\x33\x12\x15\x42\x61tchDeleteAnnotation\x1a\x1a\x42\x61tch deletes annotations.\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/annotations:batchDelete:\x01*\x12\xcd\x01\n\x0fListAnnotations\x12+.sift.annotations.v1.ListAnnotationsRequest\x1a,.sift.annotations.v1.ListAnnotationsResponse\"_\x92\x41\x41\x12\x0eListAnnotation\x1a/Retrieves annotations using an optional filter.\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/annotations\x12\xbe\x01\n\rGetAnnotation\x12).sift.annotations.v1.GetAnnotationRequest\x1a*.sift.annotations.v1.GetAnnotationResponse\"V\x92\x41(\x12\rGetAnnotation\x1a\x17Retrieves an annotation\x82\xd3\xe4\x93\x02%\x12#/api/v1/annotations/{annotation_id}\x12\x80\x02\n\x10UpdateAnnotation\x12,.sift.annotations.v1.UpdateAnnotationRequest\x1a-.sift.annotations.v1.UpdateAnnotationResponse\"\x8e\x01\x92\x41m\x12\x10UpdateAnnotation\x1aYUpdates an existing annotation using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x18\x32\x13/api/v1/annotations:\x01*\x1a\xb4\x01\x92\x41\xb0\x01\x12\x36Service to programmatically interact with annotations.\x1av\n\x1cRead more about annotations.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685B\xb2\x01\n\x17\x63om.sift.annotations.v1B\x10\x41nnotationsProtoP\x01\xa2\x02\x03SAX\xaa\x02\x13Sift.Annotations.V1\xca\x02\x13Sift\\Annotations\\V1\xe2\x02\x1fSift\\Annotations\\V1\\GPBMetadata\xea\x02\x15Sift::Annotations::V1\x92\x41\x16\x12\x14\n\x12\x41nnotation Serviceb\x06proto3')
23
23
 
24
24
  _globals = globals()
25
25
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -63,6 +63,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
63
63
  _globals['_ANNOTATION'].fields_by_name['created_by_condition_id']._serialized_options = b'\340A\001'
64
64
  _globals['_ANNOTATION'].fields_by_name['created_by_rule_condition_version_id']._loaded_options = None
65
65
  _globals['_ANNOTATION'].fields_by_name['created_by_rule_condition_version_id']._serialized_options = b'\340A\001'
66
+ _globals['_ANNOTATION'].fields_by_name['report_rule_version_id']._loaded_options = None
67
+ _globals['_ANNOTATION'].fields_by_name['report_rule_version_id']._serialized_options = b'\340A\001'
66
68
  _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL'].fields_by_name['channel_id']._loaded_options = None
67
69
  _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL'].fields_by_name['channel_id']._serialized_options = b'\340A\002'
68
70
  _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT'].fields_by_name['channel_id']._loaded_options = None
@@ -115,6 +117,10 @@ if not _descriptor._USE_C_DESCRIPTORS:
115
117
  _globals['_LISTANNOTATIONSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001'
116
118
  _globals['_LISTANNOTATIONSREQUEST'].fields_by_name['filter']._loaded_options = None
117
119
  _globals['_LISTANNOTATIONSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001'
120
+ _globals['_LISTANNOTATIONSREQUEST'].fields_by_name['organization_id']._loaded_options = None
121
+ _globals['_LISTANNOTATIONSREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001'
122
+ _globals['_LISTANNOTATIONSREQUEST'].fields_by_name['order_by']._loaded_options = None
123
+ _globals['_LISTANNOTATIONSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001'
118
124
  _globals['_UPDATEANNOTATIONREQUEST'].fields_by_name['annotation']._loaded_options = None
119
125
  _globals['_UPDATEANNOTATIONREQUEST'].fields_by_name['annotation']._serialized_options = b'\340A\002'
120
126
  _globals['_UPDATEANNOTATIONREQUEST'].fields_by_name['update_mask']._loaded_options = None
@@ -133,42 +139,42 @@ if not _descriptor._USE_C_DESCRIPTORS:
133
139
  _globals['_ANNOTATIONSERVICE'].methods_by_name['GetAnnotation']._serialized_options = b'\222A(\022\rGetAnnotation\032\027Retrieves an annotation\202\323\344\223\002%\022#/api/v1/annotations/{annotation_id}'
134
140
  _globals['_ANNOTATIONSERVICE'].methods_by_name['UpdateAnnotation']._loaded_options = None
135
141
  _globals['_ANNOTATIONSERVICE'].methods_by_name['UpdateAnnotation']._serialized_options = b'\222Am\022\020UpdateAnnotation\032YUpdates an existing annotation using using the list of fields specified in `update_mask`.\202\323\344\223\002\0302\023/api/v1/annotations:\001*'
136
- _globals['_ANNOTATIONSTATE']._serialized_start=3725
137
- _globals['_ANNOTATIONSTATE']._serialized_end=3864
138
- _globals['_ANNOTATIONTYPE']._serialized_start=3866
139
- _globals['_ANNOTATIONTYPE']._serialized_end=3975
142
+ _globals['_ANNOTATIONSTATE']._serialized_start=3894
143
+ _globals['_ANNOTATIONSTATE']._serialized_end=4033
144
+ _globals['_ANNOTATIONTYPE']._serialized_start=4035
145
+ _globals['_ANNOTATIONTYPE']._serialized_end=4144
140
146
  _globals['_ANNOTATION']._serialized_start=241
141
- _globals['_ANNOTATION']._serialized_end=1341
142
- _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL']._serialized_start=1343
143
- _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL']._serialized_end=1412
144
- _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT']._serialized_start=1414
145
- _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT']._serialized_end=1534
146
- _globals['_ANNOTATIONLINKEDCHANNEL']._serialized_start=1537
147
- _globals['_ANNOTATIONLINKEDCHANNEL']._serialized_end=1760
148
- _globals['_CREATEANNOTATIONREQUEST']._serialized_start=1763
149
- _globals['_CREATEANNOTATIONREQUEST']._serialized_end=2738
150
- _globals['_CREATEANNOTATIONRESPONSE']._serialized_start=2740
151
- _globals['_CREATEANNOTATIONRESPONSE']._serialized_end=2836
152
- _globals['_DELETEANNOTATIONREQUEST']._serialized_start=2838
153
- _globals['_DELETEANNOTATIONREQUEST']._serialized_end=2905
154
- _globals['_DELETEANNOTATIONRESPONSE']._serialized_start=2907
155
- _globals['_DELETEANNOTATIONRESPONSE']._serialized_end=2933
156
- _globals['_BATCHDELETEANNOTATIONSREQUEST']._serialized_start=2935
157
- _globals['_BATCHDELETEANNOTATIONSREQUEST']._serialized_end=3010
158
- _globals['_BATCHDELETEANNOTATIONSRESPONSE']._serialized_start=3012
159
- _globals['_BATCHDELETEANNOTATIONSRESPONSE']._serialized_end=3044
160
- _globals['_GETANNOTATIONREQUEST']._serialized_start=3046
161
- _globals['_GETANNOTATIONREQUEST']._serialized_end=3110
162
- _globals['_GETANNOTATIONRESPONSE']._serialized_start=3112
163
- _globals['_GETANNOTATIONRESPONSE']._serialized_end=3205
164
- _globals['_LISTANNOTATIONSREQUEST']._serialized_start=3207
165
- _globals['_LISTANNOTATIONSREQUEST']._serialized_end=3330
166
- _globals['_LISTANNOTATIONSRESPONSE']._serialized_start=3333
167
- _globals['_LISTANNOTATIONSRESPONSE']._serialized_end=3465
168
- _globals['_UPDATEANNOTATIONREQUEST']._serialized_start=3468
169
- _globals['_UPDATEANNOTATIONREQUEST']._serialized_end=3629
170
- _globals['_UPDATEANNOTATIONRESPONSE']._serialized_start=3631
171
- _globals['_UPDATEANNOTATIONRESPONSE']._serialized_end=3722
172
- _globals['_ANNOTATIONSERVICE']._serialized_start=3978
173
- _globals['_ANNOTATIONSERVICE']._serialized_end=5465
147
+ _globals['_ANNOTATION']._serialized_end=1431
148
+ _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL']._serialized_start=1433
149
+ _globals['_ANNOTATIONLINKEDCHANNELSCHANNEL']._serialized_end=1502
150
+ _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT']._serialized_start=1504
151
+ _globals['_ANNOTATIONLINKEDCHANNELSBITFIELDELEMENT']._serialized_end=1624
152
+ _globals['_ANNOTATIONLINKEDCHANNEL']._serialized_start=1627
153
+ _globals['_ANNOTATIONLINKEDCHANNEL']._serialized_end=1850
154
+ _globals['_CREATEANNOTATIONREQUEST']._serialized_start=1853
155
+ _globals['_CREATEANNOTATIONREQUEST']._serialized_end=2828
156
+ _globals['_CREATEANNOTATIONRESPONSE']._serialized_start=2830
157
+ _globals['_CREATEANNOTATIONRESPONSE']._serialized_end=2926
158
+ _globals['_DELETEANNOTATIONREQUEST']._serialized_start=2928
159
+ _globals['_DELETEANNOTATIONREQUEST']._serialized_end=2995
160
+ _globals['_DELETEANNOTATIONRESPONSE']._serialized_start=2997
161
+ _globals['_DELETEANNOTATIONRESPONSE']._serialized_end=3023
162
+ _globals['_BATCHDELETEANNOTATIONSREQUEST']._serialized_start=3025
163
+ _globals['_BATCHDELETEANNOTATIONSREQUEST']._serialized_end=3100
164
+ _globals['_BATCHDELETEANNOTATIONSRESPONSE']._serialized_start=3102
165
+ _globals['_BATCHDELETEANNOTATIONSRESPONSE']._serialized_end=3134
166
+ _globals['_GETANNOTATIONREQUEST']._serialized_start=3136
167
+ _globals['_GETANNOTATIONREQUEST']._serialized_end=3200
168
+ _globals['_GETANNOTATIONRESPONSE']._serialized_start=3202
169
+ _globals['_GETANNOTATIONRESPONSE']._serialized_end=3295
170
+ _globals['_LISTANNOTATIONSREQUEST']._serialized_start=3298
171
+ _globals['_LISTANNOTATIONSREQUEST']._serialized_end=3499
172
+ _globals['_LISTANNOTATIONSRESPONSE']._serialized_start=3502
173
+ _globals['_LISTANNOTATIONSRESPONSE']._serialized_end=3634
174
+ _globals['_UPDATEANNOTATIONREQUEST']._serialized_start=3637
175
+ _globals['_UPDATEANNOTATIONREQUEST']._serialized_end=3798
176
+ _globals['_UPDATEANNOTATIONRESPONSE']._serialized_start=3800
177
+ _globals['_UPDATEANNOTATIONRESPONSE']._serialized_end=3891
178
+ _globals['_ANNOTATIONSERVICE']._serialized_start=4147
179
+ _globals['_ANNOTATIONSERVICE']._serialized_end=5634
174
180
  # @@protoc_insertion_point(module_scope)
@@ -79,6 +79,7 @@ class Annotation(google.protobuf.message.Message):
79
79
  LEGEND_CONFIG_FIELD_NUMBER: builtins.int
80
80
  CREATED_BY_CONDITION_ID_FIELD_NUMBER: builtins.int
81
81
  CREATED_BY_RULE_CONDITION_VERSION_ID_FIELD_NUMBER: builtins.int
82
+ REPORT_RULE_VERSION_ID_FIELD_NUMBER: builtins.int
82
83
  annotation_id: builtins.str
83
84
  name: builtins.str
84
85
  description: builtins.str
@@ -92,6 +93,7 @@ class Annotation(google.protobuf.message.Message):
92
93
  legend_config: builtins.str
93
94
  created_by_condition_id: builtins.str
94
95
  created_by_rule_condition_version_id: builtins.str
96
+ report_rule_version_id: builtins.str
95
97
  @property
96
98
  def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
97
99
  @property
@@ -123,9 +125,10 @@ class Annotation(google.protobuf.message.Message):
123
125
  legend_config: builtins.str | None = ...,
124
126
  created_by_condition_id: builtins.str | None = ...,
125
127
  created_by_rule_condition_version_id: builtins.str | None = ...,
128
+ report_rule_version_id: builtins.str | None = ...,
126
129
  ) -> None: ...
127
- def HasField(self, field_name: typing.Literal["_created_by_condition_id", b"_created_by_condition_id", "_created_by_rule_condition_version_id", b"_created_by_rule_condition_version_id", "_legend_config", b"_legend_config", "_run_id", b"_run_id", "_state", b"_state", "created_by_condition_id", b"created_by_condition_id", "created_by_rule_condition_version_id", b"created_by_rule_condition_version_id", "created_date", b"created_date", "end_time", b"end_time", "legend_config", b"legend_config", "modified_date", b"modified_date", "run_id", b"run_id", "start_time", b"start_time", "state", b"state"]) -> builtins.bool: ...
128
- def ClearField(self, field_name: typing.Literal["_created_by_condition_id", b"_created_by_condition_id", "_created_by_rule_condition_version_id", b"_created_by_rule_condition_version_id", "_legend_config", b"_legend_config", "_run_id", b"_run_id", "_state", b"_state", "annotation_id", b"annotation_id", "annotation_type", b"annotation_type", "assigned_to_user_id", b"assigned_to_user_id", "created_by_condition_id", b"created_by_condition_id", "created_by_rule_condition_version_id", b"created_by_rule_condition_version_id", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "end_time", b"end_time", "legend_config", b"legend_config", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "run_id", b"run_id", "start_time", b"start_time", "state", b"state", "tags", b"tags"]) -> None: ...
130
+ def HasField(self, field_name: typing.Literal["_created_by_condition_id", b"_created_by_condition_id", "_created_by_rule_condition_version_id", b"_created_by_rule_condition_version_id", "_legend_config", b"_legend_config", "_report_rule_version_id", b"_report_rule_version_id", "_run_id", b"_run_id", "_state", b"_state", "created_by_condition_id", b"created_by_condition_id", "created_by_rule_condition_version_id", b"created_by_rule_condition_version_id", "created_date", b"created_date", "end_time", b"end_time", "legend_config", b"legend_config", "modified_date", b"modified_date", "report_rule_version_id", b"report_rule_version_id", "run_id", b"run_id", "start_time", b"start_time", "state", b"state"]) -> builtins.bool: ...
131
+ def ClearField(self, field_name: typing.Literal["_created_by_condition_id", b"_created_by_condition_id", "_created_by_rule_condition_version_id", b"_created_by_rule_condition_version_id", "_legend_config", b"_legend_config", "_report_rule_version_id", b"_report_rule_version_id", "_run_id", b"_run_id", "_state", b"_state", "annotation_id", b"annotation_id", "annotation_type", b"annotation_type", "assigned_to_user_id", b"assigned_to_user_id", "created_by_condition_id", b"created_by_condition_id", "created_by_rule_condition_version_id", b"created_by_rule_condition_version_id", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "end_time", b"end_time", "legend_config", b"legend_config", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_rule_version_id", b"report_rule_version_id", "run_id", b"run_id", "start_time", b"start_time", "state", b"state", "tags", b"tags"]) -> None: ...
129
132
  @typing.overload
130
133
  def WhichOneof(self, oneof_group: typing.Literal["_created_by_condition_id", b"_created_by_condition_id"]) -> typing.Literal["created_by_condition_id"] | None: ...
131
134
  @typing.overload
@@ -133,6 +136,8 @@ class Annotation(google.protobuf.message.Message):
133
136
  @typing.overload
134
137
  def WhichOneof(self, oneof_group: typing.Literal["_legend_config", b"_legend_config"]) -> typing.Literal["legend_config"] | None: ...
135
138
  @typing.overload
139
+ def WhichOneof(self, oneof_group: typing.Literal["_report_rule_version_id", b"_report_rule_version_id"]) -> typing.Literal["report_rule_version_id"] | None: ...
140
+ @typing.overload
136
141
  def WhichOneof(self, oneof_group: typing.Literal["_run_id", b"_run_id"]) -> typing.Literal["run_id"] | None: ...
137
142
  @typing.overload
138
143
  def WhichOneof(self, oneof_group: typing.Literal["_state", b"_state"]) -> typing.Literal["state"] | None: ...
@@ -351,7 +356,9 @@ class BatchDeleteAnnotationsRequest(google.protobuf.message.Message):
351
356
 
352
357
  ANNOTATION_IDS_FIELD_NUMBER: builtins.int
353
358
  @property
354
- def annotation_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
359
+ def annotation_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
360
+ """Limit of 1000 annotations per batch"""
361
+
355
362
  def __init__(
356
363
  self,
357
364
  *,
@@ -416,6 +423,8 @@ class ListAnnotationsRequest(google.protobuf.message.Message):
416
423
  PAGE_SIZE_FIELD_NUMBER: builtins.int
417
424
  PAGE_TOKEN_FIELD_NUMBER: builtins.int
418
425
  FILTER_FIELD_NUMBER: builtins.int
426
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
427
+ ORDER_BY_FIELD_NUMBER: builtins.int
419
428
  page_size: builtins.int
420
429
  """The maximum number of annotations to return. The service may return fewer than this value.
421
430
  If unspecified, at most 50 annotations will be returned. The maximum value is 1000; values above
@@ -431,9 +440,18 @@ class ListAnnotationsRequest(google.protobuf.message.Message):
431
440
  """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.
432
441
  Available fields to filter by are `annotation_id`, `start_time`, `end_time`,
433
442
  `created_date`, `modified_date`, `run_id`, `name`, `description`, `state`, `created_by_user_id`, `created_by_rule_condition_version_id`,
434
- and `annotation_type`.
443
+ `annotation_type`, `tag_name`, and `assignee`.
435
444
  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).
436
- For more information about the fields used for filtering, please refer to [this definition](/protocol-buffers/documentation#annotation). Optional.
445
+ For more information about the fields used for filtering, please refer to [this definition](/api/grpc/protocol_buffers/annotations#annotation). Optional.
446
+ """
447
+ organization_id: builtins.str
448
+ """This field is only required if your user belongs to multiple organizations."""
449
+ order_by: builtins.str
450
+ """How to order the retrieved annotations. Formatted as a comma-separated string i.e. "<field_name>[ desc],...".
451
+ Available fields to order_by are `created_date`, `modified_date`, `start_time`, and `end_time`.
452
+ If left empty, items are ordered by `created_date` in ascending order (oldest-first).
453
+ For more information about the format of this field, read [this](https://google.aip.dev/132#ordering)
454
+ Example: "created_date desc,modified_date"
437
455
  """
438
456
  def __init__(
439
457
  self,
@@ -441,8 +459,10 @@ class ListAnnotationsRequest(google.protobuf.message.Message):
441
459
  page_size: builtins.int = ...,
442
460
  page_token: builtins.str = ...,
443
461
  filter: builtins.str = ...,
462
+ organization_id: builtins.str = ...,
463
+ order_by: builtins.str = ...,
444
464
  ) -> None: ...
445
- def ClearField(self, field_name: typing.Literal["filter", b"filter", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...
465
+ def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "organization_id", b"organization_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...
446
466
 
447
467
  global___ListAnnotationsRequest = ListAnnotationsRequest
448
468
 
@@ -455,6 +475,7 @@ class ListAnnotationsResponse(google.protobuf.message.Message):
455
475
  ANNOTATIONS_FIELD_NUMBER: builtins.int
456
476
  NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
457
477
  next_page_token: builtins.str
478
+ """Oops, we skipped to index 5! No reason for that; the indices between aren't reserved or anything."""
458
479
  @property
459
480
  def annotations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Annotation]: ...
460
481
  def __init__(
@@ -19,7 +19,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
19
19
  from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
20
20
 
21
21
 
22
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bsift/assets/v1/assets.proto\x12\x0esift.assets.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\"\xf7\x02\n\x05\x41sset\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x44\n\rmodified_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x17\n\x04tags\x18\t \x03(\tB\x03\xe0\x41\x02R\x04tags\"v\n\x11ListAssetsRequest\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\"k\n\x12ListAssetsResponse\x12-\n\x06\x61ssets\x18\x01 \x03(\x0b\x32\x15.sift.assets.v1.AssetR\x06\x61ssets\x12&\n\x0fnext_page_token\x18\x05 \x01(\tR\rnextPageToken\"4\n\x12\x44\x65leteAssetRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\"\x15\n\x13\x44\x65leteAssetResponse\"1\n\x0fGetAssetRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\"?\n\x10GetAssetResponse\x12+\n\x05\x61sset\x18\x01 \x01(\x0b\x32\x15.sift.assets.v1.AssetR\x05\x61sset\"\x83\x01\n\x12UpdateAssetRequest\x12+\n\x05\x61sset\x18\x01 \x01(\x0b\x32\x15.sift.assets.v1.AssetR\x05\x61sset\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"B\n\x13UpdateAssetResponse\x12+\n\x05\x61sset\x18\x01 \x01(\x0b\x32\x15.sift.assets.v1.AssetR\x05\x61sset2\x87\x06\n\x0c\x41ssetService\x12\x9c\x01\n\x0b\x44\x65leteAsset\x12\".sift.assets.v1.DeleteAssetRequest\x1a#.sift.assets.v1.DeleteAssetResponse\"D\x92\x41 \x12\x0b\x44\x65leteAsset\x1a\x11\x44\x65letes an asset.\x82\xd3\xe4\x93\x02\x1b*\x19/api/v1/assets/{asset_id}\x12\x92\x01\n\x08GetAsset\x12\x1f.sift.assets.v1.GetAssetRequest\x1a .sift.assets.v1.GetAssetResponse\"C\x92\x41\x1f\x12\x08GetAsset\x1a\x13Retrieves an asset.\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/v1/assets/{asset_id}\x12\xa6\x01\n\nListAssets\x12!.sift.assets.v1.ListAssetsRequest\x1a\".sift.assets.v1.ListAssetsResponse\"Q\x92\x41\x38\x12\nListAssets\x1a*Retrieves assets using an optional filter.\x82\xd3\xe4\x93\x02\x10\x12\x0e/api/v1/assets\x12\x9d\x01\n\x0bUpdateAsset\x12\".sift.assets.v1.UpdateAssetRequest\x1a#.sift.assets.v1.UpdateAssetResponse\"E\x92\x41)\x12\x0bUpdateAsset\x1a\x1aUpdate fields on an asset.\x82\xd3\xe4\x93\x02\x13\x32\x0e/api/v1/assets:\x01*\x1az\x92\x41w\x12\x44Service to programmatically interact with [assets](/glossary#asset).\x1a/\n Read more about what assets are.\x12\x0b/data-modelB\x8f\x01\n\x12\x63om.sift.assets.v1B\x0b\x41ssetsProtoP\x01\xa2\x02\x03SAX\xaa\x02\x0eSift.Assets.V1\xca\x02\x0eSift\\Assets\\V1\xe2\x02\x1aSift\\Assets\\V1\\GPBMetadata\xea\x02\x10Sift::Assets::V1\x92\x41\x11\x12\x0f\n\rAsset Serviceb\x06proto3')
22
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bsift/assets/v1/assets.proto\x12\x0esift.assets.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\"\xf7\x02\n\x05\x41sset\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x44\n\rmodified_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x17\n\x04tags\x18\t \x03(\tB\x03\xe0\x41\x02R\x04tags\"\x96\x01\n\x11ListAssetsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"k\n\x12ListAssetsResponse\x12-\n\x06\x61ssets\x18\x01 \x03(\x0b\x32\x15.sift.assets.v1.AssetR\x06\x61ssets\x12&\n\x0fnext_page_token\x18\x05 \x01(\tR\rnextPageToken\"4\n\x12\x44\x65leteAssetRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\"\x15\n\x13\x44\x65leteAssetResponse\"1\n\x0fGetAssetRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\"?\n\x10GetAssetResponse\x12+\n\x05\x61sset\x18\x01 \x01(\x0b\x32\x15.sift.assets.v1.AssetR\x05\x61sset\"\x83\x01\n\x12UpdateAssetRequest\x12+\n\x05\x61sset\x18\x01 \x01(\x0b\x32\x15.sift.assets.v1.AssetR\x05\x61sset\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"B\n\x13UpdateAssetResponse\x12+\n\x05\x61sset\x18\x01 \x01(\x0b\x32\x15.sift.assets.v1.AssetR\x05\x61sset2\x87\x06\n\x0c\x41ssetService\x12\x9c\x01\n\x0b\x44\x65leteAsset\x12\".sift.assets.v1.DeleteAssetRequest\x1a#.sift.assets.v1.DeleteAssetResponse\"D\x92\x41 \x12\x0b\x44\x65leteAsset\x1a\x11\x44\x65letes an asset.\x82\xd3\xe4\x93\x02\x1b*\x19/api/v1/assets/{asset_id}\x12\x92\x01\n\x08GetAsset\x12\x1f.sift.assets.v1.GetAssetRequest\x1a .sift.assets.v1.GetAssetResponse\"C\x92\x41\x1f\x12\x08GetAsset\x1a\x13Retrieves an asset.\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/v1/assets/{asset_id}\x12\xa6\x01\n\nListAssets\x12!.sift.assets.v1.ListAssetsRequest\x1a\".sift.assets.v1.ListAssetsResponse\"Q\x92\x41\x38\x12\nListAssets\x1a*Retrieves assets using an optional filter.\x82\xd3\xe4\x93\x02\x10\x12\x0e/api/v1/assets\x12\x9d\x01\n\x0bUpdateAsset\x12\".sift.assets.v1.UpdateAssetRequest\x1a#.sift.assets.v1.UpdateAssetResponse\"E\x92\x41)\x12\x0bUpdateAsset\x1a\x1aUpdate fields on an asset.\x82\xd3\xe4\x93\x02\x13\x32\x0e/api/v1/assets:\x01*\x1az\x92\x41w\x12\x44Service to programmatically interact with [assets](/glossary#asset).\x1a/\n Read more about what assets are.\x12\x0b/data-modelB\x8f\x01\n\x12\x63om.sift.assets.v1B\x0b\x41ssetsProtoP\x01\xa2\x02\x03SAX\xaa\x02\x0eSift.Assets.V1\xca\x02\x0eSift\\Assets\\V1\xe2\x02\x1aSift\\Assets\\V1\\GPBMetadata\xea\x02\x10Sift::Assets::V1\x92\x41\x11\x12\x0f\n\rAsset Serviceb\x06proto3')
23
23
 
24
24
  _globals = globals()
25
25
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -49,6 +49,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
49
49
  _globals['_LISTASSETSREQUEST'].fields_by_name['page_token']._serialized_options = b'\340A\001'
50
50
  _globals['_LISTASSETSREQUEST'].fields_by_name['filter']._loaded_options = None
51
51
  _globals['_LISTASSETSREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001'
52
+ _globals['_LISTASSETSREQUEST'].fields_by_name['order_by']._loaded_options = None
53
+ _globals['_LISTASSETSREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001'
52
54
  _globals['_DELETEASSETREQUEST'].fields_by_name['asset_id']._loaded_options = None
53
55
  _globals['_DELETEASSETREQUEST'].fields_by_name['asset_id']._serialized_options = b'\340A\002'
54
56
  _globals['_GETASSETREQUEST'].fields_by_name['asset_id']._loaded_options = None
@@ -67,22 +69,22 @@ if not _descriptor._USE_C_DESCRIPTORS:
67
69
  _globals['_ASSETSERVICE'].methods_by_name['UpdateAsset']._serialized_options = b'\222A)\022\013UpdateAsset\032\032Update fields on an asset.\202\323\344\223\002\0232\016/api/v1/assets:\001*'
68
70
  _globals['_ASSET']._serialized_start=226
69
71
  _globals['_ASSET']._serialized_end=601
70
- _globals['_LISTASSETSREQUEST']._serialized_start=603
71
- _globals['_LISTASSETSREQUEST']._serialized_end=721
72
- _globals['_LISTASSETSRESPONSE']._serialized_start=723
73
- _globals['_LISTASSETSRESPONSE']._serialized_end=830
74
- _globals['_DELETEASSETREQUEST']._serialized_start=832
75
- _globals['_DELETEASSETREQUEST']._serialized_end=884
76
- _globals['_DELETEASSETRESPONSE']._serialized_start=886
77
- _globals['_DELETEASSETRESPONSE']._serialized_end=907
78
- _globals['_GETASSETREQUEST']._serialized_start=909
79
- _globals['_GETASSETREQUEST']._serialized_end=958
80
- _globals['_GETASSETRESPONSE']._serialized_start=960
81
- _globals['_GETASSETRESPONSE']._serialized_end=1023
82
- _globals['_UPDATEASSETREQUEST']._serialized_start=1026
83
- _globals['_UPDATEASSETREQUEST']._serialized_end=1157
84
- _globals['_UPDATEASSETRESPONSE']._serialized_start=1159
85
- _globals['_UPDATEASSETRESPONSE']._serialized_end=1225
86
- _globals['_ASSETSERVICE']._serialized_start=1228
87
- _globals['_ASSETSERVICE']._serialized_end=2003
72
+ _globals['_LISTASSETSREQUEST']._serialized_start=604
73
+ _globals['_LISTASSETSREQUEST']._serialized_end=754
74
+ _globals['_LISTASSETSRESPONSE']._serialized_start=756
75
+ _globals['_LISTASSETSRESPONSE']._serialized_end=863
76
+ _globals['_DELETEASSETREQUEST']._serialized_start=865
77
+ _globals['_DELETEASSETREQUEST']._serialized_end=917
78
+ _globals['_DELETEASSETRESPONSE']._serialized_start=919
79
+ _globals['_DELETEASSETRESPONSE']._serialized_end=940
80
+ _globals['_GETASSETREQUEST']._serialized_start=942
81
+ _globals['_GETASSETREQUEST']._serialized_end=991
82
+ _globals['_GETASSETRESPONSE']._serialized_start=993
83
+ _globals['_GETASSETRESPONSE']._serialized_end=1056
84
+ _globals['_UPDATEASSETREQUEST']._serialized_start=1059
85
+ _globals['_UPDATEASSETREQUEST']._serialized_end=1190
86
+ _globals['_UPDATEASSETRESPONSE']._serialized_start=1192
87
+ _globals['_UPDATEASSETRESPONSE']._serialized_end=1258
88
+ _globals['_ASSETSERVICE']._serialized_start=1261
89
+ _globals['_ASSETSERVICE']._serialized_end=2036
88
90
  # @@protoc_insertion_point(module_scope)
@@ -36,7 +36,9 @@ class Asset(google.protobuf.message.Message):
36
36
  @property
37
37
  def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
38
38
  @property
39
- def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
39
+ def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
40
+ """The names of the tags to associate with this asset."""
41
+
40
42
  def __init__(
41
43
  self,
42
44
  *,
@@ -63,6 +65,7 @@ class ListAssetsRequest(google.protobuf.message.Message):
63
65
  PAGE_SIZE_FIELD_NUMBER: builtins.int
64
66
  PAGE_TOKEN_FIELD_NUMBER: builtins.int
65
67
  FILTER_FIELD_NUMBER: builtins.int
68
+ ORDER_BY_FIELD_NUMBER: builtins.int
66
69
  page_size: builtins.int
67
70
  """The maximum number of assets to return.
68
71
  The service may return fewer than this value.
@@ -80,7 +83,14 @@ class ListAssetsRequest(google.protobuf.message.Message):
80
83
  Available fields to filter by are `asset_id`, `created_by_user_id`, `modified_by_user_id`,
81
84
  `created_date`, `modified_date`, and `name`.
82
85
  For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).
83
- For more information about the fields used for filtering, please refer to [this definition](/protocol-buffers/documentation#asset). Optional.
86
+ For more information about the fields used for filtering, please refer to [this definition](/api/grpc/protocol_buffers/assets#asset). Optional.
87
+ """
88
+ order_by: builtins.str
89
+ """How to order the retrieved assets. Formatted as a comma-separated string i.e. "<field_name>[ desc],...".
90
+ Available fields to order_by are `created_date` and `modified_date`.
91
+ If left empty, items are ordered by `created_date` in ascending order (oldest-first).
92
+ For more information about the format of this field, read [this](https://google.aip.dev/132#ordering)
93
+ Example: "created_date desc,modified_date"
84
94
  """
85
95
  def __init__(
86
96
  self,
@@ -88,8 +98,9 @@ class ListAssetsRequest(google.protobuf.message.Message):
88
98
  page_size: builtins.int = ...,
89
99
  page_token: builtins.str = ...,
90
100
  filter: builtins.str = ...,
101
+ order_by: builtins.str = ...,
91
102
  ) -> None: ...
92
- def ClearField(self, field_name: typing.Literal["filter", b"filter", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...
103
+ def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ...
93
104
 
94
105
  global___ListAssetsRequest = ListAssetsRequest
95
106
 
@@ -18,7 +18,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapi
18
18
  from sift.common.type.v1 import channel_data_type_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__data__type__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5sift/calculated_channels/v1/calculated_channels.proto\x12\x1bsift.calculated_channels.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a+sift/common/type/v1/channel_data_type.proto\"r\n\x1a\x45xpressionChannelReference\x12\x30\n\x11\x63hannel_reference\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelReference\x12\"\n\nchannel_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"\xf5\x02\n\x11\x45xpressionRequest\x12x\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32\x45.sift.calculated_channels.v1.ExpressionRequest.ChannelReferencesEntryB\x02\x18\x01R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12{\n\x1d\x65xpression_channel_references\x18\x03 \x03(\x0b\x32\x37.sift.calculated_channels.v1.ExpressionChannelReferenceR\x1b\x65xpressionChannelReferences\x1a\x44\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n ListExpressionIdentifiersRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x44\n\x04mode\x18\x03 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"}\n!ListExpressionIdentifiersResponse\x12X\n\x0bidentifiers\x18\x01 \x03(\x0b\x32\x31.sift.calculated_channels.v1.ExpressionIdentifierB\x03\xe0\x41\x02R\x0bidentifiers\"\xce\x01\n\x14\x45xpressionIdentifier\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12N\n\x04type\x18\x03 \x01(\x0e\x32\x35.sift.calculated_channels.v1.ExpressionIdentifierTypeB\x03\xe0\x41\x02R\x04type\x12&\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64isplayName\"\xb6\x01\n\x19ValidateExpressionRequest\x12S\n\nexpression\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\nexpression\x12\x44\n\x04mode\x18\x02 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"\xd8\x01\n\x1aValidateExpressionResponse\x12T\n\x05\x65rror\x18\x01 \x01(\x0b\x32<.sift.calculated_channels.v1.ErrorValidatingExpressionResultH\x00R\x05\x65rror\x12Z\n\x07success\x18\x02 \x01(\x0b\x32>.sift.calculated_channels.v1.SuccessValidatingExpressionResultH\x00R\x07successB\x08\n\x06result\"K\n\x1f\x45rrorValidatingExpressionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\"k\n!SuccessValidatingExpressionResult\x12\x46\n\tdata_type\x18\x01 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType*\x9b\x01\n\x18\x45xpressionIdentifierType\x12.\n&EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\'\n#EXPRESSION_IDENTIFIER_TYPE_FUNCTION\x10\x01\x12&\n\"EXPRESSION_IDENTIFIER_TYPE_CHANNEL\x10\x02*\x94\x01\n\x0e\x45xpressionMode\x12#\n\x1b\x45XPRESSION_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x19\n\x15\x45XPRESSION_MODE_RULES\x10\x01\x12\'\n#EXPRESSION_MODE_CALCULATED_CHANNELS\x10\x02\x12\x19\n\x15\x45XPRESSION_MODE_RULER\x10\x03\x32\xf1\x06\n\x19\x43\x61lculatedChannelsService\x12\xd9\x02\n\x19ListExpressionIdentifiers\x12=.sift.calculated_channels.v1.ListExpressionIdentifiersRequest\x1a>.sift.calculated_channels.v1.ListExpressionIdentifiersResponse\"\xbc\x01\x92\x41\x7f\x12\x19ListExpressionIdentifiers\x1a\x62Retrieves a list of valid identifiers that can be used as part of a calculated channel expression.\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v1/calculated-channels:expression-identifiers\x12\xb0\x02\n\x12ValidateExpression\x12\x36.sift.calculated_channels.v1.ValidateExpressionRequest\x1a\x37.sift.calculated_channels.v1.ValidateExpressionResponse\"\xa8\x01\x92\x41k\x12\x12ValidateExpression\x1aUUsed to validate whether or not an expression used for a calculated channel is valid.\x82\xd3\xe4\x93\x02\x34\"//api/v1/calculated-channels:validate-expression:\x01*\x1a\xc4\x01\x92\x41\xc0\x01\x12>Service to programmatically interact with calculated channels.\x1a~\n$Read more about calculated channels.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153B\xe6\x01\n\x1f\x63om.sift.calculated_channels.v1B\x17\x43\x61lculatedChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x1aSift.CalculatedChannels.V1\xca\x02\x1aSift\\CalculatedChannels\\V1\xe2\x02&Sift\\CalculatedChannels\\V1\\GPBMetadata\xea\x02\x1cSift::CalculatedChannels::V1\x92\x41\x1f\x12\x1d\n\x1b\x43\x61lculated Channels Serviceb\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5sift/calculated_channels/v1/calculated_channels.proto\x12\x1bsift.calculated_channels.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a+sift/common/type/v1/channel_data_type.proto\"r\n\x1a\x45xpressionChannelReference\x12\x30\n\x11\x63hannel_reference\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelReference\x12\"\n\nchannel_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tchannelId\"\xf5\x02\n\x11\x45xpressionRequest\x12x\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32\x45.sift.calculated_channels.v1.ExpressionRequest.ChannelReferencesEntryB\x02\x18\x01R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12{\n\x1d\x65xpression_channel_references\x18\x03 \x03(\x0b\x32\x37.sift.calculated_channels.v1.ExpressionChannelReferenceR\x1b\x65xpressionChannelReferences\x1a\x44\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa4\x01\n ListExpressionIdentifiersRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x44\n\x04mode\x18\x03 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"}\n!ListExpressionIdentifiersResponse\x12X\n\x0bidentifiers\x18\x01 \x03(\x0b\x32\x31.sift.calculated_channels.v1.ExpressionIdentifierB\x03\xe0\x41\x02R\x0bidentifiers\"\xa7\x02\n\x14\x45xpressionIdentifier\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12N\n\x04type\x18\x03 \x01(\x0e\x32\x35.sift.calculated_channels.v1.ExpressionIdentifierTypeB\x03\xe0\x41\x02R\x04type\x12&\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64isplayName\x12W\n\x07library\x18\x05 \x01(\x0e\x32\x38.sift.calculated_channels.v1.ExpressionIdentifierLibraryB\x03\xe0\x41\x02R\x07library\"\xb6\x01\n\x19ValidateExpressionRequest\x12S\n\nexpression\x18\x01 \x01(\x0b\x32..sift.calculated_channels.v1.ExpressionRequestB\x03\xe0\x41\x02R\nexpression\x12\x44\n\x04mode\x18\x02 \x01(\x0e\x32+.sift.calculated_channels.v1.ExpressionModeB\x03\xe0\x41\x02R\x04mode\"\xd8\x01\n\x1aValidateExpressionResponse\x12T\n\x05\x65rror\x18\x01 \x01(\x0b\x32<.sift.calculated_channels.v1.ErrorValidatingExpressionResultH\x00R\x05\x65rror\x12Z\n\x07success\x18\x02 \x01(\x0b\x32>.sift.calculated_channels.v1.SuccessValidatingExpressionResultH\x00R\x07successB\x08\n\x06result\"K\n\x1f\x45rrorValidatingExpressionResult\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\"k\n!SuccessValidatingExpressionResult\x12\x46\n\tdata_type\x18\x01 \x01(\x0e\x32$.sift.common.type.v1.ChannelDataTypeB\x03\xe0\x41\x02R\x08\x64\x61taType*\x9b\x01\n\x18\x45xpressionIdentifierType\x12.\n&EXPRESSION_IDENTIFIER_TYPE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\'\n#EXPRESSION_IDENTIFIER_TYPE_FUNCTION\x10\x01\x12&\n\"EXPRESSION_IDENTIFIER_TYPE_CHANNEL\x10\x02*\xc5\x02\n\x1b\x45xpressionIdentifierLibrary\x12-\n)EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED\x10\x00\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_MATH\x10\x01\x12(\n$EXPRESSION_IDENTIFIER_LIBRARY_STRING\x10\x02\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_LIST\x10\x03\x12&\n\"EXPRESSION_IDENTIFIER_LIBRARY_ITER\x10\x04\x12*\n&EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL\x10\x05\x12)\n%EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY\x10\x06*\x94\x01\n\x0e\x45xpressionMode\x12#\n\x1b\x45XPRESSION_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x19\n\x15\x45XPRESSION_MODE_RULES\x10\x01\x12\'\n#EXPRESSION_MODE_CALCULATED_CHANNELS\x10\x02\x12\x19\n\x15\x45XPRESSION_MODE_RULER\x10\x03\x32\xf1\x06\n\x19\x43\x61lculatedChannelsService\x12\xd9\x02\n\x19ListExpressionIdentifiers\x12=.sift.calculated_channels.v1.ListExpressionIdentifiersRequest\x1a>.sift.calculated_channels.v1.ListExpressionIdentifiersResponse\"\xbc\x01\x92\x41\x7f\x12\x19ListExpressionIdentifiers\x1a\x62Retrieves a list of valid identifiers that can be used as part of a calculated channel expression.\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v1/calculated-channels:expression-identifiers\x12\xb0\x02\n\x12ValidateExpression\x12\x36.sift.calculated_channels.v1.ValidateExpressionRequest\x1a\x37.sift.calculated_channels.v1.ValidateExpressionResponse\"\xa8\x01\x92\x41k\x12\x12ValidateExpression\x1aUUsed to validate whether or not an expression used for a calculated channel is valid.\x82\xd3\xe4\x93\x02\x34\"//api/v1/calculated-channels:validate-expression:\x01*\x1a\xc4\x01\x92\x41\xc0\x01\x12>Service to programmatically interact with calculated channels.\x1a~\n$Read more about calculated channels.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153B\xe6\x01\n\x1f\x63om.sift.calculated_channels.v1B\x17\x43\x61lculatedChannelsProtoP\x01\xa2\x02\x03SCX\xaa\x02\x1aSift.CalculatedChannels.V1\xca\x02\x1aSift\\CalculatedChannels\\V1\xe2\x02&Sift\\CalculatedChannels\\V1\\GPBMetadata\xea\x02\x1cSift::CalculatedChannels::V1\x92\x41\x1f\x12\x1d\n\x1b\x43\x61lculated Channels Serviceb\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -52,6 +52,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
52
52
  _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['type']._serialized_options = b'\340A\002'
53
53
  _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['display_name']._loaded_options = None
54
54
  _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['display_name']._serialized_options = b'\340A\002'
55
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['library']._loaded_options = None
56
+ _globals['_EXPRESSIONIDENTIFIER'].fields_by_name['library']._serialized_options = b'\340A\002'
55
57
  _globals['_VALIDATEEXPRESSIONREQUEST'].fields_by_name['expression']._loaded_options = None
56
58
  _globals['_VALIDATEEXPRESSIONREQUEST'].fields_by_name['expression']._serialized_options = b'\340A\002'
57
59
  _globals['_VALIDATEEXPRESSIONREQUEST'].fields_by_name['mode']._loaded_options = None
@@ -66,10 +68,12 @@ if not _descriptor._USE_C_DESCRIPTORS:
66
68
  _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ListExpressionIdentifiers']._serialized_options = b'\222A\177\022\031ListExpressionIdentifiers\032bRetrieves a list of valid identifiers that can be used as part of a calculated channel expression.\202\323\344\223\0024\0222/api/v1/calculated-channels:expression-identifiers'
67
69
  _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ValidateExpression']._loaded_options = None
68
70
  _globals['_CALCULATEDCHANNELSSERVICE'].methods_by_name['ValidateExpression']._serialized_options = b'\222Ak\022\022ValidateExpression\032UUsed to validate whether or not an expression used for a calculated channel is valid.\202\323\344\223\0024\"//api/v1/calculated-channels:validate-expression:\001*'
69
- _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_start=1828
70
- _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_end=1983
71
- _globals['_EXPRESSIONMODE']._serialized_start=1986
72
- _globals['_EXPRESSIONMODE']._serialized_end=2134
71
+ _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_start=1917
72
+ _globals['_EXPRESSIONIDENTIFIERTYPE']._serialized_end=2072
73
+ _globals['_EXPRESSIONIDENTIFIERLIBRARY']._serialized_start=2075
74
+ _globals['_EXPRESSIONIDENTIFIERLIBRARY']._serialized_end=2400
75
+ _globals['_EXPRESSIONMODE']._serialized_start=2403
76
+ _globals['_EXPRESSIONMODE']._serialized_end=2551
73
77
  _globals['_EXPRESSIONCHANNELREFERENCE']._serialized_start=242
74
78
  _globals['_EXPRESSIONCHANNELREFERENCE']._serialized_end=356
75
79
  _globals['_EXPRESSIONREQUEST']._serialized_start=359
@@ -81,15 +85,15 @@ if not _descriptor._USE_C_DESCRIPTORS:
81
85
  _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE']._serialized_start=901
82
86
  _globals['_LISTEXPRESSIONIDENTIFIERSRESPONSE']._serialized_end=1026
83
87
  _globals['_EXPRESSIONIDENTIFIER']._serialized_start=1029
84
- _globals['_EXPRESSIONIDENTIFIER']._serialized_end=1235
85
- _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_start=1238
86
- _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_end=1420
87
- _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_start=1423
88
- _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_end=1639
89
- _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_start=1641
90
- _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_end=1716
91
- _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_start=1718
92
- _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_end=1825
93
- _globals['_CALCULATEDCHANNELSSERVICE']._serialized_start=2137
94
- _globals['_CALCULATEDCHANNELSSERVICE']._serialized_end=3018
88
+ _globals['_EXPRESSIONIDENTIFIER']._serialized_end=1324
89
+ _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_start=1327
90
+ _globals['_VALIDATEEXPRESSIONREQUEST']._serialized_end=1509
91
+ _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_start=1512
92
+ _globals['_VALIDATEEXPRESSIONRESPONSE']._serialized_end=1728
93
+ _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_start=1730
94
+ _globals['_ERRORVALIDATINGEXPRESSIONRESULT']._serialized_end=1805
95
+ _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_start=1807
96
+ _globals['_SUCCESSVALIDATINGEXPRESSIONRESULT']._serialized_end=1914
97
+ _globals['_CALCULATEDCHANNELSSERVICE']._serialized_start=2554
98
+ _globals['_CALCULATEDCHANNELSSERVICE']._serialized_end=3435
95
99
  # @@protoc_insertion_point(module_scope)
@@ -37,6 +37,31 @@ EXPRESSION_IDENTIFIER_TYPE_FUNCTION: ExpressionIdentifierType.ValueType # 1
37
37
  EXPRESSION_IDENTIFIER_TYPE_CHANNEL: ExpressionIdentifierType.ValueType # 2
38
38
  global___ExpressionIdentifierType = ExpressionIdentifierType
39
39
 
40
+ class _ExpressionIdentifierLibrary:
41
+ ValueType = typing.NewType("ValueType", builtins.int)
42
+ V: typing_extensions.TypeAlias = ValueType
43
+
44
+ class _ExpressionIdentifierLibraryEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ExpressionIdentifierLibrary.ValueType], builtins.type):
45
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
46
+ EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED: _ExpressionIdentifierLibrary.ValueType # 0
47
+ EXPRESSION_IDENTIFIER_LIBRARY_MATH: _ExpressionIdentifierLibrary.ValueType # 1
48
+ EXPRESSION_IDENTIFIER_LIBRARY_STRING: _ExpressionIdentifierLibrary.ValueType # 2
49
+ EXPRESSION_IDENTIFIER_LIBRARY_LIST: _ExpressionIdentifierLibrary.ValueType # 3
50
+ EXPRESSION_IDENTIFIER_LIBRARY_ITER: _ExpressionIdentifierLibrary.ValueType # 4
51
+ EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL: _ExpressionIdentifierLibrary.ValueType # 5
52
+ EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY: _ExpressionIdentifierLibrary.ValueType # 6
53
+
54
+ class ExpressionIdentifierLibrary(_ExpressionIdentifierLibrary, metaclass=_ExpressionIdentifierLibraryEnumTypeWrapper): ...
55
+
56
+ EXPRESSION_IDENTIFIER_LIBRARY_UNSPECIFIED: ExpressionIdentifierLibrary.ValueType # 0
57
+ EXPRESSION_IDENTIFIER_LIBRARY_MATH: ExpressionIdentifierLibrary.ValueType # 1
58
+ EXPRESSION_IDENTIFIER_LIBRARY_STRING: ExpressionIdentifierLibrary.ValueType # 2
59
+ EXPRESSION_IDENTIFIER_LIBRARY_LIST: ExpressionIdentifierLibrary.ValueType # 3
60
+ EXPRESSION_IDENTIFIER_LIBRARY_ITER: ExpressionIdentifierLibrary.ValueType # 4
61
+ EXPRESSION_IDENTIFIER_LIBRARY_STATEFUL: ExpressionIdentifierLibrary.ValueType # 5
62
+ EXPRESSION_IDENTIFIER_LIBRARY_SUMMARY: ExpressionIdentifierLibrary.ValueType # 6
63
+ global___ExpressionIdentifierLibrary = ExpressionIdentifierLibrary
64
+
40
65
  class _ExpressionMode:
41
66
  ValueType = typing.NewType("ValueType", builtins.int)
42
67
  V: typing_extensions.TypeAlias = ValueType
@@ -163,10 +188,12 @@ class ExpressionIdentifier(google.protobuf.message.Message):
163
188
  DESCRIPTION_FIELD_NUMBER: builtins.int
164
189
  TYPE_FIELD_NUMBER: builtins.int
165
190
  DISPLAY_NAME_FIELD_NUMBER: builtins.int
191
+ LIBRARY_FIELD_NUMBER: builtins.int
166
192
  name: builtins.str
167
193
  description: builtins.str
168
194
  type: global___ExpressionIdentifierType.ValueType
169
195
  display_name: builtins.str
196
+ library: global___ExpressionIdentifierLibrary.ValueType
170
197
  def __init__(
171
198
  self,
172
199
  *,
@@ -174,8 +201,9 @@ class ExpressionIdentifier(google.protobuf.message.Message):
174
201
  description: builtins.str = ...,
175
202
  type: global___ExpressionIdentifierType.ValueType = ...,
176
203
  display_name: builtins.str = ...,
204
+ library: global___ExpressionIdentifierLibrary.ValueType = ...,
177
205
  ) -> None: ...
178
- def ClearField(self, field_name: typing.Literal["description", b"description", "display_name", b"display_name", "name", b"name", "type", b"type"]) -> None: ...
206
+ def ClearField(self, field_name: typing.Literal["description", b"description", "display_name", b"display_name", "library", b"library", "name", b"name", "type", b"type"]) -> None: ...
179
207
 
180
208
  global___ExpressionIdentifier = ExpressionIdentifier
181
209