stackit-observability 0.4.0__tar.gz → 0.5.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 (106) hide show
  1. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/PKG-INFO +1 -1
  2. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/pyproject.toml +1 -1
  3. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/api_client.py +1 -1
  4. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/configuration.py +6 -2
  5. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_alert_config_receiver_payload_email_configs_inner.py +14 -2
  6. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_alert_config_receiver_payload_opsgenie_configs_inner.py +17 -3
  7. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_alert_config_receiver_payload_web_hook_configs_inner.py +9 -2
  8. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_alert_config_route_payload.py +8 -1
  9. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_alert_config_route_payload_routes_inner.py +9 -1
  10. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/route.py +5 -0
  11. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alert_config_route_payload.py +8 -1
  12. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alert_configs_payload_route.py +8 -1
  13. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/LICENSE.md +0 -0
  14. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/NOTICE.txt +0 -0
  15. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/README.md +0 -0
  16. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/__init__.py +0 -0
  17. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/api/__init__.py +0 -0
  18. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/api/default_api.py +0 -0
  19. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/api_response.py +0 -0
  20. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/exceptions.py +0 -0
  21. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/__init__.py +0 -0
  22. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert.py +0 -0
  23. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert_config_receivers_response.py +0 -0
  24. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert_config_route_response.py +0 -0
  25. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert_group.py +0 -0
  26. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert_group_response.py +0 -0
  27. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert_groups_response.py +0 -0
  28. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert_rule.py +0 -0
  29. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert_rule_record.py +0 -0
  30. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/alert_rules_response.py +0 -0
  31. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/basic_auth.py +0 -0
  32. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_alert_config_receiver_payload.py +0 -0
  33. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_alertgroups_payload.py +0 -0
  34. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_alertrules_payload.py +0 -0
  35. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_credentials_response.py +0 -0
  36. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_instance_payload.py +0 -0
  37. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_instance_response.py +0 -0
  38. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_logs_alertgroups_payload.py +0 -0
  39. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_scrape_config_payload.py +0 -0
  40. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_scrape_config_payload_basic_auth.py +0 -0
  41. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_scrape_config_payload_http_sd_configs_inner.py +0 -0
  42. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_scrape_config_payload_http_sd_configs_inner_oauth2.py +0 -0
  43. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_scrape_config_payload_http_sd_configs_inner_oauth2_tls_config.py +0 -0
  44. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_scrape_config_payload_metrics_relabel_configs_inner.py +0 -0
  45. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/create_scrape_config_payload_static_configs_inner.py +0 -0
  46. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/credentials.py +0 -0
  47. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/credentials_remote_write_config.py +0 -0
  48. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/credentials_remote_write_delete_response.py +0 -0
  49. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/delete_scrape_config_response.py +0 -0
  50. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/email_config.py +0 -0
  51. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/error.py +0 -0
  52. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/get_alert_configs_response.py +0 -0
  53. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/get_credentials_response.py +0 -0
  54. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/get_instance_response.py +0 -0
  55. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/get_metrics_storage_retention_response.py +0 -0
  56. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/get_scrape_config_response.py +0 -0
  57. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/grafana_configs.py +0 -0
  58. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/grafana_oauth.py +0 -0
  59. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/http_service_sd.py +0 -0
  60. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/inhibit_rules.py +0 -0
  61. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/instance.py +0 -0
  62. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/instance_response.py +0 -0
  63. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/instance_sensitive_data.py +0 -0
  64. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/job.py +0 -0
  65. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/list_acl_response.py +0 -0
  66. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/list_credentials_response.py +0 -0
  67. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/list_instances_response.py +0 -0
  68. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/list_scrape_configs_response.py +0 -0
  69. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/message.py +0 -0
  70. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/metrics_relabel_config.py +0 -0
  71. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/model_global.py +0 -0
  72. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/o_auth2.py +0 -0
  73. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/opsgenie_config.py +0 -0
  74. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/permission_denied.py +0 -0
  75. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/plan.py +0 -0
  76. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/plan_model.py +0 -0
  77. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/plans_response.py +0 -0
  78. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/project_instance_full.py +0 -0
  79. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/receiver.py +0 -0
  80. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/receivers.py +0 -0
  81. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/route_serializer.py +0 -0
  82. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/scrape_configs_response.py +0 -0
  83. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/service_keys_list.py +0 -0
  84. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/static_configs.py +0 -0
  85. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/tls_config.py +0 -0
  86. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_acl_payload.py +0 -0
  87. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alert_config_receiver_payload.py +0 -0
  88. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alert_configs_payload.py +0 -0
  89. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alert_configs_payload_global.py +0 -0
  90. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alert_configs_payload_inhibit_rules.py +0 -0
  91. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alert_configs_payload_receivers_inner.py +0 -0
  92. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alert_configs_response.py +0 -0
  93. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alertgroup_payload.py +0 -0
  94. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alertgroups_request_inner.py +0 -0
  95. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_alertgroups_request_inner_rules_inner.py +0 -0
  96. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_credentials_remote_write_config_payload.py +0 -0
  97. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_grafana_configs_payload.py +0 -0
  98. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_grafana_configs_payload_generic_oauth.py +0 -0
  99. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_instance_payload.py +0 -0
  100. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_logs_alertgroup_payload.py +0 -0
  101. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_metrics_storage_retention_payload.py +0 -0
  102. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_scrape_config_payload.py +0 -0
  103. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/update_scrape_config_payload_static_configs_inner.py +0 -0
  104. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/models/web_hook.py +0 -0
  105. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/py.typed +0 -0
  106. {stackit_observability-0.4.0 → stackit_observability-0.5.0}/src/stackit/observability/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: stackit-observability
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: STACKIT Observability API
5
5
  Author: STACKIT Developer Tools
