boxd 0.2.15.dev799__tar.gz → 0.2.16__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}/PKG-INFO +19 -1
  2. {boxd-0.2.15.dev799 → boxd-0.2.16}/README.md +18 -0
  3. {boxd-0.2.15.dev799 → boxd-0.2.16}/pyproject.toml +1 -1
  4. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/__init__.py +10 -0
  5. boxd-0.2.16/src/boxd/_generated/api_pb2.py +572 -0
  6. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_generated/api_pb2_grpc.py +186 -0
  7. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_mappers.py +55 -2
  8. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_requests.py +43 -0
  9. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/models.py +84 -3
  10. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/credentials.py +12 -4
  11. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/machines.py +123 -10
  12. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/orgs.py +216 -0
  13. {boxd-0.2.15.dev799 → boxd-0.2.16/src/boxd.egg-info}/PKG-INFO +19 -1
  14. {boxd-0.2.15.dev799 → boxd-0.2.16}/tests/test_mappers.py +37 -0
  15. {boxd-0.2.15.dev799 → boxd-0.2.16}/tests/test_namespaces.py +368 -0
  16. {boxd-0.2.15.dev799 → boxd-0.2.16}/tests/test_requests.py +54 -0
  17. boxd-0.2.15.dev799/src/boxd/_generated/api_pb2.py +0 -556
  18. {boxd-0.2.15.dev799 → boxd-0.2.16}/LICENSE +0 -0
  19. {boxd-0.2.15.dev799 → boxd-0.2.16}/setup.cfg +0 -0
  20. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_client.py +0 -0
  21. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_credentials.py +0 -0
  22. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_generated/__init__.py +0 -0
  23. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_streaming.py +0 -0
  24. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_transport.py +0 -0
  25. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_urls.py +0 -0
  26. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/_version_check.py +0 -0
  27. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/errors.py +0 -0
  28. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/__init__.py +0 -0
  29. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/account.py +0 -0
  30. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/disks.py +0 -0
  31. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/domains.py +0 -0
  32. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/snapshots.py +0 -0
  33. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/teams.py +0 -0
  34. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd/resources/vars.py +0 -0
  35. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd.egg-info/SOURCES.txt +0 -0
  36. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd.egg-info/dependency_links.txt +0 -0
  37. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd.egg-info/requires.txt +0 -0
  38. {boxd-0.2.15.dev799 → boxd-0.2.16}/src/boxd.egg-info/top_level.txt +0 -0
  39. {boxd-0.2.15.dev799 → boxd-0.2.16}/tests/test_credentials.py +0 -0
  40. {boxd-0.2.15.dev799 → boxd-0.2.16}/tests/test_delete_self.py +0 -0
  41. {boxd-0.2.15.dev799 → boxd-0.2.16}/tests/test_streaming.py +0 -0
  42. {boxd-0.2.15.dev799 → boxd-0.2.16}/tests/test_transport.py +0 -0
  43. {boxd-0.2.15.dev799 → boxd-0.2.16}/tests/test_urls.py +0 -0
  44. {boxd-0.2.15.dev799 → boxd-0.2.16}/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
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,23 @@ 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 its machines run with `idle_ignore_outbound` on
714
+ (only inbound connections keep a machine awake). Setting it also sets it on
715
+ the existing machines and snapshots you can manage, unless you pass
716
+ `new_machines_only=True`. Setting or clearing it requires org admin; reading
717
+ it doesn't.
718
+
719
+ ```python
720
+ r = boxd.orgs.set_idle_ignore_outbound_default("acme", enabled=True)
721
+ r.machines_changed, r.snapshots_changed # existing machines and snapshots set
722
+ r.machines_skipped # others' private machines, left alone
723
+ boxd.orgs.set_idle_ignore_outbound_default("acme", enabled=True, new_machines_only=True)
724
+ i = boxd.orgs.get_idle_ignore_outbound_default("acme")
725
+ i.is_set, i.enabled # is_set False = no default, so enabled is
726
+ i.platform_enabled # the platform's setting, this one
727
+ boxd.orgs.clear_idle_ignore_outbound_default("acme") # existing machines keep theirs
728
+ ```
729
+
712
730
  ```python
713
731
  key = boxd.api_keys.create(
714
732
  "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,23 @@ 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 its machines run with `idle_ignore_outbound` on
682
+ (only inbound connections keep a machine awake). Setting it also sets it on
683
+ the existing machines and snapshots you can manage, unless you pass
684
+ `new_machines_only=True`. Setting or clearing it requires org admin; reading
685
+ it doesn't.
686
+
687
+ ```python
688
+ r = boxd.orgs.set_idle_ignore_outbound_default("acme", enabled=True)
689
+ r.machines_changed, r.snapshots_changed # existing machines and snapshots set
690
+ r.machines_skipped # others' private machines, left alone
691
+ boxd.orgs.set_idle_ignore_outbound_default("acme", enabled=True, new_machines_only=True)
692
+ i = boxd.orgs.get_idle_ignore_outbound_default("acme")
693
+ i.is_set, i.enabled # is_set False = no default, so enabled is
694
+ i.platform_enabled # the platform's setting, this one
695
+ boxd.orgs.clear_idle_ignore_outbound_default("acme") # existing machines keep theirs
696
+ ```
697
+
680
698
  ```python
681
699
  key = boxd.api_keys.create(
682
700
  "ci",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "boxd"
3
- version = "0.2.15.dev799"
3
+ version = "0.2.16"
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",