raystack-proton 2025.10.8.102837__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of raystack-proton might be problematic. Click here for more details.

Files changed (181) hide show
  1. google/__init__.py +0 -0
  2. google/api/__init__.py +0 -0
  3. google/api/annotations_pb2.py +37 -0
  4. google/api/annotations_pb2.pyi +8 -0
  5. google/api/field_behavior_pb2.py +38 -0
  6. google/api/field_behavior_pb2.pyi +27 -0
  7. google/api/http_pb2.py +41 -0
  8. google/api/http_pb2.pyi +47 -0
  9. google/api/httpbody_pb2.py +38 -0
  10. google/api/httpbody_pb2.pyi +18 -0
  11. protoc_gen_openapiv2/__init__.py +0 -0
  12. protoc_gen_openapiv2/options/__init__.py +0 -0
  13. protoc_gen_openapiv2/options/annotations_pb2.py +37 -0
  14. protoc_gen_openapiv2/options/annotations_pb2.pyi +16 -0
  15. protoc_gen_openapiv2/options/openapiv2_pb2.py +142 -0
  16. protoc_gen_openapiv2/options/openapiv2_pb2.pyi +463 -0
  17. raystack/__init__.py +0 -0
  18. raystack/assets/__init__.py +0 -0
  19. raystack/assets/v1beta1/__init__.py +0 -0
  20. raystack/assets/v1beta1/bucket_pb2.py +45 -0
  21. raystack/assets/v1beta1/bucket_pb2.pyi +59 -0
  22. raystack/assets/v1beta1/dashboard_pb2.py +45 -0
  23. raystack/assets/v1beta1/dashboard_pb2.pyi +65 -0
  24. raystack/assets/v1beta1/event_pb2.py +38 -0
  25. raystack/assets/v1beta1/event_pb2.pyi +19 -0
  26. raystack/assets/v1beta1/group_pb2.py +43 -0
  27. raystack/assets/v1beta1/group_pb2.pyi +35 -0
  28. raystack/assets/v1beta1/job_pb2.py +43 -0
  29. raystack/assets/v1beta1/job_pb2.pyi +28 -0
  30. raystack/assets/v1beta1/lineage_pb2.py +38 -0
  31. raystack/assets/v1beta1/lineage_pb2.pyi +16 -0
  32. raystack/assets/v1beta1/ownership_pb2.py +39 -0
  33. raystack/assets/v1beta1/ownership_pb2.pyi +25 -0
  34. raystack/assets/v1beta1/preview_pb2.py +38 -0
  35. raystack/assets/v1beta1/preview_pb2.pyi +16 -0
  36. raystack/assets/v1beta1/properties_pb2.py +42 -0
  37. raystack/assets/v1beta1/properties_pb2.pyi +25 -0
  38. raystack/assets/v1beta1/resource_pb2.py +37 -0
  39. raystack/assets/v1beta1/resource_pb2.pyi +21 -0
  40. raystack/assets/v1beta1/schema_pb2.py +44 -0
  41. raystack/assets/v1beta1/schema_pb2.pyi +58 -0
  42. raystack/assets/v1beta1/table_pb2.py +49 -0
  43. raystack/assets/v1beta1/table_pb2.pyi +63 -0
  44. raystack/assets/v1beta1/timestamp_pb2.py +40 -0
  45. raystack/assets/v1beta1/timestamp_pb2.pyi +25 -0
  46. raystack/assets/v1beta1/topic_pb2.py +46 -0
  47. raystack/assets/v1beta1/topic_pb2.pyi +41 -0
  48. raystack/assets/v1beta1/user_pb2.py +45 -0
  49. raystack/assets/v1beta1/user_pb2.pyi +63 -0
  50. raystack/assets/v1beta2/__init__.py +0 -0
  51. raystack/assets/v1beta2/application_pb2.py +39 -0
  52. raystack/assets/v1beta2/application_pb2.pyi +24 -0
  53. raystack/assets/v1beta2/asset_pb2.py +44 -0
  54. raystack/assets/v1beta2/asset_pb2.pyi +49 -0
  55. raystack/assets/v1beta2/bucket_pb2.py +42 -0
  56. raystack/assets/v1beta2/bucket_pb2.pyi +54 -0
  57. raystack/assets/v1beta2/common_pb2.py +44 -0
  58. raystack/assets/v1beta2/common_pb2.pyi +52 -0
  59. raystack/assets/v1beta2/dashboard_pb2.py +42 -0
  60. raystack/assets/v1beta2/dashboard_pb2.pyi +60 -0
  61. raystack/assets/v1beta2/experiment_pb2.py +41 -0
  62. raystack/assets/v1beta2/experiment_pb2.pyi +40 -0
  63. raystack/assets/v1beta2/feature_table_pb2.py +47 -0
  64. raystack/assets/v1beta2/feature_table_pb2.pyi +59 -0
  65. raystack/assets/v1beta2/group_pb2.py +40 -0
  66. raystack/assets/v1beta2/group_pb2.pyi +26 -0
  67. raystack/assets/v1beta2/job_pb2.py +39 -0
  68. raystack/assets/v1beta2/job_pb2.pyi +20 -0
  69. raystack/assets/v1beta2/metric_pb2.py +39 -0
  70. raystack/assets/v1beta2/metric_pb2.pyi +28 -0
  71. raystack/assets/v1beta2/model_pb2.py +49 -0
  72. raystack/assets/v1beta2/model_pb2.pyi +73 -0
  73. raystack/assets/v1beta2/table_pb2.py +47 -0
  74. raystack/assets/v1beta2/table_pb2.pyi +93 -0
  75. raystack/assets/v1beta2/topic_pb2.py +43 -0
  76. raystack/assets/v1beta2/topic_pb2.pyi +40 -0
  77. raystack/assets/v1beta2/user_pb2.py +43 -0
  78. raystack/assets/v1beta2/user_pb2.pyi +61 -0
  79. raystack/common/__init__.py +0 -0
  80. raystack/common/v1/__init__.py +0 -0
  81. raystack/common/v1/service_connect.py +119 -0
  82. raystack/common/v1/service_pb2.py +48 -0
  83. raystack/common/v1/service_pb2.pyi +39 -0
  84. raystack/compass/__init__.py +0 -0
  85. raystack/compass/v1beta1/__init__.py +0 -0
  86. raystack/compass/v1beta1/service_connect.py +2784 -0
  87. raystack/compass/v1beta1/service_pb2.py +581 -0
  88. raystack/compass/v1beta1/service_pb2.pyi +1055 -0
  89. raystack/entropy/__init__.py +0 -0
  90. raystack/entropy/v1beta1/__init__.py +0 -0
  91. raystack/entropy/v1beta1/module_connect.py +379 -0
  92. raystack/entropy/v1beta1/module_pb2.py +72 -0
  93. raystack/entropy/v1beta1/module_pb2.pyi +88 -0
  94. raystack/entropy/v1beta1/resource_connect.py +574 -0
  95. raystack/entropy/v1beta1/resource_pb2.py +134 -0
  96. raystack/entropy/v1beta1/resource_pb2.pyi +268 -0
  97. raystack/frontier/__init__.py +0 -0
  98. raystack/frontier/v1beta1/__init__.py +0 -0
  99. raystack/frontier/v1beta1/admin_connect.py +4021 -0
  100. raystack/frontier/v1beta1/admin_pb2.py +617 -0
  101. raystack/frontier/v1beta1/admin_pb2.pyi +1151 -0
  102. raystack/frontier/v1beta1/frontier_connect.py +11169 -0
  103. raystack/frontier/v1beta1/frontier_pb2.py +1648 -0
  104. raystack/frontier/v1beta1/frontier_pb2.pyi +2730 -0
  105. raystack/frontier/v1beta1/models_pb2.py +398 -0
  106. raystack/frontier/v1beta1/models_pb2.pyi +1150 -0
  107. raystack/guardian/__init__.py +0 -0
  108. raystack/guardian/v1beta1/__init__.py +0 -0
  109. raystack/guardian/v1beta1/guardian_connect.py +2654 -0
  110. raystack/guardian/v1beta1/guardian_pb2.py +527 -0
  111. raystack/guardian/v1beta1/guardian_pb2.pyi +1257 -0
  112. raystack/optimus/__init__.py +0 -0
  113. raystack/optimus/core/__init__.py +0 -0
  114. raystack/optimus/core/v1beta1/__init__.py +0 -0
  115. raystack/optimus/core/v1beta1/backup_connect.py +249 -0
  116. raystack/optimus/core/v1beta1/backup_pb2.py +70 -0
  117. raystack/optimus/core/v1beta1/backup_pb2.pyi +108 -0
  118. raystack/optimus/core/v1beta1/job_run_connect.py +314 -0
  119. raystack/optimus/core/v1beta1/job_run_pb2.py +88 -0
  120. raystack/optimus/core/v1beta1/job_run_pb2.pyi +164 -0
  121. raystack/optimus/core/v1beta1/job_spec_connect.py +1289 -0
  122. raystack/optimus/core/v1beta1/job_spec_pb2.py +229 -0
  123. raystack/optimus/core/v1beta1/job_spec_pb2.pyi +700 -0
  124. raystack/optimus/core/v1beta1/namespace_connect.py +249 -0
  125. raystack/optimus/core/v1beta1/namespace_pb2.py +63 -0
  126. raystack/optimus/core/v1beta1/namespace_pb2.pyi +66 -0
  127. raystack/optimus/core/v1beta1/project_connect.py +249 -0
  128. raystack/optimus/core/v1beta1/project_pb2.py +63 -0
  129. raystack/optimus/core/v1beta1/project_pb2.pyi +60 -0
  130. raystack/optimus/core/v1beta1/replay_connect.py +314 -0
  131. raystack/optimus/core/v1beta1/replay_pb2.py +72 -0
  132. raystack/optimus/core/v1beta1/replay_pb2.pyi +127 -0
  133. raystack/optimus/core/v1beta1/resource_connect.py +509 -0
  134. raystack/optimus/core/v1beta1/resource_pb2.py +93 -0
  135. raystack/optimus/core/v1beta1/resource_pb2.pyi +182 -0
  136. raystack/optimus/core/v1beta1/runtime_connect.py +119 -0
  137. raystack/optimus/core/v1beta1/runtime_pb2.py +45 -0
  138. raystack/optimus/core/v1beta1/runtime_pb2.pyi +19 -0
  139. raystack/optimus/core/v1beta1/secret_connect.py +314 -0
  140. raystack/optimus/core/v1beta1/secret_pb2.py +66 -0
  141. raystack/optimus/core/v1beta1/secret_pb2.pyi +81 -0
  142. raystack/optimus/core/v1beta1/status_pb2.py +39 -0
  143. raystack/optimus/core/v1beta1/status_pb2.pyi +31 -0
  144. raystack/optimus/integration/__init__.py +0 -0
  145. raystack/optimus/integration/v1beta1/__init__.py +0 -0
  146. raystack/optimus/integration/v1beta1/event_pb2.py +50 -0
  147. raystack/optimus/integration/v1beta1/event_pb2.pyi +94 -0
  148. raystack/optimus/plugins/__init__.py +0 -0
  149. raystack/optimus/plugins/v1beta1/__init__.py +0 -0
  150. raystack/optimus/plugins/v1beta1/dependency_resolver_connect.py +314 -0
  151. raystack/optimus/plugins/v1beta1/dependency_resolver_pb2.py +66 -0
  152. raystack/optimus/plugins/v1beta1/dependency_resolver_pb2.pyi +118 -0
  153. raystack/predator/__init__.py +0 -0
  154. raystack/predator/v1beta1/__init__.py +0 -0
  155. raystack/predator/v1beta1/metrics_log_pb2.py +46 -0
  156. raystack/predator/v1beta1/metrics_log_pb2.pyi +68 -0
  157. raystack/predator/v1beta1/result_log_pb2.py +45 -0
  158. raystack/predator/v1beta1/result_log_pb2.pyi +61 -0
  159. raystack/raccoon/__init__.py +0 -0
  160. raystack/raccoon/v1beta1/__init__.py +0 -0
  161. raystack/raccoon/v1beta1/raccoon_connect.py +119 -0
  162. raystack/raccoon/v1beta1/raccoon_pb2.py +52 -0
  163. raystack/raccoon/v1beta1/raccoon_pb2.pyi +74 -0
  164. raystack/siren/__init__.py +0 -0
  165. raystack/siren/v1beta1/__init__.py +0 -0
  166. raystack/siren/v1beta1/siren_connect.py +2329 -0
  167. raystack/siren/v1beta1/siren_pb2.py +415 -0
  168. raystack/siren/v1beta1/siren_pb2.pyi +890 -0
  169. raystack/stencil/__init__.py +0 -0
  170. raystack/stencil/v1beta1/__init__.py +0 -0
  171. raystack/stencil/v1beta1/stencil_connect.py +1094 -0
  172. raystack/stencil/v1beta1/stencil_pb2.py +158 -0
  173. raystack/stencil/v1beta1/stencil_pb2.pyi +357 -0
  174. raystack_proton-2025.10.8.102837.dist-info/METADATA +101 -0
  175. raystack_proton-2025.10.8.102837.dist-info/RECORD +181 -0
  176. raystack_proton-2025.10.8.102837.dist-info/WHEEL +5 -0
  177. raystack_proton-2025.10.8.102837.dist-info/licenses/LICENSE +201 -0
  178. raystack_proton-2025.10.8.102837.dist-info/top_level.txt +4 -0
  179. validate/__init__.py +0 -0
  180. validate/validate_pb2.py +86 -0
  181. validate/validate_pb2.pyi +497 -0