6
6
  Author-email: developer-tools@stackit.cloud
@@ -3,7 +3,7 @@ name = "stackit-observability"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "stackit-observability"
6
- version = "v0.4.0"
6
+ version = "v0.5.0"
7
7
  authors = [
8
8
  "STACKIT Developer Tools <developer-tools@stackit.cloud>",
9
9
  ]
@@ -82,7 +82,7 @@ class ApiClient:
82
82
  self.default_headers[header_name] = header_value
83
83
  self.cookie = cookie
84
84
  # Set default User-Agent.
85
- self.user_agent = "OpenAPI-Generator/1.0.0/python"
85
+ self.user_agent = "stackit-sdk-python/observability"
86
86
 
87
87
  def __enter__(self):
88
88
  return self
@@ -1,5 +1,10 @@
1
1
  # coding: utf-8
2
2
 
3
+ import sys
4
+
5
+ import os
6
+
7
+
3
8
  """
4
9
  STACKIT Observability API
5
10
 
@@ -12,8 +17,6 @@
12
17
  Do not edit the class manually.
13
18
  """ # noqa: E501 docstring might be too long
14
19
 
15
- import os
16
-
17
20
 
18
21
  class HostConfiguration:
19
22
  def __init__(
@@ -30,6 +33,7 @@ class HostConfiguration:
30
33
  "as a function argument instead of being set in the client configuration.\n"
31
34
  "Once all services have migrated, the methods to specify the region in the client configuration "
32
35
  "will be removed.",
36
+ file=sys.stderr,
33
37
  )
34
38
  """Constructor
35
39
  """
@@ -18,7 +18,7 @@ import json
18
18
  import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool
22
22
  from typing_extensions import Annotated, Self
23
23
 
24
24
 
@@ -43,6 +43,9 @@ class CreateAlertConfigReceiverPayloadEmailConfigsInner(BaseModel):
43
43
  description="The sender address. `Additional Validators:` * must be a syntactically valid email address",
44
44
  alias="from",
45
45
  )
46
+ send_resolved: Optional[StrictBool] = Field(
47
+ default=False, description="Whether to notify about resolved alerts.", alias="sendResolved"
48
+ )
46
49
  smarthost: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]] = Field(
47
50
  default=None,
48
51
  description="The SMTP host through which emails are sent. `Additional Validators:` * should only include the characters: a-zA-Z0-9_./@&?:-",
@@ -51,7 +54,15 @@ class CreateAlertConfigReceiverPayloadEmailConfigsInner(BaseModel):
51
54
  default=None,
52
55
  description="The email address to send notifications to. `Additional Validators:` * must be a syntactically valid email address",
53
56
  )
54
- __properties: ClassVar[List[str]] = ["authIdentity", "authPassword", "authUsername", "from", "smarthost", "to"]
57
+ __properties: ClassVar[List[str]] = [
58
+ "authIdentity",
59
+ "authPassword",
60
+ "authUsername",
61
+ "from",
62
+ "sendResolved",
63
+ "smarthost",
64
+ "to",
65
+ ]
55
66
 
