boxd 0.2.15.dev799__tar.gz → 0.2.16.dev832__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.dev799/src/boxd.egg-info → boxd-0.2.16.dev832}/PKG-INFO +15 -1
  2. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/README.md +14 -0
  3. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/pyproject.toml +1 -1
  4. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/__init__.py +10 -0
  5. boxd-0.2.16.dev832/src/boxd/_generated/api_pb2.py +572 -0
  6. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_generated/api_pb2_grpc.py +183 -0
  7. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_mappers.py +43 -1
  8. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_requests.py +24 -0
  9. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/models.py +65 -3
  10. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/machines.py +91 -8
  11. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/orgs.py +218 -0
  12. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832/src/boxd.egg-info}/PKG-INFO +15 -1
  13. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/tests/test_mappers.py +37 -0
  14. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/tests/test_namespaces.py +247 -0
  15. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/tests/test_requests.py +54 -0
  16. boxd-0.2.15.dev799/src/boxd/_generated/api_pb2.py +0 -556
  17. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/LICENSE +0 -0
  18. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/setup.cfg +0 -0
  19. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_client.py +0 -0
  20. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_credentials.py +0 -0
  21. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_generated/__init__.py +0 -0
  22. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_streaming.py +0 -0
  23. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_transport.py +0 -0
  24. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_urls.py +0 -0
  25. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/_version_check.py +0 -0
  26. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/errors.py +0 -0
  27. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/__init__.py +0 -0
  28. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/account.py +0 -0
  29. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/credentials.py +0 -0
  30. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/disks.py +0 -0
  31. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/domains.py +0 -0
  32. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/snapshots.py +0 -0
  33. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/teams.py +0 -0
  34. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd/resources/vars.py +0 -0
  35. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd.egg-info/SOURCES.txt +0 -0
  36. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd.egg-info/dependency_links.txt +0 -0
  37. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd.egg-info/requires.txt +0 -0
  38. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/src/boxd.egg-info/top_level.txt +0 -0
  39. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/tests/test_credentials.py +0 -0
  40. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/tests/test_delete_self.py +0 -0
  41. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/tests/test_streaming.py +0 -0
  42. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/tests/test_transport.py +0 -0
  43. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/tests/test_urls.py +0 -0
  44. {boxd-0.2.15.dev799 → boxd-0.2.16.dev832}/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.dev799
3
+ Version: 0.2.16.dev832
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.dev799"
3
+ version = "0.2.16.dev832"
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,11 @@ from .models import (
67
68
  MachineUsage,
68
69
  MachineUsageReport,
69
70
  Org,
71
+ OrgBotProtectionDefault,
72
+ OrgBotProtectionDefaultResult,
70
73
  OrgDomain,
74
+ OrgIdleIgnoreOutboundDefault,
75
+ OrgIdleIgnoreOutboundDefaultResult,
71
76
  OrgInvite,
72
77
  OrgMachineDefaults,
73
78
  OrgMember,
@@ -142,10 +147,15 @@ __all__ = [
142
147
  "MachineSource",
143
148
  "MachineSourceKind",
144
149
  "MachineStatus",
150
+ "BotProtectionMode",
145
151
  "MachineUsage",
146
152
  "MachineUsageReport",
147
153
  "Org",
154
+ "OrgBotProtectionDefault",
155
+ "OrgBotProtectionDefaultResult",
148
156
  "OrgDomain",
157
+ "OrgIdleIgnoreOutboundDefault",
158
+ "OrgIdleIgnoreOutboundDefaultResult",
149
159
  "OrgInvite",
150
160
  "OrgMachineDefaults",
151
161
  "OrgMember",