mirror of
https://github.com/thousandeyes/thousandeyes-sdk-python.git
synced 2026-02-04 02:05:30 +00:00
1551 lines
70 KiB
Python
1551 lines
70 KiB
Python
# coding: utf-8
|
||
|
||
"""
|
||
Alerts API
|
||
|
||
You can manage the following alert functionalities on the ThousandEyes platform using the Alerts API: * **Alerts**: Retrieve alert details. Alerts are assigned to tests through alert rules. * **Alert Rules**: Conditions that you configure in order to highlight or be notified of events of interest in your ThousandEyes tests. When an alert rule’s conditions are met, the associated alert is triggered and the alert becomes active. It remains active until the alert is cleared. Alert rules are reusable across multiple tests.. * **Alert Suppression Windows**: Suppress alerts for tests during periods such as planned maintenance. Windows can be one-time events or recurring events to handle periodic occurrences such as monthly downtime for maintenance. For more information about the alerts, see [Alerts](https://docs.thousandeyes.com/product-documentation/alerts).
|
||
|
||
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
||
|
||
Do not edit the class manually.
|
||
""" # noqa: E501
|
||
|
||
import warnings
|
||
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
||
from typing import Any, Dict, List, Optional, Tuple, Union
|
||
from typing_extensions import Annotated
|
||
from importlib.metadata import version
|
||
|
||
import thousandeyes_sdk.alerts.models
|
||
|
||
from pydantic import Field, StrictStr
|
||
from typing import Optional
|
||
from typing_extensions import Annotated
|
||
from thousandeyes_sdk.alerts.models.rule import Rule
|
||
from thousandeyes_sdk.alerts.models.rule_detail import RuleDetail
|
||
from thousandeyes_sdk.alerts.models.rule_detail_update import RuleDetailUpdate
|
||
from thousandeyes_sdk.alerts.models.rules import Rules
|
||
|
||
from thousandeyes_sdk.core.api_client import ApiClient, RequestSerialized
|
||
from thousandeyes_sdk.core.api_response import ApiResponse
|
||
|
||
from thousandeyes_sdk.core.rest import RESTResponseType
|
||
|
||
|
||
class AlertRulesApi:
|
||
"""NOTE: This class is auto generated by OpenAPI Generator
|
||
Ref: https://openapi-generator.tech
|
||
|
||
Do not edit the class manually.
|
||
"""
|
||
|
||
def __init__(self, api_client=None) -> None:
|
||
if api_client is None:
|
||
api_client = ApiClient.get_default()
|
||
api_client.user_agent = "ThousandEyesSDK-Python/{0}".format(version("thousandeyes-sdk-alerts"))
|
||
self.api_client = api_client
|
||
|
||
|
||
@validate_call
|
||
def create_alert_rule(
|
||
self,
|
||
rule_detail_update: RuleDetailUpdate,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> Rule:
|
||
"""Create alert rule
|
||
|
||
Creates a new alert rule in your account, using the provided POST data. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. The `Edit alert rules` permission is required to create an alert rule. Note: Assigning an alert rule to a test during creation requires the `Edit tests` permission.
|
||
|
||
:param rule_detail_update: (required)
|
||
:type rule_detail_update: RuleDetailUpdate
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._create_alert_rule_serialize(
|
||
rule_detail_update=rule_detail_update,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'201': "Rule",
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def create_alert_rule_with_http_info(
|
||
self,
|
||
rule_detail_update: RuleDetailUpdate,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[Rule]:
|
||
"""Create alert rule
|
||
|
||
Creates a new alert rule in your account, using the provided POST data. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. The `Edit alert rules` permission is required to create an alert rule. Note: Assigning an alert rule to a test during creation requires the `Edit tests` permission.
|
||
|
||
:param rule_detail_update: (required)
|
||
:type rule_detail_update: RuleDetailUpdate
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._create_alert_rule_serialize(
|
||
rule_detail_update=rule_detail_update,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'201': "Rule",
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def create_alert_rule_without_preload_content(
|
||
self,
|
||
rule_detail_update: RuleDetailUpdate,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Create alert rule
|
||
|
||
Creates a new alert rule in your account, using the provided POST data. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. The `Edit alert rules` permission is required to create an alert rule. Note: Assigning an alert rule to a test during creation requires the `Edit tests` permission.
|
||
|
||
:param rule_detail_update: (required)
|
||
:type rule_detail_update: RuleDetailUpdate
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._create_alert_rule_serialize(
|
||
rule_detail_update=rule_detail_update,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'201': "Rule",
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _create_alert_rule_serialize(
|
||
self,
|
||
rule_detail_update,
|
||
aid,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[str, Union[str, bytes]] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
# process the query parameters
|
||
if aid is not None:
|
||
|
||
_query_params.append(('aid', aid))
|
||
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
if rule_detail_update is not None:
|
||
_body_params = rule_detail_update
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/hal+json',
|
||
'application/json',
|
||
'application/problem+json'
|
||
]
|
||
)
|
||
|
||
# set the HTTP header `Content-Type`
|
||
if _content_type:
|
||
_header_params['Content-Type'] = _content_type
|
||
else:
|
||
_default_content_type = (
|
||
self.api_client.select_header_content_type(
|
||
[
|
||
'application/json'
|
||
]
|
||
)
|
||
)
|
||
if _default_content_type is not None:
|
||
_header_params['Content-Type'] = _default_content_type
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
'BearerAuth'
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='POST',
|
||
resource_path='/alerts/rules',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|
||
|
||
|
||
@validate_call
|
||
def delete_alert_rule(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> None:
|
||
"""Delete alert rule
|
||
|
||
Deletes an alert rule from your account. Users must have both `Edit alert rules` and `Edit tests` permissions, especially if the rule is linked to any tests. Without these permissions, an error occurs. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._delete_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'204': None,
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def delete_alert_rule_with_http_info(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[None]:
|
||
"""Delete alert rule
|
||
|
||
Deletes an alert rule from your account. Users must have both `Edit alert rules` and `Edit tests` permissions, especially if the rule is linked to any tests. Without these permissions, an error occurs. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._delete_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'204': None,
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def delete_alert_rule_without_preload_content(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Delete alert rule
|
||
|
||
Deletes an alert rule from your account. Users must have both `Edit alert rules` and `Edit tests` permissions, especially if the rule is linked to any tests. Without these permissions, an error occurs. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._delete_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'204': None,
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _delete_alert_rule_serialize(
|
||
self,
|
||
rule_id,
|
||
aid,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[str, Union[str, bytes]] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
if rule_id is not None:
|
||
_path_params['ruleId'] = rule_id
|
||
# process the query parameters
|
||
if aid is not None:
|
||
|
||
_query_params.append(('aid', aid))
|
||
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/json',
|
||
'application/problem+json'
|
||
]
|
||
)
|
||
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
'BearerAuth'
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='DELETE',
|
||
resource_path='/alerts/rules/{ruleId}',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|
||
|
||
|
||
@validate_call
|
||
def get_alert_rule(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RuleDetail:
|
||
"""Retrieve alert rule
|
||
|
||
Returns detailed information about an alert rule using the `ruleId`. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. If the `ruleId` doesn’t exist or is inaccessible by your account, an empty response is returned.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "RuleDetail",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def get_alert_rule_with_http_info(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[RuleDetail]:
|
||
"""Retrieve alert rule
|
||
|
||
Returns detailed information about an alert rule using the `ruleId`. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. If the `ruleId` doesn’t exist or is inaccessible by your account, an empty response is returned.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "RuleDetail",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def get_alert_rule_without_preload_content(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Retrieve alert rule
|
||
|
||
Returns detailed information about an alert rule using the `ruleId`. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. If the `ruleId` doesn’t exist or is inaccessible by your account, an empty response is returned.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "RuleDetail",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _get_alert_rule_serialize(
|
||
self,
|
||
rule_id,
|
||
aid,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[str, Union[str, bytes]] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
if rule_id is not None:
|
||
_path_params['ruleId'] = rule_id
|
||
# process the query parameters
|
||
if aid is not None:
|
||
|
||
_query_params.append(('aid', aid))
|
||
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/hal+json',
|
||
'application/json',
|
||
'application/problem+json'
|
||
]
|
||
)
|
||
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
'BearerAuth'
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='GET',
|
||
resource_path='/alerts/rules/{ruleId}',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|
||
|
||
|
||
@validate_call
|
||
def get_alerts_rules(
|
||
self,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> Rules:
|
||
"""List alert rules
|
||
|
||
Returns a list of alert rules. Default rules for each test type are indicated with a boolean response (true or false); these default alert rules automatically apply to their respective test types. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests.
|
||
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_alerts_rules_serialize(
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "Rules",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def get_alerts_rules_with_http_info(
|
||
self,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[Rules]:
|
||
"""List alert rules
|
||
|
||
Returns a list of alert rules. Default rules for each test type are indicated with a boolean response (true or false); these default alert rules automatically apply to their respective test types. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests.
|
||
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_alerts_rules_serialize(
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "Rules",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def get_alerts_rules_without_preload_content(
|
||
self,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""List alert rules
|
||
|
||
Returns a list of alert rules. Default rules for each test type are indicated with a boolean response (true or false); these default alert rules automatically apply to their respective test types. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests.
|
||
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._get_alerts_rules_serialize(
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "Rules",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _get_alerts_rules_serialize(
|
||
self,
|
||
aid,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[str, Union[str, bytes]] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
# process the query parameters
|
||
if aid is not None:
|
||
|
||
_query_params.append(('aid', aid))
|
||
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/hal+json',
|
||
'application/json',
|
||
'application/problem+json'
|
||
]
|
||
)
|
||
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
'BearerAuth'
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='GET',
|
||
resource_path='/alerts/rules',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|
||
|
||
|
||
@validate_call
|
||
def update_alert_rule(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
rule_detail_update: RuleDetailUpdate,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> Rule:
|
||
"""Update alert rule
|
||
|
||
Modifies an existing alert rule in your account, using the provided POST data. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. The `Edit alert rules` permission is required to modify an alert rule. Note: Assigning an alert rule to a test during creation requires the `Edit tests` permission.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param rule_detail_update: (required)
|
||
:type rule_detail_update: RuleDetailUpdate
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._update_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
rule_detail_update=rule_detail_update,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "Rule",
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
).data
|
||
|
||
|
||
@validate_call
|
||
def update_alert_rule_with_http_info(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
rule_detail_update: RuleDetailUpdate,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> ApiResponse[Rule]:
|
||
"""Update alert rule
|
||
|
||
Modifies an existing alert rule in your account, using the provided POST data. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. The `Edit alert rules` permission is required to modify an alert rule. Note: Assigning an alert rule to a test during creation requires the `Edit tests` permission.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param rule_detail_update: (required)
|
||
:type rule_detail_update: RuleDetailUpdate
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._update_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
rule_detail_update=rule_detail_update,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "Rule",
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
response_data.read()
|
||
return self.api_client.response_deserialize(
|
||
response_data=response_data,
|
||
response_types_map=_response_types_map,
|
||
models=thousandeyes_sdk.alerts.models,
|
||
)
|
||
|
||
|
||
@validate_call
|
||
def update_alert_rule_without_preload_content(
|
||
self,
|
||
rule_id: Annotated[StrictStr, Field(description="Unique alert rule ID.")],
|
||
rule_detail_update: RuleDetailUpdate,
|
||
aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None,
|
||
_request_timeout: Union[
|
||
None,
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Tuple[
|
||
Annotated[StrictFloat, Field(gt=0)],
|
||
Annotated[StrictFloat, Field(gt=0)]
|
||
]
|
||
] = None,
|
||
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
||
_content_type: Optional[StrictStr] = None,
|
||
_headers: Optional[Dict[StrictStr, Any]] = None,
|
||
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
||
) -> RESTResponseType:
|
||
"""Update alert rule
|
||
|
||
Modifies an existing alert rule in your account, using the provided POST data. This endpoint is limited to alert rules for Network & App Synthetics tests and Routing tests. The `Edit alert rules` permission is required to modify an alert rule. Note: Assigning an alert rule to a test during creation requires the `Edit tests` permission.
|
||
|
||
:param rule_id: Unique alert rule ID. (required)
|
||
:type rule_id: str
|
||
:param rule_detail_update: (required)
|
||
:type rule_detail_update: RuleDetailUpdate
|
||
:param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.
|
||
:type aid: str
|
||
:param _request_timeout: timeout setting for this request. If one
|
||
number provided, it will be total request
|
||
timeout. It can also be a pair (tuple) of
|
||
(connection, read) timeouts.
|
||
:type _request_timeout: int, tuple(int, int), optional
|
||
:param _request_auth: set to override the auth_settings for an a single
|
||
request; this effectively ignores the
|
||
authentication in the spec for a single request.
|
||
:type _request_auth: dict, optional
|
||
:param _content_type: force content-type for the request.
|
||
:type _content_type: str, Optional
|
||
:param _headers: set to override the headers for a single
|
||
request; this effectively ignores the headers
|
||
in the spec for a single request.
|
||
:type _headers: dict, optional
|
||
:param _host_index: set to override the host_index for a single
|
||
request; this effectively ignores the host_index
|
||
in the spec for a single request.
|
||
:type _host_index: int, optional
|
||
:return: Returns the result object.
|
||
""" # noqa: E501
|
||
|
||
_param = self._update_alert_rule_serialize(
|
||
rule_id=rule_id,
|
||
rule_detail_update=rule_detail_update,
|
||
aid=aid,
|
||
_request_auth=_request_auth,
|
||
_content_type=_content_type,
|
||
_headers=_headers,
|
||
_host_index=_host_index
|
||
)
|
||
|
||
_response_types_map: Dict[str, Optional[str]] = {
|
||
'200': "Rule",
|
||
'400': "ValidationError",
|
||
'401': "UnauthorizedError",
|
||
'403': "Error",
|
||
'404': "Error",
|
||
'429': "Error",
|
||
'500': "Error",
|
||
}
|
||
response_data = self.api_client.call_api(
|
||
*_param,
|
||
_request_timeout=_request_timeout
|
||
)
|
||
return response_data.response
|
||
|
||
|
||
def _update_alert_rule_serialize(
|
||
self,
|
||
rule_id,
|
||
rule_detail_update,
|
||
aid,
|
||
_request_auth,
|
||
_content_type,
|
||
_headers,
|
||
_host_index,
|
||
) -> RequestSerialized:
|
||
|
||
_host = None
|
||
|
||
_collection_formats: Dict[str, str] = {
|
||
}
|
||
|
||
_path_params: Dict[str, str] = {}
|
||
_query_params: List[Tuple[str, str]] = []
|
||
_header_params: Dict[str, Optional[str]] = _headers or {}
|
||
_form_params: List[Tuple[str, str]] = []
|
||
_files: Dict[str, Union[str, bytes]] = {}
|
||
_body_params: Optional[bytes] = None
|
||
|
||
# process the path parameters
|
||
if rule_id is not None:
|
||
_path_params['ruleId'] = rule_id
|
||
# process the query parameters
|
||
if aid is not None:
|
||
|
||
_query_params.append(('aid', aid))
|
||
|
||
# process the header parameters
|
||
# process the form parameters
|
||
# process the body parameter
|
||
if rule_detail_update is not None:
|
||
_body_params = rule_detail_update
|
||
|
||
|
||
# set the HTTP header `Accept`
|
||
_header_params['Accept'] = self.api_client.select_header_accept(
|
||
[
|
||
'application/hal+json',
|
||
'application/json',
|
||
'application/problem+json'
|
||
]
|
||
)
|
||
|
||
# set the HTTP header `Content-Type`
|
||
if _content_type:
|
||
_header_params['Content-Type'] = _content_type
|
||
else:
|
||
_default_content_type = (
|
||
self.api_client.select_header_content_type(
|
||
[
|
||
'application/json'
|
||
]
|
||
)
|
||
)
|
||
if _default_content_type is not None:
|
||
_header_params['Content-Type'] = _default_content_type
|
||
|
||
# authentication setting
|
||
_auth_settings: List[str] = [
|
||
'BearerAuth'
|
||
]
|
||
|
||
return self.api_client.param_serialize(
|
||
method='PUT',
|
||
resource_path='/alerts/rules/{ruleId}',
|
||
path_params=_path_params,
|
||
query_params=_query_params,
|
||
header_params=_header_params,
|
||
body=_body_params,
|
||
post_params=_form_params,
|
||
files=_files,
|
||
auth_settings=_auth_settings,
|
||
collection_formats=_collection_formats,
|
||
_host=_host,
|
||
_request_auth=_request_auth
|
||
)
|
||
|
||
|