boxd 0.1.5.dev25__tar.gz → 0.1.5.dev29__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 (43) hide show
  1. {boxd-0.1.5.dev25/src/boxd.egg-info → boxd-0.1.5.dev29}/PKG-INFO +1 -1
  2. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/pyproject.toml +1 -1
  3. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/__init__.py +2 -0
  4. boxd-0.1.5.dev29/src/boxd/_generated/api_pb2.py +276 -0
  5. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/_generated/api_pb2_grpc.py +179 -2
  6. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/_sync.py +46 -11
  7. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/aio.py +2 -0
  8. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/box.py +19 -0
  9. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/boxes.py +35 -9
  10. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/client.py +4 -0
  11. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/types.py +9 -0
  12. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29/src/boxd.egg-info}/PKG-INFO +1 -1
  13. boxd-0.1.5.dev25/src/boxd/_generated/api_pb2.py +0 -256
  14. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/LICENSE +0 -0
  15. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/README.md +0 -0
  16. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/setup.cfg +0 -0
  17. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/_generated/__init__.py +0 -0
  18. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/_utils.py +0 -0
  19. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/_version_check.py +0 -0
  20. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/auth.py +0 -0
  21. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/billing.py +0 -0
  22. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/disks.py +0 -0
  23. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/domains.py +0 -0
  24. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/errors.py +0 -0
  25. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/exec.py +0 -0
  26. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/networks.py +0 -0
  27. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/templates.py +0 -0
  28. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd/tokens.py +0 -0
  29. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd.egg-info/SOURCES.txt +0 -0
  30. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd.egg-info/dependency_links.txt +0 -0
  31. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd.egg-info/requires.txt +0 -0
  32. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/src/boxd.egg-info/top_level.txt +0 -0
  33. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_auth.py +0 -0
  34. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_boxes.py +0 -0
  35. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_e2e.py +0 -0
  36. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_e2e_v2.py +0 -0
  37. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_exec.py +0 -0
  38. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_files.py +0 -0
  39. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_lifecycle.py +0 -0
  40. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_proxies.py +0 -0
  41. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_utils.py +0 -0
  42. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_v2.py +0 -0
  43. {boxd-0.1.5.dev25 → boxd-0.1.5.dev29}/tests/test_version_check.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boxd