56
67
  model_config = ConfigDict(
57
68
  populate_by_name=True,
@@ -107,6 +118,7 @@ class CreateAlertConfigReceiverPayloadEmailConfigsInner(BaseModel):
107
118
  "authPassword": obj.get("authPassword"),
108
119
  "authUsername": obj.get("authUsername"),
109
120
  "from": obj.get("from"),
121
+ "sendResolved": obj.get("sendResolved") if obj.get("sendResolved") is not None else False,
110
122
  "smarthost": obj.get("smarthost"),
111
123
  "to": obj.get("to"),
112
124
  }
@@ -18,7 +18,7 @@ import json
18
18
  import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool
22
22
  from typing_extensions import Annotated, Self
23
23
 
24
24
 
@@ -37,10 +37,16 @@ class CreateAlertConfigReceiverPayloadOpsgenieConfigsInner(BaseModel):
37
37
  description="The host to send OpsGenie API requests to. `Additional Validators:` * must be a syntactically valid url address",
38
38
  alias="apiUrl",
39
39
  )
40
+ priority: Optional[Annotated[str, Field(min_length=2, strict=True, max_length=2)]] = Field(
41
+ default=None, description="Priority level of alert. Possible values are P1, P2, P3, P4, and P5."
42
+ )
43
+ send_resolved: Optional[StrictBool] = Field(
44
+ default=True, description="Whether to notify about resolved alerts.", alias="sendResolved"
45
+ )
40
46
  tags: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=400)]] = Field(
41
47
  default=None, description="Comma separated list of tags attached to the notifications."
42
48
  )
43
- __properties: ClassVar[List[str]] = ["apiKey", "apiUrl", "tags"]
49
+ __properties: ClassVar[List[str]] = ["apiKey", "apiUrl", "priority", "sendResolved", "tags"]
44
50
 
45
51
  model_config = ConfigDict(
46
52
  populate_by_name=True,
@@ -90,5 +96,13 @@ class CreateAlertConfigReceiverPayloadOpsgenieConfigsInner(BaseModel):
90
96
  if not isinstance(obj, dict):
91
97
  return cls.model_validate(obj)
92
98
 
93
- _obj = cls.model_validate({"apiKey": obj.get("apiKey"), "apiUrl": obj.get("apiUrl"), "tags": obj.get("tags")})
99
+ _obj = cls.model_validate(
100
+ {
101
+ "apiKey": obj.get("apiKey"),
102
+ "apiUrl": obj.get("apiUrl"),
103
+ "priority": obj.get("priority"),
104
+ "sendResolved": obj.get("sendResolved") if obj.get("sendResolved") is not None else True,
105
+ "tags": obj.get("tags"),
106
+ }
107
+ )
94
108
  return _obj
@@ -32,11 +32,14 @@ class CreateAlertConfigReceiverPayloadWebHookConfigsInner(BaseModel):
32
32
  description="Microsoft Teams webhooks require special handling. If you set this property to true, it is treated as such",
33
33
  alias="msTeams",
34
34
  )
35
+ send_resolved: Optional[StrictBool] = Field(
36
+ default=True, description="Whether to notify about resolved alerts.", alias="sendResolved"
37
+ )
35
38
  url: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=500)]] = Field(
36
39
  default=None,
37
40
  description="The endpoint to send HTTP POST requests to. `Additional Validators:` * must be a syntactically valid url address",
38
41
  )
39
- __properties: ClassVar[List[str]] = ["msTeams", "url"]
42
+ __properties: ClassVar[List[str]] = ["msTeams", "sendResolved", "url"]
40
43
 
