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.
- {devhelm-1.7.0 → devhelm-1.9.0}/PKG-INFO +14 -1
- {devhelm-1.7.0 → devhelm-1.9.0}/README.md +13 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/docs/openapi/monitoring-api.json +6803 -2375
- {devhelm-1.7.0 → devhelm-1.9.0}/pyproject.toml +1 -1
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/__init__.py +24 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_enums.py +20 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_generated.py +673 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_http.py +16 -4
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_pagination.py +6 -3
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_validation.py +17 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/client.py +6 -0
- devhelm-1.9.0/src/devhelm/resources/email.py +406 -0
- devhelm-1.9.0/src/devhelm/resources/inboxes.py +294 -0
- devhelm-1.9.0/src/devhelm/resources/signed_download.py +50 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/types.py +20 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_client.py +12 -0
- devhelm-1.9.0/tests/test_inbound.py +93 -0
- devhelm-1.9.0/tests/test_pagination.py +34 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/uv.lock +1 -1
- {devhelm-1.7.0 → devhelm-1.9.0}/.github/workflows/ci.yml +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/.github/workflows/release.yml +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/.github/workflows/spec-check.yml +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/.gitignore +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/LICENSE +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/Makefile +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/scripts/emit_response_enums.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/scripts/inject_strict_config.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/scripts/regen-from.sh +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/scripts/release.sh +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/scripts/typegen.sh +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/_errors.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/py.typed +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/__init__.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/alert_channels.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/api_keys.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/dependencies.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/deploy_lock.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/environments.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/forensics.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/incidents.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/maintenance_windows.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/monitors.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/notification_policies.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/resource_groups.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/secrets.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/services.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/status.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/status_pages.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/tags.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/src/devhelm/resources/webhooks.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/__init__.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/run_sdk.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_api_keys.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_dependencies.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_errors.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_http.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_inject_strict_config.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_maintenance_windows.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_negative_validation.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_schemas.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_services.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_spec_parity.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_status_page_maintenance.py +0 -0
- {devhelm-1.7.0 → devhelm-1.9.0}/tests/test_typing.py +0 -0
- {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.
|
|
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 |
|