ensemble-client 2.0.0__tar.gz → 2.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ensemble-client
3
- Version: 2.0.0
3
+ Version: 2.2.0
4
4
  Summary: Python client for the Ensemble peer-to-peer messaging daemon.
5
5
  Project-URL: Homepage, https://github.com/boxsie/ensemble
6
6
  Project-URL: Repository, https://github.com/boxsie/ensemble.git
@@ -146,6 +146,41 @@ There is no clean equivalent to the Go CLI's `--tls-insecure` flag in
146
146
  grpc-python; the parameter exists for API parity but does not currently
147
147
  disable verification.
148
148
 
149
+ ### Supervised installs (`Client.from_env()`)
150
+
151
+ When the daemon installs and supervises a service, it execs the child with a
152
+ spawn contract in the environment and mints a per-spawn token. A supervised
153
+ service must present that token on `RegisterService` (admin-signed auth alone
154
+ is the registry/sidecar path, not the supervised one) — the daemon clamps the
155
+ manifest to the install-time capability ceiling and binds the token to the
156
+ installed name.
157
+
158
+ `Client.from_env()` builds the right client for either deployment, with this
159
+ precedence:
160
+
161
+ 1. `ENSEMBLE_SERVICE_TOKEN` set → **supervised**: dial `ENSEMBLE_SOCKET` and
162
+ attach the token as `x-service-token` metadata on `RegisterService`. No
163
+ seed — the token is the auth.
164
+ 2. otherwise → **standalone / sidecar**: dial `ENSEMBLE_SOCKET` and, if
165
+ `ENSEMBLE_AUTH_SEED` names a seed file, sign every RPC with it.
166
+
167
+ Read the name to register under (and the per-service data dir) from
168
+ `SpawnContext.from_env()`:
169
+
170
+ ```python
171
+ from ensemble import Client, SpawnContext
172
+
173
+ ctx = SpawnContext.from_env() # socket / name / token / data_dir
174
+ async with Client.from_env() as client:
175
+ svc = await client.register(ctx.service_name or "my-service", ...)
176
+ # ctx.data_dir is the writable dir the daemon allocated for this service.
177
+ ```
178
+
179
+ The spawn-contract env vars (`ENSEMBLE_SOCKET`, `ENSEMBLE_SERVICE_NAME`,
180
+ `ENSEMBLE_SERVICE_TOKEN`, `ENSEMBLE_DATA_DIR`) are set by the daemon's
181
+ supervisor — you don't set them yourself. Passing `service_token=...` to
182
+ `Client(...)` directly is the lower-level escape hatch `from_env()` wraps.
183
+
149
184
  ## Events
150
185
 
151
186
  `ServiceHandle.events()` yields decoded dataclasses, not raw protobuf:
@@ -114,6 +114,41 @@ There is no clean equivalent to the Go CLI's `--tls-insecure` flag in
114
114
  grpc-python; the parameter exists for API parity but does not currently
115
115
  disable verification.
116
116
 
117
+ ### Supervised installs (`Client.from_env()`)
118
+
119
+ When the daemon installs and supervises a service, it execs the child with a
120
+ spawn contract in the environment and mints a per-spawn token. A supervised
121
+ service must present that token on `RegisterService` (admin-signed auth alone
122
+ is the registry/sidecar path, not the supervised one) — the daemon clamps the
123
+ manifest to the install-time capability ceiling and binds the token to the
124
+ installed name.
125
+
126
+ `Client.from_env()` builds the right client for either deployment, with this
127
+ precedence:
128
+
129
+ 1. `ENSEMBLE_SERVICE_TOKEN` set → **supervised**: dial `ENSEMBLE_SOCKET` and
130
+ attach the token as `x-service-token` metadata on `RegisterService`. No
131
+ seed — the token is the auth.
132
+ 2. otherwise → **standalone / sidecar**: dial `ENSEMBLE_SOCKET` and, if
133
+ `ENSEMBLE_AUTH_SEED` names a seed file, sign every RPC with it.
134
+
135
+ Read the name to register under (and the per-service data dir) from
136
+ `SpawnContext.from_env()`:
137
+
138
+ ```python
139
+ from ensemble import Client, SpawnContext
140
+
141
+ ctx = SpawnContext.from_env() # socket / name / token / data_dir
142
+ async with Client.from_env() as client:
143
+ svc = await client.register(ctx.service_name or "my-service", ...)
144
+ # ctx.data_dir is the writable dir the daemon allocated for this service.
145
+ ```
146
+
147
+ The spawn-contract env vars (`ENSEMBLE_SOCKET`, `ENSEMBLE_SERVICE_NAME`,
148
+ `ENSEMBLE_SERVICE_TOKEN`, `ENSEMBLE_DATA_DIR`) are set by the daemon's
149
+ supervisor — you don't set them yourself. Passing `service_token=...` to
150
+ `Client(...)` directly is the lower-level escape hatch `from_env()` wraps.
151
+
117
152
  ## Events
118
153
 
119
154
  `ServiceHandle.events()` yields decoded dataclasses, not raw protobuf:
@@ -5,6 +5,7 @@ subpackage contains generated gRPC stubs and is internal; consumers should
5
5
  not import from it.
