boxd 0.2.13.dev751__tar.gz → 0.2.13.dev755__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.dev751/src/boxd.egg-info → boxd-0.2.13.dev755}/PKG-INFO +6 -6
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/README.md +5 -5
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/pyproject.toml +1 -1
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/__init__.py +4 -4
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_generated/api_pb2.py +131 -131
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_generated/api_pb2_grpc.py +14 -14
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_mappers.py +5 -5
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/models.py +6 -6
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/orgs.py +28 -28
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755/src/boxd.egg-info}/PKG-INFO +6 -6
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/tests/test_namespaces.py +9 -9
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/LICENSE +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/setup.cfg +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_client.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_credentials.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_generated/__init__.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_requests.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_streaming.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_transport.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_urls.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/_version_check.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/errors.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/__init__.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/account.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/credentials.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/disks.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/domains.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/machines.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/snapshots.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/teams.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd/resources/vars.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd.egg-info/SOURCES.txt +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd.egg-info/dependency_links.txt +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd.egg-info/requires.txt +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/src/boxd.egg-info/top_level.txt +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/tests/test_credentials.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/tests/test_mappers.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/tests/test_requests.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/tests/test_streaming.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/tests/test_transport.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/tests/test_urls.py +0 -0
- {boxd-0.2.13.dev751 → boxd-0.2.13.dev755}/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.dev755
|
|
4
4
|
Summary: Python SDK for the boxd cloud VM platform
|
|
5
5
|
Author: Azin
|
|
6
6
|
License-Expression: MIT
|
|
@@ -781,8 +781,8 @@ r.total_cost_micro, r.currency
|
|
|
781
781
|
for m in r.machines:
|
|
782
782
|
print(m.name, m.status, m.cost_micro / 1e6)
|
|
783
783
|
|
|
784
|
-
#
|
|
785
|
-
for e in boxd.orgs.
|
|
784
|
+
# Billing activity: what was actually charged, newest first.
|
|
785
|
+
for e in boxd.orgs.billing_activity(since=datetime(2026, 9, 1, tzinfo=timezone.utc)):
|
|
786
786
|
print(e.created_at, e.kind, e.amount_micro / 1e6) # charges are negative
|
|
787
787
|
```
|
|
788
788
|
|
|
@@ -804,12 +804,12 @@ that runs to now.
|
|
|
804
804
|
|
|
805
805
|
Money is in micro-units (1e-6) of the org's currency. Usage is metered in
|
|
806
806
|
15-minute buckets and priced at the org's current rates, so it is an estimate
|
|
807
|
-
that tracks
|
|
807
|
+
that tracks billing activity closely; billing activity is what was charged (one
|
|
808
808
|
`usage_charge` per 15 minutes for the whole org, plus top-ups and grants).
|
|
809
809
|
Machines deleted since still show up, with status `"deleted"`. A window spans
|
|
810
|
-
at most 366 days. `orgs.
|
|
810
|
+
at most 366 days. `orgs.billing_activity_page()` returns one page with its
|
|
811
811
|
`next_page_token` when you want to page by hand. The async client has the
|
|
812
|
-
same methods (`async for e in boxd.orgs.
|
|
812
|
+
same methods (`async for e in boxd.orgs.billing_activity(): ...`).
|
|
813
813
|
|
|
814
814
|
## Errors
|
|
815
815
|
|
|
@@ -749,8 +749,8 @@ r.total_cost_micro, r.currency
|
|
|
749
749
|
for m in r.machines:
|
|
750
750
|
print(m.name, m.status, m.cost_micro / 1e6)
|
|
751
751
|
|
|
752
|
-
#
|
|
753
|
-
for e in boxd.orgs.
|
|
752
|
+
# Billing activity: what was actually charged, newest first.
|
|
753
|
+
for e in boxd.orgs.billing_activity(since=datetime(2026, 9, 1, tzinfo=timezone.utc)):
|
|
754
754
|
print(e.created_at, e.kind, e.amount_micro / 1e6) # charges are negative
|
|
755
755
|
```
|
|
756
756
|
|
|
@@ -772,12 +772,12 @@ that runs to now.
|
|
|
772
772
|
|
|
773
773
|
Money is in micro-units (1e-6) of the org's currency. Usage is metered in
|
|
774
774
|
15-minute buckets and priced at the org's current rates, so it is an estimate
|
|
775
|
-
that tracks
|
|
775
|
+
that tracks billing activity closely; billing activity is what was charged (one
|
|
776
776
|
`usage_charge` per 15 minutes for the whole org, plus top-ups and grants).
|
|
777
777
|
Machines deleted since still show up, with status `"deleted"`. A window spans
|
|
778
|
-
at most 366 days. `orgs.
|
|
778
|
+
at most 366 days. `orgs.billing_activity_page()` returns one page with its
|
|
779
779
|
`next_page_token` when you want to page by hand. The async client has the
|
|
780
|
-
same methods (`async for e in boxd.orgs.
|
|
780
|
+
same methods (`async for e in boxd.orgs.billing_activity(): ...`).
|
|
781
781
|
|
|
782
782
|
## Errors
|
|
783
783
|
|
|
@@ -53,8 +53,8 @@ from .models import (
|
|
|
53
53
|
EnvVar,
|
|
54
54
|
ExecResult,
|
|
55
55
|
ExposedPort,
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
BillingActivityEntry,
|
|
57
|
+
BillingActivityPage,
|
|
58
58
|
Machine,
|
|
59
59
|
MachineAccess,
|
|
60
60
|
MachineIdle,
|
|
@@ -130,8 +130,8 @@ __all__ = [
|
|
|
130
130
|
"EnvVar",
|
|
131
131
|
"ExecResult",
|
|
132
132
|
"ExposedPort",
|
|
133
|
-
"
|
|
134
|
-
"
|
|
133
|
+
"BillingActivityEntry",
|
|
134
|
+
"BillingActivityPage",
|
|
135
135
|
"Machine",
|
|
136
136
|
"MachineAccess",
|
|
137
137
|
"MachineIdle",
|
|
@@ -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\"\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')
|
|
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\"n\n\x1aListBillingActivityRequest\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\x14\x42illingActivityEntry\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\"\x93\x01\n\x1bListBillingActivityResponse\x12\x10\n\x08\x63urrency\x18\x01 \x01(\t\x12\x15\n\rbalance_micro\x18\x02 \x01(\x03\x12\x32\n\x07\x65ntries\x18\x03 \x03(\x0b\x32!.boxd.api.v1.BillingActivityEntry\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\x87K\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\x12h\n\x13ListBillingActivity\x12\'.boxd.api.v1.ListBillingActivityRequest\x1a(.boxd.api.v1.ListBillingActivityResponse\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)
|
|
@@ -415,134 +415,134 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
415
415
|
_globals['_GETVMUSAGEREQUEST']._serialized_end=13028
|
|
416
416
|
_globals['_GETVMUSAGERESPONSE']._serialized_start=13031
|
|
417
417
|
_globals['_GETVMUSAGERESPONSE']._serialized_end=13188
|
|
418
|
-
_globals['
|
|
419
|
-
_globals['
|
|
420
|
-
_globals['
|
|
421
|
-
_globals['
|
|
422
|
-
_globals['
|
|
423
|
-
_globals['
|
|
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=
|
|
418
|
+
_globals['_LISTBILLINGACTIVITYREQUEST']._serialized_start=13190
|
|
419
|
+
_globals['_LISTBILLINGACTIVITYREQUEST']._serialized_end=13300
|
|
420
|
+
_globals['_BILLINGACTIVITYENTRY']._serialized_start=13302
|
|
421
|
+
_globals['_BILLINGACTIVITYENTRY']._serialized_end=13398
|
|
422
|
+
_globals['_LISTBILLINGACTIVITYRESPONSE']._serialized_start=13401
|
|
423
|
+
_globals['_LISTBILLINGACTIVITYRESPONSE']._serialized_end=13548
|
|
424
|
+
_globals['_UNSHAREVMREQUEST']._serialized_start=13550
|
|
425
|
+
_globals['_UNSHAREVMREQUEST']._serialized_end=13583
|
|
426
|
+
_globals['_UNSHAREVMRESPONSE']._serialized_start=13585
|
|
427
|
+
_globals['_UNSHAREVMRESPONSE']._serialized_end=13604
|
|
428
|
+
_globals['_SETBACKUPSCHEDULEREQUEST']._serialized_start=13606
|
|
429
|
+
_globals['_SETBACKUPSCHEDULEREQUEST']._serialized_end=13715
|
|
430
|
+
_globals['_SETBACKUPSCHEDULERESPONSE']._serialized_start=13717
|
|
431
|
+
_globals['_SETBACKUPSCHEDULERESPONSE']._serialized_end=13744
|
|
432
|
+
_globals['_CLEARBACKUPSCHEDULEREQUEST']._serialized_start=13746
|
|
433
|
+
_globals['_CLEARBACKUPSCHEDULEREQUEST']._serialized_end=13786
|
|
434
|
+
_globals['_CLEARBACKUPSCHEDULERESPONSE']._serialized_start=13788
|
|
435
|
+
_globals['_CLEARBACKUPSCHEDULERESPONSE']._serialized_end=13817
|
|
436
|
+
_globals['_GETBACKUPSCHEDULEREQUEST']._serialized_start=13819
|
|
437
|
+
_globals['_GETBACKUPSCHEDULEREQUEST']._serialized_end=13857
|
|
438
|
+
_globals['_GETBACKUPSCHEDULERESPONSE']._serialized_start=13860
|
|
439
|
+
_globals['_GETBACKUPSCHEDULERESPONSE']._serialized_end=14023
|
|
440
|
+
_globals['_LISTBACKUPSREQUEST']._serialized_start=14025
|
|
441
|
+
_globals['_LISTBACKUPSREQUEST']._serialized_end=14057
|
|
442
|
+
_globals['_BACKUPINFO']._serialized_start=14060
|
|
443
|
+
_globals['_BACKUPINFO']._serialized_end=14214
|
|
444
|
+
_globals['_LISTBACKUPSRESPONSE']._serialized_start=14216
|
|
445
|
+
_globals['_LISTBACKUPSRESPONSE']._serialized_end=14279
|
|
446
|
+
_globals['_TRIGGERBACKUPREQUEST']._serialized_start=14281
|
|
447
|
+
_globals['_TRIGGERBACKUPREQUEST']._serialized_end=14315
|
|
448
|
+
_globals['_TRIGGERBACKUPRESPONSE']._serialized_start=14317
|
|
449
|
+
_globals['_TRIGGERBACKUPRESPONSE']._serialized_end=14359
|
|
450
|
+
_globals['_DELETEBACKUPREQUEST']._serialized_start=14361
|
|
451
|
+
_globals['_DELETEBACKUPREQUEST']._serialized_end=14413
|
|
452
|
+
_globals['_DELETEBACKUPRESPONSE']._serialized_start=14415
|
|
453
|
+
_globals['_DELETEBACKUPRESPONSE']._serialized_end=14437
|
|
454
|
+
_globals['_RESTOREBACKUPREQUEST']._serialized_start=14439
|
|
455
|
+
_globals['_RESTOREBACKUPREQUEST']._serialized_end=14492
|
|
456
|
+
_globals['_RESTOREBACKUPRESPONSE']._serialized_start=14494
|
|
457
|
+
_globals['_RESTOREBACKUPRESPONSE']._serialized_end=14517
|
|
458
|
+
_globals['_SETORGBACKUPSDEFAULTREQUEST']._serialized_start=14520
|
|
459
|
+
_globals['_SETORGBACKUPSDEFAULTREQUEST']._serialized_end=14655
|
|
460
|
+
_globals['_SETORGBACKUPSDEFAULTRESPONSE']._serialized_start=14657
|
|
461
|
+
_globals['_SETORGBACKUPSDEFAULTRESPONSE']._serialized_end=14749
|
|
462
|
+
_globals['_GETORGBACKUPSDEFAULTREQUEST']._serialized_start=14751
|
|
463
|
+
_globals['_GETORGBACKUPSDEFAULTREQUEST']._serialized_end=14796
|
|
464
|
+
_globals['_GETORGBACKUPSDEFAULTRESPONSE']._serialized_start=14798
|
|
465
|
+
_globals['_GETORGBACKUPSDEFAULTRESPONSE']._serialized_end=14890
|
|
466
|
+
_globals['_SETORGMACHINEDEFAULTSREQUEST']._serialized_start=14892
|
|
467
|
+
_globals['_SETORGMACHINEDEFAULTSREQUEST']._serialized_end=15010
|
|
468
|
+
_globals['_SETORGMACHINEDEFAULTSRESPONSE']._serialized_start=15012
|
|
469
|
+
_globals['_SETORGMACHINEDEFAULTSRESPONSE']._serialized_end=15043
|
|
470
|
+
_globals['_GETORGMACHINEDEFAULTSREQUEST']._serialized_start=15045
|
|
471
|
+
_globals['_GETORGMACHINEDEFAULTSREQUEST']._serialized_end=15091
|
|
472
|
+
_globals['_RESIZEVMREQUEST']._serialized_start=15093
|
|
473
|
+
_globals['_RESIZEVMREQUEST']._serialized_end=15161
|
|
474
|
+
_globals['_RESIZEVMRESPONSE']._serialized_start=15163
|
|
475
|
+
_globals['_RESIZEVMRESPONSE']._serialized_end=15235
|
|
476
|
+
_globals['_GETORGMACHINEDEFAULTSRESPONSE']._serialized_start=15238
|
|
477
|
+
_globals['_GETORGMACHINEDEFAULTSRESPONSE']._serialized_end=15370
|
|
478
|
+
_globals['_CREATEORGREQUEST']._serialized_start=15372
|
|
479
|
+
_globals['_CREATEORGREQUEST']._serialized_end=15404
|
|
480
|
+
_globals['_CREATEORGRESPONSE']._serialized_start=15406
|
|
481
|
+
_globals['_CREATEORGRESPONSE']._serialized_end=15451
|
|
482
|
+
_globals['_RENAMEORGREQUEST']._serialized_start=15453
|
|
483
|
+
_globals['_RENAMEORGREQUEST']._serialized_end=15501
|
|
484
|
+
_globals['_RENAMEORGRESPONSE']._serialized_start=15503
|
|
485
|
+
_globals['_RENAMEORGRESPONSE']._serialized_end=15522
|
|
486
|
+
_globals['_GETORGMEMBERSREQUEST']._serialized_start=15524
|
|
487
|
+
_globals['_GETORGMEMBERSREQUEST']._serialized_end=15562
|
|
488
|
+
_globals['_GETORGMEMBERSRESPONSE']._serialized_start=15564
|
|
489
|
+
_globals['_GETORGMEMBERSRESPONSE']._serialized_end=15677
|
|
490
|
+
_globals['_ORGMEMBERINFO']._serialized_start=15679
|
|
491
|
+
_globals['_ORGMEMBERINFO']._serialized_end=15772
|
|
492
|
+
_globals['_ORGINVITEINFO']._serialized_start=15774
|
|
493
|
+
_globals['_ORGINVITEINFO']._serialized_end=15893
|
|
494
|
+
_globals['_INVITEORGMEMBERREQUEST']._serialized_start=15895
|
|
495
|
+
_globals['_INVITEORGMEMBERREQUEST']._serialized_end=15964
|
|
496
|
+
_globals['_INVITEORGMEMBERRESPONSE']._serialized_start=15966
|
|
497
|
+
_globals['_INVITEORGMEMBERRESPONSE']._serialized_end=16066
|
|
498
|
+
_globals['_REVOKEORGINVITEREQUEST']._serialized_start=16068
|
|
499
|
+
_globals['_REVOKEORGINVITEREQUEST']._serialized_end=16107
|
|
500
|
+
_globals['_REVOKEORGINVITERESPONSE']._serialized_start=16109
|
|
501
|
+
_globals['_REVOKEORGINVITERESPONSE']._serialized_end=16134
|
|
502
|
+
_globals['_REMOVEORGMEMBERREQUEST']._serialized_start=16136
|
|
503
|
+
_globals['_REMOVEORGMEMBERREQUEST']._serialized_end=16193
|
|
504
|
+
_globals['_REMOVEORGMEMBERRESPONSE']._serialized_start=16195
|
|
505
|
+
_globals['_REMOVEORGMEMBERRESPONSE']._serialized_end=16220
|
|
506
|
+
_globals['_SETORGMEMBERROLEREQUEST']._serialized_start=16222
|
|
507
|
+
_globals['_SETORGMEMBERROLEREQUEST']._serialized_end=16294
|
|
508
|
+
_globals['_SETORGMEMBERROLERESPONSE']._serialized_start=16296
|
|
509
|
+
_globals['_SETORGMEMBERROLERESPONSE']._serialized_end=16322
|
|
510
|
+
_globals['_TEAMINFO']._serialized_start=16325
|
|
511
|
+
_globals['_TEAMINFO']._serialized_end=16518
|
|
512
|
+
_globals['_TEAMMEMBERINFO']._serialized_start=16520
|
|
513
|
+
_globals['_TEAMMEMBERINFO']._serialized_end=16632
|
|
514
|
+
_globals['_LISTTEAMSREQUEST']._serialized_start=16634
|
|
515
|
+
_globals['_LISTTEAMSREQUEST']._serialized_end=16668
|
|
516
|
+
_globals['_LISTTEAMSRESPONSE']._serialized_start=16670
|
|
517
|
+
_globals['_LISTTEAMSRESPONSE']._serialized_end=16727
|
|
518
|
+
_globals['_GETTEAMREQUEST']._serialized_start=16729
|
|
519
|
+
_globals['_GETTEAMREQUEST']._serialized_end=16762
|
|
520
|
+
_globals['_CREATETEAMREQUEST']._serialized_start=16764
|
|
521
|
+
_globals['_CREATETEAMREQUEST']._serialized_end=16813
|
|
522
|
+
_globals['_RENAMETEAMREQUEST']._serialized_start=16815
|
|
523
|
+
_globals['_RENAMETEAMREQUEST']._serialized_end=16865
|
|
524
|
+
_globals['_RENAMETEAMRESPONSE']._serialized_start=16867
|
|
525
|
+
_globals['_RENAMETEAMRESPONSE']._serialized_end=16887
|
|
526
|
+
_globals['_DESTROYTEAMREQUEST']._serialized_start=16889
|
|
527
|
+
_globals['_DESTROYTEAMREQUEST']._serialized_end=16926
|
|
528
|
+
_globals['_DESTROYTEAMRESPONSE']._serialized_start=16928
|
|
529
|
+
_globals['_DESTROYTEAMRESPONSE']._serialized_end=16949
|
|
530
|
+
_globals['_ADDTEAMMEMBERREQUEST']._serialized_start=16951
|
|
531
|
+
_globals['_ADDTEAMMEMBERREQUEST']._serialized_end=17007
|
|
532
|
+
_globals['_ADDTEAMMEMBERRESPONSE']._serialized_start=17009
|
|
533
|
+
_globals['_ADDTEAMMEMBERRESPONSE']._serialized_end=17032
|
|
534
|
+
_globals['_REMOVETEAMMEMBERREQUEST']._serialized_start=17034
|
|
535
|
+
_globals['_REMOVETEAMMEMBERREQUEST']._serialized_end=17093
|
|
536
|
+
_globals['_REMOVETEAMMEMBERRESPONSE']._serialized_start=17095
|
|
537
|
+
_globals['_REMOVETEAMMEMBERRESPONSE']._serialized_end=17121
|
|
538
|
+
_globals['_SETTEAMMEMBERROLEREQUEST']._serialized_start=17123
|
|
539
|
+
_globals['_SETTEAMMEMBERROLEREQUEST']._serialized_end=17197
|
|
540
|
+
_globals['_SETTEAMMEMBERROLERESPONSE']._serialized_start=17199
|
|
541
|
+
_globals['_SETTEAMMEMBERROLERESPONSE']._serialized_end=17226
|
|
542
|
+
_globals['_SETTEAMDEFAULTSNAPSHOTREQUEST']._serialized_start=17228
|
|
543
|
+
_globals['_SETTEAMDEFAULTSNAPSHOTREQUEST']._serialized_end=17297
|
|
544
|
+
_globals['_SETTEAMDEFAULTSNAPSHOTRESPONSE']._serialized_start=17299
|
|
545
|
+
_globals['_SETTEAMDEFAULTSNAPSHOTRESPONSE']._serialized_end=17331
|
|
546
|
+
_globals['_BOXDAPI']._serialized_start=17334
|
|
547
|
+
_globals['_BOXDAPI']._serialized_end=26941
|
|
548
548
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -454,10 +454,10 @@ class BoxdApiStub(object):
|
|
|
454
454
|
request_serializer=api__pb2.GetVmUsageRequest.SerializeToString,
|
|
455
455
|
response_deserializer=api__pb2.GetVmUsageResponse.FromString,
|
|
456
456
|
_registered_method=True)
|
|
457
|
-
self.
|
|
458
|
-
'/boxd.api.v1.BoxdApi/
|
|
459
|
-
request_serializer=api__pb2.
|
|
460
|
-
response_deserializer=api__pb2.
|
|
457
|
+
self.ListBillingActivity = channel.unary_unary(
|
|
458
|
+
'/boxd.api.v1.BoxdApi/ListBillingActivity',
|
|
459
|
+
request_serializer=api__pb2.ListBillingActivityRequest.SerializeToString,
|
|
460
|
+
response_deserializer=api__pb2.ListBillingActivityResponse.FromString,
|
|
461
461
|
_registered_method=True)
|
|
462
462
|
self.SetBackupSchedule = channel.unary_unary(
|
|
463
463
|
'/boxd.api.v1.BoxdApi/SetBackupSchedule',
|
|
@@ -1191,7 +1191,7 @@ class BoxdApiServicer(object):
|
|
|
1191
1191
|
|
|
1192
1192
|
def GetOrgUsage(self, request, context):
|
|
1193
1193
|
"""Usage and cost (BOX-290): what each machine used and cost over a window,
|
|
1194
|
-
and
|
|
1194
|
+
and billing activity (what was actually charged). Org owners and admins
|
|
1195
1195
|
only; API keys fenced to the org work, tokens minted inside a VM don't.
|
|
1196
1196
|
"""
|
|
1197
1197
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
@@ -1204,7 +1204,7 @@ class BoxdApiServicer(object):
|
|
|
1204
1204
|
context.set_details('Method not implemented!')
|
|
1205
1205
|
raise NotImplementedError('Method not implemented!')
|
|
1206
1206
|
|
|
1207
|
-
def
|
|
1207
|
+
def ListBillingActivity(self, request, context):
|
|
1208
1208
|
"""Missing associated documentation comment in .proto file."""
|
|
1209
1209
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
1210
1210
|
context.set_details('Method not implemented!')
|
|
@@ -1861,10 +1861,10 @@ def add_BoxdApiServicer_to_server(servicer, server):
|
|
|
1861
1861
|
request_deserializer=api__pb2.GetVmUsageRequest.FromString,
|
|
1862
1862
|
response_serializer=api__pb2.GetVmUsageResponse.SerializeToString,
|
|
1863
1863
|
),
|
|
1864
|
-
'
|
|
1865
|
-
servicer.
|
|
1866
|
-
request_deserializer=api__pb2.
|
|
1867
|
-
response_serializer=api__pb2.
|
|
1864
|
+
'ListBillingActivity': grpc.unary_unary_rpc_method_handler(
|
|
1865
|
+
servicer.ListBillingActivity,
|
|
1866
|
+
request_deserializer=api__pb2.ListBillingActivityRequest.FromString,
|
|
1867
|
+
response_serializer=api__pb2.ListBillingActivityResponse.SerializeToString,
|
|
1868
1868
|
),
|
|
1869
1869
|
'SetBackupSchedule': grpc.unary_unary_rpc_method_handler(
|
|
1870
1870
|
servicer.SetBackupSchedule,
|
|
@@ -4286,7 +4286,7 @@ class BoxdApi(object):
|
|
|
4286
4286
|
_registered_method=True)
|
|
4287
4287
|
|
|
4288
4288
|
@staticmethod
|
|
4289
|
-
def
|
|
4289
|
+
def ListBillingActivity(request,
|
|
4290
4290
|
target,
|
|
4291
4291
|
options=(),
|
|
4292
4292
|
channel_credentials=None,
|
|
@@ -4299,9 +4299,9 @@ class BoxdApi(object):
|
|
|
4299
4299
|
return grpc.experimental.unary_unary(
|
|
4300
4300
|
request,
|
|
4301
4301
|
target,
|
|
4302
|
-
'/boxd.api.v1.BoxdApi/
|
|
4303
|
-
api__pb2.
|
|
4304
|
-
api__pb2.
|
|
4302
|
+
'/boxd.api.v1.BoxdApi/ListBillingActivity',
|
|
4303
|
+
api__pb2.ListBillingActivityRequest.SerializeToString,
|
|
4304
|
+
api__pb2.ListBillingActivityResponse.FromString,
|
|
4305
4305
|
options,
|
|
4306
4306
|
channel_credentials,
|
|
4307
4307
|
insecure,
|
|
@@ -34,8 +34,8 @@ from .models import (
|
|
|
34
34
|
DiskAttachment,
|
|
35
35
|
EnvVar,
|
|
36
36
|
ExposedPort,
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
BillingActivityEntry,
|
|
38
|
+
BillingActivityPage,
|
|
39
39
|
Machine,
|
|
40
40
|
MachineAccess,
|
|
41
41
|
MachineIdle,
|
|
@@ -591,12 +591,12 @@ def org_usage(msg) -> OrgUsage:
|
|
|
591
591
|
)
|
|
592
592
|
|
|
593
593
|
|
|
594
|
-
def
|
|
595
|
-
return
|
|
594
|
+
def billing_activity_page(msg) -> BillingActivityPage:
|
|
595
|
+
return BillingActivityPage(
|
|
596
596
|
currency=msg.currency,
|
|
597
597
|
balance_micro=msg.balance_micro,
|
|
598
598
|
entries=[
|
|
599
|
-
|
|
599
|
+
BillingActivityEntry(
|
|
600
600
|
id=e.entry_id,
|
|
601
601
|
kind=e.kind,
|
|
602
602
|
amount_micro=e.amount_micro,
|
|
@@ -626,7 +626,7 @@ class MachineUsage(BaseModel):
|
|
|
626
626
|
"""GiB-hours of used disk, in every state."""
|
|
627
627
|
cost_micro: int
|
|
628
628
|
"""Estimated cost at current rates, micro-units of the currency
|
|
629
|
-
(``cost_micro / 1e6`` is the amount).
|
|
629
|
+
(``cost_micro / 1e6`` is the amount). Billing activity is what was charged."""
|
|
630
630
|
complete: bool
|
|
631
631
|
"""All of this machine's usage in the window has been metered, so the
|
|
632
632
|
figures won't grow. Metering lags by up to ~25 minutes: a machine read
|
|
@@ -660,8 +660,8 @@ class OrgUsage(BaseModel):
|
|
|
660
660
|
"""Most expensive first, including machines deleted since."""
|
|
661
661
|
|
|
662
662
|
|
|
663
|
-
class
|
|
664
|
-
"""One entry of the org's
|
|
663
|
+
class BillingActivityEntry(BaseModel):
|
|
664
|
+
"""One entry of the org's billing activity: what was actually charged or added."""
|
|
665
665
|
|
|
666
666
|
id: str
|
|
667
667
|
kind: str
|
|
@@ -672,13 +672,13 @@ class LedgerEntry(BaseModel):
|
|
|
672
672
|
created_at: datetime
|
|
673
673
|
|
|
674
674
|
|
|
675
|
-
class
|
|
676
|
-
"""`orgs.
|
|
675
|
+
class BillingActivityPage(BaseModel):
|
|
676
|
+
"""`orgs.billing_activity_page()`: one page of billing activity, newest first."""
|
|
677
677
|
|
|
678
678
|
currency: str
|
|
679
679
|
balance_micro: int
|
|
680
680
|
"""The org's balance now, micro-units of ``currency``."""
|
|
681
|
-
entries: list[
|
|
681
|
+
entries: list[BillingActivityEntry]
|
|
682
682
|
next_page_token: str | None
|
|
683
683
|
"""Pass as ``page_token`` for the next (older) page. None = this was the last."""
|
|
684
684
|
|
|
@@ -10,8 +10,8 @@ from .. import _requests as req
|
|
|
10
10
|
from .._generated import api_pb2
|
|
11
11
|
from ..models import (
|
|
12
12
|
CreatedOrg,
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
BillingActivityEntry,
|
|
14
|
+
BillingActivityPage,
|
|
15
15
|
Org,
|
|
16
16
|
OrgDomain,
|
|
17
17
|
OrgInvite,
|
|
@@ -191,7 +191,7 @@ class Orgs(Namespace):
|
|
|
191
191
|
Most expensive first, including machines deleted since. `since`
|
|
192
192
|
defaults to 28 days before `until`, `until` to now; each is a datetime
|
|
193
193
|
or unix seconds, and the window spans at most 366 days. Costs are
|
|
194
|
-
estimates at the org's current rates; `
|
|
194
|
+
estimates at the org's current rates; `billing_activity()` is what was actually
|
|
195
195
|
charged.
|
|
196
196
|
|
|
197
197
|
Org owners and admins only. Works with an API key issued for the org.
|
|
@@ -207,7 +207,7 @@ class Orgs(Namespace):
|
|
|
207
207
|
)
|
|
208
208
|
)
|
|
209
209
|
|
|
210
|
-
def
|
|
210
|
+
def billing_activity_page(
|
|
211
211
|
self,
|
|
212
212
|
*,
|
|
213
213
|
org: str = "",
|
|
@@ -215,21 +215,21 @@ class Orgs(Namespace):
|
|
|
215
215
|
until: datetime | int | None = None,
|
|
216
216
|
page_token: str = "",
|
|
217
217
|
page_size: int = 0,
|
|
218
|
-
) ->
|
|
219
|
-
"""One page of the org's
|
|
218
|
+
) -> BillingActivityPage:
|
|
219
|
+
"""One page of the org's billing activity, newest first.
|
|
220
220
|
|
|
221
221
|
Top-ups, grants and usage charges (one org-wide charge per 15
|
|
222
222
|
minutes): what was actually charged. Omit `since` and `until` for the
|
|
223
223
|
whole history. Pass the returned `next_page_token` as `page_token`
|
|
224
|
-
for the next page, or iterate every entry with `
|
|
224
|
+
for the next page, or iterate every entry with `billing_activity()`.
|
|
225
225
|
`page_size` defaults to 500, at most 1000.
|
|
226
226
|
|
|
227
227
|
Org owners and admins only. Works with an API key issued for the org.
|
|
228
228
|
"""
|
|
229
|
-
return m.
|
|
229
|
+
return m.billing_activity_page(
|
|
230
230
|
self._transport.call(
|
|
231
|
-
"
|
|
232
|
-
api_pb2.
|
|
231
|
+
"ListBillingActivity",
|
|
232
|
+
api_pb2.ListBillingActivityRequest(
|
|
233
233
|
org=org,
|
|
234
234
|
since=req.unix_seconds(since),
|
|
235
235
|
until=req.unix_seconds(until),
|
|
@@ -239,23 +239,23 @@ class Orgs(Namespace):
|
|
|
239
239
|
)
|
|
240
240
|
)
|
|
241
241
|
|
|
242
|
-
def
|
|
242
|
+
def billing_activity(
|
|
243
243
|
self,
|
|
244
244
|
*,
|
|
245
245
|
org: str = "",
|
|
246
246
|
since: datetime | int | None = None,
|
|
247
247
|
until: datetime | int | None = None,
|
|
248
248
|
page_size: int = 0,
|
|
249
|
-
) -> Iterator[
|
|
250
|
-
"""Every
|
|
249
|
+
) -> Iterator[BillingActivityEntry]:
|
|
250
|
+
"""Every billing activity entry in the window, newest first, fetching pages as
|
|
251
251
|
you go::
|
|
252
252
|
|
|
253
|
-
for e in boxd.orgs.
|
|
253
|
+
for e in boxd.orgs.billing_activity(since=datetime(2026, 9, 1)):
|
|
254
254
|
print(e.created_at, e.kind, e.amount_micro / 1e6)
|
|
255
255
|
"""
|
|
256
256
|
token = ""
|
|
257
257
|
while True:
|
|
258
|
-
page = self.
|
|
258
|
+
page = self.billing_activity_page(
|
|
259
259
|
org=org, since=since, until=until, page_token=token, page_size=page_size
|
|
260
260
|
)
|
|
261
261
|
yield from page.entries
|
|
@@ -437,7 +437,7 @@ class AsyncOrgs(Namespace):
|
|
|
437
437
|
Most expensive first, including machines deleted since. `since`
|
|
438
438
|
defaults to 28 days before `until`, `until` to now; each is a datetime
|
|
439
439
|
or unix seconds, and the window spans at most 366 days. Costs are
|
|
440
|
-
estimates at the org's current rates; `
|
|
440
|
+
estimates at the org's current rates; `billing_activity()` is what was actually
|
|
441
441
|
charged.
|
|
442
442
|
|
|
443
443
|
Org owners and admins only. Works with an API key issued for the org.
|
|
@@ -453,7 +453,7 @@ class AsyncOrgs(Namespace):
|
|
|
453
453
|
)
|
|
454
454
|
)
|
|
455
455
|
|
|
456
|
-
async def
|
|
456
|
+
async def billing_activity_page(
|
|
457
457
|
self,
|
|
458
458
|
*,
|
|
459
459
|
org: str = "",
|
|
@@ -461,21 +461,21 @@ class AsyncOrgs(Namespace):
|
|
|
461
461
|
until: datetime | int | None = None,
|
|
462
462
|
page_token: str = "",
|
|
463
463
|
page_size: int = 0,
|
|
464
|
-
) ->
|
|
465
|
-
"""One page of the org's
|
|
464
|
+
) -> BillingActivityPage:
|
|
465
|
+
"""One page of the org's billing activity, newest first.
|
|
466
466
|
|
|
467
467
|
Top-ups, grants and usage charges (one org-wide charge per 15
|
|
468
468
|
minutes): what was actually charged. Omit `since` and `until` for the
|
|
469
469
|
whole history. Pass the returned `next_page_token` as `page_token`
|
|
470
|
-
for the next page, or iterate every entry with `
|
|
470
|
+
for the next page, or iterate every entry with `billing_activity()`.
|
|
471
471
|
`page_size` defaults to 500, at most 1000.
|
|
472
472
|
|
|
473
473
|
Org owners and admins only. Works with an API key issued for the org.
|
|
474
474
|
"""
|
|
475
|
-
return m.
|
|
475
|
+
return m.billing_activity_page(
|
|
476
476
|
await self._transport.call(
|
|
477
|
-
"
|
|
478
|
-
api_pb2.
|
|
477
|
+
"ListBillingActivity",
|
|
478
|
+
api_pb2.ListBillingActivityRequest(
|
|
479
479
|
org=org,
|
|
480
480
|
since=req.unix_seconds(since),
|
|
481
481
|
until=req.unix_seconds(until),
|
|
@@ -485,19 +485,19 @@ class AsyncOrgs(Namespace):
|
|
|
485
485
|
)
|
|
486
486
|
)
|
|
487
487
|
|
|
488
|
-
async def
|
|
488
|
+
async def billing_activity(
|
|
489
489
|
self,
|
|
490
490
|
*,
|
|
491
491
|
org: str = "",
|
|
492
492
|
since: datetime | int | None = None,
|
|
493
493
|
until: datetime | int | None = None,
|
|
494
494
|
page_size: int = 0,
|
|
495
|
-
) -> AsyncIterator[
|
|
496
|
-
"""Every
|
|
497
|
-
you go (``async for e in boxd.orgs.
|
|
495
|
+
) -> AsyncIterator[BillingActivityEntry]:
|
|
496
|
+
"""Every billing activity entry in the window, newest first, fetching pages as
|
|
497
|
+
you go (``async for e in boxd.orgs.billing_activity(): ...``)."""
|
|
498
498
|
token = ""
|
|
499
499
|
while True:
|
|
500
|
-
page = await self.
|
|
500
|
+
page = await self.billing_activity_page(
|
|
501
501
|
org=org, since=since, until=until, page_token=token, page_size=page_size
|
|
502
502
|
)
|
|
503
503
|
for e in page.entries:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: boxd
|
|
3
|
-
Version: 0.2.13.
|
|
3
|
+
Version: 0.2.13.dev755
|
|
4
4
|
Summary: Python SDK for the boxd cloud VM platform
|
|
5
5
|
Author: Azin
|
|
6
6
|
License-Expression: MIT
|
|
@@ -781,8 +781,8 @@ r.total_cost_micro, r.currency
|
|
|
781
781
|
for m in r.machines:
|
|
782
782
|
print(m.name, m.status, m.cost_micro / 1e6)
|
|
783
783
|
|
|
784
|
-
#
|
|
785
|
-
for e in boxd.orgs.
|
|
784
|
+
# Billing activity: what was actually charged, newest first.
|
|
785
|
+
for e in boxd.orgs.billing_activity(since=datetime(2026, 9, 1, tzinfo=timezone.utc)):
|
|
786
786
|
print(e.created_at, e.kind, e.amount_micro / 1e6) # charges are negative
|
|
787
787
|
```
|
|
788
788
|
|
|
@@ -804,12 +804,12 @@ that runs to now.
|
|
|
804
804
|
|
|
805
805
|
Money is in micro-units (1e-6) of the org's currency. Usage is metered in
|
|
806
806
|
15-minute buckets and priced at the org's current rates, so it is an estimate
|
|
807
|
-
that tracks
|
|
807
|
+
that tracks billing activity closely; billing activity is what was charged (one
|
|
808
808
|
`usage_charge` per 15 minutes for the whole org, plus top-ups and grants).
|
|
809
809
|
Machines deleted since still show up, with status `"deleted"`. A window spans
|
|
810
|
-
at most 366 days. `orgs.
|
|
810
|
+
at most 366 days. `orgs.billing_activity_page()` returns one page with its
|
|
811
811
|
`next_page_token` when you want to page by hand. The async client has the
|
|
812
|
-
same methods (`async for e in boxd.orgs.
|
|
812
|
+
same methods (`async for e in boxd.orgs.billing_activity(): ...`).
|
|
813
813
|
|
|
814
814
|
## Errors
|
|
815
815
|
|
|
@@ -1147,12 +1147,12 @@ def test_orgs_usage_maps_every_machine():
|
|
|
1147
1147
|
assert [m.name for m in r.machines] == ["alpha"]
|
|
1148
1148
|
|
|
1149
1149
|
|
|
1150
|
-
def
|
|
1151
|
-
return api_pb2.
|
|
1150
|
+
def _billing_activity_page(ids, token=""):
|
|
1151
|
+
return api_pb2.ListBillingActivityResponse(
|
|
1152
1152
|
currency="eur",
|
|
1153
1153
|
balance_micro=10,
|
|
1154
1154
|
entries=[
|
|
1155
|
-
api_pb2.
|
|
1155
|
+
api_pb2.BillingActivityEntry(
|
|
1156
1156
|
entry_id=i, kind="usage_charge", amount_micro=-5, created_at=1_000
|
|
1157
1157
|
)
|
|
1158
1158
|
for i in ids
|
|
@@ -1161,18 +1161,18 @@ def _ledger_page(ids, token=""):
|
|
|
1161
1161
|
)
|
|
1162
1162
|
|
|
1163
1163
|
|
|
1164
|
-
def
|
|
1164
|
+
def test_orgs_billing_activity_walks_every_page():
|
|
1165
1165
|
from boxd.resources.orgs import Orgs
|
|
1166
1166
|
|
|
1167
|
-
transport = FakeTransport([
|
|
1168
|
-
ids = [e.id for e in Orgs(transport).
|
|
1167
|
+
transport = FakeTransport([_billing_activity_page(["a", "b"], "tok"), _billing_activity_page(["c"])])
|
|
1168
|
+
ids = [e.id for e in Orgs(transport).billing_activity(page_size=2)]
|
|
1169
1169
|
assert ids == ["a", "b", "c"]
|
|
1170
1170
|
assert [r.page_token for _, r in transport.calls] == ["", "tok"]
|
|
1171
1171
|
assert transport.calls[0][1].page_size == 2
|
|
1172
1172
|
|
|
1173
1173
|
|
|
1174
|
-
async def
|
|
1174
|
+
async def test_async_orgs_billing_activity_walks_every_page():
|
|
1175
1175
|
from boxd.resources.orgs import AsyncOrgs
|
|
1176
1176
|
|
|
1177
|
-
transport = FakeAsyncTransport([
|
|
1178
|
-
assert [e.id async for e in AsyncOrgs(transport).
|
|
1177
|
+
transport = FakeAsyncTransport([_billing_activity_page(["a"], "tok"), _billing_activity_page(["b"])])
|
|
1178
|
+
assert [e.id async for e in AsyncOrgs(transport).billing_activity()] == ["a", "b"]
|
|
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
|