stackit-observability 0.8.0__tar.gz → 0.9.1__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 (114) hide show
  1. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/PKG-INFO +1 -1
  2. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/pyproject.toml +1 -1
  3. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/__init__.py +4 -0
  4. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/__init__.py +3 -0
  5. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_alert_config_receiver_payload_web_hook_configs_inner.py +8 -2
  6. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alert_configs_payload_route.py +4 -10
  7. stackit_observability-0.9.1/src/stackit/observability/models/update_alert_configs_payload_route_routes_inner.py +128 -0
  8. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/web_hook.py +3 -1
  9. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/LICENSE.md +0 -0
  10. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/NOTICE.txt +0 -0
  11. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/README.md +0 -0
  12. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/api/__init__.py +0 -0
  13. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/api/default_api.py +0 -0
  14. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/api_client.py +0 -0
  15. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/api_response.py +0 -0
  16. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/configuration.py +0 -0
  17. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/exceptions.py +0 -0
  18. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert.py +0 -0
  19. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert_config_receivers_response.py +0 -0
  20. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert_config_route_response.py +0 -0
  21. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert_group.py +0 -0
  22. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert_group_response.py +0 -0
  23. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert_groups_response.py +0 -0
  24. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert_rule.py +0 -0
  25. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert_rule_record.py +0 -0
  26. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/alert_rules_response.py +0 -0
  27. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/basic_auth.py +0 -0
  28. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_alert_config_receiver_payload.py +0 -0
  29. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_alert_config_receiver_payload_email_configs_inner.py +0 -0
  30. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_alert_config_receiver_payload_opsgenie_configs_inner.py +0 -0
  31. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_alert_config_route_payload.py +0 -0
  32. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_alert_config_route_payload_routes_inner.py +0 -0
  33. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_alertgroups_payload.py +0 -0
  34. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_alertrules_payload.py +0 -0
  35. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_credentials_payload.py +0 -0
  36. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_credentials_response.py +0 -0
  37. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_instance_payload.py +0 -0
  38. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_instance_response.py +0 -0
  39. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_logs_alertgroups_payload.py +0 -0
  40. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_scrape_config_payload.py +0 -0
  41. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_scrape_config_payload_basic_auth.py +0 -0
  42. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_scrape_config_payload_http_sd_configs_inner.py +0 -0
  43. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_scrape_config_payload_http_sd_configs_inner_oauth2.py +0 -0
  44. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_scrape_config_payload_http_sd_configs_inner_oauth2_tls_config.py +0 -0
  45. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_scrape_config_payload_metrics_relabel_configs_inner.py +0 -0
  46. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/create_scrape_config_payload_static_configs_inner.py +0 -0
  47. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/credentials.py +0 -0
  48. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/credentials_remote_write_config.py +0 -0
  49. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/credentials_remote_write_delete_response.py +0 -0
  50. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/delete_scrape_config_response.py +0 -0
  51. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/email_config.py +0 -0
  52. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/error.py +0 -0
  53. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/get_alert_configs_response.py +0 -0
  54. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/get_credentials_response.py +0 -0
  55. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/get_instance_response.py +0 -0
  56. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/get_metrics_storage_retention_response.py +0 -0
  57. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/get_scrape_config_response.py +0 -0
  58. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/grafana_configs.py +0 -0
  59. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/grafana_oauth.py +0 -0
  60. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/http_service_sd.py +0 -0
  61. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/inhibit_rules.py +0 -0
  62. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/instance.py +0 -0
  63. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/instance_response.py +0 -0
  64. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/instance_sensitive_data.py +0 -0
  65. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/job.py +0 -0
  66. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/list_acl_response.py +0 -0
  67. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/list_credentials_response.py +0 -0
  68. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/list_instances_response.py +0 -0
  69. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/list_scrape_configs_response.py +0 -0
  70. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/logs_config.py +0 -0
  71. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/logs_config_response.py +0 -0
  72. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/message.py +0 -0
  73. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/metrics_relabel_config.py +0 -0
  74. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/model_global.py +0 -0
  75. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/o_auth2.py +0 -0
  76. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/opsgenie_config.py +0 -0
  77. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/permission_denied.py +0 -0
  78. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/plan.py +0 -0
  79. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/plan_model.py +0 -0
  80. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/plans_response.py +0 -0
  81. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/project_instance_full.py +0 -0
  82. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/receiver.py +0 -0
  83. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/receivers.py +0 -0
  84. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/route.py +0 -0
  85. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/route_serializer.py +0 -0
  86. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/scrape_configs_response.py +0 -0
  87. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/service_keys_list.py +0 -0
  88. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/static_configs.py +0 -0
  89. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/tls_config.py +0 -0
  90. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/trace_config.py +0 -0
  91. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/traces_config_response.py +0 -0
  92. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_acl_payload.py +0 -0
  93. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alert_config_receiver_payload.py +0 -0
  94. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alert_config_route_payload.py +0 -0
  95. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alert_configs_payload.py +0 -0
  96. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alert_configs_payload_global.py +0 -0
  97. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alert_configs_payload_inhibit_rules.py +0 -0
  98. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alert_configs_payload_receivers_inner.py +0 -0
  99. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alert_configs_response.py +0 -0
  100. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alertgroup_payload.py +0 -0
  101. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alertgroups_request_inner.py +0 -0
  102. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_alertgroups_request_inner_rules_inner.py +0 -0
  103. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_credentials_remote_write_config_payload.py +0 -0
  104. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_grafana_configs_payload.py +0 -0
  105. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_grafana_configs_payload_generic_oauth.py +0 -0
  106. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_instance_payload.py +0 -0
  107. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_logs_alertgroup_payload.py +0 -0
  108. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_logs_configs_payload.py +0 -0
  109. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_metrics_storage_retention_payload.py +0 -0
  110. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_scrape_config_payload.py +0 -0
  111. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_scrape_config_payload_static_configs_inner.py +0 -0
  112. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/models/update_traces_configs_payload.py +0 -0
  113. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/py.typed +0 -0
  114. {stackit_observability-0.8.0 → stackit_observability-0.9.1}/src/stackit/observability/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stackit-observability