3
- Version: 0.1.5.dev25
3
+ Version: 0.1.5.dev29
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.1.5.dev25"
3
+ version = "0.1.5.dev29"
4
4
  description = "Python SDK for the boxd cloud VM platform"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -43,6 +43,7 @@ from .types import (
43
43
  LifecycleConfig,
44
44
  Network,
45
45
  NetworkConfig,
46
+ OrgSummary,
46
47
  Proxy,
47
48
  ProxyEntry,
48
49
  PtyInfo,
@@ -103,6 +104,7 @@ __all__ = [
103
104
  "VolumeMount",
104
105
  # Result / response types
105
106
  "Proxy",
107
+ "OrgSummary",
106
108
  "Template",
107
109
  "Disk",
108
110
  "DiskAttachment",
@@ -0,0 +1,276 @@
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: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ '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\"\xc9\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(\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\"\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\"\x1d\n\x0cGetVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\xe5\x01\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\"3\n\x0eListVmsRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\x14\n\x0c\x61ll_contexts\x18\x02 \x01(\x08\":\n\x0fListVmsResponse\x12\'\n\x03vms\x18\x01 \x03(\x0b\x32\x1a.boxd.api.v1.GetVmResponse\"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\"\x85\x01\n\x0eWhoamiResponse\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x1b\n\x13pubkey_fingerprints\x18\x02 \x03(\t\x12\x1a\n\x12\x64\x65\x66\x61ult_network_id\x18\x03 \x01(\t\x12)\n\x07\x62illing\x18\x04 \x01(\x0b\x32\x18.boxd.api.v1.BillingInfo\"\xac\x01\n\x0b\x42illingInfo\x12\x0c\n\x04tier\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x01(\t\x12\x1b\n\x13subscription_status\x18\x03 \x01(\t\x12\x1a\n\x12stripe_customer_id\x18\x04 \x01(\t\x12\x1e\n\x16stripe_subscription_id\x18\x05 \x01(\t\x12\x16\n\x0epast_due_since\x18\x06 \x01(\x03\x12\x0f\n\x07max_vms\x18\x07 \x01(\r\"\x12\n\x10ListPlansRequest\"9\n\x11ListPlansResponse\x12$\n\x05plans\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.PlanInfo\"\x89\x01\n\x08PlanInfo\x12\x0c\n\x04tier\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x01(\t\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(\x04\"\x13\n\x11GetBillingRequest\"?\n\x12GetBillingResponse\x12)\n\x07\x62illing\x18\x01 \x01(\x0b\x32\x18.boxd.api.v1.BillingInfo\"V\n\x1c\x43reateCheckoutSessionRequest\x12\r\n\x05shape\x18\x01 \x01(\t\x12\x13\n\x0bsuccess_url\x18\x02 \x01(\t\x12\x12\n\ncancel_url\x18\x03 \x01(\t\"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\x43hangeShapeRequest\x12\r\n\x05shape\x18\x01 \x01(\t\"4\n\x13\x43hangeShapeResponse\x12\r\n\x05shape\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \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\"Z\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\"\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\"%\n\x12ListProxiesRequest\x12\x0f\n\x07vm_name\x18\x01 \x01(\t\">\n\x13ListProxiesResponse\x12\'\n\x07proxies\x18\x01 \x03(\x0b\x32\x16.boxd.api.v1.ProxyInfo\"r\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\"A\n\x12\x43reateProxyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\"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\"3\n\x12\x44\x65leteProxyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\"\x15\n\x13\x44\x65leteProxyResponse\"B\n\x13SetProxyPortRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \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\"_\n\x15\x43reateTemplateRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\timage_ref\x18\x02 \x01(\t\x12%\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\x15.boxd.api.v1.VmConfig\"K\n\x16\x43reateTemplateResponse\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\"\x16\n\x14ListTemplatesRequest\"E\n\x15ListTemplatesResponse\x12,\n\ttemplates\x18\x01 \x03(\x0b\x32\x19.boxd.api.v1.TemplateInfo\"x\n\x0cTemplateInfo\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\timage_ref\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x0c\n\x04vcpu\x18\x05 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x06 \x01(\x04\",\n\x15\x44\x65leteTemplateRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\"\x18\n\x16\x44\x65leteTemplateResponse\"g\n\x1b\x43reateVmFromTemplateRequest\x12\x13\n\x0btemplate_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\"\x81\x01\n\x1c\x43reateVmFromTemplateResponse\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\x0e\n\x06status\x18\x05 \x01(\t\x12\x14\n\x0c\x62oot_time_ms\x18\x06 \x01(\x04\"5\n\x11\x43reateDiskRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nsize_bytes\x18\x02 \x01(\x04\"W\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(\t\"\x12\n\x10ListDisksRequest\"9\n\x11ListDisksResponse\x12$\n\x05\x64isks\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.DiskInfo\"\x92\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\x11\n\tworker_id\x18\x05 \x01(\t\x12\x30\n\x0b\x61ttachments\x18\x06 \x03(\x0b\x32\x1b.boxd.api.v1.DiskAttachment\"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\"<\n\x13\x43reateApiKeyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0f\x65xpires_in_secs\x18\x02 \x01(\x04\"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\"x\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\"!\n\x13\x44\x65leteApiKeyRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x16\n\x14\x44\x65leteApiKeyResponse\"@\n\x12MoveVmToOrgRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0b\n\x03org\x18\x02 \x01(\t\x12\x0e\n\x06shared\x18\x03 \x01(\x08\"\x15\n\x13MoveVmToOrgResponse\"\x11\n\x0fListOrgsRequest\"9\n\x10ListOrgsResponse\x12%\n\x04orgs\x18\x01 \x03(\x0b\x32\x17.boxd.api.v1.OrgSummary\"8\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\"#\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\"Z\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\r\n\x05shape\x18\x04 \x01(\t\x12\x0f\n\x07\x62illing\x18\x05 \x01(\t\"A\n\x16RemoveVmFromOrgRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x18\n\x10keep_org_billing\x18\x02 \x01(\x08\"\x19\n\x17RemoveVmFromOrgResponse2\xcf!\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\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\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\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\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\x12Y\n\x0e\x43reateTemplate\x12\".boxd.api.v1.CreateTemplateRequest\x1a#.boxd.api.v1.CreateTemplateResponse\x12V\n\rListTemplates\x12!.boxd.api.v1.ListTemplatesRequest\x1a\".boxd.api.v1.ListTemplatesResponse\x12Y\n\x0e\x44\x65leteTemplate\x12\".boxd.api.v1.DeleteTemplateRequest\x1a#.boxd.api.v1.DeleteTemplateResponse\x12k\n\x14\x43reateVmFromTemplate\x12(.boxd.api.v1.CreateVmFromTemplateRequest\x1a).boxd.api.v1.CreateVmFromTemplateResponse\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\x12P\n\x0b\x43hangeShape\x12\x1f.boxd.api.v1.ChangeShapeRequest\x1a .boxd.api.v1.ChangeShapeResponse\x12P\n\x0bMoveVmToOrg\x12\x1f.boxd.api.v1.MoveVmToOrgRequest\x1a .boxd.api.v1.MoveVmToOrgResponse\x12\\\n\x0fRemoveVmFromOrg\x12#.boxd.api.v1.RemoveVmFromOrgRequest\x1a$.boxd.api.v1.RemoveVmFromOrgResponse\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['_VMCONFIG']._serialized_start=27
35
+ _globals['_VMCONFIG']._serialized_end=218
36
+ _globals['_SRFCONFIG']._serialized_start=220
37
+ _globals['_SRFCONFIG']._serialized_end=336
38
+ _globals['_NETWORKCONFIG']._serialized_start=338
39
+ _globals['_NETWORKCONFIG']._serialized_end=408
40
+ _globals['_PROXYENTRY']._serialized_start=410
41
+ _globals['_PROXYENTRY']._serialized_end=450
42
+ _globals['_VOLUMEMOUNT']._serialized_start=452
43
+ _globals['_VOLUMEMOUNT']._serialized_end=521
44
+ _globals['_CREATEVMREQUEST']._serialized_start=524
45
+ _globals['_CREATEVMREQUEST']._serialized_end=725
46
+ _globals['_ENVVAR']._serialized_start=727
47
+ _globals['_ENVVAR']._serialized_end=763
48
+ _globals['_CREATEVMRESPONSE']._serialized_start=766
49
+ _globals['_CREATEVMRESPONSE']._serialized_end=898
50
+ _globals['_DESTROYVMREQUEST']._serialized_start=900
51
+ _globals['_DESTROYVMREQUEST']._serialized_end=933
52
+ _globals['_DESTROYVMRESPONSE']._serialized_start=935
53
+ _globals['_DESTROYVMRESPONSE']._serialized_end=954
54
+ _globals['_STARTVMREQUEST']._serialized_start=956
55
+ _globals['_STARTVMREQUEST']._serialized_end=987
56
+ _globals['_STARTVMRESPONSE']._serialized_start=989
57
+ _globals['_STARTVMRESPONSE']._serialized_end=1006
58
+ _globals['_STOPVMREQUEST']._serialized_start=1008
59
+ _globals['_STOPVMREQUEST']._serialized_end=1038
60
+ _globals['_STOPVMRESPONSE']._serialized_start=1040
61
+ _globals['_STOPVMRESPONSE']._serialized_end=1056
62
+ _globals['_REBOOTVMREQUEST']._serialized_start=1058
63
+ _globals['_REBOOTVMREQUEST']._serialized_end=1090
64
+ _globals['_REBOOTVMRESPONSE']._serialized_start=1092
65
+ _globals['_REBOOTVMRESPONSE']._serialized_end=1110
66
+ _globals['_SUSPENDVMREQUEST']._serialized_start=1112
67
+ _globals['_SUSPENDVMREQUEST']._serialized_end=1145
68
+ _globals['_SUSPENDVMRESPONSE']._serialized_start=1147
69
+ _globals['_SUSPENDVMRESPONSE']._serialized_end=1186
70
+ _globals['_RESUMEVMREQUEST']._serialized_start=1188
71
+ _globals['_RESUMEVMREQUEST']._serialized_end=1220
72
+ _globals['_RESUMEVMRESPONSE']._serialized_start=1222
73
+ _globals['_RESUMEVMRESPONSE']._serialized_end=1259
74
+ _globals['_GETVMREQUEST']._serialized_start=1261
75
+ _globals['_GETVMREQUEST']._serialized_end=1290
76
+ _globals['_GETVMRESPONSE']._serialized_start=1293
77
+ _globals['_GETVMRESPONSE']._serialized_end=1522
78
+ _globals['_LISTVMSREQUEST']._serialized_start=1524
79
+ _globals['_LISTVMSREQUEST']._serialized_end=1575
80
+ _globals['_LISTVMSRESPONSE']._serialized_start=1577
81
+ _globals['_LISTVMSRESPONSE']._serialized_end=1635
82
+ _globals['_STREAMLOGSREQUEST']._serialized_start=1637
83
+ _globals['_STREAMLOGSREQUEST']._serialized_end=1687
84
+ _globals['_LOGCHUNK']._serialized_start=1689
85
+ _globals['_LOGCHUNK']._serialized_end=1713
86
+ _globals['_EXECCHUNK']._serialized_start=1716
87
+ _globals['_EXECCHUNK']._serialized_end=1909
88
+ _globals['_CREATENETWORKREQUEST']._serialized_start=1911
89
+ _globals['_CREATENETWORKREQUEST']._serialized_end=1947
90
+ _globals['_CREATENETWORKRESPONSE']._serialized_start=1949
91
+ _globals['_CREATENETWORKRESPONSE']._serialized_end=1992
92
+ _globals['_LISTNETWORKSREQUEST']._serialized_start=1994
93
+ _globals['_LISTNETWORKSREQUEST']._serialized_end=2015
94
+ _globals['_LISTNETWORKSRESPONSE']._serialized_start=2017
95
+ _globals['_LISTNETWORKSRESPONSE']._serialized_end=2083
96
+ _globals['_NETWORKINFO']._serialized_start=2085
97
+ _globals['_NETWORKINFO']._serialized_end=2150
98
+ _globals['_BINDDOMAINREQUEST']._serialized_start=2152
99
+ _globals['_BINDDOMAINREQUEST']._serialized_end=2202
100
+ _globals['_BINDDOMAINRESPONSE']._serialized_start=2204
101
+ _globals['_BINDDOMAINRESPONSE']._serialized_end=2224
102
+ _globals['_UNBINDDOMAINREQUEST']._serialized_start=2226
103
+ _globals['_UNBINDDOMAINREQUEST']._serialized_end=2263
104
+ _globals['_UNBINDDOMAINRESPONSE']._serialized_start=2265
105
+ _globals['_UNBINDDOMAINRESPONSE']._serialized_end=2287
106
+ _globals['_LISTDOMAINSREQUEST']._serialized_start=2289
107
+ _globals['_LISTDOMAINSREQUEST']._serialized_end=2309
108
+ _globals['_LISTDOMAINSRESPONSE']._serialized_start=2311
109
+ _globals['_LISTDOMAINSRESPONSE']._serialized_end=2374
110
+ _globals['_DOMAININFO']._serialized_start=2376
111
+ _globals['_DOMAININFO']._serialized_end=2419
112
+ _globals['_GETCONFIGREQUEST']._serialized_start=2421
113
+ _globals['_GETCONFIGREQUEST']._serialized_end=2439
114
+ _globals['_GETCONFIGRESPONSE']._serialized_start=2441
115
+ _globals['_GETCONFIGRESPONSE']._serialized_end=2497
116
+ _globals['_WHOAMIREQUEST']._serialized_start=2499
117
+ _globals['_WHOAMIREQUEST']._serialized_end=2514
118
+ _globals['_WHOAMIRESPONSE']._serialized_start=2517
119
+ _globals['_WHOAMIRESPONSE']._serialized_end=2650
120
+ _globals['_BILLINGINFO']._serialized_start=2653
121
+ _globals['_BILLINGINFO']._serialized_end=2825
122
+ _globals['_LISTPLANSREQUEST']._serialized_start=2827
123
+ _globals['_LISTPLANSREQUEST']._serialized_end=2845
124
+ _globals['_LISTPLANSRESPONSE']._serialized_start=2847
125
+ _globals['_LISTPLANSRESPONSE']._serialized_end=2904
126
+ _globals['_PLANINFO']._serialized_start=2907
127
+ _globals['_PLANINFO']._serialized_end=3044
128
+ _globals['_GETBILLINGREQUEST']._serialized_start=3046
129
+ _globals['_GETBILLINGREQUEST']._serialized_end=3065
130
+ _globals['_GETBILLINGRESPONSE']._serialized_start=3067
131
+ _globals['_GETBILLINGRESPONSE']._serialized_end=3130
132
+ _globals['_CREATECHECKOUTSESSIONREQUEST']._serialized_start=3132
133
+ _globals['_CREATECHECKOUTSESSIONREQUEST']._serialized_end=3218
134
+ _globals['_CREATECHECKOUTSESSIONRESPONSE']._serialized_start=3220
135
+ _globals['_CREATECHECKOUTSESSIONRESPONSE']._serialized_end=3273
136
+ _globals['_CREATEBILLINGPORTALSESSIONREQUEST']._serialized_start=3275
137
+ _globals['_CREATEBILLINGPORTALSESSIONREQUEST']._serialized_end=3330
138
+ _globals['_CREATEBILLINGPORTALSESSIONRESPONSE']._serialized_start=3332
139
+ _globals['_CREATEBILLINGPORTALSESSIONRESPONSE']._serialized_end=3388
140
+ _globals['_CHANGESHAPEREQUEST']._serialized_start=3390
141
+ _globals['_CHANGESHAPEREQUEST']._serialized_end=3425
142
+ _globals['_CHANGESHAPERESPONSE']._serialized_start=3427
143
+ _globals['_CHANGESHAPERESPONSE']._serialized_end=3479
144
+ _globals['_CREATETOKENREQUEST']._serialized_start=3481
145
+ _globals['_CREATETOKENREQUEST']._serialized_end=3526
146
+ _globals['_CREATETOKENRESPONSE']._serialized_start=3528
147
+ _globals['_CREATETOKENRESPONSE']._serialized_end=3584
148
+ _globals['_LISTTOKENSREQUEST']._serialized_start=3586
149
+ _globals['_LISTTOKENSREQUEST']._serialized_end=3605
150
+ _globals['_LISTTOKENSRESPONSE']._serialized_start=3607
151
+ _globals['_LISTTOKENSRESPONSE']._serialized_end=3667
152
+ _globals['_TOKENINFO']._serialized_start=3669
153
+ _globals['_TOKENINFO']._serialized_end=3733
154
+ _globals['_REVOKETOKENREQUEST']._serialized_start=3735
155
+ _globals['_REVOKETOKENREQUEST']._serialized_end=3768
156
+ _globals['_REVOKETOKENRESPONSE']._serialized_start=3770
157
+ _globals['_REVOKETOKENRESPONSE']._serialized_end=3791
158
+ _globals['_FORKVMREQUEST']._serialized_start=3793
159
+ _globals['_FORKVMREQUEST']._serialized_end=3883
160
+ _globals['_FORKVMRESPONSE']._serialized_start=3886
161
+ _globals['_FORKVMRESPONSE']._serialized_end=4037
162
+ _globals['_LISTPROXIESREQUEST']._serialized_start=4039
163
+ _globals['_LISTPROXIESREQUEST']._serialized_end=4076
164
+ _globals['_LISTPROXIESRESPONSE']._serialized_start=4078
165
+ _globals['_LISTPROXIESRESPONSE']._serialized_end=4140
166
+ _globals['_PROXYINFO']._serialized_start=4142
167
+ _globals['_PROXYINFO']._serialized_end=4256
168
+ _globals['_CREATEPROXYREQUEST']._serialized_start=4258
169
+ _globals['_CREATEPROXYREQUEST']._serialized_end=4323
170
+ _globals['_CREATEPROXYRESPONSE']._serialized_start=4325
171
+ _globals['_CREATEPROXYRESPONSE']._serialized_end=4407
172
+ _globals['_DELETEPROXYREQUEST']._serialized_start=4409
173
+ _globals['_DELETEPROXYREQUEST']._serialized_end=4460
174
+ _globals['_DELETEPROXYRESPONSE']._serialized_start=4462
175
+ _globals['_DELETEPROXYRESPONSE']._serialized_end=4483
176
+ _globals['_SETPROXYPORTREQUEST']._serialized_start=4485
177
+ _globals['_SETPROXYPORTREQUEST']._serialized_end=4551
178
+ _globals['_SETPROXYPORTRESPONSE']._serialized_start=4553
179
+ _globals['_SETPROXYPORTRESPONSE']._serialized_end=4575
180
+ _globals['_UPLOADFILEREQUEST']._serialized_start=4577
181
+ _globals['_UPLOADFILEREQUEST']._serialized_end=4639
182
+ _globals['_UPLOADFILERESPONSE']._serialized_start=4641
183
+ _globals['_UPLOADFILERESPONSE']._serialized_end=4684
184
+ _globals['_UPLOADFILECHUNK']._serialized_start=4686
185
+ _globals['_UPLOADFILECHUNK']._serialized_end=4766
186
+ _globals['_DOWNLOADFILEREQUEST']._serialized_start=4768
187
+ _globals['_DOWNLOADFILEREQUEST']._serialized_end=4818
188
+ _globals['_DOWNLOADFILERESPONSE']._serialized_start=4820
189
+ _globals['_DOWNLOADFILERESPONSE']._serialized_end=4856
190
+ _globals['_CREATETEMPLATEREQUEST']._serialized_start=4858
191
+ _globals['_CREATETEMPLATEREQUEST']._serialized_end=4953
192
+ _globals['_CREATETEMPLATERESPONSE']._serialized_start=4955
193
+ _globals['_CREATETEMPLATERESPONSE']._serialized_end=5030
194
+ _globals['_LISTTEMPLATESREQUEST']._serialized_start=5032
195
+ _globals['_LISTTEMPLATESREQUEST']._serialized_end=5054
196
+ _globals['_LISTTEMPLATESRESPONSE']._serialized_start=5056
197
+ _globals['_LISTTEMPLATESRESPONSE']._serialized_end=5125
198
+ _globals['_TEMPLATEINFO']._serialized_start=5127
199
+ _globals['_TEMPLATEINFO']._serialized_end=5247
200
+ _globals['_DELETETEMPLATEREQUEST']._serialized_start=5249
201
+ _globals['_DELETETEMPLATEREQUEST']._serialized_end=5293
202
+ _globals['_DELETETEMPLATERESPONSE']._serialized_start=5295
203
+ _globals['_DELETETEMPLATERESPONSE']._serialized_end=5319
204
+ _globals['_CREATEVMFROMTEMPLATEREQUEST']._serialized_start=5321
205
+ _globals['_CREATEVMFROMTEMPLATEREQUEST']._serialized_end=5424
206
+ _globals['_CREATEVMFROMTEMPLATERESPONSE']._serialized_start=5427
207
+ _globals['_CREATEVMFROMTEMPLATERESPONSE']._serialized_end=5556
208
+ _globals['_CREATEDISKREQUEST']._serialized_start=5558
209
+ _globals['_CREATEDISKREQUEST']._serialized_end=5611
210
+ _globals['_CREATEDISKRESPONSE']._serialized_start=5613
211
+ _globals['_CREATEDISKRESPONSE']._serialized_end=5700
212
+ _globals['_LISTDISKSREQUEST']._serialized_start=5702
213
+ _globals['_LISTDISKSREQUEST']._serialized_end=5720
214
+ _globals['_LISTDISKSRESPONSE']._serialized_start=5722
215
+ _globals['_LISTDISKSRESPONSE']._serialized_end=5779
216
+ _globals['_DISKINFO']._serialized_start=5782
217
+ _globals['_DISKINFO']._serialized_end=5928
218
+ _globals['_DISKATTACHMENT']._serialized_start=5930
219
+ _globals['_DISKATTACHMENT']._serialized_end=6018
220
+ _globals['_ATTACHDISKREQUEST']._serialized_start=6020
221
+ _globals['_ATTACHDISKREQUEST']._serialized_end=6110
222
+ _globals['_ATTACHDISKRESPONSE']._serialized_start=6112
223
+ _globals['_ATTACHDISKRESPONSE']._serialized_end=6132
224
+ _globals['_DETACHDISKREQUEST']._serialized_start=6134
225
+ _globals['_DETACHDISKREQUEST']._serialized_end=6185
226
+ _globals['_DETACHDISKRESPONSE']._serialized_start=6187
227
+ _globals['_DETACHDISKRESPONSE']._serialized_end=6207
228
+ _globals['_DESTROYDISKREQUEST']._serialized_start=6209
229
+ _globals['_DESTROYDISKREQUEST']._serialized_end=6246
230
+ _globals['_DESTROYDISKRESPONSE']._serialized_start=6248
231
+ _globals['_DESTROYDISKRESPONSE']._serialized_end=6269
232
+ _globals['_SETAUTOSUSPENDTIMEOUTREQUEST']._serialized_start=6271
233
+ _globals['_SETAUTOSUSPENDTIMEOUTREQUEST']._serialized_end=6338
234
+ _globals['_SETAUTOSUSPENDTIMEOUTRESPONSE']._serialized_start=6340
235
+ _globals['_SETAUTOSUSPENDTIMEOUTRESPONSE']._serialized_end=6371
236
+ _globals['_SETAUTOHIBERNATETIMEOUTREQUEST']._serialized_start=6373
237
+ _globals['_SETAUTOHIBERNATETIMEOUTREQUEST']._serialized_end=6442
238
+ _globals['_SETAUTOHIBERNATETIMEOUTRESPONSE']._serialized_start=6444
239
+ _globals['_SETAUTOHIBERNATETIMEOUTRESPONSE']._serialized_end=6477
240
+ _globals['_CREATEAPIKEYREQUEST']._serialized_start=6479
241
+ _globals['_CREATEAPIKEYREQUEST']._serialized_end=6539
242
+ _globals['_CREATEAPIKEYRESPONSE']._serialized_start=6541
243
+ _globals['_CREATEAPIKEYRESPONSE']._serialized_end=6612
244
+ _globals['_LISTAPIKEYSREQUEST']._serialized_start=6614
245
+ _globals['_LISTAPIKEYSREQUEST']._serialized_end=6634
246
+ _globals['_LISTAPIKEYSRESPONSE']._serialized_start=6636
247
+ _globals['_LISTAPIKEYSRESPONSE']._serialized_end=6696
248
+ _globals['_APIKEYINFO']._serialized_start=6698
249
+ _globals['_APIKEYINFO']._serialized_end=6818
250
+ _globals['_DELETEAPIKEYREQUEST']._serialized_start=6820
251
+ _globals['_DELETEAPIKEYREQUEST']._serialized_end=6853
252
+ _globals['_DELETEAPIKEYRESPONSE']._serialized_start=6855
253
+ _globals['_DELETEAPIKEYRESPONSE']._serialized_end=6877
254
+ _globals['_MOVEVMTOORGREQUEST']._serialized_start=6879
255
+ _globals['_MOVEVMTOORGREQUEST']._serialized_end=6943
256
+ _globals['_MOVEVMTOORGRESPONSE']._serialized_start=6945
257
+ _globals['_MOVEVMTOORGRESPONSE']._serialized_end=6966
258
+ _globals['_LISTORGSREQUEST']._serialized_start=6968
259
+ _globals['_LISTORGSREQUEST']._serialized_end=6985
260
+ _globals['_LISTORGSRESPONSE']._serialized_start=6987
261
+ _globals['_LISTORGSRESPONSE']._serialized_end=7044
262
+ _globals['_ORGSUMMARY']._serialized_start=7046
263
+ _globals['_ORGSUMMARY']._serialized_end=7102
264
+ _globals['_GETORGBILLINGREQUEST']._serialized_start=7104
265
+ _globals['_GETORGBILLINGREQUEST']._serialized_end=7139
266
+ _globals['_GETORGBILLINGRESPONSE']._serialized_start=7142
267
+ _globals['_GETORGBILLINGRESPONSE']._serialized_end=7319
268
+ _globals['_ORGBILLEDVM']._serialized_start=7321
269
+ _globals['_ORGBILLEDVM']._serialized_end=7411
270
+ _globals['_REMOVEVMFROMORGREQUEST']._serialized_start=7413
271
+ _globals['_REMOVEVMFROMORGREQUEST']._serialized_end=7478
272
+ _globals['_REMOVEVMFROMORGRESPONSE']._serialized_start=7480
273
+ _globals['_REMOVEVMFROMORGRESPONSE']._serialized_end=7505
274
+ _globals['_BOXDAPI']._serialized_start=7508
275
+ _globals['_BOXDAPI']._serialized_end=11811
276
+ # @@protoc_insertion_point(module_scope)
@@ -5,7 +5,7 @@ import warnings
5
5
 
6
6
  from . import api_pb2 as api__pb2
7
7
 
8
- GRPC_GENERATED_VERSION = '1.74.0'
8
+ GRPC_GENERATED_VERSION = '1.80.0'
9
9
  GRPC_VERSION = grpc.__version__
10
10
  _version_not_supported = False
11
11
 
@@ -18,7 +18,7 @@ except ImportError:
18
18
  if _version_not_supported:
19
19
  raise RuntimeError(
20
20
  f'The grpc package installed is at version {GRPC_VERSION},'
21
- + f' but the generated code in api_pb2_grpc.py depends on'
21
+ + ' but the generated code in api_pb2_grpc.py depends on'
22
22
  + f' grpcio>={GRPC_GENERATED_VERSION}.'
23
23
  + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
24
24
  + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
@@ -274,6 +274,26 @@ class BoxdApiStub(object):
274
274
  request_serializer=api__pb2.ChangeShapeRequest.SerializeToString,
275
275
  response_deserializer=api__pb2.ChangeShapeResponse.FromString,
276
276
  _registered_method=True)
277
+ self.MoveVmToOrg = channel.unary_unary(
278
+ '/boxd.api.v1.BoxdApi/MoveVmToOrg',
279
+ request_serializer=api__pb2.MoveVmToOrgRequest.SerializeToString,
280
+ response_deserializer=api__pb2.MoveVmToOrgResponse.FromString,
281
+ _registered_method=True)
282
+ self.RemoveVmFromOrg = channel.unary_unary(
283
+ '/boxd.api.v1.BoxdApi/RemoveVmFromOrg',
284
+ request_serializer=api__pb2.RemoveVmFromOrgRequest.SerializeToString,
285
+ response_deserializer=api__pb2.RemoveVmFromOrgResponse.FromString,
286
+ _registered_method=True)
287
+ self.ListOrgs = channel.unary_unary(
288
+ '/boxd.api.v1.BoxdApi/ListOrgs',
289
+ request_serializer=api__pb2.ListOrgsRequest.SerializeToString,
290
+ response_deserializer=api__pb2.ListOrgsResponse.FromString,
291
+ _registered_method=True)
292
+ self.GetOrgBilling = channel.unary_unary(
293
+ '/boxd.api.v1.BoxdApi/GetOrgBilling',
294
+ request_serializer=api__pb2.GetOrgBillingRequest.SerializeToString,
295
+ response_deserializer=api__pb2.GetOrgBillingResponse.FromString,
296
+ _registered_method=True)
277
297
 
278
298
 
279
299
  class BoxdApiServicer(object):
@@ -575,6 +595,35 @@ class BoxdApiServicer(object):
575
595
  context.set_details('Method not implemented!')
576
596
  raise NotImplementedError('Method not implemented!')
577
597
 
598
+ def MoveVmToOrg(self, request, context):
599
+ """Organizations (v2 org model). Owner-only: move your VM into an org (makes
600
+ it public to the whole org) or back to personal/private.
601
+ """
602
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
603
+ context.set_details('Method not implemented!')
604
+ raise NotImplementedError('Method not implemented!')
605
+
606
+ def RemoveVmFromOrg(self, request, context):
607
+ """Missing associated documentation comment in .proto file."""
608
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
609
+ context.set_details('Method not implemented!')
610
+ raise NotImplementedError('Method not implemented!')
611
+
612
+ def ListOrgs(self, request, context):
613
+ """List the orgs the caller is a member of (backs the CLI/console org picker).
614
+ """
615
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
616
+ context.set_details('Method not implemented!')
617
+ raise NotImplementedError('Method not implemented!')
618
+
619
+ def GetOrgBilling(self, request, context):
620
+ """The org's shared plan: aggregate quota + current usage. Any member may
621
+ view it (read-only; the operator sets the quota via boxd-ctl).
622
+ """
623
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
624
+ context.set_details('Method not implemented!')
625
+ raise NotImplementedError('Method not implemented!')
626
+
578
627
 
579
628
  def add_BoxdApiServicer_to_server(servicer, server):
580
629
  rpc_method_handlers = {
@@ -818,6 +867,26 @@ def add_BoxdApiServicer_to_server(servicer, server):
818
867
  request_deserializer=api__pb2.ChangeShapeRequest.FromString,
819
868
  response_serializer=api__pb2.ChangeShapeResponse.SerializeToString,
820
869
  ),
870
+ 'MoveVmToOrg': grpc.unary_unary_rpc_method_handler(
871
+ servicer.MoveVmToOrg,
872
+ request_deserializer=api__pb2.MoveVmToOrgRequest.FromString,
873
+ response_serializer=api__pb2.MoveVmToOrgResponse.SerializeToString,
874
+ ),
875
+ 'RemoveVmFromOrg': grpc.unary_unary_rpc_method_handler(
876
+ servicer.RemoveVmFromOrg,
877
+ request_deserializer=api__pb2.RemoveVmFromOrgRequest.FromString,
878
+ response_serializer=api__pb2.RemoveVmFromOrgResponse.SerializeToString,
879
+ ),
880
+ 'ListOrgs': grpc.unary_unary_rpc_method_handler(
881
+ servicer.ListOrgs,
882
+ request_deserializer=api__pb2.ListOrgsRequest.FromString,
883
+ response_serializer=api__pb2.ListOrgsResponse.SerializeToString,
884
+ ),
885
+ 'GetOrgBilling': grpc.unary_unary_rpc_method_handler(
886
+ servicer.GetOrgBilling,
887
+ request_deserializer=api__pb2.GetOrgBillingRequest.FromString,
888
+ response_serializer=api__pb2.GetOrgBillingResponse.SerializeToString,
889
+ ),
821
890
  }
822
891
  generic_handler = grpc.method_handlers_generic_handler(
823
892
  'boxd.api.v1.BoxdApi', rpc_method_handlers)
@@ -2124,3 +2193,111 @@ class BoxdApi(object):
2124
2193
  timeout,
2125
2194
  metadata,
2126
2195
  _registered_method=True)
