devhelm 1.7.0__tar.gz → 1.9.0__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 (65) hide show
  1. {devhelm-1.7.0 → devhelm-1.9.0}/PKG-INFO +14 -1
  2. {devhelm-1.7.0 → devhelm-1.9.0}/README.md +13 -0
  3. {devhelm-1.7.0 → devhelm-1.9.0}/docs/openapi/monitoring-api.json +6803 -2375
  4. {devhelm-1.7.0 → devhelm-1.9.0}/pyproject.toml +1 -1
  5. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/__init__.py +24 -0
  6. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_enums.py +20 -0
  7. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_generated.py +673 -0
  8. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_http.py +16 -4
  9. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_pagination.py +6 -3
  10. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_validation.py +17 -0
  11. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/client.py +6 -0
  12. devhelm-1.9.0/src/devhelm/resources/email.py +406 -0
  13. devhelm-1.9.0/src/devhelm/resources/inboxes.py +294 -0
  14. devhelm-1.9.0/src/devhelm/resources/signed_download.py +50 -0
  15. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/types.py +20 -0
  16. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_client.py +12 -0
  17. devhelm-1.9.0/tests/test_inbound.py +93 -0
  18. devhelm-1.9.0/tests/test_pagination.py +34 -0
  19. {devhelm-1.7.0 → devhelm-1.9.0}/uv.lock +1 -1
  20. {devhelm-1.7.0 → devhelm-1.9.0}/.github/workflows/ci.yml +0 -0
  21. {devhelm-1.7.0 → devhelm-1.9.0}/.github/workflows/release.yml +0 -0
  22. {devhelm-1.7.0 → devhelm-1.9.0}/.github/workflows/spec-check.yml +0 -0
  23. {devhelm-1.7.0 → devhelm-1.9.0}/.gitignore +0 -0
  24. {devhelm-1.7.0 → devhelm-1.9.0}/LICENSE +0 -0
  25. {devhelm-1.7.0 → devhelm-1.9.0}/Makefile +0 -0
  26. {devhelm-1.7.0 → devhelm-1.9.0}/scripts/emit_response_enums.py +0 -0
  27. {devhelm-1.7.0 → devhelm-1.9.0}/scripts/inject_strict_config.py +0 -0
  28. {devhelm-1.7.0 → devhelm-1.9.0}/scripts/regen-from.sh +0 -0
  29. {devhelm-1.7.0 → devhelm-1.9.0}/scripts/release.sh +0 -0
  30. {devhelm-1.7.0 → devhelm-1.9.0}/scripts/typegen.sh +0 -0
  31. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_errors.py +0 -0
  32. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/py.typed +0 -0
  33. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/__init__.py +0 -0
  34. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/alert_channels.py +0 -0
  35. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/api_keys.py +0 -0
  36. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/dependencies.py +0 -0
  37. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/deploy_lock.py +0 -0
  38. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/environments.py +0 -0
  39. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/forensics.py +0 -0
  40. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/incidents.py +0 -0
  41. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/maintenance_windows.py +0 -0
  42. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/monitors.py +0 -0
  43. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/notification_policies.py +0 -0
  44. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/resource_groups.py +0 -0
  45. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/secrets.py +0 -0
  46. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/services.py +0 -0
  47. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/status.py +0 -0
  48. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/status_pages.py +0 -0
  49. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/tags.py +0 -0
  50. {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/webhooks.py +0 -0
  51. {devhelm-1.7.0 → devhelm-1.9.0}/tests/__init__.py +0 -0
  52. {devhelm-1.7.0 → devhelm-1.9.0}/tests/run_sdk.py +0 -0
  53. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_api_keys.py +0 -0
  54. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_dependencies.py +0 -0
  55. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_errors.py +0 -0
  56. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_http.py +0 -0
  57. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_inject_strict_config.py +0 -0
  58. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_maintenance_windows.py +0 -0
  59. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_negative_validation.py +0 -0
  60. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_schemas.py +0 -0
  61. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_services.py +0 -0
  62. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_spec_parity.py +0 -0
  63. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_status_page_maintenance.py +0 -0
  64. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_typing.py +0 -0
  65. {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_validation_helpers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devhelm
3
- Version: 1.7.0
3
+ Version: 1.9.0
4
4
  Summary: DevHelm SDK for Python — typed client for monitors, incidents, alerting, and more
5
5
  Project-URL: Homepage, https://github.com/devhelmhq/sdk-python
6
6
  Project-URL: Repository, https://github.com/devhelmhq/sdk-python.git
@@ -61,6 +61,17 @@ monitor = client.monitors.create({
61
61
  # Get a single monitor
62
62
  monitor = client.monitors.get(monitor.id)
63
63
 
64
+ # Inbound testing. `webhooks` stays outbound alert delivery.
65
+ inbox = client.inboxes.create(name="stripe")
66
+ event = inbox.wait(timeout_ms=30_000, http={"method": "POST"})
67
+ payment = event.json()
68
+ raw = event.raw()
69
+
70
+ to = client.email.address(label="signup")
71
+ message = to.wait(timeout_ms=60_000, subject_contains="code")
72
+ code = message.otp[0].value if message.otp else None
73
+ pdf = message.attachments[0].bytes() if message.attachments else None
74
+
64
75
  # Pause / resume
65
76
  client.monitors.pause(monitor.id)
66
77
  client.monitors.resume(monitor.id)
@@ -105,6 +116,8 @@ The client exposes the following resource modules:
105
116
  | `client.tags` | Organize monitors with tags |
106
117
  | `client.resource_groups`| Logical resource groups |
107
118
  | `client.webhooks` | Outgoing webhook endpoints |
119
+ | `client.inboxes` | Inbound HTTP capture URLs |
120
+ | `client.email` | Inbound mailboxes and custom domains |
108
121
  | `client.api_keys` | API key management |
109
122
  | `client.dependencies` | Service dependency tracking |
110
123
  | `client.deploy_lock` | Deploy lock for safe deployments |
@@ -37,6 +37,17 @@ monitor = client.monitors.create({
37
37
  # Get a single monitor
38
38
  monitor = client.monitors.get(monitor.id)
39
39
 
40
+ # Inbound testing. `webhooks` stays outbound alert delivery.
41
+ inbox = client.inboxes.create(name="stripe")
42
+ event = inbox.wait(timeout_ms=30_000, http={"method": "POST"})
43
+ payment = event.json()
44
+ raw = event.raw()
45
+
46
+ to = client.email.address(label="signup")
47
+ message = to.wait(timeout_ms=60_000, subject_contains="code")
48
+ code = message.otp[0].value if message.otp else None
49
+ pdf = message.attachments[0].bytes() if message.attachments else None
50
+
40
51
  # Pause / resume
41
52
  client.monitors.pause(monitor.id)
42
53
  client.monitors.resume(monitor.id)
@@ -81,6 +92,8 @@ The client exposes the following resource modules:
81
92
  | `client.tags` | Organize monitors with tags |
82
93
  | `client.resource_groups`| Logical resource groups |
83
94
  | `client.webhooks` | Outgoing webhook endpoints |
95
+ | `client.inboxes` | Inbound HTTP capture URLs |
96
+ | `client.email` | Inbound mailboxes and custom domains |
84
97
  | `client.api_keys` | API key management |
85
98
  | `client.dependencies` | Service dependency tracking |
86
99
  | `client.deploy_lock` | Deploy lock for safe deployments |