loopix-sdk 2.30.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. loopix/__init__.py +260 -0
  2. loopix/api/__init__.py +287 -0
  3. loopix/api/client/__init__.py +8 -0
  4. loopix/api/client/api/__init__.py +1 -0
  5. loopix/api/client/api/sandboxes/__init__.py +1 -0
  6. loopix/api/client/api/sandboxes/delete_sandboxes_sandbox_id.py +161 -0
  7. loopix/api/client/api/sandboxes/get_sandboxes.py +176 -0
  8. loopix/api/client/api/sandboxes/get_sandboxes_metrics.py +173 -0
  9. loopix/api/client/api/sandboxes/get_sandboxes_sandbox_id.py +163 -0
  10. loopix/api/client/api/sandboxes/get_sandboxes_sandbox_id_logs.py +199 -0
  11. loopix/api/client/api/sandboxes/get_sandboxes_sandbox_id_metrics.py +212 -0
  12. loopix/api/client/api/sandboxes/get_v2_sandboxes.py +230 -0
  13. loopix/api/client/api/sandboxes/get_v_2_sandboxes_sandbox_id_logs.py +254 -0
  14. loopix/api/client/api/sandboxes/post_sandboxes.py +172 -0
  15. loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_connect.py +193 -0
  16. loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_pause.py +187 -0
  17. loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_refreshes.py +181 -0
  18. loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_resume.py +189 -0
  19. loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_snapshots.py +195 -0
  20. loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_timeout.py +193 -0
  21. loopix/api/client/api/sandboxes/put_sandboxes_sandbox_id_network.py +199 -0
  22. loopix/api/client/api/snapshots/__init__.py +1 -0
  23. loopix/api/client/api/snapshots/get_snapshots.py +202 -0
  24. loopix/api/client/api/tags/__init__.py +1 -0
  25. loopix/api/client/api/tags/delete_templates_tags.py +174 -0
  26. loopix/api/client/api/tags/get_templates_template_id_tags.py +172 -0
  27. loopix/api/client/api/tags/post_templates_tags.py +176 -0
  28. loopix/api/client/api/templates/__init__.py +1 -0
  29. loopix/api/client/api/templates/delete_templates_template_id.py +157 -0
  30. loopix/api/client/api/templates/get_templates.py +172 -0
  31. loopix/api/client/api/templates/get_templates_aliases_alias.py +167 -0
  32. loopix/api/client/api/templates/get_templates_template_id.py +195 -0
  33. loopix/api/client/api/templates/get_templates_template_id_builds_build_id_logs.py +272 -0
  34. loopix/api/client/api/templates/get_templates_template_id_builds_build_id_status.py +232 -0
  35. loopix/api/client/api/templates/get_templates_template_id_files_hash.py +180 -0
  36. loopix/api/client/api/templates/patch_templates_template_id.py +183 -0
  37. loopix/api/client/api/templates/patch_v_2_templates_template_id.py +185 -0
  38. loopix/api/client/api/templates/post_templates.py +172 -0
  39. loopix/api/client/api/templates/post_templates_template_id.py +181 -0
  40. loopix/api/client/api/templates/post_templates_template_id_builds_build_id.py +170 -0
  41. loopix/api/client/api/templates/post_v2_templates.py +172 -0
  42. loopix/api/client/api/templates/post_v3_templates.py +176 -0
  43. loopix/api/client/api/templates/post_v_2_templates_template_id_builds_build_id.py +192 -0
  44. loopix/api/client/api/volumes/__init__.py +1 -0
  45. loopix/api/client/api/volumes/delete_volumes_volume_id.py +161 -0
  46. loopix/api/client/api/volumes/get_volumes.py +140 -0
  47. loopix/api/client/api/volumes/get_volumes_volume_id.py +163 -0
  48. loopix/api/client/api/volumes/post_volumes.py +172 -0
  49. loopix/api/client/client.py +286 -0
  50. loopix/api/client/errors.py +16 -0
  51. loopix/api/client/models/__init__.py +185 -0
  52. loopix/api/client/models/admin_build_cancel_result.py +67 -0
  53. loopix/api/client/models/admin_sandbox_kill_result.py +67 -0
  54. loopix/api/client/models/assign_template_tags_request.py +67 -0
  55. loopix/api/client/models/assigned_template_tags.py +68 -0
  56. loopix/api/client/models/aws_registry.py +85 -0
  57. loopix/api/client/models/aws_registry_type.py +8 -0
  58. loopix/api/client/models/build_log_entry.py +89 -0
  59. loopix/api/client/models/build_status_reason.py +95 -0
  60. loopix/api/client/models/connect_sandbox.py +59 -0
  61. loopix/api/client/models/created_access_token.py +100 -0
  62. loopix/api/client/models/created_team_api_key.py +166 -0
  63. loopix/api/client/models/delete_template_tags_request.py +67 -0
  64. loopix/api/client/models/disk_metrics.py +91 -0
  65. loopix/api/client/models/error.py +67 -0
  66. loopix/api/client/models/gcp_registry.py +69 -0
  67. loopix/api/client/models/gcp_registry_type.py +8 -0
  68. loopix/api/client/models/general_registry.py +77 -0
  69. loopix/api/client/models/general_registry_type.py +8 -0
  70. loopix/api/client/models/identifier_masking_details.py +83 -0
  71. loopix/api/client/models/listed_sandbox.py +179 -0
  72. loopix/api/client/models/log_level.py +11 -0
  73. loopix/api/client/models/logs_direction.py +9 -0
  74. loopix/api/client/models/logs_source.py +9 -0
  75. loopix/api/client/models/machine_info.py +83 -0
  76. loopix/api/client/models/max_team_metric.py +78 -0
  77. loopix/api/client/models/mcp_type_0.py +44 -0
  78. loopix/api/client/models/new_access_token.py +59 -0
  79. loopix/api/client/models/new_sandbox.py +224 -0
  80. loopix/api/client/models/new_team_api_key.py +59 -0
  81. loopix/api/client/models/new_volume.py +59 -0
  82. loopix/api/client/models/node.py +160 -0
  83. loopix/api/client/models/node_detail.py +160 -0
  84. loopix/api/client/models/node_metrics.py +122 -0
  85. loopix/api/client/models/node_status.py +12 -0
  86. loopix/api/client/models/node_status_change.py +82 -0
  87. loopix/api/client/models/post_sandboxes_sandbox_id_refreshes_body.py +59 -0
  88. loopix/api/client/models/post_sandboxes_sandbox_id_snapshots_body.py +60 -0
  89. loopix/api/client/models/post_sandboxes_sandbox_id_timeout_body.py +59 -0
  90. loopix/api/client/models/resumed_sandbox.py +68 -0
  91. loopix/api/client/models/sandbox.py +145 -0
  92. loopix/api/client/models/sandbox_auto_resume_config.py +60 -0
  93. loopix/api/client/models/sandbox_detail.py +267 -0
  94. loopix/api/client/models/sandbox_lifecycle.py +70 -0
  95. loopix/api/client/models/sandbox_log.py +70 -0
  96. loopix/api/client/models/sandbox_log_entry.py +93 -0
  97. loopix/api/client/models/sandbox_log_entry_fields.py +44 -0
  98. loopix/api/client/models/sandbox_logs.py +91 -0
  99. loopix/api/client/models/sandbox_logs_v2_response.py +73 -0
  100. loopix/api/client/models/sandbox_metric.py +126 -0
  101. loopix/api/client/models/sandbox_network_config.py +118 -0
  102. loopix/api/client/models/sandbox_network_config_rules.py +72 -0
  103. loopix/api/client/models/sandbox_network_rule.py +74 -0
  104. loopix/api/client/models/sandbox_network_transform.py +79 -0
  105. loopix/api/client/models/sandbox_network_transform_headers.py +47 -0
  106. loopix/api/client/models/sandbox_network_update_config.py +114 -0
  107. loopix/api/client/models/sandbox_network_update_config_rules.py +71 -0
  108. loopix/api/client/models/sandbox_on_timeout.py +9 -0
  109. loopix/api/client/models/sandbox_pause_request.py +62 -0
  110. loopix/api/client/models/sandbox_state.py +9 -0
  111. loopix/api/client/models/sandbox_volume_mount.py +67 -0
  112. loopix/api/client/models/sandboxes_with_metrics.py +59 -0
  113. loopix/api/client/models/snapshot_info.py +70 -0
  114. loopix/api/client/models/team.py +83 -0
  115. loopix/api/client/models/team_api_key.py +158 -0
  116. loopix/api/client/models/team_metric.py +86 -0
  117. loopix/api/client/models/team_user.py +75 -0
  118. loopix/api/client/models/template.py +225 -0
  119. loopix/api/client/models/template_alias_response.py +67 -0
  120. loopix/api/client/models/template_build.py +139 -0
  121. loopix/api/client/models/template_build_file_upload.py +70 -0
  122. loopix/api/client/models/template_build_info.py +126 -0
  123. loopix/api/client/models/template_build_logs_response.py +73 -0
  124. loopix/api/client/models/template_build_request.py +115 -0
  125. loopix/api/client/models/template_build_request_v2.py +88 -0
  126. loopix/api/client/models/template_build_request_v3.py +107 -0
  127. loopix/api/client/models/template_build_start_v2.py +184 -0
  128. loopix/api/client/models/template_build_status.py +11 -0
  129. loopix/api/client/models/template_legacy.py +207 -0
  130. loopix/api/client/models/template_request_response_v3.py +99 -0
  131. loopix/api/client/models/template_step.py +91 -0
  132. loopix/api/client/models/template_tag.py +78 -0
  133. loopix/api/client/models/template_update_request.py +59 -0
  134. loopix/api/client/models/template_update_response.py +59 -0
  135. loopix/api/client/models/template_with_builds.py +156 -0
  136. loopix/api/client/models/update_team_api_key.py +59 -0
  137. loopix/api/client/models/volume.py +67 -0
  138. loopix/api/client/models/volume_and_token.py +75 -0
  139. loopix/api/client/models/volume_token.py +59 -0
  140. loopix/api/client/py.typed +1 -0
  141. loopix/api/client/types.py +54 -0
  142. loopix/api/client_async/__init__.py +74 -0
  143. loopix/api/client_sync/__init__.py +73 -0
  144. loopix/api/metadata.py +14 -0
  145. loopix/connection_config.py +309 -0
  146. loopix/envd/api.py +170 -0
  147. loopix/envd/filesystem/filesystem_connect.py +193 -0
  148. loopix/envd/filesystem/filesystem_pb2.py +80 -0
  149. loopix/envd/filesystem/filesystem_pb2.pyi +272 -0
  150. loopix/envd/process/process_connect.py +174 -0
  151. loopix/envd/process/process_pb2.py +96 -0
  152. loopix/envd/process/process_pb2.pyi +316 -0
  153. loopix/envd/rpc.py +139 -0
  154. loopix/envd/versions.py +11 -0
  155. loopix/exceptions.py +133 -0
  156. loopix/io_utils.py +57 -0
  157. loopix/paginator.py +52 -0
  158. loopix/py.typed +0 -0
  159. loopix/sandbox/_git/__init__.py +85 -0
  160. loopix/sandbox/_git/args.py +363 -0
  161. loopix/sandbox/_git/auth.py +132 -0
  162. loopix/sandbox/_git/config.py +32 -0
  163. loopix/sandbox/_git/parse.py +222 -0
  164. loopix/sandbox/_git/types.py +149 -0
  165. loopix/sandbox/commands/command_handle.py +69 -0
  166. loopix/sandbox/commands/main.py +39 -0
  167. loopix/sandbox/filesystem/filesystem.py +337 -0
  168. loopix/sandbox/filesystem/watch_handle.py +70 -0
  169. loopix/sandbox/main.py +227 -0
  170. loopix/sandbox/mcp.py +1949 -0
  171. loopix/sandbox/network.py +8 -0
  172. loopix/sandbox/sandbox_api.py +624 -0
  173. loopix/sandbox/signature.py +47 -0
  174. loopix/sandbox/utils.py +34 -0
  175. loopix/sandbox_async/commands/command.py +396 -0
  176. loopix/sandbox_async/commands/command_handle.py +298 -0
  177. loopix/sandbox_async/commands/pty.py +257 -0
  178. loopix/sandbox_async/filesystem/filesystem.py +720 -0
  179. loopix/sandbox_async/filesystem/watch_handle.py +97 -0
  180. loopix/sandbox_async/git.py +1100 -0
  181. loopix/sandbox_async/main.py +987 -0
  182. loopix/sandbox_async/paginator.py +140 -0
  183. loopix/sandbox_async/sandbox_api.py +504 -0
  184. loopix/sandbox_async/utils.py +7 -0
  185. loopix/sandbox_domains.py +5 -0
  186. loopix/sandbox_sync/commands/command.py +420 -0
  187. loopix/sandbox_sync/commands/command_handle.py +239 -0
  188. loopix/sandbox_sync/commands/pty.py +279 -0
  189. loopix/sandbox_sync/filesystem/filesystem.py +710 -0
  190. loopix/sandbox_sync/filesystem/watch_handle.py +102 -0
  191. loopix/sandbox_sync/git.py +1077 -0
  192. loopix/sandbox_sync/main.py +975 -0
  193. loopix/sandbox_sync/paginator.py +140 -0
  194. loopix/sandbox_sync/sandbox_api.py +491 -0
  195. loopix/template/consts.py +45 -0
  196. loopix/template/dockerfile_parser.py +286 -0
  197. loopix/template/logger.py +232 -0
  198. loopix/template/main.py +1368 -0
  199. loopix/template/readycmd.py +144 -0
  200. loopix/template/types.py +194 -0
  201. loopix/template/utils.py +426 -0
  202. loopix/template_async/build_api.py +419 -0
  203. loopix/template_async/main.py +528 -0
  204. loopix/template_sync/build_api.py +409 -0
  205. loopix/template_sync/main.py +529 -0
  206. loopix/volume/client/__init__.py +8 -0
  207. loopix/volume/client/api/__init__.py +1 -0
  208. loopix/volume/client/api/volumes/__init__.py +1 -0
  209. loopix/volume/client/api/volumes/delete_volumecontent_volume_id_path.py +174 -0
  210. loopix/volume/client/api/volumes/get_volumecontent_volume_id_dir.py +204 -0
  211. loopix/volume/client/api/volumes/get_volumecontent_volume_id_file.py +179 -0
  212. loopix/volume/client/api/volumes/get_volumecontent_volume_id_path.py +176 -0
  213. loopix/volume/client/api/volumes/patch_volumecontent_volume_id_path.py +203 -0
  214. loopix/volume/client/api/volumes/post_volumecontent_volume_id_dir.py +239 -0
  215. loopix/volume/client/api/volumes/put_volumecontent_volume_id_file.py +259 -0
  216. loopix/volume/client/client.py +286 -0
  217. loopix/volume/client/errors.py +16 -0
  218. loopix/volume/client/models/__init__.py +13 -0
  219. loopix/volume/client/models/error.py +67 -0
  220. loopix/volume/client/models/patch_volumecontent_volume_id_path_body.py +77 -0
  221. loopix/volume/client/models/volume_entry_stat.py +145 -0
  222. loopix/volume/client/models/volume_entry_stat_type.py +11 -0
  223. loopix/volume/client/py.typed +1 -0
  224. loopix/volume/client/types.py +54 -0
  225. loopix/volume/client_async/__init__.py +88 -0
  226. loopix/volume/client_sync/__init__.py +80 -0
  227. loopix/volume/connection_config.py +145 -0
  228. loopix/volume/types.py +62 -0
  229. loopix/volume/utils.py +52 -0
  230. loopix/volume/volume_async.py +639 -0
  231. loopix/volume/volume_sync.py +639 -0
  232. loopix_connect/__init__.py +1 -0
  233. loopix_connect/client.py +534 -0
  234. loopix_connect/py.typed +0 -0
  235. loopix_sdk-2.30.0.dist-info/METADATA +98 -0
  236. loopix_sdk-2.30.0.dist-info/RECORD +238 -0
  237. loopix_sdk-2.30.0.dist-info/WHEEL +4 -0
  238. loopix_sdk-2.30.0.dist-info/licenses/LICENSE +9 -0
