flwr 1.25.0__py3-none-any.whl → 1.26.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 (140) hide show
  1. flwr/__init__.py +1 -1
  2. flwr/app/__init__.py +4 -1
  3. flwr/app/message_type.py +29 -0
  4. flwr/app/metadata.py +5 -2
  5. flwr/app/user_config.py +19 -0
  6. flwr/cli/app.py +37 -19
  7. flwr/cli/app_cmd/publish.py +25 -75
  8. flwr/cli/app_cmd/review.py +18 -69
  9. flwr/cli/auth_plugin/auth_plugin.py +5 -10
  10. flwr/cli/auth_plugin/noop_auth_plugin.py +1 -2
  11. flwr/cli/auth_plugin/oidc_cli_plugin.py +38 -38
  12. flwr/cli/build.py +15 -28
  13. flwr/cli/config/__init__.py +21 -0
  14. flwr/cli/config/ls.py +71 -0
  15. flwr/cli/config_migration.py +297 -0
  16. flwr/cli/config_utils.py +63 -156
  17. flwr/cli/constant.py +71 -0
  18. flwr/cli/federation/__init__.py +0 -2
  19. flwr/cli/federation/ls.py +256 -64
  20. flwr/cli/flower_config.py +429 -0
  21. flwr/cli/install.py +23 -62
  22. flwr/cli/log.py +23 -37
  23. flwr/cli/login/login.py +29 -63
  24. flwr/cli/ls.py +28 -58
  25. flwr/cli/new/new.py +9 -29
  26. flwr/cli/pull.py +19 -37
  27. flwr/cli/run/run.py +85 -93
  28. flwr/cli/run_utils.py +1 -1
  29. flwr/cli/stop.py +32 -73
  30. flwr/cli/supernode/ls.py +25 -57
  31. flwr/cli/supernode/register.py +31 -80
  32. flwr/cli/supernode/unregister.py +24 -70
  33. flwr/cli/typing.py +200 -0
  34. flwr/cli/utils.py +160 -275
  35. flwr/client/grpc_rere_client/connection.py +3 -3
  36. flwr/client/grpc_rere_client/grpc_adapter.py +1 -1
  37. flwr/client/message_handler/message_handler.py +2 -1
  38. flwr/client/mod/centraldp_mods.py +1 -1
  39. flwr/client/mod/localdp_mod.py +1 -1
  40. flwr/client/mod/secure_aggregation/secaggplus_mod.py +1 -1
  41. flwr/client/run_info_store.py +2 -1
  42. flwr/clientapp/client_app.py +2 -1
  43. flwr/common/__init__.py +3 -2
  44. flwr/common/args.py +5 -5
  45. flwr/common/config.py +12 -17
  46. flwr/common/constant.py +3 -16
  47. flwr/common/context.py +2 -1
  48. flwr/common/exit/exit.py +4 -4
  49. flwr/common/exit/exit_code.py +6 -0
  50. flwr/common/grpc.py +2 -1
  51. flwr/common/logger.py +1 -1
  52. flwr/common/message.py +1 -1
  53. flwr/common/retry_invoker.py +13 -5
  54. flwr/common/secure_aggregation/ndarrays_arithmetic.py +5 -2
  55. flwr/common/serde.py +7 -5
  56. flwr/common/telemetry.py +1 -1
  57. flwr/common/typing.py +4 -3
  58. flwr/compat/client/app.py +6 -9
  59. flwr/compat/client/grpc_client/connection.py +2 -1
  60. flwr/compat/common/constant.py +29 -0
  61. flwr/compat/server/app.py +1 -1
  62. flwr/proto/clientappio_pb2.py +2 -2
  63. flwr/proto/clientappio_pb2_grpc.py +104 -88
  64. flwr/proto/clientappio_pb2_grpc.pyi +140 -80
  65. flwr/proto/federation_pb2.py +5 -3
  66. flwr/proto/federation_pb2.pyi +32 -2
  67. flwr/proto/run_pb2.py +5 -13
  68. flwr/proto/run_pb2.pyi +0 -57
  69. flwr/proto/serverappio_pb2.py +2 -2
  70. flwr/proto/serverappio_pb2_grpc.py +138 -207
  71. flwr/proto/serverappio_pb2_grpc.pyi +189 -155
  72. flwr/proto/simulationio_pb2.py +2 -2
  73. flwr/proto/simulationio_pb2_grpc.py +62 -90
  74. flwr/proto/simulationio_pb2_grpc.pyi +95 -55
  75. flwr/server/app.py +6 -13
  76. flwr/server/compat/grid_client_proxy.py +2 -1
  77. flwr/server/grid/grpc_grid.py +5 -5
  78. flwr/server/serverapp/app.py +11 -4
  79. flwr/server/superlink/fleet/grpc_adapter/grpc_adapter_servicer.py +1 -1
  80. flwr/server/superlink/fleet/grpc_rere/node_auth_server_interceptor.py +13 -12
  81. flwr/server/superlink/fleet/message_handler/message_handler.py +6 -5
  82. flwr/server/superlink/linkstate/__init__.py +2 -2
  83. flwr/server/superlink/linkstate/in_memory_linkstate.py +2 -10
  84. flwr/server/superlink/linkstate/linkstate.py +2 -21
  85. flwr/server/superlink/linkstate/linkstate_factory.py +16 -8
  86. flwr/server/superlink/linkstate/{sqlite_linkstate.py → sql_linkstate.py} +432 -534
  87. flwr/server/superlink/linkstate/utils.py +49 -2
  88. flwr/server/superlink/serverappio/serverappio_servicer.py +1 -33
  89. flwr/server/superlink/simulation/simulationio_servicer.py +0 -19
  90. flwr/server/utils/validator.py +1 -1
  91. flwr/server/workflow/default_workflows.py +2 -1
  92. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +1 -1
  93. flwr/serverapp/strategy/bulyan.py +7 -1
  94. flwr/serverapp/strategy/dp_fixed_clipping.py +9 -1
  95. flwr/serverapp/strategy/fedavg.py +1 -1
  96. flwr/serverapp/strategy/fedxgb_cyclic.py +1 -1
  97. flwr/simulation/ray_transport/ray_client_proxy.py +2 -6
  98. flwr/simulation/run_simulation.py +3 -12
  99. flwr/simulation/simulationio_connection.py +3 -3
  100. flwr/{common → supercore}/address.py +7 -33
  101. flwr/supercore/app_utils.py +2 -1
  102. flwr/supercore/constant.py +24 -2
  103. flwr/supercore/corestate/{sqlite_corestate.py → sql_corestate.py} +19 -23
  104. flwr/supercore/credential_store/__init__.py +33 -0
  105. flwr/supercore/credential_store/credential_store.py +34 -0
  106. flwr/supercore/credential_store/file_credential_store.py +76 -0
  107. flwr/{common → supercore}/date.py +0 -11
  108. flwr/supercore/ffs/disk_ffs.py +1 -1
  109. flwr/supercore/object_store/object_store_factory.py +14 -6
  110. flwr/supercore/object_store/{sqlite_object_store.py → sql_object_store.py} +115 -117
  111. flwr/supercore/sql_mixin.py +315 -0
  112. flwr/supercore/state/__init__.py +15 -0
  113. flwr/supercore/state/alembic/__init__.py +15 -0
  114. flwr/supercore/state/alembic/env.py +103 -0
  115. flwr/supercore/state/alembic/script.py.mako +43 -0
  116. flwr/supercore/state/alembic/utils.py +239 -0
  117. flwr/supercore/state/alembic/versions/__init__.py +15 -0
  118. flwr/supercore/state/alembic/versions/rev_2026_01_28_initialize_migration_of_state_tables.py +200 -0
  119. flwr/supercore/state/schema/README.md +121 -0
  120. flwr/supercore/state/schema/__init__.py +15 -0
  121. flwr/supercore/state/schema/corestate_tables.py +36 -0
  122. flwr/supercore/state/schema/linkstate_tables.py +152 -0
  123. flwr/supercore/state/schema/objectstore_tables.py +90 -0
  124. flwr/supercore/superexec/run_superexec.py +2 -2
  125. flwr/supercore/utils.py +36 -1
  126. flwr/superlink/federation/federation_manager.py +2 -2
  127. flwr/superlink/federation/noop_federation_manager.py +8 -6
  128. flwr/superlink/servicer/control/control_servicer.py +19 -17
  129. flwr/supernode/cli/flower_supernode.py +2 -1
  130. flwr/supernode/runtime/run_clientapp.py +14 -14
  131. flwr/supernode/servicer/clientappio/clientappio_servicer.py +10 -8
  132. flwr/supernode/start_client_internal.py +10 -6
  133. {flwr-1.25.0.dist-info → flwr-1.26.0.dist-info}/METADATA +7 -5
  134. {flwr-1.25.0.dist-info → flwr-1.26.0.dist-info}/RECORD +137 -116
  135. flwr/cli/federation/show.py +0 -318
  136. flwr/common/pyproject.py +0 -42
  137. flwr/supercore/sqlite_mixin.py +0 -159
  138. /flwr/{common → supercore}/version.py +0 -0
  139. {flwr-1.25.0.dist-info → flwr-1.26.0.dist-info}/WHEEL +0 -0
  140. {flwr-1.25.0.dist-info → flwr-1.26.0.dist-info}/entry_points.txt +0 -0