41
44
  model_config = ConfigDict(
42
45
  populate_by_name=True,
@@ -87,6 +90,10 @@ class CreateAlertConfigReceiverPayloadWebHookConfigsInner(BaseModel):
87
90
  return cls.model_validate(obj)
88
91
 
89
92
  _obj = cls.model_validate(
90
- {"msTeams": obj.get("msTeams") if obj.get("msTeams") is not None else False, "url": obj.get("url")}
93
+ {
94
+ "msTeams": obj.get("msTeams") if obj.get("msTeams") is not None else False,
95
+ "sendResolved": obj.get("sendResolved") if obj.get("sendResolved") is not None else True,
96
+ "url": obj.get("url"),
97
+ }
91
98
  )
92
99
  return _obj
@@ -18,7 +18,7 @@ import json
18
18
  import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool
22
22
  from typing_extensions import Annotated, Self
23
23
 
24
24
  from stackit.observability.models.create_alert_config_route_payload_routes_inner import (
@@ -31,6 +31,11 @@ class CreateAlertConfigRoutePayload(BaseModel):
31
31
  The root node of the routing tree.
32
32
  """
33
33
 
34
+ var_continue: Optional[StrictBool] = Field(
35
+ default=False,
36
+ description="Whether an alert should continue matching subsequent sibling nodes.",
37
+ alias="continue",
38
+ )
34
39
  group_by: Optional[List[Annotated[str, Field(min_length=1, strict=True, max_length=200)]]] = Field(
35
40
  default=None,
36
41
  description="The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping.",
@@ -71,6 +76,7 @@ class CreateAlertConfigRoutePayload(BaseModel):
71
76
  default=None, description="Zero or more child routes."
72
77
  )
73
78
  __properties: ClassVar[List[str]] = [
79
+ "continue",
74
80
  "groupBy",
75
81
  "groupInterval",
76
82
  "groupWait",
@@ -139,6 +145,7 @@ class CreateAlertConfigRoutePayload(BaseModel):
139
145
 
140
146
  _obj = cls.model_validate(
141
147
  {
148
+ "continue": obj.get("continue") if obj.get("continue") is not None else False,
142
149
  "groupBy": obj.get("groupBy"),
143
150
  "groupInterval": obj.get("groupInterval") if obj.get("groupInterval") is not None else "5m",
144
151
  "groupWait": obj.get("groupWait") if obj.get("groupWait") is not None else "30s",
@@ -18,7 +18,7 @@ import json
18
18
  import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool
22
22
  from typing_extensions import Annotated, Self
23
23
 
24
24
 
@@ -27,6 +27,7 @@ class CreateAlertConfigRoutePayloadRoutesInner(BaseModel):
27
27
  As in one level above
28
28
  """
29
29
 
30
+ var_continue: Optional[StrictBool] = Field(default=False, description="As in one level above", alias="continue")
30
31
  group_by: Optional[List[Annotated[str, Field(min_length=1, strict=True, max_length=200)]]] = Field(
31
32
  default=None, alias="groupBy"
32
33
  )
@@ -38,6 +39,9 @@ class CreateAlertConfigRoutePayloadRoutesInner(BaseModel):
38
39
  )
39
40
  match: Optional[Dict[str, Any]] = Field(default=None, description="As in one level above")
40
41
  match_re: Optional[Dict[str, Any]] = Field(default=None, description="As in one level above", alias="matchRe")
42
+ matchers: Optional[List[Annotated[str, Field(min_length=1, strict=True, max_length=200)]]] = Field(
43
+ default=None, description="As in one level above"
44
+ )
41
45
  receiver: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=100)]] = Field(
42
46
  default=None, description="As in one level above"
43
47
  )
@@ -46,11 +50,13 @@ class CreateAlertConfigRoutePayloadRoutesInner(BaseModel):
46
50
  )
47
51
  routes: Optional[List[Dict[str, Any]]] = Field(default=None, description="Another child routes")
