devhelm 0.7.0__tar.gz → 1.0.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-0.7.0 → devhelm-1.0.0}/PKG-INFO +1 -1
- {devhelm-0.7.0 → devhelm-1.0.0}/docs/openapi/monitoring-api.json +209 -17
- {devhelm-0.7.0 → devhelm-1.0.0}/pyproject.toml +1 -1
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/_generated.py +121 -31
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/types.py +11 -3
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_negative_validation.py +12 -9
- {devhelm-0.7.0 → devhelm-1.0.0}/uv.lock +1 -1
- {devhelm-0.7.0 → devhelm-1.0.0}/.github/workflows/ci.yml +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/.github/workflows/release.yml +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/.github/workflows/spec-check.yml +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/.gitignore +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/LICENSE +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/Makefile +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/README.md +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/scripts/inject_strict_config.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/scripts/regen-from.sh +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/scripts/release.sh +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/scripts/typegen.sh +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/__init__.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/_errors.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/_http.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/_pagination.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/_validation.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/client.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/py.typed +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/__init__.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/alert_channels.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/api_keys.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/dependencies.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/deploy_lock.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/environments.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/forensics.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/incidents.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/maintenance_windows.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/monitors.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/notification_policies.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/resource_groups.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/secrets.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/status.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/status_pages.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/tags.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/src/devhelm/resources/webhooks.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/__init__.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/run_sdk.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_client.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_errors.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_http.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_maintenance_windows.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_schemas.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_spec_parity.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_typing.py +0 -0
- {devhelm-0.7.0 → devhelm-1.0.0}/tests/test_validation_helpers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devhelm
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.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
|
|
@@ -166,8 +166,52 @@
|
|
|
166
166
|
"Alert Channels"
|
|
167
167
|
],
|
|
168
168
|
"summary": "List active alert channels for the authenticated org",
|
|
169
|
+
"description": "Supports filtering by `type` (channel integration), `managedBy` (creating surface), and `search` (case-insensitive contains on name). Unrecognised query parameters are silently ignored — pin to the documented set above.",
|
|
169
170
|
"operationId": "list_14",
|
|
170
171
|
"parameters": [
|
|
172
|
+
{
|
|
173
|
+
"name": "type",
|
|
174
|
+
"in": "query",
|
|
175
|
+
"description": "Filter by channel integration type (e.g. SLACK, WEBHOOK, EMAIL)",
|
|
176
|
+
"required": false,
|
|
177
|
+
"schema": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"enum": [
|
|
180
|
+
"email",
|
|
181
|
+
"webhook",
|
|
182
|
+
"slack",
|
|
183
|
+
"pagerduty",
|
|
184
|
+
"opsgenie",
|
|
185
|
+
"teams",
|
|
186
|
+
"discord"
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "managedBy",
|
|
192
|
+
"in": "query",
|
|
193
|
+
"description": "Filter by managed-by source (DASHBOARD, CLI, TERRAFORM, MCP, API)",
|
|
194
|
+
"required": false,
|
|
195
|
+
"schema": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"enum": [
|
|
198
|
+
"DASHBOARD",
|
|
199
|
+
"CLI",
|
|
200
|
+
"TERRAFORM",
|
|
201
|
+
"MCP",
|
|
202
|
+
"API"
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "search",
|
|
208
|
+
"in": "query",
|
|
209
|
+
"description": "Case-insensitive contains-match on the channel name",
|
|
210
|
+
"required": false,
|
|
211
|
+
"schema": {
|
|
212
|
+
"type": "string"
|
|
213
|
+
}
|
|
214
|
+
},
|
|
171
215
|
{
|
|
172
216
|
"name": "pageable",
|
|
173
217
|
"in": "query",
|
|
@@ -6374,17 +6418,27 @@
|
|
|
6374
6418
|
"Monitors"
|
|
6375
6419
|
],
|
|
6376
6420
|
"summary": "List monitors for the authenticated org",
|
|
6421
|
+
"description": "Supports filtering by `enabled`, `status` (alias active|paused for enabled), `type`, `managedBy`, `tag` / `tags`, `search`, and `environmentId`. Unrecognised query parameters are silently ignored (Spring's default binding behaviour) — pin to the documented set above.",
|
|
6377
6422
|
"operationId": "list_8",
|
|
6378
6423
|
"parameters": [
|
|
6379
6424
|
{
|
|
6380
6425
|
"name": "enabled",
|
|
6381
6426
|
"in": "query",
|
|
6382
|
-
"description": "Filter by enabled state",
|
|
6427
|
+
"description": "Filter by enabled state (true/false)",
|
|
6383
6428
|
"required": false,
|
|
6384
6429
|
"schema": {
|
|
6385
6430
|
"type": "boolean"
|
|
6386
6431
|
}
|
|
6387
6432
|
},
|
|
6433
|
+
{
|
|
6434
|
+
"name": "status",
|
|
6435
|
+
"in": "query",
|
|
6436
|
+
"description": "Lifecycle status alias: 'active' (enabled=true) or 'paused' (enabled=false). Ignored when ?enabled is also supplied.",
|
|
6437
|
+
"required": false,
|
|
6438
|
+
"schema": {
|
|
6439
|
+
"type": "string"
|
|
6440
|
+
}
|
|
6441
|
+
},
|
|
6388
6442
|
{
|
|
6389
6443
|
"name": "type",
|
|
6390
6444
|
"in": "query",
|
|
@@ -6421,7 +6475,16 @@
|
|
|
6421
6475
|
{
|
|
6422
6476
|
"name": "tags",
|
|
6423
6477
|
"in": "query",
|
|
6424
|
-
"description": "Filter by tag names, comma-separated (e.g. prod,critical)",
|
|
6478
|
+
"description": "Filter by tag names, comma-separated (e.g. prod,critical); OR semantics",
|
|
6479
|
+
"required": false,
|
|
6480
|
+
"schema": {
|
|
6481
|
+
"type": "string"
|
|
6482
|
+
}
|
|
6483
|
+
},
|
|
6484
|
+
{
|
|
6485
|
+
"name": "tag",
|
|
6486
|
+
"in": "query",
|
|
6487
|
+
"description": "Filter by a single tag name (alias for ?tags=); merged with ?tags using OR semantics",
|
|
6425
6488
|
"required": false,
|
|
6426
6489
|
"schema": {
|
|
6427
6490
|
"type": "string"
|
|
@@ -21729,6 +21792,18 @@
|
|
|
21729
21792
|
"description": "SHA-256 hash of the channel config; use for change detection",
|
|
21730
21793
|
"nullable": true
|
|
21731
21794
|
},
|
|
21795
|
+
"managedBy": {
|
|
21796
|
+
"type": "string",
|
|
21797
|
+
"description": "Source that created/owns this channel: DASHBOARD, CLI, TERRAFORM, MCP, or API. Null on channels created before this attribution column existed.",
|
|
21798
|
+
"nullable": true,
|
|
21799
|
+
"enum": [
|
|
21800
|
+
"DASHBOARD",
|
|
21801
|
+
"CLI",
|
|
21802
|
+
"TERRAFORM",
|
|
21803
|
+
"MCP",
|
|
21804
|
+
"API"
|
|
21805
|
+
]
|
|
21806
|
+
},
|
|
21732
21807
|
"lastDeliveryAt": {
|
|
21733
21808
|
"type": "string",
|
|
21734
21809
|
"description": "Timestamp of the most recent delivery attempt",
|
|
@@ -22929,6 +23004,18 @@
|
|
|
22929
23004
|
"$ref": "#/components/schemas/WebhookChannelConfig"
|
|
22930
23005
|
}
|
|
22931
23006
|
]
|
|
23007
|
+
},
|
|
23008
|
+
"managedBy": {
|
|
23009
|
+
"type": "string",
|
|
23010
|
+
"description": "Source creating this channel: DASHBOARD, CLI, TERRAFORM, MCP, or API. Defaults to API when omitted.",
|
|
23011
|
+
"nullable": true,
|
|
23012
|
+
"enum": [
|
|
23013
|
+
"DASHBOARD",
|
|
23014
|
+
"CLI",
|
|
23015
|
+
"TERRAFORM",
|
|
23016
|
+
"MCP",
|
|
23017
|
+
"API"
|
|
23018
|
+
]
|
|
22932
23019
|
}
|
|
22933
23020
|
}
|
|
22934
23021
|
},
|
|
@@ -23189,12 +23276,14 @@
|
|
|
23189
23276
|
"maxLength": 100,
|
|
23190
23277
|
"minLength": 0,
|
|
23191
23278
|
"type": "string",
|
|
23192
|
-
"description": "iCal RRULE for recurring windows (
|
|
23279
|
+
"description": "Reserved: iCal RRULE for recurring windows (stored but not yet honored)",
|
|
23193
23280
|
"nullable": true
|
|
23194
23281
|
},
|
|
23195
23282
|
"reason": {
|
|
23283
|
+
"maxLength": 500,
|
|
23284
|
+
"minLength": 0,
|
|
23196
23285
|
"type": "string",
|
|
23197
|
-
"description": "Human-readable reason for the maintenance",
|
|
23286
|
+
"description": "Human-readable reason for the maintenance (max 500 chars)",
|
|
23198
23287
|
"nullable": true
|
|
23199
23288
|
},
|
|
23200
23289
|
"suppressAlerts": {
|
|
@@ -23241,7 +23330,6 @@
|
|
|
23241
23330
|
"CreateMonitorRequest": {
|
|
23242
23331
|
"required": [
|
|
23243
23332
|
"config",
|
|
23244
|
-
"managedBy",
|
|
23245
23333
|
"name",
|
|
23246
23334
|
"type"
|
|
23247
23335
|
],
|
|
@@ -23288,8 +23376,10 @@
|
|
|
23288
23376
|
]
|
|
23289
23377
|
},
|
|
23290
23378
|
"frequencySeconds": {
|
|
23379
|
+
"maximum": 86400,
|
|
23380
|
+
"minimum": 10,
|
|
23291
23381
|
"type": "integer",
|
|
23292
|
-
"description": "Check frequency in seconds (
|
|
23382
|
+
"description": "Check frequency in seconds (10–86400); null defaults to plan minimum (60s on most paid plans)",
|
|
23293
23383
|
"format": "int32",
|
|
23294
23384
|
"nullable": true
|
|
23295
23385
|
},
|
|
@@ -23300,16 +23390,17 @@
|
|
|
23300
23390
|
},
|
|
23301
23391
|
"regions": {
|
|
23302
23392
|
"type": "array",
|
|
23303
|
-
"description": "Probe regions to run checks from
|
|
23393
|
+
"description": "Probe regions to run checks from. Allowed values are deployment-dependent; production: us-east, us-west, eu-west, ap-south.",
|
|
23304
23394
|
"nullable": true,
|
|
23305
23395
|
"items": {
|
|
23306
23396
|
"type": "string",
|
|
23307
|
-
"description": "Probe regions to run checks from
|
|
23397
|
+
"description": "Probe regions to run checks from. Allowed values are deployment-dependent; production: us-east, us-west, eu-west, ap-south."
|
|
23308
23398
|
}
|
|
23309
23399
|
},
|
|
23310
23400
|
"managedBy": {
|
|
23311
23401
|
"type": "string",
|
|
23312
|
-
"description": "Source that created/owns this monitor: DASHBOARD, CLI, TERRAFORM, MCP, or API.
|
|
23402
|
+
"description": "Source that created/owns this monitor: DASHBOARD, CLI, TERRAFORM, MCP, or API. Defaults to API when omitted; set to your surface so audit logs, drift detection, and analytics attribute correctly.",
|
|
23403
|
+
"nullable": true,
|
|
23313
23404
|
"enum": [
|
|
23314
23405
|
"DASHBOARD",
|
|
23315
23406
|
"CLI",
|
|
@@ -23510,6 +23601,18 @@
|
|
|
23510
23601
|
"description": "Recovery cooldown in minutes after group incident resolves (0–60)",
|
|
23511
23602
|
"format": "int32",
|
|
23512
23603
|
"nullable": true
|
|
23604
|
+
},
|
|
23605
|
+
"managedBy": {
|
|
23606
|
+
"type": "string",
|
|
23607
|
+
"description": "Source creating this group: DASHBOARD, CLI, TERRAFORM, MCP, or API. Defaults to API when omitted.",
|
|
23608
|
+
"nullable": true,
|
|
23609
|
+
"enum": [
|
|
23610
|
+
"DASHBOARD",
|
|
23611
|
+
"CLI",
|
|
23612
|
+
"TERRAFORM",
|
|
23613
|
+
"MCP",
|
|
23614
|
+
"API"
|
|
23615
|
+
]
|
|
23513
23616
|
}
|
|
23514
23617
|
},
|
|
23515
23618
|
"description": "Request body for creating a resource group"
|
|
@@ -23811,6 +23914,18 @@
|
|
|
23811
23914
|
"REVIEW",
|
|
23812
23915
|
"AUTOMATIC"
|
|
23813
23916
|
]
|
|
23917
|
+
},
|
|
23918
|
+
"managedBy": {
|
|
23919
|
+
"type": "string",
|
|
23920
|
+
"description": "Source creating this page: DASHBOARD, CLI, TERRAFORM, MCP, or API. Defaults to API when omitted.",
|
|
23921
|
+
"nullable": true,
|
|
23922
|
+
"enum": [
|
|
23923
|
+
"DASHBOARD",
|
|
23924
|
+
"CLI",
|
|
23925
|
+
"TERRAFORM",
|
|
23926
|
+
"MCP",
|
|
23927
|
+
"API"
|
|
23928
|
+
]
|
|
23814
23929
|
}
|
|
23815
23930
|
}
|
|
23816
23931
|
},
|
|
@@ -26436,7 +26551,7 @@
|
|
|
26436
26551
|
},
|
|
26437
26552
|
"repeatRule": {
|
|
26438
26553
|
"type": "string",
|
|
26439
|
-
"description": "iCal RRULE for recurring windows
|
|
26554
|
+
"description": "Reserved: iCal RRULE for recurring windows (stored but not yet honored)",
|
|
26440
26555
|
"nullable": true
|
|
26441
26556
|
},
|
|
26442
26557
|
"reason": {
|
|
@@ -27271,6 +27386,18 @@
|
|
|
27271
27386
|
"description": "Alert channel IDs linked to this monitor; populated on single-monitor responses",
|
|
27272
27387
|
"format": "uuid"
|
|
27273
27388
|
}
|
|
27389
|
+
},
|
|
27390
|
+
"currentStatus": {
|
|
27391
|
+
"type": "string",
|
|
27392
|
+
"description": "Current operational state — UP, DOWN, DEGRADED, PAUSED, or UNKNOWN if no probe data yet",
|
|
27393
|
+
"nullable": true,
|
|
27394
|
+
"enum": [
|
|
27395
|
+
"up",
|
|
27396
|
+
"degraded",
|
|
27397
|
+
"down",
|
|
27398
|
+
"paused",
|
|
27399
|
+
"unknown"
|
|
27400
|
+
]
|
|
27274
27401
|
}
|
|
27275
27402
|
},
|
|
27276
27403
|
"description": "Full monitor representation"
|
|
@@ -28461,6 +28588,18 @@
|
|
|
28461
28588
|
"$ref": "#/components/schemas/ResourceGroupMemberDto"
|
|
28462
28589
|
}
|
|
28463
28590
|
},
|
|
28591
|
+
"managedBy": {
|
|
28592
|
+
"type": "string",
|
|
28593
|
+
"description": "Source that created/owns this group: DASHBOARD, CLI, TERRAFORM, MCP, or API. Null on groups created before this attribution column existed.",
|
|
28594
|
+
"nullable": true,
|
|
28595
|
+
"enum": [
|
|
28596
|
+
"DASHBOARD",
|
|
28597
|
+
"CLI",
|
|
28598
|
+
"TERRAFORM",
|
|
28599
|
+
"MCP",
|
|
28600
|
+
"API"
|
|
28601
|
+
]
|
|
28602
|
+
},
|
|
28464
28603
|
"createdAt": {
|
|
28465
28604
|
"type": "string",
|
|
28466
28605
|
"description": "Timestamp when the group was created",
|
|
@@ -28721,6 +28860,7 @@
|
|
|
28721
28860
|
"up",
|
|
28722
28861
|
"degraded",
|
|
28723
28862
|
"down",
|
|
28863
|
+
"paused",
|
|
28724
28864
|
"unknown"
|
|
28725
28865
|
]
|
|
28726
28866
|
},
|
|
@@ -31056,6 +31196,18 @@
|
|
|
31056
31196
|
"UNDER_MAINTENANCE"
|
|
31057
31197
|
]
|
|
31058
31198
|
},
|
|
31199
|
+
"managedBy": {
|
|
31200
|
+
"type": "string",
|
|
31201
|
+
"description": "Source that created/owns this status page: DASHBOARD, CLI, TERRAFORM, MCP, or API. Null on pages created before this attribution column existed.",
|
|
31202
|
+
"nullable": true,
|
|
31203
|
+
"enum": [
|
|
31204
|
+
"DASHBOARD",
|
|
31205
|
+
"CLI",
|
|
31206
|
+
"TERRAFORM",
|
|
31207
|
+
"MCP",
|
|
31208
|
+
"API"
|
|
31209
|
+
]
|
|
31210
|
+
},
|
|
31059
31211
|
"createdAt": {
|
|
31060
31212
|
"type": "string",
|
|
31061
31213
|
"format": "date-time"
|
|
@@ -32999,6 +33151,18 @@
|
|
|
32999
33151
|
"$ref": "#/components/schemas/WebhookChannelConfig"
|
|
33000
33152
|
}
|
|
33001
33153
|
]
|
|
33154
|
+
},
|
|
33155
|
+
"managedBy": {
|
|
33156
|
+
"type": "string",
|
|
33157
|
+
"description": "New attribution source: DASHBOARD, CLI, TERRAFORM, MCP, or API; null preserves current value.",
|
|
33158
|
+
"nullable": true,
|
|
33159
|
+
"enum": [
|
|
33160
|
+
"DASHBOARD",
|
|
33161
|
+
"CLI",
|
|
33162
|
+
"TERRAFORM",
|
|
33163
|
+
"MCP",
|
|
33164
|
+
"API"
|
|
33165
|
+
]
|
|
33002
33166
|
}
|
|
33003
33167
|
}
|
|
33004
33168
|
},
|
|
@@ -33239,7 +33403,7 @@
|
|
|
33239
33403
|
"properties": {
|
|
33240
33404
|
"monitorId": {
|
|
33241
33405
|
"type": "string",
|
|
33242
|
-
"description": "Monitor
|
|
33406
|
+
"description": "Monitor this window applies to; null switches the window to org-wide",
|
|
33243
33407
|
"format": "uuid",
|
|
33244
33408
|
"nullable": true
|
|
33245
33409
|
},
|
|
@@ -33257,17 +33421,19 @@
|
|
|
33257
33421
|
"maxLength": 100,
|
|
33258
33422
|
"minLength": 0,
|
|
33259
33423
|
"type": "string",
|
|
33260
|
-
"description": "
|
|
33424
|
+
"description": "Reserved: iCal RRULE for recurring windows (stored but not yet honored); null clears it",
|
|
33261
33425
|
"nullable": true
|
|
33262
33426
|
},
|
|
33263
33427
|
"reason": {
|
|
33428
|
+
"maxLength": 500,
|
|
33429
|
+
"minLength": 0,
|
|
33264
33430
|
"type": "string",
|
|
33265
|
-
"description": "Updated reason; null clears the existing reason",
|
|
33431
|
+
"description": "Updated reason (max 500 chars); null clears the existing reason",
|
|
33266
33432
|
"nullable": true
|
|
33267
33433
|
},
|
|
33268
33434
|
"suppressAlerts": {
|
|
33269
33435
|
"type": "boolean",
|
|
33270
|
-
"description": "Whether to suppress alerts; null
|
|
33436
|
+
"description": "Whether to suppress alerts during this window; null defaults to true",
|
|
33271
33437
|
"nullable": true
|
|
33272
33438
|
}
|
|
33273
33439
|
}
|
|
@@ -33330,8 +33496,10 @@
|
|
|
33330
33496
|
]
|
|
33331
33497
|
},
|
|
33332
33498
|
"frequencySeconds": {
|
|
33499
|
+
"maximum": 86400,
|
|
33500
|
+
"minimum": 10,
|
|
33333
33501
|
"type": "integer",
|
|
33334
|
-
"description": "New check frequency in seconds (
|
|
33502
|
+
"description": "New check frequency in seconds (10–86400); null preserves current",
|
|
33335
33503
|
"format": "int32",
|
|
33336
33504
|
"nullable": true
|
|
33337
33505
|
},
|
|
@@ -33342,11 +33510,11 @@
|
|
|
33342
33510
|
},
|
|
33343
33511
|
"regions": {
|
|
33344
33512
|
"type": "array",
|
|
33345
|
-
"description": "New probe regions; null preserves current",
|
|
33513
|
+
"description": "New probe regions; null preserves current. Allowed values are deployment-dependent.",
|
|
33346
33514
|
"nullable": true,
|
|
33347
33515
|
"items": {
|
|
33348
33516
|
"type": "string",
|
|
33349
|
-
"description": "New probe regions; null preserves current"
|
|
33517
|
+
"description": "New probe regions; null preserves current. Allowed values are deployment-dependent."
|
|
33350
33518
|
}
|
|
33351
33519
|
},
|
|
33352
33520
|
"managedBy": {
|
|
@@ -33605,6 +33773,18 @@
|
|
|
33605
33773
|
"description": "Recovery cooldown in minutes; null clears",
|
|
33606
33774
|
"format": "int32",
|
|
33607
33775
|
"nullable": true
|
|
33776
|
+
},
|
|
33777
|
+
"managedBy": {
|
|
33778
|
+
"type": "string",
|
|
33779
|
+
"description": "New attribution source: DASHBOARD, CLI, TERRAFORM, MCP, or API; null preserves current value.",
|
|
33780
|
+
"nullable": true,
|
|
33781
|
+
"enum": [
|
|
33782
|
+
"DASHBOARD",
|
|
33783
|
+
"CLI",
|
|
33784
|
+
"TERRAFORM",
|
|
33785
|
+
"MCP",
|
|
33786
|
+
"API"
|
|
33787
|
+
]
|
|
33608
33788
|
}
|
|
33609
33789
|
},
|
|
33610
33790
|
"description": "Request body for updating a resource group"
|
|
@@ -33809,6 +33989,18 @@
|
|
|
33809
33989
|
"REVIEW",
|
|
33810
33990
|
"AUTOMATIC"
|
|
33811
33991
|
]
|
|
33992
|
+
},
|
|
33993
|
+
"managedBy": {
|
|
33994
|
+
"type": "string",
|
|
33995
|
+
"description": "New attribution source: DASHBOARD, CLI, TERRAFORM, MCP, or API; null preserves current value.",
|
|
33996
|
+
"nullable": true,
|
|
33997
|
+
"enum": [
|
|
33998
|
+
"DASHBOARD",
|
|
33999
|
+
"CLI",
|
|
34000
|
+
"TERRAFORM",
|
|
34001
|
+
"MCP",
|
|
34002
|
+
"API"
|
|
34003
|
+
]
|
|
33812
34004
|
}
|
|
33813
34005
|
}
|
|
33814
34006
|
},
|
|
@@ -155,6 +155,14 @@ class ChannelType(StrEnum):
|
|
|
155
155
|
discord = "discord"
|
|
156
156
|
|
|
157
157
|
|
|
158
|
+
class ManagedBy(StrEnum):
|
|
159
|
+
dashboard = "DASHBOARD"
|
|
160
|
+
cli = "CLI"
|
|
161
|
+
terraform = "TERRAFORM"
|
|
162
|
+
mcp = "MCP"
|
|
163
|
+
api = "API"
|
|
164
|
+
|
|
165
|
+
|
|
158
166
|
class AlertChannelDto(BaseModel):
|
|
159
167
|
model_config = ConfigDict(extra="forbid", populate_by_name=True)
|
|
160
168
|
id: Annotated[UUID, Field(description="Unique alert channel identifier")]
|
|
@@ -186,6 +194,13 @@ class AlertChannelDto(BaseModel):
|
|
|
186
194
|
description="SHA-256 hash of the channel config; use for change detection",
|
|
187
195
|
),
|
|
188
196
|
] = None
|
|
197
|
+
managed_by: Annotated[
|
|
198
|
+
ManagedBy | None,
|
|
199
|
+
Field(
|
|
200
|
+
alias="managedBy",
|
|
201
|
+
description="Source that created/owns this channel: DASHBOARD, CLI, TERRAFORM, MCP, or API. Null on channels created before this attribution column existed.",
|
|
202
|
+
),
|
|
203
|
+
] = None
|
|
189
204
|
last_delivery_at: Annotated[
|
|
190
205
|
AwareDatetime | None,
|
|
191
206
|
Field(
|
|
@@ -814,13 +829,18 @@ class CreateMaintenanceWindowRequest(BaseModel):
|
|
|
814
829
|
str | None,
|
|
815
830
|
Field(
|
|
816
831
|
alias="repeatRule",
|
|
817
|
-
description="iCal RRULE for recurring windows (
|
|
832
|
+
description="Reserved: iCal RRULE for recurring windows (stored but not yet honored)",
|
|
818
833
|
max_length=100,
|
|
819
834
|
min_length=0,
|
|
820
835
|
),
|
|
821
836
|
] = None
|
|
822
837
|
reason: Annotated[
|
|
823
|
-
str | None,
|
|
838
|
+
str | None,
|
|
839
|
+
Field(
|
|
840
|
+
description="Human-readable reason for the maintenance (max 500 chars)",
|
|
841
|
+
max_length=500,
|
|
842
|
+
min_length=0,
|
|
843
|
+
),
|
|
824
844
|
] = None
|
|
825
845
|
suppress_alerts: Annotated[
|
|
826
846
|
bool | None,
|
|
@@ -865,14 +885,6 @@ class Type(StrEnum):
|
|
|
865
885
|
heartbeat = "HEARTBEAT"
|
|
866
886
|
|
|
867
887
|
|
|
868
|
-
class ManagedBy(StrEnum):
|
|
869
|
-
dashboard = "DASHBOARD"
|
|
870
|
-
cli = "CLI"
|
|
871
|
-
terraform = "TERRAFORM"
|
|
872
|
-
mcp = "MCP"
|
|
873
|
-
api = "API"
|
|
874
|
-
|
|
875
|
-
|
|
876
888
|
class HealthThresholdType(StrEnum):
|
|
877
889
|
count = "COUNT" # type: ignore[assignment]
|
|
878
890
|
percentage = "PERCENTAGE"
|
|
@@ -2528,7 +2540,7 @@ class MaintenanceWindowDto(BaseModel):
|
|
|
2528
2540
|
str | None,
|
|
2529
2541
|
Field(
|
|
2530
2542
|
alias="repeatRule",
|
|
2531
|
-
description="iCal RRULE for recurring windows
|
|
2543
|
+
description="Reserved: iCal RRULE for recurring windows (stored but not yet honored)",
|
|
2532
2544
|
),
|
|
2533
2545
|
] = None
|
|
2534
2546
|
reason: Annotated[
|
|
@@ -2813,6 +2825,14 @@ class Type3(StrEnum):
|
|
|
2813
2825
|
heartbeat = "HEARTBEAT"
|
|
2814
2826
|
|
|
2815
2827
|
|
|
2828
|
+
class CurrentStatus(StrEnum):
|
|
2829
|
+
up = "up"
|
|
2830
|
+
degraded = "degraded"
|
|
2831
|
+
down = "down"
|
|
2832
|
+
paused = "paused"
|
|
2833
|
+
unknown = "unknown"
|
|
2834
|
+
|
|
2835
|
+
|
|
2816
2836
|
class MonitorReference(BaseModel):
|
|
2817
2837
|
model_config = ConfigDict(extra="forbid", populate_by_name=True)
|
|
2818
2838
|
id: Annotated[UUID, Field(description="Monitor identifier")]
|
|
@@ -3600,13 +3620,6 @@ class ResponseTimeWarnAssertion(BaseModel):
|
|
|
3600
3620
|
]
|
|
3601
3621
|
|
|
3602
3622
|
|
|
3603
|
-
class CurrentStatus(StrEnum):
|
|
3604
|
-
up = "up"
|
|
3605
|
-
degraded = "degraded"
|
|
3606
|
-
down = "down"
|
|
3607
|
-
unknown = "unknown"
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
3623
|
class ResultSummaryDto(BaseModel):
|
|
3611
3624
|
model_config = ConfigDict(extra="forbid", populate_by_name=True)
|
|
3612
3625
|
current_status: Annotated[
|
|
@@ -4597,7 +4610,7 @@ class Type5(StrEnum):
|
|
|
4597
4610
|
static = "STATIC"
|
|
4598
4611
|
|
|
4599
4612
|
|
|
4600
|
-
class
|
|
4613
|
+
class CurrentStatus2(StrEnum):
|
|
4601
4614
|
operational = "OPERATIONAL"
|
|
4602
4615
|
degraded_performance = "DEGRADED_PERFORMANCE"
|
|
4603
4616
|
partial_outage = "PARTIAL_OUTAGE"
|
|
@@ -4615,7 +4628,7 @@ class StatusPageComponentDto(BaseModel):
|
|
|
4615
4628
|
type: Type5
|
|
4616
4629
|
monitor_id: Annotated[UUID | None, Field(alias="monitorId")] = None
|
|
4617
4630
|
resource_group_id: Annotated[UUID | None, Field(alias="resourceGroupId")] = None
|
|
4618
|
-
current_status: Annotated[
|
|
4631
|
+
current_status: Annotated[CurrentStatus2, Field(alias="currentStatus")]
|
|
4619
4632
|
show_uptime: Annotated[bool, Field(alias="showUptime")]
|
|
4620
4633
|
display_order: Annotated[int, Field(alias="displayOrder")]
|
|
4621
4634
|
page_order: Annotated[int, Field(alias="pageOrder")]
|
|
@@ -4699,6 +4712,13 @@ class StatusPageDto(BaseModel):
|
|
|
4699
4712
|
component_count: Annotated[int | None, Field(alias="componentCount")] = None
|
|
4700
4713
|
subscriber_count: Annotated[int | None, Field(alias="subscriberCount")] = None
|
|
4701
4714
|
overall_status: Annotated[OverallStatus | None, Field(alias="overallStatus")] = None
|
|
4715
|
+
managed_by: Annotated[
|
|
4716
|
+
ManagedBy | None,
|
|
4717
|
+
Field(
|
|
4718
|
+
alias="managedBy",
|
|
4719
|
+
description="Source that created/owns this status page: DASHBOARD, CLI, TERRAFORM, MCP, or API. Null on pages created before this attribution column existed.",
|
|
4720
|
+
),
|
|
4721
|
+
] = None
|
|
4702
4722
|
created_at: Annotated[AwareDatetime, Field(alias="createdAt")]
|
|
4703
4723
|
updated_at: Annotated[AwareDatetime, Field(alias="updatedAt")]
|
|
4704
4724
|
|
|
@@ -5419,7 +5439,7 @@ class UpdateMaintenanceWindowRequest(BaseModel):
|
|
|
5419
5439
|
UUID | None,
|
|
5420
5440
|
Field(
|
|
5421
5441
|
alias="monitorId",
|
|
5422
|
-
description="Monitor
|
|
5442
|
+
description="Monitor this window applies to; null switches the window to org-wide",
|
|
5423
5443
|
),
|
|
5424
5444
|
] = None
|
|
5425
5445
|
starts_at: Annotated[
|
|
@@ -5433,19 +5453,24 @@ class UpdateMaintenanceWindowRequest(BaseModel):
|
|
|
5433
5453
|
str | None,
|
|
5434
5454
|
Field(
|
|
5435
5455
|
alias="repeatRule",
|
|
5436
|
-
description="
|
|
5456
|
+
description="Reserved: iCal RRULE for recurring windows (stored but not yet honored); null clears it",
|
|
5437
5457
|
max_length=100,
|
|
5438
5458
|
min_length=0,
|
|
5439
5459
|
),
|
|
5440
5460
|
] = None
|
|
5441
5461
|
reason: Annotated[
|
|
5442
|
-
str | None,
|
|
5462
|
+
str | None,
|
|
5463
|
+
Field(
|
|
5464
|
+
description="Updated reason (max 500 chars); null clears the existing reason",
|
|
5465
|
+
max_length=500,
|
|
5466
|
+
min_length=0,
|
|
5467
|
+
),
|
|
5443
5468
|
] = None
|
|
5444
5469
|
suppress_alerts: Annotated[
|
|
5445
5470
|
bool | None,
|
|
5446
5471
|
Field(
|
|
5447
5472
|
alias="suppressAlerts",
|
|
5448
|
-
description="Whether to suppress alerts; null
|
|
5473
|
+
description="Whether to suppress alerts during this window; null defaults to true",
|
|
5449
5474
|
),
|
|
5450
5475
|
] = None
|
|
5451
5476
|
|
|
@@ -5591,6 +5616,13 @@ class UpdateResourceGroupRequest(BaseModel):
|
|
|
5591
5616
|
le=60,
|
|
5592
5617
|
),
|
|
5593
5618
|
] = None
|
|
5619
|
+
managed_by: Annotated[
|
|
5620
|
+
ManagedBy | None,
|
|
5621
|
+
Field(
|
|
5622
|
+
alias="managedBy",
|
|
5623
|
+
description="New attribution source: DASHBOARD, CLI, TERRAFORM, MCP, or API; null preserves current value.",
|
|
5624
|
+
),
|
|
5625
|
+
] = None
|
|
5594
5626
|
|
|
5595
5627
|
|
|
5596
5628
|
class UpdateSecretRequest(BaseModel):
|
|
@@ -5774,6 +5806,13 @@ class UpdateStatusPageRequest(BaseModel):
|
|
|
5774
5806
|
description="Incident mode: MANUAL, REVIEW, or AUTOMATIC; null preserves current",
|
|
5775
5807
|
),
|
|
5776
5808
|
] = None
|
|
5809
|
+
managed_by: Annotated[
|
|
5810
|
+
ManagedBy | None,
|
|
5811
|
+
Field(
|
|
5812
|
+
alias="managedBy",
|
|
5813
|
+
description="New attribution source: DASHBOARD, CLI, TERRAFORM, MCP, or API; null preserves current value.",
|
|
5814
|
+
),
|
|
5815
|
+
] = None
|
|
5777
5816
|
|
|
5778
5817
|
|
|
5779
5818
|
class UpdateTagRequest(BaseModel):
|
|
@@ -6195,6 +6234,13 @@ class CreateAlertChannelRequest(BaseModel):
|
|
|
6195
6234
|
| WebhookChannelConfig,
|
|
6196
6235
|
Field(discriminator="channel_type"),
|
|
6197
6236
|
]
|
|
6237
|
+
managed_by: Annotated[
|
|
6238
|
+
ManagedBy | None,
|
|
6239
|
+
Field(
|
|
6240
|
+
alias="managedBy",
|
|
6241
|
+
description="Source creating this channel: DASHBOARD, CLI, TERRAFORM, MCP, or API. Defaults to API when omitted.",
|
|
6242
|
+
),
|
|
6243
|
+
] = None
|
|
6198
6244
|
|
|
6199
6245
|
|
|
6200
6246
|
class CreateAssertionRequest(BaseModel):
|
|
@@ -6275,7 +6321,9 @@ class CreateMonitorRequest(BaseModel):
|
|
|
6275
6321
|
int | None,
|
|
6276
6322
|
Field(
|
|
6277
6323
|
alias="frequencySeconds",
|
|
6278
|
-
description="Check frequency in seconds (
|
|
6324
|
+
description="Check frequency in seconds (10–86400); null defaults to plan minimum (60s on most paid plans)",
|
|
6325
|
+
ge=10,
|
|
6326
|
+
le=86400,
|
|
6279
6327
|
),
|
|
6280
6328
|
] = None
|
|
6281
6329
|
enabled: Annotated[
|
|
@@ -6283,15 +6331,17 @@ class CreateMonitorRequest(BaseModel):
|
|
|
6283
6331
|
] = None
|
|
6284
6332
|
regions: Annotated[
|
|
6285
6333
|
list[str] | None,
|
|
6286
|
-
Field(
|
|
6334
|
+
Field(
|
|
6335
|
+
description="Probe regions to run checks from. Allowed values are deployment-dependent; production: us-east, us-west, eu-west, ap-south."
|
|
6336
|
+
),
|
|
6287
6337
|
] = None
|
|
6288
6338
|
managed_by: Annotated[
|
|
6289
|
-
ManagedBy,
|
|
6339
|
+
ManagedBy | None,
|
|
6290
6340
|
Field(
|
|
6291
6341
|
alias="managedBy",
|
|
6292
|
-
description="Source that created/owns this monitor: DASHBOARD, CLI, TERRAFORM, MCP, or API.
|
|
6342
|
+
description="Source that created/owns this monitor: DASHBOARD, CLI, TERRAFORM, MCP, or API. Defaults to API when omitted; set to your surface so audit logs, drift detection, and analytics attribute correctly.",
|
|
6293
6343
|
),
|
|
6294
|
-
]
|
|
6344
|
+
] = None
|
|
6295
6345
|
environment_id: Annotated[
|
|
6296
6346
|
UUID | None,
|
|
6297
6347
|
Field(
|
|
@@ -6409,6 +6459,13 @@ class CreateResourceGroupRequest(BaseModel):
|
|
|
6409
6459
|
le=60,
|
|
6410
6460
|
),
|
|
6411
6461
|
] = None
|
|
6462
|
+
managed_by: Annotated[
|
|
6463
|
+
ManagedBy | None,
|
|
6464
|
+
Field(
|
|
6465
|
+
alias="managedBy",
|
|
6466
|
+
description="Source creating this group: DASHBOARD, CLI, TERRAFORM, MCP, or API. Defaults to API when omitted.",
|
|
6467
|
+
),
|
|
6468
|
+
] = None
|
|
6412
6469
|
|
|
6413
6470
|
|
|
6414
6471
|
class CreateStatusPageRequest(BaseModel):
|
|
@@ -6455,6 +6512,13 @@ class CreateStatusPageRequest(BaseModel):
|
|
|
6455
6512
|
description="Incident mode: MANUAL, REVIEW, or AUTOMATIC (default: AUTOMATIC)",
|
|
6456
6513
|
),
|
|
6457
6514
|
] = None
|
|
6515
|
+
managed_by: Annotated[
|
|
6516
|
+
ManagedBy | None,
|
|
6517
|
+
Field(
|
|
6518
|
+
alias="managedBy",
|
|
6519
|
+
description="Source creating this page: DASHBOARD, CLI, TERRAFORM, MCP, or API. Defaults to API when omitted.",
|
|
6520
|
+
),
|
|
6521
|
+
] = None
|
|
6458
6522
|
|
|
6459
6523
|
|
|
6460
6524
|
class CursorPageServiceCatalogDto(BaseModel):
|
|
@@ -6896,6 +6960,13 @@ class MonitorDto(BaseModel):
|
|
|
6896
6960
|
description="Alert channel IDs linked to this monitor; populated on single-monitor responses",
|
|
6897
6961
|
),
|
|
6898
6962
|
] = None
|
|
6963
|
+
current_status: Annotated[
|
|
6964
|
+
CurrentStatus | None,
|
|
6965
|
+
Field(
|
|
6966
|
+
alias="currentStatus",
|
|
6967
|
+
description="Current operational state — UP, DOWN, DEGRADED, PAUSED, or UNKNOWN if no probe data yet",
|
|
6968
|
+
),
|
|
6969
|
+
] = None
|
|
6899
6970
|
|
|
6900
6971
|
|
|
6901
6972
|
class MonitorTestRequest(BaseModel):
|
|
@@ -7075,6 +7146,13 @@ class ResourceGroupDto(BaseModel):
|
|
|
7075
7146
|
description="Member list with individual statuses; populated on detail GET only"
|
|
7076
7147
|
),
|
|
7077
7148
|
] = None
|
|
7149
|
+
managed_by: Annotated[
|
|
7150
|
+
ManagedBy | None,
|
|
7151
|
+
Field(
|
|
7152
|
+
alias="managedBy",
|
|
7153
|
+
description="Source that created/owns this group: DASHBOARD, CLI, TERRAFORM, MCP, or API. Null on groups created before this attribution column existed.",
|
|
7154
|
+
),
|
|
7155
|
+
] = None
|
|
7078
7156
|
created_at: Annotated[
|
|
7079
7157
|
AwareDatetime,
|
|
7080
7158
|
Field(alias="createdAt", description="Timestamp when the group was created"),
|
|
@@ -7475,6 +7553,13 @@ class UpdateAlertChannelRequest(BaseModel):
|
|
|
7475
7553
|
| WebhookChannelConfig,
|
|
7476
7554
|
Field(discriminator="channel_type"),
|
|
7477
7555
|
]
|
|
7556
|
+
managed_by: Annotated[
|
|
7557
|
+
ManagedBy | None,
|
|
7558
|
+
Field(
|
|
7559
|
+
alias="managedBy",
|
|
7560
|
+
description="New attribution source: DASHBOARD, CLI, TERRAFORM, MCP, or API; null preserves current value.",
|
|
7561
|
+
),
|
|
7562
|
+
] = None
|
|
7478
7563
|
|
|
7479
7564
|
|
|
7480
7565
|
class UpdateMonitorRequest(BaseModel):
|
|
@@ -7500,7 +7585,9 @@ class UpdateMonitorRequest(BaseModel):
|
|
|
7500
7585
|
int | None,
|
|
7501
7586
|
Field(
|
|
7502
7587
|
alias="frequencySeconds",
|
|
7503
|
-
description="New check frequency in seconds (
|
|
7588
|
+
description="New check frequency in seconds (10–86400); null preserves current",
|
|
7589
|
+
ge=10,
|
|
7590
|
+
le=86400,
|
|
7504
7591
|
),
|
|
7505
7592
|
] = None
|
|
7506
7593
|
enabled: Annotated[
|
|
@@ -7508,7 +7595,10 @@ class UpdateMonitorRequest(BaseModel):
|
|
|
7508
7595
|
Field(description="Enable or disable the monitor; null preserves current"),
|
|
7509
7596
|
] = None
|
|
7510
7597
|
regions: Annotated[
|
|
7511
|
-
list[str] | None,
|
|
7598
|
+
list[str] | None,
|
|
7599
|
+
Field(
|
|
7600
|
+
description="New probe regions; null preserves current. Allowed values are deployment-dependent."
|
|
7601
|
+
),
|
|
7512
7602
|
] = None
|
|
7513
7603
|
managed_by: Annotated[
|
|
7514
7604
|
ManagedBy | None,
|
|
@@ -143,11 +143,19 @@ from devhelm._generated import (
|
|
|
143
143
|
)
|
|
144
144
|
from devhelm._generated import (
|
|
145
145
|
#
|
|
146
|
-
# CurrentStatus enums
|
|
147
|
-
|
|
146
|
+
# CurrentStatus enums.
|
|
147
|
+
#
|
|
148
|
+
# NOTE on suffix stability: datamodel-code-generator names inline enums by
|
|
149
|
+
# iteration order (CurrentStatus, CurrentStatus1, …). Adding another DTO
|
|
150
|
+
# with a `currentStatus` field can shift the suffixes. As of mono v0.13+
|
|
151
|
+
# `CurrentStatus` is shared by `MonitorDto.currentStatus` and
|
|
152
|
+
# `ResultSummaryDto.currentStatus` (deduped — identical value sets), and
|
|
153
|
+
# `CurrentStatus2` belongs to `StatusPageComponentDto.currentStatus`
|
|
154
|
+
# (different value set: OPERATIONAL/DEGRADED_PERFORMANCE/...).
|
|
155
|
+
CurrentStatus as MonitorCurrentStatus, # MonitorDto.current_status + ResultSummaryDto.current_status
|
|
148
156
|
)
|
|
149
157
|
from devhelm._generated import (
|
|
150
|
-
|
|
158
|
+
CurrentStatus2 as StatusPageComponentCurrentStatus, # StatusPageComponentDto.current_status
|
|
151
159
|
)
|
|
152
160
|
from devhelm._generated import (
|
|
153
161
|
#
|
|
@@ -546,15 +546,18 @@ class TestCreateMonitorRequestNegative:
|
|
|
546
546
|
{"name": "X", "type": "HTTP", "managedBy": "DASHBOARD"}
|
|
547
547
|
)
|
|
548
548
|
|
|
549
|
-
def
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
549
|
+
def test_managed_by_optional_defaults_server_side(self) -> None:
|
|
550
|
+
# As of mono v0.13, managedBy is optional on Create requests and
|
|
551
|
+
# defaults to API server-side. The SDK should accept payloads
|
|
552
|
+
# without it.
|
|
553
|
+
req = CreateMonitorRequest.model_validate(
|
|
554
|
+
{
|
|
555
|
+
"name": "X",
|
|
556
|
+
"type": "HTTP",
|
|
557
|
+
"config": {"url": "https://x.com", "method": "GET"},
|
|
558
|
+
}
|
|
559
|
+
)
|
|
560
|
+
assert req.managed_by is None
|
|
558
561
|
|
|
559
562
|
def test_invalid_type_enum(self) -> None:
|
|
560
563
|
with pytest.raises(ValidationError):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|