boxd 0.2.13.dev750__tar.gz → 0.2.13.dev751__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {boxd-0.2.13.dev750/src/boxd.egg-info → boxd-0.2.13.dev751}/PKG-INFO +19 -2
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/README.md +18 -1
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/pyproject.toml +1 -1
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_generated/api_pb2.py +140 -140
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_mappers.py +2 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/models.py +7 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/machines.py +12 -2
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751/src/boxd.egg-info}/PKG-INFO +19 -2
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/tests/test_namespaces.py +2 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/LICENSE +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/setup.cfg +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/__init__.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_client.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_credentials.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_generated/__init__.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_generated/api_pb2_grpc.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_requests.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_streaming.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_transport.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_urls.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/_version_check.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/errors.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/__init__.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/account.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/credentials.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/disks.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/domains.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/orgs.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/snapshots.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/teams.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd/resources/vars.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd.egg-info/SOURCES.txt +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd.egg-info/dependency_links.txt +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd.egg-info/requires.txt +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/src/boxd.egg-info/top_level.txt +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/tests/test_credentials.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/tests/test_mappers.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/tests/test_requests.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/tests/test_streaming.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/tests/test_transport.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/tests/test_urls.py +0 -0
- {boxd-0.2.13.dev750 → boxd-0.2.13.dev751}/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.13.
|
|
3
|
+
Version: 0.2.13.dev751
|
|
4
4
|
Summary: Python SDK for the boxd cloud VM platform
|
|
5
5
|
Author: Azin
|
|
6
6
|
License-Expression: MIT
|
|
@@ -766,10 +766,11 @@ and admins only; an API key issued for the org works too.
|
|
|
766
766
|
from datetime import datetime, timezone
|
|
767
767
|
|
|
768
768
|
# One machine over its whole life, or pass since=/until= (datetime or unix
|
|
769
|
-
# seconds). A deleted machine is found by its id.
|
|
769
|
+
# seconds). A deleted machine is found by its id or name (org= says where to look).
|
|
770
770
|
u = boxd.machines.usage("my-machine")
|
|
771
771
|
u.seconds.running, u.seconds.standby, u.seconds.hibernated, u.seconds.stopped
|
|
772
772
|
u.cost_micro / 1e6 # estimated cost, in u.currency ("eur" | "usd")
|
|
773
|
+
u.complete # True once all its usage is metered (see below)
|
|
773
774
|
u.period.start, u.period.end
|
|
774
775
|
u.vcpu_hours, u.ram_gib_hours, u.disk_gib_hours # what the cost is priced on
|
|
775
776
|
u.rates # ...at these rates, per unit-hour
|
|
@@ -785,6 +786,22 @@ for e in boxd.orgs.ledger(since=datetime(2026, 9, 1, tzinfo=timezone.utc)):
|
|
|
785
786
|
print(e.created_at, e.kind, e.amount_micro / 1e6) # charges are negative
|
|
786
787
|
```
|
|
787
788
|
|
|
789
|
+
To record what a machine cost after deleting it, wait for `complete`:
|
|
790
|
+
metering lags by up to ~25 minutes, so the figure read right after `delete()`
|
|
791
|
+
is still growing.
|
|
792
|
+
|
|
793
|
+
```python
|
|
794
|
+
boxd.machines.delete(machine_id)
|
|
795
|
+
# ...a little later, or from a periodic job:
|
|
796
|
+
u = boxd.machines.usage(machine_id)
|
|
797
|
+
if u.complete:
|
|
798
|
+
save(machine_id, u.cost_micro, u.currency) # otherwise try again later
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
`orgs.usage()` carries the same flag on every machine, so one periodic call can
|
|
802
|
+
settle all of them. A machine that still exists is never complete in a window
|
|
803
|
+
that runs to now.
|
|
804
|
+
|
|
788
805
|
Money is in micro-units (1e-6) of the org's currency. Usage is metered in
|
|
789
806
|
15-minute buckets and priced at the org's current rates, so it is an estimate
|
|
790
807
|
that tracks the ledger closely; the ledger is what was charged (one
|
|
@@ -734,10 +734,11 @@ and admins only; an API key issued for the org works too.
|
|
|
734
734
|
from datetime import datetime, timezone
|
|
735
735
|
|
|
736
736
|
# One machine over its whole life, or pass since=/until= (datetime or unix
|
|
737
|
-
# seconds). A deleted machine is found by its id.
|
|
737
|
+
# seconds). A deleted machine is found by its id or name (org= says where to look).
|
|
738
738
|
u = boxd.machines.usage("my-machine")
|
|
739
739
|
u.seconds.running, u.seconds.standby, u.seconds.hibernated, u.seconds.stopped
|
|
740
740
|
u.cost_micro / 1e6 # estimated cost, in u.currency ("eur" | "usd")
|
|
741
|
+
u.complete # True once all its usage is metered (see below)
|
|
741
742
|
u.period.start, u.period.end
|
|
742
743
|
u.vcpu_hours, u.ram_gib_hours, u.disk_gib_hours # what the cost is priced on
|
|
743
744
|
u.rates # ...at these rates, per unit-hour
|
|
@@ -753,6 +754,22 @@ for e in boxd.orgs.ledger(since=datetime(2026, 9, 1, tzinfo=timezone.utc)):
|
|
|
753
754
|
print(e.created_at, e.kind, e.amount_micro / 1e6) # charges are negative
|
|
754
755
|
```
|
|
755
756
|
|
|
757
|
+
To record what a machine cost after deleting it, wait for `complete`:
|
|
758
|
+
metering lags by up to ~25 minutes, so the figure read right after `delete()`
|
|
759
|
+
is still growing.
|
|
760
|
+
|
|
761
|
+
```python
|
|
762
|
+
boxd.machines.delete(machine_id)
|
|
763
|
+
# ...a little later, or from a periodic job:
|
|
764
|
+
u = boxd.machines.usage(machine_id)
|
|
765
|
+
if u.complete:
|
|
766
|
+
save(machine_id, u.cost_micro, u.currency) # otherwise try again later
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
`orgs.usage()` carries the same flag on every machine, so one periodic call can
|
|
770
|
+
settle all of them. A machine that still exists is never complete in a window
|
|
771
|
+
that runs to now.
|
|
772
|
+
|
|
756
773
|
Money is in micro-units (1e-6) of the org's currency. Usage is metered in
|
|
757
774
|
15-minute buckets and priced at the org's current rates, so it is an estimate
|
|
758
775
|
that tracks the ledger closely; the ledger is what was charged (one
|
|
@@ -24,7 +24,7 @@ _sym_db = _symbol_database.Default()
|
|
|
24
24
|
|
|
25
25
|
|
|
26
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\"\xfb\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(\x08\x12\x0c\n\x04team\x18\r \x01(\tJ\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\"6\n\x17SetVmEgressAllowRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x0f\n\x07\x65ntries\x18\x02 \x03(\t\"+\n\x18SetVmEgressAllowResponse\x12\x0f\n\x07\x65ntries\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\"g\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(\t\x12\x0f\n\x07\x64omains\x18\x06 \x03(\t\"\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\"Z\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(\t\x12\x0f\n\x07\x64omains\x18\x06 \x03(\tJ\x04\x08\x05\x10\x06\"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\"\xb4\x05\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\x12\x35\n\x0e\x63ustom_domains\x18\x1b \x03(\x0b\x32\x1d.boxd.api.v1.CustomDomainInfo\x12\x14\n\x0c\x65gress_allow\x18\x1c \x03(\t\x12\x16\n\x0e\x62ot_protection\x18\x1d \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\x0c\x44\x65sktopChunk\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"$\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\"7\n\x16\x41\x64\x64\x43ustomDomainRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\"H\n\x17\x41\x64\x64\x43ustomDomainResponse\x12-\n\x06\x64omain\x18\x01 \x01(\x0b\x32\x1d.boxd.api.v1.CustomDomainInfo\"\x1a\n\x18ListCustomDomainsRequest\"K\n\x19ListCustomDomainsResponse\x12.\n\x07\x64omains\x18\x01 \x03(\x0b\x32\x1d.boxd.api.v1.CustomDomainInfo\"+\n\x19RemoveCustomDomainRequest\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\"\x1c\n\x1aRemoveCustomDomainResponse\"f\n\x10\x43ustomDomainInfo\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\r\n\x05vm_id\x18\x02 \x01(\t\x12\x0f\n\x07vm_name\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x12\n\nlast_error\x18\x05 \x01(\t\"5\n\x13SetOrgDomainRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\"B\n\x14SetOrgDomainResponse\x12*\n\x06\x64omain\x18\x01 \x01(\x0b\x32\x1a.boxd.api.v1.OrgDomainInfo\"%\n\x13GetOrgDomainRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"B\n\x14GetOrgDomainResponse\x12*\n\x06\x64omain\x18\x01 \x01(\x0b\x32\x1a.boxd.api.v1.OrgDomainInfo\"\'\n\x15\x43learOrgDomainRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"\x18\n\x16\x43learOrgDomainResponse\"S\n\rOrgDomainInfo\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x12\n\nlast_error\x18\x04 \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\"\xbb\x02\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(\x04\x12\x15\n\rbalance_micro\x18\n \x01(\x03\x12\x14\n\x0c\x62illing_mode\x18\x0b \x01(\t\x12\x10\n\x08\x63urrency\x18\x0c \x01(\t\x12\x14\n\x0c\x63\x65iling_vcpu\x18\r \x01(\r\x12\x1c\n\x14\x63\x65iling_memory_bytes\x18\x0e \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\x10\n\x08\x65ndpoint\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\"5\n\x11\x44ownloadFileChunk\x12\x12\n\ntotal_size\x18\x01 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"-\n\x0eListDirRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"x\n\x08\x44irEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06is_dir\x18\x02 \x01(\x08\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x13\n\x0bpermissions\x18\x04 \x01(\t\x12\x13\n\x0bmodified_at\x18\x05 \x01(\x03\x12\x10\n\x08\x61\x64\x64\x65\x64_at\x18\x06 \x01(\x03\"L\n\x0fListDirResponse\x12&\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.DirEntry\x12\x11\n\ttruncated\x18\x02 \x01(\x08\"+\n\x0cMkdirRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x0f\n\rMkdirResponse\"F\n\x11RenamePathRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x10\n\x08old_path\x18\x02 \x01(\t\x12\x10\n\x08new_path\x18\x03 \x01(\t\"\x14\n\x12RenamePathResponse\"0\n\x11\x44\x65letePathRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x14\n\x12\x44\x65letePathResponse\"D\n\x0f\x43opyPathRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x10\n\x08old_path\x18\x02 \x01(\t\x12\x10\n\x08new_path\x18\x03 \x01(\t\"\x12\n\x10\x43opyPathResponse\"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\"9\n\x17SetBotProtectionRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"\x1a\n\x18SetBotProtectionResponse\"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\"\xd4\x02\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\x12\x15\n\rbalance_micro\x18\t \x01(\x03\x12\x14\n\x0c\x62illing_mode\x18\n \x01(\t\x12\x1b\n\x0e\x61\x63\x63ruing_micro\x18\x0b \x01(\x03H\x00\x88\x01\x01\x12\x10\n\x08\x63urrency\x18\x0c \x01(\t\x12\x14\n\x0c\x63\x65iling_vcpu\x18\r \x01(\r\x12\x1c\n\x14\x63\x65iling_memory_bytes\x18\x0e \x01(\x04\x42\x11\n\x0f_accruing_micro\"l\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(\t\x12\x12\n\nowner_name\x18\x06 \x01(\tJ\x04\x08\x04\x10\x05R\x05shape\"^\n\nUsageRates\x12\x17\n\x0fvcpu_hour_micro\x18\x01 \x01(\x03\x12\x1a\n\x12ram_gib_hour_micro\x18\x02 \x01(\x03\x12\x1b\n\x13\x64isk_gib_hour_micro\x18\x03 \x01(\x03\"U\n\x0cStateSeconds\x12\x0f\n\x07running\x18\x01 \x01(\x04\x12\x0f\n\x07standby\x18\x02 \x01(\x04\x12\x12\n\nhibernated\x18\x03 \x01(\x04\x12\x0f\n\x07stopped\x18\x04 \x01(\x04\"\xa5\x02\n\x07VmUsage\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05owner\x18\x03 \x01(\t\x12\x12\n\nowner_name\x18\x04 \x01(\t\x12\x0f\n\x07sharing\x18\x05 \x01(\t\x12\x0e\n\x06status\x18\x06 \x01(\t\x12\x0c\n\x04vcpu\x18\x07 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x08 \x01(\x04\x12\x12\n\ndisk_bytes\x18\t \x01(\x04\x12*\n\x07seconds\x18\n \x01(\x0b\x32\x19.boxd.api.v1.StateSeconds\x12\x12\n\nvcpu_hours\x18\x0b \x01(\x01\x12\x15\n\rram_gib_hours\x18\x0c \x01(\x01\x12\x16\n\x0e\x64isk_gib_hours\x18\r \x01(\x01\x12\x12\n\ncost_micro\x18\x0e \x01(\x03\"?\n\x12GetOrgUsageRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\r\n\x05since\x18\x02 \x01(\x03\x12\r\n\x05until\x18\x03 \x01(\x03\"\xd3\x01\n\x13GetOrgUsageResponse\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0b\n\x03org\x18\x02 \x01(\t\x12\x14\n\x0cperiod_start\x18\x03 \x01(\x03\x12\x12\n\nperiod_end\x18\x04 \x01(\x03\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x12&\n\x05rates\x18\x06 \x01(\x0b\x32\x17.boxd.api.v1.UsageRates\x12\x18\n\x10total_cost_micro\x18\x07 \x01(\x03\x12!\n\x03vms\x18\x08 \x03(\x0b\x32\x14.boxd.api.v1.VmUsage\"@\n\x11GetVmUsageRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\r\n\x05since\x18\x02 \x01(\x03\x12\r\n\x05until\x18\x03 \x01(\x03\"\x9d\x01\n\x12GetVmUsageResponse\x12\x14\n\x0cperiod_start\x18\x01 \x01(\x03\x12\x12\n\nperiod_end\x18\x02 \x01(\x03\x12\x10\n\x08\x63urrency\x18\x03 \x01(\t\x12&\n\x05rates\x18\x04 \x01(\x0b\x32\x17.boxd.api.v1.UsageRates\x12#\n\x05usage\x18\x05 \x01(\x0b\x32\x14.boxd.api.v1.VmUsage\"k\n\x17ListCreditLedgerRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\r\n\x05since\x18\x02 \x01(\x03\x12\r\n\x05until\x18\x03 \x01(\x03\x12\x12\n\npage_token\x18\x04 \x01(\t\x12\x11\n\tpage_size\x18\x05 \x01(\r\"]\n\x11\x43reditLedgerEntry\x12\x10\n\x08\x65ntry_id\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x14\n\x0c\x61mount_micro\x18\x03 \x01(\x03\x12\x12\n\ncreated_at\x18\x04 \x01(\x03\"\x8d\x01\n\x18ListCreditLedgerResponse\x12\x10\n\x08\x63urrency\x18\x01 \x01(\t\x12\x15\n\rbalance_micro\x18\x02 \x01(\x03\x12/\n\x07\x65ntries\x18\x03 \x03(\x0b\x32\x1e.boxd.api.v1.CreditLedgerEntry\x12\x17\n\x0fnext_page_token\x18\x04 \x01(\t\"!\n\x10UnshareVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x13\n\x11UnshareVmResponse\"m\n\x18SetBackupScheduleRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x15\n\rschedule_kind\x18\x02 \x01(\t\x12\x16\n\x0eschedule_value\x18\x03 \x01(\t\x12\x16\n\x0eretention_secs\x18\x04 \x01(\r\"\x1b\n\x19SetBackupScheduleResponse\"(\n\x1a\x43learBackupScheduleRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"\x1d\n\x1b\x43learBackupScheduleResponse\"&\n\x18GetBackupScheduleRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"\xa3\x01\n\x19GetBackupScheduleResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x15\n\rschedule_kind\x18\x02 \x01(\t\x12\x16\n\x0eschedule_value\x18\x03 \x01(\t\x12\x16\n\x0eretention_secs\x18\x04 \x01(\r\x12\x16\n\x0enext_backup_at\x18\x05 \x01(\x03\x12\x16\n\x0elast_backup_at\x18\x06 \x01(\x03\" \n\x12ListBackupsRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"\x9a\x01\n\nBackupInfo\x12\x11\n\tbackup_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x10\n\x08\x63hecksum\x18\x04 \x01(\t\x12\x1b\n\x13points_to_backup_id\x18\x05 \x01(\t\x12\x12\n\ncreated_at\x18\x06 \x01(\x03\x12\x12\n\nexpires_at\x18\x07 \x01(\x03\"?\n\x13ListBackupsResponse\x12(\n\x07\x62\x61\x63kups\x18\x01 \x03(\x0b\x32\x17.boxd.api.v1.BackupInfo\"\"\n\x14TriggerBackupRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"*\n\x15TriggerBackupResponse\x12\x11\n\tbackup_id\x18\x01 \x01(\t\"4\n\x13\x44\x65leteBackupRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x11\n\tbackup_id\x18\x02 \x01(\t\"\x16\n\x14\x44\x65leteBackupResponse\"5\n\x14RestoreBackupRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x11\n\tbackup_id\x18\x02 \x01(\t\"\x17\n\x15RestoreBackupResponse\"\x87\x01\n\x1bSetOrgBackupsDefaultRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x18\n\x0bperiod_secs\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0eretention_secs\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x0e\n\x0c_period_secsB\x11\n\x0f_retention_secs\"\\\n\x1cSetOrgBackupsDefaultResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x13\n\x0bperiod_secs\x18\x02 \x01(\r\x12\x16\n\x0eretention_secs\x18\x03 \x01(\r\"-\n\x1bGetOrgBackupsDefaultRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"\\\n\x1cGetOrgBackupsDefaultResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x13\n\x0bperiod_secs\x18\x02 \x01(\r\x12\x16\n\x0eretention_secs\x18\x03 \x01(\r\"v\n\x1cSetOrgMachineDefaultsRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x11\n\x04vcpu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\x07\n\x05_vcpuB\x0f\n\r_memory_bytes\"\x1f\n\x1dSetOrgMachineDefaultsResponse\".\n\x1cGetOrgMachineDefaultsRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"D\n\x0fResizeVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04vcpu\x18\x02 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x03 \x01(\x04\"H\n\x10ResizeVmResponse\x12\x0c\n\x04vcpu\x18\x01 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x02 \x01(\x04\x12\x10\n\x08rebooted\x18\x03 \x01(\x08\"\x84\x01\n\x1dGetOrgMachineDefaultsResponse\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0c\n\x04vcpu\x18\x02 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x03 \x01(\x04\x12\x14\n\x0c\x63\x65iling_vcpu\x18\x04 \x01(\r\x12\x1c\n\x14\x63\x65iling_memory_bytes\x18\x05 \x01(\x04\" \n\x10\x43reateOrgRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"-\n\x11\x43reateOrgResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"0\n\x10RenameOrgRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x13\n\x11RenameOrgResponse\"&\n\x14GetOrgMembersRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"q\n\x15GetOrgMembersResponse\x12+\n\x07members\x18\x01 \x03(\x0b\x32\x1a.boxd.api.v1.OrgMemberInfo\x12+\n\x07invites\x18\x02 \x03(\x0b\x32\x1a.boxd.api.v1.OrgInviteInfo\"]\n\rOrgMemberInfo\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0c\n\x04role\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x17\n\x0fgithub_username\x18\x04 \x01(\t\"w\n\rOrgInviteInfo\x12\r\n\x05token\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x12\n\naccept_url\x18\x03 \x01(\t\x12\x12\n\ncreated_at\x18\x04 \x01(\x03\x12\x12\n\nexpires_at\x18\x05 \x01(\x03\x12\x0c\n\x04role\x18\x06 \x01(\t\"E\n\x16InviteOrgMemberRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"d\n\x17InviteOrgMemberResponse\x12\r\n\x05token\x18\x01 \x01(\t\x12\x12\n\naccept_url\x18\x02 \x01(\t\x12\x12\n\nexpires_at\x18\x03 \x01(\x03\x12\x12\n\ncreated_at\x18\x04 \x01(\x03\"\'\n\x16RevokeOrgInviteRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\x19\n\x17RevokeOrgInviteResponse\"9\n\x16RemoveOrgMemberRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x19\n\x17RemoveOrgMemberResponse\"H\n\x17SetOrgMemberRoleRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"\x1a\n\x18SetOrgMemberRoleResponse\"\xc1\x01\n\x08TeamInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06org_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x1a\n\x12\x63reated_by_user_id\x18\x04 \x01(\t\x12\x12\n\ncreated_at\x18\x05 \x01(\x03\x12\x10\n\x08is_admin\x18\x06 \x01(\x08\x12,\n\x07members\x18\x07 \x03(\x0b\x32\x1b.boxd.api.v1.TeamMemberInfo\x12\x1b\n\x13\x64\x65\x66\x61ult_snapshot_id\x18\x08 \x01(\t\"p\n\x0eTeamMemberInfo\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0c\n\x04role\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x17\n\x0fgithub_username\x18\x04 \x01(\t\x12\x10\n\x08\x61\x64\x64\x65\x64_at\x18\x05 \x01(\x03\"\"\n\x10ListTeamsRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"9\n\x11ListTeamsResponse\x12$\n\x05teams\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.TeamInfo\"!\n\x0eGetTeamRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\"1\n\x11\x43reateTeamRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"2\n\x11RenameTeamRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x14\n\x12RenameTeamResponse\"%\n\x12\x44\x65stroyTeamRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65stroyTeamResponse\"8\n\x14\x41\x64\x64TeamMemberRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x17\n\x15\x41\x64\x64TeamMemberResponse\";\n\x17RemoveTeamMemberRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x1a\n\x18RemoveTeamMemberResponse\"J\n\x18SetTeamMemberRoleRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"\x1b\n\x19SetTeamMemberRoleResponse\"E\n\x1dSetTeamDefaultSnapshotRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x13\n\x0bsnapshot_id\x18\x02 \x01(\t\" \n\x1eSetTeamDefaultSnapshotResponse2\xfeJ\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_\n\x10SetVmEgressAllow\x12$.boxd.api.v1.SetVmEgressAllowRequest\x1a%.boxd.api.v1.SetVmEgressAllowResponse\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\x12I\n\rDesktopTunnel\x12\x19.boxd.api.v1.DesktopChunk\x1a\x19.boxd.api.v1.DesktopChunk(\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\x12\\\n\x0f\x41\x64\x64\x43ustomDomain\x12#.boxd.api.v1.AddCustomDomainRequest\x1a$.boxd.api.v1.AddCustomDomainResponse\x12\x62\n\x11ListCustomDomains\x12%.boxd.api.v1.ListCustomDomainsRequest\x1a&.boxd.api.v1.ListCustomDomainsResponse\x12\x65\n\x12RemoveCustomDomain\x12&.boxd.api.v1.RemoveCustomDomainRequest\x1a\'.boxd.api.v1.RemoveCustomDomainResponse\x12S\n\x0cSetOrgDomain\x12 .boxd.api.v1.SetOrgDomainRequest\x1a!.boxd.api.v1.SetOrgDomainResponse\x12S\n\x0cGetOrgDomain\x12 .boxd.api.v1.GetOrgDomainRequest\x1a!.boxd.api.v1.GetOrgDomainResponse\x12Y\n\x0e\x43learOrgDomain\x12\".boxd.api.v1.ClearOrgDomainRequest\x1a#.boxd.api.v1.ClearOrgDomainResponse\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\x12X\n\x12\x44ownloadFileStream\x12 .boxd.api.v1.DownloadFileRequest\x1a\x1e.boxd.api.v1.DownloadFileChunk0\x01\x12\x44\n\x07ListDir\x12\x1b.boxd.api.v1.ListDirRequest\x1a\x1c.boxd.api.v1.ListDirResponse\x12>\n\x05Mkdir\x12\x19.boxd.api.v1.MkdirRequest\x1a\x1a.boxd.api.v1.MkdirResponse\x12M\n\nRenamePath\x12\x1e.boxd.api.v1.RenamePathRequest\x1a\x1f.boxd.api.v1.RenamePathResponse\x12M\n\nDeletePath\x12\x1e.boxd.api.v1.DeletePathRequest\x1a\x1f.boxd.api.v1.DeletePathResponse\x12G\n\x08\x43opyPath\x12\x1c.boxd.api.v1.CopyPathRequest\x1a\x1d.boxd.api.v1.CopyPathResponse\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\x12_\n\x10SetBotProtection\x12$.boxd.api.v1.SetBotProtectionRequest\x1a%.boxd.api.v1.SetBotProtectionResponse\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.GetOrgBillingResponse\x12P\n\x0bGetOrgUsage\x12\x1f.boxd.api.v1.GetOrgUsageRequest\x1a .boxd.api.v1.GetOrgUsageResponse\x12M\n\nGetVmUsage\x12\x1e.boxd.api.v1.GetVmUsageRequest\x1a\x1f.boxd.api.v1.GetVmUsageResponse\x12_\n\x10ListCreditLedger\x12$.boxd.api.v1.ListCreditLedgerRequest\x1a%.boxd.api.v1.ListCreditLedgerResponse\x12\x62\n\x11SetBackupSchedule\x12%.boxd.api.v1.SetBackupScheduleRequest\x1a&.boxd.api.v1.SetBackupScheduleResponse\x12h\n\x13\x43learBackupSchedule\x12\'.boxd.api.v1.ClearBackupScheduleRequest\x1a(.boxd.api.v1.ClearBackupScheduleResponse\x12\x62\n\x11GetBackupSchedule\x12%.boxd.api.v1.GetBackupScheduleRequest\x1a&.boxd.api.v1.GetBackupScheduleResponse\x12P\n\x0bListBackups\x12\x1f.boxd.api.v1.ListBackupsRequest\x1a .boxd.api.v1.ListBackupsResponse\x12V\n\rTriggerBackup\x12!.boxd.api.v1.TriggerBackupRequest\x1a\".boxd.api.v1.TriggerBackupResponse\x12S\n\x0c\x44\x65leteBackup\x12 .boxd.api.v1.DeleteBackupRequest\x1a!.boxd.api.v1.DeleteBackupResponse\x12V\n\rRestoreBackup\x12!.boxd.api.v1.RestoreBackupRequest\x1a\".boxd.api.v1.RestoreBackupResponse\x12k\n\x14SetOrgBackupsDefault\x12(.boxd.api.v1.SetOrgBackupsDefaultRequest\x1a).boxd.api.v1.SetOrgBackupsDefaultResponse\x12k\n\x14GetOrgBackupsDefault\x12(.boxd.api.v1.GetOrgBackupsDefaultRequest\x1a).boxd.api.v1.GetOrgBackupsDefaultResponse\x12n\n\x15SetOrgMachineDefaults\x12).boxd.api.v1.SetOrgMachineDefaultsRequest\x1a*.boxd.api.v1.SetOrgMachineDefaultsResponse\x12n\n\x15GetOrgMachineDefaults\x12).boxd.api.v1.GetOrgMachineDefaultsRequest\x1a*.boxd.api.v1.GetOrgMachineDefaultsResponse\x12J\n\tCreateOrg\x12\x1d.boxd.api.v1.CreateOrgRequest\x1a\x1e.boxd.api.v1.CreateOrgResponse\x12J\n\tRenameOrg\x12\x1d.boxd.api.v1.RenameOrgRequest\x1a\x1e.boxd.api.v1.RenameOrgResponse\x12V\n\rGetOrgMembers\x12!.boxd.api.v1.GetOrgMembersRequest\x1a\".boxd.api.v1.GetOrgMembersResponse\x12\\\n\x0fInviteOrgMember\x12#.boxd.api.v1.InviteOrgMemberRequest\x1a$.boxd.api.v1.InviteOrgMemberResponse\x12\\\n\x0fRevokeOrgInvite\x12#.boxd.api.v1.RevokeOrgInviteRequest\x1a$.boxd.api.v1.RevokeOrgInviteResponse\x12\\\n\x0fRemoveOrgMember\x12#.boxd.api.v1.RemoveOrgMemberRequest\x1a$.boxd.api.v1.RemoveOrgMemberResponse\x12_\n\x10SetOrgMemberRole\x12$.boxd.api.v1.SetOrgMemberRoleRequest\x1a%.boxd.api.v1.SetOrgMemberRoleResponse\x12J\n\tListTeams\x12\x1d.boxd.api.v1.ListTeamsRequest\x1a\x1e.boxd.api.v1.ListTeamsResponse\x12=\n\x07GetTeam\x12\x1b.boxd.api.v1.GetTeamRequest\x1a\x15.boxd.api.v1.TeamInfo\x12\x43\n\nCreateTeam\x12\x1e.boxd.api.v1.CreateTeamRequest\x1a\x15.boxd.api.v1.TeamInfo\x12M\n\nRenameTeam\x12\x1e.boxd.api.v1.RenameTeamRequest\x1a\x1f.boxd.api.v1.RenameTeamResponse\x12P\n\x0b\x44\x65stroyTeam\x12\x1f.boxd.api.v1.DestroyTeamRequest\x1a .boxd.api.v1.DestroyTeamResponse\x12V\n\rAddTeamMember\x12!.boxd.api.v1.AddTeamMemberRequest\x1a\".boxd.api.v1.AddTeamMemberResponse\x12_\n\x10RemoveTeamMember\x12$.boxd.api.v1.RemoveTeamMemberRequest\x1a%.boxd.api.v1.RemoveTeamMemberResponse\x12\x62\n\x11SetTeamMemberRole\x12%.boxd.api.v1.SetTeamMemberRoleRequest\x1a&.boxd.api.v1.SetTeamMemberRoleResponse\x12q\n\x16SetTeamDefaultSnapshot\x12*.boxd.api.v1.SetTeamDefaultSnapshotRequest\x1a+.boxd.api.v1.SetTeamDefaultSnapshotResponse\x12G\n\x08ResizeVm\x12\x1c.boxd.api.v1.ResizeVmRequest\x1a\x1d.boxd.api.v1.ResizeVmResponseb\x06proto3')
|
|
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\"\xfb\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(\x08\x12\x0c\n\x04team\x18\r \x01(\tJ\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\"6\n\x17SetVmEgressAllowRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x0f\n\x07\x65ntries\x18\x02 \x03(\t\"+\n\x18SetVmEgressAllowResponse\x12\x0f\n\x07\x65ntries\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\"g\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(\t\x12\x0f\n\x07\x64omains\x18\x06 \x03(\t\"\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\"Z\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(\t\x12\x0f\n\x07\x64omains\x18\x06 \x03(\tJ\x04\x08\x05\x10\x06\"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\"\xb4\x05\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\x12\x35\n\x0e\x63ustom_domains\x18\x1b \x03(\x0b\x32\x1d.boxd.api.v1.CustomDomainInfo\x12\x14\n\x0c\x65gress_allow\x18\x1c \x03(\t\x12\x16\n\x0e\x62ot_protection\x18\x1d \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\x0c\x44\x65sktopChunk\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"$\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\"7\n\x16\x41\x64\x64\x43ustomDomainRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\"H\n\x17\x41\x64\x64\x43ustomDomainResponse\x12-\n\x06\x64omain\x18\x01 \x01(\x0b\x32\x1d.boxd.api.v1.CustomDomainInfo\"\x1a\n\x18ListCustomDomainsRequest\"K\n\x19ListCustomDomainsResponse\x12.\n\x07\x64omains\x18\x01 \x03(\x0b\x32\x1d.boxd.api.v1.CustomDomainInfo\"+\n\x19RemoveCustomDomainRequest\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\"\x1c\n\x1aRemoveCustomDomainResponse\"f\n\x10\x43ustomDomainInfo\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\r\n\x05vm_id\x18\x02 \x01(\t\x12\x0f\n\x07vm_name\x18\x03 \x01(\t\x12\x0e\n\x06status\x18\x04 \x01(\t\x12\x12\n\nlast_error\x18\x05 \x01(\t\"5\n\x13SetOrgDomainRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\"B\n\x14SetOrgDomainResponse\x12*\n\x06\x64omain\x18\x01 \x01(\x0b\x32\x1a.boxd.api.v1.OrgDomainInfo\"%\n\x13GetOrgDomainRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"B\n\x14GetOrgDomainResponse\x12*\n\x06\x64omain\x18\x01 \x01(\x0b\x32\x1a.boxd.api.v1.OrgDomainInfo\"\'\n\x15\x43learOrgDomainRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"\x18\n\x16\x43learOrgDomainResponse\"S\n\rOrgDomainInfo\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x12\n\nlast_error\x18\x04 \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\"\xbb\x02\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(\x04\x12\x15\n\rbalance_micro\x18\n \x01(\x03\x12\x14\n\x0c\x62illing_mode\x18\x0b \x01(\t\x12\x10\n\x08\x63urrency\x18\x0c \x01(\t\x12\x14\n\x0c\x63\x65iling_vcpu\x18\r \x01(\r\x12\x1c\n\x14\x63\x65iling_memory_bytes\x18\x0e \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\x10\n\x08\x65ndpoint\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\"5\n\x11\x44ownloadFileChunk\x12\x12\n\ntotal_size\x18\x01 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"-\n\x0eListDirRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"x\n\x08\x44irEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06is_dir\x18\x02 \x01(\x08\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x13\n\x0bpermissions\x18\x04 \x01(\t\x12\x13\n\x0bmodified_at\x18\x05 \x01(\x03\x12\x10\n\x08\x61\x64\x64\x65\x64_at\x18\x06 \x01(\x03\"L\n\x0fListDirResponse\x12&\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.DirEntry\x12\x11\n\ttruncated\x18\x02 \x01(\x08\"+\n\x0cMkdirRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x0f\n\rMkdirResponse\"F\n\x11RenamePathRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x10\n\x08old_path\x18\x02 \x01(\t\x12\x10\n\x08new_path\x18\x03 \x01(\t\"\x14\n\x12RenamePathResponse\"0\n\x11\x44\x65letePathRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x14\n\x12\x44\x65letePathResponse\"D\n\x0f\x43opyPathRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x10\n\x08old_path\x18\x02 \x01(\t\x12\x10\n\x08new_path\x18\x03 \x01(\t\"\x12\n\x10\x43opyPathResponse\"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\"9\n\x17SetBotProtectionRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"\x1a\n\x18SetBotProtectionResponse\"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\"\xd4\x02\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\x12\x15\n\rbalance_micro\x18\t \x01(\x03\x12\x14\n\x0c\x62illing_mode\x18\n \x01(\t\x12\x1b\n\x0e\x61\x63\x63ruing_micro\x18\x0b \x01(\x03H\x00\x88\x01\x01\x12\x10\n\x08\x63urrency\x18\x0c \x01(\t\x12\x14\n\x0c\x63\x65iling_vcpu\x18\r \x01(\r\x12\x1c\n\x14\x63\x65iling_memory_bytes\x18\x0e \x01(\x04\x42\x11\n\x0f_accruing_micro\"l\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(\t\x12\x12\n\nowner_name\x18\x06 \x01(\tJ\x04\x08\x04\x10\x05R\x05shape\"^\n\nUsageRates\x12\x17\n\x0fvcpu_hour_micro\x18\x01 \x01(\x03\x12\x1a\n\x12ram_gib_hour_micro\x18\x02 \x01(\x03\x12\x1b\n\x13\x64isk_gib_hour_micro\x18\x03 \x01(\x03\"U\n\x0cStateSeconds\x12\x0f\n\x07running\x18\x01 \x01(\x04\x12\x0f\n\x07standby\x18\x02 \x01(\x04\x12\x12\n\nhibernated\x18\x03 \x01(\x04\x12\x0f\n\x07stopped\x18\x04 \x01(\x04\"\xb7\x02\n\x07VmUsage\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05owner\x18\x03 \x01(\t\x12\x12\n\nowner_name\x18\x04 \x01(\t\x12\x0f\n\x07sharing\x18\x05 \x01(\t\x12\x0e\n\x06status\x18\x06 \x01(\t\x12\x0c\n\x04vcpu\x18\x07 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x08 \x01(\x04\x12\x12\n\ndisk_bytes\x18\t \x01(\x04\x12*\n\x07seconds\x18\n \x01(\x0b\x32\x19.boxd.api.v1.StateSeconds\x12\x12\n\nvcpu_hours\x18\x0b \x01(\x01\x12\x15\n\rram_gib_hours\x18\x0c \x01(\x01\x12\x16\n\x0e\x64isk_gib_hours\x18\r \x01(\x01\x12\x12\n\ncost_micro\x18\x0e \x01(\x03\x12\x10\n\x08\x63omplete\x18\x0f \x01(\x08\"?\n\x12GetOrgUsageRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\r\n\x05since\x18\x02 \x01(\x03\x12\r\n\x05until\x18\x03 \x01(\x03\"\xe5\x01\n\x13GetOrgUsageResponse\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0b\n\x03org\x18\x02 \x01(\t\x12\x14\n\x0cperiod_start\x18\x03 \x01(\x03\x12\x12\n\nperiod_end\x18\x04 \x01(\x03\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x12&\n\x05rates\x18\x06 \x01(\x0b\x32\x17.boxd.api.v1.UsageRates\x12\x18\n\x10total_cost_micro\x18\x07 \x01(\x03\x12!\n\x03vms\x18\x08 \x03(\x0b\x32\x14.boxd.api.v1.VmUsage\x12\x10\n\x08\x63omplete\x18\t \x01(\x08\"M\n\x11GetVmUsageRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\r\n\x05since\x18\x02 \x01(\x03\x12\r\n\x05until\x18\x03 \x01(\x03\x12\x0b\n\x03org\x18\x04 \x01(\t\"\x9d\x01\n\x12GetVmUsageResponse\x12\x14\n\x0cperiod_start\x18\x01 \x01(\x03\x12\x12\n\nperiod_end\x18\x02 \x01(\x03\x12\x10\n\x08\x63urrency\x18\x03 \x01(\t\x12&\n\x05rates\x18\x04 \x01(\x0b\x32\x17.boxd.api.v1.UsageRates\x12#\n\x05usage\x18\x05 \x01(\x0b\x32\x14.boxd.api.v1.VmUsage\"k\n\x17ListCreditLedgerRequest\x12\x0b\n\x03org\x18\x01 \x01(\t\x12\r\n\x05since\x18\x02 \x01(\x03\x12\r\n\x05until\x18\x03 \x01(\x03\x12\x12\n\npage_token\x18\x04 \x01(\t\x12\x11\n\tpage_size\x18\x05 \x01(\r\"]\n\x11\x43reditLedgerEntry\x12\x10\n\x08\x65ntry_id\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x14\n\x0c\x61mount_micro\x18\x03 \x01(\x03\x12\x12\n\ncreated_at\x18\x04 \x01(\x03\"\x8d\x01\n\x18ListCreditLedgerResponse\x12\x10\n\x08\x63urrency\x18\x01 \x01(\t\x12\x15\n\rbalance_micro\x18\x02 \x01(\x03\x12/\n\x07\x65ntries\x18\x03 \x03(\x0b\x32\x1e.boxd.api.v1.CreditLedgerEntry\x12\x17\n\x0fnext_page_token\x18\x04 \x01(\t\"!\n\x10UnshareVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\"\x13\n\x11UnshareVmResponse\"m\n\x18SetBackupScheduleRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x15\n\rschedule_kind\x18\x02 \x01(\t\x12\x16\n\x0eschedule_value\x18\x03 \x01(\t\x12\x16\n\x0eretention_secs\x18\x04 \x01(\r\"\x1b\n\x19SetBackupScheduleResponse\"(\n\x1a\x43learBackupScheduleRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"\x1d\n\x1b\x43learBackupScheduleResponse\"&\n\x18GetBackupScheduleRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"\xa3\x01\n\x19GetBackupScheduleResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x15\n\rschedule_kind\x18\x02 \x01(\t\x12\x16\n\x0eschedule_value\x18\x03 \x01(\t\x12\x16\n\x0eretention_secs\x18\x04 \x01(\r\x12\x16\n\x0enext_backup_at\x18\x05 \x01(\x03\x12\x16\n\x0elast_backup_at\x18\x06 \x01(\x03\" \n\x12ListBackupsRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"\x9a\x01\n\nBackupInfo\x12\x11\n\tbackup_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x10\n\x08\x63hecksum\x18\x04 \x01(\t\x12\x1b\n\x13points_to_backup_id\x18\x05 \x01(\t\x12\x12\n\ncreated_at\x18\x06 \x01(\x03\x12\x12\n\nexpires_at\x18\x07 \x01(\x03\"?\n\x13ListBackupsResponse\x12(\n\x07\x62\x61\x63kups\x18\x01 \x03(\x0b\x32\x17.boxd.api.v1.BackupInfo\"\"\n\x14TriggerBackupRequest\x12\n\n\x02vm\x18\x01 \x01(\t\"*\n\x15TriggerBackupResponse\x12\x11\n\tbackup_id\x18\x01 \x01(\t\"4\n\x13\x44\x65leteBackupRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x11\n\tbackup_id\x18\x02 \x01(\t\"\x16\n\x14\x44\x65leteBackupResponse\"5\n\x14RestoreBackupRequest\x12\n\n\x02vm\x18\x01 \x01(\t\x12\x11\n\tbackup_id\x18\x02 \x01(\t\"\x17\n\x15RestoreBackupResponse\"\x87\x01\n\x1bSetOrgBackupsDefaultRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x18\n\x0bperiod_secs\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0eretention_secs\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x0e\n\x0c_period_secsB\x11\n\x0f_retention_secs\"\\\n\x1cSetOrgBackupsDefaultResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x13\n\x0bperiod_secs\x18\x02 \x01(\r\x12\x16\n\x0eretention_secs\x18\x03 \x01(\r\"-\n\x1bGetOrgBackupsDefaultRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"\\\n\x1cGetOrgBackupsDefaultResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x13\n\x0bperiod_secs\x18\x02 \x01(\r\x12\x16\n\x0eretention_secs\x18\x03 \x01(\r\"v\n\x1cSetOrgMachineDefaultsRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x11\n\x04vcpu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\x07\n\x05_vcpuB\x0f\n\r_memory_bytes\"\x1f\n\x1dSetOrgMachineDefaultsResponse\".\n\x1cGetOrgMachineDefaultsRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"D\n\x0fResizeVmRequest\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x0c\n\x04vcpu\x18\x02 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x03 \x01(\x04\"H\n\x10ResizeVmResponse\x12\x0c\n\x04vcpu\x18\x01 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x02 \x01(\x04\x12\x10\n\x08rebooted\x18\x03 \x01(\x08\"\x84\x01\n\x1dGetOrgMachineDefaultsResponse\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0c\n\x04vcpu\x18\x02 \x01(\r\x12\x14\n\x0cmemory_bytes\x18\x03 \x01(\x04\x12\x14\n\x0c\x63\x65iling_vcpu\x18\x04 \x01(\r\x12\x1c\n\x14\x63\x65iling_memory_bytes\x18\x05 \x01(\x04\" \n\x10\x43reateOrgRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"-\n\x11\x43reateOrgResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"0\n\x10RenameOrgRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x13\n\x11RenameOrgResponse\"&\n\x14GetOrgMembersRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"q\n\x15GetOrgMembersResponse\x12+\n\x07members\x18\x01 \x03(\x0b\x32\x1a.boxd.api.v1.OrgMemberInfo\x12+\n\x07invites\x18\x02 \x03(\x0b\x32\x1a.boxd.api.v1.OrgInviteInfo\"]\n\rOrgMemberInfo\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0c\n\x04role\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x17\n\x0fgithub_username\x18\x04 \x01(\t\"w\n\rOrgInviteInfo\x12\r\n\x05token\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x12\n\naccept_url\x18\x03 \x01(\t\x12\x12\n\ncreated_at\x18\x04 \x01(\x03\x12\x12\n\nexpires_at\x18\x05 \x01(\x03\x12\x0c\n\x04role\x18\x06 \x01(\t\"E\n\x16InviteOrgMemberRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"d\n\x17InviteOrgMemberResponse\x12\r\n\x05token\x18\x01 \x01(\t\x12\x12\n\naccept_url\x18\x02 \x01(\t\x12\x12\n\nexpires_at\x18\x03 \x01(\x03\x12\x12\n\ncreated_at\x18\x04 \x01(\x03\"\'\n\x16RevokeOrgInviteRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\x19\n\x17RevokeOrgInviteResponse\"9\n\x16RemoveOrgMemberRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x19\n\x17RemoveOrgMemberResponse\"H\n\x17SetOrgMemberRoleRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"\x1a\n\x18SetOrgMemberRoleResponse\"\xc1\x01\n\x08TeamInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06org_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x1a\n\x12\x63reated_by_user_id\x18\x04 \x01(\t\x12\x12\n\ncreated_at\x18\x05 \x01(\x03\x12\x10\n\x08is_admin\x18\x06 \x01(\x08\x12,\n\x07members\x18\x07 \x03(\x0b\x32\x1b.boxd.api.v1.TeamMemberInfo\x12\x1b\n\x13\x64\x65\x66\x61ult_snapshot_id\x18\x08 \x01(\t\"p\n\x0eTeamMemberInfo\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0c\n\x04role\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x17\n\x0fgithub_username\x18\x04 \x01(\t\x12\x10\n\x08\x61\x64\x64\x65\x64_at\x18\x05 \x01(\x03\"\"\n\x10ListTeamsRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\"9\n\x11ListTeamsResponse\x12$\n\x05teams\x18\x01 \x03(\x0b\x32\x15.boxd.api.v1.TeamInfo\"!\n\x0eGetTeamRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\"1\n\x11\x43reateTeamRequest\x12\x0e\n\x06org_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"2\n\x11RenameTeamRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x14\n\x12RenameTeamResponse\"%\n\x12\x44\x65stroyTeamRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65stroyTeamResponse\"8\n\x14\x41\x64\x64TeamMemberRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x17\n\x15\x41\x64\x64TeamMemberResponse\";\n\x17RemoveTeamMemberRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x1a\n\x18RemoveTeamMemberResponse\"J\n\x18SetTeamMemberRoleRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"\x1b\n\x19SetTeamMemberRoleResponse\"E\n\x1dSetTeamDefaultSnapshotRequest\x12\x0f\n\x07team_id\x18\x01 \x01(\t\x12\x13\n\x0bsnapshot_id\x18\x02 \x01(\t\" \n\x1eSetTeamDefaultSnapshotResponse2\xfeJ\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_\n\x10SetVmEgressAllow\x12$.boxd.api.v1.SetVmEgressAllowRequest\x1a%.boxd.api.v1.SetVmEgressAllowResponse\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\x12I\n\rDesktopTunnel\x12\x19.boxd.api.v1.DesktopChunk\x1a\x19.boxd.api.v1.DesktopChunk(\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\x12\\\n\x0f\x41\x64\x64\x43ustomDomain\x12#.boxd.api.v1.AddCustomDomainRequest\x1a$.boxd.api.v1.AddCustomDomainResponse\x12\x62\n\x11ListCustomDomains\x12%.boxd.api.v1.ListCustomDomainsRequest\x1a&.boxd.api.v1.ListCustomDomainsResponse\x12\x65\n\x12RemoveCustomDomain\x12&.boxd.api.v1.RemoveCustomDomainRequest\x1a\'.boxd.api.v1.RemoveCustomDomainResponse\x12S\n\x0cSetOrgDomain\x12 .boxd.api.v1.SetOrgDomainRequest\x1a!.boxd.api.v1.SetOrgDomainResponse\x12S\n\x0cGetOrgDomain\x12 .boxd.api.v1.GetOrgDomainRequest\x1a!.boxd.api.v1.GetOrgDomainResponse\x12Y\n\x0e\x43learOrgDomain\x12\".boxd.api.v1.ClearOrgDomainRequest\x1a#.boxd.api.v1.ClearOrgDomainResponse\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\x12X\n\x12\x44ownloadFileStream\x12 .boxd.api.v1.DownloadFileRequest\x1a\x1e.boxd.api.v1.DownloadFileChunk0\x01\x12\x44\n\x07ListDir\x12\x1b.boxd.api.v1.ListDirRequest\x1a\x1c.boxd.api.v1.ListDirResponse\x12>\n\x05Mkdir\x12\x19.boxd.api.v1.MkdirRequest\x1a\x1a.boxd.api.v1.MkdirResponse\x12M\n\nRenamePath\x12\x1e.boxd.api.v1.RenamePathRequest\x1a\x1f.boxd.api.v1.RenamePathResponse\x12M\n\nDeletePath\x12\x1e.boxd.api.v1.DeletePathRequest\x1a\x1f.boxd.api.v1.DeletePathResponse\x12G\n\x08\x43opyPath\x12\x1c.boxd.api.v1.CopyPathRequest\x1a\x1d.boxd.api.v1.CopyPathResponse\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\x12_\n\x10SetBotProtection\x12$.boxd.api.v1.SetBotProtectionRequest\x1a%.boxd.api.v1.SetBotProtectionResponse\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.GetOrgBillingResponse\x12P\n\x0bGetOrgUsage\x12\x1f.boxd.api.v1.GetOrgUsageRequest\x1a .boxd.api.v1.GetOrgUsageResponse\x12M\n\nGetVmUsage\x12\x1e.boxd.api.v1.GetVmUsageRequest\x1a\x1f.boxd.api.v1.GetVmUsageResponse\x12_\n\x10ListCreditLedger\x12$.boxd.api.v1.ListCreditLedgerRequest\x1a%.boxd.api.v1.ListCreditLedgerResponse\x12\x62\n\x11SetBackupSchedule\x12%.boxd.api.v1.SetBackupScheduleRequest\x1a&.boxd.api.v1.SetBackupScheduleResponse\x12h\n\x13\x43learBackupSchedule\x12\'.boxd.api.v1.ClearBackupScheduleRequest\x1a(.boxd.api.v1.ClearBackupScheduleResponse\x12\x62\n\x11GetBackupSchedule\x12%.boxd.api.v1.GetBackupScheduleRequest\x1a&.boxd.api.v1.GetBackupScheduleResponse\x12P\n\x0bListBackups\x12\x1f.boxd.api.v1.ListBackupsRequest\x1a .boxd.api.v1.ListBackupsResponse\x12V\n\rTriggerBackup\x12!.boxd.api.v1.TriggerBackupRequest\x1a\".boxd.api.v1.TriggerBackupResponse\x12S\n\x0c\x44\x65leteBackup\x12 .boxd.api.v1.DeleteBackupRequest\x1a!.boxd.api.v1.DeleteBackupResponse\x12V\n\rRestoreBackup\x12!.boxd.api.v1.RestoreBackupRequest\x1a\".boxd.api.v1.RestoreBackupResponse\x12k\n\x14SetOrgBackupsDefault\x12(.boxd.api.v1.SetOrgBackupsDefaultRequest\x1a).boxd.api.v1.SetOrgBackupsDefaultResponse\x12k\n\x14GetOrgBackupsDefault\x12(.boxd.api.v1.GetOrgBackupsDefaultRequest\x1a).boxd.api.v1.GetOrgBackupsDefaultResponse\x12n\n\x15SetOrgMachineDefaults\x12).boxd.api.v1.SetOrgMachineDefaultsRequest\x1a*.boxd.api.v1.SetOrgMachineDefaultsResponse\x12n\n\x15GetOrgMachineDefaults\x12).boxd.api.v1.GetOrgMachineDefaultsRequest\x1a*.boxd.api.v1.GetOrgMachineDefaultsResponse\x12J\n\tCreateOrg\x12\x1d.boxd.api.v1.CreateOrgRequest\x1a\x1e.boxd.api.v1.CreateOrgResponse\x12J\n\tRenameOrg\x12\x1d.boxd.api.v1.RenameOrgRequest\x1a\x1e.boxd.api.v1.RenameOrgResponse\x12V\n\rGetOrgMembers\x12!.boxd.api.v1.GetOrgMembersRequest\x1a\".boxd.api.v1.GetOrgMembersResponse\x12\\\n\x0fInviteOrgMember\x12#.boxd.api.v1.InviteOrgMemberRequest\x1a$.boxd.api.v1.InviteOrgMemberResponse\x12\\\n\x0fRevokeOrgInvite\x12#.boxd.api.v1.RevokeOrgInviteRequest\x1a$.boxd.api.v1.RevokeOrgInviteResponse\x12\\\n\x0fRemoveOrgMember\x12#.boxd.api.v1.RemoveOrgMemberRequest\x1a$.boxd.api.v1.RemoveOrgMemberResponse\x12_\n\x10SetOrgMemberRole\x12$.boxd.api.v1.SetOrgMemberRoleRequest\x1a%.boxd.api.v1.SetOrgMemberRoleResponse\x12J\n\tListTeams\x12\x1d.boxd.api.v1.ListTeamsRequest\x1a\x1e.boxd.api.v1.ListTeamsResponse\x12=\n\x07GetTeam\x12\x1b.boxd.api.v1.GetTeamRequest\x1a\x15.boxd.api.v1.TeamInfo\x12\x43\n\nCreateTeam\x12\x1e.boxd.api.v1.CreateTeamRequest\x1a\x15.boxd.api.v1.TeamInfo\x12M\n\nRenameTeam\x12\x1e.boxd.api.v1.RenameTeamRequest\x1a\x1f.boxd.api.v1.RenameTeamResponse\x12P\n\x0b\x44\x65stroyTeam\x12\x1f.boxd.api.v1.DestroyTeamRequest\x1a .boxd.api.v1.DestroyTeamResponse\x12V\n\rAddTeamMember\x12!.boxd.api.v1.AddTeamMemberRequest\x1a\".boxd.api.v1.AddTeamMemberResponse\x12_\n\x10RemoveTeamMember\x12$.boxd.api.v1.RemoveTeamMemberRequest\x1a%.boxd.api.v1.RemoveTeamMemberResponse\x12\x62\n\x11SetTeamMemberRole\x12%.boxd.api.v1.SetTeamMemberRoleRequest\x1a&.boxd.api.v1.SetTeamMemberRoleResponse\x12q\n\x16SetTeamDefaultSnapshot\x12*.boxd.api.v1.SetTeamDefaultSnapshotRequest\x1a+.boxd.api.v1.SetTeamDefaultSnapshotResponse\x12G\n\x08ResizeVm\x12\x1c.boxd.api.v1.ResizeVmRequest\x1a\x1d.boxd.api.v1.ResizeVmResponseb\x06proto3')
|
|
28
28
|
|
|
29
29
|
_globals = globals()
|
|
30
30
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -406,143 +406,143 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
406
406
|
_globals['_STATESECONDS']._serialized_start=12253
|
|
407
407
|
_globals['_STATESECONDS']._serialized_end=12338
|
|
408
408
|
_globals['_VMUSAGE']._serialized_start=12341
|
|
409
|
-
_globals['_VMUSAGE']._serialized_end=
|
|
410
|
-
_globals['_GETORGUSAGEREQUEST']._serialized_start=
|
|
411
|
-
_globals['_GETORGUSAGEREQUEST']._serialized_end=
|
|
412
|
-
_globals['_GETORGUSAGERESPONSE']._serialized_start=
|
|
413
|
-
_globals['_GETORGUSAGERESPONSE']._serialized_end=
|
|
414
|
-
_globals['_GETVMUSAGEREQUEST']._serialized_start=
|
|
415
|
-
_globals['_GETVMUSAGEREQUEST']._serialized_end=
|
|
416
|
-
_globals['_GETVMUSAGERESPONSE']._serialized_start=
|
|
417
|
-
_globals['_GETVMUSAGERESPONSE']._serialized_end=
|
|
418
|
-
_globals['_LISTCREDITLEDGERREQUEST']._serialized_start=
|
|
419
|
-
_globals['_LISTCREDITLEDGERREQUEST']._serialized_end=
|
|
420
|
-
_globals['_CREDITLEDGERENTRY']._serialized_start=
|
|
421
|
-
_globals['_CREDITLEDGERENTRY']._serialized_end=
|
|
422
|
-
_globals['_LISTCREDITLEDGERRESPONSE']._serialized_start=
|
|
423
|
-
_globals['_LISTCREDITLEDGERRESPONSE']._serialized_end=
|
|
424
|
-
_globals['_UNSHAREVMREQUEST']._serialized_start=
|
|
425
|
-
_globals['_UNSHAREVMREQUEST']._serialized_end=
|
|
426
|
-
_globals['_UNSHAREVMRESPONSE']._serialized_start=
|
|
427
|
-
_globals['_UNSHAREVMRESPONSE']._serialized_end=
|
|
428
|
-
_globals['_SETBACKUPSCHEDULEREQUEST']._serialized_start=
|
|
429
|
-
_globals['_SETBACKUPSCHEDULEREQUEST']._serialized_end=
|
|
430
|
-
_globals['_SETBACKUPSCHEDULERESPONSE']._serialized_start=
|
|
431
|
-
_globals['_SETBACKUPSCHEDULERESPONSE']._serialized_end=
|
|
432
|
-
_globals['_CLEARBACKUPSCHEDULEREQUEST']._serialized_start=
|
|
433
|
-
_globals['_CLEARBACKUPSCHEDULEREQUEST']._serialized_end=
|
|
434
|
-
_globals['_CLEARBACKUPSCHEDULERESPONSE']._serialized_start=
|
|
435
|
-
_globals['_CLEARBACKUPSCHEDULERESPONSE']._serialized_end=
|
|
436
|
-
_globals['_GETBACKUPSCHEDULEREQUEST']._serialized_start=
|
|
437
|
-
_globals['_GETBACKUPSCHEDULEREQUEST']._serialized_end=
|
|
438
|
-
_globals['_GETBACKUPSCHEDULERESPONSE']._serialized_start=
|
|
439
|
-
_globals['_GETBACKUPSCHEDULERESPONSE']._serialized_end=
|
|
440
|
-
_globals['_LISTBACKUPSREQUEST']._serialized_start=
|
|
441
|
-
_globals['_LISTBACKUPSREQUEST']._serialized_end=
|
|
442
|
-
_globals['_BACKUPINFO']._serialized_start=
|
|
443
|
-
_globals['_BACKUPINFO']._serialized_end=
|
|
444
|
-
_globals['_LISTBACKUPSRESPONSE']._serialized_start=
|
|
445
|
-
_globals['_LISTBACKUPSRESPONSE']._serialized_end=
|
|
446
|
-
_globals['_TRIGGERBACKUPREQUEST']._serialized_start=
|
|
447
|
-
_globals['_TRIGGERBACKUPREQUEST']._serialized_end=
|
|
448
|
-
_globals['_TRIGGERBACKUPRESPONSE']._serialized_start=
|
|
449
|
-
_globals['_TRIGGERBACKUPRESPONSE']._serialized_end=
|
|
450
|
-
_globals['_DELETEBACKUPREQUEST']._serialized_start=
|
|
451
|
-
_globals['_DELETEBACKUPREQUEST']._serialized_end=
|
|
452
|
-
_globals['_DELETEBACKUPRESPONSE']._serialized_start=
|
|
453
|
-
_globals['_DELETEBACKUPRESPONSE']._serialized_end=
|
|
454
|
-
_globals['_RESTOREBACKUPREQUEST']._serialized_start=
|
|
455
|
-
_globals['_RESTOREBACKUPREQUEST']._serialized_end=
|
|
456
|
-
_globals['_RESTOREBACKUPRESPONSE']._serialized_start=
|
|
457
|
-
_globals['_RESTOREBACKUPRESPONSE']._serialized_end=
|
|
458
|
-
_globals['_SETORGBACKUPSDEFAULTREQUEST']._serialized_start=
|
|
459
|
-
_globals['_SETORGBACKUPSDEFAULTREQUEST']._serialized_end=
|
|
460
|
-
_globals['_SETORGBACKUPSDEFAULTRESPONSE']._serialized_start=
|
|
461
|
-
_globals['_SETORGBACKUPSDEFAULTRESPONSE']._serialized_end=
|
|
462
|
-
_globals['_GETORGBACKUPSDEFAULTREQUEST']._serialized_start=
|
|
463
|
-
_globals['_GETORGBACKUPSDEFAULTREQUEST']._serialized_end=
|
|
464
|
-
_globals['_GETORGBACKUPSDEFAULTRESPONSE']._serialized_start=
|
|
465
|
-
_globals['_GETORGBACKUPSDEFAULTRESPONSE']._serialized_end=
|
|
466
|
-
_globals['_SETORGMACHINEDEFAULTSREQUEST']._serialized_start=
|
|
467
|
-
_globals['_SETORGMACHINEDEFAULTSREQUEST']._serialized_end=
|
|
468
|
-
_globals['_SETORGMACHINEDEFAULTSRESPONSE']._serialized_start=
|
|
469
|
-
_globals['_SETORGMACHINEDEFAULTSRESPONSE']._serialized_end=
|
|
470
|
-
_globals['_GETORGMACHINEDEFAULTSREQUEST']._serialized_start=
|
|
471
|
-
_globals['_GETORGMACHINEDEFAULTSREQUEST']._serialized_end=
|
|
472
|
-
_globals['_RESIZEVMREQUEST']._serialized_start=
|
|
473
|
-
_globals['_RESIZEVMREQUEST']._serialized_end=
|
|
474
|
-
_globals['_RESIZEVMRESPONSE']._serialized_start=
|
|
475
|
-
_globals['_RESIZEVMRESPONSE']._serialized_end=
|
|
476
|
-
_globals['_GETORGMACHINEDEFAULTSRESPONSE']._serialized_start=
|
|
477
|
-
_globals['_GETORGMACHINEDEFAULTSRESPONSE']._serialized_end=
|
|
478
|
-
_globals['_CREATEORGREQUEST']._serialized_start=
|
|
479
|
-
_globals['_CREATEORGREQUEST']._serialized_end=
|
|
480
|
-
_globals['_CREATEORGRESPONSE']._serialized_start=
|
|
481
|
-
_globals['_CREATEORGRESPONSE']._serialized_end=
|
|
482
|
-
_globals['_RENAMEORGREQUEST']._serialized_start=
|
|
483
|
-
_globals['_RENAMEORGREQUEST']._serialized_end=
|
|
484
|
-
_globals['_RENAMEORGRESPONSE']._serialized_start=
|
|
485
|
-
_globals['_RENAMEORGRESPONSE']._serialized_end=
|
|
486
|
-
_globals['_GETORGMEMBERSREQUEST']._serialized_start=
|
|
487
|
-
_globals['_GETORGMEMBERSREQUEST']._serialized_end=
|
|
488
|
-
_globals['_GETORGMEMBERSRESPONSE']._serialized_start=
|
|
489
|
-
_globals['_GETORGMEMBERSRESPONSE']._serialized_end=
|
|
490
|
-
_globals['_ORGMEMBERINFO']._serialized_start=
|
|
491
|
-
_globals['_ORGMEMBERINFO']._serialized_end=
|
|
492
|
-
_globals['_ORGINVITEINFO']._serialized_start=
|
|
493
|
-
_globals['_ORGINVITEINFO']._serialized_end=
|
|
494
|
-
_globals['_INVITEORGMEMBERREQUEST']._serialized_start=
|
|
495
|
-
_globals['_INVITEORGMEMBERREQUEST']._serialized_end=
|
|
496
|
-
_globals['_INVITEORGMEMBERRESPONSE']._serialized_start=
|
|
497
|
-
_globals['_INVITEORGMEMBERRESPONSE']._serialized_end=
|
|
498
|
-
_globals['_REVOKEORGINVITEREQUEST']._serialized_start=
|
|
499
|
-
_globals['_REVOKEORGINVITEREQUEST']._serialized_end=
|
|
500
|
-
_globals['_REVOKEORGINVITERESPONSE']._serialized_start=
|
|
501
|
-
_globals['_REVOKEORGINVITERESPONSE']._serialized_end=
|
|
502
|
-
_globals['_REMOVEORGMEMBERREQUEST']._serialized_start=
|
|
503
|
-
_globals['_REMOVEORGMEMBERREQUEST']._serialized_end=
|
|
504
|
-
_globals['_REMOVEORGMEMBERRESPONSE']._serialized_start=
|
|
505
|
-
_globals['_REMOVEORGMEMBERRESPONSE']._serialized_end=
|
|
506
|
-
_globals['_SETORGMEMBERROLEREQUEST']._serialized_start=
|
|
507
|
-
_globals['_SETORGMEMBERROLEREQUEST']._serialized_end=
|
|
508
|
-
_globals['_SETORGMEMBERROLERESPONSE']._serialized_start=
|
|
509
|
-
_globals['_SETORGMEMBERROLERESPONSE']._serialized_end=
|
|
510
|
-
_globals['_TEAMINFO']._serialized_start=
|
|
511
|
-
_globals['_TEAMINFO']._serialized_end=
|
|
512
|
-
_globals['_TEAMMEMBERINFO']._serialized_start=
|
|
513
|
-
_globals['_TEAMMEMBERINFO']._serialized_end=
|
|
514
|
-
_globals['_LISTTEAMSREQUEST']._serialized_start=
|
|
515
|
-
_globals['_LISTTEAMSREQUEST']._serialized_end=
|
|
516
|
-
_globals['_LISTTEAMSRESPONSE']._serialized_start=
|
|
517
|
-
_globals['_LISTTEAMSRESPONSE']._serialized_end=
|
|
518
|
-
_globals['_GETTEAMREQUEST']._serialized_start=
|
|
519
|
-
_globals['_GETTEAMREQUEST']._serialized_end=
|
|
520
|
-
_globals['_CREATETEAMREQUEST']._serialized_start=
|
|
521
|
-
_globals['_CREATETEAMREQUEST']._serialized_end=
|
|
522
|
-
_globals['_RENAMETEAMREQUEST']._serialized_start=
|
|
523
|
-
_globals['_RENAMETEAMREQUEST']._serialized_end=
|
|
524
|
-
_globals['_RENAMETEAMRESPONSE']._serialized_start=
|
|
525
|
-
_globals['_RENAMETEAMRESPONSE']._serialized_end=
|
|
526
|
-
_globals['_DESTROYTEAMREQUEST']._serialized_start=
|
|
527
|
-
_globals['_DESTROYTEAMREQUEST']._serialized_end=
|
|
528
|
-
_globals['_DESTROYTEAMRESPONSE']._serialized_start=
|
|
529
|
-
_globals['_DESTROYTEAMRESPONSE']._serialized_end=
|
|
530
|
-
_globals['_ADDTEAMMEMBERREQUEST']._serialized_start=
|
|
531
|
-
_globals['_ADDTEAMMEMBERREQUEST']._serialized_end=
|
|
532
|
-
_globals['_ADDTEAMMEMBERRESPONSE']._serialized_start=
|
|
533
|
-
_globals['_ADDTEAMMEMBERRESPONSE']._serialized_end=
|
|
534
|
-
_globals['_REMOVETEAMMEMBERREQUEST']._serialized_start=
|
|
535
|
-
_globals['_REMOVETEAMMEMBERREQUEST']._serialized_end=
|
|
536
|
-
_globals['_REMOVETEAMMEMBERRESPONSE']._serialized_start=
|
|
537
|
-
_globals['_REMOVETEAMMEMBERRESPONSE']._serialized_end=
|
|
538
|
-
_globals['_SETTEAMMEMBERROLEREQUEST']._serialized_start=
|
|
539
|
-
_globals['_SETTEAMMEMBERROLEREQUEST']._serialized_end=
|
|
540
|
-
_globals['_SETTEAMMEMBERROLERESPONSE']._serialized_start=
|
|
541
|
-
_globals['_SETTEAMMEMBERROLERESPONSE']._serialized_end=
|
|
542
|
-
_globals['_SETTEAMDEFAULTSNAPSHOTREQUEST']._serialized_start=
|
|
543
|
-
_globals['_SETTEAMDEFAULTSNAPSHOTREQUEST']._serialized_end=
|
|
544
|
-
_globals['_SETTEAMDEFAULTSNAPSHOTRESPONSE']._serialized_start=
|
|
545
|
-
_globals['_SETTEAMDEFAULTSNAPSHOTRESPONSE']._serialized_end=
|
|
546
|
-
_globals['_BOXDAPI']._serialized_start=
|
|
547
|
-
_globals['_BOXDAPI']._serialized_end=
|
|
409
|
+
_globals['_VMUSAGE']._serialized_end=12652
|
|
410
|
+
_globals['_GETORGUSAGEREQUEST']._serialized_start=12654
|
|
411
|
+
_globals['_GETORGUSAGEREQUEST']._serialized_end=12717
|
|
412
|
+
_globals['_GETORGUSAGERESPONSE']._serialized_start=12720
|
|
413
|
+
_globals['_GETORGUSAGERESPONSE']._serialized_end=12949
|
|
414
|
+
_globals['_GETVMUSAGEREQUEST']._serialized_start=12951
|
|
415
|
+
_globals['_GETVMUSAGEREQUEST']._serialized_end=13028
|
|
416
|
+
_globals['_GETVMUSAGERESPONSE']._serialized_start=13031
|
|
417
|
+
_globals['_GETVMUSAGERESPONSE']._serialized_end=13188
|
|
418
|
+
_globals['_LISTCREDITLEDGERREQUEST']._serialized_start=13190
|
|
419
|
+
_globals['_LISTCREDITLEDGERREQUEST']._serialized_end=13297
|
|
420
|
+
_globals['_CREDITLEDGERENTRY']._serialized_start=13299
|
|
421
|
+
_globals['_CREDITLEDGERENTRY']._serialized_end=13392
|
|
422
|
+
_globals['_LISTCREDITLEDGERRESPONSE']._serialized_start=13395
|
|
423
|
+
_globals['_LISTCREDITLEDGERRESPONSE']._serialized_end=13536
|
|
424
|
+
_globals['_UNSHAREVMREQUEST']._serialized_start=13538
|
|
425
|
+
_globals['_UNSHAREVMREQUEST']._serialized_end=13571
|
|
426
|
+
_globals['_UNSHAREVMRESPONSE']._serialized_start=13573
|
|
427
|
+
_globals['_UNSHAREVMRESPONSE']._serialized_end=13592
|
|
428
|
+
_globals['_SETBACKUPSCHEDULEREQUEST']._serialized_start=13594
|
|
429
|
+
_globals['_SETBACKUPSCHEDULEREQUEST']._serialized_end=13703
|
|
430
|
+
_globals['_SETBACKUPSCHEDULERESPONSE']._serialized_start=13705
|
|
431
|
+
_globals['_SETBACKUPSCHEDULERESPONSE']._serialized_end=13732
|
|
432
|
+
_globals['_CLEARBACKUPSCHEDULEREQUEST']._serialized_start=13734
|
|
433
|
+
_globals['_CLEARBACKUPSCHEDULEREQUEST']._serialized_end=13774
|
|
434
|
+
_globals['_CLEARBACKUPSCHEDULERESPONSE']._serialized_start=13776
|
|
435
|
+
_globals['_CLEARBACKUPSCHEDULERESPONSE']._serialized_end=13805
|
|
436
|
+
_globals['_GETBACKUPSCHEDULEREQUEST']._serialized_start=13807
|
|
437
|
+
_globals['_GETBACKUPSCHEDULEREQUEST']._serialized_end=13845
|
|
438
|
+
_globals['_GETBACKUPSCHEDULERESPONSE']._serialized_start=13848
|
|
439
|
+
_globals['_GETBACKUPSCHEDULERESPONSE']._serialized_end=14011
|
|
440
|
+
_globals['_LISTBACKUPSREQUEST']._serialized_start=14013
|
|
441
|
+
_globals['_LISTBACKUPSREQUEST']._serialized_end=14045
|
|
442
|
+
_globals['_BACKUPINFO']._serialized_start=14048
|
|
443
|
+
_globals['_BACKUPINFO']._serialized_end=14202
|
|
444
|
+
_globals['_LISTBACKUPSRESPONSE']._serialized_start=14204
|
|
445
|
+
_globals['_LISTBACKUPSRESPONSE']._serialized_end=14267
|
|
446
|
+
_globals['_TRIGGERBACKUPREQUEST']._serialized_start=14269
|
|
447
|
+
_globals['_TRIGGERBACKUPREQUEST']._serialized_end=14303
|
|
448
|
+
_globals['_TRIGGERBACKUPRESPONSE']._serialized_start=14305
|
|
449
|
+
_globals['_TRIGGERBACKUPRESPONSE']._serialized_end=14347
|
|
450
|
+
_globals['_DELETEBACKUPREQUEST']._serialized_start=14349
|
|
451
|
+
_globals['_DELETEBACKUPREQUEST']._serialized_end=14401
|
|
452
|
+
_globals['_DELETEBACKUPRESPONSE']._serialized_start=14403
|
|
453
|
+
_globals['_DELETEBACKUPRESPONSE']._serialized_end=14425
|
|
454
|
+
_globals['_RESTOREBACKUPREQUEST']._serialized_start=14427
|
|
455
|
+
_globals['_RESTOREBACKUPREQUEST']._serialized_end=14480
|
|
456
|
+
_globals['_RESTOREBACKUPRESPONSE']._serialized_start=14482
|
|
457
|
+
_globals['_RESTOREBACKUPRESPONSE']._serialized_end=14505
|
|
458
|
+
_globals['_SETORGBACKUPSDEFAULTREQUEST']._serialized_start=14508
|
|
459
|
+
_globals['_SETORGBACKUPSDEFAULTREQUEST']._serialized_end=14643
|
|
460
|
+
_globals['_SETORGBACKUPSDEFAULTRESPONSE']._serialized_start=14645
|
|
461
|
+
_globals['_SETORGBACKUPSDEFAULTRESPONSE']._serialized_end=14737
|
|
462
|
+
_globals['_GETORGBACKUPSDEFAULTREQUEST']._serialized_start=14739
|
|
463
|
+
_globals['_GETORGBACKUPSDEFAULTREQUEST']._serialized_end=14784
|
|
464
|
+
_globals['_GETORGBACKUPSDEFAULTRESPONSE']._serialized_start=14786
|
|
465
|
+
_globals['_GETORGBACKUPSDEFAULTRESPONSE']._serialized_end=14878
|
|
466
|
+
_globals['_SETORGMACHINEDEFAULTSREQUEST']._serialized_start=14880
|
|
467
|
+
_globals['_SETORGMACHINEDEFAULTSREQUEST']._serialized_end=14998
|
|
468
|
+
_globals['_SETORGMACHINEDEFAULTSRESPONSE']._serialized_start=15000
|
|
469
|
+
_globals['_SETORGMACHINEDEFAULTSRESPONSE']._serialized_end=15031
|
|
470
|
+
_globals['_GETORGMACHINEDEFAULTSREQUEST']._serialized_start=15033
|
|
471
|
+
_globals['_GETORGMACHINEDEFAULTSREQUEST']._serialized_end=15079
|
|
472
|
+
_globals['_RESIZEVMREQUEST']._serialized_start=15081
|
|
473
|
+
_globals['_RESIZEVMREQUEST']._serialized_end=15149
|
|
474
|
+
_globals['_RESIZEVMRESPONSE']._serialized_start=15151
|
|
475
|
+
_globals['_RESIZEVMRESPONSE']._serialized_end=15223
|
|
476
|
+
_globals['_GETORGMACHINEDEFAULTSRESPONSE']._serialized_start=15226
|
|
477
|
+
_globals['_GETORGMACHINEDEFAULTSRESPONSE']._serialized_end=15358
|
|
478
|
+
_globals['_CREATEORGREQUEST']._serialized_start=15360
|
|
479
|
+
_globals['_CREATEORGREQUEST']._serialized_end=15392
|
|
480
|
+
_globals['_CREATEORGRESPONSE']._serialized_start=15394
|
|
481
|
+
_globals['_CREATEORGRESPONSE']._serialized_end=15439
|
|
482
|
+
_globals['_RENAMEORGREQUEST']._serialized_start=15441
|
|
483
|
+
_globals['_RENAMEORGREQUEST']._serialized_end=15489
|
|
484
|
+
_globals['_RENAMEORGRESPONSE']._serialized_start=15491
|
|
485
|
+
_globals['_RENAMEORGRESPONSE']._serialized_end=15510
|
|
486
|
+
_globals['_GETORGMEMBERSREQUEST']._serialized_start=15512
|
|
487
|
+
_globals['_GETORGMEMBERSREQUEST']._serialized_end=15550
|
|
488
|
+
_globals['_GETORGMEMBERSRESPONSE']._serialized_start=15552
|
|
489
|
+
_globals['_GETORGMEMBERSRESPONSE']._serialized_end=15665
|
|
490
|
+
_globals['_ORGMEMBERINFO']._serialized_start=15667
|
|
491
|
+
_globals['_ORGMEMBERINFO']._serialized_end=15760
|
|
492
|
+
_globals['_ORGINVITEINFO']._serialized_start=15762
|
|
493
|
+
_globals['_ORGINVITEINFO']._serialized_end=15881
|
|
494
|
+
_globals['_INVITEORGMEMBERREQUEST']._serialized_start=15883
|
|
495
|
+
_globals['_INVITEORGMEMBERREQUEST']._serialized_end=15952
|
|
496
|
+
_globals['_INVITEORGMEMBERRESPONSE']._serialized_start=15954
|
|
497
|
+
_globals['_INVITEORGMEMBERRESPONSE']._serialized_end=16054
|
|
498
|
+
_globals['_REVOKEORGINVITEREQUEST']._serialized_start=16056
|
|
499
|
+
_globals['_REVOKEORGINVITEREQUEST']._serialized_end=16095
|
|
500
|
+
_globals['_REVOKEORGINVITERESPONSE']._serialized_start=16097
|
|
501
|
+
_globals['_REVOKEORGINVITERESPONSE']._serialized_end=16122
|
|
502
|
+
_globals['_REMOVEORGMEMBERREQUEST']._serialized_start=16124
|
|
503
|
+
_globals['_REMOVEORGMEMBERREQUEST']._serialized_end=16181
|
|
504
|
+
_globals['_REMOVEORGMEMBERRESPONSE']._serialized_start=16183
|
|
505
|
+
_globals['_REMOVEORGMEMBERRESPONSE']._serialized_end=16208
|
|
506
|
+
_globals['_SETORGMEMBERROLEREQUEST']._serialized_start=16210
|
|
507
|
+
_globals['_SETORGMEMBERROLEREQUEST']._serialized_end=16282
|
|
508
|
+
_globals['_SETORGMEMBERROLERESPONSE']._serialized_start=16284
|
|
509
|
+
_globals['_SETORGMEMBERROLERESPONSE']._serialized_end=16310
|
|
510
|
+
_globals['_TEAMINFO']._serialized_start=16313
|
|
511
|
+
_globals['_TEAMINFO']._serialized_end=16506
|
|
512
|
+
_globals['_TEAMMEMBERINFO']._serialized_start=16508
|
|
513
|
+
_globals['_TEAMMEMBERINFO']._serialized_end=16620
|
|
514
|
+
_globals['_LISTTEAMSREQUEST']._serialized_start=16622
|
|
515
|
+
_globals['_LISTTEAMSREQUEST']._serialized_end=16656
|
|
516
|
+
_globals['_LISTTEAMSRESPONSE']._serialized_start=16658
|
|
517
|
+
_globals['_LISTTEAMSRESPONSE']._serialized_end=16715
|
|
518
|
+
_globals['_GETTEAMREQUEST']._serialized_start=16717
|
|
519
|
+
_globals['_GETTEAMREQUEST']._serialized_end=16750
|
|
520
|
+
_globals['_CREATETEAMREQUEST']._serialized_start=16752
|
|
521
|
+
_globals['_CREATETEAMREQUEST']._serialized_end=16801
|
|
522
|
+
_globals['_RENAMETEAMREQUEST']._serialized_start=16803
|
|
523
|
+
_globals['_RENAMETEAMREQUEST']._serialized_end=16853
|
|
524
|
+
_globals['_RENAMETEAMRESPONSE']._serialized_start=16855
|
|
525
|
+
_globals['_RENAMETEAMRESPONSE']._serialized_end=16875
|
|
526
|
+
_globals['_DESTROYTEAMREQUEST']._serialized_start=16877
|
|
527
|
+
_globals['_DESTROYTEAMREQUEST']._serialized_end=16914
|
|
528
|
+
_globals['_DESTROYTEAMRESPONSE']._serialized_start=16916
|
|
529
|
+
_globals['_DESTROYTEAMRESPONSE']._serialized_end=16937
|
|
530
|
+
_globals['_ADDTEAMMEMBERREQUEST']._serialized_start=16939
|
|
531
|
+
_globals['_ADDTEAMMEMBERREQUEST']._serialized_end=16995
|
|
532
|
+
_globals['_ADDTEAMMEMBERRESPONSE']._serialized_start=16997
|
|
533
|
+
_globals['_ADDTEAMMEMBERRESPONSE']._serialized_end=17020
|
|
534
|
+
_globals['_REMOVETEAMMEMBERREQUEST']._serialized_start=17022
|
|
535
|
+
_globals['_REMOVETEAMMEMBERREQUEST']._serialized_end=17081
|
|
536
|
+
_globals['_REMOVETEAMMEMBERRESPONSE']._serialized_start=17083
|
|
537
|
+
_globals['_REMOVETEAMMEMBERRESPONSE']._serialized_end=17109
|
|
538
|
+
_globals['_SETTEAMMEMBERROLEREQUEST']._serialized_start=17111
|
|
539
|
+
_globals['_SETTEAMMEMBERROLEREQUEST']._serialized_end=17185
|
|
540
|
+
_globals['_SETTEAMMEMBERROLERESPONSE']._serialized_start=17187
|
|
541
|
+
_globals['_SETTEAMMEMBERROLERESPONSE']._serialized_end=17214
|
|
542
|
+
_globals['_SETTEAMDEFAULTSNAPSHOTREQUEST']._serialized_start=17216
|
|
543
|
+
_globals['_SETTEAMDEFAULTSNAPSHOTREQUEST']._serialized_end=17285
|
|
544
|
+
_globals['_SETTEAMDEFAULTSNAPSHOTRESPONSE']._serialized_start=17287
|
|
545
|
+
_globals['_SETTEAMDEFAULTSNAPSHOTRESPONSE']._serialized_end=17319
|
|
546
|
+
_globals['_BOXDAPI']._serialized_start=17322
|
|
547
|
+
_globals['_BOXDAPI']._serialized_end=26920
|
|
548
548
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -565,6 +565,7 @@ def _machine_usage_fields(v) -> dict:
|
|
|
565
565
|
"ram_gib_hours": v.ram_gib_hours,
|
|
566
566
|
"disk_gib_hours": v.disk_gib_hours,
|
|
567
567
|
"cost_micro": v.cost_micro,
|
|
568
|
+
"complete": v.complete,
|
|
568
569
|
}
|
|
569
570
|
|
|
570
571
|
|
|
@@ -585,6 +586,7 @@ def org_usage(msg) -> OrgUsage:
|
|
|
585
586
|
currency=msg.currency,
|
|
586
587
|
rates=_usage_rates(msg.rates),
|
|
587
588
|
total_cost_micro=msg.total_cost_micro,
|
|
589
|
+
complete=msg.complete,
|
|
588
590
|
machines=[MachineUsage(**_machine_usage_fields(v)) for v in msg.vms],
|
|
589
591
|
)
|
|
590
592
|
|
|
@@ -627,6 +627,11 @@ class MachineUsage(BaseModel):
|
|
|
627
627
|
cost_micro: int
|
|
628
628
|
"""Estimated cost at current rates, micro-units of the currency
|
|
629
629
|
(``cost_micro / 1e6`` is the amount). The ledger is what was charged."""
|
|
630
|
+
complete: bool
|
|
631
|
+
"""All of this machine's usage in the window has been metered, so the
|
|
632
|
+
figures won't grow. Metering lags by up to ~25 minutes: a machine read
|
|
633
|
+
right after ``delete()`` is not complete yet, and one that still exists
|
|
634
|
+
never is in a window that runs to now. Store a cost once this is True."""
|
|
630
635
|
|
|
631
636
|
|
|
632
637
|
class MachineUsageReport(MachineUsage):
|
|
@@ -649,6 +654,8 @@ class OrgUsage(BaseModel):
|
|
|
649
654
|
rates: UsageRates
|
|
650
655
|
total_cost_micro: int
|
|
651
656
|
"""Sum of the machines' ``cost_micro``."""
|
|
657
|
+
complete: bool
|
|
658
|
+
"""Every machine is complete, so the total won't grow."""
|
|
652
659
|
machines: list[MachineUsage]
|
|
653
660
|
"""Most expensive first, including machines deleted since."""
|
|
654
661
|
|
|
@@ -300,13 +300,17 @@ class Machines(Namespace):
|
|
|
300
300
|
*,
|
|
301
301
|
since: datetime | int | None = None,
|
|
302
302
|
until: datetime | int | None = None,
|
|
303
|
+
org: str = "",
|
|
303
304
|
) -> MachineUsageReport:
|
|
304
305
|
"""What a machine used and cost: seconds in each state and an
|
|
305
306
|
estimated cost at the org's current rates.
|
|
306
307
|
|
|
307
308
|
Defaults to the machine's whole life (at most a year back); `since`
|
|
308
309
|
and `until` take a datetime or unix seconds. A deleted machine is
|
|
309
|
-
found by its id
|
|
310
|
+
found by its id or name in the usage history of `org` (default: your
|
|
311
|
+
default org, or an API key's org), so this still answers after
|
|
312
|
+
`delete()`; if several deleted machines had that name the call fails
|
|
313
|
+
with their ids::
|
|
310
314
|
|
|
311
315
|
u = boxd.machines.usage(machine.id)
|
|
312
316
|
print(u.cost_micro / 1e6, u.currency)
|
|
@@ -320,6 +324,7 @@ class Machines(Namespace):
|
|
|
320
324
|
vm_id=machine_id,
|
|
321
325
|
since=req.unix_seconds(since),
|
|
322
326
|
until=req.unix_seconds(until),
|
|
327
|
+
org=org,
|
|
323
328
|
),
|
|
324
329
|
)
|
|
325
330
|
)
|
|
@@ -1033,13 +1038,17 @@ class AsyncMachines(Namespace):
|
|
|
1033
1038
|
*,
|
|
1034
1039
|
since: datetime | int | None = None,
|
|
1035
1040
|
until: datetime | int | None = None,
|
|
1041
|
+
org: str = "",
|
|
1036
1042
|
) -> MachineUsageReport:
|
|
1037
1043
|
"""What a machine used and cost: seconds in each state and an
|
|
1038
1044
|
estimated cost at the org's current rates.
|
|
1039
1045
|
|
|
1040
1046
|
Defaults to the machine's whole life (at most a year back); `since`
|
|
1041
1047
|
and `until` take a datetime or unix seconds. A deleted machine is
|
|
1042
|
-
found by its id
|
|
1048
|
+
found by its id or name in the usage history of `org` (default: your
|
|
1049
|
+
default org, or an API key's org), so this still answers after
|
|
1050
|
+
`delete()`; if several deleted machines had that name the call fails
|
|
1051
|
+
with their ids::
|
|
1043
1052
|
|
|
1044
1053
|
u = await boxd.machines.usage(machine.id)
|
|
1045
1054
|
print(u.cost_micro / 1e6, u.currency)
|
|
@@ -1053,6 +1062,7 @@ class AsyncMachines(Namespace):
|
|
|
1053
1062
|
vm_id=machine_id,
|
|
1054
1063
|
since=req.unix_seconds(since),
|
|
1055
1064
|
until=req.unix_seconds(until),
|
|
1065
|
+
org=org,
|
|
1056
1066
|
),
|
|
1057
1067
|
)
|
|
1058
1068
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: boxd
|
|
3
|
-
Version: 0.2.13.
|
|
3
|
+
Version: 0.2.13.dev751
|
|
4
4
|
Summary: Python SDK for the boxd cloud VM platform
|
|
5
5
|
Author: Azin
|
|
6
6
|
License-Expression: MIT
|
|
@@ -766,10 +766,11 @@ and admins only; an API key issued for the org works too.
|
|
|
766
766
|
from datetime import datetime, timezone
|
|
767
767
|
|
|
768
768
|
# One machine over its whole life, or pass since=/until= (datetime or unix
|
|
769
|
-
# seconds). A deleted machine is found by its id.
|
|
769
|
+
# seconds). A deleted machine is found by its id or name (org= says where to look).
|
|
770
770
|
u = boxd.machines.usage("my-machine")
|
|
771
771
|
u.seconds.running, u.seconds.standby, u.seconds.hibernated, u.seconds.stopped
|
|
772
772
|
u.cost_micro / 1e6 # estimated cost, in u.currency ("eur" | "usd")
|
|
773
|
+
u.complete # True once all its usage is metered (see below)
|
|
773
774
|
u.period.start, u.period.end
|
|
774
775
|
u.vcpu_hours, u.ram_gib_hours, u.disk_gib_hours # what the cost is priced on
|
|
775
776
|
u.rates # ...at these rates, per unit-hour
|
|
@@ -785,6 +786,22 @@ for e in boxd.orgs.ledger(since=datetime(2026, 9, 1, tzinfo=timezone.utc)):
|
|
|
785
786
|
print(e.created_at, e.kind, e.amount_micro / 1e6) # charges are negative
|
|
786
787
|
```
|
|
787
788
|
|
|
789
|
+
To record what a machine cost after deleting it, wait for `complete`:
|
|
790
|
+
metering lags by up to ~25 minutes, so the figure read right after `delete()`
|
|
791
|
+
is still growing.
|
|
792
|
+
|
|
793
|
+
```python
|
|
794
|
+
boxd.machines.delete(machine_id)
|
|
795
|
+
# ...a little later, or from a periodic job:
|
|
796
|
+
u = boxd.machines.usage(machine_id)
|
|
797
|
+
if u.complete:
|
|
798
|
+
save(machine_id, u.cost_micro, u.currency) # otherwise try again later
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
`orgs.usage()` carries the same flag on every machine, so one periodic call can
|
|
802
|
+
settle all of them. A machine that still exists is never complete in a window
|
|
803
|
+
that runs to now.
|
|
804
|
+
|
|
788
805
|
Money is in micro-units (1e-6) of the org's currency. Usage is metered in
|
|
789
806
|
15-minute buckets and priced at the org's current rates, so it is an estimate
|
|
790
807
|
that tracks the ledger closely; the ledger is what was charged (one
|
|
@@ -1088,6 +1088,7 @@ def _vm_usage() -> api_pb2.VmUsage:
|
|
|
1088
1088
|
seconds=api_pb2.StateSeconds(running=3600, standby=60),
|
|
1089
1089
|
vcpu_hours=2.0,
|
|
1090
1090
|
cost_micro=1_230_000,
|
|
1091
|
+
complete=True,
|
|
1091
1092
|
)
|
|
1092
1093
|
|
|
1093
1094
|
|
|
@@ -1116,6 +1117,7 @@ def test_machines_usage_sends_the_window_as_unix_seconds():
|
|
|
1116
1117
|
assert u.seconds.running == 3600
|
|
1117
1118
|
assert u.resources.vcpu == 2
|
|
1118
1119
|
assert u.cost_micro == 1_230_000
|
|
1120
|
+
assert u.complete is True
|
|
1119
1121
|
assert u.currency == "eur"
|
|
1120
1122
|
assert u.rates.vcpu_hour_micro == 49_000
|
|
1121
1123
|
assert u.period.start == datetime.fromtimestamp(1_000, tz=timezone.utc)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|