gcore 0.2.0__py3-none-any.whl → 0.3.0__py3-none-any.whl
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.
Potentially problematic release.
This version of gcore might be problematic. Click here for more details.
- gcore/_base_client.py +22 -2
- gcore/_models.py +2 -0
- gcore/_types.py +2 -0
- gcore/_version.py +1 -1
- gcore/resources/cloud/baremetal/flavors.py +2 -2
- gcore/resources/cloud/baremetal/images.py +2 -2
- gcore/resources/cloud/baremetal/servers.py +46 -52
- gcore/resources/cloud/floating_ips.py +4 -4
- gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +8 -8
- gcore/resources/cloud/gpu_baremetal_clusters/images.py +2 -2
- gcore/resources/cloud/gpu_baremetal_clusters/servers.py +4 -4
- gcore/resources/cloud/inference/deployments/deployments.py +6 -6
- gcore/resources/cloud/instances/flavors.py +2 -2
- gcore/resources/cloud/instances/images.py +2 -2
- gcore/resources/cloud/instances/instances.py +62 -70
- gcore/resources/cloud/instances/interfaces.py +4 -4
- gcore/resources/cloud/load_balancers/flavors.py +2 -2
- gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +20 -20
- gcore/resources/cloud/load_balancers/listeners.py +14 -14
- gcore/resources/cloud/load_balancers/load_balancers.py +28 -24
- gcore/resources/cloud/load_balancers/pools/members.py +6 -6
- gcore/resources/cloud/networks/networks.py +4 -4
- gcore/resources/cloud/networks/subnets.py +6 -6
- gcore/resources/cloud/registries/registries.py +6 -10
- gcore/resources/cloud/registries/users.py +4 -10
- gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +10 -10
- gcore/resources/cloud/security_groups/security_groups.py +2 -2
- gcore/resources/cloud/ssh_keys.py +2 -2
- gcore/resources/cloud/tasks.py +98 -90
- gcore/resources/cloud/users/role_assignments.py +4 -4
- gcore/resources/cloud/volumes.py +18 -18
- gcore/resources/waap/__init__.py +98 -0
- gcore/resources/waap/advanced_rules.py +135 -0
- gcore/resources/waap/clients.py +135 -0
- gcore/resources/waap/custom_page_sets.py +805 -0
- gcore/resources/waap/domains/__init__.py +140 -0
- gcore/resources/waap/domains/advanced_rules.py +876 -0
- gcore/resources/waap/domains/analytics/__init__.py +33 -0
- gcore/resources/waap/domains/analytics/analytics.py +676 -0
- gcore/resources/waap/domains/analytics/requests.py +378 -0
- gcore/resources/waap/domains/api_discovery/__init__.py +33 -0
- gcore/resources/waap/domains/api_discovery/api_discovery.py +530 -0
- gcore/resources/waap/domains/api_discovery/scan_results.py +352 -0
- gcore/resources/waap/domains/api_path_groups.py +163 -0
- gcore/resources/waap/domains/api_paths.py +771 -0
- gcore/resources/waap/domains/custom_rules.py +889 -0
- gcore/resources/waap/domains/domains.py +399 -0
- gcore/resources/waap/domains/firewall_rules.py +884 -0
- gcore/resources/waap/domains/insight_silences.py +689 -0
- gcore/resources/waap/domains/insights.py +425 -0
- gcore/resources/waap/domains/policies.py +173 -0
- gcore/resources/waap/domains/settings.py +5 -5
- gcore/resources/waap/ip_info.py +1017 -0
- gcore/resources/waap/organizations.py +217 -0
- gcore/resources/waap/statistics.py +225 -0
- gcore/resources/waap/tags.py +233 -0
- gcore/resources/waap/waap.py +289 -0
- gcore/types/cloud/allowed_address_pairs.py +2 -2
- gcore/types/cloud/baremetal/baremetal_server.py +1 -1
- gcore/types/cloud/baremetal/image_list_params.py +1 -1
- gcore/types/cloud/baremetal/server_create_params.py +9 -9
- gcore/types/cloud/baremetal/server_list_params.py +8 -8
- gcore/types/cloud/baremetal/server_rebuild_params.py +1 -1
- gcore/types/cloud/baremetal_flavor.py +3 -3
- gcore/types/cloud/container_probe_config.py +1 -1
- gcore/types/cloud/container_probe_config_create_param.py +1 -1
- gcore/types/cloud/container_scale_triggers.py +2 -2
- gcore/types/cloud/floating_ip_detailed.py +1 -1
- gcore/types/cloud/floating_ip_list_params.py +2 -2
- gcore/types/cloud/gpu_baremetal_cluster.py +1 -1
- gcore/types/cloud/gpu_baremetal_cluster_create_params.py +2 -2
- gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +1 -1
- gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +1 -1
- gcore/types/cloud/gpu_baremetal_cluster_server.py +1 -1
- gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +1 -1
- gcore/types/cloud/gpu_baremetal_clusters/server_attach_interface_params.py +10 -10
- gcore/types/cloud/gpu_baremetal_flavor.py +3 -3
- gcore/types/cloud/image.py +1 -1
- gcore/types/cloud/inference/deployment_create_params.py +4 -4
- gcore/types/cloud/inference/deployment_update_params.py +6 -6
- gcore/types/cloud/inference/inference.py +2 -4
- gcore/types/cloud/instance.py +1 -1
- gcore/types/cloud/instance_create_params.py +8 -10
- gcore/types/cloud/instance_list_params.py +8 -8
- gcore/types/cloud/instances/flavor_list_suitable_params.py +4 -1
- gcore/types/cloud/instances/image_list_params.py +1 -1
- gcore/types/cloud/instances/instance_flavor.py +3 -3
- gcore/types/cloud/instances/interface_attach_params.py +10 -10
- gcore/types/cloud/load_balancer_create_params.py +17 -15
- gcore/types/cloud/load_balancer_flavor_detail.py +3 -3
- gcore/types/cloud/load_balancer_l7_policy.py +5 -5
- gcore/types/cloud/load_balancer_list_params.py +5 -5
- gcore/types/cloud/load_balancer_listener_detail.py +4 -4
- gcore/types/cloud/load_balancers/l7_policy_create_params.py +5 -5
- gcore/types/cloud/load_balancers/l7_policy_replace_params.py +5 -5
- gcore/types/cloud/load_balancers/listener_create_params.py +4 -4
- gcore/types/cloud/load_balancers/listener_update_params.py +3 -3
- gcore/types/cloud/load_balancers/pool_create_params.py +4 -4
- gcore/types/cloud/load_balancers/pool_update_params.py +4 -4
- gcore/types/cloud/load_balancers/pools/member_add_params.py +3 -3
- gcore/types/cloud/member.py +2 -2
- gcore/types/cloud/network.py +2 -2
- gcore/types/cloud/network_details.py +2 -2
- gcore/types/cloud/network_list_params.py +2 -2
- gcore/types/cloud/networks/subnet_create_params.py +1 -1
- gcore/types/cloud/networks/subnet_list_params.py +2 -2
- gcore/types/cloud/region.py +4 -4
- gcore/types/cloud/registries/user_create_multiple_params.py +3 -5
- gcore/types/cloud/registries/user_create_params.py +3 -5
- gcore/types/cloud/registry_create_params.py +3 -5
- gcore/types/cloud/reserved_fixed_ip_create_params.py +2 -2
- gcore/types/cloud/reserved_fixed_ip_list_params.py +3 -3
- gcore/types/cloud/security_group_list_params.py +1 -1
- gcore/types/cloud/session_persistence.py +1 -1
- gcore/types/cloud/ssh_key_created.py +3 -6
- gcore/types/cloud/task.py +1 -1
- gcore/types/cloud/task_list_params.py +49 -45
- gcore/types/cloud/users/role_assignment_create_params.py +1 -1
- gcore/types/cloud/users/role_assignment_update_params.py +1 -1
- gcore/types/cloud/volume_create_params.py +6 -6
- gcore/types/cloud/volume_list_params.py +3 -3
- gcore/types/waap/__init__.py +98 -2
- gcore/types/waap/client_me_response.py +34 -0
- gcore/types/waap/custom_page_set_create_params.py +35 -0
- gcore/types/waap/custom_page_set_list_params.py +25 -0
- gcore/types/waap/custom_page_set_preview_params.py +34 -0
- gcore/types/waap/custom_page_set_update_params.py +35 -0
- gcore/types/waap/domain_list_rule_sets_response.py +10 -0
- gcore/types/waap/domains/__init__.py +42 -0
- gcore/types/waap/domains/advanced_rule_create_params.py +80 -0
- gcore/types/waap/domains/advanced_rule_list_params.py +58 -0
- gcore/types/waap/domains/advanced_rule_update_params.py +83 -0
- gcore/types/waap/domains/analytics/__init__.py +5 -0
- gcore/types/waap/domains/analytics/request_list_params.py +53 -0
- gcore/types/waap/domains/analytics_get_event_statistics_params.py +34 -0
- gcore/types/waap/domains/analytics_list_ddos_attacks_params.py +28 -0
- gcore/types/waap/domains/analytics_list_ddos_info_params.py +31 -0
- gcore/types/waap/domains/analytics_list_event_traffic_params.py +26 -0
- gcore/types/waap/domains/analytics_list_event_traffic_response.py +10 -0
- gcore/types/waap/domains/api_discovery/__init__.py +7 -0
- gcore/types/waap/domains/api_discovery/scan_result_get_response.py +29 -0
- gcore/types/waap/domains/api_discovery/scan_result_list_params.py +41 -0
- gcore/types/waap/domains/api_discovery/scan_result_list_response.py +29 -0
- gcore/types/waap/domains/api_discovery_get_settings_response.py +36 -0
- gcore/types/waap/domains/api_discovery_scan_openapi_response.py +10 -0
- gcore/types/waap/domains/api_discovery_update_settings_params.py +34 -0
- gcore/types/waap/domains/api_discovery_update_settings_response.py +36 -0
- gcore/types/waap/domains/api_discovery_upload_openapi_params.py +19 -0
- gcore/types/waap/domains/api_discovery_upload_openapi_response.py +10 -0
- gcore/types/waap/domains/api_path_create_params.py +31 -0
- gcore/types/waap/domains/api_path_create_response.py +50 -0
- gcore/types/waap/domains/api_path_get_response.py +50 -0
- gcore/types/waap/domains/api_path_group_list_response.py +12 -0
- gcore/types/waap/domains/api_path_list_params.py +62 -0
- gcore/types/waap/domains/api_path_list_response.py +50 -0
- gcore/types/waap/domains/api_path_update_params.py +29 -0
- gcore/types/waap/domains/custom_rule_create_params.py +368 -0
- gcore/types/waap/domains/custom_rule_delete_multiple_params.py +13 -0
- gcore/types/waap/domains/custom_rule_list_params.py +35 -0
- gcore/types/waap/domains/custom_rule_update_params.py +371 -0
- gcore/types/waap/domains/firewall_rule_create_params.py +75 -0
- gcore/types/waap/domains/firewall_rule_delete_multiple_params.py +13 -0
- gcore/types/waap/domains/firewall_rule_list_params.py +33 -0
- gcore/types/waap/domains/firewall_rule_update_params.py +78 -0
- gcore/types/waap/domains/insight_list_params.py +34 -0
- gcore/types/waap/domains/insight_replace_params.py +17 -0
- gcore/types/waap/domains/insight_silence_create_params.py +28 -0
- gcore/types/waap/domains/insight_silence_list_params.py +33 -0
- gcore/types/waap/domains/insight_silence_update_params.py +28 -0
- gcore/types/waap/domains/setting_update_params.py +7 -0
- gcore/types/waap/ip_info_get_attack_time_series_params.py +12 -0
- gcore/types/waap/ip_info_get_attack_time_series_response.py +10 -0
- gcore/types/waap/ip_info_get_blocked_requests_params.py +15 -0
- gcore/types/waap/ip_info_get_blocked_requests_response.py +10 -0
- gcore/types/waap/ip_info_get_counts_params.py +19 -0
- gcore/types/waap/ip_info_get_ddos_attack_series_params.py +12 -0
- gcore/types/waap/ip_info_get_params.py +12 -0
- gcore/types/waap/ip_info_get_top_sessions_params.py +15 -0
- gcore/types/waap/ip_info_get_top_sessions_response.py +10 -0
- gcore/types/waap/ip_info_get_top_urls_params.py +15 -0
- gcore/types/waap/ip_info_get_top_urls_response.py +10 -0
- gcore/types/waap/ip_info_get_top_user_agents_params.py +15 -0
- gcore/types/waap/ip_info_get_top_user_agents_response.py +10 -0
- gcore/types/waap/ip_info_list_attacked_countries_params.py +12 -0
- gcore/types/waap/ip_info_list_attacked_countries_response.py +10 -0
- gcore/types/waap/organization_list_params.py +22 -0
- gcore/types/waap/statistic_get_usage_series_params.py +25 -0
- gcore/types/waap/tag_list_params.py +28 -0
- gcore/types/waap/waap_advanced_rule.py +83 -0
- gcore/types/waap/waap_advanced_rule_descriptor.py +49 -0
- gcore/types/waap/waap_advanced_rule_descriptor_list.py +15 -0
- gcore/types/waap/waap_block_csrf_page_data.py +28 -0
- gcore/types/waap/waap_block_csrf_page_data_param.py +28 -0
- gcore/types/waap/waap_block_page_data.py +28 -0
- gcore/types/waap/waap_block_page_data_param.py +28 -0
- gcore/types/waap/waap_blocked_statistics.py +36 -0
- gcore/types/waap/waap_captcha_page_data.py +31 -0
- gcore/types/waap/waap_captcha_page_data_param.py +31 -0
- gcore/types/waap/waap_common_tag.py +16 -0
- gcore/types/waap/waap_cookie_disabled_page_data.py +18 -0
- gcore/types/waap/waap_cookie_disabled_page_data_param.py +18 -0
- gcore/types/waap/waap_count_statistics.py +36 -0
- gcore/types/waap/waap_custom_page_preview.py +10 -0
- gcore/types/waap/waap_custom_page_set.py +36 -0
- gcore/types/waap/waap_custom_rule.py +373 -0
- gcore/types/waap/waap_customer_rule_state.py +7 -0
- gcore/types/waap/waap_ddos_attack.py +16 -0
- gcore/types/waap/waap_ddos_info.py +17 -0
- gcore/types/waap/{waap_api_urls.py → waap_domain_api_settings.py} +9 -2
- gcore/types/waap/waap_domain_policy.py +29 -0
- gcore/types/waap/{waap_domain_settings.py → waap_domain_settings_model.py} +4 -4
- gcore/types/waap/waap_event_statistics.py +15 -0
- gcore/types/waap/waap_firewall_rule.py +78 -0
- gcore/types/waap/waap_get_account_overview_response.py +34 -0
- gcore/types/waap/waap_handshake_page_data.py +25 -0
- gcore/types/waap/waap_handshake_page_data_param.py +25 -0
- gcore/types/waap/waap_insight.py +38 -0
- gcore/types/waap/waap_insight_silence.py +28 -0
- gcore/types/waap/waap_insight_silence_sort_by.py +9 -0
- gcore/types/waap/waap_insight_sort_by.py +20 -0
- gcore/types/waap/waap_insight_status.py +7 -0
- gcore/types/waap/waap_ip_country_attack.py +16 -0
- gcore/types/waap/waap_ip_ddos_info_model.py +23 -0
- gcore/types/waap/waap_ip_info.py +57 -0
- gcore/types/waap/waap_ip_info_counts.py +16 -0
- gcore/types/waap/waap_javascript_disabled_page_data.py +18 -0
- gcore/types/waap/waap_javascript_disabled_page_data_param.py +18 -0
- gcore/types/waap/waap_network_details.py +17 -0
- gcore/types/waap/waap_organization.py +13 -0
- gcore/types/waap/waap_page_type.py +9 -0
- gcore/types/waap/waap_paginated_custom_page_set.py +22 -0
- gcore/types/waap/waap_paginated_ddos_attack.py +22 -0
- gcore/types/waap/waap_paginated_ddos_info.py +22 -0
- gcore/types/waap/waap_paginated_request_summary.py +22 -0
- gcore/types/waap/waap_pattern_matched_tag.py +37 -0
- gcore/types/waap/waap_policy_action.py +7 -0
- gcore/types/waap/waap_policy_mode.py +10 -0
- gcore/types/waap/waap_request_details.py +92 -0
- gcore/types/waap/waap_request_organization.py +13 -0
- gcore/types/waap/waap_request_summary.py +59 -0
- gcore/types/waap/waap_resolution.py +7 -0
- gcore/types/waap/waap_rule_action_type.py +7 -0
- gcore/types/waap/waap_rule_blocked_requests.py +16 -0
- gcore/types/waap/waap_rule_set.py +41 -0
- gcore/types/waap/waap_statistic_item.py +18 -0
- gcore/types/waap/waap_statistics_series.py +16 -0
- gcore/types/waap/waap_tag.py +16 -0
- gcore/types/waap/waap_time_series_attack.py +23 -0
- gcore/types/waap/waap_top_session.py +24 -0
- gcore/types/waap/waap_top_url.py +13 -0
- gcore/types/waap/waap_top_user_agent.py +13 -0
- gcore/types/waap/waap_traffic_metrics.py +68 -0
- gcore/types/waap/waap_traffic_type.py +28 -0
- gcore/types/waap/waap_user_agent_details.py +40 -0
- {gcore-0.2.0.dist-info → gcore-0.3.0.dist-info}/METADATA +1 -1
- {gcore-0.2.0.dist-info → gcore-0.3.0.dist-info}/RECORD +258 -109
- {gcore-0.2.0.dist-info → gcore-0.3.0.dist-info}/WHEEL +0 -0
- {gcore-0.2.0.dist-info → gcore-0.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["WaapCaptchaPageDataParam"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapCaptchaPageDataParam(TypedDict, total=False):
|
|
11
|
+
enabled: Required[bool]
|
|
12
|
+
"""Indicates whether the custom custom page is active or inactive"""
|
|
13
|
+
|
|
14
|
+
error: str
|
|
15
|
+
"""Error message"""
|
|
16
|
+
|
|
17
|
+
header: str
|
|
18
|
+
"""The text to display in the header of the custom page"""
|
|
19
|
+
|
|
20
|
+
logo: str
|
|
21
|
+
"""
|
|
22
|
+
Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
|
|
23
|
+
height 130px. This should be a base 64 encoding of the full HTML img tag
|
|
24
|
+
compatible image, with the header included.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
text: str
|
|
28
|
+
"""The text to display in the body of the custom page"""
|
|
29
|
+
|
|
30
|
+
title: str
|
|
31
|
+
"""The text to display in the title of the custom page"""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["WaapCommonTag"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class WaapCommonTag(BaseModel):
|
|
9
|
+
description: str
|
|
10
|
+
"""Tag description information"""
|
|
11
|
+
|
|
12
|
+
display_name: str
|
|
13
|
+
"""The tag's display name"""
|
|
14
|
+
|
|
15
|
+
tag: str
|
|
16
|
+
"""Tag name"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["WaapCookieDisabledPageData"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapCookieDisabledPageData(BaseModel):
|
|
11
|
+
enabled: bool
|
|
12
|
+
"""Indicates whether the custom custom page is active or inactive"""
|
|
13
|
+
|
|
14
|
+
header: Optional[str] = None
|
|
15
|
+
"""The text to display in the header of the custom page"""
|
|
16
|
+
|
|
17
|
+
text: Optional[str] = None
|
|
18
|
+
"""The text to display in the body of the custom page"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["WaapCookieDisabledPageDataParam"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapCookieDisabledPageDataParam(TypedDict, total=False):
|
|
11
|
+
enabled: Required[bool]
|
|
12
|
+
"""Indicates whether the custom custom page is active or inactive"""
|
|
13
|
+
|
|
14
|
+
header: str
|
|
15
|
+
"""The text to display in the header of the custom page"""
|
|
16
|
+
|
|
17
|
+
text: str
|
|
18
|
+
"""The text to display in the body of the custom page"""
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Union
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["WaapCountStatistics"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapCountStatistics(BaseModel):
|
|
11
|
+
action: List[List[Union[str, int]]]
|
|
12
|
+
"""A collection of event counts per action.
|
|
13
|
+
|
|
14
|
+
The first item is the action's abbreviation/full action name, and the second
|
|
15
|
+
item is the number of events
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
country: List[List[Union[str, int]]]
|
|
19
|
+
"""A collection of event counts per country of origin.
|
|
20
|
+
|
|
21
|
+
The first item is the country's ISO 3166-1 alpha-2, and the second item is the
|
|
22
|
+
number of events
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
org: List[List[Union[str, int]]]
|
|
26
|
+
"""A collection of event counts per organization that owns the event's client IP.
|
|
27
|
+
|
|
28
|
+
The first item is the organization's name, and the second item is the number of
|
|
29
|
+
events
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
rule_name: List[List[Union[str, int]]]
|
|
33
|
+
"""A collection of event counts per rule that triggered the event.
|
|
34
|
+
|
|
35
|
+
The first item is the rule's name, and the second item is the number of events
|
|
36
|
+
"""
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["WaapCustomPagePreview"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class WaapCustomPagePreview(BaseModel):
|
|
9
|
+
html: str
|
|
10
|
+
"""HTML content of the custom page"""
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
from .waap_block_page_data import WaapBlockPageData
|
|
7
|
+
from .waap_captcha_page_data import WaapCaptchaPageData
|
|
8
|
+
from .waap_handshake_page_data import WaapHandshakePageData
|
|
9
|
+
from .waap_block_csrf_page_data import WaapBlockCsrfPageData
|
|
10
|
+
from .waap_cookie_disabled_page_data import WaapCookieDisabledPageData
|
|
11
|
+
from .waap_javascript_disabled_page_data import WaapJavascriptDisabledPageData
|
|
12
|
+
|
|
13
|
+
__all__ = ["WaapCustomPageSet"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class WaapCustomPageSet(BaseModel):
|
|
17
|
+
id: int
|
|
18
|
+
"""The ID of the custom page set"""
|
|
19
|
+
|
|
20
|
+
name: str
|
|
21
|
+
"""Name of the custom page set"""
|
|
22
|
+
|
|
23
|
+
block: Optional[WaapBlockPageData] = None
|
|
24
|
+
|
|
25
|
+
block_csrf: Optional[WaapBlockCsrfPageData] = None
|
|
26
|
+
|
|
27
|
+
captcha: Optional[WaapCaptchaPageData] = None
|
|
28
|
+
|
|
29
|
+
cookie_disabled: Optional[WaapCookieDisabledPageData] = None
|
|
30
|
+
|
|
31
|
+
domains: Optional[List[int]] = None
|
|
32
|
+
"""List of domain IDs that are associated with this page set"""
|
|
33
|
+
|
|
34
|
+
handshake: Optional[WaapHandshakePageData] = None
|
|
35
|
+
|
|
36
|
+
javascript_disabled: Optional[WaapJavascriptDisabledPageData] = None
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from ..._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"WaapCustomRule",
|
|
10
|
+
"Action",
|
|
11
|
+
"ActionBlock",
|
|
12
|
+
"ActionTag",
|
|
13
|
+
"Condition",
|
|
14
|
+
"ConditionContentType",
|
|
15
|
+
"ConditionCountry",
|
|
16
|
+
"ConditionFileExtension",
|
|
17
|
+
"ConditionHeader",
|
|
18
|
+
"ConditionHeaderExists",
|
|
19
|
+
"ConditionHTTPMethod",
|
|
20
|
+
"ConditionIP",
|
|
21
|
+
"ConditionIPRange",
|
|
22
|
+
"ConditionOrganization",
|
|
23
|
+
"ConditionOwnerTypes",
|
|
24
|
+
"ConditionRequestRate",
|
|
25
|
+
"ConditionResponseHeader",
|
|
26
|
+
"ConditionResponseHeaderExists",
|
|
27
|
+
"ConditionSessionRequestCount",
|
|
28
|
+
"ConditionTags",
|
|
29
|
+
"ConditionURL",
|
|
30
|
+
"ConditionUserAgent",
|
|
31
|
+
"ConditionUserDefinedTags",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ActionBlock(BaseModel):
|
|
36
|
+
action_duration: Optional[str] = None
|
|
37
|
+
"""How long a rule's block action will apply to subsequent requests.
|
|
38
|
+
|
|
39
|
+
Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
|
|
40
|
+
'd' to represent time format (seconds, minutes, hours, or days)
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
status_code: Optional[Literal[403, 405, 418, 429]] = None
|
|
44
|
+
"""Designates the HTTP status code to deliver when a request is blocked."""
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class ActionTag(BaseModel):
|
|
48
|
+
tags: List[str]
|
|
49
|
+
"""The list of user defined tags to tag the request with"""
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class Action(BaseModel):
|
|
53
|
+
allow: Optional[object] = None
|
|
54
|
+
"""The WAAP allowed the request"""
|
|
55
|
+
|
|
56
|
+
block: Optional[ActionBlock] = None
|
|
57
|
+
"""
|
|
58
|
+
WAAP block action behavior could be configured with response status code and
|
|
59
|
+
action duration.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
captcha: Optional[object] = None
|
|
63
|
+
"""The WAAP presented the user with a captcha"""
|
|
64
|
+
|
|
65
|
+
handshake: Optional[object] = None
|
|
66
|
+
"""The WAAP performed automatic browser validation"""
|
|
67
|
+
|
|
68
|
+
monitor: Optional[object] = None
|
|
69
|
+
"""The WAAP monitored the request but took no action"""
|
|
70
|
+
|
|
71
|
+
tag: Optional[ActionTag] = None
|
|
72
|
+
"""WAAP tag action gets a list of tags to tag the request scope with"""
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class ConditionContentType(BaseModel):
|
|
76
|
+
content_type: List[str]
|
|
77
|
+
"""The list of content types to match against"""
|
|
78
|
+
|
|
79
|
+
negation: Optional[bool] = None
|
|
80
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class ConditionCountry(BaseModel):
|
|
84
|
+
country_code: List[str]
|
|
85
|
+
"""
|
|
86
|
+
A list of ISO 3166-1 alpha-2 formatted strings representing the countries to
|
|
87
|
+
match against
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
negation: Optional[bool] = None
|
|
91
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
class ConditionFileExtension(BaseModel):
|
|
95
|
+
file_extension: List[str]
|
|
96
|
+
"""The list of file extensions to match against"""
|
|
97
|
+
|
|
98
|
+
negation: Optional[bool] = None
|
|
99
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class ConditionHeader(BaseModel):
|
|
103
|
+
header: str
|
|
104
|
+
"""The request header name"""
|
|
105
|
+
|
|
106
|
+
value: str
|
|
107
|
+
"""The request header value"""
|
|
108
|
+
|
|
109
|
+
match_type: Optional[Literal["Exact", "Contains"]] = None
|
|
110
|
+
"""The type of matching condition for header and value."""
|
|
111
|
+
|
|
112
|
+
negation: Optional[bool] = None
|
|
113
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class ConditionHeaderExists(BaseModel):
|
|
117
|
+
header: str
|
|
118
|
+
"""The request header name"""
|
|
119
|
+
|
|
120
|
+
negation: Optional[bool] = None
|
|
121
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
class ConditionHTTPMethod(BaseModel):
|
|
125
|
+
http_method: Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]
|
|
126
|
+
"""HTTP methods and descriptions Methods from the following RFCs are all observed:
|
|
127
|
+
|
|
128
|
+
- RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
|
|
129
|
+
- RFC 5789: PATCH Method for HTTP
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
negation: Optional[bool] = None
|
|
133
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class ConditionIP(BaseModel):
|
|
137
|
+
ip_address: str
|
|
138
|
+
"""A single IPv4 or IPv6 address"""
|
|
139
|
+
|
|
140
|
+
negation: Optional[bool] = None
|
|
141
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
class ConditionIPRange(BaseModel):
|
|
145
|
+
lower_bound: str
|
|
146
|
+
"""The lower bound IPv4 or IPv6 address to match against"""
|
|
147
|
+
|
|
148
|
+
upper_bound: str
|
|
149
|
+
"""The upper bound IPv4 or IPv6 address to match against"""
|
|
150
|
+
|
|
151
|
+
negation: Optional[bool] = None
|
|
152
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
class ConditionOrganization(BaseModel):
|
|
156
|
+
organization: str
|
|
157
|
+
"""The organization to match against"""
|
|
158
|
+
|
|
159
|
+
negation: Optional[bool] = None
|
|
160
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
class ConditionOwnerTypes(BaseModel):
|
|
164
|
+
negation: Optional[bool] = None
|
|
165
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
166
|
+
|
|
167
|
+
owner_types: Optional[
|
|
168
|
+
List[
|
|
169
|
+
Literal[
|
|
170
|
+
"COMMERCIAL",
|
|
171
|
+
"EDUCATIONAL",
|
|
172
|
+
"GOVERNMENT",
|
|
173
|
+
"HOSTING_SERVICES",
|
|
174
|
+
"ISP",
|
|
175
|
+
"MOBILE_NETWORK",
|
|
176
|
+
"NETWORK",
|
|
177
|
+
"RESERVED",
|
|
178
|
+
]
|
|
179
|
+
]
|
|
180
|
+
] = None
|
|
181
|
+
"""
|
|
182
|
+
Match the type of organization that owns the IP address making an incoming
|
|
183
|
+
request
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
class ConditionRequestRate(BaseModel):
|
|
188
|
+
path_pattern: str
|
|
189
|
+
"""A regular expression matching the URL path of the incoming request"""
|
|
190
|
+
|
|
191
|
+
requests: int
|
|
192
|
+
"""
|
|
193
|
+
The number of incoming requests over the given time that can trigger a request
|
|
194
|
+
rate condition
|
|
195
|
+
"""
|
|
196
|
+
|
|
197
|
+
time: int
|
|
198
|
+
"""
|
|
199
|
+
The number of seconds that the WAAP measures incoming requests over before
|
|
200
|
+
triggering a request rate condition
|
|
201
|
+
"""
|
|
202
|
+
|
|
203
|
+
http_methods: Optional[
|
|
204
|
+
List[Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]]
|
|
205
|
+
] = None
|
|
206
|
+
"""Possible HTTP request methods that can trigger a request rate condition"""
|
|
207
|
+
|
|
208
|
+
ips: Optional[List[str]] = None
|
|
209
|
+
"""A list of source IPs that can trigger a request rate condition"""
|
|
210
|
+
|
|
211
|
+
user_defined_tag: Optional[str] = None
|
|
212
|
+
"""
|
|
213
|
+
A user-defined tag that can be included in incoming requests and used to trigger
|
|
214
|
+
a request rate condition
|
|
215
|
+
"""
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
class ConditionResponseHeader(BaseModel):
|
|
219
|
+
header: str
|
|
220
|
+
"""The response header name"""
|
|
221
|
+
|
|
222
|
+
value: str
|
|
223
|
+
"""The response header value"""
|
|
224
|
+
|
|
225
|
+
match_type: Optional[Literal["Exact", "Contains"]] = None
|
|
226
|
+
"""The type of matching condition for header and value."""
|
|
227
|
+
|
|
228
|
+
negation: Optional[bool] = None
|
|
229
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
class ConditionResponseHeaderExists(BaseModel):
|
|
233
|
+
header: str
|
|
234
|
+
"""The response header name"""
|
|
235
|
+
|
|
236
|
+
negation: Optional[bool] = None
|
|
237
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
class ConditionSessionRequestCount(BaseModel):
|
|
241
|
+
request_count: int
|
|
242
|
+
"""The number of dynamic requests in the session"""
|
|
243
|
+
|
|
244
|
+
negation: Optional[bool] = None
|
|
245
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
class ConditionTags(BaseModel):
|
|
249
|
+
tags: List[str]
|
|
250
|
+
"""A list of tags to match against the request tags"""
|
|
251
|
+
|
|
252
|
+
negation: Optional[bool] = None
|
|
253
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
class ConditionURL(BaseModel):
|
|
257
|
+
url: str
|
|
258
|
+
"""The pattern to match against the request URL.
|
|
259
|
+
|
|
260
|
+
If `match_type` is `Regex` the value must be a valid regular expression that
|
|
261
|
+
does not use lookahead or lookbehind constructs
|
|
262
|
+
"""
|
|
263
|
+
|
|
264
|
+
match_type: Optional[Literal["Exact", "Contains", "Regex"]] = None
|
|
265
|
+
"""The type of matching condition."""
|
|
266
|
+
|
|
267
|
+
negation: Optional[bool] = None
|
|
268
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
class ConditionUserAgent(BaseModel):
|
|
272
|
+
user_agent: str
|
|
273
|
+
"""The user agent value to match"""
|
|
274
|
+
|
|
275
|
+
match_type: Optional[Literal["Exact", "Contains"]] = None
|
|
276
|
+
"""The type of matching condition."""
|
|
277
|
+
|
|
278
|
+
negation: Optional[bool] = None
|
|
279
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
class ConditionUserDefinedTags(BaseModel):
|
|
283
|
+
tags: List[str]
|
|
284
|
+
"""A list of user-defined tags to match against the request tags"""
|
|
285
|
+
|
|
286
|
+
negation: Optional[bool] = None
|
|
287
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
class Condition(BaseModel):
|
|
291
|
+
content_type: Optional[ConditionContentType] = None
|
|
292
|
+
"""Match the requested Content-Type"""
|
|
293
|
+
|
|
294
|
+
country: Optional[ConditionCountry] = None
|
|
295
|
+
"""Match the country that the request originated from"""
|
|
296
|
+
|
|
297
|
+
file_extension: Optional[ConditionFileExtension] = None
|
|
298
|
+
"""Match the incoming file extension"""
|
|
299
|
+
|
|
300
|
+
header: Optional[ConditionHeader] = None
|
|
301
|
+
"""Match an incoming request header"""
|
|
302
|
+
|
|
303
|
+
header_exists: Optional[ConditionHeaderExists] = None
|
|
304
|
+
"""Match when an incoming request header is present"""
|
|
305
|
+
|
|
306
|
+
http_method: Optional[ConditionHTTPMethod] = None
|
|
307
|
+
"""Match the incoming HTTP method"""
|
|
308
|
+
|
|
309
|
+
ip: Optional[ConditionIP] = None
|
|
310
|
+
"""Match the incoming request against a single IP address"""
|
|
311
|
+
|
|
312
|
+
ip_range: Optional[ConditionIPRange] = None
|
|
313
|
+
"""Match the incoming request against an IP range"""
|
|
314
|
+
|
|
315
|
+
organization: Optional[ConditionOrganization] = None
|
|
316
|
+
"""
|
|
317
|
+
Match the organization the request originated from, as determined by a WHOIS
|
|
318
|
+
lookup of the requesting IP
|
|
319
|
+
"""
|
|
320
|
+
|
|
321
|
+
owner_types: Optional[ConditionOwnerTypes] = None
|
|
322
|
+
"""
|
|
323
|
+
Match the type of organization that owns the IP address making an incoming
|
|
324
|
+
request
|
|
325
|
+
"""
|
|
326
|
+
|
|
327
|
+
request_rate: Optional[ConditionRequestRate] = None
|
|
328
|
+
"""Match the rate at which requests come in that match certain conditions"""
|
|
329
|
+
|
|
330
|
+
response_header: Optional[ConditionResponseHeader] = None
|
|
331
|
+
"""Match a response header"""
|
|
332
|
+
|
|
333
|
+
response_header_exists: Optional[ConditionResponseHeaderExists] = None
|
|
334
|
+
"""Match when a response header is present"""
|
|
335
|
+
|
|
336
|
+
session_request_count: Optional[ConditionSessionRequestCount] = None
|
|
337
|
+
"""Match the number of dynamic page requests made in a WAAP session"""
|
|
338
|
+
|
|
339
|
+
tags: Optional[ConditionTags] = None
|
|
340
|
+
"""Matches requests based on specified tags"""
|
|
341
|
+
|
|
342
|
+
url: Optional[ConditionURL] = None
|
|
343
|
+
"""Match the incoming request URL"""
|
|
344
|
+
|
|
345
|
+
user_agent: Optional[ConditionUserAgent] = None
|
|
346
|
+
"""Match the user agent making the request"""
|
|
347
|
+
|
|
348
|
+
user_defined_tags: Optional[ConditionUserDefinedTags] = None
|
|
349
|
+
"""Matches requests based on user-defined tags"""
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
class WaapCustomRule(BaseModel):
|
|
353
|
+
id: int
|
|
354
|
+
"""The unique identifier for the rule"""
|
|
355
|
+
|
|
356
|
+
action: Action
|
|
357
|
+
"""The action that a WAAP rule takes when triggered"""
|
|
358
|
+
|
|
359
|
+
conditions: List[Condition]
|
|
360
|
+
"""The conditions required for the WAAP engine to trigger the rule.
|
|
361
|
+
|
|
362
|
+
Rules may have between 1 and 5 conditions. All conditions must pass for the rule
|
|
363
|
+
to trigger
|
|
364
|
+
"""
|
|
365
|
+
|
|
366
|
+
enabled: bool
|
|
367
|
+
"""Whether or not the rule is enabled"""
|
|
368
|
+
|
|
369
|
+
name: str
|
|
370
|
+
"""The name assigned to the rule"""
|
|
371
|
+
|
|
372
|
+
description: Optional[str] = None
|
|
373
|
+
"""The description assigned to the rule"""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from ..._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["WaapDDOSAttack"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WaapDDOSAttack(BaseModel):
|
|
12
|
+
end_time: Optional[datetime] = None
|
|
13
|
+
"""End time of DDoS attack"""
|
|
14
|
+
|
|
15
|
+
start_time: Optional[datetime] = None
|
|
16
|
+
"""Start time of DDoS attack"""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing_extensions import Literal
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["WaapDDOSInfo"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapDDOSInfo(BaseModel):
|
|
11
|
+
count: int
|
|
12
|
+
"""The number of requests made"""
|
|
13
|
+
|
|
14
|
+
identity: str
|
|
15
|
+
"""The value for the grouped by type"""
|
|
16
|
+
|
|
17
|
+
type: Literal["URL", "IP", "User-Agent"]
|
|
@@ -4,12 +4,19 @@ from typing import List, Optional
|
|
|
4
4
|
|
|
5
5
|
from ..._models import BaseModel
|
|
6
6
|
|
|
7
|
-
__all__ = ["
|
|
7
|
+
__all__ = ["WaapDomainAPISettings"]
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class
|
|
10
|
+
class WaapDomainAPISettings(BaseModel):
|
|
11
11
|
api_urls: Optional[List[str]] = None
|
|
12
12
|
"""The API URLs for a domain.
|
|
13
13
|
|
|
14
14
|
If your domain has a common base URL for all API paths, it can be set here
|
|
15
15
|
"""
|
|
16
|
+
|
|
17
|
+
is_api: Optional[bool] = None
|
|
18
|
+
"""Indicates if the domain is an API domain.
|
|
19
|
+
|
|
20
|
+
All requests to an API domain are treated as API requests. If this is set to
|
|
21
|
+
true then the `api_urls` field is ignored.
|
|
22
|
+
"""
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
from .waap_policy_action import WaapPolicyAction
|
|
5
|
+
|
|
6
|
+
__all__ = ["WaapDomainPolicy"]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class WaapDomainPolicy(BaseModel):
|
|
10
|
+
id: str
|
|
11
|
+
"""Unique identifier for the security rule"""
|
|
12
|
+
|
|
13
|
+
action: WaapPolicyAction
|
|
14
|
+
"""The action taken by the WAAP upon rule activation."""
|
|
15
|
+
|
|
16
|
+
description: str
|
|
17
|
+
"""Detailed description of the security rule"""
|
|
18
|
+
|
|
19
|
+
group: str
|
|
20
|
+
"""The rule set group name to which the rule belongs"""
|
|
21
|
+
|
|
22
|
+
mode: bool
|
|
23
|
+
"""Indicates if the security rule is active"""
|
|
24
|
+
|
|
25
|
+
name: str
|
|
26
|
+
"""Name of the security rule"""
|
|
27
|
+
|
|
28
|
+
rule_set_id: int
|
|
29
|
+
"""Identifier of the rule set to which the rule belongs"""
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
3
|
from ..._models import BaseModel
|
|
4
|
-
from .
|
|
4
|
+
from .waap_domain_api_settings import WaapDomainAPISettings
|
|
5
5
|
from .waap_domain_ddos_settings import WaapDomainDDOSSettings
|
|
6
6
|
|
|
7
|
-
__all__ = ["
|
|
7
|
+
__all__ = ["WaapDomainSettingsModel"]
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class
|
|
11
|
-
api:
|
|
10
|
+
class WaapDomainSettingsModel(BaseModel):
|
|
11
|
+
api: WaapDomainAPISettings
|
|
12
12
|
"""API settings of a domain"""
|
|
13
13
|
|
|
14
14
|
ddos: WaapDomainDDOSSettings
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
from .waap_count_statistics import WaapCountStatistics
|
|
5
|
+
from .waap_blocked_statistics import WaapBlockedStatistics
|
|
6
|
+
|
|
7
|
+
__all__ = ["WaapEventStatistics"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapEventStatistics(BaseModel):
|
|
11
|
+
blocked: WaapBlockedStatistics
|
|
12
|
+
"""A collection of total numbers of events with blocked results per criteria"""
|
|
13
|
+
|
|
14
|
+
count: WaapCountStatistics
|
|
15
|
+
"""A collection of total numbers of events per criteria"""
|