gcore 0.1.0a2__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/__init__.py +5 -0
- gcore/_base_client.py +22 -2
- gcore/_client.py +9 -0
- gcore/_models.py +2 -0
- gcore/_types.py +2 -0
- gcore/_utils/_proxy.py +4 -1
- gcore/_utils/_resources_proxy.py +24 -0
- gcore/_version.py +1 -1
- gcore/resources/__init__.py +14 -0
- gcore/resources/cloud/baremetal/flavors.py +2 -2
- gcore/resources/cloud/baremetal/images.py +2 -2
- gcore/resources/cloud/baremetal/servers.py +280 -52
- gcore/resources/cloud/billing_reservations.py +24 -0
- gcore/resources/cloud/file_shares/file_shares.py +16 -0
- gcore/resources/cloud/floating_ips.py +4 -4
- gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +358 -8
- gcore/resources/cloud/gpu_baremetal_clusters/images.py +206 -2
- gcore/resources/cloud/gpu_baremetal_clusters/servers.py +84 -4
- gcore/resources/cloud/inference/deployments/deployments.py +328 -10
- gcore/resources/cloud/instances/flavors.py +2 -2
- gcore/resources/cloud/instances/images.py +318 -2
- gcore/resources/cloud/instances/instances.py +534 -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 +302 -20
- gcore/resources/cloud/load_balancers/l7_policies/rules.py +326 -0
- gcore/resources/cloud/load_balancers/listeners.py +385 -20
- gcore/resources/cloud/load_balancers/load_balancers.py +392 -24
- gcore/resources/cloud/load_balancers/pools/health_monitors.py +24 -0
- gcore/resources/cloud/load_balancers/pools/members.py +34 -6
- gcore/resources/cloud/load_balancers/pools/pools.py +388 -8
- gcore/resources/cloud/networks/networks.py +72 -16
- 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/secrets.py +56 -11
- gcore/resources/cloud/security_groups/security_groups.py +2 -2
- gcore/resources/cloud/ssh_keys.py +2 -2
- gcore/resources/cloud/tasks.py +203 -184
- gcore/resources/cloud/users/role_assignments.py +4 -4
- gcore/resources/cloud/volumes.py +18 -18
- gcore/resources/waap/__init__.py +131 -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 +173 -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 +914 -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 +271 -0
- 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 +391 -0
- gcore/types/cloud/__init__.py +1 -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/billing_reservation_list_params.py +5 -0
- gcore/types/cloud/container_probe_config.py +1 -1
- gcore/types/cloud/container_probe_config_create_param.py +2 -3
- gcore/types/cloud/container_scale_triggers.py +2 -2
- gcore/types/cloud/file_share.py +3 -0
- gcore/types/cloud/file_share_list_params.py +7 -1
- 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 +21 -1
- 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 +206 -9
- gcore/types/cloud/inference/inference.py +5 -5
- 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 +17 -17
- gcore/types/cloud/load_balancer_pool.py +13 -13
- gcore/types/cloud/load_balancer_pool_list.py +99 -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 +6 -4
- gcore/types/cloud/load_balancers/listener_get_params.py +3 -1
- gcore/types/cloud/load_balancers/listener_list_params.py +4 -2
- gcore/types/cloud/load_balancers/listener_update_params.py +5 -3
- gcore/types/cloud/load_balancers/pool_create_params.py +6 -4
- gcore/types/cloud/load_balancers/pool_list_params.py +5 -6
- gcore/types/cloud/load_balancers/pool_update_params.py +6 -4
- gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +2 -0
- gcore/types/cloud/load_balancers/pools/member_add_params.py +5 -3
- gcore/types/cloud/member.py +2 -2
- gcore/types/cloud/network.py +22 -22
- gcore/types/cloud/network_create_params.py +2 -0
- gcore/types/cloud/network_details.py +25 -24
- gcore/types/cloud/network_list_params.py +15 -10
- gcore/types/cloud/network_update_params.py +2 -0
- gcore/types/cloud/networks/subnet_create_params.py +1 -1
- gcore/types/cloud/networks/subnet_list_params.py +2 -2
- gcore/types/cloud/quota_get_all_response.py +18 -0
- gcore/types/cloud/quota_get_by_region_response.py +18 -0
- gcore/types/cloud/quotas/request_create_params.py +9 -0
- gcore/types/cloud/quotas/request_get_response.py +9 -0
- gcore/types/cloud/quotas/request_list_response.py +9 -0
- 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/secret_list_params.py +24 -0
- 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 -4
- gcore/types/cloud/task_list_params.py +56 -46
- 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 +108 -0
- 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_params.py +30 -0
- gcore/types/waap/domain_list_rule_sets_response.py +10 -0
- gcore/types/waap/domain_update_params.py +12 -0
- gcore/types/waap/domains/__init__.py +47 -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 +48 -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_detailed_domain.py +37 -0
- gcore/types/waap/waap_domain_api_settings.py +22 -0
- gcore/types/waap/waap_domain_ddos_settings.py +31 -0
- gcore/types/waap/waap_domain_policy.py +29 -0
- gcore/types/waap/waap_domain_settings_model.py +15 -0
- gcore/types/waap/waap_domain_status.py +7 -0
- 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_summary_domain.py +26 -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.1.0a2.dist-info → gcore-0.3.0.dist-info}/METADATA +3 -3
- {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/RECORD +293 -126
- {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/WHEEL +0 -0
- {gcore-0.1.0a2.dist-info → gcore-0.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -331,6 +331,169 @@ class RulesResource(SyncAPIResource):
|
|
|
331
331
|
cast_to=TaskIDList,
|
|
332
332
|
)
|
|
333
333
|
|
|
334
|
+
def create_and_poll(
|
|
335
|
+
self,
|
|
336
|
+
l7policy_id: str,
|
|
337
|
+
*,
|
|
338
|
+
project_id: int | None = None,
|
|
339
|
+
region_id: int | None = None,
|
|
340
|
+
compare_type: Literal["CONTAINS", "ENDS_WITH", "EQUAL_TO", "REGEX", "STARTS_WITH"],
|
|
341
|
+
type: Literal[
|
|
342
|
+
"COOKIE",
|
|
343
|
+
"FILE_TYPE",
|
|
344
|
+
"HEADER",
|
|
345
|
+
"HOST_NAME",
|
|
346
|
+
"PATH",
|
|
347
|
+
"SSL_CONN_HAS_CERT",
|
|
348
|
+
"SSL_DN_FIELD",
|
|
349
|
+
"SSL_VERIFY_RESULT",
|
|
350
|
+
],
|
|
351
|
+
value: str,
|
|
352
|
+
invert: bool | NotGiven = NOT_GIVEN,
|
|
353
|
+
key: str | NotGiven = NOT_GIVEN,
|
|
354
|
+
tags: List[str] | NotGiven = NOT_GIVEN,
|
|
355
|
+
polling_interval_seconds: int | NotGiven = NOT_GIVEN,
|
|
356
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
357
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
358
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
359
|
+
extra_headers: Headers | None = None,
|
|
360
|
+
extra_query: Query | None = None,
|
|
361
|
+
extra_body: Body | None = None,
|
|
362
|
+
) -> LoadBalancerL7Rule:
|
|
363
|
+
response = self.create(
|
|
364
|
+
l7policy_id=l7policy_id,
|
|
365
|
+
project_id=project_id,
|
|
366
|
+
region_id=region_id,
|
|
367
|
+
compare_type=compare_type,
|
|
368
|
+
type=type,
|
|
369
|
+
value=value,
|
|
370
|
+
invert=invert,
|
|
371
|
+
key=key,
|
|
372
|
+
tags=tags,
|
|
373
|
+
extra_headers=extra_headers,
|
|
374
|
+
extra_query=extra_query,
|
|
375
|
+
extra_body=extra_body,
|
|
376
|
+
timeout=timeout,
|
|
377
|
+
)
|
|
378
|
+
if not response.tasks or len(response.tasks) != 1:
|
|
379
|
+
raise ValueError(f"Expected exactly one task to be created")
|
|
380
|
+
task = self._client.cloud.tasks.poll(
|
|
381
|
+
task_id=response.tasks[0],
|
|
382
|
+
extra_headers=extra_headers,
|
|
383
|
+
polling_interval_seconds=polling_interval_seconds,
|
|
384
|
+
)
|
|
385
|
+
if not task.created_resources or not task.created_resources.l7rules or len(task.created_resources.l7rules) != 1:
|
|
386
|
+
raise ValueError(f"Expected exactly one resource to be created in a task")
|
|
387
|
+
return self.get(
|
|
388
|
+
l7rule_id=task.created_resources.l7rules[0],
|
|
389
|
+
project_id=project_id,
|
|
390
|
+
region_id=region_id,
|
|
391
|
+
l7policy_id=l7policy_id,
|
|
392
|
+
extra_headers=extra_headers,
|
|
393
|
+
timeout=timeout,
|
|
394
|
+
)
|
|
395
|
+
|
|
396
|
+
def delete_and_poll(
|
|
397
|
+
self,
|
|
398
|
+
l7rule_id: str,
|
|
399
|
+
*,
|
|
400
|
+
project_id: int | None = None,
|
|
401
|
+
region_id: int | None = None,
|
|
402
|
+
l7policy_id: str,
|
|
403
|
+
polling_interval_seconds: int | NotGiven = NOT_GIVEN,
|
|
404
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
405
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
406
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
407
|
+
extra_headers: Headers | None = None,
|
|
408
|
+
extra_query: Query | None = None,
|
|
409
|
+
extra_body: Body | None = None,
|
|
410
|
+
) -> None:
|
|
411
|
+
"""
|
|
412
|
+
Delete L7 rule and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method.
|
|
413
|
+
"""
|
|
414
|
+
response = self.delete(
|
|
415
|
+
l7rule_id=l7rule_id,
|
|
416
|
+
project_id=project_id,
|
|
417
|
+
region_id=region_id,
|
|
418
|
+
l7policy_id=l7policy_id,
|
|
419
|
+
extra_headers=extra_headers,
|
|
420
|
+
extra_query=extra_query,
|
|
421
|
+
extra_body=extra_body,
|
|
422
|
+
timeout=timeout,
|
|
423
|
+
)
|
|
424
|
+
if not response.tasks:
|
|
425
|
+
raise ValueError("Expected at least one task to be created")
|
|
426
|
+
self._client.cloud.tasks.poll(
|
|
427
|
+
task_id=response.tasks[0],
|
|
428
|
+
extra_headers=extra_headers,
|
|
429
|
+
polling_interval_seconds=polling_interval_seconds,
|
|
430
|
+
)
|
|
431
|
+
|
|
432
|
+
def replace_and_poll(
|
|
433
|
+
self,
|
|
434
|
+
l7rule_id: str,
|
|
435
|
+
*,
|
|
436
|
+
project_id: int | None = None,
|
|
437
|
+
region_id: int | None = None,
|
|
438
|
+
l7policy_id: str,
|
|
439
|
+
compare_type: Literal["CONTAINS", "ENDS_WITH", "EQUAL_TO", "REGEX", "STARTS_WITH"],
|
|
440
|
+
type: Literal[
|
|
441
|
+
"COOKIE",
|
|
442
|
+
"FILE_TYPE",
|
|
443
|
+
"HEADER",
|
|
444
|
+
"HOST_NAME",
|
|
445
|
+
"PATH",
|
|
446
|
+
"SSL_CONN_HAS_CERT",
|
|
447
|
+
"SSL_DN_FIELD",
|
|
448
|
+
"SSL_VERIFY_RESULT",
|
|
449
|
+
],
|
|
450
|
+
value: str,
|
|
451
|
+
invert: bool | NotGiven = NOT_GIVEN,
|
|
452
|
+
key: str | NotGiven = NOT_GIVEN,
|
|
453
|
+
tags: List[str] | NotGiven = NOT_GIVEN,
|
|
454
|
+
polling_interval_seconds: int | NotGiven = NOT_GIVEN,
|
|
455
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
456
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
457
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
458
|
+
extra_headers: Headers | None = None,
|
|
459
|
+
extra_query: Query | None = None,
|
|
460
|
+
extra_body: Body | None = None,
|
|
461
|
+
) -> LoadBalancerL7Rule:
|
|
462
|
+
"""
|
|
463
|
+
Replace L7 rule and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method.
|
|
464
|
+
"""
|
|
465
|
+
response = self.replace(
|
|
466
|
+
l7rule_id=l7rule_id,
|
|
467
|
+
project_id=project_id,
|
|
468
|
+
region_id=region_id,
|
|
469
|
+
l7policy_id=l7policy_id,
|
|
470
|
+
compare_type=compare_type,
|
|
471
|
+
type=type,
|
|
472
|
+
value=value,
|
|
473
|
+
invert=invert,
|
|
474
|
+
key=key,
|
|
475
|
+
tags=tags,
|
|
476
|
+
extra_headers=extra_headers,
|
|
477
|
+
extra_query=extra_query,
|
|
478
|
+
extra_body=extra_body,
|
|
479
|
+
timeout=timeout,
|
|
480
|
+
)
|
|
481
|
+
if not response.tasks:
|
|
482
|
+
raise ValueError("Expected at least one task to be created")
|
|
483
|
+
self._client.cloud.tasks.poll(
|
|
484
|
+
task_id=response.tasks[0],
|
|
485
|
+
extra_headers=extra_headers,
|
|
486
|
+
polling_interval_seconds=polling_interval_seconds,
|
|
487
|
+
)
|
|
488
|
+
return self.get(
|
|
489
|
+
l7rule_id=l7rule_id,
|
|
490
|
+
project_id=project_id,
|
|
491
|
+
region_id=region_id,
|
|
492
|
+
l7policy_id=l7policy_id,
|
|
493
|
+
extra_headers=extra_headers,
|
|
494
|
+
timeout=timeout,
|
|
495
|
+
)
|
|
496
|
+
|
|
334
497
|
|
|
335
498
|
class AsyncRulesResource(AsyncAPIResource):
|
|
336
499
|
@cached_property
|
|
@@ -637,6 +800,169 @@ class AsyncRulesResource(AsyncAPIResource):
|
|
|
637
800
|
cast_to=TaskIDList,
|
|
638
801
|
)
|
|
639
802
|
|
|
803
|
+
async def create_and_poll(
|
|
804
|
+
self,
|
|
805
|
+
l7policy_id: str,
|
|
806
|
+
*,
|
|
807
|
+
project_id: int | None = None,
|
|
808
|
+
region_id: int | None = None,
|
|
809
|
+
compare_type: Literal["CONTAINS", "ENDS_WITH", "EQUAL_TO", "REGEX", "STARTS_WITH"],
|
|
810
|
+
type: Literal[
|
|
811
|
+
"COOKIE",
|
|
812
|
+
"FILE_TYPE",
|
|
813
|
+
"HEADER",
|
|
814
|
+
"HOST_NAME",
|
|
815
|
+
"PATH",
|
|
816
|
+
"SSL_CONN_HAS_CERT",
|
|
817
|
+
"SSL_DN_FIELD",
|
|
818
|
+
"SSL_VERIFY_RESULT",
|
|
819
|
+
],
|
|
820
|
+
value: str,
|
|
821
|
+
invert: bool | NotGiven = NOT_GIVEN,
|
|
822
|
+
key: str | NotGiven = NOT_GIVEN,
|
|
823
|
+
tags: List[str] | NotGiven = NOT_GIVEN,
|
|
824
|
+
polling_interval_seconds: int | NotGiven = NOT_GIVEN,
|
|
825
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
826
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
827
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
828
|
+
extra_headers: Headers | None = None,
|
|
829
|
+
extra_query: Query | None = None,
|
|
830
|
+
extra_body: Body | None = None,
|
|
831
|
+
) -> LoadBalancerL7Rule:
|
|
832
|
+
response = await self.create(
|
|
833
|
+
l7policy_id=l7policy_id,
|
|
834
|
+
project_id=project_id,
|
|
835
|
+
region_id=region_id,
|
|
836
|
+
compare_type=compare_type,
|
|
837
|
+
type=type,
|
|
838
|
+
value=value,
|
|
839
|
+
invert=invert,
|
|
840
|
+
key=key,
|
|
841
|
+
tags=tags,
|
|
842
|
+
extra_headers=extra_headers,
|
|
843
|
+
extra_query=extra_query,
|
|
844
|
+
extra_body=extra_body,
|
|
845
|
+
timeout=timeout,
|
|
846
|
+
)
|
|
847
|
+
if not response.tasks or len(response.tasks) != 1:
|
|
848
|
+
raise ValueError(f"Expected exactly one task to be created")
|
|
849
|
+
task = await self._client.cloud.tasks.poll(
|
|
850
|
+
task_id=response.tasks[0],
|
|
851
|
+
extra_headers=extra_headers,
|
|
852
|
+
polling_interval_seconds=polling_interval_seconds,
|
|
853
|
+
)
|
|
854
|
+
if not task.created_resources or not task.created_resources.l7rules or len(task.created_resources.l7rules) != 1:
|
|
855
|
+
raise ValueError(f"Expected exactly one resource to be created in a task")
|
|
856
|
+
return await self.get(
|
|
857
|
+
l7rule_id=task.created_resources.l7rules[0],
|
|
858
|
+
project_id=project_id,
|
|
859
|
+
region_id=region_id,
|
|
860
|
+
l7policy_id=l7policy_id,
|
|
861
|
+
extra_headers=extra_headers,
|
|
862
|
+
timeout=timeout,
|
|
863
|
+
)
|
|
864
|
+
|
|
865
|
+
async def delete_and_poll(
|
|
866
|
+
self,
|
|
867
|
+
l7rule_id: str,
|
|
868
|
+
*,
|
|
869
|
+
project_id: int | None = None,
|
|
870
|
+
region_id: int | None = None,
|
|
871
|
+
l7policy_id: str,
|
|
872
|
+
polling_interval_seconds: int | NotGiven = NOT_GIVEN,
|
|
873
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
874
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
875
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
876
|
+
extra_headers: Headers | None = None,
|
|
877
|
+
extra_query: Query | None = None,
|
|
878
|
+
extra_body: Body | None = None,
|
|
879
|
+
) -> None:
|
|
880
|
+
"""
|
|
881
|
+
Delete L7 rule and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method.
|
|
882
|
+
"""
|
|
883
|
+
response = await self.delete(
|
|
884
|
+
l7rule_id=l7rule_id,
|
|
885
|
+
project_id=project_id,
|
|
886
|
+
region_id=region_id,
|
|
887
|
+
l7policy_id=l7policy_id,
|
|
888
|
+
extra_headers=extra_headers,
|
|
889
|
+
extra_query=extra_query,
|
|
890
|
+
extra_body=extra_body,
|
|
891
|
+
timeout=timeout,
|
|
892
|
+
)
|
|
893
|
+
if not response.tasks:
|
|
894
|
+
raise ValueError("Expected at least one task to be created")
|
|
895
|
+
await self._client.cloud.tasks.poll(
|
|
896
|
+
task_id=response.tasks[0],
|
|
897
|
+
extra_headers=extra_headers,
|
|
898
|
+
polling_interval_seconds=polling_interval_seconds,
|
|
899
|
+
)
|
|
900
|
+
|
|
901
|
+
async def replace_and_poll(
|
|
902
|
+
self,
|
|
903
|
+
l7rule_id: str,
|
|
904
|
+
*,
|
|
905
|
+
project_id: int | None = None,
|
|
906
|
+
region_id: int | None = None,
|
|
907
|
+
l7policy_id: str,
|
|
908
|
+
compare_type: Literal["CONTAINS", "ENDS_WITH", "EQUAL_TO", "REGEX", "STARTS_WITH"],
|
|
909
|
+
type: Literal[
|
|
910
|
+
"COOKIE",
|
|
911
|
+
"FILE_TYPE",
|
|
912
|
+
"HEADER",
|
|
913
|
+
"HOST_NAME",
|
|
914
|
+
"PATH",
|
|
915
|
+
"SSL_CONN_HAS_CERT",
|
|
916
|
+
"SSL_DN_FIELD",
|
|
917
|
+
"SSL_VERIFY_RESULT",
|
|
918
|
+
],
|
|
919
|
+
value: str,
|
|
920
|
+
invert: bool | NotGiven = NOT_GIVEN,
|
|
921
|
+
key: str | NotGiven = NOT_GIVEN,
|
|
922
|
+
tags: List[str] | NotGiven = NOT_GIVEN,
|
|
923
|
+
polling_interval_seconds: int | NotGiven = NOT_GIVEN,
|
|
924
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
925
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
926
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
927
|
+
extra_headers: Headers | None = None,
|
|
928
|
+
extra_query: Query | None = None,
|
|
929
|
+
extra_body: Body | None = None,
|
|
930
|
+
) -> LoadBalancerL7Rule:
|
|
931
|
+
"""
|
|
932
|
+
Replace L7 rule and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method.
|
|
933
|
+
"""
|
|
934
|
+
response = await self.replace(
|
|
935
|
+
l7rule_id=l7rule_id,
|
|
936
|
+
project_id=project_id,
|
|
937
|
+
region_id=region_id,
|
|
938
|
+
l7policy_id=l7policy_id,
|
|
939
|
+
compare_type=compare_type,
|
|
940
|
+
type=type,
|
|
941
|
+
value=value,
|
|
942
|
+
invert=invert,
|
|
943
|
+
key=key,
|
|
944
|
+
tags=tags,
|
|
945
|
+
extra_headers=extra_headers,
|
|
946
|
+
extra_query=extra_query,
|
|
947
|
+
extra_body=extra_body,
|
|
948
|
+
timeout=timeout,
|
|
949
|
+
)
|
|
950
|
+
if not response.tasks:
|
|
951
|
+
raise ValueError("Expected at least one task to be created")
|
|
952
|
+
await self._client.cloud.tasks.poll(
|
|
953
|
+
task_id=response.tasks[0],
|
|
954
|
+
extra_headers=extra_headers,
|
|
955
|
+
polling_interval_seconds=polling_interval_seconds,
|
|
956
|
+
)
|
|
957
|
+
return await self.get(
|
|
958
|
+
l7rule_id=l7rule_id,
|
|
959
|
+
project_id=project_id,
|
|
960
|
+
region_id=region_id,
|
|
961
|
+
l7policy_id=l7policy_id,
|
|
962
|
+
extra_headers=extra_headers,
|
|
963
|
+
timeout=timeout,
|
|
964
|
+
)
|
|
965
|
+
|
|
640
966
|
|
|
641
967
|
class RulesResourceWithRawResponse:
|
|
642
968
|
def __init__(self, rules: RulesResource) -> None:
|