ensemble-client 1__tar.gz → 2.1.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: 1
3
+ Version: 2.1.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:
@@ -12,9 +12,11 @@ from .client import (
12
12
  Command,
13
13
  CommandHandler,
14
14
  ConnectResult,
15
+ Metric,
15
16
  PeerIntroductionHandler,
16
17
  RpcMessageHandler,
17
18
  ServiceHandle,
19
+ SpawnContext,
18
20
  Transport,
19
21
  )
20
22
  from .errors import (
@@ -45,6 +47,7 @@ __all__ = [
45
47
  "ChatMessage",
46
48
  "Client",
47
49
  "Command",
50
+ "Metric",
48
51
  "CommandHandler",
49
52
  "CommandInvocation",
50
53
  "ConnectionError",
@@ -64,6 +67,7 @@ __all__ = [
64
67
  "ServiceEvent",
65
68
  "ServiceHandle",
66
69
  "ServiceProtocolError",
70
+ "SpawnContext",
67
71
  "Transport",
68
72
  "TransportMismatchError",
69
73
  "UnknownEvent",
@@ -71,4 +75,4 @@ __all__ = [
71
75
  "signing_interceptors",
72
76
  ]
73
77
 
74
- __version__ = "1"
78
+ __version__ = "2.1.0"
@@ -0,0 +1,299 @@
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\"\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\"Y\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\"$\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\"\x8a\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\"\x85\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\"\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\"\xb5\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\"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\"\xfe\x01\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\",\n\x1cStartInstalledServiceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1f\n\x1dStartInstalledServiceResponse\"+\n\x1bStopInstalledServiceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1e\n\x1cStopInstalledServiceResponse\"_\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\"\x93\x05\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\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\"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\"\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\xa1\x1c\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\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\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\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\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['_REGISTRYRELEASE_PLATFORMSENTRY']._loaded_options = None
36
+ _globals['_REGISTRYRELEASE_PLATFORMSENTRY']._serialized_options = b'8\001'
37
+ _globals['_METRICSAMPLE_LABELSENTRY']._loaded_options = None
38
+ _globals['_METRICSAMPLE_LABELSENTRY']._serialized_options = b'8\001'
39
+ _globals['_METRICSERIES_LABELSENTRY']._loaded_options = None
40
+ _globals['_METRICSERIES_LABELSENTRY']._serialized_options = b'8\001'
41
+ _globals['_ACL']._serialized_start=10303
42
+ _globals['_ACL']._serialized_end=10382
43
+ _globals['_SERVICETRANSPORT']._serialized_start=10385
44
+ _globals['_SERVICETRANSPORT']._serialized_end=10521
45
+ _globals['_GETIDENTITYREQUEST']._serialized_start=32
46
+ _globals['_GETIDENTITYREQUEST']._serialized_end=52
47
+ _globals['_GETIDENTITYRESPONSE']._serialized_start=54
48
+ _globals['_GETIDENTITYRESPONSE']._serialized_end=112
49
+ _globals['_GETSTATUSREQUEST']._serialized_start=114
50
+ _globals['_GETSTATUSREQUEST']._serialized_end=132
51
+ _globals['_GETSTATUSRESPONSE']._serialized_start=134
52
+ _globals['_GETSTATUSRESPONSE']._serialized_end=248
53
+ _globals['_LISTCONTACTSREQUEST']._serialized_start=250
54
+ _globals['_LISTCONTACTSREQUEST']._serialized_end=271
55
+ _globals['_LISTCONTACTSRESPONSE']._serialized_start=273
56
+ _globals['_LISTCONTACTSRESPONSE']._serialized_end=340
57
+ _globals['_CONTACTINFO']._serialized_start=343
58
+ _globals['_CONTACTINFO']._serialized_end=484
59
+ _globals['_ADDCONTACTREQUEST']._serialized_start=486
60
+ _globals['_ADDCONTACTREQUEST']._serialized_end=557
61
+ _globals['_ADDCONTACTRESPONSE']._serialized_start=559
62
+ _globals['_ADDCONTACTRESPONSE']._serialized_end=579
63
+ _globals['_REMOVECONTACTREQUEST']._serialized_start=581
64
+ _globals['_REMOVECONTACTREQUEST']._serialized_end=620
65
+ _globals['_REMOVECONTACTRESPONSE']._serialized_start=622
66
+ _globals['_REMOVECONTACTRESPONSE']._serialized_end=645
67
+ _globals['_CONNECTREQUEST']._serialized_start=647
68
+ _globals['_CONNECTREQUEST']._serialized_end=680
69
+ _globals['_CONNECTRESPONSE']._serialized_start=682
70
+ _globals['_CONNECTRESPONSE']._serialized_end=734
71
+ _globals['_ACCEPTCONNECTIONREQUEST']._serialized_start=736
72
+ _globals['_ACCEPTCONNECTIONREQUEST']._serialized_end=778
73
+ _globals['_ACCEPTCONNECTIONRESPONSE']._serialized_start=780
74
+ _globals['_ACCEPTCONNECTIONRESPONSE']._serialized_end=806
75
+ _globals['_REJECTCONNECTIONREQUEST']._serialized_start=808
76
+ _globals['_REJECTCONNECTIONREQUEST']._serialized_end=850
77
+ _globals['_REJECTCONNECTIONRESPONSE']._serialized_start=852
78
+ _globals['_REJECTCONNECTIONRESPONSE']._serialized_end=878
79
+ _globals['_LISTPEERSREQUEST']._serialized_start=880
80
+ _globals['_LISTPEERSREQUEST']._serialized_end=898
81
+ _globals['_LISTPEERSRESPONSE']._serialized_start=900
82
+ _globals['_LISTPEERSRESPONSE']._serialized_end=959
83
+ _globals['_PEERENTRY']._serialized_start=961
84
+ _globals['_PEERENTRY']._serialized_end=1050
85
+ _globals['_DISCONNECTREQUEST']._serialized_start=1052
86
+ _globals['_DISCONNECTREQUEST']._serialized_end=1088
87
+ _globals['_DISCONNECTRESPONSE']._serialized_start=1090
88
+ _globals['_DISCONNECTRESPONSE']._serialized_end=1110
89
+ _globals['_SENDMESSAGEREQUEST']._serialized_start=1112
90
+ _globals['_SENDMESSAGEREQUEST']._serialized_end=1163
91
+ _globals['_SENDMESSAGERESPONSE']._serialized_start=1165
92
+ _globals['_SENDMESSAGERESPONSE']._serialized_end=1206
93
+ _globals['_GETCHATHISTORYREQUEST']._serialized_start=1208
94
+ _globals['_GETCHATHISTORYREQUEST']._serialized_end=1263
95
+ _globals['_CHATMESSAGE']._serialized_start=1266
96
+ _globals['_CHATMESSAGE']._serialized_end=1401
97
+ _globals['_GETCHATHISTORYRESPONSE']._serialized_start=1403
98
+ _globals['_GETCHATHISTORYRESPONSE']._serialized_end=1472
99
+ _globals['_DELETECHATMESSAGEREQUEST']._serialized_start=1474
100
+ _globals['_DELETECHATMESSAGEREQUEST']._serialized_end=1537
101
+ _globals['_DELETECHATMESSAGERESPONSE']._serialized_start=1539
102
+ _globals['_DELETECHATMESSAGERESPONSE']._serialized_end=1583
103
+ _globals['_CLEARCHATHISTORYREQUEST']._serialized_start=1585
104
+ _globals['_CLEARCHATHISTORYREQUEST']._serialized_end=1627
105
+ _globals['_CLEARCHATHISTORYRESPONSE']._serialized_start=1629
106
+ _globals['_CLEARCHATHISTORYRESPONSE']._serialized_end=1655
107
+ _globals['_SENDFILEREQUEST']._serialized_start=1657
108
+ _globals['_SENDFILEREQUEST']._serialized_end=1710
109
+ _globals['_TRANSFERPROGRESS']._serialized_start=1713
110
+ _globals['_TRANSFERPROGRESS']._serialized_end=1861
111
+ _globals['_ACCEPTFILEREQUEST']._serialized_start=1863
112
+ _globals['_ACCEPTFILEREQUEST']._serialized_end=1922
113
+ _globals['_ACCEPTFILERESPONSE']._serialized_start=1924
114
+ _globals['_ACCEPTFILERESPONSE']._serialized_end=1944
115
+ _globals['_REJECTFILEREQUEST']._serialized_start=1946
116
+ _globals['_REJECTFILEREQUEST']._serialized_end=1986
117
+ _globals['_REJECTFILERESPONSE']._serialized_start=1988
118
+ _globals['_REJECTFILERESPONSE']._serialized_end=2008
119
+ _globals['_CANCELTRANSFERREQUEST']._serialized_start=2010
120
+ _globals['_CANCELTRANSFERREQUEST']._serialized_end=2054
121
+ _globals['_CANCELTRANSFERRESPONSE']._serialized_start=2056
122
+ _globals['_CANCELTRANSFERRESPONSE']._serialized_end=2080
123
+ _globals['_ADDNODEREQUEST']._serialized_start=2082
124
+ _globals['_ADDNODEREQUEST']._serialized_end=2121
125
+ _globals['_ADDNODERESPONSE']._serialized_start=2123
126
+ _globals['_ADDNODERESPONSE']._serialized_end=2161
127
+ _globals['_GETDEBUGINFOREQUEST']._serialized_start=2163
128
+ _globals['_GETDEBUGINFOREQUEST']._serialized_end=2184
129
+ _globals['_GETDEBUGINFORESPONSE']._serialized_start=2187
130
+ _globals['_GETDEBUGINFORESPONSE']._serialized_end=2457
131
+ _globals['_SUPERVISEDSERVICE']._serialized_start=2460
132
+ _globals['_SUPERVISEDSERVICE']._serialized_end=2612
133
+ _globals['_STREAMSERVICELOGSREQUEST']._serialized_start=2614
134
+ _globals['_STREAMSERVICELOGSREQUEST']._serialized_end=2690
135
+ _globals['_SERVICELOGLINE']._serialized_start=2692
136
+ _globals['_SERVICELOGLINE']._serialized_end=2737
137
+ _globals['_INSTALLSERVICEREQUEST']._serialized_start=2740
138
+ _globals['_INSTALLSERVICEREQUEST']._serialized_end=2878
139
+ _globals['_UPGRADESERVICEREQUEST']._serialized_start=2881
140
+ _globals['_UPGRADESERVICEREQUEST']._serialized_end=3014
141
+ _globals['_INSTALLPROGRESS']._serialized_start=3017
142
+ _globals['_INSTALLPROGRESS']._serialized_end=3214
143
+ _globals['_CAPABILITYSUMMARY']._serialized_start=3217
144
+ _globals['_CAPABILITYSUMMARY']._serialized_end=3398
145
+ _globals['_UNINSTALLSERVICEREQUEST']._serialized_start=3400
146
+ _globals['_UNINSTALLSERVICEREQUEST']._serialized_end=3482
147
+ _globals['_UNINSTALLSERVICERESPONSE']._serialized_start=3484
148
+ _globals['_UNINSTALLSERVICERESPONSE']._serialized_end=3510
149
+ _globals['_ROLLBACKSERVICEREQUEST']._serialized_start=3512
150
+ _globals['_ROLLBACKSERVICEREQUEST']._serialized_end=3550
151
+ _globals['_ROLLBACKSERVICERESPONSE']._serialized_start=3552
152
+ _globals['_ROLLBACKSERVICERESPONSE']._serialized_end=3629
153
+ _globals['_LISTINSTALLEDSERVICESREQUEST']._serialized_start=3631
154
+ _globals['_LISTINSTALLEDSERVICESREQUEST']._serialized_end=3684
155
+ _globals['_LISTINSTALLEDSERVICESRESPONSE']._serialized_start=3686
156
+ _globals['_LISTINSTALLEDSERVICESRESPONSE']._serialized_end=3771
157
+ _globals['_INSTALLEDSERVICEINFO']._serialized_start=3774
158
+ _globals['_INSTALLEDSERVICEINFO']._serialized_end=4028
159
+ _globals['_STARTINSTALLEDSERVICEREQUEST']._serialized_start=4030
160
+ _globals['_STARTINSTALLEDSERVICEREQUEST']._serialized_end=4074
161
+ _globals['_STARTINSTALLEDSERVICERESPONSE']._serialized_start=4076
162
+ _globals['_STARTINSTALLEDSERVICERESPONSE']._serialized_end=4107
163
+ _globals['_STOPINSTALLEDSERVICEREQUEST']._serialized_start=4109
164
+ _globals['_STOPINSTALLEDSERVICEREQUEST']._serialized_end=4152
165
+ _globals['_STOPINSTALLEDSERVICERESPONSE']._serialized_start=4154
166
+ _globals['_STOPINSTALLEDSERVICERESPONSE']._serialized_end=4184
167
+ _globals['_SIGNEDSERVICEDOCUMENT']._serialized_start=4186
168
+ _globals['_SIGNEDSERVICEDOCUMENT']._serialized_end=4281
169
+ _globals['_REGISTRYINDEX']._serialized_start=4283
170
+ _globals['_REGISTRYINDEX']._serialized_end=4390
171
+ _globals['_REGISTRYENTRY']._serialized_start=4392
172
+ _globals['_REGISTRYENTRY']._serialized_end=4491
173
+ _globals['_REGISTRYRELEASE']._serialized_start=4494
174
+ _globals['_REGISTRYRELEASE']._serialized_end=4730
175
+ _globals['_REGISTRYRELEASE_PLATFORMSENTRY']._serialized_start=4650
176
+ _globals['_REGISTRYRELEASE_PLATFORMSENTRY']._serialized_end=4730
177
+ _globals['_REGISTRYARTIFACT']._serialized_start=4732
178
+ _globals['_REGISTRYARTIFACT']._serialized_end=4793
179
+ _globals['_ADDREGISTRYREQUEST']._serialized_start=4795
180
+ _globals['_ADDREGISTRYREQUEST']._serialized_end=4832
181
+ _globals['_ADDREGISTRYRESPONSE']._serialized_start=4834
182
+ _globals['_ADDREGISTRYRESPONSE']._serialized_end=4901
183
+ _globals['_REMOVEREGISTRYREQUEST']._serialized_start=4903
184
+ _globals['_REMOVEREGISTRYREQUEST']._serialized_end=4943
185
+ _globals['_REMOVEREGISTRYRESPONSE']._serialized_start=4945
186
+ _globals['_REMOVEREGISTRYRESPONSE']._serialized_end=4969
187
+ _globals['_LISTREGISTRIESREQUEST']._serialized_start=4971
188
+ _globals['_LISTREGISTRIESREQUEST']._serialized_end=5011
189
+ _globals['_LISTREGISTRIESRESPONSE']._serialized_start=5013
190
+ _globals['_LISTREGISTRIESRESPONSE']._serialized_end=5085
191
+ _globals['_REGISTRYINFO']._serialized_start=5087
192
+ _globals['_REGISTRYINFO']._serialized_end=5194
193
+ _globals['_SEARCHREGISTRIESREQUEST']._serialized_start=5196
194
+ _globals['_SEARCHREGISTRIESREQUEST']._serialized_end=5253
195
+ _globals['_SEARCHREGISTRIESRESPONSE']._serialized_start=5255
196
+ _globals['_SEARCHREGISTRIESRESPONSE']._serialized_end=5322
197
+ _globals['_REGISTRYHIT']._serialized_start=5325
198
+ _globals['_REGISTRYHIT']._serialized_end=5498
199
+ _globals['_REGISTEREDSERVICE']._serialized_start=5500
200
+ _globals['_REGISTEREDSERVICE']._serialized_end=5570
201
+ _globals['_DELETESERVICEREQUEST']._serialized_start=5572
202
+ _globals['_DELETESERVICEREQUEST']._serialized_end=5608
203
+ _globals['_ROTATEADMINKEYREQUEST']._serialized_start=5610
204
+ _globals['_ROTATEADMINKEYREQUEST']._serialized_end=5653
205
+ _globals['_ROTATEADMINKEYRESPONSE']._serialized_start=5655
206
+ _globals['_ROTATEADMINKEYRESPONSE']._serialized_end=5679
207
+ _globals['_DELETESERVICERESPONSE']._serialized_start=5681
208
+ _globals['_DELETESERVICERESPONSE']._serialized_end=5704
209
+ _globals['_DHTNODE']._serialized_start=5706
210
+ _globals['_DHTNODE']._serialized_end=5771
211
+ _globals['_PEERSTATE']._serialized_start=5773
212
+ _globals['_PEERSTATE']._serialized_end=5831
213
+ _globals['_SUBSCRIBEREQUEST']._serialized_start=5833
214
+ _globals['_SUBSCRIBEREQUEST']._serialized_end=5851
215
+ _globals['_DAEMONEVENT']._serialized_start=5853
216
+ _globals['_DAEMONEVENT']._serialized_end=5897
217
+ _globals['_SERVICECLIENTMESSAGE']._serialized_start=5900
218
+ _globals['_SERVICECLIENTMESSAGE']._serialized_end=6559
219
+ _globals['_SERVICESERVERMESSAGE']._serialized_start=6562
220
+ _globals['_SERVICESERVERMESSAGE']._serialized_end=6736
221
+ _globals['_COMMANDSPEC']._serialized_start=6738
222
+ _globals['_COMMANDSPEC']._serialized_end=6801
223
+ _globals['_SERVICEMANIFEST']._serialized_start=6804
224
+ _globals['_SERVICEMANIFEST']._serialized_end=7224
225
+ _globals['_METRICSPEC']._serialized_start=7226
226
+ _globals['_METRICSPEC']._serialized_end=7331
227
+ _globals['_METRICSAMPLE']._serialized_start=7334
228
+ _globals['_METRICSAMPLE']._serialized_end=7492
229
+ _globals['_METRICSAMPLE_LABELSENTRY']._serialized_start=7447
230
+ _globals['_METRICSAMPLE_LABELSENTRY']._serialized_end=7492
231
+ _globals['_RATELIMITPOLICY']._serialized_start=7494
232
+ _globals['_RATELIMITPOLICY']._serialized_end=7555
233
+ _globals['_SERVICEREGISTERED']._serialized_start=7557
234
+ _globals['_SERVICEREGISTERED']._serialized_end=7659
235
+ _globals['_SERVICEEVENT']._serialized_start=7661
236
+ _globals['_SERVICEEVENT']._serialized_end=7706
237
+ _globals['_SERVICECHATMESSAGEEVENT']._serialized_start=7708
238
+ _globals['_SERVICECHATMESSAGEEVENT']._serialized_end=7778
239
+ _globals['_SERVICECONNECTIONREQUESTEVENT']._serialized_start=7780
240
+ _globals['_SERVICECONNECTIONREQUESTEVENT']._serialized_end=7850
241
+ _globals['_SERVICERPCMESSAGEEVENT']._serialized_start=7852
242
+ _globals['_SERVICERPCMESSAGEEVENT']._serialized_end=7924
243
+ _globals['_SERVICEFILEOFFEREVENT']._serialized_start=7926
244
+ _globals['_SERVICEFILEOFFEREVENT']._serialized_end=8021
245
+ _globals['_SERVICECOMMANDEVENT']._serialized_start=8023
246
+ _globals['_SERVICECOMMANDEVENT']._serialized_end=8111
247
+ _globals['_SERVICECOMMANDRESULT']._serialized_start=8113
248
+ _globals['_SERVICECOMMANDRESULT']._serialized_end=8181
249
+ _globals['_SERVICEACCEPTFILE']._serialized_start=8183
250
+ _globals['_SERVICEACCEPTFILE']._serialized_end=8223
251
+ _globals['_SERVICEREJECTFILE']._serialized_start=8225
252
+ _globals['_SERVICEREJECTFILE']._serialized_end=8281
253
+ _globals['_SERVICESENDMESSAGE']._serialized_start=8283
254
+ _globals['_SERVICESENDMESSAGE']._serialized_end=8351
255
+ _globals['_SERVICEACCEPTCONNECTION']._serialized_start=8353
256
+ _globals['_SERVICEACCEPTCONNECTION']._serialized_end=8398
257
+ _globals['_SERVICEREJECTCONNECTION']._serialized_start=8400
258
+ _globals['_SERVICEREJECTCONNECTION']._serialized_end=8461
259
+ _globals['_SERVICECONNECTPEER']._serialized_start=8463
260
+ _globals['_SERVICECONNECTPEER']._serialized_end=8502
261
+ _globals['_SERVICEINTRODUCEPEER']._serialized_start=8505
262
+ _globals['_SERVICEINTRODUCEPEER']._serialized_end=8640
263
+ _globals['_SERVICESIGNDOCUMENT']._serialized_start=8642
264
+ _globals['_SERVICESIGNDOCUMENT']._serialized_end=8700
265
+ _globals['_SERVICESIGNRESULTEVENT']._serialized_start=8703
266
+ _globals['_SERVICESIGNRESULTEVENT']._serialized_end=8838
267
+ _globals['_SERVICEPEERINTRODUCTIONEVENT']._serialized_start=8841
268
+ _globals['_SERVICEPEERINTRODUCTIONEVENT']._serialized_end=8993
269
+ _globals['_SERVICEERROR']._serialized_start=8995
270
+ _globals['_SERVICEERROR']._serialized_end=9085
271
+ _globals['_LISTSERVICECOMMANDSREQUEST']._serialized_start=9087
272
+ _globals['_LISTSERVICECOMMANDSREQUEST']._serialized_end=9132
273
+ _globals['_LISTSERVICECOMMANDSRESPONSE']._serialized_start=9134
274
+ _globals['_LISTSERVICECOMMANDSRESPONSE']._serialized_end=9208
275
+ _globals['_SENDCOMMANDREQUEST']._serialized_start=9210
276
+ _globals['_SENDCOMMANDREQUEST']._serialized_end=9275
277
+ _globals['_SENDCOMMANDRESPONSE']._serialized_start=9277
278
+ _globals['_SENDCOMMANDRESPONSE']._serialized_end=9357
279
+ _globals['_GETMETRICSREQUEST']._serialized_start=9359
280
+ _globals['_GETMETRICSREQUEST']._serialized_end=9416
281
+ _globals['_METRICDESCRIPTOR']._serialized_start=9418
282
+ _globals['_METRICDESCRIPTOR']._serialized_end=9529
283
+ _globals['_METRICPOINT']._serialized_start=9531
284
+ _globals['_METRICPOINT']._serialized_end=9571
285
+ _globals['_METRICBUCKET']._serialized_start=9573
286
+ _globals['_METRICBUCKET']._serialized_end=9623
287
+ _globals['_METRICSERIES']._serialized_start=9626
288
+ _globals['_METRICSERIES']._serialized_end=9902
289
+ _globals['_METRICSERIES_LABELSENTRY']._serialized_start=7447
290
+ _globals['_METRICSERIES_LABELSENTRY']._serialized_end=7492
291
+ _globals['_GETMETRICSRESPONSE']._serialized_start=9905
292
+ _globals['_GETMETRICSRESPONSE']._serialized_end=10063
293
+ _globals['_STREAMMETRICSREQUEST']._serialized_start=10065
294
+ _globals['_STREAMMETRICSREQUEST']._serialized_end=10146
295
+ _globals['_METRICUPDATE']._serialized_start=10149
296
+ _globals['_METRICUPDATE']._serialized_end=10301
297
+ _globals['_ENSEMBLESERVICE']._serialized_start=10524
298
+ _globals['_ENSEMBLESERVICE']._serialized_end=14141
299
+ # @@protoc_insertion_point(module_scope)