gcore 0.13.0__py3-none-any.whl → 0.14.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/__init__.py +3 -1
- gcore/_base_client.py +9 -9
- gcore/_client.py +25 -10
- gcore/_models.py +10 -4
- gcore/_qs.py +7 -7
- gcore/_types.py +18 -11
- gcore/_utils/_transform.py +2 -2
- gcore/_utils/_utils.py +4 -4
- gcore/_version.py +1 -1
- gcore/pagination.py +137 -0
- gcore/resources/__init__.py +14 -0
- gcore/resources/cdn/__init__.py +201 -0
- gcore/resources/cdn/audit_log.py +406 -0
- gcore/resources/cdn/cdn.py +957 -0
- gcore/resources/cdn/certificates.py +1062 -0
- gcore/resources/cdn/ip_ranges.py +224 -0
- gcore/resources/cdn/logs/__init__.py +33 -0
- gcore/resources/cdn/logs/logs.py +1424 -0
- gcore/resources/cdn/logs/settings.py +1081 -0
- gcore/resources/cdn/logs_uploader/__init__.py +61 -0
- gcore/resources/cdn/logs_uploader/configs.py +868 -0
- gcore/resources/cdn/logs_uploader/logs_uploader.py +166 -0
- gcore/resources/cdn/logs_uploader/policies.py +1060 -0
- gcore/resources/cdn/logs_uploader/targets.py +811 -0
- gcore/resources/cdn/metrics.py +419 -0
- gcore/resources/cdn/network_capacity.py +139 -0
- gcore/resources/cdn/origin_groups.py +1496 -0
- gcore/resources/cdn/resources/__init__.py +47 -0
- gcore/resources/cdn/resources/resources.py +2060 -0
- gcore/resources/cdn/resources/rules.py +1027 -0
- gcore/resources/cdn/resources/shield.py +259 -0
- gcore/resources/cdn/rule_templates.py +883 -0
- gcore/resources/cdn/shields.py +139 -0
- gcore/resources/cdn/statistics.py +1408 -0
- gcore/resources/cdn/trusted_ca_certificates.py +592 -0
- gcore/resources/cloud/audit_logs.py +33 -29
- gcore/resources/cloud/baremetal/flavors.py +21 -17
- gcore/resources/cloud/baremetal/images.py +19 -15
- gcore/resources/cloud/baremetal/servers.py +141 -119
- gcore/resources/cloud/billing_reservations.py +41 -33
- gcore/resources/cloud/cloud.py +24 -0
- gcore/resources/cloud/cost_reports.py +149 -119
- gcore/resources/cloud/file_shares/access_rules.py +25 -13
- gcore/resources/cloud/file_shares/file_shares.py +107 -71
- gcore/resources/cloud/floating_ips.py +101 -59
- gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +13 -9
- gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +275 -65
- gcore/resources/cloud/gpu_baremetal_clusters/images.py +69 -53
- gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +9 -5
- gcore/resources/cloud/gpu_baremetal_clusters/servers.py +151 -127
- gcore/resources/cloud/inference/api_keys.py +51 -31
- gcore/resources/cloud/inference/applications/deployments.py +49 -31
- gcore/resources/cloud/inference/applications/templates.py +17 -9
- gcore/resources/cloud/inference/deployments/deployments.py +171 -139
- gcore/resources/cloud/inference/deployments/logs.py +17 -13
- gcore/resources/cloud/inference/flavors.py +21 -13
- gcore/resources/cloud/inference/inference.py +9 -5
- gcore/resources/cloud/inference/registry_credentials.py +45 -25
- gcore/resources/cloud/inference/secrets.py +45 -25
- gcore/resources/cloud/instances/flavors.py +17 -13
- gcore/resources/cloud/instances/images.py +153 -129
- gcore/resources/cloud/instances/instances.py +287 -213
- gcore/resources/cloud/instances/interfaces.py +165 -161
- gcore/resources/cloud/instances/metrics.py +9 -5
- gcore/resources/cloud/ip_ranges.py +25 -15
- gcore/resources/cloud/k8s/clusters/clusters.py +151 -87
- gcore/resources/cloud/k8s/clusters/nodes.py +19 -11
- gcore/resources/cloud/k8s/clusters/pools/nodes.py +19 -11
- gcore/resources/cloud/k8s/clusters/pools/pools.py +83 -59
- gcore/resources/cloud/k8s/flavors.py +13 -9
- gcore/resources/cloud/k8s/k8s.py +9 -5
- gcore/resources/cloud/load_balancers/flavors.py +11 -7
- gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +103 -83
- gcore/resources/cloud/load_balancers/l7_policies/rules.py +77 -57
- gcore/resources/cloud/load_balancers/listeners.py +125 -105
- gcore/resources/cloud/load_balancers/load_balancers.py +155 -123
- gcore/resources/cloud/load_balancers/metrics.py +9 -5
- gcore/resources/cloud/load_balancers/pools/health_monitors.py +25 -17
- gcore/resources/cloud/load_balancers/pools/members.py +31 -23
- gcore/resources/cloud/load_balancers/pools/pools.py +155 -129
- gcore/resources/cloud/load_balancers/statuses.py +17 -9
- gcore/resources/cloud/networks/networks.py +79 -55
- gcore/resources/cloud/networks/routers.py +75 -47
- gcore/resources/cloud/networks/subnets.py +105 -81
- gcore/resources/cloud/placement_groups.py +33 -17
- gcore/resources/cloud/projects.py +53 -41
- gcore/resources/cloud/quotas/quotas.py +25 -13
- gcore/resources/cloud/quotas/requests.py +41 -25
- gcore/resources/cloud/regions.py +25 -23
- gcore/resources/cloud/registries/artifacts.py +17 -9
- gcore/resources/cloud/registries/registries.py +55 -29
- gcore/resources/cloud/registries/repositories.py +17 -9
- gcore/resources/cloud/registries/tags.py +9 -5
- gcore/resources/cloud/registries/users.py +65 -35
- gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +123 -107
- gcore/resources/cloud/reserved_fixed_ips/vip.py +45 -25
- gcore/resources/cloud/secrets.py +43 -27
- gcore/resources/cloud/security_groups/rules.py +55 -43
- gcore/resources/cloud/security_groups/security_groups.py +79 -47
- gcore/resources/cloud/ssh_keys.py +51 -31
- gcore/resources/cloud/tasks.py +57 -45
- gcore/resources/cloud/usage_reports.py +27 -23
- gcore/resources/cloud/users/role_assignments.py +49 -33
- gcore/resources/cloud/volumes.py +237 -201
- gcore/resources/dns/dns.py +17 -13
- gcore/resources/dns/locations.py +29 -17
- gcore/resources/dns/metrics.py +13 -9
- gcore/resources/dns/pickers/pickers.py +5 -5
- gcore/resources/dns/pickers/presets.py +9 -5
- gcore/resources/dns/zones/dnssec.py +19 -11
- gcore/resources/dns/zones/rrsets.py +149 -91
- gcore/resources/dns/zones/zones.py +245 -187
- gcore/resources/fastedge/apps/apps.py +105 -89
- gcore/resources/fastedge/apps/logs.py +25 -21
- gcore/resources/fastedge/binaries.py +33 -17
- gcore/resources/fastedge/fastedge.py +5 -5
- gcore/resources/fastedge/kv_stores.py +43 -31
- gcore/resources/fastedge/secrets.py +69 -45
- gcore/resources/fastedge/statistics.py +25 -17
- gcore/resources/fastedge/templates.py +59 -39
- gcore/resources/iam/api_tokens.py +43 -27
- gcore/resources/iam/iam.py +5 -5
- gcore/resources/iam/users.py +97 -65
- gcore/resources/security/bgp_announces.py +27 -19
- gcore/resources/security/events.py +23 -19
- gcore/resources/security/profile_templates.py +9 -5
- gcore/resources/security/profiles.py +69 -45
- gcore/resources/storage/buckets/buckets.py +37 -25
- gcore/resources/storage/buckets/cors.py +19 -11
- gcore/resources/storage/buckets/lifecycle.py +19 -11
- gcore/resources/storage/buckets/policy.py +25 -13
- gcore/resources/storage/credentials.py +19 -15
- gcore/resources/storage/locations.py +13 -9
- gcore/resources/storage/statistics.py +39 -31
- gcore/resources/storage/storage.py +105 -69
- gcore/resources/streaming/ai_tasks.py +307 -197
- gcore/resources/streaming/broadcasts.py +63 -35
- gcore/resources/streaming/directories.py +65 -39
- gcore/resources/streaming/players.py +47 -31
- gcore/resources/streaming/playlists.py +189 -123
- gcore/resources/streaming/quality_sets.py +69 -39
- gcore/resources/streaming/restreams.py +47 -27
- gcore/resources/streaming/statistics.py +613 -407
- gcore/resources/streaming/streams/overlays.py +107 -67
- gcore/resources/streaming/streams/streams.py +403 -263
- gcore/resources/streaming/videos/subtitles.py +131 -75
- gcore/resources/streaming/videos/videos.py +429 -279
- gcore/resources/waap/advanced_rules.py +9 -5
- gcore/resources/waap/custom_page_sets.py +99 -75
- gcore/resources/waap/domains/advanced_rules.py +157 -99
- gcore/resources/waap/domains/api_discovery.py +71 -47
- gcore/resources/waap/domains/api_path_groups.py +9 -5
- gcore/resources/waap/domains/api_paths.py +79 -83
- gcore/resources/waap/domains/custom_rules.py +89 -59
- gcore/resources/waap/domains/domains.py +59 -41
- gcore/resources/waap/domains/firewall_rules.py +83 -55
- gcore/resources/waap/domains/insight_silences.py +59 -39
- gcore/resources/waap/domains/insights.py +39 -27
- gcore/resources/waap/domains/settings.py +21 -13
- gcore/resources/waap/domains/statistics.py +99 -75
- gcore/resources/waap/insights.py +23 -21
- gcore/resources/waap/ip_info/ip_info.py +65 -33
- gcore/resources/waap/ip_info/metrics.py +11 -7
- gcore/resources/waap/organizations.py +17 -13
- gcore/resources/waap/statistics.py +9 -5
- gcore/resources/waap/tags.py +17 -17
- gcore/resources/waap/waap.py +5 -5
- gcore/types/cdn/__init__.py +80 -0
- gcore/types/cdn/audit_log_list_params.py +73 -0
- gcore/types/cdn/ca_certificate.py +53 -0
- gcore/types/cdn/ca_certificate_list.py +10 -0
- gcore/types/cdn/cdn_account.py +86 -0
- gcore/types/cdn/cdn_account_limits.py +27 -0
- gcore/types/cdn/cdn_audit_log_entry.py +66 -0
- gcore/types/cdn/cdn_available_features.py +46 -0
- gcore/types/cdn/cdn_list_purge_statuses_params.py +67 -0
- gcore/types/cdn/cdn_log_entry.py +70 -0
- gcore/types/cdn/cdn_metrics.py +22 -0
- gcore/types/cdn/cdn_metrics_groups.py +13 -0
- gcore/types/cdn/cdn_metrics_values.py +19 -0
- gcore/types/cdn/cdn_resource.py +1977 -0
- gcore/types/cdn/cdn_resource_list.py +10 -0
- gcore/types/cdn/cdn_update_account_params.py +15 -0
- gcore/types/cdn/certificate_create_params.py +51 -0
- gcore/types/cdn/certificate_get_status_params.py +14 -0
- gcore/types/cdn/certificate_list_params.py +29 -0
- gcore/types/cdn/certificate_replace_params.py +39 -0
- gcore/types/cdn/log_download_params.py +279 -0
- gcore/types/cdn/log_list_params.py +273 -0
- gcore/types/cdn/logs/__init__.py +7 -0
- gcore/types/cdn/logs/log_settings.py +172 -0
- gcore/types/cdn/logs/setting_create_params.py +200 -0
- gcore/types/cdn/logs/setting_update_params.py +200 -0
- gcore/types/cdn/logs_aggregated_stats.py +23 -0
- gcore/types/cdn/logs_uploader/__init__.py +23 -0
- gcore/types/cdn/logs_uploader/config_create_params.py +32 -0
- gcore/types/cdn/logs_uploader/config_list_params.py +16 -0
- gcore/types/cdn/logs_uploader/config_replace_params.py +32 -0
- gcore/types/cdn/logs_uploader/config_update_params.py +32 -0
- gcore/types/cdn/logs_uploader/logs_uploader_config.py +51 -0
- gcore/types/cdn/logs_uploader/logs_uploader_config_list.py +10 -0
- gcore/types/cdn/logs_uploader/logs_uploader_policy.py +73 -0
- gcore/types/cdn/logs_uploader/logs_uploader_policy_list.py +10 -0
- gcore/types/cdn/logs_uploader/logs_uploader_target.py +236 -0
- gcore/types/cdn/logs_uploader/logs_uploader_target_list.py +10 -0
- gcore/types/cdn/logs_uploader/policy_create_params.py +61 -0
- gcore/types/cdn/logs_uploader/policy_list_fields_response.py +8 -0
- gcore/types/cdn/logs_uploader/policy_list_params.py +16 -0
- gcore/types/cdn/logs_uploader/policy_replace_params.py +61 -0
- gcore/types/cdn/logs_uploader/policy_update_params.py +61 -0
- gcore/types/cdn/logs_uploader/target_create_params.py +249 -0
- gcore/types/cdn/logs_uploader/target_list_params.py +16 -0
- gcore/types/cdn/logs_uploader/target_replace_params.py +249 -0
- gcore/types/cdn/logs_uploader/target_update_params.py +249 -0
- gcore/types/cdn/logs_uploader_validation.py +23 -0
- gcore/types/cdn/metric_list_params.py +168 -0
- gcore/types/cdn/network_capacity.py +22 -0
- gcore/types/cdn/origin_group_create_params.py +184 -0
- gcore/types/cdn/origin_group_list_params.py +24 -0
- gcore/types/cdn/origin_group_replace_params.py +190 -0
- gcore/types/cdn/origin_group_update_params.py +190 -0
- gcore/types/cdn/origin_groups.py +212 -0
- gcore/types/cdn/origin_groups_list.py +10 -0
- gcore/types/cdn/public_ip_list.py +15 -0
- gcore/types/cdn/public_network_list.py +15 -0
- gcore/types/cdn/purge_status.py +55 -0
- gcore/types/cdn/resource_aggregated_stats.py +80 -0
- gcore/types/cdn/resource_create_params.py +1825 -0
- gcore/types/cdn/resource_list_params.py +107 -0
- gcore/types/cdn/resource_prefetch_params.py +17 -0
- gcore/types/cdn/resource_purge_params.py +71 -0
- gcore/types/cdn/resource_replace_params.py +1803 -0
- gcore/types/cdn/resource_update_params.py +1794 -0
- gcore/types/cdn/resource_usage_stats.py +111 -0
- gcore/types/cdn/resources/__init__.py +11 -0
- gcore/types/cdn/resources/cdn_resource_rule.py +1695 -0
- gcore/types/cdn/resources/origin_shielding.py +15 -0
- gcore/types/cdn/resources/rule_create_params.py +1652 -0
- gcore/types/cdn/resources/rule_list_response.py +10 -0
- gcore/types/cdn/resources/rule_replace_params.py +1654 -0
- gcore/types/cdn/resources/rule_update_params.py +1654 -0
- gcore/types/cdn/resources/shield_replace_params.py +16 -0
- gcore/types/cdn/rule_template.py +1666 -0
- gcore/types/cdn/rule_template_create_params.py +1636 -0
- gcore/types/cdn/rule_template_list.py +10 -0
- gcore/types/cdn/rule_template_replace_params.py +1636 -0
- gcore/types/cdn/rule_template_update_params.py +1636 -0
- gcore/types/cdn/shield_aggregated_stats.py +23 -0
- gcore/types/cdn/shield_list_response.py +25 -0
- gcore/types/cdn/ssl_detail.py +62 -0
- gcore/types/cdn/ssl_detail_list.py +10 -0
- gcore/types/cdn/ssl_request_status.py +135 -0
- gcore/types/cdn/statistic_get_logs_usage_aggregated_params.py +42 -0
- gcore/types/cdn/statistic_get_logs_usage_series_params.py +35 -0
- gcore/types/cdn/statistic_get_resource_usage_aggregated_params.py +151 -0
- gcore/types/cdn/statistic_get_resource_usage_series_params.py +131 -0
- gcore/types/cdn/statistic_get_shield_usage_aggregated_params.py +42 -0
- gcore/types/cdn/statistic_get_shield_usage_series_params.py +25 -0
- gcore/types/cdn/trusted_ca_certificate_create_params.py +23 -0
- gcore/types/cdn/trusted_ca_certificate_list_params.py +29 -0
- gcore/types/cdn/trusted_ca_certificate_replace_params.py +15 -0
- gcore/types/cdn/usage_series_stats.py +31 -0
- gcore/types/cloud/__init__.py +1 -0
- gcore/types/cloud/file_share.py +4 -0
- gcore/types/cloud/file_share_create_params.py +20 -0
- gcore/types/cloud/file_share_update_params.py +40 -3
- gcore/types/cloud/floating_ip_update_params.py +3 -1
- gcore/types/cloud/gpu_baremetal_cluster_action_params.py +46 -0
- gcore/types/cloud/inference/inference_deployment.py +3 -1
- gcore/types/cloud/instance_create_params.py +3 -1
- gcore/types/cloud/k8s/cluster_create_params.py +46 -4
- gcore/types/cloud/k8s/cluster_update_params.py +60 -6
- gcore/types/cloud/k8s/clusters/pool_update_params.py +1 -1
- gcore/types/cloud/k8s/k8s_cluster.py +40 -3
- gcore/types/cloud/load_balancer_update_params.py +3 -1
- gcore/types/cloud/network_update_params.py +3 -1
- gcore/types/cloud/networks/subnet_update_params.py +3 -1
- gcore/types/cloud/registries/user_create_multiple_params.py +5 -3
- gcore/types/cloud/registries/user_create_params.py +5 -3
- gcore/types/cloud/registry_create_params.py +5 -3
- gcore/types/cloud/security_group_update_params.py +3 -1
- gcore/types/cloud/ssh_key_created.py +6 -3
- gcore/types/cloud/volume_update_params.py +3 -1
- gcore/types/dns/zone_get_statistics_params.py +12 -9
- gcore/types/dns/zone_get_statistics_response.py +3 -1
- gcore/types/dns/zone_import_params.py +21 -15
- gcore/types/dns/zones/dns_output_rrset.py +7 -3
- gcore/types/iam/account_overview.py +7 -2
- gcore/types/iam/user.py +7 -2
- gcore/types/iam/user_detailed.py +7 -2
- gcore/types/iam/user_invite_params.py +4 -1
- gcore/types/iam/user_update.py +7 -2
- gcore/types/iam/user_update_params.py +7 -2
- gcore/types/streaming/ai_contentmoderation_hardnudity.py +6 -4
- gcore/types/streaming/ai_contentmoderation_nsfw.py +6 -4
- gcore/types/streaming/ai_contentmoderation_softnudity.py +6 -4
- gcore/types/streaming/ai_contentmoderation_sport.py +6 -4
- gcore/types/streaming/ai_task.py +20 -11
- gcore/types/streaming/ai_task_create_params.py +20 -11
- gcore/types/streaming/ai_task_get_response.py +5 -4
- gcore/types/streaming/ai_task_list_params.py +11 -5
- gcore/types/streaming/clip.py +33 -22
- gcore/types/streaming/create_video_param.py +75 -43
- gcore/types/streaming/playlist.py +7 -5
- gcore/types/streaming/playlist_create_params.py +7 -5
- gcore/types/streaming/playlist_update_params.py +7 -5
- gcore/types/streaming/playlist_video.py +75 -43
- gcore/types/streaming/statistic_get_unique_viewers_cdn_params.py +7 -4
- gcore/types/streaming/stream.py +207 -136
- gcore/types/streaming/stream_create_clip_params.py +33 -22
- gcore/types/streaming/stream_create_params.py +41 -24
- gcore/types/streaming/stream_update_params.py +41 -24
- gcore/types/streaming/video.py +138 -76
- gcore/types/streaming/video_list_params.py +4 -2
- gcore/types/streaming/video_update_params.py +75 -43
- gcore/types/waap/domain_update_params.py +2 -2
- gcore/types/waap/domains/advanced_rule_create_params.py +26 -18
- gcore/types/waap/domains/advanced_rule_list_params.py +10 -7
- gcore/types/waap/domains/advanced_rule_update_params.py +22 -17
- gcore/types/waap/domains/api_path_create_params.py +0 -3
- gcore/types/waap/domains/api_path_update_params.py +1 -3
- gcore/types/waap/domains/custom_rule_create_params.py +36 -35
- gcore/types/waap/domains/custom_rule_update_params.py +31 -33
- gcore/types/waap/domains/firewall_rule_create_params.py +6 -6
- gcore/types/waap/domains/firewall_rule_update_params.py +5 -5
- gcore/types/waap/domains/waap_advanced_rule.py +17 -9
- gcore/types/waap/domains/waap_custom_rule.py +5 -2
- gcore/types/waap/domains/waap_firewall_rule.py +1 -1
- gcore/types/waap/domains/waap_insight.py +1 -1
- gcore/types/waap/insight_list_types_params.py +1 -1
- {gcore-0.13.0.dist-info → gcore-0.14.0.dist-info}/METADATA +1 -1
- {gcore-0.13.0.dist-info → gcore-0.14.0.dist-info}/RECORD +334 -214
- {gcore-0.13.0.dist-info → gcore-0.14.0.dist-info}/WHEEL +0 -0
- {gcore-0.13.0.dist-info → gcore-0.14.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -39,7 +39,7 @@ class CustomRuleUpdateParams(TypedDict, total=False):
|
|
|
39
39
|
"""The domain ID"""
|
|
40
40
|
|
|
41
41
|
action: Optional[Action]
|
|
42
|
-
"""The action that a WAAP rule takes when triggered"""
|
|
42
|
+
"""The action that a WAAP rule takes when triggered."""
|
|
43
43
|
|
|
44
44
|
conditions: Optional[Iterable[Condition]]
|
|
45
45
|
"""The conditions required for the WAAP engine to trigger the rule.
|
|
@@ -59,7 +59,7 @@ class CustomRuleUpdateParams(TypedDict, total=False):
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
class ActionBlock(TypedDict, total=False):
|
|
62
|
-
action_duration:
|
|
62
|
+
action_duration: str
|
|
63
63
|
"""How long a rule's block action will apply to subsequent requests.
|
|
64
64
|
|
|
65
65
|
Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
|
|
@@ -67,8 +67,8 @@ class ActionBlock(TypedDict, total=False):
|
|
|
67
67
|
intervals are not allowed.
|
|
68
68
|
"""
|
|
69
69
|
|
|
70
|
-
status_code:
|
|
71
|
-
"""
|
|
70
|
+
status_code: Literal[403, 405, 418, 429]
|
|
71
|
+
"""A custom HTTP status code that the WAAP returns if a rule blocks a request"""
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
class ActionTag(TypedDict, total=False):
|
|
@@ -77,25 +77,25 @@ class ActionTag(TypedDict, total=False):
|
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
class Action(TypedDict, total=False):
|
|
80
|
-
allow:
|
|
80
|
+
allow: object
|
|
81
81
|
"""The WAAP allowed the request"""
|
|
82
82
|
|
|
83
|
-
block:
|
|
83
|
+
block: ActionBlock
|
|
84
84
|
"""
|
|
85
85
|
WAAP block action behavior could be configured with response status code and
|
|
86
86
|
action duration.
|
|
87
87
|
"""
|
|
88
88
|
|
|
89
|
-
captcha:
|
|
89
|
+
captcha: object
|
|
90
90
|
"""The WAAP presented the user with a captcha"""
|
|
91
91
|
|
|
92
|
-
handshake:
|
|
92
|
+
handshake: object
|
|
93
93
|
"""The WAAP performed automatic browser validation"""
|
|
94
94
|
|
|
95
|
-
monitor:
|
|
95
|
+
monitor: object
|
|
96
96
|
"""The WAAP monitored the request but took no action"""
|
|
97
97
|
|
|
98
|
-
tag:
|
|
98
|
+
tag: ActionTag
|
|
99
99
|
"""WAAP tag action gets a list of tags to tag the request scope with"""
|
|
100
100
|
|
|
101
101
|
|
|
@@ -221,15 +221,13 @@ class ConditionRequestRate(TypedDict, total=False):
|
|
|
221
221
|
triggering a request rate condition
|
|
222
222
|
"""
|
|
223
223
|
|
|
224
|
-
http_methods:
|
|
225
|
-
List[Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]]
|
|
226
|
-
]
|
|
224
|
+
http_methods: List[Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]]
|
|
227
225
|
"""Possible HTTP request methods that can trigger a request rate condition"""
|
|
228
226
|
|
|
229
|
-
ips:
|
|
227
|
+
ips: SequenceNotStr[str]
|
|
230
228
|
"""A list of source IPs that can trigger a request rate condition"""
|
|
231
229
|
|
|
232
|
-
user_defined_tag:
|
|
230
|
+
user_defined_tag: str
|
|
233
231
|
"""
|
|
234
232
|
A user-defined tag that can be included in incoming requests and used to trigger
|
|
235
233
|
a request rate condition
|
|
@@ -313,62 +311,62 @@ class ConditionUserDefinedTags(TypedDict, total=False):
|
|
|
313
311
|
|
|
314
312
|
|
|
315
313
|
class Condition(TypedDict, total=False):
|
|
316
|
-
content_type:
|
|
314
|
+
content_type: ConditionContentType
|
|
317
315
|
"""Match the requested Content-Type"""
|
|
318
316
|
|
|
319
|
-
country:
|
|
317
|
+
country: ConditionCountry
|
|
320
318
|
"""Match the country that the request originated from"""
|
|
321
319
|
|
|
322
|
-
file_extension:
|
|
320
|
+
file_extension: ConditionFileExtension
|
|
323
321
|
"""Match the incoming file extension"""
|
|
324
322
|
|
|
325
|
-
header:
|
|
323
|
+
header: ConditionHeader
|
|
326
324
|
"""Match an incoming request header"""
|
|
327
325
|
|
|
328
|
-
header_exists:
|
|
326
|
+
header_exists: ConditionHeaderExists
|
|
329
327
|
"""Match when an incoming request header is present"""
|
|
330
328
|
|
|
331
|
-
http_method:
|
|
329
|
+
http_method: ConditionHTTPMethod
|
|
332
330
|
"""Match the incoming HTTP method"""
|
|
333
331
|
|
|
334
|
-
ip:
|
|
332
|
+
ip: ConditionIP
|
|
335
333
|
"""Match the incoming request against a single IP address"""
|
|
336
334
|
|
|
337
|
-
ip_range:
|
|
335
|
+
ip_range: ConditionIPRange
|
|
338
336
|
"""Match the incoming request against an IP range"""
|
|
339
337
|
|
|
340
|
-
organization:
|
|
338
|
+
organization: ConditionOrganization
|
|
341
339
|
"""
|
|
342
340
|
Match the organization the request originated from, as determined by a WHOIS
|
|
343
341
|
lookup of the requesting IP
|
|
344
342
|
"""
|
|
345
343
|
|
|
346
|
-
owner_types:
|
|
344
|
+
owner_types: ConditionOwnerTypes
|
|
347
345
|
"""
|
|
348
346
|
Match the type of organization that owns the IP address making an incoming
|
|
349
347
|
request
|
|
350
348
|
"""
|
|
351
349
|
|
|
352
|
-
request_rate:
|
|
350
|
+
request_rate: ConditionRequestRate
|
|
353
351
|
"""Match the rate at which requests come in that match certain conditions"""
|
|
354
352
|
|
|
355
|
-
response_header:
|
|
353
|
+
response_header: ConditionResponseHeader
|
|
356
354
|
"""Match a response header"""
|
|
357
355
|
|
|
358
|
-
response_header_exists:
|
|
356
|
+
response_header_exists: ConditionResponseHeaderExists
|
|
359
357
|
"""Match when a response header is present"""
|
|
360
358
|
|
|
361
|
-
session_request_count:
|
|
359
|
+
session_request_count: ConditionSessionRequestCount
|
|
362
360
|
"""Match the number of dynamic page requests made in a WAAP session"""
|
|
363
361
|
|
|
364
|
-
tags:
|
|
362
|
+
tags: ConditionTags
|
|
365
363
|
"""Matches requests based on specified tags"""
|
|
366
364
|
|
|
367
|
-
url:
|
|
365
|
+
url: ConditionURL
|
|
368
366
|
"""Match the incoming request URL"""
|
|
369
367
|
|
|
370
|
-
user_agent:
|
|
368
|
+
user_agent: ConditionUserAgent
|
|
371
369
|
"""Match the user agent making the request"""
|
|
372
370
|
|
|
373
|
-
user_defined_tags:
|
|
371
|
+
user_defined_tags: ConditionUserDefinedTags
|
|
374
372
|
"""Matches requests based on user-defined tags"""
|
|
@@ -21,12 +21,12 @@ class FirewallRuleCreateParams(TypedDict, total=False):
|
|
|
21
21
|
name: Required[str]
|
|
22
22
|
"""The name assigned to the rule"""
|
|
23
23
|
|
|
24
|
-
description:
|
|
24
|
+
description: str
|
|
25
25
|
"""The description assigned to the rule"""
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class ActionBlock(TypedDict, total=False):
|
|
29
|
-
action_duration:
|
|
29
|
+
action_duration: str
|
|
30
30
|
"""How long a rule's block action will apply to subsequent requests.
|
|
31
31
|
|
|
32
32
|
Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
|
|
@@ -34,8 +34,8 @@ class ActionBlock(TypedDict, total=False):
|
|
|
34
34
|
intervals are not allowed.
|
|
35
35
|
"""
|
|
36
36
|
|
|
37
|
-
status_code:
|
|
38
|
-
"""
|
|
37
|
+
status_code: Literal[403, 405, 418, 429]
|
|
38
|
+
"""A custom HTTP status code that the WAAP returns if a rule blocks a request"""
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
class Action(TypedDict, total=False):
|
|
@@ -69,8 +69,8 @@ class ConditionIPRange(TypedDict, total=False):
|
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
class Condition(TypedDict, total=False):
|
|
72
|
-
ip:
|
|
72
|
+
ip: ConditionIP
|
|
73
73
|
"""Match the incoming request against a single IP address"""
|
|
74
74
|
|
|
75
|
-
ip_range:
|
|
75
|
+
ip_range: ConditionIPRange
|
|
76
76
|
"""Match the incoming request against an IP range"""
|
|
@@ -29,7 +29,7 @@ class FirewallRuleUpdateParams(TypedDict, total=False):
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class ActionBlock(TypedDict, total=False):
|
|
32
|
-
action_duration:
|
|
32
|
+
action_duration: str
|
|
33
33
|
"""How long a rule's block action will apply to subsequent requests.
|
|
34
34
|
|
|
35
35
|
Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
|
|
@@ -37,8 +37,8 @@ class ActionBlock(TypedDict, total=False):
|
|
|
37
37
|
intervals are not allowed.
|
|
38
38
|
"""
|
|
39
39
|
|
|
40
|
-
status_code:
|
|
41
|
-
"""
|
|
40
|
+
status_code: Literal[403, 405, 418, 429]
|
|
41
|
+
"""A custom HTTP status code that the WAAP returns if a rule blocks a request"""
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
class Action(TypedDict, total=False):
|
|
@@ -72,8 +72,8 @@ class ConditionIPRange(TypedDict, total=False):
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
class Condition(TypedDict, total=False):
|
|
75
|
-
ip:
|
|
75
|
+
ip: ConditionIP
|
|
76
76
|
"""Match the incoming request against a single IP address"""
|
|
77
77
|
|
|
78
|
-
ip_range:
|
|
78
|
+
ip_range: ConditionIPRange
|
|
79
79
|
"""Match the incoming request against an IP range"""
|
|
@@ -18,7 +18,7 @@ class ActionBlock(BaseModel):
|
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
20
|
status_code: Optional[Literal[403, 405, 418, 429]] = None
|
|
21
|
-
"""
|
|
21
|
+
"""A custom HTTP status code that the WAAP returns if a rule blocks a request"""
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
class ActionTag(BaseModel):
|
|
@@ -54,7 +54,10 @@ class WaapAdvancedRule(BaseModel):
|
|
|
54
54
|
"""The unique identifier for the rule"""
|
|
55
55
|
|
|
56
56
|
action: Action
|
|
57
|
-
"""The action that the rule takes when triggered
|
|
57
|
+
"""The action that the rule takes when triggered.
|
|
58
|
+
|
|
59
|
+
Only one action can be set per rule.
|
|
60
|
+
"""
|
|
58
61
|
|
|
59
62
|
enabled: bool
|
|
60
63
|
"""Whether or not the rule is enabled"""
|
|
@@ -66,7 +69,9 @@ class WaapAdvancedRule(BaseModel):
|
|
|
66
69
|
"""A CEL syntax expression that contains the rule's conditions.
|
|
67
70
|
|
|
68
71
|
Allowed objects are: request, whois, session, response, tags,
|
|
69
|
-
`user_defined_tags`, `user_agent`, `client_data`.
|
|
72
|
+
`user_defined_tags`, `user_agent`, `client_data`.
|
|
73
|
+
|
|
74
|
+
More info can be found here:
|
|
70
75
|
https://gcore.com/docs/waap/waap-rules/advanced-rules
|
|
71
76
|
"""
|
|
72
77
|
|
|
@@ -74,11 +79,14 @@ class WaapAdvancedRule(BaseModel):
|
|
|
74
79
|
"""The description assigned to the rule"""
|
|
75
80
|
|
|
76
81
|
phase: Optional[Literal["access", "header_filter", "body_filter"]] = None
|
|
77
|
-
"""The WAAP request/response phase for applying the rule.
|
|
82
|
+
"""The WAAP request/response phase for applying the rule. Default is "access".
|
|
83
|
+
|
|
84
|
+
The "access" phase is responsible for modifying the request before it is sent to
|
|
85
|
+
the origin server.
|
|
86
|
+
|
|
87
|
+
The "`header_filter`" phase is responsible for modifying the HTTP headers of a
|
|
88
|
+
response before they are sent back to the client.
|
|
78
89
|
|
|
79
|
-
|
|
80
|
-
before it is sent to the
|
|
81
|
-
responsible for modifying the HTTP headers of a response before they are sent
|
|
82
|
-
back to the client. The "`body_filter`" phase is responsible for modifying the
|
|
83
|
-
body of a response before it is sent back to the client.
|
|
90
|
+
The "`body_filter`" phase is responsible for modifying the body of a response
|
|
91
|
+
before it is sent back to the client.
|
|
84
92
|
"""
|
|
@@ -42,7 +42,7 @@ class ActionBlock(BaseModel):
|
|
|
42
42
|
"""
|
|
43
43
|
|
|
44
44
|
status_code: Optional[Literal[403, 405, 418, 429]] = None
|
|
45
|
-
"""
|
|
45
|
+
"""A custom HTTP status code that the WAAP returns if a rule blocks a request"""
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
class ActionTag(BaseModel):
|
|
@@ -355,7 +355,10 @@ class WaapCustomRule(BaseModel):
|
|
|
355
355
|
"""The unique identifier for the rule"""
|
|
356
356
|
|
|
357
357
|
action: Action
|
|
358
|
-
"""The action that the rule takes when triggered
|
|
358
|
+
"""The action that the rule takes when triggered.
|
|
359
|
+
|
|
360
|
+
Only one action can be set per rule.
|
|
361
|
+
"""
|
|
359
362
|
|
|
360
363
|
conditions: List[Condition]
|
|
361
364
|
"""The conditions required for the WAAP engine to trigger the rule.
|
|
@@ -18,7 +18,7 @@ class ActionBlock(BaseModel):
|
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
20
|
status_code: Optional[Literal[403, 405, 418, 429]] = None
|
|
21
|
-
"""
|
|
21
|
+
"""A custom HTTP status code that the WAAP returns if a rule blocks a request"""
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
class Action(BaseModel):
|
|
@@ -20,7 +20,7 @@ class WaapInsight(BaseModel):
|
|
|
20
20
|
"""The date and time the insight was first seen in ISO 8601 format"""
|
|
21
21
|
|
|
22
22
|
insight_type: str
|
|
23
|
-
"""The
|
|
23
|
+
"""The slug of the insight type"""
|
|
24
24
|
|
|
25
25
|
labels: Dict[str, str]
|
|
26
26
|
"""A hash table of label names and values that apply to the insight"""
|