boxd 0.2.15.dev798__tar.gz → 0.2.16.dev829__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. {boxd-0.2.15.dev798/src/boxd.egg-info → boxd-0.2.16.dev829}/PKG-INFO +15 -1
  2. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/README.md +14 -0
  3. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/pyproject.toml +1 -1
  4. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/__init__.py +8 -0
  5. boxd-0.2.16.dev829/src/boxd/_generated/api_pb2.py +572 -0
  6. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_generated/api_pb2_grpc.py +183 -0
  7. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_mappers.py +33 -1
  8. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_requests.py +24 -0
  9. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/models.py +51 -3
  10. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/machines.py +91 -8
  11. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/orgs.py +197 -0
  12. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829/src/boxd.egg-info}/PKG-INFO +15 -1
  13. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/tests/test_mappers.py +37 -0
  14. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/tests/test_namespaces.py +228 -0
  15. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/tests/test_requests.py +54 -0
  16. boxd-0.2.15.dev798/src/boxd/_generated/api_pb2.py +0 -556
  17. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/LICENSE +0 -0
  18. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/setup.cfg +0 -0
  19. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_client.py +0 -0
  20. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_credentials.py +0 -0
  21. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_generated/__init__.py +0 -0
  22. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_streaming.py +0 -0
  23. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_transport.py +0 -0
  24. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_urls.py +0 -0
  25. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/_version_check.py +0 -0
  26. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/errors.py +0 -0
  27. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/__init__.py +0 -0
  28. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/account.py +0 -0
  29. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/credentials.py +0 -0
  30. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/disks.py +0 -0
  31. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/domains.py +0 -0
  32. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/snapshots.py +0 -0
  33. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/teams.py +0 -0
  34. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd/resources/vars.py +0 -0
  35. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd.egg-info/SOURCES.txt +0 -0
  36. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd.egg-info/dependency_links.txt +0 -0
  37. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd.egg-info/requires.txt +0 -0
  38. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/src/boxd.egg-info/top_level.txt +0 -0
  39. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/tests/test_credentials.py +0 -0
  40. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/tests/test_delete_self.py +0 -0
  41. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/tests/test_streaming.py +0 -0
  42. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/tests/test_transport.py +0 -0
  43. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/tests/test_urls.py +0 -0
  44. {boxd-0.2.15.dev798 → boxd-0.2.16.dev829}/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.15.dev798
3
+ Version: 0.2.16.dev829
4
4
  Summary: Python SDK for the boxd cloud VM platform
5
5
  Author: Azin
6
6
  License-Expression: MIT
@@ -235,6 +235,7 @@ boxd.machines.share(id) # visible to your whole org
235
235
  boxd.machines.unshare(id)
236
236
  boxd.machines.set_auto_suspend_timeout(id, 300) # seconds idle; 0 disables
237
237
  boxd.machines.set_auto_hibernate_timeout(id, 0)
238
+ boxd.machines.set_idle_ignore_outbound(id, True) # only inbound connections keep it awake
238
239
  boxd.machines.wait_until_ready(id)
239
240
  boxd.machines.wait_until_ready(id, timeout=180.0, poll_interval=1.0) # seconds
240
241
  boxd.machines.suggest_name()
@@ -709,6 +710,19 @@ boxd.orgs.clear_machine_defaults("acme") # back to the quota
709
710
  Only machines created afterwards are affected — every existing machine keeps
710
711
  the size it was created with. Omit the org to target your home org.
711
712
 
713
+ An org can also set whether new machines start with `idle_ignore_outbound` on
714
+ (only inbound connections keep a machine awake). Setting or clearing it
715
+ requires org admin; reading it doesn't.
716
+
717
+ ```python
718
+ boxd.orgs.set_idle_ignore_outbound_default("acme", enabled=True)
719
+ r = boxd.orgs.set_idle_ignore_outbound_default("acme", enabled=True, apply_existing=True)
720
+ r.machines_changed, r.machines_skipped # existing machines set; others' private ones left alone
721
+ i = boxd.orgs.get_idle_ignore_outbound_default("acme")
722
+ i.is_set, i.enabled # is_set False = no default, so enabled is False
723
+ boxd.orgs.clear_idle_ignore_outbound_default("acme")
724
+ ```
725
+
712
726
  ```python
713
727
  key = boxd.api_keys.create(
714
728
  "ci",
@@ -203,6 +203,7 @@ boxd.machines.share(id) # visible to your whole org
203
203
  boxd.machines.unshare(id)
204
204
  boxd.machines.set_auto_suspend_timeout(id, 300) # seconds idle; 0 disables
205
205
  boxd.machines.set_auto_hibernate_timeout(id, 0)
206
+ boxd.machines.set_idle_ignore_outbound(id, True) # only inbound connections keep it awake
206
207
  boxd.machines.wait_until_ready(id)
207
208
  boxd.machines.wait_until_ready(id, timeout=180.0, poll_interval=1.0) # seconds
208
209
  boxd.machines.suggest_name()
@@ -677,6 +678,19 @@ boxd.orgs.clear_machine_defaults("acme") # back to the quota
677
678
  Only machines created afterwards are affected — every existing machine keeps
678
679
  the size it was created with. Omit the org to target your home org.
679
680
 
681
+ An org can also set whether new machines start with `idle_ignore_outbound` on
682
+ (only inbound connections keep a machine awake). Setting or clearing it
683
+ requires org admin; reading it doesn't.
684
+
685
+ ```python
686
+ boxd.orgs.set_idle_ignore_outbound_default("acme", enabled=True)
687
+ r = boxd.orgs.set_idle_ignore_outbound_default("acme", enabled=True, apply_existing=True)
688
+ r.machines_changed, r.machines_skipped # existing machines set; others' private ones left alone
689
+ i = boxd.orgs.get_idle_ignore_outbound_default("acme")
690
+ i.is_set, i.enabled # is_set False = no default, so enabled is False
691
+ boxd.orgs.clear_idle_ignore_outbound_default("acme")
692
+ ```
693
+
680
694
  ```python
681
695
  key = boxd.api_keys.create(
682
696
  "ci",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "boxd"
3
- version = "0.2.15.dev798"
3
+ version = "0.2.16.dev829"
4
4
  description = "Python SDK for the boxd cloud VM platform"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -57,6 +57,7 @@ from .models import (
57
57
  BillingActivityEntry,
58
58
  BillingActivityPage,
59
59
  Machine,
60
+ BotProtectionMode,
60
61
  MachineAccess,
61
62
  MachineIdle,
62
63
  MachineNetworking,
@@ -67,7 +68,10 @@ from .models import (
67
68
  MachineUsage,
68
69
  MachineUsageReport,
69
70
  Org,
71
+ OrgBotProtectionDefault,
70
72
  OrgDomain,
73
+ OrgIdleIgnoreOutboundDefault,
74
+ OrgIdleIgnoreOutboundDefaultResult,
71
75
  OrgInvite,
72
76
  OrgMachineDefaults,
73
77
  OrgMember,
@@ -142,10 +146,14 @@ __all__ = [
142
146
  "MachineSource",
143
147
  "MachineSourceKind",
144
148
  "MachineStatus",
149
+ "BotProtectionMode",
145
150
  "MachineUsage",
146
151
  "MachineUsageReport",
147
152
  "Org",
153
+ "OrgBotProtectionDefault",
148
154
  "OrgDomain",
155
+ "OrgIdleIgnoreOutboundDefault",
156
+ "OrgIdleIgnoreOutboundDefaultResult",
149
157
  "OrgInvite",
150
158
  "OrgMachineDefaults",
151
159
  "OrgMember",