gcore 0.10.0__py3-none-any.whl → 0.12.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 +3 -3
- gcore/_client.py +18 -0
- gcore/_compat.py +48 -48
- gcore/_models.py +41 -41
- gcore/_types.py +35 -1
- gcore/_utils/__init__.py +9 -2
- gcore/_utils/_compat.py +45 -0
- gcore/_utils/_datetime_parse.py +136 -0
- gcore/_utils/_transform.py +11 -1
- gcore/_utils/_typing.py +6 -1
- gcore/_utils/_utils.py +0 -1
- gcore/_version.py +1 -1
- gcore/resources/__init__.py +28 -0
- gcore/resources/cloud/__init__.py +14 -0
- gcore/resources/cloud/audit_logs.py +3 -3
- gcore/resources/cloud/baremetal/images.py +3 -4
- gcore/resources/cloud/baremetal/servers.py +16 -4
- gcore/resources/cloud/cloud.py +32 -0
- gcore/resources/cloud/cost_reports.py +24 -16
- gcore/resources/cloud/file_shares/access_rules.py +2 -2
- gcore/resources/cloud/file_shares/file_shares.py +30 -14
- gcore/resources/cloud/floating_ips.py +196 -4
- gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +1 -1
- gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +166 -190
- gcore/resources/cloud/gpu_baremetal_clusters/servers.py +268 -12
- gcore/resources/cloud/inference/__init__.py +14 -14
- gcore/resources/cloud/inference/applications/__init__.py +47 -0
- gcore/resources/cloud/inference/applications/applications.py +134 -0
- gcore/resources/cloud/inference/applications/deployments.py +649 -0
- gcore/resources/cloud/inference/applications/templates.py +238 -0
- gcore/resources/cloud/inference/deployments/deployments.py +41 -22
- gcore/resources/cloud/inference/inference.py +32 -32
- gcore/resources/cloud/inference/registry_credentials.py +8 -9
- gcore/resources/cloud/instances/images.py +4 -4
- gcore/resources/cloud/instances/instances.py +254 -4
- gcore/resources/cloud/instances/interfaces.py +544 -0
- gcore/resources/cloud/k8s/__init__.py +47 -0
- gcore/resources/cloud/k8s/clusters/__init__.py +47 -0
- gcore/resources/cloud/k8s/clusters/clusters.py +1391 -0
- gcore/resources/cloud/k8s/clusters/nodes.py +291 -0
- gcore/resources/cloud/k8s/clusters/pools/__init__.py +33 -0
- gcore/resources/cloud/k8s/clusters/pools/nodes.py +303 -0
- gcore/resources/cloud/k8s/clusters/pools/pools.py +870 -0
- gcore/resources/cloud/k8s/flavors.py +209 -0
- gcore/resources/cloud/k8s/k8s.py +233 -0
- gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +11 -12
- gcore/resources/cloud/load_balancers/l7_policies/rules.py +9 -10
- gcore/resources/cloud/load_balancers/listeners.py +18 -18
- gcore/resources/cloud/load_balancers/load_balancers.py +4 -4
- gcore/resources/cloud/load_balancers/pools/health_monitors.py +18 -6
- gcore/resources/cloud/load_balancers/pools/members.py +32 -2
- gcore/resources/cloud/load_balancers/pools/pools.py +32 -8
- gcore/resources/cloud/networks/networks.py +192 -4
- gcore/resources/cloud/networks/subnets.py +140 -8
- gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +608 -0
- gcore/resources/cloud/reserved_fixed_ips/vip.py +5 -7
- gcore/resources/cloud/security_groups/security_groups.py +6 -6
- gcore/resources/cloud/tasks.py +46 -46
- gcore/resources/cloud/users/role_assignments.py +5 -4
- gcore/resources/cloud/volumes.py +1125 -223
- gcore/resources/dns/__init__.py +75 -0
- gcore/resources/dns/dns.py +374 -0
- gcore/resources/dns/locations.py +288 -0
- gcore/resources/dns/metrics.py +214 -0
- gcore/resources/dns/pickers/__init__.py +33 -0
- gcore/resources/dns/pickers/pickers.py +167 -0
- gcore/resources/dns/pickers/presets.py +135 -0
- gcore/resources/dns/zones/__init__.py +47 -0
- gcore/resources/{cloud/inference/models.py → dns/zones/dnssec.py} +80 -122
- gcore/resources/dns/zones/rrsets.py +1005 -0
- gcore/resources/dns/zones/zones.py +1493 -0
- gcore/resources/storage/__init__.py +75 -0
- gcore/resources/storage/buckets/__init__.py +61 -0
- gcore/resources/storage/buckets/buckets.py +470 -0
- gcore/resources/storage/buckets/cors.py +265 -0
- gcore/resources/storage/buckets/lifecycle.py +276 -0
- gcore/resources/storage/buckets/policy.py +345 -0
- gcore/resources/storage/credentials.py +221 -0
- gcore/resources/storage/locations.py +190 -0
- gcore/resources/storage/statistics.py +364 -0
- gcore/resources/storage/storage.py +1046 -0
- gcore/resources/streaming/ai_tasks.py +56 -70
- gcore/resources/streaming/playlists.py +18 -18
- gcore/resources/streaming/quality_sets.py +8 -8
- gcore/resources/streaming/statistics.py +4 -122
- gcore/resources/streaming/streams/overlays.py +6 -6
- gcore/resources/streaming/streams/streams.py +40 -64
- gcore/resources/streaming/videos/subtitles.py +32 -30
- gcore/resources/streaming/videos/videos.py +78 -72
- gcore/resources/waap/domains/advanced_rules.py +2 -2
- gcore/resources/waap/domains/api_paths.py +13 -13
- gcore/resources/waap/domains/custom_rules.py +2 -2
- gcore/resources/waap/domains/domains.py +4 -4
- gcore/resources/waap/domains/firewall_rules.py +2 -2
- gcore/resources/waap/domains/insight_silences.py +6 -6
- gcore/resources/waap/domains/insights.py +7 -7
- gcore/resources/waap/domains/statistics.py +47 -47
- gcore/types/cloud/__init__.py +2 -4
- gcore/types/cloud/audit_log_list_params.py +2 -1
- gcore/types/cloud/baremetal/image_list_params.py +3 -2
- gcore/types/cloud/baremetal/server_create_params.py +8 -6
- gcore/types/cloud/baremetal/server_list_params.py +3 -2
- gcore/types/cloud/baremetal/server_rebuild_params.py +2 -0
- gcore/types/cloud/cost_report_get_aggregated_monthly_params.py +35 -31
- gcore/types/cloud/cost_report_get_aggregated_params.py +26 -25
- gcore/types/cloud/cost_report_get_detailed_params.py +26 -25
- gcore/types/cloud/ddos_profile.py +13 -7
- gcore/types/cloud/ddos_profile_field.py +21 -8
- gcore/types/cloud/ddos_profile_option_list.py +7 -6
- gcore/types/cloud/ddos_profile_status.py +2 -2
- gcore/types/cloud/ddos_profile_template.py +7 -3
- gcore/types/cloud/ddos_profile_template_field.py +12 -3
- gcore/types/cloud/file_share.py +2 -2
- gcore/types/cloud/file_share_create_params.py +12 -6
- gcore/types/cloud/floating_ip_list_params.py +3 -2
- gcore/types/cloud/gpu_baremetal_cluster.py +101 -74
- gcore/types/cloud/gpu_baremetal_cluster_create_params.py +76 -93
- gcore/types/cloud/gpu_baremetal_cluster_delete_params.py +17 -10
- gcore/types/cloud/gpu_baremetal_cluster_list_params.py +14 -3
- gcore/types/cloud/gpu_baremetal_cluster_rebuild_params.py +4 -2
- gcore/types/cloud/gpu_baremetal_clusters/__init__.py +6 -0
- gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_cluster_server.py +74 -0
- gcore/types/cloud/{gpu_baremetal_cluster_server.py → gpu_baremetal_clusters/gpu_baremetal_cluster_server_v1.py} +10 -10
- gcore/types/cloud/gpu_baremetal_clusters/gpu_baremetal_cluster_server_v1_list.py +16 -0
- gcore/types/cloud/{gpu_baremetal_flavor.py → gpu_baremetal_clusters/gpu_baremetal_flavor.py} +1 -1
- gcore/types/cloud/{gpu_baremetal_flavor_list.py → gpu_baremetal_clusters/gpu_baremetal_flavor_list.py} +1 -1
- gcore/types/cloud/gpu_baremetal_clusters/server_list_params.py +75 -0
- gcore/types/cloud/inference/__init__.py +0 -5
- gcore/types/cloud/inference/applications/__init__.py +12 -0
- gcore/types/cloud/inference/applications/deployment_create_params.py +68 -0
- gcore/types/cloud/inference/applications/deployment_patch_params.py +62 -0
- gcore/types/cloud/inference/applications/inference_application_deployment.py +111 -0
- gcore/types/cloud/inference/applications/inference_application_deployment_list.py +16 -0
- gcore/types/cloud/inference/applications/inference_application_template.py +94 -0
- gcore/types/cloud/inference/applications/inference_application_template_list.py +16 -0
- gcore/types/cloud/inference/deployment_create_params.py +7 -6
- gcore/types/cloud/inference/deployment_update_params.py +7 -6
- gcore/types/cloud/instance_assign_security_group_params.py +4 -2
- gcore/types/cloud/instance_list_params.py +3 -2
- gcore/types/cloud/instance_unassign_security_group_params.py +4 -2
- gcore/types/cloud/instances/image_list_params.py +3 -2
- gcore/types/cloud/k8s/__init__.py +13 -0
- gcore/types/cloud/k8s/cluster_create_params.py +299 -0
- gcore/types/cloud/k8s/cluster_delete_params.py +16 -0
- gcore/types/cloud/k8s/cluster_update_params.py +203 -0
- gcore/types/cloud/k8s/cluster_upgrade_params.py +16 -0
- gcore/types/cloud/k8s/clusters/__init__.py +10 -0
- gcore/types/cloud/k8s/clusters/k8s_cluster_pool.py +66 -0
- gcore/types/cloud/k8s/clusters/k8s_cluster_pool_list.py +16 -0
- gcore/types/cloud/k8s/clusters/node_list_params.py +16 -0
- gcore/types/cloud/k8s/clusters/pool_create_params.py +53 -0
- gcore/types/cloud/k8s/clusters/pool_resize_params.py +18 -0
- gcore/types/cloud/k8s/clusters/pool_update_params.py +34 -0
- gcore/types/cloud/k8s/clusters/pools/__init__.py +5 -0
- gcore/types/cloud/k8s/clusters/pools/node_list_params.py +18 -0
- gcore/types/cloud/k8s/flavor_list_params.py +19 -0
- gcore/types/cloud/k8s/k8s_cluster.py +209 -0
- gcore/types/cloud/k8s/k8s_cluster_certificate.py +13 -0
- gcore/types/cloud/k8s/k8s_cluster_kubeconfig.py +19 -0
- gcore/types/cloud/k8s/k8s_cluster_list.py +16 -0
- gcore/types/cloud/k8s_cluster_version.py +10 -0
- gcore/types/cloud/{gpu_baremetal_cluster_server_list.py → k8s_cluster_version_list.py} +4 -4
- gcore/types/cloud/load_balancer_create_params.py +23 -4
- gcore/types/cloud/load_balancer_list_params.py +3 -2
- gcore/types/cloud/load_balancers/l7_policies/rule_create_params.py +3 -2
- gcore/types/cloud/load_balancers/l7_policies/rule_replace_params.py +3 -2
- gcore/types/cloud/load_balancers/l7_policy_create_params.py +3 -2
- gcore/types/cloud/load_balancers/l7_policy_replace_params.py +3 -2
- gcore/types/cloud/load_balancers/listener_create_params.py +4 -3
- gcore/types/cloud/load_balancers/listener_update_params.py +5 -3
- gcore/types/cloud/load_balancers/pool_create_params.py +19 -1
- gcore/types/cloud/load_balancers/pool_update_params.py +19 -1
- gcore/types/cloud/load_balancers/pools/member_add_params.py +19 -1
- gcore/types/cloud/member.py +19 -1
- gcore/types/cloud/network_list_params.py +3 -2
- gcore/types/cloud/networks/subnet_create_params.py +3 -2
- gcore/types/cloud/networks/subnet_list_params.py +3 -2
- gcore/types/cloud/networks/subnet_update_params.py +3 -2
- gcore/types/cloud/project.py +9 -9
- gcore/types/cloud/reserved_fixed_ips/vip_replace_connected_ports_params.py +3 -2
- gcore/types/cloud/reserved_fixed_ips/vip_update_connected_ports_params.py +3 -2
- gcore/types/cloud/security_group_create_params.py +4 -2
- gcore/types/cloud/security_group_list_params.py +3 -2
- gcore/types/cloud/task_id_list.py +8 -1
- gcore/types/cloud/task_list_params.py +23 -23
- gcore/types/cloud/usage_report_get_params.py +26 -25
- gcore/types/cloud/users/role_assignment.py +2 -1
- gcore/types/cloud/users/role_assignment_create_params.py +4 -2
- gcore/types/cloud/users/role_assignment_update_params.py +4 -2
- gcore/types/cloud/volume_list_params.py +3 -2
- gcore/types/dns/__init__.py +31 -0
- gcore/types/dns/dns_get_account_overview_response.py +21 -0
- gcore/types/dns/dns_label_name.py +13 -0
- gcore/types/dns/dns_location_translations.py +11 -0
- gcore/types/dns/dns_lookup_params.py +15 -0
- gcore/types/dns/dns_lookup_response.py +21 -0
- gcore/types/dns/dns_name_server.py +17 -0
- gcore/types/dns/location_list_continents_response.py +10 -0
- gcore/types/dns/location_list_countries_response.py +10 -0
- gcore/types/dns/location_list_regions_response.py +10 -0
- gcore/types/dns/location_list_response.py +16 -0
- gcore/types/dns/metric_list_params.py +24 -0
- gcore/types/dns/metric_list_response.py +7 -0
- gcore/types/dns/picker_list_response.py +10 -0
- gcore/types/dns/pickers/__init__.py +5 -0
- gcore/types/dns/pickers/preset_list_response.py +10 -0
- gcore/types/dns/zone_check_delegation_status_response.py +20 -0
- gcore/types/dns/zone_create_params.py +59 -0
- gcore/types/dns/zone_create_response.py +13 -0
- gcore/types/dns/zone_export_response.py +11 -0
- gcore/types/dns/zone_get_response.py +106 -0
- gcore/types/dns/zone_get_statistics_params.py +43 -0
- gcore/types/dns/zone_get_statistics_response.py +19 -0
- gcore/types/dns/zone_import_params.py +32 -0
- gcore/types/dns/zone_import_response.py +26 -0
- gcore/types/dns/zone_list_params.py +57 -0
- gcore/types/dns/zone_list_response.py +105 -0
- gcore/types/dns/zone_replace_params.py +61 -0
- gcore/types/dns/zones/__init__.py +15 -0
- gcore/types/dns/zones/dns_failover_log.py +19 -0
- gcore/types/dns/zones/dns_output_rrset.py +123 -0
- gcore/types/dns/zones/dnssec_get_response.py +38 -0
- gcore/types/dns/zones/dnssec_update_params.py +11 -0
- gcore/types/dns/zones/dnssec_update_response.py +38 -0
- gcore/types/dns/zones/rrset_create_params.py +82 -0
- gcore/types/dns/zones/rrset_get_failover_logs_params.py +21 -0
- gcore/types/dns/zones/rrset_get_failover_logs_response.py +15 -0
- gcore/types/dns/zones/rrset_list_params.py +21 -0
- gcore/types/dns/zones/rrset_list_response.py +14 -0
- gcore/types/dns/zones/rrset_replace_params.py +82 -0
- gcore/types/security/client_profile.py +1 -1
- gcore/types/security/profile_create_params.py +2 -2
- gcore/types/security/profile_recreate_params.py +2 -2
- gcore/types/security/profile_replace_params.py +2 -2
- gcore/types/storage/__init__.py +21 -0
- gcore/types/storage/bucket.py +15 -0
- gcore/types/storage/bucket_list_params.py +15 -0
- gcore/types/storage/buckets/__init__.py +9 -0
- gcore/types/storage/buckets/bucket_cors.py +18 -0
- gcore/types/storage/buckets/bucket_policy.py +7 -0
- gcore/types/storage/buckets/cor_create_params.py +17 -0
- gcore/types/storage/buckets/lifecycle_create_params.py +18 -0
- gcore/types/storage/buckets/policy_get_response.py +7 -0
- gcore/types/storage/credential_recreate_params.py +36 -0
- gcore/types/storage/location.py +24 -0
- gcore/types/storage/location_list_params.py +13 -0
- gcore/types/storage/statistic_get_usage_aggregated_params.py +24 -0
- gcore/types/storage/statistic_get_usage_series_params.py +38 -0
- gcore/types/storage/statistic_get_usage_series_response.py +12 -0
- gcore/types/storage/storage.py +101 -0
- gcore/types/storage/storage_create_params.py +44 -0
- gcore/types/storage/storage_list_params.py +39 -0
- gcore/types/storage/storage_restore_params.py +11 -0
- gcore/types/storage/storage_update_params.py +18 -0
- gcore/types/storage/usage_series.py +201 -0
- gcore/types/storage/usage_total.py +54 -0
- gcore/types/streaming/__init__.py +0 -4
- gcore/types/streaming/ai_contentmoderation_hardnudity.py +1 -1
- gcore/types/streaming/ai_contentmoderation_nsfw.py +1 -1
- gcore/types/streaming/ai_contentmoderation_softnudity.py +1 -1
- gcore/types/streaming/ai_contentmoderation_sport.py +1 -1
- gcore/types/streaming/ai_task.py +1 -5
- gcore/types/streaming/ai_task_create_params.py +2 -2
- gcore/types/streaming/ai_task_get_response.py +0 -46
- gcore/types/streaming/clip.py +2 -1
- gcore/types/streaming/create_video_param.py +13 -12
- gcore/types/streaming/max_stream_series.py +5 -5
- gcore/types/streaming/playlist.py +1 -1
- gcore/types/streaming/playlist_create_params.py +1 -1
- gcore/types/streaming/playlist_update_params.py +1 -1
- gcore/types/streaming/playlist_video.py +13 -12
- gcore/types/streaming/storage_series.py +5 -5
- gcore/types/streaming/stream.py +86 -49
- gcore/types/streaming/stream_create_clip_params.py +2 -1
- gcore/types/streaming/stream_create_params.py +9 -23
- gcore/types/streaming/stream_series.py +5 -5
- gcore/types/streaming/stream_update_params.py +9 -23
- gcore/types/streaming/video.py +53 -42
- gcore/types/streaming/video_update_params.py +13 -12
- gcore/types/streaming/vod_statistics_series.py +5 -5
- gcore/types/streaming/vod_total_stream_duration_series.py +3 -3
- gcore/types/waap/domain_list_params.py +1 -1
- gcore/types/waap/domain_update_params.py +1 -1
- gcore/types/waap/domains/advanced_rule_create_params.py +7 -4
- gcore/types/waap/domains/advanced_rule_update_params.py +6 -3
- gcore/types/waap/domains/api_path_create_params.py +4 -3
- gcore/types/waap/domains/api_path_list_params.py +3 -1
- gcore/types/waap/domains/api_path_update_params.py +5 -4
- gcore/types/waap/domains/custom_rule_create_params.py +13 -14
- gcore/types/waap/domains/custom_rule_update_params.py +12 -13
- gcore/types/waap/domains/firewall_rule_create_params.py +3 -2
- gcore/types/waap/domains/firewall_rule_update_params.py +2 -1
- gcore/types/waap/domains/insight_list_params.py +4 -2
- gcore/types/waap/domains/insight_replace_params.py +1 -1
- gcore/types/waap/domains/insight_silence_list_params.py +5 -3
- gcore/types/waap/domains/setting_update_params.py +3 -2
- gcore/types/waap/domains/statistic_get_ddos_info_params.py +6 -9
- gcore/types/waap/domains/statistic_get_events_aggregated_params.py +9 -10
- gcore/types/waap/domains/statistic_get_requests_series_params.py +8 -9
- gcore/types/waap/domains/statistic_get_traffic_series_params.py +6 -9
- gcore/types/waap/domains/waap_advanced_rule.py +3 -2
- gcore/types/waap/domains/waap_api_path.py +4 -4
- gcore/types/waap/domains/waap_api_scan_result.py +2 -2
- gcore/types/waap/domains/waap_custom_rule.py +4 -7
- gcore/types/waap/domains/waap_firewall_rule.py +3 -2
- gcore/types/waap/domains/waap_insight.py +1 -1
- gcore/types/waap/domains/waap_request_details.py +5 -4
- gcore/types/waap/waap_ip_ddos_info_model.py +3 -3
- gcore/types/waap/waap_rule_set.py +1 -1
- {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/METADATA +7 -2
- {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/RECORD +313 -193
- gcore/types/cloud/inference/inference_model.py +0 -65
- gcore/types/cloud/inference/inference_registry_credentials_create.py +0 -22
- gcore/types/cloud/inference/model_list_params.py +0 -21
- gcore/types/streaming/ai_contentmoderation_casm.py +0 -39
- gcore/types/streaming/ai_contentmoderation_weapon.py +0 -39
- gcore/types/streaming/meet_series.py +0 -23
- gcore/types/streaming/statistic_get_meet_series_params.py +0 -20
- {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/WHEEL +0 -0
- {gcore-0.10.0.dist-info → gcore-0.12.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,6 +5,8 @@ from __future__ import annotations
|
|
|
5
5
|
from typing import List, Iterable, Optional
|
|
6
6
|
from typing_extensions import Literal, Required, TypedDict
|
|
7
7
|
|
|
8
|
+
from ...._types import SequenceNotStr
|
|
9
|
+
|
|
8
10
|
__all__ = [
|
|
9
11
|
"CustomRuleUpdateParams",
|
|
10
12
|
"Action",
|
|
@@ -61,7 +63,8 @@ class ActionBlock(TypedDict, total=False):
|
|
|
61
63
|
"""How long a rule's block action will apply to subsequent requests.
|
|
62
64
|
|
|
63
65
|
Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or
|
|
64
|
-
'd' to represent time format (seconds, minutes, hours, or days)
|
|
66
|
+
'd' to represent time format (seconds, minutes, hours, or days). Empty time
|
|
67
|
+
intervals are not allowed.
|
|
65
68
|
"""
|
|
66
69
|
|
|
67
70
|
status_code: Optional[Literal[403, 405, 418, 429]]
|
|
@@ -69,7 +72,7 @@ class ActionBlock(TypedDict, total=False):
|
|
|
69
72
|
|
|
70
73
|
|
|
71
74
|
class ActionTag(TypedDict, total=False):
|
|
72
|
-
tags: Required[
|
|
75
|
+
tags: Required[SequenceNotStr[str]]
|
|
73
76
|
"""The list of user defined tags to tag the request with"""
|
|
74
77
|
|
|
75
78
|
|
|
@@ -97,7 +100,7 @@ class Action(TypedDict, total=False):
|
|
|
97
100
|
|
|
98
101
|
|
|
99
102
|
class ConditionContentType(TypedDict, total=False):
|
|
100
|
-
content_type: Required[
|
|
103
|
+
content_type: Required[SequenceNotStr[str]]
|
|
101
104
|
"""The list of content types to match against"""
|
|
102
105
|
|
|
103
106
|
negation: bool
|
|
@@ -105,7 +108,7 @@ class ConditionContentType(TypedDict, total=False):
|
|
|
105
108
|
|
|
106
109
|
|
|
107
110
|
class ConditionCountry(TypedDict, total=False):
|
|
108
|
-
country_code: Required[
|
|
111
|
+
country_code: Required[SequenceNotStr[str]]
|
|
109
112
|
"""
|
|
110
113
|
A list of ISO 3166-1 alpha-2 formatted strings representing the countries to
|
|
111
114
|
match against
|
|
@@ -116,7 +119,7 @@ class ConditionCountry(TypedDict, total=False):
|
|
|
116
119
|
|
|
117
120
|
|
|
118
121
|
class ConditionFileExtension(TypedDict, total=False):
|
|
119
|
-
file_extension: Required[
|
|
122
|
+
file_extension: Required[SequenceNotStr[str]]
|
|
120
123
|
"""The list of file extensions to match against"""
|
|
121
124
|
|
|
122
125
|
negation: bool
|
|
@@ -147,11 +150,7 @@ class ConditionHeaderExists(TypedDict, total=False):
|
|
|
147
150
|
|
|
148
151
|
class ConditionHTTPMethod(TypedDict, total=False):
|
|
149
152
|
http_method: Required[Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]]
|
|
150
|
-
"""HTTP methods
|
|
151
|
-
|
|
152
|
-
- RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
|
|
153
|
-
- RFC 5789: PATCH Method for HTTP
|
|
154
|
-
"""
|
|
153
|
+
"""HTTP methods of a request"""
|
|
155
154
|
|
|
156
155
|
negation: bool
|
|
157
156
|
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
@@ -227,7 +226,7 @@ class ConditionRequestRate(TypedDict, total=False):
|
|
|
227
226
|
]
|
|
228
227
|
"""Possible HTTP request methods that can trigger a request rate condition"""
|
|
229
228
|
|
|
230
|
-
ips: Optional[
|
|
229
|
+
ips: Optional[SequenceNotStr[str]]
|
|
231
230
|
"""A list of source IPs that can trigger a request rate condition"""
|
|
232
231
|
|
|
233
232
|
user_defined_tag: Optional[str]
|
|
@@ -268,7 +267,7 @@ class ConditionSessionRequestCount(TypedDict, total=False):
|
|
|
268
267
|
|
|
269
268
|
|
|
270
269
|
class ConditionTags(TypedDict, total=False):
|
|
271
|
-
tags: Required[
|
|
270
|
+
tags: Required[SequenceNotStr[str]]
|
|
272
271
|
"""A list of tags to match against the request tags"""
|
|
273
272
|
|
|
274
273
|
negation: bool
|
|
@@ -306,7 +305,7 @@ class ConditionUserAgent(TypedDict, total=False):
|
|
|
306
305
|
|
|
307
306
|
|
|
308
307
|
class ConditionUserDefinedTags(TypedDict, total=False):
|
|
309
|
-
tags: Required[
|
|
308
|
+
tags: Required[SequenceNotStr[str]]
|
|
310
309
|
"""A list of user-defined tags to match against the request tags"""
|
|
311
310
|
|
|
312
311
|
negation: bool
|
|
@@ -10,7 +10,7 @@ __all__ = ["FirewallRuleCreateParams", "Action", "ActionBlock", "Condition", "Co
|
|
|
10
10
|
|
|
11
11
|
class FirewallRuleCreateParams(TypedDict, total=False):
|
|
12
12
|
action: Required[Action]
|
|
13
|
-
"""The action that
|
|
13
|
+
"""The action that the rule takes when triggered"""
|
|
14
14
|
|
|
15
15
|
conditions: Required[Iterable[Condition]]
|
|
16
16
|
"""The condition required for the WAAP engine to trigger the rule."""
|
|
@@ -30,7 +30,8 @@ class ActionBlock(TypedDict, total=False):
|
|
|
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
|
|
33
|
-
'd' to represent time format (seconds, minutes, hours, or days)
|
|
33
|
+
'd' to represent time format (seconds, minutes, hours, or days). Empty time
|
|
34
|
+
intervals are not allowed.
|
|
34
35
|
"""
|
|
35
36
|
|
|
36
37
|
status_code: Optional[Literal[403, 405, 418, 429]]
|
|
@@ -33,7 +33,8 @@ class ActionBlock(TypedDict, total=False):
|
|
|
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
|
|
36
|
-
'd' to represent time format (seconds, minutes, hours, or days)
|
|
36
|
+
'd' to represent time format (seconds, minutes, hours, or days). Empty time
|
|
37
|
+
intervals are not allowed.
|
|
37
38
|
"""
|
|
38
39
|
|
|
39
40
|
status_code: Optional[Literal[403, 405, 418, 429]]
|
|
@@ -5,17 +5,19 @@ from __future__ import annotations
|
|
|
5
5
|
from typing import List, Optional
|
|
6
6
|
from typing_extensions import Literal, TypedDict
|
|
7
7
|
|
|
8
|
+
from ...._types import SequenceNotStr
|
|
9
|
+
|
|
8
10
|
__all__ = ["InsightListParams"]
|
|
9
11
|
|
|
10
12
|
|
|
11
13
|
class InsightListParams(TypedDict, total=False):
|
|
12
|
-
id: Optional[
|
|
14
|
+
id: Optional[SequenceNotStr[str]]
|
|
13
15
|
"""The ID of the insight"""
|
|
14
16
|
|
|
15
17
|
description: Optional[str]
|
|
16
18
|
"""The description of the insight. Supports '\\**' as a wildcard."""
|
|
17
19
|
|
|
18
|
-
insight_type: Optional[
|
|
20
|
+
insight_type: Optional[SequenceNotStr[str]]
|
|
19
21
|
"""The type of the insight"""
|
|
20
22
|
|
|
21
23
|
limit: int
|
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import Optional
|
|
6
6
|
from typing_extensions import Literal, TypedDict
|
|
7
7
|
|
|
8
|
+
from ...._types import SequenceNotStr
|
|
9
|
+
|
|
8
10
|
__all__ = ["InsightSilenceListParams"]
|
|
9
11
|
|
|
10
12
|
|
|
11
13
|
class InsightSilenceListParams(TypedDict, total=False):
|
|
12
|
-
id: Optional[
|
|
14
|
+
id: Optional[SequenceNotStr[str]]
|
|
13
15
|
"""The ID of the insight silence"""
|
|
14
16
|
|
|
15
17
|
author: Optional[str]
|
|
@@ -18,7 +20,7 @@ class InsightSilenceListParams(TypedDict, total=False):
|
|
|
18
20
|
comment: Optional[str]
|
|
19
21
|
"""The comment of the insight silence"""
|
|
20
22
|
|
|
21
|
-
insight_type: Optional[
|
|
23
|
+
insight_type: Optional[SequenceNotStr[str]]
|
|
22
24
|
"""The type of the insight silence"""
|
|
23
25
|
|
|
24
26
|
limit: int
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import List
|
|
6
5
|
from typing_extensions import TypedDict
|
|
7
6
|
|
|
7
|
+
from ...._types import SequenceNotStr
|
|
8
|
+
|
|
8
9
|
__all__ = ["SettingUpdateParams", "API", "DDOS"]
|
|
9
10
|
|
|
10
11
|
|
|
@@ -17,7 +18,7 @@ class SettingUpdateParams(TypedDict, total=False):
|
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
class API(TypedDict, total=False):
|
|
20
|
-
api_urls:
|
|
21
|
+
api_urls: SequenceNotStr[str]
|
|
21
22
|
"""The API URLs for a domain.
|
|
22
23
|
|
|
23
24
|
If your domain has a common base URL for all API paths, it can be set here
|
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import
|
|
6
|
-
from
|
|
7
|
-
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
8
|
-
|
|
9
|
-
from ...._utils import PropertyInfo
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
10
7
|
|
|
11
8
|
__all__ = ["StatisticGetDDOSInfoParams"]
|
|
12
9
|
|
|
@@ -15,11 +12,11 @@ class StatisticGetDDOSInfoParams(TypedDict, total=False):
|
|
|
15
12
|
group_by: Required[Literal["URL", "User-Agent", "IP"]]
|
|
16
13
|
"""The identity of the requests to group by"""
|
|
17
14
|
|
|
18
|
-
start: Required[
|
|
19
|
-
"""Filter
|
|
15
|
+
start: Required[str]
|
|
16
|
+
"""Filter data items starting from a specified date in ISO 8601 format"""
|
|
20
17
|
|
|
21
|
-
end:
|
|
22
|
-
"""Filter
|
|
18
|
+
end: Optional[str]
|
|
19
|
+
"""Filter data items up to a specified end date in ISO 8601 format.
|
|
23
20
|
|
|
24
21
|
If not provided, defaults to the current date and time.
|
|
25
22
|
"""
|
|
@@ -2,32 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import List,
|
|
6
|
-
from
|
|
7
|
-
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
5
|
+
from typing import List, Optional
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
8
7
|
|
|
9
|
-
from ....
|
|
8
|
+
from ...._types import SequenceNotStr
|
|
10
9
|
|
|
11
10
|
__all__ = ["StatisticGetEventsAggregatedParams"]
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
class StatisticGetEventsAggregatedParams(TypedDict, total=False):
|
|
15
|
-
start: Required[
|
|
16
|
-
"""Filter
|
|
14
|
+
start: Required[str]
|
|
15
|
+
"""Filter data items starting from a specified date in ISO 8601 format"""
|
|
17
16
|
|
|
18
17
|
action: Optional[List[Literal["block", "captcha", "handshake", "monitor"]]]
|
|
19
18
|
"""A list of action names to filter on."""
|
|
20
19
|
|
|
21
|
-
end:
|
|
22
|
-
"""Filter
|
|
20
|
+
end: Optional[str]
|
|
21
|
+
"""Filter data items up to a specified end date in ISO 8601 format.
|
|
23
22
|
|
|
24
23
|
If not provided, defaults to the current date and time.
|
|
25
24
|
"""
|
|
26
25
|
|
|
27
|
-
ip: Optional[
|
|
26
|
+
ip: Optional[SequenceNotStr[str]]
|
|
28
27
|
"""A list of IPs to filter event statistics."""
|
|
29
28
|
|
|
30
|
-
reference_id: Optional[
|
|
29
|
+
reference_id: Optional[SequenceNotStr[str]]
|
|
31
30
|
"""A list of reference IDs to filter event statistics."""
|
|
32
31
|
|
|
33
32
|
result: Optional[List[Literal["passed", "blocked", "monitored", "allowed"]]]
|
|
@@ -2,27 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import List,
|
|
6
|
-
from
|
|
7
|
-
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
5
|
+
from typing import List, Optional
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
8
7
|
|
|
9
|
-
from ....
|
|
8
|
+
from ...._types import SequenceNotStr
|
|
10
9
|
|
|
11
10
|
__all__ = ["StatisticGetRequestsSeriesParams"]
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
class StatisticGetRequestsSeriesParams(TypedDict, total=False):
|
|
15
|
-
start: Required[
|
|
16
|
-
"""Filter
|
|
14
|
+
start: Required[str]
|
|
15
|
+
"""Filter data items starting from a specified date in ISO 8601 format"""
|
|
17
16
|
|
|
18
17
|
actions: List[Literal["allow", "block", "captcha", "handshake"]]
|
|
19
18
|
"""Filter the response by actions."""
|
|
20
19
|
|
|
21
|
-
countries:
|
|
20
|
+
countries: SequenceNotStr[str]
|
|
22
21
|
"""Filter the response by country codes in ISO 3166-1 alpha-2 format."""
|
|
23
22
|
|
|
24
|
-
end:
|
|
25
|
-
"""Filter
|
|
23
|
+
end: Optional[str]
|
|
24
|
+
"""Filter data items up to a specified end date in ISO 8601 format.
|
|
26
25
|
|
|
27
26
|
If not provided, defaults to the current date and time.
|
|
28
27
|
"""
|
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import
|
|
6
|
-
from
|
|
7
|
-
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
8
|
-
|
|
9
|
-
from ...._utils import PropertyInfo
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
10
7
|
|
|
11
8
|
__all__ = ["StatisticGetTrafficSeriesParams"]
|
|
12
9
|
|
|
@@ -15,11 +12,11 @@ class StatisticGetTrafficSeriesParams(TypedDict, total=False):
|
|
|
15
12
|
resolution: Required[Literal["daily", "hourly", "minutely"]]
|
|
16
13
|
"""Specifies the granularity of the result data."""
|
|
17
14
|
|
|
18
|
-
start: Required[
|
|
19
|
-
"""Filter
|
|
15
|
+
start: Required[str]
|
|
16
|
+
"""Filter data items starting from a specified date in ISO 8601 format"""
|
|
20
17
|
|
|
21
|
-
end:
|
|
22
|
-
"""Filter
|
|
18
|
+
end: Optional[str]
|
|
19
|
+
"""Filter data items up to a specified end date in ISO 8601 format.
|
|
23
20
|
|
|
24
21
|
If not provided, defaults to the current date and time.
|
|
25
22
|
"""
|
|
@@ -13,7 +13,8 @@ class ActionBlock(BaseModel):
|
|
|
13
13
|
"""How long a rule's block action will apply to subsequent requests.
|
|
14
14
|
|
|
15
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)
|
|
16
|
+
'd' to represent time format (seconds, minutes, hours, or days). Empty time
|
|
17
|
+
intervals are not allowed.
|
|
17
18
|
"""
|
|
18
19
|
|
|
19
20
|
status_code: Optional[Literal[403, 405, 418, 429]] = None
|
|
@@ -53,7 +54,7 @@ class WaapAdvancedRule(BaseModel):
|
|
|
53
54
|
"""The unique identifier for the rule"""
|
|
54
55
|
|
|
55
56
|
action: Action
|
|
56
|
-
"""The action that
|
|
57
|
+
"""The action that the rule takes when triggered"""
|
|
57
58
|
|
|
58
59
|
enabled: bool
|
|
59
60
|
"""Whether or not the rule is enabled"""
|
|
@@ -23,13 +23,13 @@ class WaapAPIPath(BaseModel):
|
|
|
23
23
|
"""The date and time in ISO 8601 format the API path was first detected."""
|
|
24
24
|
|
|
25
25
|
http_scheme: Literal["HTTP", "HTTPS"]
|
|
26
|
-
"""The
|
|
26
|
+
"""The HTTP version of the API path"""
|
|
27
27
|
|
|
28
28
|
last_detected: datetime
|
|
29
29
|
"""The date and time in ISO 8601 format the API path was last detected."""
|
|
30
30
|
|
|
31
31
|
method: Literal["GET", "POST", "PUT", "PATCH", "DELETE", "TRACE", "HEAD", "OPTIONS"]
|
|
32
|
-
"""The
|
|
32
|
+
"""The API RESTful method"""
|
|
33
33
|
|
|
34
34
|
path: str
|
|
35
35
|
"""
|
|
@@ -41,10 +41,10 @@ class WaapAPIPath(BaseModel):
|
|
|
41
41
|
"""The number of requests for this path in the last 24 hours"""
|
|
42
42
|
|
|
43
43
|
source: Literal["API_DESCRIPTION_FILE", "TRAFFIC_SCAN", "USER_DEFINED"]
|
|
44
|
-
"""The
|
|
44
|
+
"""The source of the discovered API"""
|
|
45
45
|
|
|
46
46
|
status: Literal["CONFIRMED_API", "POTENTIAL_API", "NOT_API", "DELISTED_API"]
|
|
47
|
-
"""The
|
|
47
|
+
"""The status of the discovered API path"""
|
|
48
48
|
|
|
49
49
|
tags: List[str]
|
|
50
50
|
"""An array of tags associated with the API path"""
|
|
@@ -23,7 +23,7 @@ class WaapAPIScanResult(BaseModel):
|
|
|
23
23
|
"""The date and time the scan started"""
|
|
24
24
|
|
|
25
25
|
status: Literal["SUCCESS", "FAILURE", "IN_PROGRESS"]
|
|
26
|
-
"""The
|
|
26
|
+
"""The status of the scan"""
|
|
27
27
|
|
|
28
28
|
type: Literal["TRAFFIC_SCAN", "API_DESCRIPTION_FILE_SCAN"]
|
|
29
|
-
"""The
|
|
29
|
+
"""The type of scan"""
|
|
@@ -37,7 +37,8 @@ class ActionBlock(BaseModel):
|
|
|
37
37
|
"""How long a rule's block action will apply to subsequent requests.
|
|
38
38
|
|
|
39
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)
|
|
40
|
+
'd' to represent time format (seconds, minutes, hours, or days). Empty time
|
|
41
|
+
intervals are not allowed.
|
|
41
42
|
"""
|
|
42
43
|
|
|
43
44
|
status_code: Optional[Literal[403, 405, 418, 429]] = None
|
|
@@ -123,11 +124,7 @@ class ConditionHeaderExists(BaseModel):
|
|
|
123
124
|
|
|
124
125
|
class ConditionHTTPMethod(BaseModel):
|
|
125
126
|
http_method: Literal["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"]
|
|
126
|
-
"""HTTP methods
|
|
127
|
-
|
|
128
|
-
- RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
|
|
129
|
-
- RFC 5789: PATCH Method for HTTP
|
|
130
|
-
"""
|
|
127
|
+
"""HTTP methods of a request"""
|
|
131
128
|
|
|
132
129
|
negation: Optional[bool] = None
|
|
133
130
|
"""Whether or not to apply a boolean NOT operation to the rule's condition"""
|
|
@@ -358,7 +355,7 @@ class WaapCustomRule(BaseModel):
|
|
|
358
355
|
"""The unique identifier for the rule"""
|
|
359
356
|
|
|
360
357
|
action: Action
|
|
361
|
-
"""The action that
|
|
358
|
+
"""The action that the rule takes when triggered"""
|
|
362
359
|
|
|
363
360
|
conditions: List[Condition]
|
|
364
361
|
"""The conditions required for the WAAP engine to trigger the rule.
|
|
@@ -13,7 +13,8 @@ class ActionBlock(BaseModel):
|
|
|
13
13
|
"""How long a rule's block action will apply to subsequent requests.
|
|
14
14
|
|
|
15
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)
|
|
16
|
+
'd' to represent time format (seconds, minutes, hours, or days). Empty time
|
|
17
|
+
intervals are not allowed.
|
|
17
18
|
"""
|
|
18
19
|
|
|
19
20
|
status_code: Optional[Literal[403, 405, 418, 429]] = None
|
|
@@ -63,7 +64,7 @@ class WaapFirewallRule(BaseModel):
|
|
|
63
64
|
"""The unique identifier of the rule"""
|
|
64
65
|
|
|
65
66
|
action: Action
|
|
66
|
-
"""The action that
|
|
67
|
+
"""The action that the rule takes when triggered"""
|
|
67
68
|
|
|
68
69
|
conditions: List[Condition]
|
|
69
70
|
"""The condition required for the WAAP engine to trigger the rule."""
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
from typing import List
|
|
3
|
+
from typing import Dict, List
|
|
4
|
+
from datetime import datetime
|
|
4
5
|
from typing_extensions import Literal
|
|
5
6
|
|
|
6
7
|
from ...._models import BaseModel
|
|
@@ -148,10 +149,10 @@ class WaapRequestDetails(BaseModel):
|
|
|
148
149
|
reference_id: str
|
|
149
150
|
"""Reference ID to identify user sanction"""
|
|
150
151
|
|
|
151
|
-
request_headers: object
|
|
152
|
+
request_headers: Dict[str, object]
|
|
152
153
|
"""HTTP request headers"""
|
|
153
154
|
|
|
154
|
-
request_time:
|
|
155
|
+
request_time: datetime
|
|
155
156
|
"""The time of the request"""
|
|
156
157
|
|
|
157
158
|
request_type: str
|
|
@@ -182,4 +183,4 @@ class WaapRequestDetails(BaseModel):
|
|
|
182
183
|
"""List of traffic types"""
|
|
183
184
|
|
|
184
185
|
user_agent: UserAgent
|
|
185
|
-
"""User agent
|
|
186
|
+
"""User agent"""
|
|
@@ -4,10 +4,10 @@ from typing import List
|
|
|
4
4
|
|
|
5
5
|
from ..._models import BaseModel
|
|
6
6
|
|
|
7
|
-
__all__ = ["WaapIPDDOSInfoModel", "
|
|
7
|
+
__all__ = ["WaapIPDDOSInfoModel", "TimeSeries"]
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class
|
|
10
|
+
class TimeSeries(BaseModel):
|
|
11
11
|
count: int
|
|
12
12
|
"""The number of attacks"""
|
|
13
13
|
|
|
@@ -19,5 +19,5 @@ class WaapIPDDOSInfoModel(BaseModel):
|
|
|
19
19
|
botnet_client: bool
|
|
20
20
|
"""Indicates if the IP is tagged as a botnet client"""
|
|
21
21
|
|
|
22
|
-
time_series: List[
|
|
22
|
+
time_series: List[TimeSeries]
|
|
23
23
|
"""The time series data for the DDoS attacks from the IP address"""
|
|
@@ -24,7 +24,7 @@ class Rule(BaseModel):
|
|
|
24
24
|
"""Unique identifier for the security rule"""
|
|
25
25
|
|
|
26
26
|
action: Literal["Allow", "Block", "Captcha", "Gateway", "Handshake", "Monitor", "Composite"]
|
|
27
|
-
"""
|
|
27
|
+
"""Specifies the action taken by the WAAP upon rule activation"""
|
|
28
28
|
|
|
29
29
|
description: str
|
|
30
30
|
"""Detailed description of the security rule"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: gcore
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.0
|
|
4
4
|
Summary: The official Python library for the gcore API
|
|
5
5
|
Project-URL: Homepage, https://github.com/G-Core/gcore-python
|
|
6
6
|
Project-URL: Repository, https://github.com/G-Core/gcore-python
|
|
@@ -36,7 +36,8 @@ Description-Content-Type: text/markdown
|
|
|
36
36
|
# Gcore Python API library
|
|
37
37
|
|
|
38
38
|
<!-- prettier-ignore -->
|
|
39
|
-
[)](https://
|
|
39
|
+
[)[](https://app.fossa.com/projects/git%2Bgithub.com%2FG-Core%2Fgcore-python?ref=badge_shield)
|
|
40
|
+
](https://pypi.org/project/gcore/)
|
|
40
41
|
|
|
41
42
|
The Gcore Python library provides convenient access to the Gcore REST API from any Python 3.8+
|
|
42
43
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -518,3 +519,7 @@ Python 3.8 or higher.
|
|
|
518
519
|
## Contributing
|
|
519
520
|
|
|
520
521
|
See [the contributing documentation](https://github.com/G-Core/gcore-python/tree/main/./CONTRIBUTING.md).
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
## License
|
|
525
|
+
[](https://app.fossa.com/projects/git%2Bgithub.com%2FG-Core%2Fgcore-python?ref=badge_large)
|