@@ -40,7 +40,12 @@ class ClientAppIoStub:
40
40
  flwr.proto.appio_pb2.ListAppsToLaunchRequest,
41
41
  flwr.proto.appio_pb2.ListAppsToLaunchResponse,
42
42
  ]
43
- """Get run IDs with pending messages"""
43
+ """///////////////////////////////////////////////////////////////////////////
44
+ General *AppIo endpoints for SuperExec processes
45
+ ///////////////////////////////////////////////////////////////////////////
46
+
47
+ Get run IDs with pending messages
48
+ """
44
49
 
45
50
  RequestToken: grpc.UnaryUnaryMultiCallable[
46
51
  flwr.proto.appio_pb2.RequestTokenRequest,
@@ -52,43 +57,41 @@ class ClientAppIoStub:
52
57
  flwr.proto.run_pb2.GetRunRequest,
53
58
  flwr.proto.run_pb2.GetRunResponse,
54
59
  ]
55
- """Get run details"""
60
+ """///////////////////////////////////////////////////////////////////////////
61
+ General *AppIo endpoints for App Executor processes
62
+ ///////////////////////////////////////////////////////////////////////////
63
+
64
+ Get run details
65
+ """
66
+
67
+ SendAppHeartbeat: grpc.UnaryUnaryMultiCallable[
68
+ flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
69
+ flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse,
70
+ ]
71
+ """App heartbeat"""
56
72
 