@@ -0,0 +1,193 @@
1
+ # Code generated by protoc-gen-connect-python 0.1.0.dev2, DO NOT EDIT.
2
+ from typing import Any, Generator, Coroutine, AsyncGenerator, Optional
3
+ from httpcore import ConnectionPool, AsyncConnectionPool
4
+
5
+ import loopix_connect as connect
6
+
7
+ from loopix.envd.filesystem import filesystem_pb2 as filesystem_dot_filesystem__pb2
8
+
9
+ FilesystemName = "filesystem.Filesystem"
10
+
11
+
12
+ class FilesystemClient:
13
+ def __init__(
14
+ self,
15
+ base_url: str,
16
+ *,
17
+ pool: Optional[ConnectionPool] = None,
18
+ async_pool: Optional[AsyncConnectionPool] = None,
19
+ compressor=None,
20
+ json=False,
21
+ **opts,
22
+ ):
23
+ self._stat = connect.Client(
24
+ pool=pool,
25
+ async_pool=async_pool,
26
+ url=f"{base_url}/{FilesystemName}/Stat",
27
+ response_type=filesystem_dot_filesystem__pb2.StatResponse,
28
+ compressor=compressor,
29
+ json=json,
30
+ **opts,
31
+ )
32
+ self._make_dir = connect.Client(
33
+ pool=pool,
34
+ async_pool=async_pool,
35
+ url=f"{base_url}/{FilesystemName}/MakeDir",
36
+ response_type=filesystem_dot_filesystem__pb2.MakeDirResponse,
37
+ compressor=compressor,
38
+ json=json,
39
+ **opts,
40
+ )
41
+ self._move = connect.Client(
42
+ pool=pool,
43
+ async_pool=async_pool,
44
+ url=f"{base_url}/{FilesystemName}/Move",
45
+ response_type=filesystem_dot_filesystem__pb2.MoveResponse,
46
+ compressor=compressor,
47
+ json=json,
48
+ **opts,
49
+ )
50
+ self._list_dir = connect.Client(
51
+ pool=pool,
52
+ async_pool=async_pool,
53
+ url=f"{base_url}/{FilesystemName}/ListDir",
54
+ response_type=filesystem_dot_filesystem__pb2.ListDirResponse,
55
+ compressor=compressor,
56
+ json=json,
57
+ **opts,
58
+ )
59
+ self._remove = connect.Client(
60
+ pool=pool,
61
+ async_pool=async_pool,
62
+ url=f"{base_url}/{FilesystemName}/Remove",
63
+ response_type=filesystem_dot_filesystem__pb2.RemoveResponse,
64
+ compressor=compressor,
65
+ json=json,
66
+ **opts,
67
+ )
68
+ self._watch_dir = connect.Client(
69
+ pool=pool,
70
+ async_pool=async_pool,
71
+ url=f"{base_url}/{FilesystemName}/WatchDir",
72
+ response_type=filesystem_dot_filesystem__pb2.WatchDirResponse,
73
+ compressor=compressor,
74
+ json=json,
75
+ **opts,
76
+ )
77
+ self._create_watcher = connect.Client(
78
+ pool=pool,
79
+ async_pool=async_pool,
80
+ url=f"{base_url}/{FilesystemName}/CreateWatcher",
81
+ response_type=filesystem_dot_filesystem__pb2.CreateWatcherResponse,
82
+ compressor=compressor,
83
+ json=json,
84
+ **opts,
85
+ )
86
+ self._get_watcher_events = connect.Client(
87
+ pool=pool,
88
+ async_pool=async_pool,
89
+ url=f"{base_url}/{FilesystemName}/GetWatcherEvents",
90
+ response_type=filesystem_dot_filesystem__pb2.GetWatcherEventsResponse,
91
+ compressor=compressor,
92
+ json=json,
93
+ **opts,
94
+ )
95
+ self._remove_watcher = connect.Client(
96
+ pool=pool,
97
+ async_pool=async_pool,
98
+ url=f"{base_url}/{FilesystemName}/RemoveWatcher",
99
+ response_type=filesystem_dot_filesystem__pb2.RemoveWatcherResponse,
100
+ compressor=compressor,
101
+ json=json,
102
+ **opts,
103
+ )
104
+
105
+ def stat(
106
+ self, req: filesystem_dot_filesystem__pb2.StatRequest, **opts
107
+ ) -> filesystem_dot_filesystem__pb2.StatResponse:
108
+ return self._stat.call_unary(req, **opts)
109
+
110
+ def astat(
111
+ self, req: filesystem_dot_filesystem__pb2.StatRequest, **opts
112
+ ) -> Coroutine[Any, Any, filesystem_dot_filesystem__pb2.StatResponse]:
113
+ return self._stat.acall_unary(req, **opts)
114
+
115
+ def make_dir(
116
+ self, req: filesystem_dot_filesystem__pb2.MakeDirRequest, **opts
117
+ ) -> filesystem_dot_filesystem__pb2.MakeDirResponse:
118
+ return self._make_dir.call_unary(req, **opts)
119
+
120
+ def amake_dir(
121
+ self, req: filesystem_dot_filesystem__pb2.MakeDirRequest, **opts
122
+ ) -> Coroutine[Any, Any, filesystem_dot_filesystem__pb2.MakeDirResponse]:
123
+ return self._make_dir.acall_unary(req, **opts)
124
+
125
+ def move(
126
+ self, req: filesystem_dot_filesystem__pb2.MoveRequest, **opts
127
+ ) -> filesystem_dot_filesystem__pb2.MoveResponse:
128
+ return self._move.call_unary(req, **opts)
129
+
130
+ def amove(
131
+ self, req: filesystem_dot_filesystem__pb2.MoveRequest, **opts
132
+ ) -> Coroutine[Any, Any, filesystem_dot_filesystem__pb2.MoveResponse]:
133
+ return self._move.acall_unary(req, **opts)
134
+
135
+ def list_dir(
136
+ self, req: filesystem_dot_filesystem__pb2.ListDirRequest, **opts
137
+ ) -> filesystem_dot_filesystem__pb2.ListDirResponse:
138
+ return self._list_dir.call_unary(req, **opts)
139
+
140
+ def alist_dir(
141
+ self, req: filesystem_dot_filesystem__pb2.ListDirRequest, **opts
142
+ ) -> Coroutine[Any, Any, filesystem_dot_filesystem__pb2.ListDirResponse]:
143
+ return self._list_dir.acall_unary(req, **opts)
144
+
145
+ def remove(
146
+ self, req: filesystem_dot_filesystem__pb2.RemoveRequest, **opts
147
+ ) -> filesystem_dot_filesystem__pb2.RemoveResponse:
148
+ return self._remove.call_unary(req, **opts)
149
+
150
+ def aremove(
151
+ self, req: filesystem_dot_filesystem__pb2.RemoveRequest, **opts
152
+ ) -> Coroutine[Any, Any, filesystem_dot_filesystem__pb2.RemoveResponse]:
153
+ return self._remove.acall_unary(req, **opts)
154
+
155
+ def watch_dir(
156
+ self, req: filesystem_dot_filesystem__pb2.WatchDirRequest, **opts
157
+ ) -> Generator[filesystem_dot_filesystem__pb2.WatchDirResponse, Any, None]:
158
+ return self._watch_dir.call_server_stream(req, **opts)
159
+
160
+ def awatch_dir(
161
+ self, req: filesystem_dot_filesystem__pb2.WatchDirRequest, **opts
162
+ ) -> AsyncGenerator[filesystem_dot_filesystem__pb2.WatchDirResponse, Any]:
163
+ return self._watch_dir.acall_server_stream(req, **opts)
164
+
165
+ def create_watcher(
166
+ self, req: filesystem_dot_filesystem__pb2.CreateWatcherRequest, **opts
167
+ ) -> filesystem_dot_filesystem__pb2.CreateWatcherResponse:
168
+ return self._create_watcher.call_unary(req, **opts)
169
+
170
+ def acreate_watcher(
171
+ self, req: filesystem_dot_filesystem__pb2.CreateWatcherRequest, **opts
172
+ ) -> Coroutine[Any, Any, filesystem_dot_filesystem__pb2.CreateWatcherResponse]:
173
+ return self._create_watcher.acall_unary(req, **opts)
174
+
175
+ def get_watcher_events(
176
+ self, req: filesystem_dot_filesystem__pb2.GetWatcherEventsRequest, **opts
177
+ ) -> filesystem_dot_filesystem__pb2.GetWatcherEventsResponse:
178
+ return self._get_watcher_events.call_unary(req, **opts)
179
+
180
+ def aget_watcher_events(
181
+ self, req: filesystem_dot_filesystem__pb2.GetWatcherEventsRequest, **opts
182
+ ) -> Coroutine[Any, Any, filesystem_dot_filesystem__pb2.GetWatcherEventsResponse]:
183
+ return self._get_watcher_events.acall_unary(req, **opts)
184
+
185
+ def remove_watcher(
186
+ self, req: filesystem_dot_filesystem__pb2.RemoveWatcherRequest, **opts
187
+ ) -> filesystem_dot_filesystem__pb2.RemoveWatcherResponse:
188
+ return self._remove_watcher.call_unary(req, **opts)
189
+
190
+ def aremove_watcher(
191
+ self, req: filesystem_dot_filesystem__pb2.RemoveWatcherRequest, **opts
192
+ ) -> Coroutine[Any, Any, filesystem_dot_filesystem__pb2.RemoveWatcherResponse]:
193
+ return self._remove_watcher.acall_unary(req, **opts)
@@ -0,0 +1,80 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: filesystem/filesystem.proto
4
+ # Protobuf Python Version: 5.26.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
16
+
17
+
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66ilesystem/filesystem.proto\x12\nfilesystem\x1a\x1fgoogle/protobuf/timestamp.proto\"G\n\x0bMoveRequest\x12\x16\n\x06source\x18\x01 \x01(\tR\x06source\x12 \n\x0b\x64\x65stination\x18\x02 \x01(\tR\x0b\x64\x65stination\";\n\x0cMoveResponse\x12+\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x15.filesystem.EntryInfoR\x05\x65ntry\"$\n\x0eMakeDirRequest\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\">\n\x0fMakeDirResponse\x12+\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x15.filesystem.EntryInfoR\x05\x65ntry\"#\n\rRemoveRequest\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\"\x10\n\x0eRemoveResponse\"!\n\x0bStatRequest\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\";\n\x0cStatResponse\x12+\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x15.filesystem.EntryInfoR\x05\x65ntry\"\xd1\x03\n\tEntryInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12(\n\x04type\x18\x02 \x01(\x0e\x32\x14.filesystem.FileTypeR\x04type\x12\x12\n\x04path\x18\x03 \x01(\tR\x04path\x12\x12\n\x04size\x18\x04 \x01(\x03R\x04size\x12\x12\n\x04mode\x18\x05 \x01(\rR\x04mode\x12 \n\x0bpermissions\x18\x06 \x01(\tR\x0bpermissions\x12\x14\n\x05owner\x18\x07 \x01(\tR\x05owner\x12\x14\n\x05group\x18\x08 \x01(\tR\x05group\x12?\n\rmodified_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0cmodifiedTime\x12*\n\x0esymlink_target\x18\n \x01(\tH\x00R\rsymlinkTarget\x88\x01\x01\x12?\n\x08metadata\x18\x0b \x03(\x0b\x32#.filesystem.EntryInfo.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x11\n\x0f_symlink_target\":\n\x0eListDirRequest\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\rR\x05\x64\x65pth\"B\n\x0fListDirResponse\x12/\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x15.filesystem.EntryInfoR\x07\x65ntries\"\x9a\x01\n\x0fWatchDirRequest\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x1c\n\trecursive\x18\x02 \x01(\x08R\trecursive\x12#\n\rinclude_entry\x18\x03 \x01(\x08R\x0cincludeEntry\x12\x30\n\x14\x61llow_network_mounts\x18\x04 \x01(\x08R\x12\x61llowNetworkMounts\"\x8c\x01\n\x0f\x46ilesystemEvent\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x15.filesystem.EventTypeR\x04type\x12\x30\n\x05\x65ntry\x18\x03 \x01(\x0b\x32\x15.filesystem.EntryInfoH\x00R\x05\x65ntry\x88\x01\x01\x42\x08\n\x06_entry\"\xfe\x01\n\x10WatchDirResponse\x12?\n\x05start\x18\x01 \x01(\x0b\x32\'.filesystem.WatchDirResponse.StartEventH\x00R\x05start\x12=\n\nfilesystem\x18\x02 \x01(\x0b\x32\x1b.filesystem.FilesystemEventH\x00R\nfilesystem\x12\x46\n\tkeepalive\x18\x03 \x01(\x0b\x32&.filesystem.WatchDirResponse.KeepAliveH\x00R\tkeepalive\x1a\x0c\n\nStartEvent\x1a\x0b\n\tKeepAliveB\x07\n\x05\x65vent\"\x9f\x01\n\x14\x43reateWatcherRequest\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x1c\n\trecursive\x18\x02 \x01(\x08R\trecursive\x12#\n\rinclude_entry\x18\x03 \x01(\x08R\x0cincludeEntry\x12\x30\n\x14\x61llow_network_mounts\x18\x04 \x01(\x08R\x12\x61llowNetworkMounts\"6\n\x15\x43reateWatcherResponse\x12\x1d\n\nwatcher_id\x18\x01 \x01(\tR\twatcherId\"8\n\x17GetWatcherEventsRequest\x12\x1d\n\nwatcher_id\x18\x01 \x01(\tR\twatcherId\"O\n\x18GetWatcherEventsResponse\x12\x33\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1b.filesystem.FilesystemEventR\x06\x65vents\"5\n\x14RemoveWatcherRequest\x12\x1d\n\nwatcher_id\x18\x01 \x01(\tR\twatcherId\"\x17\n\x15RemoveWatcherResponse*R\n\x08\x46ileType\x12\x19\n\x15\x46ILE_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x46ILE_TYPE_FILE\x10\x01\x12\x17\n\x13\x46ILE_TYPE_DIRECTORY\x10\x02*\x98\x01\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x45VENT_TYPE_CREATE\x10\x01\x12\x14\n\x10\x45VENT_TYPE_WRITE\x10\x02\x12\x15\n\x11\x45VENT_TYPE_REMOVE\x10\x03\x12\x15\n\x11\x45VENT_TYPE_RENAME\x10\x04\x12\x14\n\x10\x45VENT_TYPE_CHMOD\x10\x05\x32\x9f\x05\n\nFilesystem\x12\x39\n\x04Stat\x12\x17.filesystem.StatRequest\x1a\x18.filesystem.StatResponse\x12\x42\n\x07MakeDir\x12\x1a.filesystem.MakeDirRequest\x1a\x1b.filesystem.MakeDirResponse\x12\x39\n\x04Move\x12\x17.filesystem.MoveRequest\x1a\x18.filesystem.MoveResponse\x12\x42\n\x07ListDir\x12\x1a.filesystem.ListDirRequest\x1a\x1b.filesystem.ListDirResponse\x12?\n\x06Remove\x12\x19.filesystem.RemoveRequest\x1a\x1a.filesystem.RemoveResponse\x12G\n\x08WatchDir\x12\x1b.filesystem.WatchDirRequest\x1a\x1c.filesystem.WatchDirResponse0\x01\x12T\n\rCreateWatcher\x12 .filesystem.CreateWatcherRequest\x1a!.filesystem.CreateWatcherResponse\x12]\n\x10GetWatcherEvents\x12#.filesystem.GetWatcherEventsRequest\x1a$.filesystem.GetWatcherEventsResponse\x12T\n\rRemoveWatcher\x12 .filesystem.RemoveWatcherRequest\x1a!.filesystem.RemoveWatcherResponseBi\n\x0e\x63om.filesystemB\x0f\x46ilesystemProtoP\x01\xa2\x02\x03\x46XX\xaa\x02\nFilesystem\xca\x02\nFilesystem\xe2\x02\x16\x46ilesystem\\GPBMetadata\xea\x02\nFilesystemb\x06proto3')
19
+
20
+ _globals = globals()
21
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
22
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'filesystem.filesystem_pb2', _globals)
23
+ if not _descriptor._USE_C_DESCRIPTORS:
24
+ _globals['DESCRIPTOR']._loaded_options = None
25
+ _globals['DESCRIPTOR']._serialized_options = b'\n\016com.filesystemB\017FilesystemProtoP\001\242\002\003FXX\252\002\nFilesystem\312\002\nFilesystem\342\002\026Filesystem\\GPBMetadata\352\002\nFilesystem'
26
+ _globals['_ENTRYINFO_METADATAENTRY']._loaded_options = None
27
+ _globals['_ENTRYINFO_METADATAENTRY']._serialized_options = b'8\001'
28
+ _globals['_FILETYPE']._serialized_start=2053
29
+ _globals['_FILETYPE']._serialized_end=2135
30
+ _globals['_EVENTTYPE']._serialized_start=2138
31
+ _globals['_EVENTTYPE']._serialized_end=2290
32
+ _globals['_MOVEREQUEST']._serialized_start=76
33
+ _globals['_MOVEREQUEST']._serialized_end=147
34
+ _globals['_MOVERESPONSE']._serialized_start=149
35
+ _globals['_MOVERESPONSE']._serialized_end=208
36
+ _globals['_MAKEDIRREQUEST']._serialized_start=210
37
+ _globals['_MAKEDIRREQUEST']._serialized_end=246
38
+ _globals['_MAKEDIRRESPONSE']._serialized_start=248
39
+ _globals['_MAKEDIRRESPONSE']._serialized_end=310
40
+ _globals['_REMOVEREQUEST']._serialized_start=312
41
+ _globals['_REMOVEREQUEST']._serialized_end=347
42
+ _globals['_REMOVERESPONSE']._serialized_start=349
43
+ _globals['_REMOVERESPONSE']._serialized_end=365
44
+ _globals['_STATREQUEST']._serialized_start=367
45
+ _globals['_STATREQUEST']._serialized_end=400
46
+ _globals['_STATRESPONSE']._serialized_start=402
47
+ _globals['_STATRESPONSE']._serialized_end=461
48
+ _globals['_ENTRYINFO']._serialized_start=464
49
+ _globals['_ENTRYINFO']._serialized_end=929
50
+ _globals['_ENTRYINFO_METADATAENTRY']._serialized_start=851
51
+ _globals['_ENTRYINFO_METADATAENTRY']._serialized_end=910
52
+ _globals['_LISTDIRREQUEST']._serialized_start=931
53
+ _globals['_LISTDIRREQUEST']._serialized_end=989
54
+ _globals['_LISTDIRRESPONSE']._serialized_start=991
55
+ _globals['_LISTDIRRESPONSE']._serialized_end=1057
56
+ _globals['_WATCHDIRREQUEST']._serialized_start=1060
57
+ _globals['_WATCHDIRREQUEST']._serialized_end=1214
58
+ _globals['_FILESYSTEMEVENT']._serialized_start=1217
59
+ _globals['_FILESYSTEMEVENT']._serialized_end=1357
60
+ _globals['_WATCHDIRRESPONSE']._serialized_start=1360
61
+ _globals['_WATCHDIRRESPONSE']._serialized_end=1614
62
+ _globals['_WATCHDIRRESPONSE_STARTEVENT']._serialized_start=1580
63
+ _globals['_WATCHDIRRESPONSE_STARTEVENT']._serialized_end=1592
64
+ _globals['_WATCHDIRRESPONSE_KEEPALIVE']._serialized_start=1594
65
+ _globals['_WATCHDIRRESPONSE_KEEPALIVE']._serialized_end=1605
66
+ _globals['_CREATEWATCHERREQUEST']._serialized_start=1617
67
+ _globals['_CREATEWATCHERREQUEST']._serialized_end=1776
68
+ _globals['_CREATEWATCHERRESPONSE']._serialized_start=1778
69
+ _globals['_CREATEWATCHERRESPONSE']._serialized_end=1832
70
+ _globals['_GETWATCHEREVENTSREQUEST']._serialized_start=1834
71
+ _globals['_GETWATCHEREVENTSREQUEST']._serialized_end=1890
72
+ _globals['_GETWATCHEREVENTSRESPONSE']._serialized_start=1892
73
+ _globals['_GETWATCHEREVENTSRESPONSE']._serialized_end=1971
74
+ _globals['_REMOVEWATCHERREQUEST']._serialized_start=1973
75
+ _globals['_REMOVEWATCHERREQUEST']._serialized_end=2026
76
+ _globals['_REMOVEWATCHERRESPONSE']._serialized_start=2028
77
+ _globals['_REMOVEWATCHERRESPONSE']._serialized_end=2051
78
+ _globals['_FILESYSTEM']._serialized_start=2293
79
+ _globals['_FILESYSTEM']._serialized_end=2964
80
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,272 @@
1
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
2
+ from google.protobuf.internal import containers as _containers
3
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
4
+ from google.protobuf import descriptor as _descriptor
5
+ from google.protobuf import message as _message
6
+ from typing import (
7
+ ClassVar as _ClassVar,
8
+ Iterable as _Iterable,
9
+ Mapping as _Mapping,
10
+ Optional as _Optional,
11
+ Union as _Union,
12
+ )
13
+
14
+ DESCRIPTOR: _descriptor.FileDescriptor
15
+
16
+ class FileType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
17
+ __slots__ = ()
18
+ FILE_TYPE_UNSPECIFIED: _ClassVar[FileType]
19
+ FILE_TYPE_FILE: _ClassVar[FileType]
20
+ FILE_TYPE_DIRECTORY: _ClassVar[FileType]
21
+
22
+ class EventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
23
+ __slots__ = ()
24
+ EVENT_TYPE_UNSPECIFIED: _ClassVar[EventType]
25
+ EVENT_TYPE_CREATE: _ClassVar[EventType]
26
+ EVENT_TYPE_WRITE: _ClassVar[EventType]
27
+ EVENT_TYPE_REMOVE: _ClassVar[EventType]
28
+ EVENT_TYPE_RENAME: _ClassVar[EventType]
29
+ EVENT_TYPE_CHMOD: _ClassVar[EventType]
30
+
31
+ FILE_TYPE_UNSPECIFIED: FileType
32
+ FILE_TYPE_FILE: FileType
33
+ FILE_TYPE_DIRECTORY: FileType
34
+ EVENT_TYPE_UNSPECIFIED: EventType
35
+ EVENT_TYPE_CREATE: EventType
36
+ EVENT_TYPE_WRITE: EventType
37
+ EVENT_TYPE_REMOVE: EventType
38
+ EVENT_TYPE_RENAME: EventType
39
+ EVENT_TYPE_CHMOD: EventType
40
+
41
+ class MoveRequest(_message.Message):
42
+ __slots__ = ("source", "destination")
43
+ SOURCE_FIELD_NUMBER: _ClassVar[int]
44
+ DESTINATION_FIELD_NUMBER: _ClassVar[int]
45
+ source: str
46
+ destination: str
47
+ def __init__(
48
+ self, source: _Optional[str] = ..., destination: _Optional[str] = ...
49
+ ) -> None: ...
50
+
51
+ class MoveResponse(_message.Message):
52
+ __slots__ = ("entry",)
53
+ ENTRY_FIELD_NUMBER: _ClassVar[int]
54
+ entry: EntryInfo
55
+ def __init__(self, entry: _Optional[_Union[EntryInfo, _Mapping]] = ...) -> None: ...
56
+
57
+ class MakeDirRequest(_message.Message):
58
+ __slots__ = ("path",)
59
+ PATH_FIELD_NUMBER: _ClassVar[int]
60
+ path: str
61
+ def __init__(self, path: _Optional[str] = ...) -> None: ...
62
+
63
+ class MakeDirResponse(_message.Message):
64
+ __slots__ = ("entry",)
65
+ ENTRY_FIELD_NUMBER: _ClassVar[int]
66
+ entry: EntryInfo
67
+ def __init__(self, entry: _Optional[_Union[EntryInfo, _Mapping]] = ...) -> None: ...
68
+
69
+ class RemoveRequest(_message.Message):
70
+ __slots__ = ("path",)
71
+ PATH_FIELD_NUMBER: _ClassVar[int]
72
+ path: str
73
+ def __init__(self, path: _Optional[str] = ...) -> None: ...
74
+
75
+ class RemoveResponse(_message.Message):
76
+ __slots__ = ()
77
+ def __init__(self) -> None: ...
78
+
79
+ class StatRequest(_message.Message):
80
+ __slots__ = ("path",)
81
+ PATH_FIELD_NUMBER: _ClassVar[int]
82
+ path: str
83
+ def __init__(self, path: _Optional[str] = ...) -> None: ...
84
+
85
+ class StatResponse(_message.Message):
86
+ __slots__ = ("entry",)
87
+ ENTRY_FIELD_NUMBER: _ClassVar[int]
88
+ entry: EntryInfo
89
+ def __init__(self, entry: _Optional[_Union[EntryInfo, _Mapping]] = ...) -> None: ...
90
+
91
+ class EntryInfo(_message.Message):
92
+ __slots__ = (
93
+ "name",
94
+ "type",
95
+ "path",
96
+ "size",
97
+ "mode",
98
+ "permissions",
99
+ "owner",
100
+ "group",
101
+ "modified_time",
102
+ "symlink_target",
103
+ "metadata",
104
+ )
105
+ class MetadataEntry(_message.Message):
106
+ __slots__ = ("key", "value")
107
+ KEY_FIELD_NUMBER: _ClassVar[int]
108
+ VALUE_FIELD_NUMBER: _ClassVar[int]
109
+ key: str
110
+ value: str
111
+ def __init__(
112
+ self, key: _Optional[str] = ..., value: _Optional[str] = ...
113
+ ) -> None: ...
114
+
115
+ NAME_FIELD_NUMBER: _ClassVar[int]
116
+ TYPE_FIELD_NUMBER: _ClassVar[int]
117
+ PATH_FIELD_NUMBER: _ClassVar[int]
118
+ SIZE_FIELD_NUMBER: _ClassVar[int]
119
+ MODE_FIELD_NUMBER: _ClassVar[int]
120
+ PERMISSIONS_FIELD_NUMBER: _ClassVar[int]
121
+ OWNER_FIELD_NUMBER: _ClassVar[int]
122
+ GROUP_FIELD_NUMBER: _ClassVar[int]
123
+ MODIFIED_TIME_FIELD_NUMBER: _ClassVar[int]
124
+ SYMLINK_TARGET_FIELD_NUMBER: _ClassVar[int]
125
+ METADATA_FIELD_NUMBER: _ClassVar[int]
126
+ name: str
127
+ type: FileType
128
+ path: str
129
+ size: int
130
+ mode: int
131
+ permissions: str
132
+ owner: str
133
+ group: str
134
+ modified_time: _timestamp_pb2.Timestamp
135
+ symlink_target: str
136
+ metadata: _containers.ScalarMap[str, str]
137
+ def __init__(
138
+ self,
139
+ name: _Optional[str] = ...,
140
+ type: _Optional[_Union[FileType, str]] = ...,
141
+ path: _Optional[str] = ...,
142
+ size: _Optional[int] = ...,
143
+ mode: _Optional[int] = ...,
144
+ permissions: _Optional[str] = ...,
145
+ owner: _Optional[str] = ...,
146
+ group: _Optional[str] = ...,
147
+ modified_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...,
148
+ symlink_target: _Optional[str] = ...,
149
+ metadata: _Optional[_Mapping[str, str]] = ...,
150
+ ) -> None: ...
151
+
152
+ class ListDirRequest(_message.Message):
153
+ __slots__ = ("path", "depth")
154
+ PATH_FIELD_NUMBER: _ClassVar[int]
155
+ DEPTH_FIELD_NUMBER: _ClassVar[int]
156
+ path: str
157
+ depth: int
158
+ def __init__(
159
+ self, path: _Optional[str] = ..., depth: _Optional[int] = ...
160
+ ) -> None: ...
161
+
162
+ class ListDirResponse(_message.Message):
163
+ __slots__ = ("entries",)
164
+ ENTRIES_FIELD_NUMBER: _ClassVar[int]
165
+ entries: _containers.RepeatedCompositeFieldContainer[EntryInfo]
166
+ def __init__(
167
+ self, entries: _Optional[_Iterable[_Union[EntryInfo, _Mapping]]] = ...
168
+ ) -> None: ...
169
+
170
+ class WatchDirRequest(_message.Message):
171
+ __slots__ = ("path", "recursive", "include_entry", "allow_network_mounts")
172
+ PATH_FIELD_NUMBER: _ClassVar[int]
173
+ RECURSIVE_FIELD_NUMBER: _ClassVar[int]
174
+ INCLUDE_ENTRY_FIELD_NUMBER: _ClassVar[int]
175
+ ALLOW_NETWORK_MOUNTS_FIELD_NUMBER: _ClassVar[int]
176
+ path: str
177
+ recursive: bool
178
+ include_entry: bool
179
+ allow_network_mounts: bool
180
+ def __init__(
181
+ self,
182
+ path: _Optional[str] = ...,
183
+ recursive: bool = ...,
184
+ include_entry: bool = ...,
185
+ allow_network_mounts: bool = ...,
186
+ ) -> None: ...
187
+
188
+ class FilesystemEvent(_message.Message):
189
+ __slots__ = ("name", "type", "entry")
190
+ NAME_FIELD_NUMBER: _ClassVar[int]
191
+ TYPE_FIELD_NUMBER: _ClassVar[int]
192
+ ENTRY_FIELD_NUMBER: _ClassVar[int]
193
+ name: str
194
+ type: EventType
195
+ entry: EntryInfo
196
+ def __init__(
197
+ self,
198
+ name: _Optional[str] = ...,
199
+ type: _Optional[_Union[EventType, str]] = ...,
200
+ entry: _Optional[_Union[EntryInfo, _Mapping]] = ...,
201
+ ) -> None: ...
202
+
203
+ class WatchDirResponse(_message.Message):
204
+ __slots__ = ("start", "filesystem", "keepalive")
205
+ class StartEvent(_message.Message):
206
+ __slots__ = ()
207
+ def __init__(self) -> None: ...
208
+
209
+ class KeepAlive(_message.Message):
210
+ __slots__ = ()
211
+ def __init__(self) -> None: ...
212
+
213
+ START_FIELD_NUMBER: _ClassVar[int]
214
+ FILESYSTEM_FIELD_NUMBER: _ClassVar[int]
215
+ KEEPALIVE_FIELD_NUMBER: _ClassVar[int]
216
+ start: WatchDirResponse.StartEvent
217
+ filesystem: FilesystemEvent
218
+ keepalive: WatchDirResponse.KeepAlive
219
+ def __init__(
220
+ self,
221
+ start: _Optional[_Union[WatchDirResponse.StartEvent, _Mapping]] = ...,
222
+ filesystem: _Optional[_Union[FilesystemEvent, _Mapping]] = ...,
223
+ keepalive: _Optional[_Union[WatchDirResponse.KeepAlive, _Mapping]] = ...,
224
+ ) -> None: ...
225
+
226
+ class CreateWatcherRequest(_message.Message):
227
+ __slots__ = ("path", "recursive", "include_entry", "allow_network_mounts")
228
+ PATH_FIELD_NUMBER: _ClassVar[int]
229
+ RECURSIVE_FIELD_NUMBER: _ClassVar[int]
230
+ INCLUDE_ENTRY_FIELD_NUMBER: _ClassVar[int]
231
+ ALLOW_NETWORK_MOUNTS_FIELD_NUMBER: _ClassVar[int]
232
+ path: str
233
+ recursive: bool
234
+ include_entry: bool
235
+ allow_network_mounts: bool
236
+ def __init__(
237
+ self,
238
+ path: _Optional[str] = ...,
239
+ recursive: bool = ...,
240
+ include_entry: bool = ...,
241
+ allow_network_mounts: bool = ...,
242
+ ) -> None: ...
243
+
244
+ class CreateWatcherResponse(_message.Message):
245
+ __slots__ = ("watcher_id",)
246
+ WATCHER_ID_FIELD_NUMBER: _ClassVar[int]
247
+ watcher_id: str
248
+ def __init__(self, watcher_id: _Optional[str] = ...) -> None: ...
249
+
250
+ class GetWatcherEventsRequest(_message.Message):
251
+ __slots__ = ("watcher_id",)
252
+ WATCHER_ID_FIELD_NUMBER: _ClassVar[int]
253
+ watcher_id: str
254
+ def __init__(self, watcher_id: _Optional[str] = ...) -> None: ...
255
+
256
+ class GetWatcherEventsResponse(_message.Message):
257
+ __slots__ = ("events",)
258
+ EVENTS_FIELD_NUMBER: _ClassVar[int]
259
+ events: _containers.RepeatedCompositeFieldContainer[FilesystemEvent]
260
+ def __init__(
261
+ self, events: _Optional[_Iterable[_Union[FilesystemEvent, _Mapping]]] = ...
262
+ ) -> None: ...
263
+
264
+ class RemoveWatcherRequest(_message.Message):
265
+ __slots__ = ("watcher_id",)
266
+ WATCHER_ID_FIELD_NUMBER: _ClassVar[int]
267
+ watcher_id: str
268
+ def __init__(self, watcher_id: _Optional[str] = ...) -> None: ...
269
+
270
+ class RemoveWatcherResponse(_message.Message):
271
+ __slots__ = ()
272
+ def __init__(self) -> None: ...