6
6
  """
7
7
 
8
+ from .attach import AttachedService
8
9
  from .auth import pubkey_hex, signing_interceptors
9
10
  from .client import (
10
11
  ACL,
@@ -12,12 +13,15 @@ from .client import (
12
13
  Command,
13
14
  CommandHandler,
14
15
  ConnectResult,
16
+ Metric,
15
17
  PeerIntroductionHandler,
16
18
  RpcMessageHandler,
17
19
  ServiceHandle,
20
+ SpawnContext,
18
21
  Transport,
19
22
  )
20
23
  from .errors import (
24
+ AttachError,
21
25
  AuthError,
22
26
  ConnectionError,
23
27
  EnsembleError,
@@ -30,8 +34,11 @@ from .errors import (
30
34
  from .events import (
31
35
  ChatMessage,
32
36
  CommandInvocation,
37
+ ConnectionClosed,
38
+ ConnectionEstablished,
33
39
  ConnectionRequest,
34
40
  FileOffer,
41
+ OperatorMessage,
35
42
  PeerIntroduction,
36
43
  RpcMessage,
37
44
  ServiceEvent,
@@ -41,19 +48,25 @@ from .node_events import DaemonChatMessage, DaemonEvent
41
48
 
42
49
  __all__ = [
43
50
  "ACL",
51
+ "AttachedService",
52
+ "AttachError",
44
53
  "AuthError",
45
54
  "ChatMessage",
46
55
  "Client",
47
56
  "Command",
57
+ "Metric",
48
58
  "CommandHandler",
49
59
  "CommandInvocation",
60
+ "ConnectionClosed",
50
61
  "ConnectionError",
62
+ "ConnectionEstablished",
51
63
  "ConnectionRequest",
52
64
  "ConnectResult",
53
65
  "DaemonChatMessage",
54
66
  "DaemonEvent",
55
67
  "EnsembleError",
56
68
  "FileOffer",
69
+ "OperatorMessage",
57
70
  "PayloadTooLargeError",
58
71
  "PeerIntroduction",
59
72
  "PeerIntroductionHandler",
@@ -64,6 +77,7 @@ __all__ = [
64
77
  "ServiceEvent",
65
78
  "ServiceHandle",
66
79
  "ServiceProtocolError",
80
+ "SpawnContext",
67
81
  "Transport",
68
82
  "TransportMismatchError",
69
83
  "UnknownEvent",
@@ -71,4 +85,4 @@ __all__ = [
71
85
  "signing_interceptors",
72
86
  ]
73
87
 
74
- __version__ = "1"
88
+ __version__ = "2.2.0"
@@ -0,0 +1,353 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: ensemble.proto
5
+ # Protobuf Python Version: 6.31.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
+ 31,
16
+ 1,
17
+ '',
18
+ 'ensemble.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x65nsemble.proto\x12\x0c\x65nsemble.api\"\x14\n\x12GetIdentityRequest\":\n\x13GetIdentityResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x12\n\npublic_key\x18\x02 \x01(\x0c\"O\n\x14VerifyBindingRequest\x12\x0f\n\x07\x62inding\x18\x01 \x01(\x0c\x12\x15\n\rdilithium_pub\x18\x02 \x01(\x0c\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\"H\n\x15VerifyBindingResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\x13\n\x0b\x65\x64\x32\x35\x35\x31\x39_pub\x18\x02 \x01(\x0c\x12\x0e\n\x06reason\x18\x03 \x01(\t\"\x12\n\x10GetStatusRequest\"r\n\x11GetStatusResponse\x12\x11\n\ttor_state\x18\x01 \x01(\t\x12\x12\n\npeer_count\x18\x02 \x01(\x05\x12\x12\n\nonion_addr\x18\x03 \x01(\t\x12\x11\n\tuptime_ms\x18\x04 \x01(\x03\x12\x0f\n\x07rt_size\x18\x05 \x01(\x05\"\x15\n\x13ListContactsRequest\"C\n\x14ListContactsResponse\x12+\n\x08\x63ontacts\x18\x01 \x03(\x0b\x32\x19.ensemble.api.ContactInfo\"\x8d\x01\n\x0b\x43ontactInfo\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\x12\n\npublic_key\x18\x03 \x01(\x0c\x12\x15\n\ronion_address\x18\x04 \x01(\t\x12\x10\n\x08\x61\x64\x64\x65\x64_at\x18\x05 \x01(\x03\x12\x11\n\tlast_seen\x18\x06 \x01(\x03\x12\x0e\n\x06online\x18\x07 \x01(\x08\"G\n\x11\x41\x64\x64\x43ontactRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\x12\n\npublic_key\x18\x03 \x01(\x0c\"\x14\n\x12\x41\x64\x64\x43ontactResponse\"\'\n\x14RemoveContactRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x17\n\x15RemoveContactResponse\"!\n\x0e\x43onnectRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"4\n\x0f\x43onnectResponse\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"*\n\x17\x41\x63\x63\x65ptConnectionRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x1a\n\x18\x41\x63\x63\x65ptConnectionResponse\"*\n\x17RejectConnectionRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x1a\n\x18RejectConnectionResponse\"\x12\n\x10ListPeersRequest\";\n\x11ListPeersResponse\x12&\n\x05peers\x18\x01 \x03(\x0b\x32\x17.ensemble.api.PeerEntry\"g\n\tPeerEntry\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\r\n\x05saved\x18\x03 \x01(\x08\x12\r\n\x05state\x18\x04 \x01(\t\x12\x0e\n\x06online\x18\x05 \x01(\x08\x12\x0c\n\x04kind\x18\x06 \x01(\t\"$\n\x11\x44isconnectRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x14\n\x12\x44isconnectResponse\"3\n\x12SendMessageRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\")\n\x13SendMessageResponse\x12\x12\n\nmessage_id\x18\x01 \x01(\t\"7\n\x15GetChatHistoryRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\"\x87\x01\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfrom_addr\x18\x02 \x01(\t\x12\x0f\n\x07to_addr\x18\x03 \x01(\t\x12\x0c\n\x04text\x18\x04 \x01(\t\x12\x12\n\nsent_at_ms\x18\x05 \x01(\x03\x12\x13\n\x0b\x61\x63ked_at_ms\x18\x06 \x01(\x03\x12\x11\n\tdirection\x18\x07 \x01(\t\"E\n\x16GetChatHistoryResponse\x12+\n\x08messages\x18\x01 \x03(\x0b\x32\x19.ensemble.api.ChatMessage\"?\n\x18\x44\x65leteChatMessageRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x12\n\nmessage_id\x18\x02 \x01(\t\",\n\x19\x44\x65leteChatMessageResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\"*\n\x17\x43learChatHistoryRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x1a\n\x18\x43learChatHistoryResponse\"5\n\x0fSendFileRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tfile_path\x18\x02 \x01(\t\"\x94\x01\n\x10TransferProgress\x12\x13\n\x0btransfer_id\x18\x01 \x01(\t\x12\x10\n\x08\x66ilename\x18\x02 \x01(\t\x12\x13\n\x0btotal_bytes\x18\x03 \x01(\x04\x12\x12\n\nsent_bytes\x18\x04 \x01(\x04\x12\x0f\n\x07percent\x18\x05 \x01(\x02\x12\x10\n\x08\x63omplete\x18\x06 \x01(\x08\x12\r\n\x05\x65rror\x18\x07 \x01(\t\";\n\x11\x41\x63\x63\x65ptFileRequest\x12\x13\n\x0btransfer_id\x18\x01 \x01(\t\x12\x11\n\tsave_path\x18\x02 \x01(\t\"\x14\n\x12\x41\x63\x63\x65ptFileResponse\"(\n\x11RejectFileRequest\x12\x13\n\x0btransfer_id\x18\x01 \x01(\t\"\x14\n\x12RejectFileResponse\",\n\x15\x43\x61ncelTransferRequest\x12\x13\n\x0btransfer_id\x18\x01 \x01(\t\"\x18\n\x16\x43\x61ncelTransferResponse\"\'\n\x0e\x41\x64\x64NodeRequest\x12\x15\n\ronion_address\x18\x01 \x01(\t\"&\n\x0f\x41\x64\x64NodeResponse\x12\x13\n\x0bpeers_found\x18\x01 \x01(\x05\"\x15\n\x13GetDebugInfoRequest\"\x8e\x02\n\x14GetDebugInfoResponse\x12\x0f\n\x07rt_size\x18\x01 \x01(\x05\x12\'\n\x08rt_peers\x18\x02 \x03(\x0b\x32\x15.ensemble.api.DHTNode\x12,\n\x0b\x63onnections\x18\x03 \x03(\x0b\x32\x17.ensemble.api.PeerState\x12\x12\n\nonion_addr\x18\x04 \x01(\t\x12\x31\n\x08services\x18\x05 \x03(\x0b\x32\x1f.ensemble.api.RegisteredService\x12\x12\n\nseed_nodes\x18\x06 \x03(\t\x12\x33\n\nsupervised\x18\x07 \x03(\x0b\x32\x1f.ensemble.api.SupervisedService\"\x98\x01\n\x11SupervisedService\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12\x0b\n\x03pid\x18\x05 \x01(\x05\x12\x10\n\x08restarts\x18\x06 \x01(\x05\x12\x0f\n\x07\x65nabled\x18\x07 \x01(\x08\x12\x15\n\rstarted_at_ms\x18\x08 \x01(\x03\"L\n\x18StreamServiceLogsRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ntail_lines\x18\x02 \x01(\x05\x12\x0e\n\x06\x66ollow\x18\x03 \x01(\x08\"-\n\x0eServiceLogLine\x12\x0c\n\x04line\x18\x01 \x01(\t\x12\r\n\x05ts_ms\x18\x02 \x01(\x03\"\xa3\x01\n\x15InstallServiceRequest\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x0e\n\x06sha256\x18\x02 \x01(\t\x12\x1b\n\x13\x61\x63\x63\x65pt_capabilities\x18\x03 \x01(\x08\x12\x11\n\tno_enable\x18\x04 \x01(\x08\x12\r\n\x05\x66orge\x18\x05 \x01(\t\x12\x12\n\nforge_kind\x18\x06 \x01(\t\x12\x17\n\x0f\x66rontend_choice\x18\x07 \x01(\t\"\x9e\x01\n\x15UpgradeServiceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x0e\n\x06sha256\x18\x03 \x01(\t\x12\x1b\n\x13\x61\x63\x63\x65pt_capabilities\x18\x04 \x01(\x08\x12\r\n\x05\x66orge\x18\x05 \x01(\t\x12\x12\n\nforge_kind\x18\x06 \x01(\t\x12\x17\n\x0f\x66rontend_choice\x18\x07 \x01(\t\"\xc5\x01\n\x0fInstallProgress\x12\r\n\x05stage\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x12\n\nbytes_done\x18\x03 \x01(\x03\x12\x13\n\x0b\x62ytes_total\x18\x04 \x01(\x03\x12\x32\n\x06result\x18\x05 \x01(\x0b\x32\".ensemble.api.InstalledServiceInfo\x12\x35\n\x0c\x63\x61pabilities\x18\x06 \x01(\x0b\x32\x1f.ensemble.api.CapabilitySummary\"\xdf\x01\n\x11\x43\x61pabilitySummary\x12\x11\n\ttransport\x18\x01 \x01(\t\x12\x0b\n\x03\x61\x63l\x18\x02 \x01(\t\x12\x1b\n\x13\x64\x65\x63ides_connections\x18\x03 \x01(\x08\x12\x15\n\rhandles_files\x18\x04 \x01(\x08\x12\x10\n\x08\x63ommands\x18\x05 \x03(\t\x12\x19\n\x11max_payload_bytes\x18\x06 \x01(\x03\x12\x10\n\x08verified\x18\x07 \x01(\x08\x12\r\n\x05grown\x18\x08 \x03(\t\x12\x16\n\x0esub_identities\x18\t \x01(\x08\x12\x10\n\x08\x66rontend\x18\n \x01(\t\"&\n\x13\x44\x65scribeNodeRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\xc5\x01\n\x0fNodeServiceCard\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x04 \x01(\t\x12\x0c\n\x04icon\x18\x05 \x01(\t\x12\x0b\n\x03\x61\x63l\x18\x06 \x01(\t\x12\x12\n\nbehaviours\x18\x07 \x03(\t\x12\x11\n\tplacement\x18\x08 \x01(\t\x12\x11\n\tlinked_to\x18\t \x01(\t\x12\x12\n\nis_service\x18\n \x01(\x08\"\xe2\x01\n\x08NodeCard\x12\x10\n\x08nickname\x18\x01 \x01(\t\x12\x18\n\x10protocol_version\x18\x02 \x01(\t\x12\x15\n\rbuild_version\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63l_posture\x18\x04 \x01(\t\x12\x15\n\raccepts_files\x18\x05 \x01(\x08\x12\x18\n\x10\x64irect_transport\x18\x06 \x01(\x08\x12\x15\n\rrelay_offered\x18\x07 \x01(\x08\x12\x36\n\x0fpublic_services\x18\x08 \x03(\x0b\x32\x1d.ensemble.api.NodeServiceCard\"}\n\x14\x44\x65scribeNodeResponse\x12\x0e\n\x06served\x18\x01 \x01(\x08\x12\x0e\n\x06\x64\x65tail\x18\x02 \x01(\t\x12$\n\x04\x63\x61rd\x18\x03 \x01(\x0b\x32\x16.ensemble.api.NodeCard\x12\x10\n\x08verified\x18\x04 \x01(\x08\x12\r\n\x05\x65rror\x18\x05 \x01(\t\"R\n\x17UninstallServiceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tkeep_data\x18\x02 \x01(\x08\x12\x16\n\x0epurge_identity\x18\x03 \x01(\x08\"\x1a\n\x18UninstallServiceResponse\"&\n\x16RollbackServiceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"M\n\x17RollbackServiceResponse\x12\x32\n\x06result\x18\x01 \x01(\x0b\x32\".ensemble.api.InstalledServiceInfo\"5\n\x1cListInstalledServicesRequest\x12\x15\n\rcheck_updates\x18\x01 \x01(\x08\"U\n\x1dListInstalledServicesResponse\x12\x34\n\x08services\x18\x01 \x03(\x0b\x32\".ensemble.api.InstalledServiceInfo\"\xbd\x02\n\x14InstalledServiceInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12\x0b\n\x03pid\x18\x05 \x01(\x05\x12\x10\n\x08restarts\x18\x06 \x01(\x05\x12\x0f\n\x07\x65nabled\x18\x07 \x01(\x08\x12\x15\n\rstarted_at_ms\x18\x08 \x01(\x03\x12\x0e\n\x06source\x18\t \x01(\t\x12\x0e\n\x06sha256\x18\n \x01(\t\x12\x10\n\x08verified\x18\x0b \x01(\x08\x12\x18\n\x10previous_version\x18\x0c \x01(\t\x12\x15\n\rupgradable_to\x18\r \x01(\t\x12\x10\n\x08\x66rontend\x18\x0e \x01(\t\x12+\n\x04\x63\x61rd\x18\x0f \x01(\x0b\x32\x1d.ensemble.api.NodeServiceCard\",\n\x1cStartInstalledServiceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1f\n\x1dStartInstalledServiceResponse\"#\n\x13\x42rokerLaunchRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xc1\x01\n\x14\x42rokerLaunchResponse\x12\r\n\x05ready\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x03 \x03(\t\x12\x38\n\x03\x65nv\x18\x04 \x03(\x0b\x32+.ensemble.api.BrokerLaunchResponse.EnvEntry\x12\x13\n\x0bworking_dir\x18\x05 \x01(\t\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"+\n\x1bStopInstalledServiceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1e\n\x1cStopInstalledServiceResponse\"\xaa\x01\n\x14SetServiceEnvRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x03set\x18\x02 \x03(\x0b\x32+.ensemble.api.SetServiceEnvRequest.SetEntry\x12\r\n\x05unset\x18\x03 \x03(\t\x12\x0f\n\x07replace\x18\x04 \x01(\x08\x1a*\n\x08SetEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"8\n\x15SetServiceEnvResponse\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x11\n\trestarted\x18\x02 \x01(\x08\"$\n\x14GetServiceEnvRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"l\n\x15GetServiceEnvResponse\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12+\n\x08settings\x18\x02 \x03(\x0b\x32\x19.ensemble.api.SettingDecl\x12\x18\n\x10missing_required\x18\x03 \x03(\t\"\xc8\x01\n\x0bSettingDecl\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\x12\x0f\n\x07\x64\x65\x66\x61ult\x18\x05 \x01(\t\x12\x10\n\x08required\x18\x06 \x01(\x08\x12\x0e\n\x06secret\x18\x07 \x01(\x08\x12\x13\n\x0b\x65num_values\x18\x08 \x03(\t\x12\x10\n\x03min\x18\t \x01(\x03H\x00\x88\x01\x01\x12\x10\n\x03max\x18\n \x01(\x03H\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"_\n\x15SignedServiceDocument\x12\x0b\n\x03\x64oc\x18\x01 \x01(\x0c\x12\x15\n\rdilithium_pub\x18\x02 \x01(\x0c\x12\x0f\n\x07\x62inding\x18\x03 \x01(\x0c\x12\x11\n\tsignature\x18\x04 \x01(\x0c\"k\n\rRegistryIndex\x12\x17\n\x0fgenerated_at_ms\x18\x01 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12,\n\x07\x65ntries\x18\x03 \x03(\x0b\x32\x1b.ensemble.api.RegistryEntry\"c\n\rRegistryEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12/\n\x08releases\x18\x03 \x03(\x0b\x32\x1d.ensemble.api.RegistryRelease\"\xec\x01\n\x0fRegistryRelease\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x35\n\x0c\x63\x61pabilities\x18\x02 \x01(\x0b\x32\x1f.ensemble.api.CapabilitySummary\x12?\n\tplatforms\x18\x03 \x03(\x0b\x32,.ensemble.api.RegistryRelease.PlatformsEntry\x1aP\n\x0ePlatformsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.ensemble.api.RegistryArtifact:\x02\x38\x01\"=\n\x10RegistryArtifact\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0e\n\x06sha256\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x03\"%\n\x12\x41\x64\x64RegistryRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"C\n\x13\x41\x64\x64RegistryResponse\x12,\n\x08registry\x18\x01 \x01(\x0b\x32\x1a.ensemble.api.RegistryInfo\"(\n\x15RemoveRegistryRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"\x18\n\x16RemoveRegistryResponse\"(\n\x15ListRegistriesRequest\x12\x0f\n\x07refresh\x18\x01 \x01(\x08\"H\n\x16ListRegistriesResponse\x12.\n\nregistries\x18\x01 \x03(\x0b\x32\x1a.ensemble.api.RegistryInfo\"k\n\x0cRegistryInfo\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0f\n\x07\x65ntries\x18\x03 \x01(\x05\x12\x15\n\rfetched_at_ms\x18\x04 \x01(\x03\x12\r\n\x05\x65rror\x18\x05 \x01(\t\"9\n\x17SearchRegistriesRequest\x12\r\n\x05query\x18\x01 \x01(\t\x12\x0f\n\x07refresh\x18\x02 \x01(\x08\"C\n\x18SearchRegistriesResponse\x12\'\n\x04hits\x18\x01 \x03(\x0b\x32\x19.ensemble.api.RegistryHit\"\xad\x01\n\x0bRegistryHit\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x18\n\x10registry_address\x18\x04 \x01(\t\x12\x35\n\x0c\x63\x61pabilities\x18\x05 \x01(\x0b\x32\x1f.ensemble.api.CapabilitySummary\x12\x19\n\x11installed_version\x18\x06 \x01(\t\"F\n\x11RegisteredService\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x12\n\nonion_addr\x18\x03 \x01(\t\"$\n\x14\x44\x65leteServiceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"+\n\x15RotateAdminKeyRequest\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\"\x18\n\x16RotateAdminKeyResponse\"\x17\n\x15\x44\x65leteServiceResponse\"A\n\x07\x44HTNode\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x12\n\nonion_addr\x18\x02 \x01(\t\x12\x11\n\tlast_seen\x18\x03 \x01(\x03\":\n\tPeerState\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"\x12\n\x10SubscribeRequest\",\n\x0b\x44\x61\x65monEvent\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\t\"\xcd\x06\n\x14ServiceClientMessage\x12\x31\n\x08manifest\x18\x01 \x01(\x0b\x32\x1d.ensemble.api.ServiceManifestH\x00\x12\x38\n\x0csend_message\x18\x02 \x01(\x0b\x32 .ensemble.api.ServiceSendMessageH\x00\x12\x37\n\x06\x61\x63\x63\x65pt\x18\x03 \x01(\x0b\x32%.ensemble.api.ServiceAcceptConnectionH\x00\x12\x37\n\x06reject\x18\x04 \x01(\x0b\x32%.ensemble.api.ServiceRejectConnectionH\x00\x12<\n\x0eintroduce_peer\x18\x05 \x01(\x0b\x32\".ensemble.api.ServiceIntroducePeerH\x00\x12\x38\n\x0c\x63onnect_peer\x18\x06 \x01(\x0b\x32 .ensemble.api.ServiceConnectPeerH\x00\x12\x36\n\x0b\x61\x63\x63\x65pt_file\x18\x07 \x01(\x0b\x32\x1f.ensemble.api.ServiceAcceptFileH\x00\x12\x36\n\x0breject_file\x18\x08 \x01(\x0b\x32\x1f.ensemble.api.ServiceRejectFileH\x00\x12<\n\x0e\x63ommand_result\x18\t \x01(\x0b\x32\".ensemble.api.ServiceCommandResultH\x00\x12\x33\n\rmetric_sample\x18\n \x01(\x0b\x32\x1a.ensemble.api.MetricSampleH\x00\x12:\n\rsign_document\x18\x0b \x01(\x0b\x32!.ensemble.api.ServiceSignDocumentH\x00\x12>\n\x0f\x64isconnect_peer\x18\x0c \x01(\x0b\x32#.ensemble.api.ServiceDisconnectPeerH\x00\x12@\n\x10update_allowlist\x18\r \x01(\x0b\x32$.ensemble.api.ServiceUpdateAllowlistH\x00\x12\x36\n\x0bto_operator\x18\x0e \x01(\x0b\x32\x1f.ensemble.api.ServiceToOperatorH\x00\x42\x05\n\x03msg\"\xae\x01\n\x14ServiceServerMessage\x12\x35\n\nregistered\x18\x01 \x01(\x0b\x32\x1f.ensemble.api.ServiceRegisteredH\x00\x12+\n\x05\x65vent\x18\x02 \x01(\x0b\x32\x1a.ensemble.api.ServiceEventH\x00\x12+\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x1a.ensemble.api.ServiceErrorH\x00\x42\x05\n\x03msg\"?\n\x0b\x43ommandSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05usage\x18\x03 \x01(\t\"\xa4\x03\n\x0fServiceManifest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x1e\n\x03\x61\x63l\x18\x03 \x01(\x0e\x32\x11.ensemble.api.ACL\x12\x11\n\tallowlist\x18\x04 \x03(\t\x12\x14\n\x0ckeypair_seed\x18\x05 \x01(\x0c\x12\x31\n\ttransport\x18\x06 \x01(\x0e\x32\x1e.ensemble.api.ServiceTransport\x12\x19\n\x11max_payload_bytes\x18\x07 \x01(\x03\x12\x31\n\nrate_limit\x18\x08 \x01(\x0b\x32\x1d.ensemble.api.RateLimitPolicy\x12\x1b\n\x13\x64\x65\x63ides_connections\x18\t \x01(\x08\x12\x15\n\rhandles_files\x18\n \x01(\x08\x12+\n\x08\x63ommands\x18\x0b \x03(\x0b\x32\x19.ensemble.api.CommandSpec\x12\x18\n\x10handles_commands\x18\x0c \x01(\x08\x12)\n\x07metrics\x18\r \x03(\x0b\x32\x18.ensemble.api.MetricSpec\"i\n\nMetricSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04unit\x18\x03 \x01(\t\x12\x12\n\nlabel_keys\x18\x04 \x03(\t\x12\x0c\n\x04help\x18\x05 \x01(\t\x12\x0f\n\x07\x62uckets\x18\x06 \x03(\x01\"\x9e\x01\n\x0cMetricSample\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.ensemble.api.MetricSample.LabelsEntry\x12\r\n\x05value\x18\x03 \x01(\x01\x12\n\n\x02ts\x18\x04 \x01(\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"=\n\x0fRateLimitPolicy\x12\x1b\n\x13requests_per_minute\x18\x01 \x01(\x05\x12\r\n\x05\x62urst\x18\x02 \x01(\x05\"f\n\x11ServiceRegistered\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\r\n\x05onion\x18\x02 \x01(\t\x12\x31\n\ttransport\x18\x03 \x01(\x0e\x32\x1e.ensemble.api.ServiceTransport\"-\n\x0cServiceEvent\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"F\n\x17ServiceChatMessageEvent\x12\x11\n\tfrom_addr\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\n\n\x02ts\x18\x03 \x01(\x03\"F\n\x1dServiceConnectionRequestEvent\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x11\n\tfrom_addr\x18\x02 \x01(\t\"6\n!ServiceConnectionEstablishedEvent\x12\x11\n\tfrom_addr\x18\x01 \x01(\t\"1\n\x1cServiceConnectionClosedEvent\x12\x11\n\tfrom_addr\x18\x01 \x01(\t\"H\n\x16ServiceRpcMessageEvent\x12\x11\n\tfrom_addr\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\n\n\x02ts\x18\x03 \x01(\x03\"_\n\x15ServiceFileOfferEvent\x12\x13\n\x0btransfer_id\x18\x01 \x01(\t\x12\x11\n\tfrom_addr\x18\x02 \x01(\t\x12\x10\n\x08\x66ilename\x18\x03 \x01(\t\x12\x0c\n\x04size\x18\x04 \x01(\x04\"X\n\x13ServiceCommandEvent\x12\x12\n\ncommand_id\x18\x01 \x01(\t\x12\x11\n\tfrom_addr\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0c\n\x04\x61rgs\x18\x04 \x01(\t\"D\n\x14ServiceCommandResult\x12\x12\n\ncommand_id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\n\n\x02ok\x18\x03 \x01(\x08\"(\n\x11ServiceAcceptFile\x12\x13\n\x0btransfer_id\x18\x01 \x01(\t\"8\n\x11ServiceRejectFile\x12\x13\n\x0btransfer_id\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\"D\n\x12ServiceSendMessage\x12\x0f\n\x07to_addr\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\"-\n\x17ServiceAcceptConnection\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"=\n\x17ServiceRejectConnection\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\"\'\n\x12ServiceConnectPeer\x12\x11\n\tpeer_addr\x18\x01 \x01(\t\"*\n\x15ServiceDisconnectPeer\x12\x11\n\tpeer_addr\x18\x01 \x01(\t\"5\n\x16ServiceUpdateAllowlist\x12\x0b\n\x03\x61\x64\x64\x18\x01 \x03(\t\x12\x0e\n\x06remove\x18\x02 \x03(\t\"$\n\x11ServiceToOperator\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\":\n\x1bServiceOperatorMessageEvent\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\n\n\x02ts\x18\x02 \x01(\x03\"i\n\x1aServiceAttachClientMessage\x12\x31\n\x05start\x18\x01 \x01(\x0b\x32 .ensemble.api.ServiceAttachStartH\x00\x12\x11\n\x07payload\x18\x02 \x01(\x0cH\x00\x42\x05\n\x03msg\"\x14\n\x12ServiceAttachStart\"\x96\x01\n\x1aServiceAttachServerMessage\x12\x31\n\x08\x61ttached\x18\x01 \x01(\x0b\x32\x1d.ensemble.api.ServiceAttachedH\x00\x12\x11\n\x07payload\x18\x02 \x01(\x0cH\x00\x12+\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x1a.ensemble.api.ServiceErrorH\x00\x42\x05\n\x03msg\"\'\n\x0fServiceAttached\x12\x14\n\x0cservice_addr\x18\x01 \x01(\t\"\x87\x01\n\x14ServiceIntroducePeer\x12\x0f\n\x07to_addr\x18\x01 \x01(\t\x12\x12\n\nother_addr\x18\x02 \x01(\t\x12\x12\n\nsession_id\x18\x03 \x01(\t\x12\x12\n\nexpires_at\x18\x04 \x01(\x03\x12\x11\n\trole_hint\x18\x05 \x01(\t\x12\x0f\n\x07payload\x18\x06 \x01(\x0c\":\n\x13ServiceSignDocument\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"\x87\x01\n\x16ServiceSignResultEvent\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x15\n\rdilithium_pub\x18\x03 \x01(\x0c\x12\x0f\n\x07\x62inding\x18\x04 \x01(\x0c\x12\x0f\n\x07\x61\x64\x64ress\x18\x05 \x01(\t\x12\r\n\x05\x65rror\x18\x06 \x01(\t\"\x98\x01\n\x1cServicePeerIntroductionEvent\x12\x19\n\x11\x66rom_service_addr\x18\x01 \x01(\t\x12\x11\n\tpeer_addr\x18\x02 \x01(\t\x12\x12\n\nsession_id\x18\x03 \x01(\t\x12\x12\n\nexpires_at\x18\x04 \x01(\x03\x12\x11\n\trole_hint\x18\x05 \x01(\t\x12\x0f\n\x07payload\x18\x06 \x01(\x0c\"Z\n\x0cServiceError\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x13\n\x0blimit_bytes\x18\x02 \x01(\x03\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x16\n\x0eretry_after_ms\x18\x04 \x01(\x03\"-\n\x1aListServiceCommandsRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"J\n\x1bListServiceCommandsResponse\x12+\n\x08\x63ommands\x18\x01 \x03(\x0b\x32\x19.ensemble.api.CommandSpec\"A\n\x12SendCommandRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04\x61rgs\x18\x03 \x01(\t\"P\n\x13SendCommandResponse\x12\x12\n\ncommand_id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\n\n\x02ok\x18\x03 \x01(\x08\x12\x0b\n\x03leg\x18\x04 \x01(\t\"9\n\x11GetMetricsRequest\x12\x13\n\x0bname_prefix\x18\x01 \x01(\t\x12\x0f\n\x07service\x18\x02 \x01(\t\"o\n\x10MetricDescriptor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04unit\x18\x03 \x01(\t\x12\x12\n\nlabel_keys\x18\x04 \x03(\t\x12\x0c\n\x04help\x18\x05 \x01(\t\x12\x0f\n\x07\x62uckets\x18\x06 \x03(\x01\"(\n\x0bMetricPoint\x12\r\n\x05value\x18\x01 \x01(\x01\x12\n\n\x02ts\x18\x02 \x01(\x03\"2\n\x0cMetricBucket\x12\x13\n\x0bupper_bound\x18\x01 \x01(\x01\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\"\x94\x02\n\x0cMetricSeries\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.ensemble.api.MetricSeries.LabelsEntry\x12)\n\x06points\x18\x03 \x03(\x0b\x32\x19.ensemble.api.MetricPoint\x12\r\n\x05value\x18\x04 \x01(\x01\x12\x0c\n\x04rate\x18\x05 \x01(\x01\x12\r\n\x05\x63ount\x18\x06 \x01(\x04\x12\x0b\n\x03sum\x18\x07 \x01(\x01\x12+\n\x07\x62uckets\x18\x08 \x03(\x0b\x32\x1a.ensemble.api.MetricBucket\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9e\x01\n\x12GetMetricsResponse\x12\x33\n\x0b\x64\x65scriptors\x18\x01 \x03(\x0b\x32\x1e.ensemble.api.MetricDescriptor\x12*\n\x06series\x18\x02 \x03(\x0b\x32\x1a.ensemble.api.MetricSeries\x12\x16\n\x0e\x64ropped_series\x18\x03 \x01(\x04\x12\x0f\n\x07\x65nabled\x18\x04 \x01(\x08\"Q\n\x14StreamMetricsRequest\x12\x13\n\x0bname_prefix\x18\x01 \x01(\t\x12\x0f\n\x07service\x18\x02 \x01(\t\x12\x13\n\x0binterval_ms\x18\x03 \x01(\r\"\x98\x01\n\x0cMetricUpdate\x12\x33\n\x0b\x64\x65scriptors\x18\x01 \x03(\x0b\x32\x1e.ensemble.api.MetricDescriptor\x12*\n\x06series\x18\x02 \x03(\x0b\x32\x1a.ensemble.api.MetricSeries\x12\x16\n\x0e\x64ropped_series\x18\x03 \x01(\x04\x12\x0f\n\x07\x65nabled\x18\x04 \x01(\x08*O\n\x03\x41\x43L\x12\x13\n\x0f\x41\x43L_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x41\x43L_CONTACTS\x10\x01\x12\x11\n\rACL_ALLOWLIST\x10\x02\x12\x0e\n\nACL_PUBLIC\x10\x03*\x88\x01\n\x10ServiceTransport\x12!\n\x1dSERVICE_TRANSPORT_UNSPECIFIED\x10\x00\x12\x1a\n\x16SERVICE_TRANSPORT_CHAT\x10\x01\x12\x1a\n\x16SERVICE_TRANSPORT_HTTP\x10\x02\x12\x19\n\x15SERVICE_TRANSPORT_RPC\x10\x03\x32\xc6 \n\x0f\x45nsembleService\x12R\n\x0bGetIdentity\x12 .ensemble.api.GetIdentityRequest\x1a!.ensemble.api.GetIdentityResponse\x12L\n\tGetStatus\x12\x1e.ensemble.api.GetStatusRequest\x1a\x1f.ensemble.api.GetStatusResponse\x12X\n\rVerifyBinding\x12\".ensemble.api.VerifyBindingRequest\x1a#.ensemble.api.VerifyBindingResponse\x12U\n\x0cListContacts\x12!.ensemble.api.ListContactsRequest\x1a\".ensemble.api.ListContactsResponse\x12O\n\nAddContact\x12\x1f.ensemble.api.AddContactRequest\x1a .ensemble.api.AddContactResponse\x12X\n\rRemoveContact\x12\".ensemble.api.RemoveContactRequest\x1a#.ensemble.api.RemoveContactResponse\x12\x46\n\x07\x43onnect\x12\x1c.ensemble.api.ConnectRequest\x1a\x1d.ensemble.api.ConnectResponse\x12\x61\n\x10\x41\x63\x63\x65ptConnection\x12%.ensemble.api.AcceptConnectionRequest\x1a&.ensemble.api.AcceptConnectionResponse\x12\x61\n\x10RejectConnection\x12%.ensemble.api.RejectConnectionRequest\x1a&.ensemble.api.RejectConnectionResponse\x12L\n\tListPeers\x12\x1e.ensemble.api.ListPeersRequest\x1a\x1f.ensemble.api.ListPeersResponse\x12O\n\nDisconnect\x12\x1f.ensemble.api.DisconnectRequest\x1a .ensemble.api.DisconnectResponse\x12R\n\x0bSendMessage\x12 .ensemble.api.SendMessageRequest\x1a!.ensemble.api.SendMessageResponse\x12[\n\x0eGetChatHistory\x12#.ensemble.api.GetChatHistoryRequest\x1a$.ensemble.api.GetChatHistoryResponse\x12\x64\n\x11\x44\x65leteChatMessage\x12&.ensemble.api.DeleteChatMessageRequest\x1a\'.ensemble.api.DeleteChatMessageResponse\x12\x61\n\x10\x43learChatHistory\x12%.ensemble.api.ClearChatHistoryRequest\x1a&.ensemble.api.ClearChatHistoryResponse\x12K\n\x08SendFile\x12\x1d.ensemble.api.SendFileRequest\x1a\x1e.ensemble.api.TransferProgress0\x01\x12O\n\nAcceptFile\x12\x1f.ensemble.api.AcceptFileRequest\x1a .ensemble.api.AcceptFileResponse\x12O\n\nRejectFile\x12\x1f.ensemble.api.RejectFileRequest\x1a .ensemble.api.RejectFileResponse\x12[\n\x0e\x43\x61ncelTransfer\x12#.ensemble.api.CancelTransferRequest\x1a$.ensemble.api.CancelTransferResponse\x12\x46\n\x07\x41\x64\x64Node\x12\x1c.ensemble.api.AddNodeRequest\x1a\x1d.ensemble.api.AddNodeResponse\x12U\n\x0cGetDebugInfo\x12!.ensemble.api.GetDebugInfoRequest\x1a\".ensemble.api.GetDebugInfoResponse\x12U\n\x0c\x44\x65scribeNode\x12!.ensemble.api.DescribeNodeRequest\x1a\".ensemble.api.DescribeNodeResponse\x12H\n\tSubscribe\x12\x1e.ensemble.api.SubscribeRequest\x1a\x19.ensemble.api.DaemonEvent0\x01\x12]\n\x0fRegisterService\x12\".ensemble.api.ServiceClientMessage\x1a\".ensemble.api.ServiceServerMessage(\x01\x30\x01\x12g\n\rAttachService\x12(.ensemble.api.ServiceAttachClientMessage\x1a(.ensemble.api.ServiceAttachServerMessage(\x01\x30\x01\x12X\n\rDeleteService\x12\".ensemble.api.DeleteServiceRequest\x1a#.ensemble.api.DeleteServiceResponse\x12[\n\x0eRotateAdminKey\x12#.ensemble.api.RotateAdminKeyRequest\x1a$.ensemble.api.RotateAdminKeyResponse\x12j\n\x13ListServiceCommands\x12(.ensemble.api.ListServiceCommandsRequest\x1a).ensemble.api.ListServiceCommandsResponse\x12T\n\x0bSendCommand\x12 .ensemble.api.SendCommandRequest\x1a!.ensemble.api.SendCommandResponse0\x01\x12O\n\nGetMetrics\x12\x1f.ensemble.api.GetMetricsRequest\x1a .ensemble.api.GetMetricsResponse\x12Q\n\rStreamMetrics\x12\".ensemble.api.StreamMetricsRequest\x1a\x1a.ensemble.api.MetricUpdate0\x01\x12[\n\x11StreamServiceLogs\x12&.ensemble.api.StreamServiceLogsRequest\x1a\x1c.ensemble.api.ServiceLogLine0\x01\x12V\n\x0eInstallService\x12#.ensemble.api.InstallServiceRequest\x1a\x1d.ensemble.api.InstallProgress0\x01\x12V\n\x0eUpgradeService\x12#.ensemble.api.UpgradeServiceRequest\x1a\x1d.ensemble.api.InstallProgress0\x01\x12\x61\n\x10UninstallService\x12%.ensemble.api.UninstallServiceRequest\x1a&.ensemble.api.UninstallServiceResponse\x12^\n\x0fRollbackService\x12$.ensemble.api.RollbackServiceRequest\x1a%.ensemble.api.RollbackServiceResponse\x12p\n\x15ListInstalledServices\x12*.ensemble.api.ListInstalledServicesRequest\x1a+.ensemble.api.ListInstalledServicesResponse\x12p\n\x15StartInstalledService\x12*.ensemble.api.StartInstalledServiceRequest\x1a+.ensemble.api.StartInstalledServiceResponse\x12m\n\x14StopInstalledService\x12).ensemble.api.StopInstalledServiceRequest\x1a*.ensemble.api.StopInstalledServiceResponse\x12U\n\x0c\x42rokerLaunch\x12!.ensemble.api.BrokerLaunchRequest\x1a\".ensemble.api.BrokerLaunchResponse\x12X\n\rSetServiceEnv\x12\".ensemble.api.SetServiceEnvRequest\x1a#.ensemble.api.SetServiceEnvResponse\x12X\n\rGetServiceEnv\x12\".ensemble.api.GetServiceEnvRequest\x1a#.ensemble.api.GetServiceEnvResponse\x12R\n\x0b\x41\x64\x64Registry\x12 .ensemble.api.AddRegistryRequest\x1a!.ensemble.api.AddRegistryResponse\x12[\n\x0eRemoveRegistry\x12#.ensemble.api.RemoveRegistryRequest\x1a$.ensemble.api.RemoveRegistryResponse\x12[\n\x0eListRegistries\x12#.ensemble.api.ListRegistriesRequest\x1a$.ensemble.api.ListRegistriesResponse\x12\x61\n\x10SearchRegistries\x12%.ensemble.api.SearchRegistriesRequest\x1a&.ensemble.api.SearchRegistriesResponseB#Z!github.com/boxsie/ensemble/api/pbb\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ensemble_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ _globals['DESCRIPTOR']._loaded_options = None
34
+ _globals['DESCRIPTOR']._serialized_options = b'Z!github.com/boxsie/ensemble/api/pb'
35
+ _globals['_BROKERLAUNCHRESPONSE_ENVENTRY']._loaded_options = None
36
+ _globals['_BROKERLAUNCHRESPONSE_ENVENTRY']._serialized_options = b'8\001'
37
+ _globals['_SETSERVICEENVREQUEST_SETENTRY']._loaded_options = None
38
+ _globals['_SETSERVICEENVREQUEST_SETENTRY']._serialized_options = b'8\001'
39
+ _globals['_REGISTRYRELEASE_PLATFORMSENTRY']._loaded_options = None
40
+ _globals['_REGISTRYRELEASE_PLATFORMSENTRY']._serialized_options = b'8\001'
41
+ _globals['_METRICSAMPLE_LABELSENTRY']._loaded_options = None
42
+ _globals['_METRICSAMPLE_LABELSENTRY']._serialized_options = b'8\001'
43
+ _globals['_METRICSERIES_LABELSENTRY']._loaded_options = None
44
+ _globals['_METRICSERIES_LABELSENTRY']._serialized_options = b'8\001'
45
+ _globals['_ACL']._serialized_start=12851
46
+ _globals['_ACL']._serialized_end=12930
47
+ _globals['_SERVICETRANSPORT']._serialized_start=12933
48
+ _globals['_SERVICETRANSPORT']._serialized_end=13069
49
+ _globals['_GETIDENTITYREQUEST']._serialized_start=32
50
+ _globals['_GETIDENTITYREQUEST']._serialized_end=52
51
+ _globals['_GETIDENTITYRESPONSE']._serialized_start=54
52
+ _globals['_GETIDENTITYRESPONSE']._serialized_end=112
53
+ _globals['_VERIFYBINDINGREQUEST']._serialized_start=114
54
+ _globals['_VERIFYBINDINGREQUEST']._serialized_end=193
55
+ _globals['_VERIFYBINDINGRESPONSE']._serialized_start=195
56
+ _globals['_VERIFYBINDINGRESPONSE']._serialized_end=267
57
+ _globals['_GETSTATUSREQUEST']._serialized_start=269
58
+ _globals['_GETSTATUSREQUEST']._serialized_end=287
59
+ _globals['_GETSTATUSRESPONSE']._serialized_start=289
60
+ _globals['_GETSTATUSRESPONSE']._serialized_end=403
61
+ _globals['_LISTCONTACTSREQUEST']._serialized_start=405
62
+ _globals['_LISTCONTACTSREQUEST']._serialized_end=426
63
+ _globals['_LISTCONTACTSRESPONSE']._serialized_start=428
64
+ _globals['_LISTCONTACTSRESPONSE']._serialized_end=495
65
+ _globals['_CONTACTINFO']._serialized_start=498
66
+ _globals['_CONTACTINFO']._serialized_end=639
67
+ _globals['_ADDCONTACTREQUEST']._serialized_start=641
68
+ _globals['_ADDCONTACTREQUEST']._serialized_end=712
69
+ _globals['_ADDCONTACTRESPONSE']._serialized_start=714
70
+ _globals['_ADDCONTACTRESPONSE']._serialized_end=734
71
+ _globals['_REMOVECONTACTREQUEST']._serialized_start=736
72
+ _globals['_REMOVECONTACTREQUEST']._serialized_end=775
73
+ _globals['_REMOVECONTACTRESPONSE']._serialized_start=777
74
+ _globals['_REMOVECONTACTRESPONSE']._serialized_end=800
75
+ _globals['_CONNECTREQUEST']._serialized_start=802
76
+ _globals['_CONNECTREQUEST']._serialized_end=835
77
+ _globals['_CONNECTRESPONSE']._serialized_start=837
78
+ _globals['_CONNECTRESPONSE']._serialized_end=889
79
+ _globals['_ACCEPTCONNECTIONREQUEST']._serialized_start=891
80
+ _globals['_ACCEPTCONNECTIONREQUEST']._serialized_end=933
81
+ _globals['_ACCEPTCONNECTIONRESPONSE']._serialized_start=935
82
+ _globals['_ACCEPTCONNECTIONRESPONSE']._serialized_end=961
83
+ _globals['_REJECTCONNECTIONREQUEST']._serialized_start=963
84
+ _globals['_REJECTCONNECTIONREQUEST']._serialized_end=1005
85
+ _globals['_REJECTCONNECTIONRESPONSE']._serialized_start=1007
86
+ _globals['_REJECTCONNECTIONRESPONSE']._serialized_end=1033
87
+ _globals['_LISTPEERSREQUEST']._serialized_start=1035
88
+ _globals['_LISTPEERSREQUEST']._serialized_end=1053
89
+ _globals['_LISTPEERSRESPONSE']._serialized_start=1055
90
+ _globals['_LISTPEERSRESPONSE']._serialized_end=1114
91
+ _globals['_PEERENTRY']._serialized_start=1116
92
+ _globals['_PEERENTRY']._serialized_end=1219
93
+ _globals['_DISCONNECTREQUEST']._serialized_start=1221
94
+ _globals['_DISCONNECTREQUEST']._serialized_end=1257
95
+ _globals['_DISCONNECTRESPONSE']._serialized_start=1259
96
+ _globals['_DISCONNECTRESPONSE']._serialized_end=1279
97
+ _globals['_SENDMESSAGEREQUEST']._serialized_start=1281
98
+ _globals['_SENDMESSAGEREQUEST']._serialized_end=1332
99
+ _globals['_SENDMESSAGERESPONSE']._serialized_start=1334
100
+ _globals['_SENDMESSAGERESPONSE']._serialized_end=1375
101
+ _globals['_GETCHATHISTORYREQUEST']._serialized_start=1377
102
+ _globals['_GETCHATHISTORYREQUEST']._serialized_end=1432
103
+ _globals['_CHATMESSAGE']._serialized_start=1435
104
+ _globals['_CHATMESSAGE']._serialized_end=1570
105
+ _globals['_GETCHATHISTORYRESPONSE']._serialized_start=1572
106
+ _globals['_GETCHATHISTORYRESPONSE']._serialized_end=1641
107
+ _globals['_DELETECHATMESSAGEREQUEST']._serialized_start=1643
108
+ _globals['_DELETECHATMESSAGEREQUEST']._serialized_end=1706
109
+ _globals['_DELETECHATMESSAGERESPONSE']._serialized_start=1708
110
+ _globals['_DELETECHATMESSAGERESPONSE']._serialized_end=1752
111
+ _globals['_CLEARCHATHISTORYREQUEST']._serialized_start=1754
112
+ _globals['_CLEARCHATHISTORYREQUEST']._serialized_end=1796
113
+ _globals['_CLEARCHATHISTORYRESPONSE']._serialized_start=1798
114
+ _globals['_CLEARCHATHISTORYRESPONSE']._serialized_end=1824
115
+ _globals['_SENDFILEREQUEST']._serialized_start=1826
116
+ _globals['_SENDFILEREQUEST']._serialized_end=1879
117
+ _globals['_TRANSFERPROGRESS']._serialized_start=1882
118
+ _globals['_TRANSFERPROGRESS']._serialized_end=2030
119
+ _globals['_ACCEPTFILEREQUEST']._serialized_start=2032
120
+ _globals['_ACCEPTFILEREQUEST']._serialized_end=2091
121
+ _globals['_ACCEPTFILERESPONSE']._serialized_start=2093
122
+ _globals['_ACCEPTFILERESPONSE']._serialized_end=2113
123
+ _globals['_REJECTFILEREQUEST']._serialized_start=2115
124
+ _globals['_REJECTFILEREQUEST']._serialized_end=2155
125
+ _globals['_REJECTFILERESPONSE']._serialized_start=2157
126
+ _globals['_REJECTFILERESPONSE']._serialized_end=2177
127
+ _globals['_CANCELTRANSFERREQUEST']._serialized_start=2179
128
+ _globals['_CANCELTRANSFERREQUEST']._serialized_end=2223
129
+ _globals['_CANCELTRANSFERRESPONSE']._serialized_start=2225
130
+ _globals['_CANCELTRANSFERRESPONSE']._serialized_end=2249
131
+ _globals['_ADDNODEREQUEST']._serialized_start=2251
132
+ _globals['_ADDNODEREQUEST']._serialized_end=2290
133
+ _globals['_ADDNODERESPONSE']._serialized_start=2292
134
+ _globals['_ADDNODERESPONSE']._serialized_end=2330
135
+ _globals['_GETDEBUGINFOREQUEST']._serialized_start=2332
136
+ _globals['_GETDEBUGINFOREQUEST']._serialized_end=2353
137
+ _globals['_GETDEBUGINFORESPONSE']._serialized_start=2356
138
+ _globals['_GETDEBUGINFORESPONSE']._serialized_end=2626
139
+ _globals['_SUPERVISEDSERVICE']._serialized_start=2629
140
+ _globals['_SUPERVISEDSERVICE']._serialized_end=2781
141
+ _globals['_STREAMSERVICELOGSREQUEST']._serialized_start=2783
142
+ _globals['_STREAMSERVICELOGSREQUEST']._serialized_end=2859
143
+ _globals['_SERVICELOGLINE']._serialized_start=2861
144
+ _globals['_SERVICELOGLINE']._serialized_end=2906
145
+ _globals['_INSTALLSERVICEREQUEST']._serialized_start=2909
146
+ _globals['_INSTALLSERVICEREQUEST']._serialized_end=3072
147
+ _globals['_UPGRADESERVICEREQUEST']._serialized_start=3075
148
+ _globals['_UPGRADESERVICEREQUEST']._serialized_end=3233
149
+ _globals['_INSTALLPROGRESS']._serialized_start=3236
150
+ _globals['_INSTALLPROGRESS']._serialized_end=3433
151
+ _globals['_CAPABILITYSUMMARY']._serialized_start=3436
152
+ _globals['_CAPABILITYSUMMARY']._serialized_end=3659
153
+ _globals['_DESCRIBENODEREQUEST']._serialized_start=3661
154
+ _globals['_DESCRIBENODEREQUEST']._serialized_end=3699
155
+ _globals['_NODESERVICECARD']._serialized_start=3702
156
+ _globals['_NODESERVICECARD']._serialized_end=3899
157
+ _globals['_NODECARD']._serialized_start=3902
158
+ _globals['_NODECARD']._serialized_end=4128
159
+ _globals['_DESCRIBENODERESPONSE']._serialized_start=4130
160
+ _globals['_DESCRIBENODERESPONSE']._serialized_end=4255
161
+ _globals['_UNINSTALLSERVICEREQUEST']._serialized_start=4257
162
+ _globals['_UNINSTALLSERVICEREQUEST']._serialized_end=4339
163
+ _globals['_UNINSTALLSERVICERESPONSE']._serialized_start=4341
164
+ _globals['_UNINSTALLSERVICERESPONSE']._serialized_end=4367
165
+ _globals['_ROLLBACKSERVICEREQUEST']._serialized_start=4369
166
+ _globals['_ROLLBACKSERVICEREQUEST']._serialized_end=4407
167
+ _globals['_ROLLBACKSERVICERESPONSE']._serialized_start=4409
168
+ _globals['_ROLLBACKSERVICERESPONSE']._serialized_end=4486
169
+ _globals['_LISTINSTALLEDSERVICESREQUEST']._serialized_start=4488
170
+ _globals['_LISTINSTALLEDSERVICESREQUEST']._serialized_end=4541
171
+ _globals['_LISTINSTALLEDSERVICESRESPONSE']._serialized_start=4543
172
+ _globals['_LISTINSTALLEDSERVICESRESPONSE']._serialized_end=4628
173
+ _globals['_INSTALLEDSERVICEINFO']._serialized_start=4631
174
+ _globals['_INSTALLEDSERVICEINFO']._serialized_end=4948
175
+ _globals['_STARTINSTALLEDSERVICEREQUEST']._serialized_start=4950
176
+ _globals['_STARTINSTALLEDSERVICEREQUEST']._serialized_end=4994
177
+ _globals['_STARTINSTALLEDSERVICERESPONSE']._serialized_start=4996
178
+ _globals['_STARTINSTALLEDSERVICERESPONSE']._serialized_end=5027
179
+ _globals['_BROKERLAUNCHREQUEST']._serialized_start=5029
180
+ _globals['_BROKERLAUNCHREQUEST']._serialized_end=5064
181
+ _globals['_BROKERLAUNCHRESPONSE']._serialized_start=5067
182
+ _globals['_BROKERLAUNCHRESPONSE']._serialized_end=5260
183
+ _globals['_BROKERLAUNCHRESPONSE_ENVENTRY']._serialized_start=5218
184
+ _globals['_BROKERLAUNCHRESPONSE_ENVENTRY']._serialized_end=5260
185
+ _globals['_STOPINSTALLEDSERVICEREQUEST']._serialized_start=5262
186
+ _globals['_STOPINSTALLEDSERVICEREQUEST']._serialized_end=5305
187
+ _globals['_STOPINSTALLEDSERVICERESPONSE']._serialized_start=5307
188
+ _globals['_STOPINSTALLEDSERVICERESPONSE']._serialized_end=5337
189
+ _globals['_SETSERVICEENVREQUEST']._serialized_start=5340
190
+ _globals['_SETSERVICEENVREQUEST']._serialized_end=5510
191
+ _globals['_SETSERVICEENVREQUEST_SETENTRY']._serialized_start=5468
192
+ _globals['_SETSERVICEENVREQUEST_SETENTRY']._serialized_end=5510
193
+ _globals['_SETSERVICEENVRESPONSE']._serialized_start=5512
194
+ _globals['_SETSERVICEENVRESPONSE']._serialized_end=5568
195
+ _globals['_GETSERVICEENVREQUEST']._serialized_start=5570
196
+ _globals['_GETSERVICEENVREQUEST']._serialized_end=5606
197
+ _globals['_GETSERVICEENVRESPONSE']._serialized_start=5608
198
+ _globals['_GETSERVICEENVRESPONSE']._serialized_end=5716
199
+ _globals['_SETTINGDECL']._serialized_start=5719
200
+ _globals['_SETTINGDECL']._serialized_end=5919
201
+ _globals['_SIGNEDSERVICEDOCUMENT']._serialized_start=5921
202
+ _globals['_SIGNEDSERVICEDOCUMENT']._serialized_end=6016
203
+ _globals['_REGISTRYINDEX']._serialized_start=6018
204
+ _globals['_REGISTRYINDEX']._serialized_end=6125
205
+ _globals['_REGISTRYENTRY']._serialized_start=6127
206
+ _globals['_REGISTRYENTRY']._serialized_end=6226
207
+ _globals['_REGISTRYRELEASE']._serialized_start=6229
208
+ _globals['_REGISTRYRELEASE']._serialized_end=6465
209
+ _globals['_REGISTRYRELEASE_PLATFORMSENTRY']._serialized_start=6385
210
+ _globals['_REGISTRYRELEASE_PLATFORMSENTRY']._serialized_end=6465
211
+ _globals['_REGISTRYARTIFACT']._serialized_start=6467
212
+ _globals['_REGISTRYARTIFACT']._serialized_end=6528
213
+ _globals['_ADDREGISTRYREQUEST']._serialized_start=6530
214
+ _globals['_ADDREGISTRYREQUEST']._serialized_end=6567
215
+ _globals['_ADDREGISTRYRESPONSE']._serialized_start=6569
216
+ _globals['_ADDREGISTRYRESPONSE']._serialized_end=6636
217
+ _globals['_REMOVEREGISTRYREQUEST']._serialized_start=6638
218
+ _globals['_REMOVEREGISTRYREQUEST']._serialized_end=6678
219
+ _globals['_REMOVEREGISTRYRESPONSE']._serialized_start=6680
220
+ _globals['_REMOVEREGISTRYRESPONSE']._serialized_end=6704
221
+ _globals['_LISTREGISTRIESREQUEST']._serialized_start=6706
222
+ _globals['_LISTREGISTRIESREQUEST']._serialized_end=6746
223
+ _globals['_LISTREGISTRIESRESPONSE']._serialized_start=6748
224
+ _globals['_LISTREGISTRIESRESPONSE']._serialized_end=6820
225
+ _globals['_REGISTRYINFO']._serialized_start=6822
226
+ _globals['_REGISTRYINFO']._serialized_end=6929
227
+ _globals['_SEARCHREGISTRIESREQUEST']._serialized_start=6931
228
+ _globals['_SEARCHREGISTRIESREQUEST']._serialized_end=6988
229
+ _globals['_SEARCHREGISTRIESRESPONSE']._serialized_start=6990
230
+ _globals['_SEARCHREGISTRIESRESPONSE']._serialized_end=7057
231
+ _globals['_REGISTRYHIT']._serialized_start=7060
232
+ _globals['_REGISTRYHIT']._serialized_end=7233
233
+ _globals['_REGISTEREDSERVICE']._serialized_start=7235
234
+ _globals['_REGISTEREDSERVICE']._serialized_end=7305
235
+ _globals['_DELETESERVICEREQUEST']._serialized_start=7307
236
+ _globals['_DELETESERVICEREQUEST']._serialized_end=7343
237
+ _globals['_ROTATEADMINKEYREQUEST']._serialized_start=7345
238
+ _globals['_ROTATEADMINKEYREQUEST']._serialized_end=7388
239
+ _globals['_ROTATEADMINKEYRESPONSE']._serialized_start=7390
240
+ _globals['_ROTATEADMINKEYRESPONSE']._serialized_end=7414
241
+ _globals['_DELETESERVICERESPONSE']._serialized_start=7416
242
+ _globals['_DELETESERVICERESPONSE']._serialized_end=7439
243
+ _globals['_DHTNODE']._serialized_start=7441
244
+ _globals['_DHTNODE']._serialized_end=7506
245
+ _globals['_PEERSTATE']._serialized_start=7508
246
+ _globals['_PEERSTATE']._serialized_end=7566
247
+ _globals['_SUBSCRIBEREQUEST']._serialized_start=7568
248
+ _globals['_SUBSCRIBEREQUEST']._serialized_end=7586
249
+ _globals['_DAEMONEVENT']._serialized_start=7588
250
+ _globals['_DAEMONEVENT']._serialized_end=7632
251
+ _globals['_SERVICECLIENTMESSAGE']._serialized_start=7635
252
+ _globals['_SERVICECLIENTMESSAGE']._serialized_end=8480
253
+ _globals['_SERVICESERVERMESSAGE']._serialized_start=8483
254
+ _globals['_SERVICESERVERMESSAGE']._serialized_end=8657
255
+ _globals['_COMMANDSPEC']._serialized_start=8659
256
+ _globals['_COMMANDSPEC']._serialized_end=8722
257
+ _globals['_SERVICEMANIFEST']._serialized_start=8725
258
+ _globals['_SERVICEMANIFEST']._serialized_end=9145
259
+ _globals['_METRICSPEC']._serialized_start=9147
260
+ _globals['_METRICSPEC']._serialized_end=9252
261
+ _globals['_METRICSAMPLE']._serialized_start=9255
262
+ _globals['_METRICSAMPLE']._serialized_end=9413
263
+ _globals['_METRICSAMPLE_LABELSENTRY']._serialized_start=9368
264
+ _globals['_METRICSAMPLE_LABELSENTRY']._serialized_end=9413
265
+ _globals['_RATELIMITPOLICY']._serialized_start=9415
266
+ _globals['_RATELIMITPOLICY']._serialized_end=9476
267
+ _globals['_SERVICEREGISTERED']._serialized_start=9478
268
+ _globals['_SERVICEREGISTERED']._serialized_end=9580
269
+ _globals['_SERVICEEVENT']._serialized_start=9582
270
+ _globals['_SERVICEEVENT']._serialized_end=9627
271
+ _globals['_SERVICECHATMESSAGEEVENT']._serialized_start=9629
272
+ _globals['_SERVICECHATMESSAGEEVENT']._serialized_end=9699
273
+ _globals['_SERVICECONNECTIONREQUESTEVENT']._serialized_start=9701
274
+ _globals['_SERVICECONNECTIONREQUESTEVENT']._serialized_end=9771
275
+ _globals['_SERVICECONNECTIONESTABLISHEDEVENT']._serialized_start=9773
276
+ _globals['_SERVICECONNECTIONESTABLISHEDEVENT']._serialized_end=9827
277
+ _globals['_SERVICECONNECTIONCLOSEDEVENT']._serialized_start=9829
278
+ _globals['_SERVICECONNECTIONCLOSEDEVENT']._serialized_end=9878
279
+ _globals['_SERVICERPCMESSAGEEVENT']._serialized_start=9880
280
+ _globals['_SERVICERPCMESSAGEEVENT']._serialized_end=9952
281
+ _globals['_SERVICEFILEOFFEREVENT']._serialized_start=9954
282
+ _globals['_SERVICEFILEOFFEREVENT']._serialized_end=10049
283
+ _globals['_SERVICECOMMANDEVENT']._serialized_start=10051
284
+ _globals['_SERVICECOMMANDEVENT']._serialized_end=10139
285
+ _globals['_SERVICECOMMANDRESULT']._serialized_start=10141
286
+ _globals['_SERVICECOMMANDRESULT']._serialized_end=10209
287
+ _globals['_SERVICEACCEPTFILE']._serialized_start=10211
288
+ _globals['_SERVICEACCEPTFILE']._serialized_end=10251
289
+ _globals['_SERVICEREJECTFILE']._serialized_start=10253
290
+ _globals['_SERVICEREJECTFILE']._serialized_end=10309
291
+ _globals['_SERVICESENDMESSAGE']._serialized_start=10311
292
+ _globals['_SERVICESENDMESSAGE']._serialized_end=10379
293
+ _globals['_SERVICEACCEPTCONNECTION']._serialized_start=10381
294
+ _globals['_SERVICEACCEPTCONNECTION']._serialized_end=10426
295
+ _globals['_SERVICEREJECTCONNECTION']._serialized_start=10428
296
+ _globals['_SERVICEREJECTCONNECTION']._serialized_end=10489
297
+ _globals['_SERVICECONNECTPEER']._serialized_start=10491
298
+ _globals['_SERVICECONNECTPEER']._serialized_end=10530
299
+ _globals['_SERVICEDISCONNECTPEER']._serialized_start=10532
300
+ _globals['_SERVICEDISCONNECTPEER']._serialized_end=10574
301
+ _globals['_SERVICEUPDATEALLOWLIST']._serialized_start=10576
302
+ _globals['_SERVICEUPDATEALLOWLIST']._serialized_end=10629
303
+ _globals['_SERVICETOOPERATOR']._serialized_start=10631
304
+ _globals['_SERVICETOOPERATOR']._serialized_end=10667
305
+ _globals['_SERVICEOPERATORMESSAGEEVENT']._serialized_start=10669
306
+ _globals['_SERVICEOPERATORMESSAGEEVENT']._serialized_end=10727
307
+ _globals['_SERVICEATTACHCLIENTMESSAGE']._serialized_start=10729
308
+ _globals['_SERVICEATTACHCLIENTMESSAGE']._serialized_end=10834
309
+ _globals['_SERVICEATTACHSTART']._serialized_start=10836
310
+ _globals['_SERVICEATTACHSTART']._serialized_end=10856
311
+ _globals['_SERVICEATTACHSERVERMESSAGE']._serialized_start=10859
312
+ _globals['_SERVICEATTACHSERVERMESSAGE']._serialized_end=11009
313
+ _globals['_SERVICEATTACHED']._serialized_start=11011
314
+ _globals['_SERVICEATTACHED']._serialized_end=11050
315
+ _globals['_SERVICEINTRODUCEPEER']._serialized_start=11053
316
+ _globals['_SERVICEINTRODUCEPEER']._serialized_end=11188
317
+ _globals['_SERVICESIGNDOCUMENT']._serialized_start=11190
318
+ _globals['_SERVICESIGNDOCUMENT']._serialized_end=11248
319
+ _globals['_SERVICESIGNRESULTEVENT']._serialized_start=11251
320
+ _globals['_SERVICESIGNRESULTEVENT']._serialized_end=11386
321
+ _globals['_SERVICEPEERINTRODUCTIONEVENT']._serialized_start=11389
322
+ _globals['_SERVICEPEERINTRODUCTIONEVENT']._serialized_end=11541
323
+ _globals['_SERVICEERROR']._serialized_start=11543
324
+ _globals['_SERVICEERROR']._serialized_end=11633
325
+ _globals['_LISTSERVICECOMMANDSREQUEST']._serialized_start=11635
326
+ _globals['_LISTSERVICECOMMANDSREQUEST']._serialized_end=11680
327
+ _globals['_LISTSERVICECOMMANDSRESPONSE']._serialized_start=11682
328
+ _globals['_LISTSERVICECOMMANDSRESPONSE']._serialized_end=11756
329
+ _globals['_SENDCOMMANDREQUEST']._serialized_start=11758
330
+ _globals['_SENDCOMMANDREQUEST']._serialized_end=11823
331
+ _globals['_SENDCOMMANDRESPONSE']._serialized_start=11825
332
+ _globals['_SENDCOMMANDRESPONSE']._serialized_end=11905
333
+ _globals['_GETMETRICSREQUEST']._serialized_start=11907
334
+ _globals['_GETMETRICSREQUEST']._serialized_end=11964
335
+ _globals['_METRICDESCRIPTOR']._serialized_start=11966
336
+ _globals['_METRICDESCRIPTOR']._serialized_end=12077
337
+ _globals['_METRICPOINT']._serialized_start=12079
338
+ _globals['_METRICPOINT']._serialized_end=12119
339
+ _globals['_METRICBUCKET']._serialized_start=12121
340
+ _globals['_METRICBUCKET']._serialized_end=12171
341
+ _globals['_METRICSERIES']._serialized_start=12174
342
+ _globals['_METRICSERIES']._serialized_end=12450
343
+ _globals['_METRICSERIES_LABELSENTRY']._serialized_start=9368
344
+ _globals['_METRICSERIES_LABELSENTRY']._serialized_end=9413
345
+ _globals['_GETMETRICSRESPONSE']._serialized_start=12453
346
+ _globals['_GETMETRICSRESPONSE']._serialized_end=12611
347
+ _globals['_STREAMMETRICSREQUEST']._serialized_start=12613
348
+ _globals['_STREAMMETRICSREQUEST']._serialized_end=12694
349
+ _globals['_METRICUPDATE']._serialized_start=12697
350
+ _globals['_METRICUPDATE']._serialized_end=12849
351
+ _globals['_ENSEMBLESERVICE']._serialized_start=13072
352
+ _globals['_ENSEMBLESERVICE']._serialized_end=17238
353
+ # @@protoc_insertion_point(module_scope)