57
- PullClientAppInputs: grpc.UnaryUnaryMultiCallable[
73
+ PullAppInputs: grpc.UnaryUnaryMultiCallable[
58
74
  flwr.proto.appio_pb2.PullAppInputsRequest,
59
75
  flwr.proto.appio_pb2.PullAppInputsResponse,
60
76
  ]
61
- """Pull client app inputs"""
77
+ """Pull app inputs"""
62
78
 
63
- PushClientAppOutputs: grpc.UnaryUnaryMultiCallable[
79
+ PushAppOutputs: grpc.UnaryUnaryMultiCallable[
64
80
  flwr.proto.appio_pb2.PushAppOutputsRequest,
65
81
  flwr.proto.appio_pb2.PushAppOutputsResponse,
66
82
  ]
67
- """Push client app outputs"""
68
-
69
- PushMessage: grpc.UnaryUnaryMultiCallable[
70
- flwr.proto.appio_pb2.PushAppMessagesRequest,
71
- flwr.proto.appio_pb2.PushAppMessagesResponse,
72
- ]
73
- """Push Message"""
74
-
75
- PullMessage: grpc.UnaryUnaryMultiCallable[
76
- flwr.proto.appio_pb2.PullAppMessagesRequest,
77
- flwr.proto.appio_pb2.PullAppMessagesResponse,
78
- ]
79
- """Pull Message"""
80
-
81
- SendAppHeartbeat: grpc.UnaryUnaryMultiCallable[
82
- flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
83
- flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse,
84
- ]
85
- """App heartbeat"""
83
+ """Push app outputs"""
86
84
 
87
85
  PushObject: grpc.UnaryUnaryMultiCallable[
88
86
  flwr.proto.message_pb2.PushObjectRequest,
89
87
  flwr.proto.message_pb2.PushObjectResponse,
90
88
  ]
91
- """Push Object"""
89
+ """///////////////////////////////////////////////////////////////////////////
90
+ Specific endpoints shared by ServerAppIo and ClientAppIo
91
+ ///////////////////////////////////////////////////////////////////////////
92
+
93
+ Push Object
94
+ """
92
95
 
93
96
  PullObject: grpc.UnaryUnaryMultiCallable[
94
97
  flwr.proto.message_pb2.PullObjectRequest,
@@ -102,12 +105,34 @@ class ClientAppIoStub:
102
105
  ]
103
106
  """Confirm Message Received"""
104
107
 
108
+ PushMessage: grpc.UnaryUnaryMultiCallable[
109
+ flwr.proto.appio_pb2.PushAppMessagesRequest,
110
+ flwr.proto.appio_pb2.PushAppMessagesResponse,
111
+ ]
112
+ """///////////////////////////////////////////////////////////////////////////
113
+ Specific endpoints for ClientAppIo
114
+ ///////////////////////////////////////////////////////////////////////////
115
+
116
+ Push Message
117
+ """
118
+
119
+ PullMessage: grpc.UnaryUnaryMultiCallable[
120
+ flwr.proto.appio_pb2.PullAppMessagesRequest,
121
+ flwr.proto.appio_pb2.PullAppMessagesResponse,
122
+ ]
123
+ """Pull Message"""
124
+
105
125
  class ClientAppIoAsyncStub:
106
126
  ListAppsToLaunch: grpc.aio.UnaryUnaryMultiCallable[
107
127
  flwr.proto.appio_pb2.ListAppsToLaunchRequest,
108
128
  flwr.proto.appio_pb2.ListAppsToLaunchResponse,
109
129
  ]
110
- """Get run IDs with pending messages"""
130
+ """///////////////////////////////////////////////////////////////////////////
131
+ General *AppIo endpoints for SuperExec processes
132
+ ///////////////////////////////////////////////////////////////////////////
133
+
134
+ Get run IDs with pending messages
135
+ """
111
136
 
112
137
  RequestToken: grpc.aio.UnaryUnaryMultiCallable[
113
138
  flwr.proto.appio_pb2.RequestTokenRequest,
@@ -119,43 +144,41 @@ class ClientAppIoAsyncStub:
119
144
  flwr.proto.run_pb2.GetRunRequest,
120
145
  flwr.proto.run_pb2.GetRunResponse,
121
146
  ]
122
- """Get run details"""
147
+ """///////////////////////////////////////////////////////////////////////////
148
+ General *AppIo endpoints for App Executor processes
149
+ ///////////////////////////////////////////////////////////////////////////
123
150
 
124
- PullClientAppInputs: grpc.aio.UnaryUnaryMultiCallable[
151
+ Get run details
152
+ """
153
+
154
+ SendAppHeartbeat: grpc.aio.UnaryUnaryMultiCallable[
155
+ flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
156
+ flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse,
157
+ ]
158
+ """App heartbeat"""
159
+
160
+ PullAppInputs: grpc.aio.UnaryUnaryMultiCallable[
125
161
  flwr.proto.appio_pb2.PullAppInputsRequest,
126
162
  flwr.proto.appio_pb2.PullAppInputsResponse,
127
163
  ]
128
- """Pull client app inputs"""
164
+ """Pull app inputs"""
129
165
 
130
- PushClientAppOutputs: grpc.aio.UnaryUnaryMultiCallable[
166
+ PushAppOutputs: grpc.aio.UnaryUnaryMultiCallable[
131
167
  flwr.proto.appio_pb2.PushAppOutputsRequest,
132
168
  flwr.proto.appio_pb2.PushAppOutputsResponse,
133
169
  ]
134
- """Push client app outputs"""
135
-
136
- PushMessage: grpc.aio.UnaryUnaryMultiCallable[
137
- flwr.proto.appio_pb2.PushAppMessagesRequest,
138
- flwr.proto.appio_pb2.PushAppMessagesResponse,
139
- ]
140
- """Push Message"""
141
-
142
- PullMessage: grpc.aio.UnaryUnaryMultiCallable[
143
- flwr.proto.appio_pb2.PullAppMessagesRequest,
144
- flwr.proto.appio_pb2.PullAppMessagesResponse,
145
- ]
146
- """Pull Message"""
147
-
148
- SendAppHeartbeat: grpc.aio.UnaryUnaryMultiCallable[
149
- flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
150
- flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse,
151
- ]
152
- """App heartbeat"""
170
+ """Push app outputs"""
153
171
 
154
172
  PushObject: grpc.aio.UnaryUnaryMultiCallable[
155
173
  flwr.proto.message_pb2.PushObjectRequest,
156
174
  flwr.proto.message_pb2.PushObjectResponse,
157
175
  ]
158
- """Push Object"""
176
+ """///////////////////////////////////////////////////////////////////////////
177
+ Specific endpoints shared by ServerAppIo and ClientAppIo
178
+ ///////////////////////////////////////////////////////////////////////////
179
+
180
+ Push Object
181
+ """
159
182
 
160
183
  PullObject: grpc.aio.UnaryUnaryMultiCallable[
161
184
  flwr.proto.message_pb2.PullObjectRequest,
@@ -169,6 +192,23 @@ class ClientAppIoAsyncStub:
169
192
  ]
170
193
  """Confirm Message Received"""
171
194
 
195
+ PushMessage: grpc.aio.UnaryUnaryMultiCallable[
196
+ flwr.proto.appio_pb2.PushAppMessagesRequest,
197
+ flwr.proto.appio_pb2.PushAppMessagesResponse,
198
+ ]
199
+ """///////////////////////////////////////////////////////////////////////////
200
+ Specific endpoints for ClientAppIo
201
+ ///////////////////////////////////////////////////////////////////////////
202
+
203
+ Push Message
204
+ """
205
+
206
+ PullMessage: grpc.aio.UnaryUnaryMultiCallable[
207
+ flwr.proto.appio_pb2.PullAppMessagesRequest,
208
+ flwr.proto.appio_pb2.PullAppMessagesResponse,
209
+ ]
210
+ """Pull Message"""
211
+
172
212
  class ClientAppIoServicer(metaclass=abc.ABCMeta):
173
213
  @abc.abstractmethod
174
214
  def ListAppsToLaunch(
@@ -176,7 +216,12 @@ class ClientAppIoServicer(metaclass=abc.ABCMeta):
176
216
  request: flwr.proto.appio_pb2.ListAppsToLaunchRequest,
177
217
  context: _ServicerContext,
178
218
  ) -> typing.Union[flwr.proto.appio_pb2.ListAppsToLaunchResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.ListAppsToLaunchResponse]]:
179
- """Get run IDs with pending messages"""
219
+ """///////////////////////////////////////////////////////////////////////////
220
+ General *AppIo endpoints for SuperExec processes
221
+ ///////////////////////////////////////////////////////////////////////////
222
+
223
+ Get run IDs with pending messages
224
+ """
180
225
 
181
226
  @abc.abstractmethod
182
227
  def RequestToken(
@@ -192,47 +237,36 @@ class ClientAppIoServicer(metaclass=abc.ABCMeta):
192
237
  request: flwr.proto.run_pb2.GetRunRequest,
193
238
  context: _ServicerContext,
194
239
  ) -> typing.Union[flwr.proto.run_pb2.GetRunResponse, collections.abc.Awaitable[flwr.proto.run_pb2.GetRunResponse]]:
195
- """Get run details"""
240
+ """///////////////////////////////////////////////////////////////////////////
241
+ General *AppIo endpoints for App Executor processes
242
+ ///////////////////////////////////////////////////////////////////////////
196
243
 
197
- @abc.abstractmethod
198
- def PullClientAppInputs(
199
- self,
200
- request: flwr.proto.appio_pb2.PullAppInputsRequest,
201
- context: _ServicerContext,
202
- ) -> typing.Union[flwr.proto.appio_pb2.PullAppInputsResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PullAppInputsResponse]]:
203
- """Pull client app inputs"""
244
+ Get run details
245
+ """
204
246
 
205
247
  @abc.abstractmethod
206
- def PushClientAppOutputs(
207
- self,
208
- request: flwr.proto.appio_pb2.PushAppOutputsRequest,
209
- context: _ServicerContext,
210
- ) -> typing.Union[flwr.proto.appio_pb2.PushAppOutputsResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PushAppOutputsResponse]]:
211
- """Push client app outputs"""
212
-
213
- @abc.abstractmethod
214
- def PushMessage(
248
+ def SendAppHeartbeat(
215
249
  self,
216
- request: flwr.proto.appio_pb2.PushAppMessagesRequest,
250
+ request: flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
217
251
  context: _ServicerContext,
218
- ) -> typing.Union[flwr.proto.appio_pb2.PushAppMessagesResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PushAppMessagesResponse]]:
219
- """Push Message"""
252
+ ) -> typing.Union[flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse, collections.abc.Awaitable[flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse]]:
253
+ """App heartbeat"""
220
254
 
