gcore 0.10.0__py3-none-any.whl → 0.11.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/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 +4 -4
- 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 +1042 -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.11.0.dist-info}/METADATA +7 -2
- {gcore-0.10.0.dist-info → gcore-0.11.0.dist-info}/RECORD +312 -192
- 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.11.0.dist-info}/WHEEL +0 -0
- {gcore-0.10.0.dist-info → gcore-0.11.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,1005 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Dict, Iterable
|
|
6
|
+
from typing_extensions import Literal
|
|
7
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
|
|
10
|
+
from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
|
11
|
+
from ...._utils import maybe_transform, async_maybe_transform
|
|
12
|
+
from ...._compat import cached_property
|
|
13
|
+
from ...._resource import SyncAPIResource, AsyncAPIResource
|
|
14
|
+
from ...._response import (
|
|
15
|
+
to_raw_response_wrapper,
|
|
16
|
+
to_streamed_response_wrapper,
|
|
17
|
+
async_to_raw_response_wrapper,
|
|
18
|
+
async_to_streamed_response_wrapper,
|
|
19
|
+
)
|
|
20
|
+
from ...._base_client import make_request_options
|
|
21
|
+
from ....types.dns.zones import (
|
|
22
|
+
rrset_list_params,
|
|
23
|
+
rrset_create_params,
|
|
24
|
+
rrset_replace_params,
|
|
25
|
+
rrset_get_failover_logs_params,
|
|
26
|
+
)
|
|
27
|
+
from ....types.dns.zones.dns_output_rrset import DNSOutputRrset
|
|
28
|
+
from ....types.dns.zones.rrset_list_response import RrsetListResponse
|
|
29
|
+
from ....types.dns.zones.rrset_get_failover_logs_response import RrsetGetFailoverLogsResponse
|
|
30
|
+
|
|
31
|
+
__all__ = ["RrsetsResource", "AsyncRrsetsResource"]
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class RrsetsResource(SyncAPIResource):
|
|
35
|
+
@cached_property
|
|
36
|
+
def with_raw_response(self) -> RrsetsResourceWithRawResponse:
|
|
37
|
+
"""
|
|
38
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
39
|
+
the raw response object instead of the parsed content.
|
|
40
|
+
|
|
41
|
+
For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
|
|
42
|
+
"""
|
|
43
|
+
return RrsetsResourceWithRawResponse(self)
|
|
44
|
+
|
|
45
|
+
@cached_property
|
|
46
|
+
def with_streaming_response(self) -> RrsetsResourceWithStreamingResponse:
|
|
47
|
+
"""
|
|
48
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
49
|
+
|
|
50
|
+
For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
|
|
51
|
+
"""
|
|
52
|
+
return RrsetsResourceWithStreamingResponse(self)
|
|
53
|
+
|
|
54
|
+
def create(
|
|
55
|
+
self,
|
|
56
|
+
rrset_type: str,
|
|
57
|
+
*,
|
|
58
|
+
zone_name: str,
|
|
59
|
+
rrset_name: str,
|
|
60
|
+
resource_records: Iterable[rrset_create_params.ResourceRecord],
|
|
61
|
+
meta: Dict[str, object] | NotGiven = NOT_GIVEN,
|
|
62
|
+
pickers: Iterable[rrset_create_params.Picker] | NotGiven = NOT_GIVEN,
|
|
63
|
+
ttl: int | NotGiven = NOT_GIVEN,
|
|
64
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
65
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
66
|
+
extra_headers: Headers | None = None,
|
|
67
|
+
extra_query: Query | None = None,
|
|
68
|
+
extra_body: Body | None = None,
|
|
69
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
70
|
+
) -> DNSOutputRrset:
|
|
71
|
+
"""
|
|
72
|
+
Add the RRSet to the zone specified by zoneName, RRSets can be configured to be
|
|
73
|
+
either dynamic or static.
|
|
74
|
+
|
|
75
|
+
### Static RRsets
|
|
76
|
+
|
|
77
|
+
Staticly configured RRSets provide DNS responses as is.
|
|
78
|
+
|
|
79
|
+
### Dynamic RRsets
|
|
80
|
+
|
|
81
|
+
Dynamic RRSets have picker configuration defined thus it's possible to finely
|
|
82
|
+
customize DNS response. Picking rules are defined on the RRSet level as a list
|
|
83
|
+
of selectors, filters and mutators. Picker considers different resource records
|
|
84
|
+
metadata, requestor IP, and other event-feeds like monitoring. Picker
|
|
85
|
+
configuration is an ordered list defined by "pickers" attribute. Requestor IP is
|
|
86
|
+
determined by EDNS Client Subnet (ECS) if defined, otherwise - by
|
|
87
|
+
client/recursor IP. Selector pickers are used in the specified order until the
|
|
88
|
+
first match, in case of match - all next selectors are bypassed. Filters or
|
|
89
|
+
mutators are applied to the match according to the order they are specified. For
|
|
90
|
+
example, sort records by proximity to user, shuffle based on weights and return
|
|
91
|
+
not more than 3:
|
|
92
|
+
`"pickers": [ { "type": "geodistance" }, { "type": "`weighted_shuffle`" }, { "type": "`first_n`", "limit": 3 } ]`
|
|
93
|
+
|
|
94
|
+
#### geodns filter
|
|
95
|
+
|
|
96
|
+
A resource record is included in the answer if resource record's metadata
|
|
97
|
+
matches requestor info. For each resource record in RRSet, the following
|
|
98
|
+
metadata is considered (in the order specified):
|
|
99
|
+
|
|
100
|
+
- `ip` - list of network addresses in CIDR format, e.g.
|
|
101
|
+
`["192.168.15.150/25", "2003:de:2016::/48"]`;
|
|
102
|
+
- `asn` - list of autonomous system numbers, e.g. `[1234, 5678]`;
|
|
103
|
+
- `regions` - list of region codes, e.g. `["de-bw", "de-by"]`;
|
|
104
|
+
- `countries` - list of country codes, e.g. `["de", "lu", "lt"]`;
|
|
105
|
+
- `continents` - list of continent codes, e.g.
|
|
106
|
+
`["af", "an", "eu", "as", "na", "sa", "oc"]`. If there is a record (or
|
|
107
|
+
multiple) with metadata matched IP, it's used as a response. If not - asn,
|
|
108
|
+
then country and then continent are checked for a match. If there is no match,
|
|
109
|
+
then the behaviour is defined by _strict_ parameter of the filter. Example:
|
|
110
|
+
`"pickers": [ { "type": "geodns", "strict": true } ]`
|
|
111
|
+
|
|
112
|
+
##### Strict parameter
|
|
113
|
+
|
|
114
|
+
`strict: true` means that if no records percolate through the geodns filter it
|
|
115
|
+
returns no answers. `strict: false` means that if no records percolate through
|
|
116
|
+
the geodns filter, all records are passed over.
|
|
117
|
+
|
|
118
|
+
#### asn selector
|
|
119
|
+
|
|
120
|
+
Resource records which ASN metadata matches ASN of the requestor are picked by
|
|
121
|
+
this selector, and passed to the next non-selector picker, if there is no
|
|
122
|
+
match - next configured picker starts with all records. Example:
|
|
123
|
+
`"pickers": [ {"type": "asn"} ]`
|
|
124
|
+
|
|
125
|
+
#### country selector
|
|
126
|
+
|
|
127
|
+
Resource records which country metadata matches country of the requestor are
|
|
128
|
+
picked by this selector, and passed to the next non-selector picker, if there is
|
|
129
|
+
no match - next configured picker starts with all records. Example:
|
|
130
|
+
`"pickers": [ { "type": "country" } ]`
|
|
131
|
+
|
|
132
|
+
#### continent selector
|
|
133
|
+
|
|
134
|
+
Resource records which continent metadata matches continent of the requestor are
|
|
135
|
+
picked by this selector, and passed to the next non-selector picker, if there is
|
|
136
|
+
no match - next configured picker starts with all records. Example:
|
|
137
|
+
`"pickers": [ { "type": "continent" } ]`
|
|
138
|
+
|
|
139
|
+
#### region selector
|
|
140
|
+
|
|
141
|
+
Resource records which region metadata matches region of the requestor are
|
|
142
|
+
picked by this selector, and passed to the next non-selector picker, if there is
|
|
143
|
+
no match - next configured picker starts with all records. e.g. `fr-nor` for
|
|
144
|
+
France/Normandy. Example: `"pickers": [ { "type": "region" } ]`
|
|
145
|
+
|
|
146
|
+
#### ip selector
|
|
147
|
+
|
|
148
|
+
Resource records which IP metadata matches IP of the requestor are picked by
|
|
149
|
+
this selector, and passed to the next non-selector picker, if there is no
|
|
150
|
+
match - next configured picker starts with all records. Maximum 100 subnets are
|
|
151
|
+
allowed to specify in meta of RR. Example: `"pickers": [ { "type": "ip" } ]`
|
|
152
|
+
|
|
153
|
+
#### default selector
|
|
154
|
+
|
|
155
|
+
When enabled, records marked as default are selected:
|
|
156
|
+
`"meta": {"default": true}`. Example:
|
|
157
|
+
`"pickers": [ { "type": "geodns", "strict": false }, { "type": "default" }, { "type": "`first_n`", "limit": 2 } ]`
|
|
158
|
+
|
|
159
|
+
#### geodistance mutator
|
|
160
|
+
|
|
161
|
+
The resource records are rearranged in ascending order based on the distance (in
|
|
162
|
+
meters) from requestor to the coordinates specified in latlong metadata.
|
|
163
|
+
Distance is calculated using Haversine formula. The "nearest" to the user's IP
|
|
164
|
+
RR goes first. The records without latlong metadata come last. e.g. for Berlin
|
|
165
|
+
`[52.520008, 13.404954]`.; In this configuration the only "nearest" to the
|
|
166
|
+
requestor record to be returned:
|
|
167
|
+
`"pickers": [ { "type": "geodistance" }, { "type": "`first_n`", "limit": 1 } ]`
|
|
168
|
+
|
|
169
|
+
#### `weighted_shuffle` mutator
|
|
170
|
+
|
|
171
|
+
The resource records are rearranged in random order based on the `weight`
|
|
172
|
+
metadata. Default weight (if not specified) is 50. Example:
|
|
173
|
+
`"pickers": [ { "type": "`weighted_shuffle`" } ]`
|
|
174
|
+
|
|
175
|
+
#### `first_n` filter
|
|
176
|
+
|
|
177
|
+
Slices first N (N specified as a limit parameter value) resource records.
|
|
178
|
+
Example: `"pickers": [ { "type": "`first_n`", "limit": 1 } ]` returns only the
|
|
179
|
+
first resource record.
|
|
180
|
+
|
|
181
|
+
##### limit parameter
|
|
182
|
+
|
|
183
|
+
Can be a positive value for a specific limit. Use zero or leave it blank to
|
|
184
|
+
indicate no limits.
|
|
185
|
+
|
|
186
|
+
Args:
|
|
187
|
+
resource_records: List of resource record from rrset
|
|
188
|
+
|
|
189
|
+
meta: Meta information for rrset
|
|
190
|
+
|
|
191
|
+
pickers: Set of pickers
|
|
192
|
+
|
|
193
|
+
extra_headers: Send extra headers
|
|
194
|
+
|
|
195
|
+
extra_query: Add additional query parameters to the request
|
|
196
|
+
|
|
197
|
+
extra_body: Add additional JSON properties to the request
|
|
198
|
+
|
|
199
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
200
|
+
"""
|
|
201
|
+
if not zone_name:
|
|
202
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
203
|
+
if not rrset_name:
|
|
204
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
205
|
+
if not rrset_type:
|
|
206
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
207
|
+
return self._post(
|
|
208
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}",
|
|
209
|
+
body=maybe_transform(
|
|
210
|
+
{
|
|
211
|
+
"resource_records": resource_records,
|
|
212
|
+
"meta": meta,
|
|
213
|
+
"pickers": pickers,
|
|
214
|
+
"ttl": ttl,
|
|
215
|
+
},
|
|
216
|
+
rrset_create_params.RrsetCreateParams,
|
|
217
|
+
),
|
|
218
|
+
options=make_request_options(
|
|
219
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
220
|
+
),
|
|
221
|
+
cast_to=DNSOutputRrset,
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
def list(
|
|
225
|
+
self,
|
|
226
|
+
zone_name: str,
|
|
227
|
+
*,
|
|
228
|
+
limit: int | NotGiven = NOT_GIVEN,
|
|
229
|
+
offset: int | NotGiven = NOT_GIVEN,
|
|
230
|
+
order_by: str | NotGiven = NOT_GIVEN,
|
|
231
|
+
order_direction: Literal["asc", "desc"] | NotGiven = NOT_GIVEN,
|
|
232
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
233
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
234
|
+
extra_headers: Headers | None = None,
|
|
235
|
+
extra_query: Query | None = None,
|
|
236
|
+
extra_body: Body | None = None,
|
|
237
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
238
|
+
) -> RrsetListResponse:
|
|
239
|
+
"""
|
|
240
|
+
List of RRset.
|
|
241
|
+
|
|
242
|
+
Args:
|
|
243
|
+
limit: Max number of records in response
|
|
244
|
+
|
|
245
|
+
offset: Amount of records to skip before beginning to write in response.
|
|
246
|
+
|
|
247
|
+
order_by: Field name to sort by
|
|
248
|
+
|
|
249
|
+
order_direction: Ascending or descending order
|
|
250
|
+
|
|
251
|
+
extra_headers: Send extra headers
|
|
252
|
+
|
|
253
|
+
extra_query: Add additional query parameters to the request
|
|
254
|
+
|
|
255
|
+
extra_body: Add additional JSON properties to the request
|
|
256
|
+
|
|
257
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
258
|
+
"""
|
|
259
|
+
if not zone_name:
|
|
260
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
261
|
+
return self._get(
|
|
262
|
+
f"/dns/v2/zones/{zone_name}/rrsets",
|
|
263
|
+
options=make_request_options(
|
|
264
|
+
extra_headers=extra_headers,
|
|
265
|
+
extra_query=extra_query,
|
|
266
|
+
extra_body=extra_body,
|
|
267
|
+
timeout=timeout,
|
|
268
|
+
query=maybe_transform(
|
|
269
|
+
{
|
|
270
|
+
"limit": limit,
|
|
271
|
+
"offset": offset,
|
|
272
|
+
"order_by": order_by,
|
|
273
|
+
"order_direction": order_direction,
|
|
274
|
+
},
|
|
275
|
+
rrset_list_params.RrsetListParams,
|
|
276
|
+
),
|
|
277
|
+
),
|
|
278
|
+
cast_to=RrsetListResponse,
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
def delete(
|
|
282
|
+
self,
|
|
283
|
+
rrset_type: str,
|
|
284
|
+
*,
|
|
285
|
+
zone_name: str,
|
|
286
|
+
rrset_name: str,
|
|
287
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
288
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
289
|
+
extra_headers: Headers | None = None,
|
|
290
|
+
extra_query: Query | None = None,
|
|
291
|
+
extra_body: Body | None = None,
|
|
292
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
293
|
+
) -> object:
|
|
294
|
+
"""
|
|
295
|
+
Delete RRset.
|
|
296
|
+
|
|
297
|
+
Args:
|
|
298
|
+
extra_headers: Send extra headers
|
|
299
|
+
|
|
300
|
+
extra_query: Add additional query parameters to the request
|
|
301
|
+
|
|
302
|
+
extra_body: Add additional JSON properties to the request
|
|
303
|
+
|
|
304
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
305
|
+
"""
|
|
306
|
+
if not zone_name:
|
|
307
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
308
|
+
if not rrset_name:
|
|
309
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
310
|
+
if not rrset_type:
|
|
311
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
312
|
+
return self._delete(
|
|
313
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}",
|
|
314
|
+
options=make_request_options(
|
|
315
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
316
|
+
),
|
|
317
|
+
cast_to=object,
|
|
318
|
+
)
|
|
319
|
+
|
|
320
|
+
def get(
|
|
321
|
+
self,
|
|
322
|
+
rrset_type: str,
|
|
323
|
+
*,
|
|
324
|
+
zone_name: str,
|
|
325
|
+
rrset_name: str,
|
|
326
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
327
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
328
|
+
extra_headers: Headers | None = None,
|
|
329
|
+
extra_query: Query | None = None,
|
|
330
|
+
extra_body: Body | None = None,
|
|
331
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
332
|
+
) -> DNSOutputRrset:
|
|
333
|
+
"""
|
|
334
|
+
Particular RRset item info
|
|
335
|
+
|
|
336
|
+
Args:
|
|
337
|
+
extra_headers: Send extra headers
|
|
338
|
+
|
|
339
|
+
extra_query: Add additional query parameters to the request
|
|
340
|
+
|
|
341
|
+
extra_body: Add additional JSON properties to the request
|
|
342
|
+
|
|
343
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
344
|
+
"""
|
|
345
|
+
if not zone_name:
|
|
346
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
347
|
+
if not rrset_name:
|
|
348
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
349
|
+
if not rrset_type:
|
|
350
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
351
|
+
return self._get(
|
|
352
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}",
|
|
353
|
+
options=make_request_options(
|
|
354
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
355
|
+
),
|
|
356
|
+
cast_to=DNSOutputRrset,
|
|
357
|
+
)
|
|
358
|
+
|
|
359
|
+
def get_failover_logs(
|
|
360
|
+
self,
|
|
361
|
+
rrset_type: str,
|
|
362
|
+
*,
|
|
363
|
+
zone_name: str,
|
|
364
|
+
rrset_name: str,
|
|
365
|
+
limit: int | NotGiven = NOT_GIVEN,
|
|
366
|
+
offset: int | NotGiven = NOT_GIVEN,
|
|
367
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
368
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
369
|
+
extra_headers: Headers | None = None,
|
|
370
|
+
extra_query: Query | None = None,
|
|
371
|
+
extra_body: Body | None = None,
|
|
372
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
373
|
+
) -> RrsetGetFailoverLogsResponse:
|
|
374
|
+
"""
|
|
375
|
+
Get failover history for the RRset
|
|
376
|
+
|
|
377
|
+
Args:
|
|
378
|
+
limit: Max number of records in response
|
|
379
|
+
|
|
380
|
+
offset: Amount of records to skip before beginning to write in response.
|
|
381
|
+
|
|
382
|
+
extra_headers: Send extra headers
|
|
383
|
+
|
|
384
|
+
extra_query: Add additional query parameters to the request
|
|
385
|
+
|
|
386
|
+
extra_body: Add additional JSON properties to the request
|
|
387
|
+
|
|
388
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
389
|
+
"""
|
|
390
|
+
if not zone_name:
|
|
391
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
392
|
+
if not rrset_name:
|
|
393
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
394
|
+
if not rrset_type:
|
|
395
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
396
|
+
return self._get(
|
|
397
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}/failover/log",
|
|
398
|
+
options=make_request_options(
|
|
399
|
+
extra_headers=extra_headers,
|
|
400
|
+
extra_query=extra_query,
|
|
401
|
+
extra_body=extra_body,
|
|
402
|
+
timeout=timeout,
|
|
403
|
+
query=maybe_transform(
|
|
404
|
+
{
|
|
405
|
+
"limit": limit,
|
|
406
|
+
"offset": offset,
|
|
407
|
+
},
|
|
408
|
+
rrset_get_failover_logs_params.RrsetGetFailoverLogsParams,
|
|
409
|
+
),
|
|
410
|
+
),
|
|
411
|
+
cast_to=RrsetGetFailoverLogsResponse,
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
def replace(
|
|
415
|
+
self,
|
|
416
|
+
rrset_type: str,
|
|
417
|
+
*,
|
|
418
|
+
zone_name: str,
|
|
419
|
+
rrset_name: str,
|
|
420
|
+
resource_records: Iterable[rrset_replace_params.ResourceRecord],
|
|
421
|
+
meta: Dict[str, object] | NotGiven = NOT_GIVEN,
|
|
422
|
+
pickers: Iterable[rrset_replace_params.Picker] | NotGiven = NOT_GIVEN,
|
|
423
|
+
ttl: int | NotGiven = NOT_GIVEN,
|
|
424
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
425
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
426
|
+
extra_headers: Headers | None = None,
|
|
427
|
+
extra_query: Query | None = None,
|
|
428
|
+
extra_body: Body | None = None,
|
|
429
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
430
|
+
) -> DNSOutputRrset:
|
|
431
|
+
"""
|
|
432
|
+
Create/update RRset.
|
|
433
|
+
|
|
434
|
+
Args:
|
|
435
|
+
resource_records: List of resource record from rrset
|
|
436
|
+
|
|
437
|
+
meta: Meta information for rrset
|
|
438
|
+
|
|
439
|
+
pickers: Set of pickers
|
|
440
|
+
|
|
441
|
+
extra_headers: Send extra headers
|
|
442
|
+
|
|
443
|
+
extra_query: Add additional query parameters to the request
|
|
444
|
+
|
|
445
|
+
extra_body: Add additional JSON properties to the request
|
|
446
|
+
|
|
447
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
448
|
+
"""
|
|
449
|
+
if not zone_name:
|
|
450
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
451
|
+
if not rrset_name:
|
|
452
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
453
|
+
if not rrset_type:
|
|
454
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
455
|
+
return self._put(
|
|
456
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}",
|
|
457
|
+
body=maybe_transform(
|
|
458
|
+
{
|
|
459
|
+
"resource_records": resource_records,
|
|
460
|
+
"meta": meta,
|
|
461
|
+
"pickers": pickers,
|
|
462
|
+
"ttl": ttl,
|
|
463
|
+
},
|
|
464
|
+
rrset_replace_params.RrsetReplaceParams,
|
|
465
|
+
),
|
|
466
|
+
options=make_request_options(
|
|
467
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
468
|
+
),
|
|
469
|
+
cast_to=DNSOutputRrset,
|
|
470
|
+
)
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
class AsyncRrsetsResource(AsyncAPIResource):
|
|
474
|
+
@cached_property
|
|
475
|
+
def with_raw_response(self) -> AsyncRrsetsResourceWithRawResponse:
|
|
476
|
+
"""
|
|
477
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
478
|
+
the raw response object instead of the parsed content.
|
|
479
|
+
|
|
480
|
+
For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
|
|
481
|
+
"""
|
|
482
|
+
return AsyncRrsetsResourceWithRawResponse(self)
|
|
483
|
+
|
|
484
|
+
@cached_property
|
|
485
|
+
def with_streaming_response(self) -> AsyncRrsetsResourceWithStreamingResponse:
|
|
486
|
+
"""
|
|
487
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
488
|
+
|
|
489
|
+
For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
|
|
490
|
+
"""
|
|
491
|
+
return AsyncRrsetsResourceWithStreamingResponse(self)
|
|
492
|
+
|
|
493
|
+
async def create(
|
|
494
|
+
self,
|
|
495
|
+
rrset_type: str,
|
|
496
|
+
*,
|
|
497
|
+
zone_name: str,
|
|
498
|
+
rrset_name: str,
|
|
499
|
+
resource_records: Iterable[rrset_create_params.ResourceRecord],
|
|
500
|
+
meta: Dict[str, object] | NotGiven = NOT_GIVEN,
|
|
501
|
+
pickers: Iterable[rrset_create_params.Picker] | NotGiven = NOT_GIVEN,
|
|
502
|
+
ttl: int | NotGiven = NOT_GIVEN,
|
|
503
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
504
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
505
|
+
extra_headers: Headers | None = None,
|
|
506
|
+
extra_query: Query | None = None,
|
|
507
|
+
extra_body: Body | None = None,
|
|
508
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
509
|
+
) -> DNSOutputRrset:
|
|
510
|
+
"""
|
|
511
|
+
Add the RRSet to the zone specified by zoneName, RRSets can be configured to be
|
|
512
|
+
either dynamic or static.
|
|
513
|
+
|
|
514
|
+
### Static RRsets
|
|
515
|
+
|
|
516
|
+
Staticly configured RRSets provide DNS responses as is.
|
|
517
|
+
|
|
518
|
+
### Dynamic RRsets
|
|
519
|
+
|
|
520
|
+
Dynamic RRSets have picker configuration defined thus it's possible to finely
|
|
521
|
+
customize DNS response. Picking rules are defined on the RRSet level as a list
|
|
522
|
+
of selectors, filters and mutators. Picker considers different resource records
|
|
523
|
+
metadata, requestor IP, and other event-feeds like monitoring. Picker
|
|
524
|
+
configuration is an ordered list defined by "pickers" attribute. Requestor IP is
|
|
525
|
+
determined by EDNS Client Subnet (ECS) if defined, otherwise - by
|
|
526
|
+
client/recursor IP. Selector pickers are used in the specified order until the
|
|
527
|
+
first match, in case of match - all next selectors are bypassed. Filters or
|
|
528
|
+
mutators are applied to the match according to the order they are specified. For
|
|
529
|
+
example, sort records by proximity to user, shuffle based on weights and return
|
|
530
|
+
not more than 3:
|
|
531
|
+
`"pickers": [ { "type": "geodistance" }, { "type": "`weighted_shuffle`" }, { "type": "`first_n`", "limit": 3 } ]`
|
|
532
|
+
|
|
533
|
+
#### geodns filter
|
|
534
|
+
|
|
535
|
+
A resource record is included in the answer if resource record's metadata
|
|
536
|
+
matches requestor info. For each resource record in RRSet, the following
|
|
537
|
+
metadata is considered (in the order specified):
|
|
538
|
+
|
|
539
|
+
- `ip` - list of network addresses in CIDR format, e.g.
|
|
540
|
+
`["192.168.15.150/25", "2003:de:2016::/48"]`;
|
|
541
|
+
- `asn` - list of autonomous system numbers, e.g. `[1234, 5678]`;
|
|
542
|
+
- `regions` - list of region codes, e.g. `["de-bw", "de-by"]`;
|
|
543
|
+
- `countries` - list of country codes, e.g. `["de", "lu", "lt"]`;
|
|
544
|
+
- `continents` - list of continent codes, e.g.
|
|
545
|
+
`["af", "an", "eu", "as", "na", "sa", "oc"]`. If there is a record (or
|
|
546
|
+
multiple) with metadata matched IP, it's used as a response. If not - asn,
|
|
547
|
+
then country and then continent are checked for a match. If there is no match,
|
|
548
|
+
then the behaviour is defined by _strict_ parameter of the filter. Example:
|
|
549
|
+
`"pickers": [ { "type": "geodns", "strict": true } ]`
|
|
550
|
+
|
|
551
|
+
##### Strict parameter
|
|
552
|
+
|
|
553
|
+
`strict: true` means that if no records percolate through the geodns filter it
|
|
554
|
+
returns no answers. `strict: false` means that if no records percolate through
|
|
555
|
+
the geodns filter, all records are passed over.
|
|
556
|
+
|
|
557
|
+
#### asn selector
|
|
558
|
+
|
|
559
|
+
Resource records which ASN metadata matches ASN of the requestor are picked by
|
|
560
|
+
this selector, and passed to the next non-selector picker, if there is no
|
|
561
|
+
match - next configured picker starts with all records. Example:
|
|
562
|
+
`"pickers": [ {"type": "asn"} ]`
|
|
563
|
+
|
|
564
|
+
#### country selector
|
|
565
|
+
|
|
566
|
+
Resource records which country metadata matches country of the requestor are
|
|
567
|
+
picked by this selector, and passed to the next non-selector picker, if there is
|
|
568
|
+
no match - next configured picker starts with all records. Example:
|
|
569
|
+
`"pickers": [ { "type": "country" } ]`
|
|
570
|
+
|
|
571
|
+
#### continent selector
|
|
572
|
+
|
|
573
|
+
Resource records which continent metadata matches continent of the requestor are
|
|
574
|
+
picked by this selector, and passed to the next non-selector picker, if there is
|
|
575
|
+
no match - next configured picker starts with all records. Example:
|
|
576
|
+
`"pickers": [ { "type": "continent" } ]`
|
|
577
|
+
|
|
578
|
+
#### region selector
|
|
579
|
+
|
|
580
|
+
Resource records which region metadata matches region of the requestor are
|
|
581
|
+
picked by this selector, and passed to the next non-selector picker, if there is
|
|
582
|
+
no match - next configured picker starts with all records. e.g. `fr-nor` for
|
|
583
|
+
France/Normandy. Example: `"pickers": [ { "type": "region" } ]`
|
|
584
|
+
|
|
585
|
+
#### ip selector
|
|
586
|
+
|
|
587
|
+
Resource records which IP metadata matches IP of the requestor are picked by
|
|
588
|
+
this selector, and passed to the next non-selector picker, if there is no
|
|
589
|
+
match - next configured picker starts with all records. Maximum 100 subnets are
|
|
590
|
+
allowed to specify in meta of RR. Example: `"pickers": [ { "type": "ip" } ]`
|
|
591
|
+
|
|
592
|
+
#### default selector
|
|
593
|
+
|
|
594
|
+
When enabled, records marked as default are selected:
|
|
595
|
+
`"meta": {"default": true}`. Example:
|
|
596
|
+
`"pickers": [ { "type": "geodns", "strict": false }, { "type": "default" }, { "type": "`first_n`", "limit": 2 } ]`
|
|
597
|
+
|
|
598
|
+
#### geodistance mutator
|
|
599
|
+
|
|
600
|
+
The resource records are rearranged in ascending order based on the distance (in
|
|
601
|
+
meters) from requestor to the coordinates specified in latlong metadata.
|
|
602
|
+
Distance is calculated using Haversine formula. The "nearest" to the user's IP
|
|
603
|
+
RR goes first. The records without latlong metadata come last. e.g. for Berlin
|
|
604
|
+
`[52.520008, 13.404954]`.; In this configuration the only "nearest" to the
|
|
605
|
+
requestor record to be returned:
|
|
606
|
+
`"pickers": [ { "type": "geodistance" }, { "type": "`first_n`", "limit": 1 } ]`
|
|
607
|
+
|
|
608
|
+
#### `weighted_shuffle` mutator
|
|
609
|
+
|
|
610
|
+
The resource records are rearranged in random order based on the `weight`
|
|
611
|
+
metadata. Default weight (if not specified) is 50. Example:
|
|
612
|
+
`"pickers": [ { "type": "`weighted_shuffle`" } ]`
|
|
613
|
+
|
|
614
|
+
#### `first_n` filter
|
|
615
|
+
|
|
616
|
+
Slices first N (N specified as a limit parameter value) resource records.
|
|
617
|
+
Example: `"pickers": [ { "type": "`first_n`", "limit": 1 } ]` returns only the
|
|
618
|
+
first resource record.
|
|
619
|
+
|
|
620
|
+
##### limit parameter
|
|
621
|
+
|
|
622
|
+
Can be a positive value for a specific limit. Use zero or leave it blank to
|
|
623
|
+
indicate no limits.
|
|
624
|
+
|
|
625
|
+
Args:
|
|
626
|
+
resource_records: List of resource record from rrset
|
|
627
|
+
|
|
628
|
+
meta: Meta information for rrset
|
|
629
|
+
|
|
630
|
+
pickers: Set of pickers
|
|
631
|
+
|
|
632
|
+
extra_headers: Send extra headers
|
|
633
|
+
|
|
634
|
+
extra_query: Add additional query parameters to the request
|
|
635
|
+
|
|
636
|
+
extra_body: Add additional JSON properties to the request
|
|
637
|
+
|
|
638
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
639
|
+
"""
|
|
640
|
+
if not zone_name:
|
|
641
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
642
|
+
if not rrset_name:
|
|
643
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
644
|
+
if not rrset_type:
|
|
645
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
646
|
+
return await self._post(
|
|
647
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}",
|
|
648
|
+
body=await async_maybe_transform(
|
|
649
|
+
{
|
|
650
|
+
"resource_records": resource_records,
|
|
651
|
+
"meta": meta,
|
|
652
|
+
"pickers": pickers,
|
|
653
|
+
"ttl": ttl,
|
|
654
|
+
},
|
|
655
|
+
rrset_create_params.RrsetCreateParams,
|
|
656
|
+
),
|
|
657
|
+
options=make_request_options(
|
|
658
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
659
|
+
),
|
|
660
|
+
cast_to=DNSOutputRrset,
|
|
661
|
+
)
|
|
662
|
+
|
|
663
|
+
async def list(
|
|
664
|
+
self,
|
|
665
|
+
zone_name: str,
|
|
666
|
+
*,
|
|
667
|
+
limit: int | NotGiven = NOT_GIVEN,
|
|
668
|
+
offset: int | NotGiven = NOT_GIVEN,
|
|
669
|
+
order_by: str | NotGiven = NOT_GIVEN,
|
|
670
|
+
order_direction: Literal["asc", "desc"] | NotGiven = NOT_GIVEN,
|
|
671
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
672
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
673
|
+
extra_headers: Headers | None = None,
|
|
674
|
+
extra_query: Query | None = None,
|
|
675
|
+
extra_body: Body | None = None,
|
|
676
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
677
|
+
) -> RrsetListResponse:
|
|
678
|
+
"""
|
|
679
|
+
List of RRset.
|
|
680
|
+
|
|
681
|
+
Args:
|
|
682
|
+
limit: Max number of records in response
|
|
683
|
+
|
|
684
|
+
offset: Amount of records to skip before beginning to write in response.
|
|
685
|
+
|
|
686
|
+
order_by: Field name to sort by
|
|
687
|
+
|
|
688
|
+
order_direction: Ascending or descending order
|
|
689
|
+
|
|
690
|
+
extra_headers: Send extra headers
|
|
691
|
+
|
|
692
|
+
extra_query: Add additional query parameters to the request
|
|
693
|
+
|
|
694
|
+
extra_body: Add additional JSON properties to the request
|
|
695
|
+
|
|
696
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
697
|
+
"""
|
|
698
|
+
if not zone_name:
|
|
699
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
700
|
+
return await self._get(
|
|
701
|
+
f"/dns/v2/zones/{zone_name}/rrsets",
|
|
702
|
+
options=make_request_options(
|
|
703
|
+
extra_headers=extra_headers,
|
|
704
|
+
extra_query=extra_query,
|
|
705
|
+
extra_body=extra_body,
|
|
706
|
+
timeout=timeout,
|
|
707
|
+
query=await async_maybe_transform(
|
|
708
|
+
{
|
|
709
|
+
"limit": limit,
|
|
710
|
+
"offset": offset,
|
|
711
|
+
"order_by": order_by,
|
|
712
|
+
"order_direction": order_direction,
|
|
713
|
+
},
|
|
714
|
+
rrset_list_params.RrsetListParams,
|
|
715
|
+
),
|
|
716
|
+
),
|
|
717
|
+
cast_to=RrsetListResponse,
|
|
718
|
+
)
|
|
719
|
+
|
|
720
|
+
async def delete(
|
|
721
|
+
self,
|
|
722
|
+
rrset_type: str,
|
|
723
|
+
*,
|
|
724
|
+
zone_name: str,
|
|
725
|
+
rrset_name: str,
|
|
726
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
727
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
728
|
+
extra_headers: Headers | None = None,
|
|
729
|
+
extra_query: Query | None = None,
|
|
730
|
+
extra_body: Body | None = None,
|
|
731
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
732
|
+
) -> object:
|
|
733
|
+
"""
|
|
734
|
+
Delete RRset.
|
|
735
|
+
|
|
736
|
+
Args:
|
|
737
|
+
extra_headers: Send extra headers
|
|
738
|
+
|
|
739
|
+
extra_query: Add additional query parameters to the request
|
|
740
|
+
|
|
741
|
+
extra_body: Add additional JSON properties to the request
|
|
742
|
+
|
|
743
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
744
|
+
"""
|
|
745
|
+
if not zone_name:
|
|
746
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
747
|
+
if not rrset_name:
|
|
748
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
749
|
+
if not rrset_type:
|
|
750
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
751
|
+
return await self._delete(
|
|
752
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}",
|
|
753
|
+
options=make_request_options(
|
|
754
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
755
|
+
),
|
|
756
|
+
cast_to=object,
|
|
757
|
+
)
|
|
758
|
+
|
|
759
|
+
async def get(
|
|
760
|
+
self,
|
|
761
|
+
rrset_type: str,
|
|
762
|
+
*,
|
|
763
|
+
zone_name: str,
|
|
764
|
+
rrset_name: str,
|
|
765
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
766
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
767
|
+
extra_headers: Headers | None = None,
|
|
768
|
+
extra_query: Query | None = None,
|
|
769
|
+
extra_body: Body | None = None,
|
|
770
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
771
|
+
) -> DNSOutputRrset:
|
|
772
|
+
"""
|
|
773
|
+
Particular RRset item info
|
|
774
|
+
|
|
775
|
+
Args:
|
|
776
|
+
extra_headers: Send extra headers
|
|
777
|
+
|
|
778
|
+
extra_query: Add additional query parameters to the request
|
|
779
|
+
|
|
780
|
+
extra_body: Add additional JSON properties to the request
|
|
781
|
+
|
|
782
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
783
|
+
"""
|
|
784
|
+
if not zone_name:
|
|
785
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
786
|
+
if not rrset_name:
|
|
787
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
788
|
+
if not rrset_type:
|
|
789
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
790
|
+
return await self._get(
|
|
791
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}",
|
|
792
|
+
options=make_request_options(
|
|
793
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
794
|
+
),
|
|
795
|
+
cast_to=DNSOutputRrset,
|
|
796
|
+
)
|
|
797
|
+
|
|
798
|
+
async def get_failover_logs(
|
|
799
|
+
self,
|
|
800
|
+
rrset_type: str,
|
|
801
|
+
*,
|
|
802
|
+
zone_name: str,
|
|
803
|
+
rrset_name: str,
|
|
804
|
+
limit: int | NotGiven = NOT_GIVEN,
|
|
805
|
+
offset: int | NotGiven = NOT_GIVEN,
|
|
806
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
807
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
808
|
+
extra_headers: Headers | None = None,
|
|
809
|
+
extra_query: Query | None = None,
|
|
810
|
+
extra_body: Body | None = None,
|
|
811
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
812
|
+
) -> RrsetGetFailoverLogsResponse:
|
|
813
|
+
"""
|
|
814
|
+
Get failover history for the RRset
|
|
815
|
+
|
|
816
|
+
Args:
|
|
817
|
+
limit: Max number of records in response
|
|
818
|
+
|
|
819
|
+
offset: Amount of records to skip before beginning to write in response.
|
|
820
|
+
|
|
821
|
+
extra_headers: Send extra headers
|
|
822
|
+
|
|
823
|
+
extra_query: Add additional query parameters to the request
|
|
824
|
+
|
|
825
|
+
extra_body: Add additional JSON properties to the request
|
|
826
|
+
|
|
827
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
828
|
+
"""
|
|
829
|
+
if not zone_name:
|
|
830
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
831
|
+
if not rrset_name:
|
|
832
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
833
|
+
if not rrset_type:
|
|
834
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
835
|
+
return await self._get(
|
|
836
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}/failover/log",
|
|
837
|
+
options=make_request_options(
|
|
838
|
+
extra_headers=extra_headers,
|
|
839
|
+
extra_query=extra_query,
|
|
840
|
+
extra_body=extra_body,
|
|
841
|
+
timeout=timeout,
|
|
842
|
+
query=await async_maybe_transform(
|
|
843
|
+
{
|
|
844
|
+
"limit": limit,
|
|
845
|
+
"offset": offset,
|
|
846
|
+
},
|
|
847
|
+
rrset_get_failover_logs_params.RrsetGetFailoverLogsParams,
|
|
848
|
+
),
|
|
849
|
+
),
|
|
850
|
+
cast_to=RrsetGetFailoverLogsResponse,
|
|
851
|
+
)
|
|
852
|
+
|
|
853
|
+
async def replace(
|
|
854
|
+
self,
|
|
855
|
+
rrset_type: str,
|
|
856
|
+
*,
|
|
857
|
+
zone_name: str,
|
|
858
|
+
rrset_name: str,
|
|
859
|
+
resource_records: Iterable[rrset_replace_params.ResourceRecord],
|
|
860
|
+
meta: Dict[str, object] | NotGiven = NOT_GIVEN,
|
|
861
|
+
pickers: Iterable[rrset_replace_params.Picker] | NotGiven = NOT_GIVEN,
|
|
862
|
+
ttl: int | NotGiven = NOT_GIVEN,
|
|
863
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
864
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
865
|
+
extra_headers: Headers | None = None,
|
|
866
|
+
extra_query: Query | None = None,
|
|
867
|
+
extra_body: Body | None = None,
|
|
868
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
869
|
+
) -> DNSOutputRrset:
|
|
870
|
+
"""
|
|
871
|
+
Create/update RRset.
|
|
872
|
+
|
|
873
|
+
Args:
|
|
874
|
+
resource_records: List of resource record from rrset
|
|
875
|
+
|
|
876
|
+
meta: Meta information for rrset
|
|
877
|
+
|
|
878
|
+
pickers: Set of pickers
|
|
879
|
+
|
|
880
|
+
extra_headers: Send extra headers
|
|
881
|
+
|
|
882
|
+
extra_query: Add additional query parameters to the request
|
|
883
|
+
|
|
884
|
+
extra_body: Add additional JSON properties to the request
|
|
885
|
+
|
|
886
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
887
|
+
"""
|
|
888
|
+
if not zone_name:
|
|
889
|
+
raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}")
|
|
890
|
+
if not rrset_name:
|
|
891
|
+
raise ValueError(f"Expected a non-empty value for `rrset_name` but received {rrset_name!r}")
|
|
892
|
+
if not rrset_type:
|
|
893
|
+
raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}")
|
|
894
|
+
return await self._put(
|
|
895
|
+
f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}",
|
|
896
|
+
body=await async_maybe_transform(
|
|
897
|
+
{
|
|
898
|
+
"resource_records": resource_records,
|
|
899
|
+
"meta": meta,
|
|
900
|
+
"pickers": pickers,
|
|
901
|
+
"ttl": ttl,
|
|
902
|
+
},
|
|
903
|
+
rrset_replace_params.RrsetReplaceParams,
|
|
904
|
+
),
|
|
905
|
+
options=make_request_options(
|
|
906
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
907
|
+
),
|
|
908
|
+
cast_to=DNSOutputRrset,
|
|
909
|
+
)
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
class RrsetsResourceWithRawResponse:
|
|
913
|
+
def __init__(self, rrsets: RrsetsResource) -> None:
|
|
914
|
+
self._rrsets = rrsets
|
|
915
|
+
|
|
916
|
+
self.create = to_raw_response_wrapper(
|
|
917
|
+
rrsets.create,
|
|
918
|
+
)
|
|
919
|
+
self.list = to_raw_response_wrapper(
|
|
920
|
+
rrsets.list,
|
|
921
|
+
)
|
|
922
|
+
self.delete = to_raw_response_wrapper(
|
|
923
|
+
rrsets.delete,
|
|
924
|
+
)
|
|
925
|
+
self.get = to_raw_response_wrapper(
|
|
926
|
+
rrsets.get,
|
|
927
|
+
)
|
|
928
|
+
self.get_failover_logs = to_raw_response_wrapper(
|
|
929
|
+
rrsets.get_failover_logs,
|
|
930
|
+
)
|
|
931
|
+
self.replace = to_raw_response_wrapper(
|
|
932
|
+
rrsets.replace,
|
|
933
|
+
)
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
class AsyncRrsetsResourceWithRawResponse:
|
|
937
|
+
def __init__(self, rrsets: AsyncRrsetsResource) -> None:
|
|
938
|
+
self._rrsets = rrsets
|
|
939
|
+
|
|
940
|
+
self.create = async_to_raw_response_wrapper(
|
|
941
|
+
rrsets.create,
|
|
942
|
+
)
|
|
943
|
+
self.list = async_to_raw_response_wrapper(
|
|
944
|
+
rrsets.list,
|
|
945
|
+
)
|
|
946
|
+
self.delete = async_to_raw_response_wrapper(
|
|
947
|
+
rrsets.delete,
|
|
948
|
+
)
|
|
949
|
+
self.get = async_to_raw_response_wrapper(
|
|
950
|
+
rrsets.get,
|
|
951
|
+
)
|
|
952
|
+
self.get_failover_logs = async_to_raw_response_wrapper(
|
|
953
|
+
rrsets.get_failover_logs,
|
|
954
|
+
)
|
|
955
|
+
self.replace = async_to_raw_response_wrapper(
|
|
956
|
+
rrsets.replace,
|
|
957
|
+
)
|
|
958
|
+
|
|
959
|
+
|
|
960
|
+
class RrsetsResourceWithStreamingResponse:
|
|
961
|
+
def __init__(self, rrsets: RrsetsResource) -> None:
|
|
962
|
+
self._rrsets = rrsets
|
|
963
|
+
|
|
964
|
+
self.create = to_streamed_response_wrapper(
|
|
965
|
+
rrsets.create,
|
|
966
|
+
)
|
|
967
|
+
self.list = to_streamed_response_wrapper(
|
|
968
|
+
rrsets.list,
|
|
969
|
+
)
|
|
970
|
+
self.delete = to_streamed_response_wrapper(
|
|
971
|
+
rrsets.delete,
|
|
972
|
+
)
|
|
973
|
+
self.get = to_streamed_response_wrapper(
|
|
974
|
+
rrsets.get,
|
|
975
|
+
)
|
|
976
|
+
self.get_failover_logs = to_streamed_response_wrapper(
|
|
977
|
+
rrsets.get_failover_logs,
|
|
978
|
+
)
|
|
979
|
+
self.replace = to_streamed_response_wrapper(
|
|
980
|
+
rrsets.replace,
|
|
981
|
+
)
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
class AsyncRrsetsResourceWithStreamingResponse:
|
|
985
|
+
def __init__(self, rrsets: AsyncRrsetsResource) -> None:
|
|
986
|
+
self._rrsets = rrsets
|
|
987
|
+
|
|
988
|
+
self.create = async_to_streamed_response_wrapper(
|
|
989
|
+
rrsets.create,
|
|
990
|
+
)
|
|
991
|
+
self.list = async_to_streamed_response_wrapper(
|
|
992
|
+
rrsets.list,
|
|
993
|
+
)
|
|
994
|
+
self.delete = async_to_streamed_response_wrapper(
|
|
995
|
+
rrsets.delete,
|
|
996
|
+
)
|
|
997
|
+
self.get = async_to_streamed_response_wrapper(
|
|
998
|
+
rrsets.get,
|
|
999
|
+
)
|
|
1000
|
+
self.get_failover_logs = async_to_streamed_response_wrapper(
|
|
1001
|
+
rrsets.get_failover_logs,
|
|
1002
|
+
)
|
|
1003
|
+
self.replace = async_to_streamed_response_wrapper(
|
|
1004
|
+
rrsets.replace,
|
|
1005
|
+
)
|