2196
+
2197
+ @staticmethod
2198
+ def MoveVmToOrg(request,
2199
+ target,
2200
+ options=(),
2201
+ channel_credentials=None,
2202
+ call_credentials=None,
2203
+ insecure=False,
2204
+ compression=None,
2205
+ wait_for_ready=None,
2206
+ timeout=None,
2207
+ metadata=None):
2208
+ return grpc.experimental.unary_unary(
2209
+ request,
2210
+ target,
2211
+ '/boxd.api.v1.BoxdApi/MoveVmToOrg',
2212
+ api__pb2.MoveVmToOrgRequest.SerializeToString,
2213
+ api__pb2.MoveVmToOrgResponse.FromString,
2214
+ options,
2215
+ channel_credentials,
2216
+ insecure,
2217
+ call_credentials,
2218
+ compression,
2219
+ wait_for_ready,
2220
+ timeout,
2221
+ metadata,
2222
+ _registered_method=True)
2223
+
2224
+ @staticmethod
2225
+ def RemoveVmFromOrg(request,
2226
+ target,
2227
+ options=(),
2228
+ channel_credentials=None,
2229
+ call_credentials=None,
2230
+ insecure=False,
2231
+ compression=None,
2232
+ wait_for_ready=None,
2233
+ timeout=None,
2234
+ metadata=None):
2235
+ return grpc.experimental.unary_unary(
2236
+ request,
2237
+ target,
2238
+ '/boxd.api.v1.BoxdApi/RemoveVmFromOrg',
2239
+ api__pb2.RemoveVmFromOrgRequest.SerializeToString,
2240
+ api__pb2.RemoveVmFromOrgResponse.FromString,
2241
+ options,
2242
+ channel_credentials,
2243
+ insecure,
2244
+ call_credentials,
2245
+ compression,
2246
+ wait_for_ready,
2247
+ timeout,
2248
+ metadata,
2249
+ _registered_method=True)
2250
+
2251
+ @staticmethod
2252
+ def ListOrgs(request,
2253
+ target,
2254
+ options=(),
2255
+ channel_credentials=None,
2256
+ call_credentials=None,
2257
+ insecure=False,
2258
+ compression=None,
2259
+ wait_for_ready=None,
2260
+ timeout=None,
2261
+ metadata=None):
2262
+ return grpc.experimental.unary_unary(
2263
+ request,
2264
+ target,
2265
+ '/boxd.api.v1.BoxdApi/ListOrgs',
2266
+ api__pb2.ListOrgsRequest.SerializeToString,
2267
+ api__pb2.ListOrgsResponse.FromString,
2268
+ options,
2269
+ channel_credentials,
2270
+ insecure,
2271
+ call_credentials,
2272
+ compression,
2273
+ wait_for_ready,
2274
+ timeout,
2275
+ metadata,
2276
+ _registered_method=True)
2277
+
2278
+ @staticmethod
2279
+ def GetOrgBilling(request,
2280
+ target,
2281
+ options=(),
2282
+ channel_credentials=None,
2283
+ call_credentials=None,
2284
+ insecure=False,
2285
+ compression=None,
2286
+ wait_for_ready=None,
2287
+ timeout=None,
2288
+ metadata=None):
2289
+ return grpc.experimental.unary_unary(
2290
+ request,
2291
+ target,
2292
+ '/boxd.api.v1.BoxdApi/GetOrgBilling',
2293
+ api__pb2.GetOrgBillingRequest.SerializeToString,
2294
+ api__pb2.GetOrgBillingResponse.FromString,
2295
+ options,
2296
+ channel_credentials,
2297
+ insecure,
2298
+ call_credentials,
2299
+ compression,
2300
+ wait_for_ready,
2301
+ timeout,
2302
+ metadata,
2303
+ _registered_method=True)
@@ -15,6 +15,7 @@ from .types import (
15
15
  ConfigResult,
16
16
  Domain,
17
17
  Network,
18
+ OrgSummary,
18
19
  Proxy,
19
20
  ResumeResult,
20
21
  SuspendResult,
@@ -40,10 +41,29 @@ class _SyncBase:
40
41
  class Box(_SyncBase):
41
42
  """A boxd VM (synchronous API).
42
43
 
43
- Data attributes (id, name, image, public_ip, status, url, boot_time_ms)
44
- are forwarded automatically from the underlying async Box.
44
+ Data attributes (id, name, image, public_ip, status, url, boot_time_ms,
45
+ forked_from, restart_policy, disk_bytes, auto_suspend_timeout_secs,
46
+ ssh_port) are forwarded automatically from the underlying async Box.
45
47
  """
46
48
 
49
+ # Data fields forwarded from the async Box dataclass. Methods are NOT
50
+ # forwarded — the sync wrappers below shadow them; forwarding blindly would
51
+ # hand callers un-awaited coroutines. Keep in sync with box.Box's fields.
52
+ _DATA_ATTRS = (
53
+ "id",
54
+ "name",
55
+ "image",
56
+ "public_ip",
57
+ "status",
58
+ "url",
59
+ "boot_time_ms",
60
+ "forked_from",
61
+ "restart_policy",
62
+ "disk_bytes",
63
+ "auto_suspend_timeout_secs",
64
+ "ssh_port",
65
+ )
66
+
47
67
  def __init__(self, async_box, loop: asyncio.AbstractEventLoop) -> None:
48
68
  from .box import Box as AsyncBox
49
69
 
@@ -52,7 +72,7 @@ class Box(_SyncBase):
52
72
 
53
73
  def __getattr__(self, name: str):
54
74
  # Forward data attributes from the async Box dataclass
55
- if name in ("id", "name", "image", "public_ip", "status", "url", "boot_time_ms"):
75
+ if name in self._DATA_ATTRS:
56
76
  return getattr(self._async, name)
57
77
  raise AttributeError(f"{type(self).__name__!r} object has no attribute {name!r}")
58
78
 
@@ -68,6 +88,14 @@ class Box(_SyncBase):
68
88
  """Destroy this VM."""
69
89
  self._run(self._async.destroy())
70
90
 
91
+ def move_to_org(self, org: str) -> None:
92
+ """Move this VM into an org — makes it visible to the whole org."""
93
+ self._run(self._async.move_to_org(org))
94
+
95
+ def leave_org(self) -> None:
96
+ """Move this VM back out of its org (to personal/private)."""
97
+ self._run(self._async.leave_org())
98
+
71
99
  def reboot(self) -> None:
72
100
  """Reboot this VM."""
73
101
  self._run(self._async.reboot())
@@ -247,17 +275,18 @@ class BoxService(_SyncBase):
247
275
  name: str = "",
248
276
  image: str = "",
249
277
  config: BoxConfig | None = None,
278
+ org: str | None = None,
250
279
  ) -> Box:
251
- """Create a new VM."""
252
- return self._wrap(self._run(self._async.create(name, image, config)))
280
+ """Create a new VM (pass ``org`` to create it in an org you're a member of)."""
281
+ return self._wrap(self._run(self._async.create(name, image, config, org)))
253
282
 
254
- def list(self) -> list[Box]:
255
- """List all VMs."""
256
- return [self._wrap(b) for b in self._run(self._async.list())]
283
+ def list(self, org: str | None = None) -> list[Box]:
284
+ """List VMs (personal by default; pass ``org`` for an org's VMs)."""
285
+ return [self._wrap(b) for b in self._run(self._async.list(org))]
257
286
 
258
- def get(self, vm_id: str) -> Box:
259
- """Get a VM by ID or name."""
260
- return self._wrap(self._run(self._async.get(vm_id)))
287
+ def get(self, vm_id: str, org: str | None = None) -> Box:
288
+ """Get a VM by ID or name (pass ``org`` to resolve a name in an org)."""
289
+ return self._wrap(self._run(self._async.get(vm_id, org)))
261
290
 
262
291
  def fork(
263
292
  self,
@@ -268,6 +297,10 @@ class BoxService(_SyncBase):
268
297
  """Fork (clone) a VM."""
269
298
  return self._wrap(self._run(self._async.fork(source, name, config)))
270
299
 
300
+ def list_orgs(self) -> list[OrgSummary]:
301
+ """List the organizations you belong to."""
302
+ return self._run(self._async.list_orgs())
303
+
271
304
 
272
305
  class TemplateService(_SyncBase):
273
306
  """Manage VM templates (synchronous API)."""
@@ -476,6 +509,7 @@ class Compute(_SyncBase):
476
509
  api_url: str | None = None,
477
510
  exchange_url: str | None = None,
478
511
  environment: str | None = None,
512
+ org: str | None = None,
479
513
  ) -> None:
480
514
  from .client import Compute as AsyncCompute
481
515
 
@@ -486,6 +520,7 @@ class Compute(_SyncBase):
486
520
  api_url=api_url,
487
521
  exchange_url=exchange_url,
488
522
  environment=environment,
523
+ org=org,
489
524
  )
490
525
  self.box = BoxService(self._async.box, self._loop)
491
526
  self.template = TemplateService(self._async.template, self._loop)
@@ -31,6 +31,7 @@ from .types import (
31
31
  LifecycleConfig,
32
32
  Network,
33
33
  NetworkConfig,
34
+ OrgSummary,
34
35
  Proxy,
35
36
  ProxyEntry,
36
37
  PtyInfo,
@@ -73,6 +74,7 @@ __all__ = [
73
74
  "ProxyEntry",
74
75
  "VolumeMount",
75
76
  "Proxy",
77
+ "OrgSummary",
76
78
  "Template",
77
79
  "Disk",
78
80
  "DiskAttachment",
@@ -53,6 +53,25 @@ class Box(GrpcCaller):
53
53
  await self._call("DestroyVm", api_pb2.DestroyVmRequest(vm_id=self.id))
54
54
  self.status = "destroyed"
55
55
 
56
+ async def move_to_org(self, org: str, shared: bool = False) -> None:
57
+ """Move this VM into an org: the org pays, but the VM stays PRIVATE
58
+ to you. Pass ``shared=True`` to make it visible to the whole org."""
59
+ await self._call(
60
+ "MoveVmToOrg",
61
+ api_pb2.MoveVmToOrgRequest(vm_id=self.id, org=org, shared=shared),
62
+ )
63
+
64
+ async def leave_org(self, keep_org_billing: bool = False) -> None:
65
+ """Move this VM out of its org. Default: fully personal (visibility
66
+ AND billing — your own quota must admit it). ``keep_org_billing=True``
67
+ unshares only: private to you again, still billed to the org."""
68
+ await self._call(
69
+ "RemoveVmFromOrg",
70
+ api_pb2.RemoveVmFromOrgRequest(
71
+ vm_id=self.id, keep_org_billing=keep_org_billing
72
+ ),
73
+ )
74
+
56
75
  async def reboot(self) -> None:
57
76
  """Reboot this VM."""
58
77
  await self._call("RebootVm", api_pb2.RebootVmRequest(vm_id=self.id))
@@ -9,7 +9,7 @@ import grpc.aio
9
9
  from ._generated import api_pb2
10
10
  from ._utils import GrpcCaller, parse_size
11
11
  from .errors import NotFoundError, from_grpc_error
12
- from .types import BoxConfig
12
+ from .types import BoxConfig, OrgSummary
13
13
 
14
14
  if TYPE_CHECKING:
15
15
  from .box import Box
@@ -98,9 +98,21 @@ class BoxService(GrpcCaller):
98
98
  name: str = "",
99
99
  image: str = "",
100
100
  config: BoxConfig | None = None,
101
+ org: str | None = None,
102
+ shared: bool = False,
101
103
  ) -> Box:
102
- """Create a new VM."""
104
+ """Create a new VM.
105
+
106
+ Pass ``org`` (or set the client-level ``org``) to create it in an org
107
+ you're a member of; empty = personal. The org pays either way; the VM
108
+ is PRIVATE to you unless ``shared=True`` makes it visible to the
109
+ whole org.
110
+ """
103
111
  req = api_pb2.CreateVmRequest(name=name)
112
+ scope = org if org is not None else self._client._org
113
+ if scope:
114
+ req.org = scope
115
+ req.shared = shared
104
116
  if image:
105
117
  req.image_ref = image
106
118
  if config:
@@ -119,15 +131,22 @@ class BoxService(GrpcCaller):
119
131
  resp = await self._call("CreateVm", req)
120
132
  return _vm_response_to_box(resp, self._client, has_url=True)
121
133
 
122
- async def list(self) -> list[Box]:
123
- """List all VMs."""
124
- resp = await self._call("ListVms", api_pb2.ListVmsRequest())
134
+ async def list(self, org: str | None = None) -> list[Box]:
135
+ """List VMs.
136
+
137
+ By default lists your personal VMs; pass ``org`` (or set the
138
+ client-level ``org``) to list that org's VMs — you must be a member.
139
+ """
140
+ scope = org if org is not None else self._client._org
141
+ resp = await self._call("ListVms", api_pb2.ListVmsRequest(org=scope))
125
142
  return [_vm_response_to_box(vm, self._client) for vm in resp.vms]
126
143
 
127
- async def get(self, vm_id: str) -> Box:
144
+ async def get(self, vm_id: str, org: str | None = None) -> Box:
128
145
  """Get a VM by ID or name.
129
146
 
130
- Tries by ID first; on NotFoundError falls back to name lookup.
147
+ Tries by ID first; on NotFoundError falls back to name lookup. For a
148
+ name in an org, pass ``org`` (or set the client-level ``org``) so the
149
+ name resolves within that org's VMs.
131
150
  """
132
151
  stub = await self._client._ensure_channel()
133
152
 
@@ -139,8 +158,8 @@ class BoxService(GrpcCaller):
139
158
  if not isinstance(err, NotFoundError):
140
159
  raise err from e
141
160
 
142
- # Fall back to name lookup via list
143
- all_vms = await self.list()
161
+ # Fall back to name lookup via list (scoped to org when given)
162
+ all_vms = await self.list(org)
144
163
  for vm in all_vms:
145
164
  if vm.name == vm_id:
146
165
  return vm
@@ -164,3 +183,10 @@ class BoxService(GrpcCaller):
164
183
 
165
184
  resp = await self._call("ForkVm", req)
166
185
  return _vm_response_to_box(resp, self._client, has_url=True)
186
+
187
+ async def list_orgs(self) -> list[OrgSummary]:
188
+ """List the organizations you belong to."""
189
+ resp = await self._call("ListOrgs", api_pb2.ListOrgsRequest())
190
+ return [
191
+ OrgSummary(id=o.id, name=o.name, is_admin=o.is_admin) for o in resp.orgs
192
+ ]
@@ -67,6 +67,7 @@ class Compute:
67
67
  api_url: str | None = None,
68
68
  exchange_url: str | None = None,
69
69
  environment: str | None = None,
70
+ org: str | None = None,
70
71
  ) -> None:
71
72
  env = _resolve_environment(environment)
72
73
  preset_api_url, preset_exchange_url = _ENVIRONMENT_URLS[env]
@@ -81,6 +82,9 @@ class Compute:
81
82
  or preset_exchange_url
82
83
  )
83
84
 
85
+ # Default org (name) for box.list()/box.get()/box.create(). "" = personal.
86
+ self._org = org or os.environ.get("BOXD_ORG") or ""
87
+
84
88
  resolved_key = api_key or os.environ.get("BOXD_API_KEY")
85
89
  resolved_token = token or os.environ.get("BOXD_TOKEN")
86
90
 
@@ -5,6 +5,15 @@ from __future__ import annotations
5
5
  from dataclasses import dataclass, field
6
6
 
7
7
 
8
+ @dataclass
9
+ class OrgSummary:
10
+ """An organization the caller belongs to."""
11
+
12
+ id: str
13
+ name: str
14
+ is_admin: bool
15
+
16
+
8
17
  @dataclass
9
18
  class BoxConfig:
10
19
  vcpu: int = 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boxd
3
- Version: 0.1.5.dev25
3
+ Version: 0.1.5.dev29
4
4
  Summary: Python SDK for the boxd cloud VM platform
5
5
  Author: Azin
6
6
  License-Expression: MIT