221
255
  @abc.abstractmethod
222
- def PullMessage(
256
+ def PullAppInputs(
223
257
  self,
224
- request: flwr.proto.appio_pb2.PullAppMessagesRequest,
258
+ request: flwr.proto.appio_pb2.PullAppInputsRequest,
225
259
  context: _ServicerContext,
226
- ) -> typing.Union[flwr.proto.appio_pb2.PullAppMessagesResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PullAppMessagesResponse]]:
227
- """Pull Message"""
260
+ ) -> typing.Union[flwr.proto.appio_pb2.PullAppInputsResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PullAppInputsResponse]]:
261
+ """Pull app inputs"""
228
262
 
229
263
  @abc.abstractmethod
230
- def SendAppHeartbeat(
264
+ def PushAppOutputs(
231
265
  self,
232
- request: flwr.proto.heartbeat_pb2.SendAppHeartbeatRequest,
266
+ request: flwr.proto.appio_pb2.PushAppOutputsRequest,
233
267
  context: _ServicerContext,
234
- ) -> typing.Union[flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse, collections.abc.Awaitable[flwr.proto.heartbeat_pb2.SendAppHeartbeatResponse]]:
235
- """App heartbeat"""
268
+ ) -> typing.Union[flwr.proto.appio_pb2.PushAppOutputsResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PushAppOutputsResponse]]:
269
+ """Push app outputs"""
236
270
 
237
271
  @abc.abstractmethod
238
272
  def PushObject(
@@ -240,7 +274,12 @@ class ClientAppIoServicer(metaclass=abc.ABCMeta):
240
274
  request: flwr.proto.message_pb2.PushObjectRequest,
241
275
  context: _ServicerContext,
242
276
  ) -> typing.Union[flwr.proto.message_pb2.PushObjectResponse, collections.abc.Awaitable[flwr.proto.message_pb2.PushObjectResponse]]:
243
- """Push Object"""
277
+ """///////////////////////////////////////////////////////////////////////////
278
+ Specific endpoints shared by ServerAppIo and ClientAppIo
279
+ ///////////////////////////////////////////////////////////////////////////
280
+
281
+ Push Object
282
+ """
244
283
 
245
284
  @abc.abstractmethod
246
285
  def PullObject(
@@ -258,4 +297,25 @@ class ClientAppIoServicer(metaclass=abc.ABCMeta):
258
297
  ) -> typing.Union[flwr.proto.message_pb2.ConfirmMessageReceivedResponse, collections.abc.Awaitable[flwr.proto.message_pb2.ConfirmMessageReceivedResponse]]:
259
298
  """Confirm Message Received"""
260
299
 
300
+ @abc.abstractmethod
301
+ def PushMessage(
302
+ self,
303
+ request: flwr.proto.appio_pb2.PushAppMessagesRequest,
304
+ context: _ServicerContext,
305
+ ) -> typing.Union[flwr.proto.appio_pb2.PushAppMessagesResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PushAppMessagesResponse]]:
306
+ """///////////////////////////////////////////////////////////////////////////
307
+ Specific endpoints for ClientAppIo
308
+ ///////////////////////////////////////////////////////////////////////////
309
+
310
+ Push Message
311
+ """
312
+
313
+ @abc.abstractmethod
314
+ def PullMessage(
315
+ self,
316
+ request: flwr.proto.appio_pb2.PullAppMessagesRequest,
317
+ context: _ServicerContext,
318
+ ) -> typing.Union[flwr.proto.appio_pb2.PullAppMessagesResponse, collections.abc.Awaitable[flwr.proto.appio_pb2.PullAppMessagesResponse]]:
319
+ """Pull Message"""
320
+
261
321
  def add_ClientAppIoServicer_to_server(servicer: ClientAppIoServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
@@ -26,13 +26,15 @@ from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
26
26
  from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
27
27
 
28
28
 
29
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/federation.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x15\x66lwr/proto/node.proto\"s\n\nFederation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bmember_aids\x18\x02 \x03(\t\x12#\n\x05nodes\x18\x03 \x03(\x0b\x32\x14.flwr.proto.NodeInfo\x12\x1d\n\x04runs\x18\x04 \x03(\x0b\x32\x0f.flwr.proto.Runb\x06proto3')
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/federation.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x15\x66lwr/proto/node.proto\"#\n\x07\x41\x63\x63ount\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xaf\x01\n\nFederation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bmember_aids\x18\x02 \x03(\t\x12#\n\x05nodes\x18\x03 \x03(\x0b\x32\x14.flwr.proto.NodeInfo\x12\x1d\n\x04runs\x18\x04 \x03(\x0b\x32\x0f.flwr.proto.Run\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12%\n\x08\x61\x63\x63ounts\x18\x06 \x03(\x0b\x32\x13.flwr.proto.Accountb\x06proto3')
30
30
 
31
31
  _globals = globals()
32
32
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
33
33
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.federation_pb2', _globals)
34
34
  if not _descriptor._USE_C_DESCRIPTORS:
35
35
  DESCRIPTOR._loaded_options = None
36
- _globals['_FEDERATION']._serialized_start=88
37
- _globals['_FEDERATION']._serialized_end=203
36
+ _globals['_ACCOUNT']._serialized_start=88
37
+ _globals['_ACCOUNT']._serialized_end=123
38
+ _globals['_FEDERATION']._serialized_start=126
39
+ _globals['_FEDERATION']._serialized_end=301
38
40
  # @@protoc_insertion_point(module_scope)
@@ -28,6 +28,24 @@ import typing
28
28
 
29
29
  DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
30
30
 
31
+ @typing.final
32
+ class Account(google.protobuf.message.Message):
33
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
34
+
35
+ ID_FIELD_NUMBER: builtins.int
36
+ NAME_FIELD_NUMBER: builtins.int
37
+ id: builtins.str
38
+ name: builtins.str
39
+ def __init__(
40
+ self,
41
+ *,
42
+ id: builtins.str = ...,
43
+ name: builtins.str = ...,
44
+ ) -> None: ...
45
+ def ClearField(self, field_name: typing.Literal["id", b"id", "name", b"name"]) -> None: ...
46
+
47
+ global___Account = Account
48
+
31
49
  @typing.final
32
50
  class Federation(google.protobuf.message.Message):
33
51
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -36,13 +54,23 @@ class Federation(google.protobuf.message.Message):
36
54
  MEMBER_AIDS_FIELD_NUMBER: builtins.int
37
55
  NODES_FIELD_NUMBER: builtins.int
38
56
  RUNS_FIELD_NUMBER: builtins.int
57
+ DESCRIPTION_FIELD_NUMBER: builtins.int
58
+ ACCOUNTS_FIELD_NUMBER: builtins.int
39
59
  name: builtins.str
60
+ description: builtins.str
61
+ """Added in v1.26.0"""
40
62
  @property
41
- def member_aids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
63
+ def member_aids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
64
+ """Deprecated in v1.26.0"""
65
+
42
66
  @property
43
67
  def nodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.node_pb2.NodeInfo]: ...
44
68
  @property
45
69
  def runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[flwr.proto.run_pb2.Run]: ...
70
+ @property
71
+ def accounts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Account]:
72
+ """Added in v1.26.0"""
73
+
46
74
  def __init__(
47
75
  self,
48
76
  *,
@@ -50,7 +78,9 @@ class Federation(google.protobuf.message.Message):
50
78
  member_aids: collections.abc.Iterable[builtins.str] | None = ...,
51
79
  nodes: collections.abc.Iterable[flwr.proto.node_pb2.NodeInfo] | None = ...,
52
80
  runs: collections.abc.Iterable[flwr.proto.run_pb2.Run] | None = ...,
81
+ description: builtins.str = ...,
82
+ accounts: collections.abc.Iterable[global___Account] | None = ...,
53
83
  ) -> None: ...
54
- def ClearField(self, field_name: typing.Literal["member_aids", b"member_aids", "name", b"name", "nodes", b"nodes", "runs", b"runs"]) -> None: ...
84
+ def ClearField(self, field_name: typing.Literal["accounts", b"accounts", "description", b"description", "member_aids", b"member_aids", "name", b"name", "nodes", b"nodes", "runs", b"runs"]) -> None: ...
55
85
 
56
86
  global___Federation = Federation
flwr/proto/run_pb2.py CHANGED
@@ -27,7 +27,7 @@ from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
27
27
  from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
28
28
 
29
29
 
30
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xb7\x03\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x12\x10\n\x08\x66lwr_aid\x18\x0b \x01(\t\x12\x12\n\nfederation\x18\x0c \x01(\t\x12\x12\n\nbytes_sent\x18\r \x01(\x04\x12\x12\n\nbytes_recv\x18\x0e \x01(\x04\x12\x19\n\x11\x63lientapp_runtime\x18\x0f \x01(\x01\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"F\n\x13GetRunStatusRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0f\n\x07run_ids\x18\x02 \x03(\x04\"\xb1\x01\n\x14GetRunStatusResponse\x12L\n\x0frun_status_dict\x18\x01 \x03(\x0b\x32\x33.flwr.proto.GetRunStatusResponse.RunStatusDictEntry\x1aK\n\x12RunStatusDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus:\x02\x38\x01\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"T\n\x1cGetFederationOptionsResponse\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x18.flwr.proto.ConfigRecordb\x06proto3')
30
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xb7\x03\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x12\x10\n\x08\x66lwr_aid\x18\x0b \x01(\t\x12\x12\n\nfederation\x18\x0c \x01(\t\x12\x12\n\nbytes_sent\x18\r \x01(\x04\x12\x12\n\nbytes_recv\x18\x0e \x01(\x04\x12\x19\n\x11\x63lientapp_runtime\x18\x0f \x01(\x01\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"T\n\x1cGetFederationOptionsResponse\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x18.flwr.proto.ConfigRecordb\x06proto3')
31
31
 
32
32
  _globals = globals()
33
33
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -36,8 +36,6 @@ if not _descriptor._USE_C_DESCRIPTORS:
36
36
  DESCRIPTOR._loaded_options = None
37
37
  _globals['_RUN_OVERRIDECONFIGENTRY']._loaded_options = None
38
38
  _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
39
- _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._loaded_options = None
40
- _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_options = b'8\001'
41
39
  _globals['_RUN']._serialized_start=117
42
40
  _globals['_RUN']._serialized_end=556
43
41
  _globals['_RUN_OVERRIDECONFIGENTRY']._serialized_start=483
@@ -52,14 +50,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
52
50
  _globals['_UPDATERUNSTATUSREQUEST']._serialized_end=820
53
51
  _globals['_UPDATERUNSTATUSRESPONSE']._serialized_start=822
54
52
  _globals['_UPDATERUNSTATUSRESPONSE']._serialized_end=847
55
- _globals['_GETRUNSTATUSREQUEST']._serialized_start=849
56
- _globals['_GETRUNSTATUSREQUEST']._serialized_end=919
57
- _globals['_GETRUNSTATUSRESPONSE']._serialized_start=922
58
- _globals['_GETRUNSTATUSRESPONSE']._serialized_end=1099
59
- _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_start=1024
60
- _globals['_GETRUNSTATUSRESPONSE_RUNSTATUSDICTENTRY']._serialized_end=1099
61
- _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1101
62
- _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1146
63
- _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1148
64
- _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1232
53
+ _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=849
54
+ _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=894
55
+ _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=896
56
+ _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=980
65
57
  # @@protoc_insertion_point(module_scope)
flwr/proto/run_pb2.pyi CHANGED
@@ -202,63 +202,6 @@ class UpdateRunStatusResponse(google.protobuf.message.Message):
202
202
 
203
203
  global___UpdateRunStatusResponse = UpdateRunStatusResponse
204
204
 
205
- @typing.final
206
- class GetRunStatusRequest(google.protobuf.message.Message):
207
- """GetRunStatus"""
208
-
209
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
210
-
211
- NODE_FIELD_NUMBER: builtins.int
212
- RUN_IDS_FIELD_NUMBER: builtins.int
213
- @property
214
- def node(self) -> flwr.proto.node_pb2.Node: ...
215
- @property
216
- def run_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
217
- def __init__(
218
- self,
219
- *,
220
- node: flwr.proto.node_pb2.Node | None = ...,
221
- run_ids: collections.abc.Iterable[builtins.int] | None = ...,
222
- ) -> None: ...
223
- def HasField(self, field_name: typing.Literal["node", b"node"]) -> builtins.bool: ...
224
- def ClearField(self, field_name: typing.Literal["node", b"node", "run_ids", b"run_ids"]) -> None: ...
225
-
226
- global___GetRunStatusRequest = GetRunStatusRequest
227
-
228
- @typing.final
229
- class GetRunStatusResponse(google.protobuf.message.Message):
230
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
231
-
232
- @typing.final
233
- class RunStatusDictEntry(google.protobuf.message.Message):
234
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
235
-
236
- KEY_FIELD_NUMBER: builtins.int
237
- VALUE_FIELD_NUMBER: builtins.int
238
- key: builtins.int
239
- @property
240
- def value(self) -> global___RunStatus: ...
241
- def __init__(
242
- self,
243
- *,
244
- key: builtins.int = ...,
245
- value: global___RunStatus | None = ...,
246
- ) -> None: ...
247
- def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
248
- def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
249
-
250
- RUN_STATUS_DICT_FIELD_NUMBER: builtins.int
251
- @property
252
- def run_status_dict(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, global___RunStatus]: ...
253
- def __init__(
254
- self,
255
- *,
256
- run_status_dict: collections.abc.Mapping[builtins.int, global___RunStatus] | None = ...,
257
- ) -> None: ...
258
- def ClearField(self, field_name: typing.Literal["run_status_dict", b"run_status_dict"]) -> None: ...
259
-
260
- global___GetRunStatusResponse = GetRunStatusResponse
261
-
262
205
  @typing.final
263
206
  class GetFederationOptionsRequest(google.protobuf.message.Message):
264
207
  """Get Federation Options associated with run"""
@@ -31,7 +31,7 @@ from flwr.proto import fab_pb2 as flwr_dot_proto_dot_fab__pb2
31
31
  from flwr.proto import appio_pb2 as flwr_dot_proto_dot_appio__pb2
32
32
 
33
33
 
34
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\xe9\n\n\x0bServerAppIo\x12_\n\x10ListAppsToLaunch\x12#.flwr.proto.ListAppsToLaunchRequest\x1a$.flwr.proto.ListAppsToLaunchResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12\x41\n\x06GetFab\x12\x19.flwr.proto.GetFabRequest\x1a\x1a.flwr.proto.GetFabResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12S\n\x0cGetRunStatus\x12\x1f.flwr.proto.GetRunStatusRequest\x1a .flwr.proto.GetRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x62\x06proto3')
34
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lwr/proto/serverappio.proto\x12\nflwr.proto\x1a\x1a\x66lwr/proto/heartbeat.proto\x1a\x14\x66lwr/proto/log.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x18\x66lwr/proto/message.proto\x1a\x14\x66lwr/proto/run.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x16\x66lwr/proto/appio.proto\"!\n\x0fGetNodesRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"3\n\x10GetNodesResponse\x12\x1f\n\x05nodes\x18\x01 \x03(\x0b\x32\x10.flwr.proto.Node2\xd1\t\n\x0bServerAppIo\x12_\n\x10ListAppsToLaunch\x12#.flwr.proto.ListAppsToLaunchRequest\x1a$.flwr.proto.ListAppsToLaunchResponse\"\x00\x12S\n\x0cRequestToken\x12\x1f.flwr.proto.RequestTokenRequest\x1a .flwr.proto.RequestTokenResponse\"\x00\x12\x41\n\x06GetRun\x12\x19.flwr.proto.GetRunRequest\x1a\x1a.flwr.proto.GetRunResponse\"\x00\x12_\n\x10SendAppHeartbeat\x12#.flwr.proto.SendAppHeartbeatRequest\x1a$.flwr.proto.SendAppHeartbeatResponse\"\x00\x12V\n\rPullAppInputs\x12 .flwr.proto.PullAppInputsRequest\x1a!.flwr.proto.PullAppInputsResponse\"\x00\x12Y\n\x0ePushAppOutputs\x12!.flwr.proto.PushAppOutputsRequest\x1a\".flwr.proto.PushAppOutputsResponse\"\x00\x12M\n\nPushObject\x12\x1d.flwr.proto.PushObjectRequest\x1a\x1e.flwr.proto.PushObjectResponse\"\x00\x12M\n\nPullObject\x12\x1d.flwr.proto.PullObjectRequest\x1a\x1e.flwr.proto.PullObjectResponse\"\x00\x12q\n\x16\x43onfirmMessageReceived\x12).flwr.proto.ConfirmMessageReceivedRequest\x1a*.flwr.proto.ConfirmMessageReceivedResponse\"\x00\x12\\\n\x0fUpdateRunStatus\x12\".flwr.proto.UpdateRunStatusRequest\x1a#.flwr.proto.UpdateRunStatusResponse\"\x00\x12G\n\x08PushLogs\x12\x1b.flwr.proto.PushLogsRequest\x1a\x1c.flwr.proto.PushLogsResponse\"\x00\x12Y\n\x0cPushMessages\x12\".flwr.proto.PushAppMessagesRequest\x1a#.flwr.proto.PushAppMessagesResponse\"\x00\x12Y\n\x0cPullMessages\x12\".flwr.proto.PullAppMessagesRequest\x1a#.flwr.proto.PullAppMessagesResponse\"\x00\x12G\n\x08GetNodes\x12\x1b.flwr.proto.GetNodesRequest\x1a\x1c.flwr.proto.GetNodesResponse\"\x00\x62\x06proto3')
35
35
 
36
36
  _globals = globals()
37
37
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -43,5 +43,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
43
43
  _globals['_GETNODESRESPONSE']._serialized_start=246
44
44
  _globals['_GETNODESRESPONSE']._serialized_end=297
45
45
  _globals['_SERVERAPPIO']._serialized_start=300
46
- _globals['_SERVERAPPIO']._serialized_end=1685
46
+ _globals['_SERVERAPPIO']._serialized_end=1533
47
47
  # @@protoc_insertion_point(module_scope)