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,78 @@
|
|
|
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__ = ["WaapFirewallRule", "Action", "ActionBlock", "Condition", "ConditionIP", "ConditionIPRange"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ActionBlock(BaseModel):
|
|
12
|
+
action_duration: Optional[str] = None
|
|
13
|
+
"""How long a rule's block action will apply to subsequent requests.
|
|
14
|
+
|
|
15
|
+
Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
|
|
16
|
+
'd' to represent time format (seconds, minutes, hours, or days)
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
status_code: Optional[Literal[403, 405, 418, 429]] = None
|
|
20
|
+
"""Designates the HTTP status code to deliver when a request is blocked."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class Action(BaseModel):
|
|
24
|
+
allow: Optional[object] = None
|
|
25
|
+
"""The WAAP allowed the request"""
|
|
26
|
+
|
|
27
|
+
block: Optional[ActionBlock] = None
|
|
28
|
+
"""
|
|
29
|
+
WAAP block action behavior could be configured with response status code and
|
|
30
|
+
action duration.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class ConditionIP(BaseModel):
|
|
35
|
+
ip_address: str
|
|
36
|
+
"""A single IPv4 or IPv6 address"""
|
|
37
|
+
|
|
38
|
+
negation: Optional[bool] = None
|
|
39
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class ConditionIPRange(BaseModel):
|
|
43
|
+
lower_bound: str
|
|
44
|
+
"""The lower bound IPv4 or IPv6 address to match against"""
|
|
45
|
+
|
|
46
|
+
upper_bound: str
|
|
47
|
+
"""The upper bound IPv4 or IPv6 address to match against"""
|
|
48
|
+
|
|
49
|
+
negation: Optional[bool] = None
|
|
50
|
+
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class Condition(BaseModel):
|
|
54
|
+
ip: Optional[ConditionIP] = None
|
|
55
|
+
"""Match the incoming request against a single IP address"""
|
|
56
|
+
|
|
57
|
+
ip_range: Optional[ConditionIPRange] = None
|
|
58
|
+
"""Match the incoming request against an IP range"""
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class WaapFirewallRule(BaseModel):
|
|
62
|
+
id: int
|
|
63
|
+
"""The unique identifier of the rule"""
|
|
64
|
+
|
|
65
|
+
action: Action
|
|
66
|
+
"""The action that a firewall rule takes when triggered"""
|
|
67
|
+
|
|
68
|
+
conditions: List[Condition]
|
|
69
|
+
"""The condition required for the WAAP engine to trigger the rule."""
|
|
70
|
+
|
|
71
|
+
enabled: bool
|
|
72
|
+
"""Whether or not the rule is enabled"""
|
|
73
|
+
|
|
74
|
+
name: str
|
|
75
|
+
"""The name assigned to the rule"""
|
|
76
|
+
|
|
77
|
+
description: Optional[str] = None
|
|
78
|
+
"""The description assigned to the rule"""
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, List, Optional
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["WaapGetAccountOverviewResponse", "Quotas", "Service"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Quotas(BaseModel):
|
|
11
|
+
allowed: int
|
|
12
|
+
"""The maximum allowed number of this resource"""
|
|
13
|
+
|
|
14
|
+
current: int
|
|
15
|
+
"""The current number of this resource"""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Service(BaseModel):
|
|
19
|
+
enabled: bool
|
|
20
|
+
"""Whether the service is enabled"""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class WaapGetAccountOverviewResponse(BaseModel):
|
|
24
|
+
id: Optional[int] = None
|
|
25
|
+
"""The client ID"""
|
|
26
|
+
|
|
27
|
+
features: List[str]
|
|
28
|
+
"""List of enabled features"""
|
|
29
|
+
|
|
30
|
+
quotas: Dict[str, Quotas]
|
|
31
|
+
"""Quotas for the client"""
|
|
32
|
+
|
|
33
|
+
service: Service
|
|
34
|
+
"""Information about the WAAP service status"""
|
|
@@ -0,0 +1,25 @@
|
|
|
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__ = ["WaapHandshakePageData"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapHandshakePageData(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
|
+
logo: Optional[str] = None
|
|
18
|
+
"""
|
|
19
|
+
Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
|
|
20
|
+
height 130px. This should be a base 64 encoding of the full HTML img tag
|
|
21
|
+
compatible image, with the header included.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
title: Optional[str] = None
|
|
25
|
+
"""The text to display in the title of the custom page"""
|
|
@@ -0,0 +1,25 @@
|
|
|
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__ = ["WaapHandshakePageDataParam"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapHandshakePageDataParam(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
|
+
logo: str
|
|
18
|
+
"""
|
|
19
|
+
Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
|
|
20
|
+
height 130px. This should be a base 64 encoding of the full HTML img tag
|
|
21
|
+
compatible image, with the header included.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
title: str
|
|
25
|
+
"""The text to display in the title of the custom page"""
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from ..._models import BaseModel
|
|
7
|
+
from .waap_insight_status import WaapInsightStatus
|
|
8
|
+
|
|
9
|
+
__all__ = ["WaapInsight"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class WaapInsight(BaseModel):
|
|
13
|
+
id: str
|
|
14
|
+
"""A generated unique identifier for the insight"""
|
|
15
|
+
|
|
16
|
+
description: str
|
|
17
|
+
"""The description of the insight"""
|
|
18
|
+
|
|
19
|
+
first_seen: datetime
|
|
20
|
+
"""The date and time the insight was first seen in ISO 8601 format"""
|
|
21
|
+
|
|
22
|
+
insight_type: str
|
|
23
|
+
"""The type of the insight represented as a slug"""
|
|
24
|
+
|
|
25
|
+
labels: Dict[str, str]
|
|
26
|
+
"""A hash table of label names and values that apply to the insight"""
|
|
27
|
+
|
|
28
|
+
last_seen: datetime
|
|
29
|
+
"""The date and time the insight was last seen in ISO 8601 format"""
|
|
30
|
+
|
|
31
|
+
last_status_change: datetime
|
|
32
|
+
"""The date and time the insight was last seen in ISO 8601 format"""
|
|
33
|
+
|
|
34
|
+
recommendation: str
|
|
35
|
+
"""The recommended action to perform to resolve the insight"""
|
|
36
|
+
|
|
37
|
+
status: WaapInsightStatus
|
|
38
|
+
"""The different statuses an insight can have"""
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from ..._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["WaapInsightSilence"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WaapInsightSilence(BaseModel):
|
|
12
|
+
id: str
|
|
13
|
+
"""A generated unique identifier for the silence"""
|
|
14
|
+
|
|
15
|
+
author: str
|
|
16
|
+
"""The author of the silence"""
|
|
17
|
+
|
|
18
|
+
comment: str
|
|
19
|
+
"""A comment explaining the reason for the silence"""
|
|
20
|
+
|
|
21
|
+
expire_at: Optional[datetime] = None
|
|
22
|
+
"""The date and time the silence expires in ISO 8601 format"""
|
|
23
|
+
|
|
24
|
+
insight_type: str
|
|
25
|
+
"""The slug of the insight type"""
|
|
26
|
+
|
|
27
|
+
labels: Dict[str, str]
|
|
28
|
+
"""A hash table of label names and values that apply to the insight silence"""
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing_extensions import Literal, TypeAlias
|
|
4
|
+
|
|
5
|
+
__all__ = ["WaapInsightSilenceSortBy"]
|
|
6
|
+
|
|
7
|
+
WaapInsightSilenceSortBy: TypeAlias = Literal[
|
|
8
|
+
"id", "-id", "insight_type", "-insight_type", "comment", "-comment", "author", "-author", "expire_at", "-expire_at"
|
|
9
|
+
]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing_extensions import Literal, TypeAlias
|
|
4
|
+
|
|
5
|
+
__all__ = ["WaapInsightSortBy"]
|
|
6
|
+
|
|
7
|
+
WaapInsightSortBy: TypeAlias = Literal[
|
|
8
|
+
"id",
|
|
9
|
+
"-id",
|
|
10
|
+
"insight_type",
|
|
11
|
+
"-insight_type",
|
|
12
|
+
"first_seen",
|
|
13
|
+
"-first_seen",
|
|
14
|
+
"last_seen",
|
|
15
|
+
"-last_seen",
|
|
16
|
+
"last_status_change",
|
|
17
|
+
"-last_status_change",
|
|
18
|
+
"status",
|
|
19
|
+
"-status",
|
|
20
|
+
]
|
|
@@ -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__ = ["WaapIPCountryAttack"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class WaapIPCountryAttack(BaseModel):
|
|
9
|
+
count: int
|
|
10
|
+
"""The number of attacks from the specified IP address to the country"""
|
|
11
|
+
|
|
12
|
+
country: str
|
|
13
|
+
"""
|
|
14
|
+
An ISO 3166-1 alpha-2 formatted string representing the country that was
|
|
15
|
+
attacked
|
|
16
|
+
"""
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["WaapIPDDOSInfoModel", "TimeSery"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TimeSery(BaseModel):
|
|
11
|
+
count: int
|
|
12
|
+
"""The number of attacks"""
|
|
13
|
+
|
|
14
|
+
timestamp: int
|
|
15
|
+
"""The timestamp of the time series item as a POSIX timestamp"""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class WaapIPDDOSInfoModel(BaseModel):
|
|
19
|
+
botnet_client: bool
|
|
20
|
+
"""Indicates if the IP is tagged as a botnet client"""
|
|
21
|
+
|
|
22
|
+
time_series: List[TimeSery]
|
|
23
|
+
"""The time series data for the DDoS attacks from the IP address"""
|
|
@@ -0,0 +1,57 @@
|
|
|
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__ = ["WaapIPInfo", "Whois"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Whois(BaseModel):
|
|
12
|
+
abuse_mail: Optional[str] = None
|
|
13
|
+
"""The abuse mail"""
|
|
14
|
+
|
|
15
|
+
cidr: Optional[int] = None
|
|
16
|
+
"""The CIDR"""
|
|
17
|
+
|
|
18
|
+
country: Optional[str] = None
|
|
19
|
+
"""The country"""
|
|
20
|
+
|
|
21
|
+
net_description: Optional[str] = None
|
|
22
|
+
"""The network description"""
|
|
23
|
+
|
|
24
|
+
net_name: Optional[str] = None
|
|
25
|
+
"""The network name"""
|
|
26
|
+
|
|
27
|
+
net_range: Optional[str] = None
|
|
28
|
+
"""The network range"""
|
|
29
|
+
|
|
30
|
+
net_type: Optional[str] = None
|
|
31
|
+
"""The network type"""
|
|
32
|
+
|
|
33
|
+
org_id: Optional[str] = None
|
|
34
|
+
"""The organization ID"""
|
|
35
|
+
|
|
36
|
+
org_name: Optional[str] = None
|
|
37
|
+
"""The organization name"""
|
|
38
|
+
|
|
39
|
+
owner_type: Optional[str] = None
|
|
40
|
+
"""The owner type"""
|
|
41
|
+
|
|
42
|
+
rir: Optional[str] = None
|
|
43
|
+
"""The RIR"""
|
|
44
|
+
|
|
45
|
+
state: Optional[str] = None
|
|
46
|
+
"""The state"""
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class WaapIPInfo(BaseModel):
|
|
50
|
+
risk_score: Literal["NO_RISK", "LOW", "MEDIUM", "HIGH", "EXTREME", "NOT_ENOUGH_DATA"]
|
|
51
|
+
"""The risk score of the IP address"""
|
|
52
|
+
|
|
53
|
+
tags: List[str]
|
|
54
|
+
"""The tags associated with the IP address that affect the risk score"""
|
|
55
|
+
|
|
56
|
+
whois: Whois
|
|
57
|
+
"""The WHOIS information for the IP address"""
|
|
@@ -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__ = ["WaapIPInfoCounts"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class WaapIPInfoCounts(BaseModel):
|
|
9
|
+
blocked_requests: int
|
|
10
|
+
"""The number of requests from the IP address that were blocked"""
|
|
11
|
+
|
|
12
|
+
total_requests: int
|
|
13
|
+
"""The total number of requests made by the IP address"""
|
|
14
|
+
|
|
15
|
+
unique_sessions: int
|
|
16
|
+
"""The number of unique sessions from the IP address"""
|
|
@@ -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__ = ["WaapJavascriptDisabledPageData"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapJavascriptDisabledPageData(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__ = ["WaapJavascriptDisabledPageDataParam"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class WaapJavascriptDisabledPageDataParam(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,17 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
from .waap_request_organization import WaapRequestOrganization
|
|
5
|
+
|
|
6
|
+
__all__ = ["WaapNetworkDetails"]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class WaapNetworkDetails(BaseModel):
|
|
10
|
+
client_ip: str
|
|
11
|
+
"""Client IP"""
|
|
12
|
+
|
|
13
|
+
country: str
|
|
14
|
+
"""Country code"""
|
|
15
|
+
|
|
16
|
+
organization: WaapRequestOrganization
|
|
17
|
+
"""Organization details"""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["WaapOrganization"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class WaapOrganization(BaseModel):
|
|
9
|
+
id: int
|
|
10
|
+
"""The ID of an organization"""
|
|
11
|
+
|
|
12
|
+
name: str
|
|
13
|
+
"""The name of an organization"""
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing_extensions import Literal, TypeAlias
|
|
4
|
+
|
|
5
|
+
__all__ = ["WaapPageType"]
|
|
6
|
+
|
|
7
|
+
WaapPageType: TypeAlias = Literal[
|
|
8
|
+
"block.html", "block_csrf.html", "captcha.html", "cookieDisabled.html", "handshake.html", "javascriptDisabled.html"
|
|
9
|
+
]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
from .waap_custom_page_set import WaapCustomPageSet
|
|
7
|
+
|
|
8
|
+
__all__ = ["WaapPaginatedCustomPageSet"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WaapPaginatedCustomPageSet(BaseModel):
|
|
12
|
+
count: int
|
|
13
|
+
"""Number of items contain in the response"""
|
|
14
|
+
|
|
15
|
+
limit: int
|
|
16
|
+
"""Number of items requested in the response"""
|
|
17
|
+
|
|
18
|
+
offset: int
|
|
19
|
+
"""Items response offset used"""
|
|
20
|
+
|
|
21
|
+
results: List[WaapCustomPageSet]
|
|
22
|
+
"""List of items returned in the response following given criteria"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
from .waap_ddos_attack import WaapDDOSAttack
|
|
7
|
+
|
|
8
|
+
__all__ = ["WaapPaginatedDDOSAttack"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WaapPaginatedDDOSAttack(BaseModel):
|
|
12
|
+
count: int
|
|
13
|
+
"""Number of items contain in the response"""
|
|
14
|
+
|
|
15
|
+
limit: int
|
|
16
|
+
"""Number of items requested in the response"""
|
|
17
|
+
|
|
18
|
+
offset: int
|
|
19
|
+
"""Items response offset used"""
|
|
20
|
+
|
|
21
|
+
results: List[WaapDDOSAttack]
|
|
22
|
+
"""List of items returned in the response following given criteria"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
from .waap_ddos_info import WaapDDOSInfo
|
|
7
|
+
|
|
8
|
+
__all__ = ["WaapPaginatedDDOSInfo"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WaapPaginatedDDOSInfo(BaseModel):
|
|
12
|
+
count: int
|
|
13
|
+
"""Number of items contain in the response"""
|
|
14
|
+
|
|
15
|
+
limit: int
|
|
16
|
+
"""Number of items requested in the response"""
|
|
17
|
+
|
|
18
|
+
offset: int
|
|
19
|
+
"""Items response offset used"""
|
|
20
|
+
|
|
21
|
+
results: List[WaapDDOSInfo]
|
|
22
|
+
"""List of items returned in the response following given criteria"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from ..._models import BaseModel
|
|
6
|
+
from .waap_request_summary import WaapRequestSummary
|
|
7
|
+
|
|
8
|
+
__all__ = ["WaapPaginatedRequestSummary"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WaapPaginatedRequestSummary(BaseModel):
|
|
12
|
+
count: int
|
|
13
|
+
"""Number of items contain in the response"""
|
|
14
|
+
|
|
15
|
+
limit: int
|
|
16
|
+
"""Number of items requested in the response"""
|
|
17
|
+
|
|
18
|
+
offset: int
|
|
19
|
+
"""Items response offset used"""
|
|
20
|
+
|
|
21
|
+
results: List[WaapRequestSummary]
|
|
22
|
+
"""List of items returned in the response following given criteria"""
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["WaapPatternMatchedTag"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class WaapPatternMatchedTag(BaseModel):
|
|
9
|
+
description: str
|
|
10
|
+
"""Tag description information"""
|
|
11
|
+
|
|
12
|
+
display_name: str
|
|
13
|
+
"""The tag's display name"""
|
|
14
|
+
|
|
15
|
+
execution_phase: str
|
|
16
|
+
"""
|
|
17
|
+
The phase in which the tag was triggered: access -> Request, `header_filter` ->
|
|
18
|
+
`response_header`, `body_filter` -> `response_body`
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
field: str
|
|
22
|
+
"""The entity to which the variable that triggered the tag belong to.
|
|
23
|
+
|
|
24
|
+
For example: `request_headers`, uri, cookies etc.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
field_name: str
|
|
28
|
+
"""The name of the variable which holds the value that triggered the tag"""
|
|
29
|
+
|
|
30
|
+
pattern_name: str
|
|
31
|
+
"""The name of the detected regexp pattern"""
|
|
32
|
+
|
|
33
|
+
pattern_value: str
|
|
34
|
+
"""The pattern which triggered the tag"""
|
|
35
|
+
|
|
36
|
+
tag: str
|
|
37
|
+
"""Tag name"""
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing_extensions import Literal, TypeAlias
|
|
4
|
+
|
|
5
|
+
__all__ = ["WaapPolicyAction"]
|
|
6
|
+
|
|
7
|
+
WaapPolicyAction: TypeAlias = Literal["Allow", "Block", "Captcha", "Gateway", "Handshake", "Monitor", "Composite"]
|