@@ -0,0 +1,158 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: raystack/stencil/v1beta1/stencil.proto
5
+ # Protobuf Python Version: 6.32.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 32,
16
+ 1,
17
+ '',
18
+ 'raystack/stencil/v1beta1/stencil.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
26
+ from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
27
+ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
28
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
29
+ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
30
+
31
+
32
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&raystack/stencil/v1beta1/stencil.proto\x12\x18raystack.stencil.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/descriptor.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xca\x02\n\tNamespace\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12?\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\'.raystack.stencil.v1beta1.Schema.FormatR\x06\x66ormat\x12T\n\rcompatibility\x18\x03 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityR\rcompatibility\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12\x39\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"\x90\x05\n\x06Schema\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12?\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\'.raystack.stencil.v1beta1.Schema.FormatR\x06\x66ormat\x12\x1c\n\tauthority\x18\x03 \x01(\tR\tauthority\x12T\n\rcompatibility\x18\x04 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityR\rcompatibility\x12\x39\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"W\n\x06\x46ormat\x12\x16\n\x12\x46ORMAT_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x46ORMAT_PROTOBUF\x10\x01\x12\x0f\n\x0b\x46ORMAT_AVRO\x10\x02\x12\x0f\n\x0b\x46ORMAT_JSON\x10\x03\"\xed\x01\n\rCompatibility\x12\x1d\n\x19\x43OMPATIBILITY_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43OMPATIBILITY_BACKWARD\x10\x01\x12%\n!COMPATIBILITY_BACKWARD_TRANSITIVE\x10\x02\x12\x19\n\x15\x43OMPATIBILITY_FORWARD\x10\x03\x12$\n COMPATIBILITY_FORWARD_TRANSITIVE\x10\x04\x12\x16\n\x12\x43OMPATIBILITY_FULL\x10\x05\x12!\n\x1d\x43OMPATIBILITY_FULL_TRANSITIVE\x10\x06\"\x17\n\x15ListNamespacesRequest\"]\n\x16ListNamespacesResponse\x12\x43\n\nnamespaces\x18\x01 \x03(\x0b\x32#.raystack.stencil.v1beta1.NamespaceR\nnamespaces\"%\n\x13GetNamespaceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"Y\n\x14GetNamespaceResponse\x12\x41\n\tnamespace\x18\x01 \x01(\x0b\x32#.raystack.stencil.v1beta1.NamespaceR\tnamespace\"\xf3\x01\n\x16\x43reateNamespaceRequest\x12\x14\n\x02id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02R\x02id\x12\x45\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\'.raystack.stencil.v1beta1.Schema.FormatB\x04\xe2\x41\x01\x02R\x06\x66ormat\x12Z\n\rcompatibility\x18\x03 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityB\x04\xe2\x41\x01\x02R\rcompatibility\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\"\\\n\x17\x43reateNamespaceResponse\x12\x41\n\tnamespace\x18\x01 \x01(\x0b\x32#.raystack.stencil.v1beta1.NamespaceR\tnamespace\"\xed\x01\n\x16UpdateNamespaceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x45\n\x06\x66ormat\x18\x02 \x01(\x0e\x32\'.raystack.stencil.v1beta1.Schema.FormatB\x04\xe2\x41\x01\x02R\x06\x66ormat\x12Z\n\rcompatibility\x18\x03 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityB\x04\xe2\x41\x01\x02R\rcompatibility\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\"\\\n\x17UpdateNamespaceResponse\x12\x41\n\tnamespace\x18\x01 \x01(\x0b\x32#.raystack.stencil.v1beta1.NamespaceR\tnamespace\"(\n\x16\x44\x65leteNamespaceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"3\n\x17\x44\x65leteNamespaceResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"$\n\x12ListSchemasRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"Q\n\x13ListSchemasResponse\x12:\n\x07schemas\x18\x01 \x03(\x0b\x32 .raystack.stencil.v1beta1.SchemaR\x07schemas\"X\n\x16GetLatestSchemaRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\"-\n\x17GetLatestSchemaResponse\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\"\x86\x02\n\x13\x43reateSchemaRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\x12\x18\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x42\x04\xe2\x41\x01\x02R\x04\x64\x61ta\x12?\n\x06\x66ormat\x18\x04 \x01(\x0e\x32\'.raystack.stencil.v1beta1.Schema.FormatR\x06\x66ormat\x12T\n\rcompatibility\x18\x05 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityR\rcompatibility\"\\\n\x14\x43reateSchemaResponse\x12\x18\n\x07version\x18\x01 \x01(\x05R\x07version\x12\x0e\n\x02id\x18\x02 \x01(\tR\x02id\x12\x1a\n\x08location\x18\x03 \x01(\tR\x08location\"\xcb\x01\n\x19\x43heckCompatibilityRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\x12\x18\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x42\x04\xe2\x41\x01\x02R\x04\x64\x61ta\x12T\n\rcompatibility\x18\x04 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityR\rcompatibility\"\x1c\n\x1a\x43heckCompatibilityResponse\"Z\n\x18GetSchemaMetadataRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\"\xda\x02\n\x19GetSchemaMetadataResponse\x12?\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\'.raystack.stencil.v1beta1.Schema.FormatR\x06\x66ormat\x12T\n\rcompatibility\x18\x02 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityR\rcompatibility\x12\x1c\n\tauthority\x18\x03 \x01(\tR\tauthority\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x39\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"\xb3\x01\n\x1bUpdateSchemaMetadataRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\x12T\n\rcompatibility\x18\x03 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityR\rcompatibility\"\xd3\x01\n\x1cUpdateSchemaMetadataResponse\x12?\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\'.raystack.stencil.v1beta1.Schema.FormatR\x06\x66ormat\x12T\n\rcompatibility\x18\x02 \x01(\x0e\x32..raystack.stencil.v1beta1.Schema.CompatibilityR\rcompatibility\x12\x1c\n\tauthority\x18\x03 \x01(\tR\tauthority\"U\n\x13\x44\x65leteSchemaRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\"0\n\x14\x44\x65leteSchemaResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"U\n\x13ListVersionsRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\"2\n\x14ListVersionsResponse\x12\x1a\n\x08versions\x18\x01 \x03(\x05R\x08versions\"q\n\x10GetSchemaRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\x12\x1d\n\nversion_id\x18\x03 \x01(\x05R\tversionId\"\'\n\x11GetSchemaResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\"u\n\x14\x44\x65leteVersionRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\x12\x1d\n\nversion_id\x18\x03 \x01(\x05R\tversionId\"1\n\x15\x44\x65leteVersionResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"\xb3\x01\n\rSearchRequest\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\x12\x1a\n\x05query\x18\x03 \x01(\tB\x04\xe2\x41\x01\x02R\x05query\x12\x1a\n\x07history\x18\x04 \x01(\x08H\x00R\x07history\x12\x1f\n\nversion_id\x18\x05 \x01(\x05H\x00R\tversionIdB\t\n\x07version\"\x84\x01\n\x0eSearchResponse\x12\x38\n\x04hits\x18\x01 \x03(\x0b\x32$.raystack.stencil.v1beta1.SearchHitsR\x04hits\x12\x38\n\x04meta\x18\x02 \x01(\x0b\x32$.raystack.stencil.v1beta1.SearchMetaR\x04meta\"\xad\x01\n\nSearchHits\x12!\n\x0cnamespace_id\x18\x01 \x01(\tR\x0bnamespaceId\x12\x1b\n\tschema_id\x18\x02 \x01(\tR\x08schemaId\x12\x1d\n\nversion_id\x18\x03 \x01(\x05R\tversionId\x12\x16\n\x06\x66ields\x18\x04 \x03(\tR\x06\x66ields\x12\x14\n\x05types\x18\x05 \x03(\tR\x05types\x12\x12\n\x04path\x18\x06 \x01(\tR\x04path\"\"\n\nSearchMeta\x12\x14\n\x05total\x18\x01 \x01(\rR\x05total2\xb2\x18\n\x0eStencilService\x12\xb8\x01\n\x0eListNamespaces\x12/.raystack.stencil.v1beta1.ListNamespacesRequest\x1a\x30.raystack.stencil.v1beta1.ListNamespacesResponse\"C\x92\x41%\n\tnamespace\x12\x18List names of namespaces\x82\xd3\xe4\x93\x02\x15\x12\x13/v1beta1/namespaces\x12\xb2\x01\n\x0cGetNamespace\x12-.raystack.stencil.v1beta1.GetNamespaceRequest\x1a..raystack.stencil.v1beta1.GetNamespaceResponse\"C\x92\x41 \n\tnamespace\x12\x13Get namespace by id\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1beta1/namespaces/{id}\x12\xbc\x01\n\x0f\x43reateNamespace\x12\x30.raystack.stencil.v1beta1.CreateNamespaceRequest\x1a\x31.raystack.stencil.v1beta1.CreateNamespaceResponse\"D\x92\x41#\n\tnamespace\x12\x16\x43reate namespace entry\x82\xd3\xe4\x93\x02\x18\"\x13/v1beta1/namespaces:\x01*\x12\xc8\x01\n\x0fUpdateNamespace\x12\x30.raystack.stencil.v1beta1.UpdateNamespaceRequest\x1a\x31.raystack.stencil.v1beta1.UpdateNamespaceResponse\"P\x92\x41*\n\tnamespace\x12\x1dUpdate namespace entity by id\x82\xd3\xe4\x93\x02\x1d\x1a\x18/v1beta1/namespaces/{id}:\x01*\x12\x92\x02\n\x0f\x44\x65leteNamespace\x12\x30.raystack.stencil.v1beta1.DeleteNamespaceRequest\x1a\x31.raystack.stencil.v1beta1.DeleteNamespaceResponse\"\x99\x01\x92\x41v\n\tnamespace\x12\x16\x44\x65lete namespace by id\x1aQEnsure all schemas under this namespace is deleted, otherwise it will throw error\x82\xd3\xe4\x93\x02\x1a*\x18/v1beta1/namespaces/{id}\x12\xc1\x01\n\x0bListSchemas\x12,.raystack.stencil.v1beta1.ListSchemasRequest\x1a-.raystack.stencil.v1beta1.ListSchemasResponse\"U\x92\x41*\n\x06schema\x12 List schemas under the namespace\x82\xd3\xe4\x93\x02\"\x12 /v1beta1/namespaces/{id}/schemas\x12o\n\x0c\x43reateSchema\x12-.raystack.stencil.v1beta1.CreateSchemaRequest\x1a..raystack.stencil.v1beta1.CreateSchemaResponse\"\x00\x12\x81\x01\n\x12\x43heckCompatibility\x12\x33.raystack.stencil.v1beta1.CheckCompatibilityRequest\x1a\x34.raystack.stencil.v1beta1.CheckCompatibilityResponse\"\x00\x12\xa0\x02\n\x11GetSchemaMetadata\x12\x32.raystack.stencil.v1beta1.GetSchemaMetadataRequest\x1a\x33.raystack.stencil.v1beta1.GetSchemaMetadataResponse\"\xa1\x01\x92\x41[\n\x06schema\x12QCreate schema under the namespace. Returns version number, unique ID and location\x82\xd3\xe4\x93\x02=\x12;/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}/meta\x12\xf0\x01\n\x14UpdateSchemaMetadata\x12\x35.raystack.stencil.v1beta1.UpdateSchemaMetadataRequest\x1a\x36.raystack.stencil.v1beta1.UpdateSchemaMetadataResponse\"i\x92\x41%\n\x06schema\x12\x1bUpdate only schema metadata\x82\xd3\xe4\x93\x02;26/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}:\x01*\x12x\n\x0fGetLatestSchema\x12\x30.raystack.stencil.v1beta1.GetLatestSchemaRequest\x1a\x31.raystack.stencil.v1beta1.GetLatestSchemaResponse\"\x00\x12\xd1\x01\n\x0c\x44\x65leteSchema\x12-.raystack.stencil.v1beta1.DeleteSchemaRequest\x1a..raystack.stencil.v1beta1.DeleteSchemaResponse\"b\x92\x41!\n\x06schema\x12\x17\x44\x65lete specified schema\x82\xd3\xe4\x93\x02\x38*6/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}\x12\x66\n\tGetSchema\x12*.raystack.stencil.v1beta1.GetSchemaRequest\x1a+.raystack.stencil.v1beta1.GetSchemaResponse\"\x00\x12\xf0\x01\n\x0cListVersions\x12-.raystack.stencil.v1beta1.ListVersionsRequest\x1a..raystack.stencil.v1beta1.ListVersionsResponse\"\x80\x01\x92\x41\x36\n\x06schema\n\x07version\x12#List all version numbers for schema\x82\xd3\xe4\x93\x02\x41\x12?/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}/versions\x12\x83\x02\n\rDeleteVersion\x12..raystack.stencil.v1beta1.DeleteVersionRequest\x1a/.raystack.stencil.v1beta1.DeleteVersionResponse\"\x90\x01\x92\x41\x39\n\x06schema\n\x07version\x12&Delete specified version of the schema\x82\xd3\xe4\x93\x02N*L/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}/versions/{version_id}\x12\x92\x01\n\x06Search\x12\'.raystack.stencil.v1beta1.SearchRequest\x1a(.raystack.stencil.v1beta1.SearchResponse\"5\x92\x41\x1b\n\x06schema\x12\x11Global Search API\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1beta1/searchBJZ9github.com/raystack/proton/stencil/v1beta1;stencilv1beta1\x92\x41\x0c\x12\x07\x32\x05\x30.1.4*\x01\x01\x62\x06proto3')
33
+
34
+ _globals = globals()
35
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
36
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'raystack.stencil.v1beta1.stencil_pb2', _globals)
37
+ if not _descriptor._USE_C_DESCRIPTORS:
38
+ _globals['DESCRIPTOR']._loaded_options = None
39
+ _globals['DESCRIPTOR']._serialized_options = b'Z9github.com/raystack/proton/stencil/v1beta1;stencilv1beta1\222A\014\022\0072\0050.1.4*\001\001'
40
+ _globals['_CREATENAMESPACEREQUEST'].fields_by_name['id']._loaded_options = None
41
+ _globals['_CREATENAMESPACEREQUEST'].fields_by_name['id']._serialized_options = b'\342A\001\002'
42
+ _globals['_CREATENAMESPACEREQUEST'].fields_by_name['format']._loaded_options = None
43
+ _globals['_CREATENAMESPACEREQUEST'].fields_by_name['format']._serialized_options = b'\342A\001\002'
44
+ _globals['_CREATENAMESPACEREQUEST'].fields_by_name['compatibility']._loaded_options = None
45
+ _globals['_CREATENAMESPACEREQUEST'].fields_by_name['compatibility']._serialized_options = b'\342A\001\002'
46
+ _globals['_UPDATENAMESPACEREQUEST'].fields_by_name['format']._loaded_options = None
47
+ _globals['_UPDATENAMESPACEREQUEST'].fields_by_name['format']._serialized_options = b'\342A\001\002'
48
+ _globals['_UPDATENAMESPACEREQUEST'].fields_by_name['compatibility']._loaded_options = None
49
+ _globals['_UPDATENAMESPACEREQUEST'].fields_by_name['compatibility']._serialized_options = b'\342A\001\002'
50
+ _globals['_CREATESCHEMAREQUEST'].fields_by_name['data']._loaded_options = None
51
+ _globals['_CREATESCHEMAREQUEST'].fields_by_name['data']._serialized_options = b'\342A\001\002'
52
+ _globals['_CHECKCOMPATIBILITYREQUEST'].fields_by_name['data']._loaded_options = None
53
+ _globals['_CHECKCOMPATIBILITYREQUEST'].fields_by_name['data']._serialized_options = b'\342A\001\002'
54
+ _globals['_SEARCHREQUEST'].fields_by_name['query']._loaded_options = None
55
+ _globals['_SEARCHREQUEST'].fields_by_name['query']._serialized_options = b'\342A\001\002'
56
+ _globals['_STENCILSERVICE'].methods_by_name['ListNamespaces']._loaded_options = None
57
+ _globals['_STENCILSERVICE'].methods_by_name['ListNamespaces']._serialized_options = b'\222A%\n\tnamespace\022\030List names of namespaces\202\323\344\223\002\025\022\023/v1beta1/namespaces'
58
+ _globals['_STENCILSERVICE'].methods_by_name['GetNamespace']._loaded_options = None
59
+ _globals['_STENCILSERVICE'].methods_by_name['GetNamespace']._serialized_options = b'\222A \n\tnamespace\022\023Get namespace by id\202\323\344\223\002\032\022\030/v1beta1/namespaces/{id}'
60
+ _globals['_STENCILSERVICE'].methods_by_name['CreateNamespace']._loaded_options = None
61
+ _globals['_STENCILSERVICE'].methods_by_name['CreateNamespace']._serialized_options = b'\222A#\n\tnamespace\022\026Create namespace entry\202\323\344\223\002\030\"\023/v1beta1/namespaces:\001*'
62
+ _globals['_STENCILSERVICE'].methods_by_name['UpdateNamespace']._loaded_options = None
63
+ _globals['_STENCILSERVICE'].methods_by_name['UpdateNamespace']._serialized_options = b'\222A*\n\tnamespace\022\035Update namespace entity by id\202\323\344\223\002\035\032\030/v1beta1/namespaces/{id}:\001*'
64
+ _globals['_STENCILSERVICE'].methods_by_name['DeleteNamespace']._loaded_options = None
65
+ _globals['_STENCILSERVICE'].methods_by_name['DeleteNamespace']._serialized_options = b'\222Av\n\tnamespace\022\026Delete namespace by id\032QEnsure all schemas under this namespace is deleted, otherwise it will throw error\202\323\344\223\002\032*\030/v1beta1/namespaces/{id}'
66
+ _globals['_STENCILSERVICE'].methods_by_name['ListSchemas']._loaded_options = None
67
+ _globals['_STENCILSERVICE'].methods_by_name['ListSchemas']._serialized_options = b'\222A*\n\006schema\022 List schemas under the namespace\202\323\344\223\002\"\022 /v1beta1/namespaces/{id}/schemas'
68
+ _globals['_STENCILSERVICE'].methods_by_name['GetSchemaMetadata']._loaded_options = None
69
+ _globals['_STENCILSERVICE'].methods_by_name['GetSchemaMetadata']._serialized_options = b'\222A[\n\006schema\022QCreate schema under the namespace. Returns version number, unique ID and location\202\323\344\223\002=\022;/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}/meta'
70
+ _globals['_STENCILSERVICE'].methods_by_name['UpdateSchemaMetadata']._loaded_options = None
71
+ _globals['_STENCILSERVICE'].methods_by_name['UpdateSchemaMetadata']._serialized_options = b'\222A%\n\006schema\022\033Update only schema metadata\202\323\344\223\002;26/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}:\001*'
72
+ _globals['_STENCILSERVICE'].methods_by_name['DeleteSchema']._loaded_options = None
73
+ _globals['_STENCILSERVICE'].methods_by_name['DeleteSchema']._serialized_options = b'\222A!\n\006schema\022\027Delete specified schema\202\323\344\223\0028*6/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}'
74
+ _globals['_STENCILSERVICE'].methods_by_name['ListVersions']._loaded_options = None
75
+ _globals['_STENCILSERVICE'].methods_by_name['ListVersions']._serialized_options = b'\222A6\n\006schema\n\007version\022#List all version numbers for schema\202\323\344\223\002A\022?/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}/versions'
76
+ _globals['_STENCILSERVICE'].methods_by_name['DeleteVersion']._loaded_options = None
77
+ _globals['_STENCILSERVICE'].methods_by_name['DeleteVersion']._serialized_options = b'\222A9\n\006schema\n\007version\022&Delete specified version of the schema\202\323\344\223\002N*L/v1beta1/namespaces/{namespace_id}/schemas/{schema_id}/versions/{version_id}'
78
+ _globals['_STENCILSERVICE'].methods_by_name['Search']._loaded_options = None
79
+ _globals['_STENCILSERVICE'].methods_by_name['Search']._serialized_options = b'\222A\033\n\006schema\022\021Global Search API\202\323\344\223\002\021\022\017/v1beta1/search'
80
+ _globals['_NAMESPACE']._serialized_start=247
81
+ _globals['_NAMESPACE']._serialized_end=577
82
+ _globals['_SCHEMA']._serialized_start=580
83
+ _globals['_SCHEMA']._serialized_end=1236
84
+ _globals['_SCHEMA_FORMAT']._serialized_start=909
85
+ _globals['_SCHEMA_FORMAT']._serialized_end=996
86
+ _globals['_SCHEMA_COMPATIBILITY']._serialized_start=999
87
+ _globals['_SCHEMA_COMPATIBILITY']._serialized_end=1236
88
+ _globals['_LISTNAMESPACESREQUEST']._serialized_start=1238
89
+ _globals['_LISTNAMESPACESREQUEST']._serialized_end=1261
90
+ _globals['_LISTNAMESPACESRESPONSE']._serialized_start=1263
91
+ _globals['_LISTNAMESPACESRESPONSE']._serialized_end=1356
92
+ _globals['_GETNAMESPACEREQUEST']._serialized_start=1358
93
+ _globals['_GETNAMESPACEREQUEST']._serialized_end=1395
94
+ _globals['_GETNAMESPACERESPONSE']._serialized_start=1397
95
+ _globals['_GETNAMESPACERESPONSE']._serialized_end=1486
96
+ _globals['_CREATENAMESPACEREQUEST']._serialized_start=1489
97
+ _globals['_CREATENAMESPACEREQUEST']._serialized_end=1732
98
+ _globals['_CREATENAMESPACERESPONSE']._serialized_start=1734
99
+ _globals['_CREATENAMESPACERESPONSE']._serialized_end=1826
100
+ _globals['_UPDATENAMESPACEREQUEST']._serialized_start=1829
101
+ _globals['_UPDATENAMESPACEREQUEST']._serialized_end=2066
102
+ _globals['_UPDATENAMESPACERESPONSE']._serialized_start=2068
103
+ _globals['_UPDATENAMESPACERESPONSE']._serialized_end=2160
104
+ _globals['_DELETENAMESPACEREQUEST']._serialized_start=2162
105
+ _globals['_DELETENAMESPACEREQUEST']._serialized_end=2202
106
+ _globals['_DELETENAMESPACERESPONSE']._serialized_start=2204
107
+ _globals['_DELETENAMESPACERESPONSE']._serialized_end=2255
108
+ _globals['_LISTSCHEMASREQUEST']._serialized_start=2257
109
+ _globals['_LISTSCHEMASREQUEST']._serialized_end=2293
110
+ _globals['_LISTSCHEMASRESPONSE']._serialized_start=2295
111
+ _globals['_LISTSCHEMASRESPONSE']._serialized_end=2376
112
+ _globals['_GETLATESTSCHEMAREQUEST']._serialized_start=2378
113
+ _globals['_GETLATESTSCHEMAREQUEST']._serialized_end=2466
114
+ _globals['_GETLATESTSCHEMARESPONSE']._serialized_start=2468
115
+ _globals['_GETLATESTSCHEMARESPONSE']._serialized_end=2513
116
+ _globals['_CREATESCHEMAREQUEST']._serialized_start=2516
117
+ _globals['_CREATESCHEMAREQUEST']._serialized_end=2778
118
+ _globals['_CREATESCHEMARESPONSE']._serialized_start=2780
119
+ _globals['_CREATESCHEMARESPONSE']._serialized_end=2872
120
+ _globals['_CHECKCOMPATIBILITYREQUEST']._serialized_start=2875
121
+ _globals['_CHECKCOMPATIBILITYREQUEST']._serialized_end=3078
122
+ _globals['_CHECKCOMPATIBILITYRESPONSE']._serialized_start=3080
123
+ _globals['_CHECKCOMPATIBILITYRESPONSE']._serialized_end=3108
124
+ _globals['_GETSCHEMAMETADATAREQUEST']._serialized_start=3110
125
+ _globals['_GETSCHEMAMETADATAREQUEST']._serialized_end=3200
126
+ _globals['_GETSCHEMAMETADATARESPONSE']._serialized_start=3203
127
+ _globals['_GETSCHEMAMETADATARESPONSE']._serialized_end=3549
128
+ _globals['_UPDATESCHEMAMETADATAREQUEST']._serialized_start=3552
129
+ _globals['_UPDATESCHEMAMETADATAREQUEST']._serialized_end=3731
130
+ _globals['_UPDATESCHEMAMETADATARESPONSE']._serialized_start=3734
131
+ _globals['_UPDATESCHEMAMETADATARESPONSE']._serialized_end=3945
132
+ _globals['_DELETESCHEMAREQUEST']._serialized_start=3947
133
+ _globals['_DELETESCHEMAREQUEST']._serialized_end=4032
134
+ _globals['_DELETESCHEMARESPONSE']._serialized_start=4034
135
+ _globals['_DELETESCHEMARESPONSE']._serialized_end=4082
136
+ _globals['_LISTVERSIONSREQUEST']._serialized_start=4084
137
+ _globals['_LISTVERSIONSREQUEST']._serialized_end=4169
138
+ _globals['_LISTVERSIONSRESPONSE']._serialized_start=4171
139
+ _globals['_LISTVERSIONSRESPONSE']._serialized_end=4221
140
+ _globals['_GETSCHEMAREQUEST']._serialized_start=4223
141
+ _globals['_GETSCHEMAREQUEST']._serialized_end=4336
142
+ _globals['_GETSCHEMARESPONSE']._serialized_start=4338
143
+ _globals['_GETSCHEMARESPONSE']._serialized_end=4377
144
+ _globals['_DELETEVERSIONREQUEST']._serialized_start=4379
145
+ _globals['_DELETEVERSIONREQUEST']._serialized_end=4496
146
+ _globals['_DELETEVERSIONRESPONSE']._serialized_start=4498
147
+ _globals['_DELETEVERSIONRESPONSE']._serialized_end=4547
148
+ _globals['_SEARCHREQUEST']._serialized_start=4550
149
+ _globals['_SEARCHREQUEST']._serialized_end=4729
150
+ _globals['_SEARCHRESPONSE']._serialized_start=4732
151
+ _globals['_SEARCHRESPONSE']._serialized_end=4864
152
+ _globals['_SEARCHHITS']._serialized_start=4867
153
+ _globals['_SEARCHHITS']._serialized_end=5040
154
+ _globals['_SEARCHMETA']._serialized_start=5042
155
+ _globals['_SEARCHMETA']._serialized_end=5076
156
+ _globals['_STENCILSERVICE']._serialized_start=5079
157
+ _globals['_STENCILSERVICE']._serialized_end=8201
158
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,357 @@
1
+ import datetime
2
+
3
+ from google.api import annotations_pb2 as _annotations_pb2
4
+ from google.api import field_behavior_pb2 as _field_behavior_pb2
5
+ from google.protobuf import descriptor_pb2 as _descriptor_pb2
6
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
7
+ from protoc_gen_openapiv2.options import annotations_pb2 as _annotations_pb2_1
8
+ from google.protobuf.internal import containers as _containers
9
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
10
+ from google.protobuf import descriptor as _descriptor
11
+ from google.protobuf import message as _message
12
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
13
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
14
+
15
+ DESCRIPTOR: _descriptor.FileDescriptor
16
+
17
+ class Namespace(_message.Message):
18
+ __slots__ = ("id", "format", "compatibility", "description", "created_at", "updated_at")
19
+ ID_FIELD_NUMBER: _ClassVar[int]
20
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
21
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
22
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
23
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
24
+ UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
25
+ id: str
26
+ format: Schema.Format
27
+ compatibility: Schema.Compatibility
28
+ description: str
29
+ created_at: _timestamp_pb2.Timestamp
30
+ updated_at: _timestamp_pb2.Timestamp
31
+ def __init__(self, id: _Optional[str] = ..., format: _Optional[_Union[Schema.Format, str]] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ..., description: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
32
+
33
+ class Schema(_message.Message):
34
+ __slots__ = ("name", "format", "authority", "compatibility", "created_at", "updated_at")
35
+ class Format(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
36
+ __slots__ = ()
37
+ FORMAT_UNSPECIFIED: _ClassVar[Schema.Format]
38
+ FORMAT_PROTOBUF: _ClassVar[Schema.Format]
39
+ FORMAT_AVRO: _ClassVar[Schema.Format]
40
+ FORMAT_JSON: _ClassVar[Schema.Format]
41
+ FORMAT_UNSPECIFIED: Schema.Format
42
+ FORMAT_PROTOBUF: Schema.Format
43
+ FORMAT_AVRO: Schema.Format
44
+ FORMAT_JSON: Schema.Format
45
+ class Compatibility(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
46
+ __slots__ = ()
47
+ COMPATIBILITY_UNSPECIFIED: _ClassVar[Schema.Compatibility]
48
+ COMPATIBILITY_BACKWARD: _ClassVar[Schema.Compatibility]
49
+ COMPATIBILITY_BACKWARD_TRANSITIVE: _ClassVar[Schema.Compatibility]
50
+ COMPATIBILITY_FORWARD: _ClassVar[Schema.Compatibility]
51
+ COMPATIBILITY_FORWARD_TRANSITIVE: _ClassVar[Schema.Compatibility]
52
+ COMPATIBILITY_FULL: _ClassVar[Schema.Compatibility]
53
+ COMPATIBILITY_FULL_TRANSITIVE: _ClassVar[Schema.Compatibility]
54
+ COMPATIBILITY_UNSPECIFIED: Schema.Compatibility
55
+ COMPATIBILITY_BACKWARD: Schema.Compatibility
56
+ COMPATIBILITY_BACKWARD_TRANSITIVE: Schema.Compatibility
57
+ COMPATIBILITY_FORWARD: Schema.Compatibility
58
+ COMPATIBILITY_FORWARD_TRANSITIVE: Schema.Compatibility
59
+ COMPATIBILITY_FULL: Schema.Compatibility
60
+ COMPATIBILITY_FULL_TRANSITIVE: Schema.Compatibility
61
+ NAME_FIELD_NUMBER: _ClassVar[int]
62
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
63
+ AUTHORITY_FIELD_NUMBER: _ClassVar[int]
64
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
65
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
66
+ UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
67
+ name: str
68
+ format: Schema.Format
69
+ authority: str
70
+ compatibility: Schema.Compatibility
71
+ created_at: _timestamp_pb2.Timestamp
72
+ updated_at: _timestamp_pb2.Timestamp
73
+ def __init__(self, name: _Optional[str] = ..., format: _Optional[_Union[Schema.Format, str]] = ..., authority: _Optional[str] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
74
+
75
+ class ListNamespacesRequest(_message.Message):
76
+ __slots__ = ()
77
+ def __init__(self) -> None: ...
78
+
79
+ class ListNamespacesResponse(_message.Message):
80
+ __slots__ = ("namespaces",)
81
+ NAMESPACES_FIELD_NUMBER: _ClassVar[int]
82
+ namespaces: _containers.RepeatedCompositeFieldContainer[Namespace]
83
+ def __init__(self, namespaces: _Optional[_Iterable[_Union[Namespace, _Mapping]]] = ...) -> None: ...
84
+
85
+ class GetNamespaceRequest(_message.Message):
86
+ __slots__ = ("id",)
87
+ ID_FIELD_NUMBER: _ClassVar[int]
88
+ id: str
89
+ def __init__(self, id: _Optional[str] = ...) -> None: ...
90
+
91
+ class GetNamespaceResponse(_message.Message):
92
+ __slots__ = ("namespace",)
93
+ NAMESPACE_FIELD_NUMBER: _ClassVar[int]
94
+ namespace: Namespace
95
+ def __init__(self, namespace: _Optional[_Union[Namespace, _Mapping]] = ...) -> None: ...
96
+
97
+ class CreateNamespaceRequest(_message.Message):
98
+ __slots__ = ("id", "format", "compatibility", "description")
99
+ ID_FIELD_NUMBER: _ClassVar[int]
100
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
101
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
102
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
103
+ id: str
104
+ format: Schema.Format
105
+ compatibility: Schema.Compatibility
106
+ description: str
107
+ def __init__(self, id: _Optional[str] = ..., format: _Optional[_Union[Schema.Format, str]] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ..., description: _Optional[str] = ...) -> None: ...
108
+
109
+ class CreateNamespaceResponse(_message.Message):
110
+ __slots__ = ("namespace",)
111
+ NAMESPACE_FIELD_NUMBER: _ClassVar[int]
112
+ namespace: Namespace
113
+ def __init__(self, namespace: _Optional[_Union[Namespace, _Mapping]] = ...) -> None: ...
114
+
115
+ class UpdateNamespaceRequest(_message.Message):
116
+ __slots__ = ("id", "format", "compatibility", "description")
117
+ ID_FIELD_NUMBER: _ClassVar[int]
118
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
119
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
120
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
121
+ id: str
122
+ format: Schema.Format
123
+ compatibility: Schema.Compatibility
124
+ description: str
125
+ def __init__(self, id: _Optional[str] = ..., format: _Optional[_Union[Schema.Format, str]] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ..., description: _Optional[str] = ...) -> None: ...
126
+
127
+ class UpdateNamespaceResponse(_message.Message):
128
+ __slots__ = ("namespace",)
129
+ NAMESPACE_FIELD_NUMBER: _ClassVar[int]
130
+ namespace: Namespace
131
+ def __init__(self, namespace: _Optional[_Union[Namespace, _Mapping]] = ...) -> None: ...
132
+
133
+ class DeleteNamespaceRequest(_message.Message):
134
+ __slots__ = ("id",)
135
+ ID_FIELD_NUMBER: _ClassVar[int]
136
+ id: str
137
+ def __init__(self, id: _Optional[str] = ...) -> None: ...
138
+
139
+ class DeleteNamespaceResponse(_message.Message):
140
+ __slots__ = ("message",)
141
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
142
+ message: str
143
+ def __init__(self, message: _Optional[str] = ...) -> None: ...
144
+
145
+ class ListSchemasRequest(_message.Message):
146
+ __slots__ = ("id",)
147
+ ID_FIELD_NUMBER: _ClassVar[int]
148
+ id: str
149
+ def __init__(self, id: _Optional[str] = ...) -> None: ...
150
+
151
+ class ListSchemasResponse(_message.Message):
152
+ __slots__ = ("schemas",)
153
+ SCHEMAS_FIELD_NUMBER: _ClassVar[int]
154
+ schemas: _containers.RepeatedCompositeFieldContainer[Schema]
155
+ def __init__(self, schemas: _Optional[_Iterable[_Union[Schema, _Mapping]]] = ...) -> None: ...
156
+
157
+ class GetLatestSchemaRequest(_message.Message):
158
+ __slots__ = ("namespace_id", "schema_id")
159
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
160
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
161
+ namespace_id: str
162
+ schema_id: str
163
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ...) -> None: ...
164
+
165
+ class GetLatestSchemaResponse(_message.Message):
166
+ __slots__ = ("data",)
167
+ DATA_FIELD_NUMBER: _ClassVar[int]
168
+ data: bytes
169
+ def __init__(self, data: _Optional[bytes] = ...) -> None: ...
170
+
171
+ class CreateSchemaRequest(_message.Message):
172
+ __slots__ = ("namespace_id", "schema_id", "data", "format", "compatibility")
173
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
174
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
175
+ DATA_FIELD_NUMBER: _ClassVar[int]
176
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
177
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
178
+ namespace_id: str
179
+ schema_id: str
180
+ data: bytes
181
+ format: Schema.Format
182
+ compatibility: Schema.Compatibility
183
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ..., data: _Optional[bytes] = ..., format: _Optional[_Union[Schema.Format, str]] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ...) -> None: ...
184
+
185
+ class CreateSchemaResponse(_message.Message):
186
+ __slots__ = ("version", "id", "location")
187
+ VERSION_FIELD_NUMBER: _ClassVar[int]
188
+ ID_FIELD_NUMBER: _ClassVar[int]
189
+ LOCATION_FIELD_NUMBER: _ClassVar[int]
190
+ version: int
191
+ id: str
192
+ location: str
193
+ def __init__(self, version: _Optional[int] = ..., id: _Optional[str] = ..., location: _Optional[str] = ...) -> None: ...
194
+
195
+ class CheckCompatibilityRequest(_message.Message):
196
+ __slots__ = ("namespace_id", "schema_id", "data", "compatibility")
197
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
198
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
199
+ DATA_FIELD_NUMBER: _ClassVar[int]
200
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
201
+ namespace_id: str
202
+ schema_id: str
203
+ data: bytes
204
+ compatibility: Schema.Compatibility
205
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ..., data: _Optional[bytes] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ...) -> None: ...
206
+
207
+ class CheckCompatibilityResponse(_message.Message):
208
+ __slots__ = ()
209
+ def __init__(self) -> None: ...
210
+
211
+ class GetSchemaMetadataRequest(_message.Message):
212
+ __slots__ = ("namespace_id", "schema_id")
213
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
214
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
215
+ namespace_id: str
216
+ schema_id: str
217
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ...) -> None: ...
218
+
219
+ class GetSchemaMetadataResponse(_message.Message):
220
+ __slots__ = ("format", "compatibility", "authority", "name", "created_at", "updated_at")
221
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
222
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
223
+ AUTHORITY_FIELD_NUMBER: _ClassVar[int]
224
+ NAME_FIELD_NUMBER: _ClassVar[int]
225
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
226
+ UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
227
+ format: Schema.Format
228
+ compatibility: Schema.Compatibility
229
+ authority: str
230
+ name: str
231
+ created_at: _timestamp_pb2.Timestamp
232
+ updated_at: _timestamp_pb2.Timestamp
233
+ def __init__(self, format: _Optional[_Union[Schema.Format, str]] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ..., authority: _Optional[str] = ..., name: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
234
+
235
+ class UpdateSchemaMetadataRequest(_message.Message):
236
+ __slots__ = ("namespace_id", "schema_id", "compatibility")
237
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
238
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
239
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
240
+ namespace_id: str
241
+ schema_id: str
242
+ compatibility: Schema.Compatibility
243
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ...) -> None: ...
244
+
245
+ class UpdateSchemaMetadataResponse(_message.Message):
246
+ __slots__ = ("format", "compatibility", "authority")
247
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
248
+ COMPATIBILITY_FIELD_NUMBER: _ClassVar[int]
249
+ AUTHORITY_FIELD_NUMBER: _ClassVar[int]
250
+ format: Schema.Format
251
+ compatibility: Schema.Compatibility
252
+ authority: str
253
+ def __init__(self, format: _Optional[_Union[Schema.Format, str]] = ..., compatibility: _Optional[_Union[Schema.Compatibility, str]] = ..., authority: _Optional[str] = ...) -> None: ...
254
+
255
+ class DeleteSchemaRequest(_message.Message):
256
+ __slots__ = ("namespace_id", "schema_id")
257
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
258
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
259
+ namespace_id: str
260
+ schema_id: str
261
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ...) -> None: ...
262
+
263
+ class DeleteSchemaResponse(_message.Message):
264
+ __slots__ = ("message",)
265
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
266
+ message: str
267
+ def __init__(self, message: _Optional[str] = ...) -> None: ...
268
+
269
+ class ListVersionsRequest(_message.Message):
270
+ __slots__ = ("namespace_id", "schema_id")
271
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
272
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
273
+ namespace_id: str
274
+ schema_id: str
275
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ...) -> None: ...
276
+
277
+ class ListVersionsResponse(_message.Message):
278
+ __slots__ = ("versions",)
279
+ VERSIONS_FIELD_NUMBER: _ClassVar[int]
280
+ versions: _containers.RepeatedScalarFieldContainer[int]
281
+ def __init__(self, versions: _Optional[_Iterable[int]] = ...) -> None: ...
282
+
283
+ class GetSchemaRequest(_message.Message):
284
+ __slots__ = ("namespace_id", "schema_id", "version_id")
285
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
286
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
287
+ VERSION_ID_FIELD_NUMBER: _ClassVar[int]
288
+ namespace_id: str
289
+ schema_id: str
290
+ version_id: int
291
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ..., version_id: _Optional[int] = ...) -> None: ...
292
+
293
+ class GetSchemaResponse(_message.Message):
294
+ __slots__ = ("data",)
295
+ DATA_FIELD_NUMBER: _ClassVar[int]
296
+ data: bytes
297
+ def __init__(self, data: _Optional[bytes] = ...) -> None: ...
298
+
299
+ class DeleteVersionRequest(_message.Message):
300
+ __slots__ = ("namespace_id", "schema_id", "version_id")
301
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
302
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
303
+ VERSION_ID_FIELD_NUMBER: _ClassVar[int]
304
+ namespace_id: str
305
+ schema_id: str
306
+ version_id: int
307
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ..., version_id: _Optional[int] = ...) -> None: ...
308
+
309
+ class DeleteVersionResponse(_message.Message):
310
+ __slots__ = ("message",)
311
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
312
+ message: str
313
+ def __init__(self, message: _Optional[str] = ...) -> None: ...
314
+
315
+ class SearchRequest(_message.Message):
316
+ __slots__ = ("namespace_id", "schema_id", "query", "history", "version_id")
317
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
318
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
319
+ QUERY_FIELD_NUMBER: _ClassVar[int]
320
+ HISTORY_FIELD_NUMBER: _ClassVar[int]
321
+ VERSION_ID_FIELD_NUMBER: _ClassVar[int]
322
+ namespace_id: str
323
+ schema_id: str
324
+ query: str
325
+ history: bool
326
+ version_id: int
327
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ..., query: _Optional[str] = ..., history: _Optional[bool] = ..., version_id: _Optional[int] = ...) -> None: ...
328
+
329
+ class SearchResponse(_message.Message):
330
+ __slots__ = ("hits", "meta")
331
+ HITS_FIELD_NUMBER: _ClassVar[int]
332
+ META_FIELD_NUMBER: _ClassVar[int]
333
+ hits: _containers.RepeatedCompositeFieldContainer[SearchHits]
334
+ meta: SearchMeta
335
+ def __init__(self, hits: _Optional[_Iterable[_Union[SearchHits, _Mapping]]] = ..., meta: _Optional[_Union[SearchMeta, _Mapping]] = ...) -> None: ...
336
+
337
+ class SearchHits(_message.Message):
338
+ __slots__ = ("namespace_id", "schema_id", "version_id", "fields", "types", "path")
339
+ NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
340
+ SCHEMA_ID_FIELD_NUMBER: _ClassVar[int]
341
+ VERSION_ID_FIELD_NUMBER: _ClassVar[int]
342
+ FIELDS_FIELD_NUMBER: _ClassVar[int]
343
+ TYPES_FIELD_NUMBER: _ClassVar[int]
344
+ PATH_FIELD_NUMBER: _ClassVar[int]
345
+ namespace_id: str
346
+ schema_id: str
347
+ version_id: int
348
+ fields: _containers.RepeatedScalarFieldContainer[str]
349
+ types: _containers.RepeatedScalarFieldContainer[str]
350
+ path: str
351
+ def __init__(self, namespace_id: _Optional[str] = ..., schema_id: _Optional[str] = ..., version_id: _Optional[int] = ..., fields: _Optional[_Iterable[str]] = ..., types: _Optional[_Iterable[str]] = ..., path: _Optional[str] = ...) -> None: ...
352
+
353
+ class SearchMeta(_message.Message):
354
+ __slots__ = ("total",)
355
+ TOTAL_FIELD_NUMBER: _ClassVar[int]
356
+ total: int
357
+ def __init__(self, total: _Optional[int] = ...) -> None: ...
@@ -0,0 +1,101 @@
1
+ Metadata-Version: 2.4
2
+ Name: raystack-proton
3
+ Version: 2025.10.8.102837
4
+ Summary: Python client library for Raystack services
5
+ Author: Raystack
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/raystack/proton
8
+ Project-URL: Repository, https://github.com/raystack/proton
9
+ Requires-Python: >=3.8
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: connect-python>=0.5.0
13
+ Requires-Dist: googleapis-common-protos>=1.50.0
14
+ Requires-Dist: grpcio>=1.50.0
15
+ Requires-Dist: protobuf<7.0.0,>=4.21.0
16
+ Dynamic: license-file
17
+
18
+ # Raystack Proton Python
19
+
20
+ Python client library for Raystack services, generated from Protocol Buffer definitions.
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ pip install raystack-proton
26
+ ```
27
+
28
+ This will automatically install the required dependencies:
29
+ - `connect-python>=0.5.0` - Connect RPC client
30
+ - `googleapis-common-protos>=1.50.0` - Common Google API types
31
+ - `grpcio>=1.50.0` - gRPC runtime
32
+ - `protobuf>=4.21.0,<7.0.0` - Protocol Buffer runtime
33
+
34
+ ## Usage
35
+
36
+ This library uses [Connect RPC](https://github.com/connectrpc/connect-python) for communication with Raystack services.
37
+
38
+ ### Synchronous Client
39
+
40
+ ```python
41
+ from raystack.frontier.v1beta1 import admin_connect, admin_pb2
42
+
43
+ # Create client
44
+ admin_client = admin_connect.AdminServiceClientSync("http://localhost:8082")
45
+
46
+ # Make request with authentication headers
47
+ request = admin_pb2.CheckFederatedResourcePermissionRequest(
48
+ subject="user:<user-id>",
49
+ resource="app/organization:<org-id>",
50
+ permission="get"
51
+ )
52
+
53
+ response = admin_client.check_federated_resource_permission(
54
+ request,
55
+ headers={"Authorization": "<auth-token>"}
56
+ )
57
+ print(f"Has permission: {response.status}")
58
+ ```
59
+
60
+ ### Async Client
61
+
62
+ ```python
63
+ import asyncio
64
+ from raystack.frontier.v1beta1 import admin_connect, admin_pb2
65
+
66
+ async def check_permission():
67
+ admin_client = admin_connect.AdminServiceClient("http://localhost:8082")
68
+
69
+ request = admin_pb2.CheckFederatedResourcePermissionRequest(
70
+ subject="user:<user-id>",
71
+ resource="app/organization:<org-id>",
72
+ permission="get"
73
+ )
74
+
75
+ response = await admin_client.check_federated_resource_permission(
76
+ request,
77
+ headers={"Authorization": "<auth-token>"}
78
+ )
79
+ print(f"Has permission: {response.status}")
80
+
81
+ # Run the async function
82
+ asyncio.run(check_permission())
83
+ ```
84
+
85
+ ## Development
86
+
87
+ ### Building
88
+
89
+ ```bash
90
+ make build
91
+ ```
92
+
93
+ Or using Python:
94
+
95
+ ```bash
96
+ python3 build.py build
97
+ ```
98
+
99
+ ## License
100
+
101
+ Apache-2.0