@@ -1,256 +0,0 @@
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: 6.31.1
6
- """Generated protocol buffer code."""
7
- from google.protobuf import descriptor as _descriptor
8
- from google.protobuf import descriptor_pool as _descriptor_pool
9
- from google.protobuf import runtime_version as _runtime_version
10
- from google.protobuf import symbol_database as _symbol_database
11
- from google.protobuf.internal import builder as _builder
12
- _runtime_version.ValidateProtobufRuntimeVersion(
13
- _runtime_version.Domain.PUBLIC,
14
- 6,
15
- 31,
16
- 1,
17
- '',
18
- '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\"\xac\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.VmConfigJ\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\"\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\"\x1d\n\x0cGetVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\xc3\x01\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\"\x10\n\x0eListVmsRequest\":\n\x0fListVmsResponse\x12\'\n\x03vms\x18\x01 \x03(\x0b\x32\x1a.boxd.api.v1.GetVmResponse\"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\"\x85\x01\n\x0eWhoamiResponse\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x1b\n\x13pubkey_fingerprints\x18\x02 \x03(\t\x12\x1a\n\x12\x64\x65\x66\x61ult_network_id\x18\x03 \x01(\t\x12)\n\x07\x62illing\x18\x04 \x01(\x0b\x32\x18.boxd.api.v1.BillingInfo\"\xac\x01\n\x0b\x42illingInfo\x12\x0c\n\x04tier\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x01(\t\x12\x1b\n\x13subscription_status\x18\x03 \x01(\t\x12\x1a\n\x12stripe_customer_id\x18\x04 \x01(\t\x12\x1e\n\x16stripe_subscription_id\x18\x05 \x01(\t\x12\x16\n\x0epast_due_since\x18\x06 \x01(\x03\x12\x0f\n\x07max_vms\x18\x07 \x01(\r\"\x12\n\x10ListPlansRequest\"9\n\x11ListPlansResponse\x12$\n\x05plans\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.PlanInfo\"\x89\x01\n\x08PlanInfo\x12\x0c\n\x04tier\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x01(\t\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(\x04\"\x13\n\x11GetBillingRequest\"?\n\x12GetBillingResponse\x12)\n\x07\x62illing\x18\x01 \x01(\x0b\x32\x18.boxd.api.v1.BillingInfo\"V\n\x1c\x43reateCheckoutSessionRequest\x12\r\n\x05shape\x18\x01 \x01(\t\x12\x13\n\x0bsuccess_url\x18\x02 \x01(\t\x12\x12\n\ncancel_url\x18\x03 \x01(\t\"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\x43hangeShapeRequest\x12\r\n\x05shape\x18\x01 \x01(\t\"4\n\x13\x43hangeShapeResponse\x12\r\n\x05shape\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \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\"Z\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\"\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\"%\n\x12ListProxiesRequest\x12\x0f\n\x07vm_name\x18\x01 \x01(\t\">\n\x13ListProxiesResponse\x12\'\n\x07proxies\x18\x01 \x03(\x0b\x32\x16.boxd.api.v1.ProxyInfo\"r\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\"A\n\x12\x43reateProxyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\"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\"3\n\x12\x44\x65leteProxyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\"\x15\n\x13\x44\x65leteProxyResponse\"B\n\x13SetProxyPortRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07vm_name\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \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\"_\n\x15\x43reateTemplateRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\timage_ref\x18\x02 \x01(\t\x12%\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\x15.boxd.api.v1.VmConfig\"K\n\x16\x43reateTemplateResponse\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\"\x16\n\x14ListTemplatesRequest\"E\n\x15ListTemplatesResponse\x12,\n\ttemplates\x18\x01 \x03(\x0b\x32\x19.boxd.api.v1.TemplateInfo\"x\n\x0cTemplateInfo\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\timage_ref\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x0c\n\x04vcpu\x18\x05 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x06 \x01(\x04\",\n\x15\x44\x65leteTemplateRequest\x12\x13\n\x0btemplate_id\x18\x01 \x01(\t\"\x18\n\x16\x44\x65leteTemplateResponse\"g\n\x1b\x43reateVmFromTemplateRequest\x12\x13\n\x0btemplate_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\"\x81\x01\n\x1c\x43reateVmFromTemplateResponse\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\x0e\n\x06status\x18\x05 \x01(\t\x12\x14\n\x0c\x62oot_time_ms\x18\x06 \x01(\x04\"5\n\x11\x43reateDiskRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nsize_bytes\x18\x02 \x01(\x04\"W\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(\t\"\x12\n\x10ListDisksRequest\"9\n\x11ListDisksResponse\x12$\n\x05\x64isks\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.DiskInfo\"\x92\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\x11\n\tworker_id\x18\x05 \x01(\t\x12\x30\n\x0b\x61ttachments\x18\x06 \x03(\x0b\x32\x1b.boxd.api.v1.DiskAttachment\"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\"<\n\x13\x43reateApiKeyRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0f\x65xpires_in_secs\x18\x02 \x01(\x04\"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\"x\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\"!\n\x13\x44\x65leteApiKeyRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x16\n\x14\x44\x65leteApiKeyResponse2\xfe\x1e\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\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\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\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\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\x12Y\n\x0e\x43reateTemplate\x12\".boxd.api.v1.CreateTemplateRequest\x1a#.boxd.api.v1.CreateTemplateResponse\x12V\n\rListTemplates\x12!.boxd.api.v1.ListTemplatesRequest\x1a\".boxd.api.v1.ListTemplatesResponse\x12Y\n\x0e\x44\x65leteTemplate\x12\".boxd.api.v1.DeleteTemplateRequest\x1a#.boxd.api.v1.DeleteTemplateResponse\x12k\n\x14\x43reateVmFromTemplate\x12(.boxd.api.v1.CreateVmFromTemplateRequest\x1a).boxd.api.v1.CreateVmFromTemplateResponse\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\x12P\n\x0b\x43hangeShape\x12\x1f.boxd.api.v1.ChangeShapeRequest\x1a .boxd.api.v1.ChangeShapeResponseb\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['_VMCONFIG']._serialized_start=27
35
- _globals['_VMCONFIG']._serialized_end=218
36
- _globals['_SRFCONFIG']._serialized_start=220
37
- _globals['_SRFCONFIG']._serialized_end=336
38
- _globals['_NETWORKCONFIG']._serialized_start=338
39
- _globals['_NETWORKCONFIG']._serialized_end=408
40
- _globals['_PROXYENTRY']._serialized_start=410
41
- _globals['_PROXYENTRY']._serialized_end=450
42
- _globals['_VOLUMEMOUNT']._serialized_start=452
43
- _globals['_VOLUMEMOUNT']._serialized_end=521
44
- _globals['_CREATEVMREQUEST']._serialized_start=524
45
- _globals['_CREATEVMREQUEST']._serialized_end=696
46
- _globals['_ENVVAR']._serialized_start=698
47
- _globals['_ENVVAR']._serialized_end=734
48
- _globals['_CREATEVMRESPONSE']._serialized_start=737
49
- _globals['_CREATEVMRESPONSE']._serialized_end=869
50
- _globals['_DESTROYVMREQUEST']._serialized_start=871
51
- _globals['_DESTROYVMREQUEST']._serialized_end=904
52
- _globals['_DESTROYVMRESPONSE']._serialized_start=906
53
- _globals['_DESTROYVMRESPONSE']._serialized_end=925
54
- _globals['_STARTVMREQUEST']._serialized_start=927
55
- _globals['_STARTVMREQUEST']._serialized_end=958
56
- _globals['_STARTVMRESPONSE']._serialized_start=960
57
- _globals['_STARTVMRESPONSE']._serialized_end=977
58
- _globals['_STOPVMREQUEST']._serialized_start=979
59
- _globals['_STOPVMREQUEST']._serialized_end=1009
60
- _globals['_STOPVMRESPONSE']._serialized_start=1011
61
- _globals['_STOPVMRESPONSE']._serialized_end=1027
62
- _globals['_REBOOTVMREQUEST']._serialized_start=1029
63
- _globals['_REBOOTVMREQUEST']._serialized_end=1061
64
- _globals['_REBOOTVMRESPONSE']._serialized_start=1063
65
- _globals['_REBOOTVMRESPONSE']._serialized_end=1081
66
- _globals['_SUSPENDVMREQUEST']._serialized_start=1083
67
- _globals['_SUSPENDVMREQUEST']._serialized_end=1116
68
- _globals['_SUSPENDVMRESPONSE']._serialized_start=1118
69
- _globals['_SUSPENDVMRESPONSE']._serialized_end=1157
70
- _globals['_RESUMEVMREQUEST']._serialized_start=1159
71
- _globals['_RESUMEVMREQUEST']._serialized_end=1191
72
- _globals['_RESUMEVMRESPONSE']._serialized_start=1193
73
- _globals['_RESUMEVMRESPONSE']._serialized_end=1230
74
- _globals['_GETVMREQUEST']._serialized_start=1232
75
- _globals['_GETVMREQUEST']._serialized_end=1261
76
- _globals['_GETVMRESPONSE']._serialized_start=1264
77
- _globals['_GETVMRESPONSE']._serialized_end=1459
78
- _globals['_LISTVMSREQUEST']._serialized_start=1461
79
- _globals['_LISTVMSREQUEST']._serialized_end=1477
80
- _globals['_LISTVMSRESPONSE']._serialized_start=1479
81
- _globals['_LISTVMSRESPONSE']._serialized_end=1537
82
- _globals['_STREAMLOGSREQUEST']._serialized_start=1539
83
- _globals['_STREAMLOGSREQUEST']._serialized_end=1589
84
- _globals['_LOGCHUNK']._serialized_start=1591
85
- _globals['_LOGCHUNK']._serialized_end=1615
86
- _globals['_EXECCHUNK']._serialized_start=1618
87
- _globals['_EXECCHUNK']._serialized_end=1811
88
- _globals['_CREATENETWORKREQUEST']._serialized_start=1813
89
- _globals['_CREATENETWORKREQUEST']._serialized_end=1849
90
- _globals['_CREATENETWORKRESPONSE']._serialized_start=1851
91
- _globals['_CREATENETWORKRESPONSE']._serialized_end=1894
92
- _globals['_LISTNETWORKSREQUEST']._serialized_start=1896
93
- _globals['_LISTNETWORKSREQUEST']._serialized_end=1917
94
- _globals['_LISTNETWORKSRESPONSE']._serialized_start=1919
95
- _globals['_LISTNETWORKSRESPONSE']._serialized_end=1985
96
- _globals['_NETWORKINFO']._serialized_start=1987
97
- _globals['_NETWORKINFO']._serialized_end=2052
98
- _globals['_BINDDOMAINREQUEST']._serialized_start=2054
99
- _globals['_BINDDOMAINREQUEST']._serialized_end=2104
100
- _globals['_BINDDOMAINRESPONSE']._serialized_start=2106
101
- _globals['_BINDDOMAINRESPONSE']._serialized_end=2126
102
- _globals['_UNBINDDOMAINREQUEST']._serialized_start=2128
103
- _globals['_UNBINDDOMAINREQUEST']._serialized_end=2165
104
- _globals['_UNBINDDOMAINRESPONSE']._serialized_start=2167
105
- _globals['_UNBINDDOMAINRESPONSE']._serialized_end=2189
106
- _globals['_LISTDOMAINSREQUEST']._serialized_start=2191
107
- _globals['_LISTDOMAINSREQUEST']._serialized_end=2211
108
- _globals['_LISTDOMAINSRESPONSE']._serialized_start=2213
109
- _globals['_LISTDOMAINSRESPONSE']._serialized_end=2276
110
- _globals['_DOMAININFO']._serialized_start=2278
111
- _globals['_DOMAININFO']._serialized_end=2321
112
- _globals['_GETCONFIGREQUEST']._serialized_start=2323
113
- _globals['_GETCONFIGREQUEST']._serialized_end=2341
114
- _globals['_GETCONFIGRESPONSE']._serialized_start=2343
115
- _globals['_GETCONFIGRESPONSE']._serialized_end=2399
116
- _globals['_WHOAMIREQUEST']._serialized_start=2401
117
- _globals['_WHOAMIREQUEST']._serialized_end=2416
118
- _globals['_WHOAMIRESPONSE']._serialized_start=2419
119
- _globals['_WHOAMIRESPONSE']._serialized_end=2552
120
- _globals['_BILLINGINFO']._serialized_start=2555
121
- _globals['_BILLINGINFO']._serialized_end=2727
122
- _globals['_LISTPLANSREQUEST']._serialized_start=2729
123
- _globals['_LISTPLANSREQUEST']._serialized_end=2747
124
- _globals['_LISTPLANSRESPONSE']._serialized_start=2749
125
- _globals['_LISTPLANSRESPONSE']._serialized_end=2806
126
- _globals['_PLANINFO']._serialized_start=2809
127
- _globals['_PLANINFO']._serialized_end=2946
128
- _globals['_GETBILLINGREQUEST']._serialized_start=2948
129
- _globals['_GETBILLINGREQUEST']._serialized_end=2967
130
- _globals['_GETBILLINGRESPONSE']._serialized_start=2969
131
- _globals['_GETBILLINGRESPONSE']._serialized_end=3032
132
- _globals['_CREATECHECKOUTSESSIONREQUEST']._serialized_start=3034
133
- _globals['_CREATECHECKOUTSESSIONREQUEST']._serialized_end=3120
134
- _globals['_CREATECHECKOUTSESSIONRESPONSE']._serialized_start=3122
135
- _globals['_CREATECHECKOUTSESSIONRESPONSE']._serialized_end=3175
136
- _globals['_CREATEBILLINGPORTALSESSIONREQUEST']._serialized_start=3177
137
- _globals['_CREATEBILLINGPORTALSESSIONREQUEST']._serialized_end=3232
138
- _globals['_CREATEBILLINGPORTALSESSIONRESPONSE']._serialized_start=3234
139
- _globals['_CREATEBILLINGPORTALSESSIONRESPONSE']._serialized_end=3290
140
- _globals['_CHANGESHAPEREQUEST']._serialized_start=3292
141
- _globals['_CHANGESHAPEREQUEST']._serialized_end=3327
142
- _globals['_CHANGESHAPERESPONSE']._serialized_start=3329
143
- _globals['_CHANGESHAPERESPONSE']._serialized_end=3381
144
- _globals['_CREATETOKENREQUEST']._serialized_start=3383
145
- _globals['_CREATETOKENREQUEST']._serialized_end=3428
146
- _globals['_CREATETOKENRESPONSE']._serialized_start=3430
147
- _globals['_CREATETOKENRESPONSE']._serialized_end=3486
148
- _globals['_LISTTOKENSREQUEST']._serialized_start=3488
149
- _globals['_LISTTOKENSREQUEST']._serialized_end=3507
150
- _globals['_LISTTOKENSRESPONSE']._serialized_start=3509
151
- _globals['_LISTTOKENSRESPONSE']._serialized_end=3569
152
- _globals['_TOKENINFO']._serialized_start=3571
153
- _globals['_TOKENINFO']._serialized_end=3635
154
- _globals['_REVOKETOKENREQUEST']._serialized_start=3637
155
- _globals['_REVOKETOKENREQUEST']._serialized_end=3670
156
- _globals['_REVOKETOKENRESPONSE']._serialized_start=3672
157
- _globals['_REVOKETOKENRESPONSE']._serialized_end=3693
158
- _globals['_FORKVMREQUEST']._serialized_start=3695
159
- _globals['_FORKVMREQUEST']._serialized_end=3785
160
- _globals['_FORKVMRESPONSE']._serialized_start=3788
161
- _globals['_FORKVMRESPONSE']._serialized_end=3939
162
- _globals['_LISTPROXIESREQUEST']._serialized_start=3941
163
- _globals['_LISTPROXIESREQUEST']._serialized_end=3978
164
- _globals['_LISTPROXIESRESPONSE']._serialized_start=3980
165
- _globals['_LISTPROXIESRESPONSE']._serialized_end=4042
166
- _globals['_PROXYINFO']._serialized_start=4044
167
- _globals['_PROXYINFO']._serialized_end=4158
168
- _globals['_CREATEPROXYREQUEST']._serialized_start=4160
169
- _globals['_CREATEPROXYREQUEST']._serialized_end=4225
170
- _globals['_CREATEPROXYRESPONSE']._serialized_start=4227
171
- _globals['_CREATEPROXYRESPONSE']._serialized_end=4309
172
- _globals['_DELETEPROXYREQUEST']._serialized_start=4311
173
- _globals['_DELETEPROXYREQUEST']._serialized_end=4362
174
- _globals['_DELETEPROXYRESPONSE']._serialized_start=4364
175
- _globals['_DELETEPROXYRESPONSE']._serialized_end=4385
176
- _globals['_SETPROXYPORTREQUEST']._serialized_start=4387
177
- _globals['_SETPROXYPORTREQUEST']._serialized_end=4453
178
- _globals['_SETPROXYPORTRESPONSE']._serialized_start=4455
179
- _globals['_SETPROXYPORTRESPONSE']._serialized_end=4477
180
- _globals['_UPLOADFILEREQUEST']._serialized_start=4479
181
- _globals['_UPLOADFILEREQUEST']._serialized_end=4541
182
- _globals['_UPLOADFILERESPONSE']._serialized_start=4543
183
- _globals['_UPLOADFILERESPONSE']._serialized_end=4586
184
- _globals['_UPLOADFILECHUNK']._serialized_start=4588
185
- _globals['_UPLOADFILECHUNK']._serialized_end=4668
186
- _globals['_DOWNLOADFILEREQUEST']._serialized_start=4670
187
- _globals['_DOWNLOADFILEREQUEST']._serialized_end=4720
188
- _globals['_DOWNLOADFILERESPONSE']._serialized_start=4722
189
- _globals['_DOWNLOADFILERESPONSE']._serialized_end=4758
190
- _globals['_CREATETEMPLATEREQUEST']._serialized_start=4760
191
- _globals['_CREATETEMPLATEREQUEST']._serialized_end=4855
192
- _globals['_CREATETEMPLATERESPONSE']._serialized_start=4857
193
- _globals['_CREATETEMPLATERESPONSE']._serialized_end=4932
194
- _globals['_LISTTEMPLATESREQUEST']._serialized_start=4934
195
- _globals['_LISTTEMPLATESREQUEST']._serialized_end=4956
196
- _globals['_LISTTEMPLATESRESPONSE']._serialized_start=4958
197
- _globals['_LISTTEMPLATESRESPONSE']._serialized_end=5027
198
- _globals['_TEMPLATEINFO']._serialized_start=5029
199
- _globals['_TEMPLATEINFO']._serialized_end=5149
200
- _globals['_DELETETEMPLATEREQUEST']._serialized_start=5151
201
- _globals['_DELETETEMPLATEREQUEST']._serialized_end=5195
202
- _globals['_DELETETEMPLATERESPONSE']._serialized_start=5197
203
- _globals['_DELETETEMPLATERESPONSE']._serialized_end=5221
204
- _globals['_CREATEVMFROMTEMPLATEREQUEST']._serialized_start=5223
205
- _globals['_CREATEVMFROMTEMPLATEREQUEST']._serialized_end=5326
206
- _globals['_CREATEVMFROMTEMPLATERESPONSE']._serialized_start=5329
207
- _globals['_CREATEVMFROMTEMPLATERESPONSE']._serialized_end=5458
208
- _globals['_CREATEDISKREQUEST']._serialized_start=5460
209
- _globals['_CREATEDISKREQUEST']._serialized_end=5513
210
- _globals['_CREATEDISKRESPONSE']._serialized_start=5515
211
- _globals['_CREATEDISKRESPONSE']._serialized_end=5602
212
- _globals['_LISTDISKSREQUEST']._serialized_start=5604
213
- _globals['_LISTDISKSREQUEST']._serialized_end=5622
214
- _globals['_LISTDISKSRESPONSE']._serialized_start=5624
215
- _globals['_LISTDISKSRESPONSE']._serialized_end=5681
216
- _globals['_DISKINFO']._serialized_start=5684
217
- _globals['_DISKINFO']._serialized_end=5830
218
- _globals['_DISKATTACHMENT']._serialized_start=5832
219
- _globals['_DISKATTACHMENT']._serialized_end=5920
220
- _globals['_ATTACHDISKREQUEST']._serialized_start=5922
221
- _globals['_ATTACHDISKREQUEST']._serialized_end=6012
222
- _globals['_ATTACHDISKRESPONSE']._serialized_start=6014
223
- _globals['_ATTACHDISKRESPONSE']._serialized_end=6034
224
- _globals['_DETACHDISKREQUEST']._serialized_start=6036
225
- _globals['_DETACHDISKREQUEST']._serialized_end=6087
226
- _globals['_DETACHDISKRESPONSE']._serialized_start=6089
227
- _globals['_DETACHDISKRESPONSE']._serialized_end=6109
228
- _globals['_DESTROYDISKREQUEST']._serialized_start=6111
229
- _globals['_DESTROYDISKREQUEST']._serialized_end=6148
230
- _globals['_DESTROYDISKRESPONSE']._serialized_start=6150
231
- _globals['_DESTROYDISKRESPONSE']._serialized_end=6171
232
- _globals['_SETAUTOSUSPENDTIMEOUTREQUEST']._serialized_start=6173
233
- _globals['_SETAUTOSUSPENDTIMEOUTREQUEST']._serialized_end=6240
234
- _globals['_SETAUTOSUSPENDTIMEOUTRESPONSE']._serialized_start=6242
235
- _globals['_SETAUTOSUSPENDTIMEOUTRESPONSE']._serialized_end=6273
236
- _globals['_SETAUTOHIBERNATETIMEOUTREQUEST']._serialized_start=6275
237
- _globals['_SETAUTOHIBERNATETIMEOUTREQUEST']._serialized_end=6344
238
- _globals['_SETAUTOHIBERNATETIMEOUTRESPONSE']._serialized_start=6346
239
- _globals['_SETAUTOHIBERNATETIMEOUTRESPONSE']._serialized_end=6379
240
- _globals['_CREATEAPIKEYREQUEST']._serialized_start=6381
241
- _globals['_CREATEAPIKEYREQUEST']._serialized_end=6441
242
- _globals['_CREATEAPIKEYRESPONSE']._serialized_start=6443
243
- _globals['_CREATEAPIKEYRESPONSE']._serialized_end=6514
244
- _globals['_LISTAPIKEYSREQUEST']._serialized_start=6516
245
- _globals['_LISTAPIKEYSREQUEST']._serialized_end=6536
246
- _globals['_LISTAPIKEYSRESPONSE']._serialized_start=6538
247
- _globals['_LISTAPIKEYSRESPONSE']._serialized_end=6598
248
- _globals['_APIKEYINFO']._serialized_start=6600
249
- _globals['_APIKEYINFO']._serialized_end=6720
250
- _globals['_DELETEAPIKEYREQUEST']._serialized_start=6722
251
- _globals['_DELETEAPIKEYREQUEST']._serialized_end=6755
252
- _globals['_DELETEAPIKEYRESPONSE']._serialized_start=6757
253
- _globals['_DELETEAPIKEYRESPONSE']._serialized_end=6779
254
- _globals['_BOXDAPI']._serialized_start=6782
255
- _globals['_BOXDAPI']._serialized_end=10748
256
- # @@protoc_insertion_point(module_scope)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes