boxd 0.2.1__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.
Files changed (41) hide show
  1. {boxd-0.2.1/src/boxd.egg-info → boxd-0.2.2.dev43}/PKG-INFO +1 -1
  2. {boxd-0.2.1 → boxd-0.2.2.dev43}/pyproject.toml +1 -1
  3. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/__init__.py +2 -0
  4. boxd-0.2.2.dev43/src/boxd/_generated/api_pb2.py +362 -0
  5. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_generated/api_pb2_grpc.py +46 -0
  6. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_mappers.py +7 -0
  7. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_requests.py +17 -2
  8. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/models.py +26 -0
  9. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/resources/machines.py +93 -4
  10. {boxd-0.2.1 → boxd-0.2.2.dev43/src/boxd.egg-info}/PKG-INFO +1 -1
  11. {boxd-0.2.1 → boxd-0.2.2.dev43}/tests/test_mappers.py +29 -0
  12. {boxd-0.2.1 → boxd-0.2.2.dev43}/tests/test_namespaces.py +21 -0
  13. {boxd-0.2.1 → boxd-0.2.2.dev43}/tests/test_requests.py +73 -1
  14. boxd-0.2.1/src/boxd/_generated/api_pb2.py +0 -358
  15. {boxd-0.2.1 → boxd-0.2.2.dev43}/LICENSE +0 -0
  16. {boxd-0.2.1 → boxd-0.2.2.dev43}/README.md +0 -0
  17. {boxd-0.2.1 → boxd-0.2.2.dev43}/setup.cfg +0 -0
  18. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_client.py +0 -0
  19. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_credentials.py +0 -0
  20. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_generated/__init__.py +0 -0
  21. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_streaming.py +0 -0
  22. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_transport.py +0 -0
  23. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_urls.py +0 -0
  24. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/_version_check.py +0 -0
  25. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/errors.py +0 -0
  26. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/resources/__init__.py +0 -0
  27. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/resources/account.py +0 -0
  28. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/resources/credentials.py +0 -0
  29. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/resources/disks.py +0 -0
  30. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/resources/orgs.py +0 -0
  31. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/resources/snapshots.py +0 -0
  32. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd/resources/vars.py +0 -0
  33. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd.egg-info/SOURCES.txt +0 -0
  34. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd.egg-info/dependency_links.txt +0 -0
  35. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd.egg-info/requires.txt +0 -0
  36. {boxd-0.2.1 → boxd-0.2.2.dev43}/src/boxd.egg-info/top_level.txt +0 -0
  37. {boxd-0.2.1 → boxd-0.2.2.dev43}/tests/test_credentials.py +0 -0
  38. {boxd-0.2.1 → boxd-0.2.2.dev43}/tests/test_streaming.py +0 -0
  39. {boxd-0.2.1 → boxd-0.2.2.dev43}/tests/test_transport.py +0 -0
  40. {boxd-0.2.1 → boxd-0.2.2.dev43}/tests/test_urls.py +0 -0
  41. {boxd-0.2.1 → boxd-0.2.2.dev43}/tests/test_version_check.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boxd
3
- Version: 0.2.1
3
+ Version: 0.2.2.dev43
4
4
  Summary: Python SDK for the boxd cloud VM platform
5
5
  Author: Azin
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "boxd"
3
- version = "0.2.1"
3
+ version = "0.2.2.dev43"
4
4
  description = "Python SDK for the boxd cloud VM platform"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -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",
@@ -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,
@@ -105,6 +105,8 @@ def create_vm(
105
105
  restart_policy: str | None,
106
106
  org: str | None,
107
107
  shared: bool,
108
+ networks: Sequence[str] | None,
109
+ isolated: bool,
108
110
  config: api_pb2.VmConfig | None,
109
111
  ) -> api_pb2.CreateVmRequest:
110
112
  request = api_pb2.CreateVmRequest(
@@ -115,6 +117,8 @@ def create_vm(
115
117
  restart_policy=restart_policy or "always",
116
118
  org=org or "",
117
119
  shared=shared,
120
+ networks=list(networks or []),
121
+ isolated=isolated,
118
122
  )
119
123
  for key, value in (env or {}).items():
120
124
  request.env.append(api_pb2.EnvVar(key=key, value=value))
@@ -128,10 +132,13 @@ def create_vm_from_snapshot(
128
132
  snapshot: str,
129
133
  name: str | None,
130
134
  org: str | None,
135
+ isolated: bool,
131
136
  config: api_pb2.VmConfig | None,
132
137
  ) -> api_pb2.CreateVmFromSnapshotRequest:
138
+ # `isolated` is one-way: the server ORs it with the flag captured on the
139
+ # snapshot, so False means "inherit", never "de-isolate".
133
140
  request = api_pb2.CreateVmFromSnapshotRequest(
134
- snapshot=snapshot, name=name or "", org=org or ""
141
+ snapshot=snapshot, name=name or "", org=org or "", isolated=isolated
135
142
  )
136
143
  if config is not None:
137
144
  request.config.CopyFrom(config)
@@ -143,10 +150,18 @@ def fork_vm(
143
150
  source: str,
144
151
  name: str | None,
145
152
  shared: bool,
153
+ networks: Sequence[str] | None,
154
+ isolated: bool,
146
155
  config: api_pb2.VmConfig | None,
147
156
  ) -> api_pb2.ForkVmRequest:
157
+ # `isolated` is one-way: the server ORs it with the source's flag, so False
158
+ # means "inherit", never "de-isolate".
148
159
  request = api_pb2.ForkVmRequest(
149
- source_vm_id=source, name=name or "", shared=shared
160
+ source_vm_id=source,
161
+ name=name or "",
162
+ shared=shared,
163
+ networks=list(networks or []),
164
+ isolated=isolated,
150
165
  )
151
166
  if config is not None:
152
167
  request.config.CopyFrom(config)
@@ -96,6 +96,30 @@ class MachineSource(BaseModel):
96
96
  as normal."""
97
97
 
98
98
 
99
+ class MachineNetworking(BaseModel):
100
+ """Which machines this one can reach, and be reached by, inside its org.
101
+
102
+ Two machines are peers iff they share at least one entry in ``networks``,
103
+ OR both have none and neither is ``isolated`` — the org's implicit
104
+ **default network**. Naming a network therefore opts a machine OUT of the
105
+ default network: it then reaches only machines it shares one with, and
106
+ unnamed machines no longer reach it.
107
+
108
+ ``isolated`` means "explicit networks only": an isolated machine is never
109
+ in the default network and never peers with another isolated machine, so
110
+ one with no ``networks`` has no peers at all. It also has no metadata
111
+ endpoint, no in-VM ``boxd`` CLI, and no integrations. Inbound SSH/HTTPS
112
+ and outbound internet are unaffected.
113
+
114
+ The same rule governs internal DNS (``<name>.boxd``) and ``exec``/``cp``
115
+ between machines, so what resolves is exactly what is reachable.
116
+ """
117
+
118
+ networks: list[str]
119
+ isolated: bool
120
+ """Set at creation and immutable — a fork always inherits it."""
121
+
122
+
99
123
  class Machine(BaseModel):
100
124
  """A machine (VM), as returned by `machines.get` / `machines.list`."""
101
125
 
@@ -115,6 +139,8 @@ class Machine(BaseModel):
115
139
  quota. A machine never moves between orgs."""
116
140
  shared: bool
117
141
  """Whether the machine is shared with that org, rather than private to you."""
142
+ networking: MachineNetworking
143
+ """East-west reachability inside the org. See :class:`MachineNetworking`."""
118
144
  access: MachineAccess
119
145
  idle: MachineIdle
120
146
  source: MachineSource | None