3
- Version: 0.8.0
3
+ Version: 0.9.1
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.8.0"
6
+ version = "v0.9.1"
7
7
  authors = [
8
8
  "STACKIT Developer Tools <developer-tools@stackit.cloud>",
9
9
  ]
@@ -112,6 +112,7 @@ __all__ = [
112
112
  "UpdateAlertConfigsPayloadInhibitRules",
113
113
  "UpdateAlertConfigsPayloadReceiversInner",
114
114
  "UpdateAlertConfigsPayloadRoute",
115
+ "UpdateAlertConfigsPayloadRouteRoutesInner",
115
116
  "UpdateAlertConfigsResponse",
116
117
  "UpdateAlertgroupPayload",
117
118
  "UpdateAlertgroupsRequestInner",
@@ -343,6 +344,9 @@ from stackit.observability.models.update_alert_configs_payload_receivers_inner i
343
344
  from stackit.observability.models.update_alert_configs_payload_route import (
344
345
  UpdateAlertConfigsPayloadRoute as UpdateAlertConfigsPayloadRoute,
345
346
  )
347
+ from stackit.observability.models.update_alert_configs_payload_route_routes_inner import (
348
+ UpdateAlertConfigsPayloadRouteRoutesInner as UpdateAlertConfigsPayloadRouteRoutesInner,
349
+ )
346
350
  from stackit.observability.models.update_alert_configs_response import (
347
351
  UpdateAlertConfigsResponse as UpdateAlertConfigsResponse,
348
352
  )
@@ -168,6 +168,9 @@ from stackit.observability.models.update_alert_configs_payload_receivers_inner i
168
168
  from stackit.observability.models.update_alert_configs_payload_route import (
169
169
  UpdateAlertConfigsPayloadRoute,
170
170
  )
171
+ from stackit.observability.models.update_alert_configs_payload_route_routes_inner import (
172
+ UpdateAlertConfigsPayloadRouteRoutesInner,
173
+ )
171
174
  from stackit.observability.models.update_alert_configs_response import (
172
175
  UpdateAlertConfigsResponse,
173
176
  )
@@ -27,9 +27,14 @@ class CreateAlertConfigReceiverPayloadWebHookConfigsInner(BaseModel):
27
27
  CreateAlertConfigReceiverPayloadWebHookConfigsInner
28
28
  """ # noqa: E501
29
29
 
30
+ google_chat: Optional[StrictBool] = Field(
31
+ default=False,
32
+ description="Google Chat webhooks require special handling. If you set this property to true, it is treated as such. `Additional Validators:` * When set to true, msTeams must be false.",
33
+ alias="googleChat",
34
+ )
30
35
  ms_teams: Optional[StrictBool] = Field(
31
36
  default=False,
32
- description="Microsoft Teams webhooks require special handling. If you set this property to true, it is treated as such",
37
+ description="Microsoft Teams webhooks require special handling. If you set this property to true, it is treated as such. `Additional Validators:` * When set to true, googleChat must be false.",
33
38
  alias="msTeams",
34
39
  )
35
40
  send_resolved: Optional[StrictBool] = Field(
@@ -39,7 +44,7 @@ class CreateAlertConfigReceiverPayloadWebHookConfigsInner(BaseModel):
39
44
  default=None,
40
45
  description="The endpoint to send HTTP POST requests to. `Additional Validators:` * must be a syntactically valid url address",
41
46
  )
42
- __properties: ClassVar[List[str]] = ["msTeams", "sendResolved", "url"]
47
+ __properties: ClassVar[List[str]] = ["googleChat", "msTeams", "sendResolved", "url"]
43
48
 
44
49
  model_config = ConfigDict(
45
50
  populate_by_name=True,
@@ -91,6 +96,7 @@ class CreateAlertConfigReceiverPayloadWebHookConfigsInner(BaseModel):
91
96
 
92
97
  _obj = cls.model_validate(
93
98
  {
99
+ "googleChat": obj.get("googleChat") if obj.get("googleChat") is not None else False,
94
100
  "msTeams": obj.get("msTeams") if obj.get("msTeams") is not None else False,
95
101
  "sendResolved": obj.get("sendResolved") if obj.get("sendResolved") is not None else True,
96
102
  "url": obj.get("url"),
@@ -21,8 +21,8 @@ from typing import Any, ClassVar, Dict, List, Optional, Set
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictBool
22
22
  from typing_extensions import Annotated, Self
23
23
 
24
- from stackit.observability.models.create_alert_config_route_payload_routes_inner import (
25
- CreateAlertConfigRoutePayloadRoutesInner,
24
+ from stackit.observability.models.update_alert_configs_payload_route_routes_inner import (
25
+ UpdateAlertConfigsPayloadRouteRoutesInner,
26
26
  )
27
27
 
28
28
 
@@ -60,10 +60,6 @@ class UpdateAlertConfigsPayloadRoute(BaseModel):
60
60
  description="map of key:value. A set of regex-matchers an alert has to fulfill to match the node. `Additional Validators:` * should not contain more than 5 keys * each key and value should not be longer than 200 characters",
61
61
  alias="matchRe",
62
62
  )
63
- matchers: Optional[List[Annotated[str, Field(min_length=1, strict=True, max_length=200)]]] = Field(
64
- default=None,
65
- description="A list of matchers that an alert has to fulfill to match the node. A matcher is a string with a syntax inspired by PromQL and OpenMetrics. The syntax of a matcher consists of three tokens: * A valid Prometheus label name. * One of =, !=, =~, or !~. = means equals, != means that the strings are not equal, =~ is used for equality of regex expressions and !~ is used for un-equality of regex expressions. They have the same meaning as known from PromQL selectors. * A UTF-8 string, which may be enclosed in double quotes. Before or after each token, there may be any amount of whitespace. `Additional Validators:` * should not contain more than 5 keys * each key and value should not be longer than 200 characters",
66
- )
67
63
  receiver: Annotated[str, Field(min_length=1, strict=True, max_length=200)] = Field(
68
64
  description="Receiver that should be one item of receivers `Additional Validators:` * must be a in name of receivers"
69
65
  )
@@ -72,7 +68,7 @@ class UpdateAlertConfigsPayloadRoute(BaseModel):
72
68
  description="How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). `Additional Validators:` * must be a valid time format",
73
69
  alias="repeatInterval",
74
70
  )
75
- routes: Optional[List[CreateAlertConfigRoutePayloadRoutesInner]] = Field(
71
+ routes: Optional[List[UpdateAlertConfigsPayloadRouteRoutesInner]] = Field(
76
72
  default=None, description="Zero or more child routes."
77
73
  )
78
74
  __properties: ClassVar[List[str]] = [
@@ -82,7 +78,6 @@ class UpdateAlertConfigsPayloadRoute(BaseModel):
82
78
  "groupWait",
83
79
  "match",
84
80
  "matchRe",
85
- "matchers",
86
81
  "receiver",
87
82
  "repeatInterval",
88
83
  "routes",
@@ -151,11 +146,10 @@ class UpdateAlertConfigsPayloadRoute(BaseModel):
151
146
  "groupWait": obj.get("groupWait") if obj.get("groupWait") is not None else "30s",
152
147
  "match": obj.get("match"),
153
148
  "matchRe": obj.get("matchRe"),
154
- "matchers": obj.get("matchers"),
155
149
  "receiver": obj.get("receiver"),
156
150
  "repeatInterval": obj.get("repeatInterval") if obj.get("repeatInterval") is not None else "4h",
157
151
  "routes": (
158
- [CreateAlertConfigRoutePayloadRoutesInner.from_dict(_item) for _item in obj["routes"]]
152
+ [UpdateAlertConfigsPayloadRouteRoutesInner.from_dict(_item) for _item in obj["routes"]]
159
153
  if obj.get("routes") is not None
160
154
  else None
161
155
  ),
@@ -0,0 +1,128 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ STACKIT Observability API
5
+
6
+ API endpoints for Observability on STACKIT
7
+
8
+ The version of the OpenAPI document: 1.1.1
9
+ Contact: stackit-argus@mail.schwarz
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+ from __future__ import annotations
16
+
17
+ import json
18
+ import pprint
19
+ from typing import Any, ClassVar, Dict, List, Optional, Set
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool
22
+ from typing_extensions import Annotated, Self
23
+
24
+
25
+ class UpdateAlertConfigsPayloadRouteRoutesInner(BaseModel):
26
+ """
27
+ As in one level above
28
+ """ # noqa: E501
29
+
30
+ var_continue: Optional[StrictBool] = Field(default=False, description="As in one level above", alias="continue")
31
+ group_by: Optional[List[Annotated[str, Field(min_length=1, strict=True, max_length=200)]]] = Field(
32
+ default=None, alias="groupBy"
33
+ )
34
+ group_interval: Optional[Annotated[str, Field(min_length=2, strict=True, max_length=8)]] = Field(
35
+ default=None, description="As in one level above", alias="groupInterval"
36
+ )
37
+ group_wait: Optional[Annotated[str, Field(strict=True, max_length=8)]] = Field(
38
+ default=None, description="As in one level above", alias="groupWait"
39
+ )
40
+ match: Optional[Dict[str, Any]] = Field(default=None, description="As in one level above")
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,
44
+ description="A list of matchers that an alert has to fulfill to match the node. A matcher is a string with a syntax inspired by PromQL and OpenMetrics. The syntax of a matcher consists of three tokens: * A valid Prometheus label name. * One of =, !=, =~, or !~. = means equals, != means that the strings are not equal, =~ is used for equality of regex expressions and !~ is used for un-equality of regex expressions. They have the same meaning as known from PromQL selectors. * A UTF-8 string, which may be enclosed in double quotes. Before or after each token, there may be any amount of whitespace. `Additional Validators:` * should not contain more than 5 keys * each key and value should not be longer than 200 characters",
45
+ )
46
+ receiver: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=100)]] = Field(
47
+ default=None, description="As in one level above"
48
+ )
49
+ repeat_interval: Optional[Annotated[str, Field(min_length=2, strict=True, max_length=8)]] = Field(
50
+ default=None, description="As in one level above", alias="repeatInterval"
51
+ )
52
+ routes: Optional[List[Dict[str, Any]]] = Field(default=None, description="Another child routes")
53
+ __properties: ClassVar[List[str]] = [
54
+ "continue",
55
+ "groupBy",
56
+ "groupInterval",
57
+ "groupWait",
58
+ "match",
59
+ "matchRe",
60
+ "matchers",
61
+ "receiver",
62
+ "repeatInterval",
63
+ "routes",
64
+ ]
65
+
66
+ model_config = ConfigDict(
67
+ populate_by_name=True,
68
+ validate_assignment=True,
69
+ protected_namespaces=(),
70
+ )
71
+
72
+ def to_str(self) -> str:
73
+ """Returns the string representation of the model using alias"""
74
+ return pprint.pformat(self.model_dump(by_alias=True))
75
+
76
+ def to_json(self) -> str:
77
+ """Returns the JSON representation of the model using alias"""
78
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
79
+ return json.dumps(self.to_dict())
80
+
81
+ @classmethod
82
+ def from_json(cls, json_str: str) -> Optional[Self]:
83
+ """Create an instance of UpdateAlertConfigsPayloadRouteRoutesInner from a JSON string"""
84
+ return cls.from_dict(json.loads(json_str))
85
+
86
+ def to_dict(self) -> Dict[str, Any]:
87
+ """Return the dictionary representation of the model using alias.
88
+
89
+ This has the following differences from calling pydantic's
90
+ `self.model_dump(by_alias=True)`:
91
+
92
+ * `None` is only added to the output dict for nullable fields that
93
+ were set at model initialization. Other fields with value `None`
94
+ are ignored.
95
+ """
96
+ excluded_fields: Set[str] = set([])
97
+
98
+ _dict = self.model_dump(
99
+ by_alias=True,
100
+ exclude=excluded_fields,
101
+ exclude_none=True,
102
+ )
103
+ return _dict
104
+
105
+ @classmethod
106
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
107
+ """Create an instance of UpdateAlertConfigsPayloadRouteRoutesInner from a dict"""
108
+ if obj is None:
109
+ return None
110
+
111
+ if not isinstance(obj, dict):
112
+ return cls.model_validate(obj)
113
+
114
+ _obj = cls.model_validate(
115
+ {
116
+ "continue": obj.get("continue") if obj.get("continue") is not None else False,
117
+ "groupBy": obj.get("groupBy"),
118
+ "groupInterval": obj.get("groupInterval"),
119
+ "groupWait": obj.get("groupWait"),
120
+ "match": obj.get("match"),
121
+ "matchRe": obj.get("matchRe"),
122
+ "matchers": obj.get("matchers"),
123
+ "receiver": obj.get("receiver"),
124
+ "repeatInterval": obj.get("repeatInterval"),
125
+ "routes": obj.get("routes"),
126
+ }
127
+ )
128
+ return _obj
@@ -27,10 +27,11 @@ class WebHook(BaseModel):
27
27
  WebHook
28
28
  """ # noqa: E501
29
29
 
30
+ google_chat: Optional[StrictBool] = Field(default=False, alias="googleChat")
30
31
  ms_teams: Optional[StrictBool] = Field(default=False, alias="msTeams")
31
32
  send_resolved: Optional[StrictBool] = Field(default=True, alias="sendResolved")
32
33
  url: Annotated[str, Field(min_length=1, strict=True, max_length=500)]
33
- __properties: ClassVar[List[str]] = ["msTeams", "sendResolved", "url"]
34
+ __properties: ClassVar[List[str]] = ["googleChat", "msTeams", "sendResolved", "url"]
34
35
 
35
36
  model_config = ConfigDict(
36
37
  populate_by_name=True,
@@ -82,6 +83,7 @@ class WebHook(BaseModel):
82
83
 
83
84
  _obj = cls.model_validate(
84
85
  {
86
+ "googleChat": obj.get("googleChat") if obj.get("googleChat") is not None else False,
85
87
  "msTeams": obj.get("msTeams") if obj.get("msTeams") is not None else False,
86
88
  "sendResolved": obj.get("sendResolved") if obj.get("sendResolved") is not None else True,
87
89
  "url": obj.get("url"),