boxd 0.2.0.dev40__tar.gz → 0.2.2.dev43__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.
- {boxd-0.2.0.dev40/src/boxd.egg-info → boxd-0.2.2.dev43}/PKG-INFO +1 -1
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/pyproject.toml +1 -1
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/__init__.py +2 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_credentials.py +15 -16
- boxd-0.2.2.dev43/src/boxd/_generated/api_pb2.py +362 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_generated/api_pb2_grpc.py +46 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_mappers.py +7 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_requests.py +17 -2
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/models.py +26 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/resources/machines.py +93 -4
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43/src/boxd.egg-info}/PKG-INFO +1 -1
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/tests/test_credentials.py +16 -36
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/tests/test_mappers.py +29 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/tests/test_namespaces.py +21 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/tests/test_requests.py +73 -1
- boxd-0.2.0.dev40/src/boxd/_generated/api_pb2.py +0 -358
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/LICENSE +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/README.md +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/setup.cfg +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_client.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_generated/__init__.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_streaming.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_transport.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_urls.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/_version_check.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/errors.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/resources/__init__.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/resources/account.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/resources/credentials.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/resources/disks.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/resources/orgs.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/resources/snapshots.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd/resources/vars.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd.egg-info/SOURCES.txt +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd.egg-info/dependency_links.txt +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd.egg-info/requires.txt +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/src/boxd.egg-info/top_level.txt +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/tests/test_streaming.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/tests/test_transport.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/tests/test_urls.py +0 -0
- {boxd-0.2.0.dev40 → boxd-0.2.2.dev43}/tests/test_version_check.py +0 -0
|
@@ -50,6 +50,7 @@ from .models import (
|
|
|
50
50
|
Machine,
|
|
51
51
|
MachineAccess,
|
|
52
52
|
MachineIdle,
|
|
53
|
+
MachineNetworking,
|
|
53
54
|
MachineResources,
|
|
54
55
|
MachineSource,
|
|
55
56
|
MachineSourceKind,
|
|
@@ -103,6 +104,7 @@ __all__ = [
|
|
|
103
104
|
"Machine",
|
|
104
105
|
"MachineAccess",
|
|
105
106
|
"MachineIdle",
|
|
107
|
+
"MachineNetworking",
|
|
106
108
|
"MachineResources",
|
|
107
109
|
"MachineSource",
|
|
108
110
|
"MachineSourceKind",
|
|
@@ -35,7 +35,6 @@ METADATA_TOKEN_PATH = "/v1/auth/token"
|
|
|
35
35
|
# Proxy-minted, HMAC-signed identity token exposed to every guest process by
|
|
36
36
|
# takeoff. Forwarded verbatim so the worker attributes the call to the acting
|
|
37
37
|
# user rather than the VM owner.
|
|
38
|
-
IDENTITY_HEADER = "X-Boxd-Identity"
|
|
39
38
|
|
|
40
39
|
# Re-exchange an API-key JWT this long before it expires.
|
|
41
40
|
EXCHANGE_SKEW_SECS = 300
|
|
@@ -78,16 +77,19 @@ def detect_gateway() -> str | None:
|
|
|
78
77
|
return None
|
|
79
78
|
|
|
80
79
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
# Only a hint: it skips the probe in the common case of running on a laptop.
|
|
81
|
+
# Deliberately permissive — which of these a shell actually has depends on how
|
|
82
|
+
# the session was opened and on how old the machine is, so gating on any single
|
|
83
|
+
# one silently disables in-VM auth on machines that are otherwise fine. The
|
|
84
|
+
# metadata probe is the real test: nothing outside a boxd machine answers it.
|
|
85
|
+
_VM_HINTS = ("BOXD_VM_ID", "BOXD_VM_NAME", "BOXD_PROXY_ENDPOINT")
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def looks_like_a_machine() -> bool:
|
|
89
|
+
"""True when the environment hints we may be inside a boxd machine."""
|
|
90
|
+
return any(os.environ.get(v) for v in _VM_HINTS)
|
|
85
91
|
|
|
86
92
|
|
|
87
|
-
def identity_token() -> str | None:
|
|
88
|
-
"""`BOXD_IDENTITY`, the session's signed identity token (already base64)."""
|
|
89
|
-
value = os.environ.get("BOXD_IDENTITY")
|
|
90
|
-
return value or None
|
|
91
93
|
|
|
92
94
|
|
|
93
95
|
def probe(host: str, port: int, timeout: float = _PROBE_TIMEOUT_SECS) -> bool:
|
|
@@ -185,9 +187,6 @@ class _CredentialsBase:
|
|
|
185
187
|
return "exchange"
|
|
186
188
|
return "auto"
|
|
187
189
|
|
|
188
|
-
def _headers(self) -> dict[str, str]:
|
|
189
|
-
identity = identity_token()
|
|
190
|
-
return {IDENTITY_HEADER: identity} if identity else {}
|
|
191
190
|
|
|
192
191
|
|
|
193
192
|
class SyncCredentials(_CredentialsBase):
|
|
@@ -222,7 +221,7 @@ class SyncCredentials(_CredentialsBase):
|
|
|
222
221
|
base = self._metadata_base()
|
|
223
222
|
try:
|
|
224
223
|
with httpx.Client(timeout=_HTTP_TIMEOUT_SECS) as client:
|
|
225
|
-
resp = client.get(base + METADATA_TOKEN_PATH
|
|
224
|
+
resp = client.get(base + METADATA_TOKEN_PATH)
|
|
226
225
|
except httpx.HTTPError as e:
|
|
227
226
|
raise AuthenticationError(f"in-VM token request failed: {e}") from e
|
|
228
227
|
token, expires_at, api_url = parse_vm_token(
|
|
@@ -234,7 +233,7 @@ class SyncCredentials(_CredentialsBase):
|
|
|
234
233
|
|
|
235
234
|
def _metadata_base(self) -> str:
|
|
236
235
|
"""Detection needs BOTH signals — neither alone is sufficient."""
|
|
237
|
-
if not
|
|
236
|
+
if not looks_like_a_machine():
|
|
238
237
|
raise AuthenticationError(_NO_CREDENTIALS)
|
|
239
238
|
gateway = detect_gateway()
|
|
240
239
|
if not gateway or not probe(gateway, METADATA_PORT):
|
|
@@ -277,7 +276,7 @@ class AsyncCredentials(_CredentialsBase):
|
|
|
277
276
|
try:
|
|
278
277
|
async with httpx.AsyncClient(timeout=_HTTP_TIMEOUT_SECS) as client:
|
|
279
278
|
resp = await client.get(
|
|
280
|
-
base + METADATA_TOKEN_PATH
|
|
279
|
+
base + METADATA_TOKEN_PATH
|
|
281
280
|
)
|
|
282
281
|
except httpx.HTTPError as e:
|
|
283
282
|
raise AuthenticationError(f"in-VM token request failed: {e}") from e
|
|
@@ -289,7 +288,7 @@ class AsyncCredentials(_CredentialsBase):
|
|
|
289
288
|
self.discovered_base_url = api_url
|
|
290
289
|
|
|
291
290
|
async def _metadata_base(self) -> str:
|
|
292
|
-
if not
|
|
291
|
+
if not looks_like_a_machine():
|
|
293
292
|
raise AuthenticationError(_NO_CREDENTIALS)
|
|
294
293
|
gateway = detect_gateway()
|
|
295
294
|
if not gateway or not await probe_async(gateway, METADATA_PORT):
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: api.proto
|
|
5
|
+
# Protobuf Python Version: 7.35.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
|
+
7,
|
|
15
|
+
35,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'api.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\tapi.proto\x12\x0b\x62oxd.api.v1\"\xbf\x01\n\x08VmConfig\x12\x0c\n\x04vcpu\x18\x01 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x02 \x01(\x04\x12\x12\n\ndisk_bytes\x18\x03 \x01(\x04\x12#\n\x03srf\x18\x04 \x01(\x0b\x32\x16.boxd.api.v1.SrfConfig\x12+\n\x07network\x18\x05 \x01(\x0b\x32\x1a.boxd.api.v1.NetworkConfig\x12)\n\x07volumes\x18\x06 \x03(\x0b\x32\x18.boxd.api.v1.VolumeMount\"t\n\tSrfConfig\x12&\n\x19\x61uto_suspend_timeout_secs\x18\x01 \x01(\rH\x00\x88\x01\x01\x12!\n\x19\x61uto_destroy_timeout_secs\x18\x02 \x01(\rB\x1c\n\x1a_auto_suspend_timeout_secs\"F\n\rNetworkConfig\x12\x0b\n\x03ssh\x18\x01 \x01(\x08\x12(\n\x07proxies\x18\x02 \x03(\x0b\x32\x17.boxd.api.v1.ProxyEntry\"(\n\nProxyEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\"E\n\x0bVolumeMount\x12\x0f\n\x07\x64isk_id\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x11\n\tread_only\x18\x03 \x01(\x08\"\xed\x01\n\x0f\x43reateVmRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\timage_ref\x18\x02 \x01(\t\x12 \n\x03\x65nv\x18\x05 \x03(\x0b\x32\x13.boxd.api.v1.EnvVar\x12\x0b\n\x03\x63md\x18\x06 \x03(\t\x12\x16\n\x0erestart_policy\x18\x07 \x01(\t\x12%\n\x06\x63onfig\x18\x08 \x01(\x0b\x32\x15.boxd.api.v1.VmConfig\x12\x0b\n\x03org\x18\t \x01(\t\x12\x0e\n\x06shared\x18\n \x01(\x08\x12\x10\n\x08networks\x18\x0b \x03(\t\x12\x10\n\x08isolated\x18\x0c \x01(\x08J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\"$\n\x06\x45nvVar\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x84\x01\n\x10\x43reateVmResponse\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tpublic_ip\x18\x03 \x01(\t\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\r\n\x05image\x18\x05 \x01(\t\x12\x0e\n\x06status\x18\x06 \x01(\t\x12\x14\n\x0c\x62oot_time_ms\x18\x07 \x01(\x04\"!\n\x10\x44\x65stroyVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x13\n\x11\x44\x65stroyVmResponse\"\x16\n\x14SuggestVmNameRequest\"%\n\x15SuggestVmNameResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\"2\n\x0fRenameVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\" \n\x10RenameVmResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\"7\n\x14SetVmNetworksRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x10\n\x08networks\x18\x02 \x03(\t\")\n\x15SetVmNetworksResponse\x12\x10\n\x08networks\x18\x01 \x03(\t\"U\n\x11\x45xposePortRequest\x12\x11\n\x05vm_id\x18\x01 \x01(\tB\x02\x18\x01\x12\x0f\n\x07vm_port\x18\x02 \x01(\r\x12\x10\n\x08protocol\x18\x03 \x01(\t\x12\n\n\x02vm\x18\x04 \x01(\t\"y\n\x12\x45xposePortResponse\x12\x0f\n\x07vm_name\x18\x01 \x01(\t\x12\x0b\n\x03\x64ns\x18\x02 \x01(\t\x12\x13\n\x0bpublic_port\x18\x03 \x01(\r\x12\x0f\n\x07vm_port\x18\x04 \x01(\r\x12\x10\n\x08protocol\x18\x05 \x01(\t\x12\r\n\x05vm_id\x18\x06 \x01(\t\"E\n\x13UnexposePortRequest\x12\x11\n\x05vm_id\x18\x01 \x01(\tB\x02\x18\x01\x12\x0f\n\x07vm_port\x18\x02 \x01(\r\x12\n\n\x02vm\x18\x03 \x01(\t\"H\n\x14UnexposePortResponse\x12\x30\n\x07\x66orward\x18\x01 \x01(\x0b\x32\x1f.boxd.api.v1.ExposePortResponse\"%\n\x17ListExposedPortsRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"M\n\x18ListExposedPortsResponse\x12\x31\n\x08\x66orwards\x18\x01 \x03(\x0b\x32\x1f.boxd.api.v1.ExposePortResponse\"\\\n\rSetVarRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05value\x18\x04 \x01(\t\x12\r\n\x05scope\x18\x05 \x01(\tJ\x04\x08\x06\x10\x07\"\x1b\n\x08VarReply\x12\x0f\n\x07message\x18\x01 \x01(\t\",\n\x0fListVarsRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\"O\n\x07VarItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\r\n\x05scope\x18\x03 \x01(\t\x12\r\n\x05value\x18\x04 \x01(\tJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"2\n\x0cVarListReply\x12\"\n\x04vars\x18\x01 \x03(\x0b\x32\x14.boxd.api.v1.VarItem\"J\n\x10RemoveVarRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05scope\x18\x04 \x01(\t\"L\n\x15SetSecretScopeRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04\x66rom\x18\x03 \x01(\t\x12\n\n\x02to\x18\x04 \x01(\t\"\x1f\n\x0eStartVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x11\n\x0fStartVmResponse\"\x1e\n\rStopVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x10\n\x0eStopVmResponse\" \n\x0fRebootVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x12\n\x10RebootVmResponse\"!\n\x10SuspendVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\'\n\x11SuspendVmResponse\x12\x12\n\nsuspend_us\x18\x01 \x01(\x04\" \n\x0fResumeVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"%\n\x10ResumeVmResponse\x12\x11\n\tresume_us\x18\x01 \x01(\x04\"#\n\x12HibernateVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x15\n\x13HibernateVmResponse\"\x1e\n\rWakeVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x10\n\x0eWakeVmResponse\"\x1d\n\x0cGetVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\xcf\x04\n\rGetVmResponse\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\timage_ref\x18\x03 \x01(\t\x12\x11\n\tpublic_ip\x18\x04 \x01(\t\x12\x0e\n\x06status\x18\x05 \x01(\t\x12\x16\n\x0erestart_policy\x18\x06 \x01(\t\x12\x12\n\ndisk_bytes\x18\x07 \x01(\x04\x12!\n\x19\x61uto_suspend_timeout_secs\x18\x08 \x01(\r\x12\x10\n\x08ssh_port\x18\t \x01(\r\x12\x0b\n\x03org\x18\n \x01(\t\x12\x13\n\x0b\x62illing_org\x18\x0b \x01(\t\x12\x15\n\raccess_domain\x18\x0c \x01(\t\x12#\n\x1b\x61uto_hibernate_timeout_secs\x18\r \x01(\r\x12\x0e\n\x06source\x18\x0e \x01(\t\x12\x0c\n\x04vcpu\x18\x0f \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x10 \x01(\x04\x12\x12\n\ncreated_at\x18\x11 \x01(\x03\x12\x18\n\x10hibernated_at_ms\x18\x12 \x01(\x03\x12!\n\x19\x61uto_destroy_timeout_secs\x18\x13 \x01(\r\x12\x14\n\x0c\x62oot_time_ms\x18\x14 \x01(\x03\x12\x19\n\x11last_connected_ms\x18\x15 \x01(\x03\x12\x0e\n\x06org_id\x18\x16 \x01(\t\x12\x16\n\x0e\x62illing_org_id\x18\x17 \x01(\t\x12*\n\x0bsource_info\x18\x18 \x01(\x0b\x32\x15.boxd.api.v1.VmSource\x12\x10\n\x08networks\x18\x19 \x03(\t\x12\x10\n\x08isolated\x18\x1a \x01(\x08\"C\n\x08VmSource\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12\n\n\x02id\x18\x04 \x01(\t\"3\n\x0eListVmsRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\x14\n\x0c\x61ll_contexts\x18\x02 \x01(\x08\"P\n\x0fListVmsResponse\x12\'\n\x03vms\x18\x01 \x03(\x0b\x32\x1a.boxd.api.v1.GetVmResponse\x12\x14\n\x0cssh_host_key\x18\x02 \x01(\t\"2\n\x11StreamLogsRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0e\n\x06\x66ollow\x18\x02 \x01(\x08\"\x18\n\x08LogChunk\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xc1\x01\n\tExecChunk\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\r\n\x05stdin\x18\x02 \x01(\x08\x12\x0b\n\x03tty\x18\x03 \x01(\x08\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\t\x12\r\n\x05vm_id\x18\x05 \x01(\t\x12\x11\n\texit_code\x18\x06 \x01(\x05\x12\x0c\n\x04\x63ols\x18\x07 \x01(\r\x12\x0c\n\x04rows\x18\x08 \x01(\r\x12\x15\n\rwindow_change\x18\t \x01(\x08\x12\x11\n\tis_stderr\x18\n \x01(\x08\x12\x11\n\tdevice_id\x18\x0b \x01(\t\"$\n\x14\x43reateNetworkRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"+\n\x15\x43reateNetworkResponse\x12\x12\n\nnetwork_id\x18\x01 \x01(\t\"\x15\n\x13ListNetworksRequest\"B\n\x14ListNetworksResponse\x12*\n\x08networks\x18\x01 \x03(\x0b\x32\x18.boxd.api.v1.NetworkInfo\"A\n\x0bNetworkInfo\x12\x12\n\nnetwork_id\x18\x01 \x01(\t\x12\x0e\n\x06subnet\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\"2\n\x11\x42indDomainRequest\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\r\n\x05vm_id\x18\x02 \x01(\t\"\x14\n\x12\x42indDomainResponse\"%\n\x13UnbindDomainRequest\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\"\x16\n\x14UnbindDomainResponse\"\x14\n\x12ListDomainsRequest\"?\n\x13ListDomainsResponse\x12(\n\x07\x64omains\x18\x01 \x03(\x0b\x32\x17.boxd.api.v1.DomainInfo\"+\n\nDomainInfo\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\r\n\x05vm_id\x18\x02 \x01(\t\"\x12\n\x10GetConfigRequest\"8\n\x11GetConfigResponse\x12\x15\n\rdefault_image\x18\x01 \x01(\t\x12\x0c\n\x04zone\x18\x02 \x01(\t\"\x0f\n\rWhoamiRequest\"\x99\x01\n\x0eWhoamiResponse\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x1b\n\x13pubkey_fingerprints\x18\x02 \x03(\t\x12)\n\x07\x62illing\x18\x04 \x01(\x0b\x32\x18.boxd.api.v1.BillingInfo\x12\x14\n\x0c\x64isplay_name\x18\x05 \x01(\tJ\x04\x08\x03\x10\x04R\x12\x64\x65\x66\x61ult_network_id\"\xc8\x01\n\x0b\x42illingInfo\x12\x1b\n\x13subscription_status\x18\x03 \x01(\t\x12\x16\n\x0epast_due_since\x18\x06 \x01(\x03\x12\x0f\n\x07max_vms\x18\x07 \x01(\r\x12\x0c\n\x04vcpu\x18\x08 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\t \x01(\x04J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06R\x04tierR\x05shapeR\x12stripe_customer_idR\x16stripe_subscription_id\"\x12\n\x10ListPlansRequest\"9\n\x11ListPlansResponse\x12$\n\x05plans\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.PlanInfo\"\x85\x01\n\x08PlanInfo\x12\x13\n\x0bmonthly_eur\x18\x03 \x01(\r\x12\x12\n\nlookup_key\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x0c\n\x04vcpu\x18\x06 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x07 \x01(\x04J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x04tierR\x05shape\"\x13\n\x11GetBillingRequest\"?\n\x12GetBillingResponse\x12)\n\x07\x62illing\x18\x01 \x01(\x0b\x32\x18.boxd.api.v1.BillingInfo\"T\n\x1c\x43reateCheckoutSessionRequest\x12\x13\n\x0bsuccess_url\x18\x02 \x01(\t\x12\x12\n\ncancel_url\x18\x03 \x01(\tJ\x04\x08\x01\x10\x02R\x05shape\"5\n\x1d\x43reateCheckoutSessionResponse\x12\x14\n\x0c\x63heckout_url\x18\x01 \x01(\t\"7\n!CreateBillingPortalSessionRequest\x12\x12\n\nreturn_url\x18\x01 \x01(\t\"8\n\"CreateBillingPortalSessionResponse\x12\x12\n\nportal_url\x18\x01 \x01(\t\"-\n\x12\x43reateTokenRequest\x12\x17\n\x0f\x65xpires_in_secs\x18\x01 \x01(\x04\"8\n\x13\x43reateTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\x12\x12\n\nexpires_at\x18\x02 \x01(\x03\"\x13\n\x11ListTokensRequest\"<\n\x12ListTokensResponse\x12&\n\x06tokens\x18\x01 \x03(\x0b\x32\x16.boxd.api.v1.TokenInfo\"@\n\tTokenInfo\x12\x0b\n\x03jti\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x03\x12\x12\n\nexpires_at\x18\x03 \x01(\x03\"!\n\x12RevokeTokenRequest\x12\x0b\n\x03jti\x18\x01 \x01(\t\"\x15\n\x13RevokeTokenResponse\"E\n\x11LinkSshKeyRequest\x12\x0e\n\x06pubkey\x18\x01 \x01(\t\x12\x11\n\tdevice_id\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\"\x14\n\x12LinkSshKeyResponse\"\x8e\x01\n\rForkVmRequest\x12\x14\n\x0csource_vm_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12%\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\x15.boxd.api.v1.VmConfig\x12\x0e\n\x06shared\x18\x04 \x01(\x08\x12\x10\n\x08networks\x18\x05 \x03(\t\x12\x10\n\x08isolated\x18\x06 \x01(\x08\"\x97\x01\n\x0e\x46orkVmResponse\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tpublic_ip\x18\x03 \x01(\t\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\r\n\x05image\x18\x05 \x01(\t\x12\x0e\n\x06status\x18\x06 \x01(\t\x12\x13\n\x0b\x66orked_from\x18\x07 \x01(\t\x12\x14\n\x0c\x62oot_time_ms\x18\x08 \x01(\x04\"5\n\x12ListProxiesRequest\x12\x13\n\x07vm_name\x18\x01 \x01(\tB\x02\x18\x01\x12\n\n\x02vm\x18\x02 \x01(\t\">\n\x13ListProxiesResponse\x12\'\n\x07proxies\x18\x01 \x03(\x0b\x32\x16.boxd.api.v1.ProxyInfo\"\xac\x01\n\tProxyInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\x12\x0e\n\x06\x64omain\x18\x03 \x01(\t\x12\x0c\n\x04port\x18\x04 \x01(\r\x12\x12\n\nis_default\x18\x05 \x01(\x08\x12\x14\n\x0cport_display\x18\x06 \x01(\t\x12\r\n\x05vm_id\x18\x07 \x01(\t\x12\x11\n\tport_mode\x18\x08 \x01(\t\x12\x16\n\x0e\x65\x66\x66\x65\x63tive_port\x18\t \x01(\r\"\x17\n\x15ListProxyNodesRequest\"E\n\x16ListProxyNodesResponse\x12+\n\x07proxies\x18\x01 \x03(\x0b\x32\x1a.boxd.api.v1.ProxyNodeInfo\")\n\rProxyNodeInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04ipv4\x18\x02 \x01(\t\"Q\n\x12\x43reateProxyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x07vm_name\x18\x02 \x01(\tB\x02\x18\x01\x12\x0c\n\x04port\x18\x03 \x01(\r\x12\n\n\x02vm\x18\x04 \x01(\t\"R\n\x13\x43reateProxyResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\x12\x0e\n\x06\x64omain\x18\x03 \x01(\t\x12\x0c\n\x04port\x18\x04 \x01(\r\"C\n\x12\x44\x65leteProxyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x07vm_name\x18\x02 \x01(\tB\x02\x18\x01\x12\n\n\x02vm\x18\x03 \x01(\t\"\x15\n\x13\x44\x65leteProxyResponse\"R\n\x13SetProxyPortRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x07vm_name\x18\x02 \x01(\tB\x02\x18\x01\x12\x0c\n\x04port\x18\x03 \x01(\t\x12\n\n\x02vm\x18\x04 \x01(\t\"\x16\n\x14SetProxyPortResponse\">\n\x11UploadFileRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"+\n\x12UploadFileResponse\x12\x15\n\rbytes_written\x18\x01 \x01(\x04\"P\n\x0fUploadFileChunk\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"2\n\x13\x44ownloadFileRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"$\n\x14\x44ownloadFileResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"1\n\x15\x43reateSnapshotRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\\\n\x16\x43reateSnapshotResponse\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12\x0e\n\x06status\x18\x04 \x01(\t\"#\n\x14ListSnapshotsRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\"E\n\x15ListSnapshotsResponse\x12,\n\tsnapshots\x18\x01 \x03(\x0b\x32\x19.boxd.api.v1.SnapshotInfo\"/\n\x12GetSnapshotRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03org\x18\x02 \x01(\t\"B\n\x13GetSnapshotResponse\x12+\n\x08snapshot\x18\x01 \x01(\x0b\x32\x19.boxd.api.v1.SnapshotInfo\"2\n\x15\x44\x65leteSnapshotRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03org\x18\x02 \x01(\t\"\x18\n\x16\x44\x65leteSnapshotResponse\"\x83\x01\n\x1b\x43reateVmFromSnapshotRequest\x12\x10\n\x08snapshot\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12%\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\x15.boxd.api.v1.VmConfig\x12\x0b\n\x03org\x18\x04 \x01(\t\x12\x10\n\x08isolated\x18\x05 \x01(\x08\"\xf3\x01\n\x0cSnapshotInfo\x12\x13\n\x0bsnapshot_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x12\n\nsize_bytes\x18\x07 \x01(\x04\x12\x12\n\nupdated_at\x18\x08 \x01(\x03\x12\x0c\n\x04vcpu\x18\t \x01(\r\x12\x14\n\x0cmemory_bytes\x18\n \x01(\x04\x12\x11\n\tuse_count\x18\x0b \x01(\x04\x12\x12\n\ncreated_at\x18\x0c \x01(\x03J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07R\x0eready_replicasR\x10\x64\x65sired_replicas\"3\n\x17\x43reateCheckpointRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"O\n\x18\x43reateCheckpointResponse\x12\x15\n\rcheckpoint_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\"$\n\x16ListCheckpointsRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"K\n\x17ListCheckpointsResponse\x12\x30\n\x0b\x63heckpoints\x18\x01 \x03(\x0b\x32\x1b.boxd.api.v1.CheckpointInfo\"3\n\x17\x44\x65leteCheckpointRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x1a\n\x18\x44\x65leteCheckpointResponse\"4\n\x18RestoreCheckpointRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x1b\n\x19RestoreCheckpointResponse\"\x94\x01\n\x0e\x43heckpointInfo\x12\x15\n\rcheckpoint_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x12\n\nsize_bytes\x18\x04 \x01(\x04\x12\x12\n\ncreated_at\x18\x05 \x01(\x03\x12\x12\n\ncreated_by\x18\x06 \x01(\t\x12\x11\n\tavailable\x18\x07 \x01(\x08\";\n\x11\x43reateDiskRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nsize_bytes\x18\x02 \x01(\x04J\x04\x08\x03\x10\x04\"]\n\x12\x43reateDiskResponse\x12\x0f\n\x07\x64isk_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x0e\n\x06status\x18\x04 \x01(\tJ\x04\x08\x05\x10\x06\"\x12\n\x10ListDisksRequest\"9\n\x11ListDisksResponse\x12$\n\x05\x64isks\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.DiskInfo\"\xaa\x01\n\x08\x44iskInfo\x12\x0f\n\x07\x64isk_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x30\n\x0b\x61ttachments\x18\x06 \x03(\x0b\x32\x1b.boxd.api.v1.DiskAttachment\x12\x12\n\ncreated_at\x18\x08 \x01(\x03J\x04\x08\x05\x10\x06J\x04\x08\x07\x10\x08R\tworker_id\"X\n\x0e\x44iskAttachment\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\x12\x12\n\nmount_path\x18\x03 \x01(\t\x12\x12\n\nmount_mode\x18\x04 \x01(\t\"Z\n\x11\x41ttachDiskRequest\x12\x0f\n\x07\x64isk_id\x18\x01 \x01(\t\x12\r\n\x05vm_id\x18\x02 \x01(\t\x12\x12\n\nmount_path\x18\x03 \x01(\t\x12\x11\n\tread_only\x18\x04 \x01(\x08\"\x14\n\x12\x41ttachDiskResponse\"3\n\x11\x44\x65tachDiskRequest\x12\x0f\n\x07\x64isk_id\x18\x01 \x01(\t\x12\r\n\x05vm_id\x18\x02 \x01(\t\"\x14\n\x12\x44\x65tachDiskResponse\"%\n\x12\x44\x65stroyDiskRequest\x12\x0f\n\x07\x64isk_id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65stroyDiskResponse\"C\n\x1cSetAutoSuspendTimeoutRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x14\n\x0ctimeout_secs\x18\x02 \x01(\r\"\x1f\n\x1dSetAutoSuspendTimeoutResponse\"E\n\x1eSetAutoHibernateTimeoutRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x14\n\x0ctimeout_secs\x18\x02 \x01(\r\"!\n\x1fSetAutoHibernateTimeoutResponse\"W\n\x13\x43reateApiKeyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0f\x65xpires_in_secs\x18\x02 \x01(\x04\x12\x0b\n\x03org\x18\x03 \x01(\t\x12\x0c\n\x04kind\x18\x04 \x01(\t\"G\n\x14\x43reateApiKeyResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61pi_key\x18\x02 \x01(\t\x12\x12\n\nexpires_at\x18\x03 \x01(\x03\"\x14\n\x12ListApiKeysRequest\"<\n\x13ListApiKeysResponse\x12%\n\x04keys\x18\x01 \x03(\x0b\x32\x17.boxd.api.v1.ApiKeyInfo\"\x93\x01\n\nApiKeyInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nkey_prefix\x18\x03 \x01(\t\x12\x12\n\ncreated_at\x18\x04 \x01(\x03\x12\x14\n\x0clast_used_at\x18\x05 \x01(\x03\x12\x12\n\nexpires_at\x18\x06 \x01(\x03\x12\x0b\n\x03org\x18\x07 \x01(\t\x12\x0c\n\x04kind\x18\x08 \x01(\t\"!\n\x13\x44\x65leteApiKeyRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x16\n\x14\x44\x65leteApiKeyResponse\"\x1f\n\x0eShareVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x11\n\x0fShareVmResponse\"\x11\n\x0fListOrgsRequest\"W\n\x10ListOrgsResponse\x12%\n\x04orgs\x18\x01 \x03(\x0b\x32\x17.boxd.api.v1.OrgSummary\x12\x16\n\x0e\x64\x65\x66\x61ult_org_id\x18\x03 \x01(\tJ\x04\x08\x02\x10\x03\"F\n\nOrgSummary\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08is_admin\x18\x03 \x01(\x08\x12\x0c\n\x04slug\x18\x04 \x01(\t\"#\n\x14GetOrgBillingRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\"\xb1\x01\n\x15GetOrgBillingResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08is_admin\x18\x03 \x01(\x08\x12\x0f\n\x07max_vms\x18\x04 \x01(\r\x12\x0c\n\x04vcpu\x18\x05 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x06 \x01(\x04\x12\x10\n\x08vm_count\x18\x07 \x01(\r\x12%\n\x03vms\x18\x08 \x03(\x0b\x32\x18.boxd.api.v1.OrgBilledVm\"X\n\x0bOrgBilledVm\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x0f\n\x07\x62illing\x18\x05 \x01(\tJ\x04\x08\x04\x10\x05R\x05shape\"!\n\x10UnshareVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x13\n\x11UnshareVmResponse2\xf8,\n\x07\x42oxdApi\x12G\n\x08\x43reateVm\x12\x1c.boxd.api.v1.CreateVmRequest\x1a\x1d.boxd.api.v1.CreateVmResponse\x12J\n\tDestroyVm\x12\x1d.boxd.api.v1.DestroyVmRequest\x1a\x1e.boxd.api.v1.DestroyVmResponse\x12G\n\x08RenameVm\x12\x1c.boxd.api.v1.RenameVmRequest\x1a\x1d.boxd.api.v1.RenameVmResponse\x12V\n\rSetVmNetworks\x12!.boxd.api.v1.SetVmNetworksRequest\x1a\".boxd.api.v1.SetVmNetworksResponse\x12\x44\n\x07StartVm\x12\x1b.boxd.api.v1.StartVmRequest\x1a\x1c.boxd.api.v1.StartVmResponse\x12\x41\n\x06StopVm\x12\x1a.boxd.api.v1.StopVmRequest\x1a\x1b.boxd.api.v1.StopVmResponse\x12G\n\x08RebootVm\x12\x1c.boxd.api.v1.RebootVmRequest\x1a\x1d.boxd.api.v1.RebootVmResponse\x12>\n\x05GetVm\x12\x19.boxd.api.v1.GetVmRequest\x1a\x1a.boxd.api.v1.GetVmResponse\x12\x44\n\x07ListVms\x12\x1b.boxd.api.v1.ListVmsRequest\x1a\x1c.boxd.api.v1.ListVmsResponse\x12V\n\rSuggestVmName\x12!.boxd.api.v1.SuggestVmNameRequest\x1a\".boxd.api.v1.SuggestVmNameResponse\x12M\n\nExposePort\x12\x1e.boxd.api.v1.ExposePortRequest\x1a\x1f.boxd.api.v1.ExposePortResponse\x12S\n\x0cUnexposePort\x12 .boxd.api.v1.UnexposePortRequest\x1a!.boxd.api.v1.UnexposePortResponse\x12_\n\x10ListExposedPorts\x12$.boxd.api.v1.ListExposedPortsRequest\x1a%.boxd.api.v1.ListExposedPortsResponse\x12;\n\x06SetVar\x12\x1a.boxd.api.v1.SetVarRequest\x1a\x15.boxd.api.v1.VarReply\x12\x43\n\x08ListVars\x12\x1c.boxd.api.v1.ListVarsRequest\x1a\x19.boxd.api.v1.VarListReply\x12\x41\n\tRemoveVar\x12\x1d.boxd.api.v1.RemoveVarRequest\x1a\x15.boxd.api.v1.VarReply\x12K\n\x0eSetSecretScope\x12\".boxd.api.v1.SetSecretScopeRequest\x1a\x15.boxd.api.v1.VarReply\x12\x45\n\nStreamLogs\x12\x1e.boxd.api.v1.StreamLogsRequest\x1a\x15.boxd.api.v1.LogChunk0\x01\x12:\n\x04\x45xec\x12\x16.boxd.api.v1.ExecChunk\x1a\x16.boxd.api.v1.ExecChunk(\x01\x30\x01\x12V\n\rCreateNetwork\x12!.boxd.api.v1.CreateNetworkRequest\x1a\".boxd.api.v1.CreateNetworkResponse\x12S\n\x0cListNetworks\x12 .boxd.api.v1.ListNetworksRequest\x1a!.boxd.api.v1.ListNetworksResponse\x12M\n\nBindDomain\x12\x1e.boxd.api.v1.BindDomainRequest\x1a\x1f.boxd.api.v1.BindDomainResponse\x12S\n\x0cUnbindDomain\x12 .boxd.api.v1.UnbindDomainRequest\x1a!.boxd.api.v1.UnbindDomainResponse\x12P\n\x0bListDomains\x12\x1f.boxd.api.v1.ListDomainsRequest\x1a .boxd.api.v1.ListDomainsResponse\x12\x41\n\x06Whoami\x12\x1a.boxd.api.v1.WhoamiRequest\x1a\x1b.boxd.api.v1.WhoamiResponse\x12P\n\x0b\x43reateToken\x12\x1f.boxd.api.v1.CreateTokenRequest\x1a .boxd.api.v1.CreateTokenResponse\x12M\n\nListTokens\x12\x1e.boxd.api.v1.ListTokensRequest\x1a\x1f.boxd.api.v1.ListTokensResponse\x12P\n\x0bRevokeToken\x12\x1f.boxd.api.v1.RevokeTokenRequest\x1a .boxd.api.v1.RevokeTokenResponse\x12M\n\nLinkSshKey\x12\x1e.boxd.api.v1.LinkSshKeyRequest\x1a\x1f.boxd.api.v1.LinkSshKeyResponse\x12J\n\tGetConfig\x12\x1d.boxd.api.v1.GetConfigRequest\x1a\x1e.boxd.api.v1.GetConfigResponse\x12\x41\n\x06\x46orkVm\x12\x1a.boxd.api.v1.ForkVmRequest\x1a\x1b.boxd.api.v1.ForkVmResponse\x12P\n\x0bListProxies\x12\x1f.boxd.api.v1.ListProxiesRequest\x1a .boxd.api.v1.ListProxiesResponse\x12Y\n\x0eListProxyNodes\x12\".boxd.api.v1.ListProxyNodesRequest\x1a#.boxd.api.v1.ListProxyNodesResponse\x12P\n\x0b\x43reateProxy\x12\x1f.boxd.api.v1.CreateProxyRequest\x1a .boxd.api.v1.CreateProxyResponse\x12P\n\x0b\x44\x65leteProxy\x12\x1f.boxd.api.v1.DeleteProxyRequest\x1a .boxd.api.v1.DeleteProxyResponse\x12S\n\x0cSetProxyPort\x12 .boxd.api.v1.SetProxyPortRequest\x1a!.boxd.api.v1.SetProxyPortResponse\x12M\n\nUploadFile\x12\x1e.boxd.api.v1.UploadFileRequest\x1a\x1f.boxd.api.v1.UploadFileResponse\x12S\n\x10UploadFileStream\x12\x1c.boxd.api.v1.UploadFileChunk\x1a\x1f.boxd.api.v1.UploadFileResponse(\x01\x12S\n\x0c\x44ownloadFile\x12 .boxd.api.v1.DownloadFileRequest\x1a!.boxd.api.v1.DownloadFileResponse\x12J\n\tSuspendVm\x12\x1d.boxd.api.v1.SuspendVmRequest\x1a\x1e.boxd.api.v1.SuspendVmResponse\x12G\n\x08ResumeVm\x12\x1c.boxd.api.v1.ResumeVmRequest\x1a\x1d.boxd.api.v1.ResumeVmResponse\x12P\n\x0bHibernateVm\x12\x1f.boxd.api.v1.HibernateVmRequest\x1a .boxd.api.v1.HibernateVmResponse\x12\x41\n\x06WakeVm\x12\x1a.boxd.api.v1.WakeVmRequest\x1a\x1b.boxd.api.v1.WakeVmResponse\x12Y\n\x0e\x43reateSnapshot\x12\".boxd.api.v1.CreateSnapshotRequest\x1a#.boxd.api.v1.CreateSnapshotResponse\x12V\n\rListSnapshots\x12!.boxd.api.v1.ListSnapshotsRequest\x1a\".boxd.api.v1.ListSnapshotsResponse\x12P\n\x0bGetSnapshot\x12\x1f.boxd.api.v1.GetSnapshotRequest\x1a .boxd.api.v1.GetSnapshotResponse\x12Y\n\x0e\x44\x65leteSnapshot\x12\".boxd.api.v1.DeleteSnapshotRequest\x1a#.boxd.api.v1.DeleteSnapshotResponse\x12_\n\x14\x43reateVmFromSnapshot\x12(.boxd.api.v1.CreateVmFromSnapshotRequest\x1a\x1d.boxd.api.v1.CreateVmResponse\x12_\n\x10\x43reateCheckpoint\x12$.boxd.api.v1.CreateCheckpointRequest\x1a%.boxd.api.v1.CreateCheckpointResponse\x12\\\n\x0fListCheckpoints\x12#.boxd.api.v1.ListCheckpointsRequest\x1a$.boxd.api.v1.ListCheckpointsResponse\x12_\n\x10\x44\x65leteCheckpoint\x12$.boxd.api.v1.DeleteCheckpointRequest\x1a%.boxd.api.v1.DeleteCheckpointResponse\x12\x62\n\x11RestoreCheckpoint\x12%.boxd.api.v1.RestoreCheckpointRequest\x1a&.boxd.api.v1.RestoreCheckpointResponse\x12n\n\x15SetAutoSuspendTimeout\x12).boxd.api.v1.SetAutoSuspendTimeoutRequest\x1a*.boxd.api.v1.SetAutoSuspendTimeoutResponse\x12t\n\x17SetAutoHibernateTimeout\x12+.boxd.api.v1.SetAutoHibernateTimeoutRequest\x1a,.boxd.api.v1.SetAutoHibernateTimeoutResponse\x12M\n\nCreateDisk\x12\x1e.boxd.api.v1.CreateDiskRequest\x1a\x1f.boxd.api.v1.CreateDiskResponse\x12J\n\tListDisks\x12\x1d.boxd.api.v1.ListDisksRequest\x1a\x1e.boxd.api.v1.ListDisksResponse\x12M\n\nAttachDisk\x12\x1e.boxd.api.v1.AttachDiskRequest\x1a\x1f.boxd.api.v1.AttachDiskResponse\x12M\n\nDetachDisk\x12\x1e.boxd.api.v1.DetachDiskRequest\x1a\x1f.boxd.api.v1.DetachDiskResponse\x12P\n\x0b\x44\x65stroyDisk\x12\x1f.boxd.api.v1.DestroyDiskRequest\x1a .boxd.api.v1.DestroyDiskResponse\x12S\n\x0c\x43reateApiKey\x12 .boxd.api.v1.CreateApiKeyRequest\x1a!.boxd.api.v1.CreateApiKeyResponse\x12P\n\x0bListApiKeys\x12\x1f.boxd.api.v1.ListApiKeysRequest\x1a .boxd.api.v1.ListApiKeysResponse\x12S\n\x0c\x44\x65leteApiKey\x12 .boxd.api.v1.DeleteApiKeyRequest\x1a!.boxd.api.v1.DeleteApiKeyResponse\x12J\n\tListPlans\x12\x1d.boxd.api.v1.ListPlansRequest\x1a\x1e.boxd.api.v1.ListPlansResponse\x12M\n\nGetBilling\x12\x1e.boxd.api.v1.GetBillingRequest\x1a\x1f.boxd.api.v1.GetBillingResponse\x12n\n\x15\x43reateCheckoutSession\x12).boxd.api.v1.CreateCheckoutSessionRequest\x1a*.boxd.api.v1.CreateCheckoutSessionResponse\x12}\n\x1a\x43reateBillingPortalSession\x12..boxd.api.v1.CreateBillingPortalSessionRequest\x1a/.boxd.api.v1.CreateBillingPortalSessionResponse\x12\x44\n\x07ShareVm\x12\x1b.boxd.api.v1.ShareVmRequest\x1a\x1c.boxd.api.v1.ShareVmResponse\x12J\n\tUnshareVm\x12\x1d.boxd.api.v1.UnshareVmRequest\x1a\x1e.boxd.api.v1.UnshareVmResponse\x12G\n\x08ListOrgs\x12\x1c.boxd.api.v1.ListOrgsRequest\x1a\x1d.boxd.api.v1.ListOrgsResponse\x12V\n\rGetOrgBilling\x12!.boxd.api.v1.GetOrgBillingRequest\x1a\".boxd.api.v1.GetOrgBillingResponseb\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'api_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_EXPOSEPORTREQUEST'].fields_by_name['vm_id']._loaded_options = None
|
|
35
|
+
_globals['_EXPOSEPORTREQUEST'].fields_by_name['vm_id']._serialized_options = b'\030\001'
|
|
36
|
+
_globals['_UNEXPOSEPORTREQUEST'].fields_by_name['vm_id']._loaded_options = None
|
|
37
|
+
_globals['_UNEXPOSEPORTREQUEST'].fields_by_name['vm_id']._serialized_options = b'\030\001'
|
|
38
|
+
_globals['_LISTPROXIESREQUEST'].fields_by_name['vm_name']._loaded_options = None
|
|
39
|
+
_globals['_LISTPROXIESREQUEST'].fields_by_name['vm_name']._serialized_options = b'\030\001'
|
|
40
|
+
_globals['_CREATEPROXYREQUEST'].fields_by_name['vm_name']._loaded_options = None
|
|
41
|
+
_globals['_CREATEPROXYREQUEST'].fields_by_name['vm_name']._serialized_options = b'\030\001'
|
|
42
|
+
_globals['_DELETEPROXYREQUEST'].fields_by_name['vm_name']._loaded_options = None
|
|
43
|
+
_globals['_DELETEPROXYREQUEST'].fields_by_name['vm_name']._serialized_options = b'\030\001'
|
|
44
|
+
_globals['_SETPROXYPORTREQUEST'].fields_by_name['vm_name']._loaded_options = None
|
|
45
|
+
_globals['_SETPROXYPORTREQUEST'].fields_by_name['vm_name']._serialized_options = b'\030\001'
|
|
46
|
+
_globals['_VMCONFIG']._serialized_start=27
|
|
47
|
+
_globals['_VMCONFIG']._serialized_end=218
|
|
48
|
+
_globals['_SRFCONFIG']._serialized_start=220
|
|
49
|
+
_globals['_SRFCONFIG']._serialized_end=336
|
|
50
|
+
_globals['_NETWORKCONFIG']._serialized_start=338
|
|
51
|
+
_globals['_NETWORKCONFIG']._serialized_end=408
|
|
52
|
+
_globals['_PROXYENTRY']._serialized_start=410
|
|
53
|
+
_globals['_PROXYENTRY']._serialized_end=450
|
|
54
|
+
_globals['_VOLUMEMOUNT']._serialized_start=452
|
|
55
|
+
_globals['_VOLUMEMOUNT']._serialized_end=521
|
|
56
|
+
_globals['_CREATEVMREQUEST']._serialized_start=524
|
|
57
|
+
_globals['_CREATEVMREQUEST']._serialized_end=761
|
|
58
|
+
_globals['_ENVVAR']._serialized_start=763
|
|
59
|
+
_globals['_ENVVAR']._serialized_end=799
|
|
60
|
+
_globals['_CREATEVMRESPONSE']._serialized_start=802
|
|
61
|
+
_globals['_CREATEVMRESPONSE']._serialized_end=934
|
|
62
|
+
_globals['_DESTROYVMREQUEST']._serialized_start=936
|
|
63
|
+
_globals['_DESTROYVMREQUEST']._serialized_end=969
|
|
64
|
+
_globals['_DESTROYVMRESPONSE']._serialized_start=971
|
|
65
|
+
_globals['_DESTROYVMRESPONSE']._serialized_end=990
|
|
66
|
+
_globals['_SUGGESTVMNAMEREQUEST']._serialized_start=992
|
|
67
|
+
_globals['_SUGGESTVMNAMEREQUEST']._serialized_end=1014
|
|
68
|
+
_globals['_SUGGESTVMNAMERESPONSE']._serialized_start=1016
|
|
69
|
+
_globals['_SUGGESTVMNAMERESPONSE']._serialized_end=1053
|
|
70
|
+
_globals['_RENAMEVMREQUEST']._serialized_start=1055
|
|
71
|
+
_globals['_RENAMEVMREQUEST']._serialized_end=1105
|
|
72
|
+
_globals['_RENAMEVMRESPONSE']._serialized_start=1107
|
|
73
|
+
_globals['_RENAMEVMRESPONSE']._serialized_end=1139
|
|
74
|
+
_globals['_SETVMNETWORKSREQUEST']._serialized_start=1141
|
|
75
|
+
_globals['_SETVMNETWORKSREQUEST']._serialized_end=1196
|
|
76
|
+
_globals['_SETVMNETWORKSRESPONSE']._serialized_start=1198
|
|
77
|
+
_globals['_SETVMNETWORKSRESPONSE']._serialized_end=1239
|
|
78
|
+
_globals['_EXPOSEPORTREQUEST']._serialized_start=1241
|
|
79
|
+
_globals['_EXPOSEPORTREQUEST']._serialized_end=1326
|
|
80
|
+
_globals['_EXPOSEPORTRESPONSE']._serialized_start=1328
|
|
81
|
+
_globals['_EXPOSEPORTRESPONSE']._serialized_end=1449
|
|
82
|
+
_globals['_UNEXPOSEPORTREQUEST']._serialized_start=1451
|
|
83
|
+
_globals['_UNEXPOSEPORTREQUEST']._serialized_end=1520
|
|
84
|
+
_globals['_UNEXPOSEPORTRESPONSE']._serialized_start=1522
|
|
85
|
+
_globals['_UNEXPOSEPORTRESPONSE']._serialized_end=1594
|
|
86
|
+
_globals['_LISTEXPOSEDPORTSREQUEST']._serialized_start=1596
|
|
87
|
+
_globals['_LISTEXPOSEDPORTSREQUEST']._serialized_end=1633
|
|
88
|
+
_globals['_LISTEXPOSEDPORTSRESPONSE']._serialized_start=1635
|
|
89
|
+
_globals['_LISTEXPOSEDPORTSRESPONSE']._serialized_end=1712
|
|
90
|
+
_globals['_SETVARREQUEST']._serialized_start=1714
|
|
91
|
+
_globals['_SETVARREQUEST']._serialized_end=1806
|
|
92
|
+
_globals['_VARREPLY']._serialized_start=1808
|
|
93
|
+
_globals['_VARREPLY']._serialized_end=1835
|
|
94
|
+
_globals['_LISTVARSREQUEST']._serialized_start=1837
|
|
95
|
+
_globals['_LISTVARSREQUEST']._serialized_end=1881
|
|
96
|
+
_globals['_VARITEM']._serialized_start=1883
|
|
97
|
+
_globals['_VARITEM']._serialized_end=1962
|
|
98
|
+
_globals['_VARLISTREPLY']._serialized_start=1964
|
|
99
|
+
_globals['_VARLISTREPLY']._serialized_end=2014
|
|
100
|
+
_globals['_REMOVEVARREQUEST']._serialized_start=2016
|
|
101
|
+
_globals['_REMOVEVARREQUEST']._serialized_end=2090
|
|
102
|
+
_globals['_SETSECRETSCOPEREQUEST']._serialized_start=2092
|
|
103
|
+
_globals['_SETSECRETSCOPEREQUEST']._serialized_end=2168
|
|
104
|
+
_globals['_STARTVMREQUEST']._serialized_start=2170
|
|
105
|
+
_globals['_STARTVMREQUEST']._serialized_end=2201
|
|
106
|
+
_globals['_STARTVMRESPONSE']._serialized_start=2203
|
|
107
|
+
_globals['_STARTVMRESPONSE']._serialized_end=2220
|
|
108
|
+
_globals['_STOPVMREQUEST']._serialized_start=2222
|
|
109
|
+
_globals['_STOPVMREQUEST']._serialized_end=2252
|
|
110
|
+
_globals['_STOPVMRESPONSE']._serialized_start=2254
|
|
111
|
+
_globals['_STOPVMRESPONSE']._serialized_end=2270
|
|
112
|
+
_globals['_REBOOTVMREQUEST']._serialized_start=2272
|
|
113
|
+
_globals['_REBOOTVMREQUEST']._serialized_end=2304
|
|
114
|
+
_globals['_REBOOTVMRESPONSE']._serialized_start=2306
|
|
115
|
+
_globals['_REBOOTVMRESPONSE']._serialized_end=2324
|
|
116
|
+
_globals['_SUSPENDVMREQUEST']._serialized_start=2326
|
|
117
|
+
_globals['_SUSPENDVMREQUEST']._serialized_end=2359
|
|
118
|
+
_globals['_SUSPENDVMRESPONSE']._serialized_start=2361
|
|
119
|
+
_globals['_SUSPENDVMRESPONSE']._serialized_end=2400
|
|
120
|
+
_globals['_RESUMEVMREQUEST']._serialized_start=2402
|
|
121
|
+
_globals['_RESUMEVMREQUEST']._serialized_end=2434
|
|
122
|
+
_globals['_RESUMEVMRESPONSE']._serialized_start=2436
|
|
123
|
+
_globals['_RESUMEVMRESPONSE']._serialized_end=2473
|
|
124
|
+
_globals['_HIBERNATEVMREQUEST']._serialized_start=2475
|
|
125
|
+
_globals['_HIBERNATEVMREQUEST']._serialized_end=2510
|
|
126
|
+
_globals['_HIBERNATEVMRESPONSE']._serialized_start=2512
|
|
127
|
+
_globals['_HIBERNATEVMRESPONSE']._serialized_end=2533
|
|
128
|
+
_globals['_WAKEVMREQUEST']._serialized_start=2535
|
|
129
|
+
_globals['_WAKEVMREQUEST']._serialized_end=2565
|
|
130
|
+
_globals['_WAKEVMRESPONSE']._serialized_start=2567
|
|
131
|
+
_globals['_WAKEVMRESPONSE']._serialized_end=2583
|
|
132
|
+
_globals['_GETVMREQUEST']._serialized_start=2585
|
|
133
|
+
_globals['_GETVMREQUEST']._serialized_end=2614
|
|
134
|
+
_globals['_GETVMRESPONSE']._serialized_start=2617
|
|
135
|
+
_globals['_GETVMRESPONSE']._serialized_end=3208
|
|
136
|
+
_globals['_VMSOURCE']._serialized_start=3210
|
|
137
|
+
_globals['_VMSOURCE']._serialized_end=3277
|
|
138
|
+
_globals['_LISTVMSREQUEST']._serialized_start=3279
|
|
139
|
+
_globals['_LISTVMSREQUEST']._serialized_end=3330
|
|
140
|
+
_globals['_LISTVMSRESPONSE']._serialized_start=3332
|
|
141
|
+
_globals['_LISTVMSRESPONSE']._serialized_end=3412
|
|
142
|
+
_globals['_STREAMLOGSREQUEST']._serialized_start=3414
|
|
143
|
+
_globals['_STREAMLOGSREQUEST']._serialized_end=3464
|
|
144
|
+
_globals['_LOGCHUNK']._serialized_start=3466
|
|
145
|
+
_globals['_LOGCHUNK']._serialized_end=3490
|
|
146
|
+
_globals['_EXECCHUNK']._serialized_start=3493
|
|
147
|
+
_globals['_EXECCHUNK']._serialized_end=3686
|
|
148
|
+
_globals['_CREATENETWORKREQUEST']._serialized_start=3688
|
|
149
|
+
_globals['_CREATENETWORKREQUEST']._serialized_end=3724
|
|
150
|
+
_globals['_CREATENETWORKRESPONSE']._serialized_start=3726
|
|
151
|
+
_globals['_CREATENETWORKRESPONSE']._serialized_end=3769
|
|
152
|
+
_globals['_LISTNETWORKSREQUEST']._serialized_start=3771
|
|
153
|
+
_globals['_LISTNETWORKSREQUEST']._serialized_end=3792
|
|
154
|
+
_globals['_LISTNETWORKSRESPONSE']._serialized_start=3794
|
|
155
|
+
_globals['_LISTNETWORKSRESPONSE']._serialized_end=3860
|
|
156
|
+
_globals['_NETWORKINFO']._serialized_start=3862
|
|
157
|
+
_globals['_NETWORKINFO']._serialized_end=3927
|
|
158
|
+
_globals['_BINDDOMAINREQUEST']._serialized_start=3929
|
|
159
|
+
_globals['_BINDDOMAINREQUEST']._serialized_end=3979
|
|
160
|
+
_globals['_BINDDOMAINRESPONSE']._serialized_start=3981
|
|
161
|
+
_globals['_BINDDOMAINRESPONSE']._serialized_end=4001
|
|
162
|
+
_globals['_UNBINDDOMAINREQUEST']._serialized_start=4003
|
|
163
|
+
_globals['_UNBINDDOMAINREQUEST']._serialized_end=4040
|
|
164
|
+
_globals['_UNBINDDOMAINRESPONSE']._serialized_start=4042
|
|
165
|
+
_globals['_UNBINDDOMAINRESPONSE']._serialized_end=4064
|
|
166
|
+
_globals['_LISTDOMAINSREQUEST']._serialized_start=4066
|
|
167
|
+
_globals['_LISTDOMAINSREQUEST']._serialized_end=4086
|
|
168
|
+
_globals['_LISTDOMAINSRESPONSE']._serialized_start=4088
|
|
169
|
+
_globals['_LISTDOMAINSRESPONSE']._serialized_end=4151
|
|
170
|
+
_globals['_DOMAININFO']._serialized_start=4153
|
|
171
|
+
_globals['_DOMAININFO']._serialized_end=4196
|
|
172
|
+
_globals['_GETCONFIGREQUEST']._serialized_start=4198
|
|
173
|
+
_globals['_GETCONFIGREQUEST']._serialized_end=4216
|
|
174
|
+
_globals['_GETCONFIGRESPONSE']._serialized_start=4218
|
|
175
|
+
_globals['_GETCONFIGRESPONSE']._serialized_end=4274
|
|
176
|
+
_globals['_WHOAMIREQUEST']._serialized_start=4276
|
|
177
|
+
_globals['_WHOAMIREQUEST']._serialized_end=4291
|
|
178
|
+
_globals['_WHOAMIRESPONSE']._serialized_start=4294
|
|
179
|
+
_globals['_WHOAMIRESPONSE']._serialized_end=4447
|
|
180
|
+
_globals['_BILLINGINFO']._serialized_start=4450
|
|
181
|
+
_globals['_BILLINGINFO']._serialized_end=4650
|
|
182
|
+
_globals['_LISTPLANSREQUEST']._serialized_start=4652
|
|
183
|
+
_globals['_LISTPLANSREQUEST']._serialized_end=4670
|
|
184
|
+
_globals['_LISTPLANSRESPONSE']._serialized_start=4672
|
|
185
|
+
_globals['_LISTPLANSRESPONSE']._serialized_end=4729
|
|
186
|
+
_globals['_PLANINFO']._serialized_start=4732
|
|
187
|
+
_globals['_PLANINFO']._serialized_end=4865
|
|
188
|
+
_globals['_GETBILLINGREQUEST']._serialized_start=4867
|
|
189
|
+
_globals['_GETBILLINGREQUEST']._serialized_end=4886
|
|
190
|
+
_globals['_GETBILLINGRESPONSE']._serialized_start=4888
|
|
191
|
+
_globals['_GETBILLINGRESPONSE']._serialized_end=4951
|
|
192
|
+
_globals['_CREATECHECKOUTSESSIONREQUEST']._serialized_start=4953
|
|
193
|
+
_globals['_CREATECHECKOUTSESSIONREQUEST']._serialized_end=5037
|
|
194
|
+
_globals['_CREATECHECKOUTSESSIONRESPONSE']._serialized_start=5039
|
|
195
|
+
_globals['_CREATECHECKOUTSESSIONRESPONSE']._serialized_end=5092
|
|
196
|
+
_globals['_CREATEBILLINGPORTALSESSIONREQUEST']._serialized_start=5094
|
|
197
|
+
_globals['_CREATEBILLINGPORTALSESSIONREQUEST']._serialized_end=5149
|
|
198
|
+
_globals['_CREATEBILLINGPORTALSESSIONRESPONSE']._serialized_start=5151
|
|
199
|
+
_globals['_CREATEBILLINGPORTALSESSIONRESPONSE']._serialized_end=5207
|
|
200
|
+
_globals['_CREATETOKENREQUEST']._serialized_start=5209
|
|
201
|
+
_globals['_CREATETOKENREQUEST']._serialized_end=5254
|
|
202
|
+
_globals['_CREATETOKENRESPONSE']._serialized_start=5256
|
|
203
|
+
_globals['_CREATETOKENRESPONSE']._serialized_end=5312
|
|
204
|
+
_globals['_LISTTOKENSREQUEST']._serialized_start=5314
|
|
205
|
+
_globals['_LISTTOKENSREQUEST']._serialized_end=5333
|
|
206
|
+
_globals['_LISTTOKENSRESPONSE']._serialized_start=5335
|
|
207
|
+
_globals['_LISTTOKENSRESPONSE']._serialized_end=5395
|
|
208
|
+
_globals['_TOKENINFO']._serialized_start=5397
|
|
209
|
+
_globals['_TOKENINFO']._serialized_end=5461
|
|
210
|
+
_globals['_REVOKETOKENREQUEST']._serialized_start=5463
|
|
211
|
+
_globals['_REVOKETOKENREQUEST']._serialized_end=5496
|
|
212
|
+
_globals['_REVOKETOKENRESPONSE']._serialized_start=5498
|
|
213
|
+
_globals['_REVOKETOKENRESPONSE']._serialized_end=5519
|
|
214
|
+
_globals['_LINKSSHKEYREQUEST']._serialized_start=5521
|
|
215
|
+
_globals['_LINKSSHKEYREQUEST']._serialized_end=5590
|
|
216
|
+
_globals['_LINKSSHKEYRESPONSE']._serialized_start=5592
|
|
217
|
+
_globals['_LINKSSHKEYRESPONSE']._serialized_end=5612
|
|
218
|
+
_globals['_FORKVMREQUEST']._serialized_start=5615
|
|
219
|
+
_globals['_FORKVMREQUEST']._serialized_end=5757
|
|
220
|
+
_globals['_FORKVMRESPONSE']._serialized_start=5760
|
|
221
|
+
_globals['_FORKVMRESPONSE']._serialized_end=5911
|
|
222
|
+
_globals['_LISTPROXIESREQUEST']._serialized_start=5913
|
|
223
|
+
_globals['_LISTPROXIESREQUEST']._serialized_end=5966
|
|
224
|
+
_globals['_LISTPROXIESRESPONSE']._serialized_start=5968
|
|
225
|
+
_globals['_LISTPROXIESRESPONSE']._serialized_end=6030
|
|
226
|
+
_globals['_PROXYINFO']._serialized_start=6033
|
|
227
|
+
_globals['_PROXYINFO']._serialized_end=6205
|
|
228
|
+
_globals['_LISTPROXYNODESREQUEST']._serialized_start=6207
|
|
229
|
+
_globals['_LISTPROXYNODESREQUEST']._serialized_end=6230
|
|
230
|
+
_globals['_LISTPROXYNODESRESPONSE']._serialized_start=6232
|
|
231
|
+
_globals['_LISTPROXYNODESRESPONSE']._serialized_end=6301
|
|
232
|
+
_globals['_PROXYNODEINFO']._serialized_start=6303
|
|
233
|
+
_globals['_PROXYNODEINFO']._serialized_end=6344
|
|
234
|
+
_globals['_CREATEPROXYREQUEST']._serialized_start=6346
|
|
235
|
+
_globals['_CREATEPROXYREQUEST']._serialized_end=6427
|
|
236
|
+
_globals['_CREATEPROXYRESPONSE']._serialized_start=6429
|
|
237
|
+
_globals['_CREATEPROXYRESPONSE']._serialized_end=6511
|
|
238
|
+
_globals['_DELETEPROXYREQUEST']._serialized_start=6513
|
|
239
|
+
_globals['_DELETEPROXYREQUEST']._serialized_end=6580
|
|
240
|
+
_globals['_DELETEPROXYRESPONSE']._serialized_start=6582
|
|
241
|
+
_globals['_DELETEPROXYRESPONSE']._serialized_end=6603
|
|
242
|
+
_globals['_SETPROXYPORTREQUEST']._serialized_start=6605
|
|
243
|
+
_globals['_SETPROXYPORTREQUEST']._serialized_end=6687
|
|
244
|
+
_globals['_SETPROXYPORTRESPONSE']._serialized_start=6689
|
|
245
|
+
_globals['_SETPROXYPORTRESPONSE']._serialized_end=6711
|
|
246
|
+
_globals['_UPLOADFILEREQUEST']._serialized_start=6713
|
|
247
|
+
_globals['_UPLOADFILEREQUEST']._serialized_end=6775
|
|
248
|
+
_globals['_UPLOADFILERESPONSE']._serialized_start=6777
|
|
249
|
+
_globals['_UPLOADFILERESPONSE']._serialized_end=6820
|
|
250
|
+
_globals['_UPLOADFILECHUNK']._serialized_start=6822
|
|
251
|
+
_globals['_UPLOADFILECHUNK']._serialized_end=6902
|
|
252
|
+
_globals['_DOWNLOADFILEREQUEST']._serialized_start=6904
|
|
253
|
+
_globals['_DOWNLOADFILEREQUEST']._serialized_end=6954
|
|
254
|
+
_globals['_DOWNLOADFILERESPONSE']._serialized_start=6956
|
|
255
|
+
_globals['_DOWNLOADFILERESPONSE']._serialized_end=6992
|
|
256
|
+
_globals['_CREATESNAPSHOTREQUEST']._serialized_start=6994
|
|
257
|
+
_globals['_CREATESNAPSHOTREQUEST']._serialized_end=7043
|
|
258
|
+
_globals['_CREATESNAPSHOTRESPONSE']._serialized_start=7045
|
|
259
|
+
_globals['_CREATESNAPSHOTRESPONSE']._serialized_end=7137
|
|
260
|
+
_globals['_LISTSNAPSHOTSREQUEST']._serialized_start=7139
|
|
261
|
+
_globals['_LISTSNAPSHOTSREQUEST']._serialized_end=7174
|
|
262
|
+
_globals['_LISTSNAPSHOTSRESPONSE']._serialized_start=7176
|
|
263
|
+
_globals['_LISTSNAPSHOTSRESPONSE']._serialized_end=7245
|
|
264
|
+
_globals['_GETSNAPSHOTREQUEST']._serialized_start=7247
|
|
265
|
+
_globals['_GETSNAPSHOTREQUEST']._serialized_end=7294
|
|
266
|
+
_globals['_GETSNAPSHOTRESPONSE']._serialized_start=7296
|
|
267
|
+
_globals['_GETSNAPSHOTRESPONSE']._serialized_end=7362
|
|
268
|
+
_globals['_DELETESNAPSHOTREQUEST']._serialized_start=7364
|
|
269
|
+
_globals['_DELETESNAPSHOTREQUEST']._serialized_end=7414
|
|
270
|
+
_globals['_DELETESNAPSHOTRESPONSE']._serialized_start=7416
|
|
271
|
+
_globals['_DELETESNAPSHOTRESPONSE']._serialized_end=7440
|
|
272
|
+
_globals['_CREATEVMFROMSNAPSHOTREQUEST']._serialized_start=7443
|
|
273
|
+
_globals['_CREATEVMFROMSNAPSHOTREQUEST']._serialized_end=7574
|
|
274
|
+
_globals['_SNAPSHOTINFO']._serialized_start=7577
|
|
275
|
+
_globals['_SNAPSHOTINFO']._serialized_end=7820
|
|
276
|
+
_globals['_CREATECHECKPOINTREQUEST']._serialized_start=7822
|
|
277
|
+
_globals['_CREATECHECKPOINTREQUEST']._serialized_end=7873
|
|
278
|
+
_globals['_CREATECHECKPOINTRESPONSE']._serialized_start=7875
|
|
279
|
+
_globals['_CREATECHECKPOINTRESPONSE']._serialized_end=7954
|
|
280
|
+
_globals['_LISTCHECKPOINTSREQUEST']._serialized_start=7956
|
|
281
|
+
_globals['_LISTCHECKPOINTSREQUEST']._serialized_end=7992
|
|
282
|
+
_globals['_LISTCHECKPOINTSRESPONSE']._serialized_start=7994
|
|
283
|
+
_globals['_LISTCHECKPOINTSRESPONSE']._serialized_end=8069
|
|
284
|
+
_globals['_DELETECHECKPOINTREQUEST']._serialized_start=8071
|
|
285
|
+
_globals['_DELETECHECKPOINTREQUEST']._serialized_end=8122
|
|
286
|
+
_globals['_DELETECHECKPOINTRESPONSE']._serialized_start=8124
|
|
287
|
+
_globals['_DELETECHECKPOINTRESPONSE']._serialized_end=8150
|
|
288
|
+
_globals['_RESTORECHECKPOINTREQUEST']._serialized_start=8152
|
|
289
|
+
_globals['_RESTORECHECKPOINTREQUEST']._serialized_end=8204
|
|
290
|
+
_globals['_RESTORECHECKPOINTRESPONSE']._serialized_start=8206
|
|
291
|
+
_globals['_RESTORECHECKPOINTRESPONSE']._serialized_end=8233
|
|
292
|
+
_globals['_CHECKPOINTINFO']._serialized_start=8236
|
|
293
|
+
_globals['_CHECKPOINTINFO']._serialized_end=8384
|
|
294
|
+
_globals['_CREATEDISKREQUEST']._serialized_start=8386
|
|
295
|
+
_globals['_CREATEDISKREQUEST']._serialized_end=8445
|
|
296
|
+
_globals['_CREATEDISKRESPONSE']._serialized_start=8447
|
|
297
|
+
_globals['_CREATEDISKRESPONSE']._serialized_end=8540
|
|
298
|
+
_globals['_LISTDISKSREQUEST']._serialized_start=8542
|
|
299
|
+
_globals['_LISTDISKSREQUEST']._serialized_end=8560
|
|
300
|
+
_globals['_LISTDISKSRESPONSE']._serialized_start=8562
|
|
301
|
+
_globals['_LISTDISKSRESPONSE']._serialized_end=8619
|
|
302
|
+
_globals['_DISKINFO']._serialized_start=8622
|
|
303
|
+
_globals['_DISKINFO']._serialized_end=8792
|
|
304
|
+
_globals['_DISKATTACHMENT']._serialized_start=8794
|
|
305
|
+
_globals['_DISKATTACHMENT']._serialized_end=8882
|
|
306
|
+
_globals['_ATTACHDISKREQUEST']._serialized_start=8884
|
|
307
|
+
_globals['_ATTACHDISKREQUEST']._serialized_end=8974
|
|
308
|
+
_globals['_ATTACHDISKRESPONSE']._serialized_start=8976
|
|
309
|
+
_globals['_ATTACHDISKRESPONSE']._serialized_end=8996
|
|
310
|
+
_globals['_DETACHDISKREQUEST']._serialized_start=8998
|
|
311
|
+
_globals['_DETACHDISKREQUEST']._serialized_end=9049
|
|
312
|
+
_globals['_DETACHDISKRESPONSE']._serialized_start=9051
|
|
313
|
+
_globals['_DETACHDISKRESPONSE']._serialized_end=9071
|
|
314
|
+
_globals['_DESTROYDISKREQUEST']._serialized_start=9073
|
|
315
|
+
_globals['_DESTROYDISKREQUEST']._serialized_end=9110
|
|
316
|
+
_globals['_DESTROYDISKRESPONSE']._serialized_start=9112
|
|
317
|
+
_globals['_DESTROYDISKRESPONSE']._serialized_end=9133
|
|
318
|
+
_globals['_SETAUTOSUSPENDTIMEOUTREQUEST']._serialized_start=9135
|
|
319
|
+
_globals['_SETAUTOSUSPENDTIMEOUTREQUEST']._serialized_end=9202
|
|
320
|
+
_globals['_SETAUTOSUSPENDTIMEOUTRESPONSE']._serialized_start=9204
|
|
321
|
+
_globals['_SETAUTOSUSPENDTIMEOUTRESPONSE']._serialized_end=9235
|
|
322
|
+
_globals['_SETAUTOHIBERNATETIMEOUTREQUEST']._serialized_start=9237
|
|
323
|
+
_globals['_SETAUTOHIBERNATETIMEOUTREQUEST']._serialized_end=9306
|
|
324
|
+
_globals['_SETAUTOHIBERNATETIMEOUTRESPONSE']._serialized_start=9308
|
|
325
|
+
_globals['_SETAUTOHIBERNATETIMEOUTRESPONSE']._serialized_end=9341
|
|
326
|
+
_globals['_CREATEAPIKEYREQUEST']._serialized_start=9343
|
|
327
|
+
_globals['_CREATEAPIKEYREQUEST']._serialized_end=9430
|
|
328
|
+
_globals['_CREATEAPIKEYRESPONSE']._serialized_start=9432
|
|
329
|
+
_globals['_CREATEAPIKEYRESPONSE']._serialized_end=9503
|
|
330
|
+
_globals['_LISTAPIKEYSREQUEST']._serialized_start=9505
|
|
331
|
+
_globals['_LISTAPIKEYSREQUEST']._serialized_end=9525
|
|
332
|
+
_globals['_LISTAPIKEYSRESPONSE']._serialized_start=9527
|
|
333
|
+
_globals['_LISTAPIKEYSRESPONSE']._serialized_end=9587
|
|
334
|
+
_globals['_APIKEYINFO']._serialized_start=9590
|
|
335
|
+
_globals['_APIKEYINFO']._serialized_end=9737
|
|
336
|
+
_globals['_DELETEAPIKEYREQUEST']._serialized_start=9739
|
|
337
|
+
_globals['_DELETEAPIKEYREQUEST']._serialized_end=9772
|
|
338
|
+
_globals['_DELETEAPIKEYRESPONSE']._serialized_start=9774
|
|
339
|
+
_globals['_DELETEAPIKEYRESPONSE']._serialized_end=9796
|
|
340
|
+
_globals['_SHAREVMREQUEST']._serialized_start=9798
|
|
341
|
+
_globals['_SHAREVMREQUEST']._serialized_end=9829
|
|
342
|
+
_globals['_SHAREVMRESPONSE']._serialized_start=9831
|
|
343
|
+
_globals['_SHAREVMRESPONSE']._serialized_end=9848
|
|
344
|
+
_globals['_LISTORGSREQUEST']._serialized_start=9850
|
|
345
|
+
_globals['_LISTORGSREQUEST']._serialized_end=9867
|
|
346
|
+
_globals['_LISTORGSRESPONSE']._serialized_start=9869
|
|
347
|
+
_globals['_LISTORGSRESPONSE']._serialized_end=9956
|
|
348
|
+
_globals['_ORGSUMMARY']._serialized_start=9958
|
|
349
|
+
_globals['_ORGSUMMARY']._serialized_end=10028
|
|
350
|
+
_globals['_GETORGBILLINGREQUEST']._serialized_start=10030
|
|
351
|
+
_globals['_GETORGBILLINGREQUEST']._serialized_end=10065
|
|
352
|
+
_globals['_GETORGBILLINGRESPONSE']._serialized_start=10068
|
|
353
|
+
_globals['_GETORGBILLINGRESPONSE']._serialized_end=10245
|
|
354
|
+
_globals['_ORGBILLEDVM']._serialized_start=10247
|
|
355
|
+
_globals['_ORGBILLEDVM']._serialized_end=10335
|
|
356
|
+
_globals['_UNSHAREVMREQUEST']._serialized_start=10337
|
|
357
|
+
_globals['_UNSHAREVMREQUEST']._serialized_end=10370
|
|
358
|
+
_globals['_UNSHAREVMRESPONSE']._serialized_start=10372
|
|
359
|
+
_globals['_UNSHAREVMRESPONSE']._serialized_end=10391
|
|
360
|
+
_globals['_BOXDAPI']._serialized_start=10394
|
|
361
|
+
_globals['_BOXDAPI']._serialized_end=16146
|
|
362
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -49,6 +49,11 @@ class BoxdApiStub:
|
|
|
49
49
|
request_serializer=api__pb2.RenameVmRequest.SerializeToString,
|
|
50
50
|
response_deserializer=api__pb2.RenameVmResponse.FromString,
|
|
51
51
|
_registered_method=True)
|
|
52
|
+
self.SetVmNetworks = channel.unary_unary(
|
|
53
|
+
'/boxd.api.v1.BoxdApi/SetVmNetworks',
|
|
54
|
+
request_serializer=api__pb2.SetVmNetworksRequest.SerializeToString,
|
|
55
|
+
response_deserializer=api__pb2.SetVmNetworksResponse.FromString,
|
|
56
|
+
_registered_method=True)
|
|
52
57
|
self.StartVm = channel.unary_unary(
|
|
53
58
|
'/boxd.api.v1.BoxdApi/StartVm',
|
|
54
59
|
request_serializer=api__pb2.StartVmRequest.SerializeToString,
|
|
@@ -402,6 +407,15 @@ class BoxdApiServicer:
|
|
|
402
407
|
context.set_details('Method not implemented!')
|
|
403
408
|
raise NotImplementedError('Method not implemented!')
|
|
404
409
|
|
|
410
|
+
def SetVmNetworks(self, request, context):
|
|
411
|
+
"""Replaces a VM's whole network-tag set (BOX-41) — not add/remove, the
|
|
412
|
+
caller sends the complete desired set. Networks drive east-west
|
|
413
|
+
reachability within the caller's org; see CreateVmRequest.networks.
|
|
414
|
+
"""
|
|
415
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
416
|
+
context.set_details('Method not implemented!')
|
|
417
|
+
raise NotImplementedError('Method not implemented!')
|
|
418
|
+
|
|
405
419
|
def StartVm(self, request, context):
|
|
406
420
|
"""Missing associated documentation comment in .proto file."""
|
|
407
421
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
@@ -851,6 +865,11 @@ def add_BoxdApiServicer_to_server(servicer, server):
|
|
|
851
865
|
request_deserializer=api__pb2.RenameVmRequest.FromString,
|
|
852
866
|
response_serializer=api__pb2.RenameVmResponse.SerializeToString,
|
|
853
867
|
),
|
|
868
|
+
'SetVmNetworks': grpc.unary_unary_rpc_method_handler(
|
|
869
|
+
servicer.SetVmNetworks,
|
|
870
|
+
request_deserializer=api__pb2.SetVmNetworksRequest.FromString,
|
|
871
|
+
response_serializer=api__pb2.SetVmNetworksResponse.SerializeToString,
|
|
872
|
+
),
|
|
854
873
|
'StartVm': grpc.unary_unary_rpc_method_handler(
|
|
855
874
|
servicer.StartVm,
|
|
856
875
|
request_deserializer=api__pb2.StartVmRequest.FromString,
|
|
@@ -1273,6 +1292,33 @@ class BoxdApi:
|
|
|
1273
1292
|
metadata,
|
|
1274
1293
|
_registered_method=True)
|
|
1275
1294
|
|
|
1295
|
+
@staticmethod
|
|
1296
|
+
def SetVmNetworks(request,
|
|
1297
|
+
target,
|
|
1298
|
+
options=(),
|
|
1299
|
+
channel_credentials=None,
|
|
1300
|
+
call_credentials=None,
|
|
1301
|
+
insecure=False,
|
|
1302
|
+
compression=None,
|
|
1303
|
+
wait_for_ready=None,
|
|
1304
|
+
timeout=None,
|
|
1305
|
+
metadata=None):
|
|
1306
|
+
return grpc.experimental.unary_unary(
|
|
1307
|
+
request,
|
|
1308
|
+
target,
|
|
1309
|
+
'/boxd.api.v1.BoxdApi/SetVmNetworks',
|
|
1310
|
+
api__pb2.SetVmNetworksRequest.SerializeToString,
|
|
1311
|
+
api__pb2.SetVmNetworksResponse.FromString,
|
|
1312
|
+
options,
|
|
1313
|
+
channel_credentials,
|
|
1314
|
+
insecure,
|
|
1315
|
+
call_credentials,
|
|
1316
|
+
compression,
|
|
1317
|
+
wait_for_ready,
|
|
1318
|
+
timeout,
|
|
1319
|
+
metadata,
|
|
1320
|
+
_registered_method=True)
|
|
1321
|
+
|
|
1276
1322
|
@staticmethod
|
|
1277
1323
|
def StartVm(request,
|
|
1278
1324
|
target,
|
|
@@ -31,6 +31,7 @@ from .models import (
|
|
|
31
31
|
Machine,
|
|
32
32
|
MachineAccess,
|
|
33
33
|
MachineIdle,
|
|
34
|
+
MachineNetworking,
|
|
34
35
|
MachineResources,
|
|
35
36
|
MachineSource,
|
|
36
37
|
Org,
|
|
@@ -111,6 +112,9 @@ def machine(msg) -> Machine:
|
|
|
111
112
|
),
|
|
112
113
|
org=org_ref,
|
|
113
114
|
shared=bool(msg.org or msg.org_id),
|
|
115
|
+
networking=MachineNetworking(
|
|
116
|
+
networks=list(msg.networks), isolated=msg.isolated
|
|
117
|
+
),
|
|
114
118
|
access=MachineAccess(
|
|
115
119
|
# 0 = not yet allocated, never a real port.
|
|
116
120
|
ssh_port=msg.ssh_port or None,
|
|
@@ -148,6 +152,9 @@ def machine_from_created(msg) -> Machine:
|
|
|
148
152
|
resources=MachineResources(vcpu=0, memory_bytes=0, disk_bytes=0),
|
|
149
153
|
org=None,
|
|
150
154
|
shared=False,
|
|
155
|
+
# Not reported by these responses — `create`/`fork` re-read the
|
|
156
|
+
# machine, so this fallback only shows when that read failed.
|
|
157
|
+
networking=MachineNetworking(networks=[], isolated=False),
|
|
151
158
|
access=MachineAccess(ssh_port=None, domain="", url=""),
|
|
152
159
|
idle=MachineIdle(suspend_after=0, hibernate_after=0, destroy_after=0),
|
|
153
160
|
source=None,
|