48
52
  __properties: ClassVar[List[str]] = [
53
+ "continue",
49
54
  "groupBy",
50
55
  "groupInterval",
51
56
  "groupWait",
52
57
  "match",
53
58
  "matchRe",
59
+ "matchers",
54
60
  "receiver",
55
61
  "repeatInterval",
56
62
  "routes",
@@ -106,11 +112,13 @@ class CreateAlertConfigRoutePayloadRoutesInner(BaseModel):
106
112
 
107
113
  _obj = cls.model_validate(
108
114
  {
115
+ "continue": obj.get("continue") if obj.get("continue") is not None else False,
109
116
  "groupBy": obj.get("groupBy"),
110
117
  "groupInterval": obj.get("groupInterval"),
111
118
  "groupWait": obj.get("groupWait"),
112
119
  "match": obj.get("match"),
113
120
  "matchRe": obj.get("matchRe"),
121
+ "matchers": obj.get("matchers"),
114
122
  "receiver": obj.get("receiver"),
115
123
  "repeatInterval": obj.get("repeatInterval"),
116
124
  "routes": obj.get("routes"),
@@ -43,6 +43,9 @@ class Route(BaseModel):
43
43
  match_re: Optional[Dict[str, Annotated[str, Field(min_length=1, strict=True, max_length=200)]]] = Field(
44
44
  default=None, alias="matchRe"
45
45
  )
46
+ matchers: Optional[
47
+ Annotated[List[Annotated[str, Field(min_length=1, strict=True, max_length=200)]], Field(max_length=5)]
48
+ ] = None
46
49
  receiver: Annotated[str, Field(min_length=1, strict=True, max_length=200)]
47
50
  repeat_interval: Optional[Annotated[str, Field(min_length=2, strict=True, max_length=8)]] = Field(
48
51
  default="4h", alias="repeatInterval"
@@ -55,6 +58,7 @@ class Route(BaseModel):
55
58
  "groupWait",
56
59
  "match",
57
60
  "matchRe",
61
+ "matchers",
58
62
  "receiver",
59
63
  "repeatInterval",
60
64
  "routes",
@@ -123,6 +127,7 @@ class Route(BaseModel):
123
127
  "groupWait": obj.get("groupWait") if obj.get("groupWait") is not None else "30s",
124
128
  "match": obj.get("match"),
125
129
  "matchRe": obj.get("matchRe"),
130
+ "matchers": obj.get("matchers"),
126
131
  "receiver": obj.get("receiver"),
127
132
  "repeatInterval": obj.get("repeatInterval") if obj.get("repeatInterval") is not None else "4h",
128
133
  "routes": (
@@ -18,7 +18,7 @@ import json
18
18
  import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool
22
22
  from typing_extensions import Annotated, Self
23
23
 
24
24
  from stackit.observability.models.create_alert_config_route_payload_routes_inner import (
@@ -31,6 +31,11 @@ class UpdateAlertConfigRoutePayload(BaseModel):
31
31
  The root node of the routing tree.
32
32
  """
33
33
 
34
+ var_continue: Optional[StrictBool] = Field(
35
+ default=False,
36
+ description="Whether an alert should continue matching subsequent sibling nodes.",
37
+ alias="continue",
38
+ )
34
39
  group_by: Optional[List[Annotated[str, Field(min_length=1, strict=True, max_length=200)]]] = Field(
35
40
  default=None,
36
41
  description="The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping.",
@@ -71,6 +76,7 @@ class UpdateAlertConfigRoutePayload(BaseModel):
71
76
  default=None, description="Zero or more child routes."
72
77
  )
73
78
  __properties: ClassVar[List[str]] = [
79
+ "continue",
74
80
  "groupBy",
75
81
  "groupInterval",
76
82
  "groupWait",
@@ -139,6 +145,7 @@ class UpdateAlertConfigRoutePayload(BaseModel):
139
145
 
140
146
  _obj = cls.model_validate(
141
147
  {
148
+ "continue": obj.get("continue") if obj.get("continue") is not None else False,
142
149
  "groupBy": obj.get("groupBy"),
143
150
  "groupInterval": obj.get("groupInterval") if obj.get("groupInterval") is not None else "5m",
144
151
  "groupWait": obj.get("groupWait") if obj.get("groupWait") is not None else "30s",
@@ -18,7 +18,7 @@ import json
18
18
  import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool
22
22
  from typing_extensions import Annotated, Self
23
23
 
24
24
  from stackit.observability.models.create_alert_config_route_payload_routes_inner import (
@@ -31,6 +31,11 @@ class UpdateAlertConfigsPayloadRoute(BaseModel):
31
31
  The root node of the routing tree.
32
32
  """
33
33
 
34
+ var_continue: Optional[StrictBool] = Field(
35
+ default=False,
36
+ description="Whether an alert should continue matching subsequent sibling nodes.",
37
+ alias="continue",
38
+ )
34
39
  group_by: Optional[List[Annotated[str, Field(min_length=1, strict=True, max_length=200)]]] = Field(
35
40
  default=None,
36
41
  description="The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping.",
@@ -71,6 +76,7 @@ class UpdateAlertConfigsPayloadRoute(BaseModel):
71
76
  default=None, description="Zero or more child routes."
72
77
  )
73
78
  __properties: ClassVar[List[str]] = [
79
+ "continue",
74
80
  "groupBy",
75
81
  "groupInterval",
76
82
  "groupWait",
@@ -139,6 +145,7 @@ class UpdateAlertConfigsPayloadRoute(BaseModel):
139
145
 
140
146
  _obj = cls.model_validate(
141
147
  {
148
+ "continue": obj.get("continue") if obj.get("continue") is not None else False,
142
149
  "groupBy": obj.get("groupBy"),
143
150
  "groupInterval": obj.get("groupInterval") if obj.get("groupInterval") is not None else "5m",
144
151
  "groupWait": obj.get("groupWait") if obj.get("groupWait") is not None else "30s",