gcore 0.8.0__py3-none-any.whl → 0.10.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 +4 -1
- gcore/_client.py +9 -0
- gcore/_files.py +4 -4
- gcore/_version.py +1 -1
- gcore/resources/__init__.py +14 -0
- gcore/resources/cloud/cost_reports.py +24 -0
- gcore/resources/cloud/load_balancers/pools/health_monitors.py +8 -4
- gcore/resources/cloud/load_balancers/pools/members.py +2 -2
- gcore/resources/cloud/quotas/requests.py +7 -15
- gcore/resources/fastedge/binaries.py +81 -1
- gcore/resources/security/__init__.py +75 -0
- gcore/resources/security/bgp_announces.py +308 -0
- gcore/resources/security/events.py +234 -0
- gcore/resources/security/profile_templates.py +143 -0
- gcore/resources/security/profiles.py +661 -0
- gcore/resources/security/security.py +198 -0
- gcore/resources/waap/__init__.py +14 -0
- gcore/resources/waap/custom_page_sets.py +40 -34
- gcore/resources/waap/domains/__init__.py +14 -28
- gcore/resources/waap/domains/advanced_rules.py +5 -8
- gcore/resources/waap/domains/{api_discovery/api_discovery.py → api_discovery.py} +292 -59
- gcore/resources/waap/domains/api_path_groups.py +5 -5
- gcore/resources/waap/domains/api_paths.py +15 -17
- gcore/resources/waap/domains/custom_rules.py +5 -8
- gcore/resources/waap/domains/domains.py +120 -64
- gcore/resources/waap/domains/firewall_rules.py +3 -5
- gcore/resources/waap/domains/insight_silences.py +28 -5
- gcore/resources/waap/domains/insights.py +36 -10
- gcore/resources/waap/domains/{analytics/analytics.py → statistics.py} +514 -213
- gcore/resources/waap/insights.py +233 -0
- gcore/resources/waap/ip_info/__init__.py +33 -0
- gcore/resources/waap/{ip_info.py → ip_info/ip_info.py} +149 -235
- gcore/resources/waap/ip_info/metrics.py +203 -0
- gcore/resources/waap/waap.py +40 -8
- gcore/types/cloud/cost_report_get_aggregated_monthly_params.py +3 -0
- gcore/types/cloud/cost_report_get_aggregated_params.py +3 -0
- gcore/types/cloud/cost_report_get_detailed_params.py +3 -0
- gcore/types/cloud/gpu_baremetal_flavor.py +16 -0
- gcore/types/cloud/health_monitor.py +6 -0
- gcore/types/cloud/load_balancer_create_params.py +8 -3
- gcore/types/cloud/load_balancers/pool_create_params.py +8 -3
- gcore/types/cloud/load_balancers/pool_update_params.py +8 -3
- gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +7 -2
- gcore/types/cloud/load_balancers/pools/member_add_params.py +1 -1
- gcore/types/cloud/quotas/request_list_params.py +2 -2
- gcore/types/cloud/region.py +6 -6
- gcore/types/fastedge/__init__.py +1 -0
- gcore/types/fastedge/binary_create_params.py +11 -0
- gcore/types/security/__init__.py +18 -0
- gcore/types/security/bgp_announce_list_params.py +18 -0
- gcore/types/security/bgp_announce_list_response.py +10 -0
- gcore/types/security/bgp_announce_toggle_params.py +16 -0
- gcore/types/security/client_announce.py +15 -0
- gcore/types/security/client_profile.py +56 -0
- gcore/types/security/client_profile_template.py +43 -0
- gcore/types/security/client_view.py +29 -0
- gcore/types/security/event_list_params.py +38 -0
- gcore/types/security/profile_create_params.py +24 -0
- gcore/types/security/profile_list_params.py +17 -0
- gcore/types/security/profile_list_response.py +10 -0
- gcore/types/security/profile_recreate_params.py +24 -0
- gcore/types/security/profile_replace_params.py +24 -0
- gcore/types/security/profile_template_list_response.py +10 -0
- gcore/types/waap/__init__.py +6 -54
- gcore/types/waap/custom_page_set_create_params.py +121 -14
- gcore/types/waap/custom_page_set_preview_params.py +11 -4
- gcore/types/waap/custom_page_set_update_params.py +122 -15
- gcore/types/waap/domain_list_params.py +1 -3
- gcore/types/waap/domains/__init__.py +28 -18
- gcore/types/waap/domains/advanced_rule_list_params.py +1 -3
- gcore/types/waap/domains/{api_discovery/scan_result_list_params.py → api_discovery_list_scan_results_params.py} +2 -2
- gcore/types/waap/domains/{api_path_group_list_response.py → api_path_group_list.py} +2 -2
- gcore/types/waap/domains/custom_rule_list_params.py +1 -3
- gcore/types/waap/domains/insight_list_params.py +16 -6
- gcore/types/waap/domains/insight_replace_params.py +2 -4
- gcore/types/waap/domains/insight_silence_list_params.py +13 -4
- gcore/types/waap/domains/{analytics_list_ddos_attacks_params.py → statistic_get_ddos_attacks_params.py} +2 -2
- gcore/types/waap/domains/{analytics_list_ddos_info_params.py → statistic_get_ddos_info_params.py} +2 -2
- gcore/types/waap/domains/{analytics_get_event_statistics_params.py → statistic_get_events_aggregated_params.py} +2 -2
- gcore/types/waap/domains/{analytics/request_list_params.py → statistic_get_requests_series_params.py} +27 -5
- gcore/types/waap/domains/{analytics_list_event_traffic_params.py → statistic_get_traffic_series_params.py} +4 -5
- gcore/types/waap/domains/statistic_get_traffic_series_response.py +10 -0
- gcore/types/waap/{waap_advanced_rule.py → domains/waap_advanced_rule.py} +1 -1
- gcore/types/waap/domains/{api_discovery_get_settings_response.py → waap_api_discovery_settings.py} +2 -2
- gcore/types/waap/domains/{api_path_get_response.py → waap_api_path.py} +2 -2
- gcore/types/waap/domains/{api_discovery/scan_result_get_response.py → waap_api_scan_result.py} +3 -3
- gcore/types/waap/{waap_blocked_statistics.py → domains/waap_blocked_statistics.py} +1 -1
- gcore/types/waap/{waap_count_statistics.py → domains/waap_count_statistics.py} +1 -1
- gcore/types/waap/{waap_custom_rule.py → domains/waap_custom_rule.py} +1 -1
- gcore/types/waap/{waap_ddos_attack.py → domains/waap_ddos_attack.py} +1 -1
- gcore/types/waap/{waap_ddos_info.py → domains/waap_ddos_info.py} +1 -1
- gcore/types/waap/{waap_event_statistics.py → domains/waap_event_statistics.py} +1 -1
- gcore/types/waap/{waap_firewall_rule.py → domains/waap_firewall_rule.py} +1 -1
- gcore/types/waap/{waap_insight.py → domains/waap_insight.py} +3 -3
- gcore/types/waap/{waap_insight_silence.py → domains/waap_insight_silence.py} +1 -1
- gcore/types/waap/domains/waap_request_details.py +185 -0
- gcore/types/waap/{waap_request_summary.py → domains/waap_request_summary.py} +1 -1
- gcore/types/waap/domains/{api_discovery_scan_openapi_response.py → waap_task_id.py} +2 -2
- gcore/types/waap/{waap_traffic_metrics.py → domains/waap_traffic_metrics.py} +1 -1
- gcore/types/waap/insight_list_types_params.py +28 -0
- gcore/types/waap/ip_info/__init__.py +6 -0
- gcore/types/waap/{ip_info_get_counts_params.py → ip_info/metric_list_params.py} +2 -2
- gcore/types/waap/{waap_ip_info_counts.py → ip_info/waap_ip_info_counts.py} +1 -1
- gcore/types/waap/{ip_info_get_params.py → ip_info_get_ip_info_params.py} +2 -2
- gcore/types/waap/{waap_ip_info.py → ip_info_get_ip_info_response.py} +2 -2
- gcore/types/waap/ip_info_get_top_urls_response.py +12 -3
- gcore/types/waap/{ip_info_get_top_sessions_params.py → ip_info_get_top_user_sessions_params.py} +2 -2
- gcore/types/waap/{ip_info_get_top_sessions_response.py → ip_info_get_top_user_sessions_response.py} +2 -2
- gcore/types/waap/waap_custom_page_set.py +113 -13
- gcore/types/waap/waap_detailed_domain.py +2 -2
- gcore/types/waap/waap_insight_type.py +33 -0
- gcore/types/waap/waap_rule_set.py +26 -3
- gcore/types/waap/waap_summary_domain.py +2 -2
- {gcore-0.8.0.dist-info → gcore-0.10.0.dist-info}/METADATA +1 -1
- {gcore-0.8.0.dist-info → gcore-0.10.0.dist-info}/RECORD +117 -134
- gcore/resources/waap/domains/analytics/__init__.py +0 -33
- gcore/resources/waap/domains/analytics/requests.py +0 -378
- gcore/resources/waap/domains/api_discovery/__init__.py +0 -33
- gcore/resources/waap/domains/api_discovery/scan_results.py +0 -352
- gcore/resources/waap/domains/policies.py +0 -173
- gcore/types/waap/domains/analytics/__init__.py +0 -5
- gcore/types/waap/domains/analytics_list_event_traffic_response.py +0 -10
- gcore/types/waap/domains/api_discovery/__init__.py +0 -7
- gcore/types/waap/domains/api_discovery/scan_result_list_response.py +0 -29
- gcore/types/waap/domains/api_discovery_update_settings_response.py +0 -36
- gcore/types/waap/domains/api_discovery_upload_openapi_response.py +0 -10
- gcore/types/waap/domains/api_path_create_response.py +0 -50
- gcore/types/waap/domains/api_path_list_response.py +0 -50
- gcore/types/waap/waap_block_csrf_page_data.py +0 -28
- gcore/types/waap/waap_block_csrf_page_data_param.py +0 -28
- gcore/types/waap/waap_block_page_data.py +0 -28
- gcore/types/waap/waap_block_page_data_param.py +0 -28
- gcore/types/waap/waap_captcha_page_data.py +0 -31
- gcore/types/waap/waap_captcha_page_data_param.py +0 -31
- gcore/types/waap/waap_common_tag.py +0 -16
- gcore/types/waap/waap_cookie_disabled_page_data.py +0 -18
- gcore/types/waap/waap_cookie_disabled_page_data_param.py +0 -18
- gcore/types/waap/waap_customer_rule_state.py +0 -7
- gcore/types/waap/waap_domain_policy.py +0 -29
- gcore/types/waap/waap_domain_status.py +0 -7
- gcore/types/waap/waap_handshake_page_data.py +0 -25
- gcore/types/waap/waap_handshake_page_data_param.py +0 -25
- gcore/types/waap/waap_insight_silence_sort_by.py +0 -9
- gcore/types/waap/waap_insight_sort_by.py +0 -20
- gcore/types/waap/waap_insight_status.py +0 -7
- gcore/types/waap/waap_javascript_disabled_page_data.py +0 -18
- gcore/types/waap/waap_javascript_disabled_page_data_param.py +0 -18
- gcore/types/waap/waap_network_details.py +0 -17
- gcore/types/waap/waap_page_type.py +0 -9
- gcore/types/waap/waap_paginated_custom_page_set.py +0 -22
- gcore/types/waap/waap_paginated_ddos_attack.py +0 -22
- gcore/types/waap/waap_paginated_ddos_info.py +0 -22
- gcore/types/waap/waap_paginated_request_summary.py +0 -22
- gcore/types/waap/waap_pattern_matched_tag.py +0 -37
- gcore/types/waap/waap_policy_action.py +0 -7
- gcore/types/waap/waap_request_details.py +0 -92
- gcore/types/waap/waap_request_organization.py +0 -13
- gcore/types/waap/waap_resolution.py +0 -7
- gcore/types/waap/waap_rule_action_type.py +0 -7
- gcore/types/waap/waap_top_url.py +0 -13
- gcore/types/waap/waap_traffic_type.py +0 -28
- gcore/types/waap/waap_user_agent_details.py +0 -40
- {gcore-0.8.0.dist-info → gcore-0.10.0.dist-info}/WHEEL +0 -0
- {gcore-0.8.0.dist-info → gcore-0.10.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,203 @@
|
|
|
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 Optional
|
|
6
|
+
|
|
7
|
+
import httpx
|
|
8
|
+
|
|
9
|
+
from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
|
10
|
+
from ...._utils import maybe_transform, async_maybe_transform
|
|
11
|
+
from ...._compat import cached_property
|
|
12
|
+
from ...._resource import SyncAPIResource, AsyncAPIResource
|
|
13
|
+
from ...._response import (
|
|
14
|
+
to_raw_response_wrapper,
|
|
15
|
+
to_streamed_response_wrapper,
|
|
16
|
+
async_to_raw_response_wrapper,
|
|
17
|
+
async_to_streamed_response_wrapper,
|
|
18
|
+
)
|
|
19
|
+
from ...._base_client import make_request_options
|
|
20
|
+
from ....types.waap.ip_info import metric_list_params
|
|
21
|
+
from ....types.waap.ip_info.waap_ip_info_counts import WaapIPInfoCounts
|
|
22
|
+
|
|
23
|
+
__all__ = ["MetricsResource", "AsyncMetricsResource"]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class MetricsResource(SyncAPIResource):
|
|
27
|
+
@cached_property
|
|
28
|
+
def with_raw_response(self) -> MetricsResourceWithRawResponse:
|
|
29
|
+
"""
|
|
30
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
31
|
+
the raw response object instead of the parsed content.
|
|
32
|
+
|
|
33
|
+
For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
|
|
34
|
+
"""
|
|
35
|
+
return MetricsResourceWithRawResponse(self)
|
|
36
|
+
|
|
37
|
+
@cached_property
|
|
38
|
+
def with_streaming_response(self) -> MetricsResourceWithStreamingResponse:
|
|
39
|
+
"""
|
|
40
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
41
|
+
|
|
42
|
+
For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
|
|
43
|
+
"""
|
|
44
|
+
return MetricsResourceWithStreamingResponse(self)
|
|
45
|
+
|
|
46
|
+
def list(
|
|
47
|
+
self,
|
|
48
|
+
*,
|
|
49
|
+
ip: str,
|
|
50
|
+
domain_id: Optional[int] | NotGiven = NOT_GIVEN,
|
|
51
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
52
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
53
|
+
extra_headers: Headers | None = None,
|
|
54
|
+
extra_query: Query | None = None,
|
|
55
|
+
extra_body: Body | None = None,
|
|
56
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
57
|
+
) -> WaapIPInfoCounts:
|
|
58
|
+
"""
|
|
59
|
+
Retrieve metrics encompassing the counts of total requests, blocked requests and
|
|
60
|
+
unique sessions associated with a specified IP address. Metrics provide a
|
|
61
|
+
statistical overview, aiding in analyzing the interaction and access patterns of
|
|
62
|
+
the IP address in context.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
ip: The IP address to check
|
|
66
|
+
|
|
67
|
+
domain_id: The identifier for a domain. When specified, the response will exclusively
|
|
68
|
+
contain data pertinent to the indicated domain, filtering out information from
|
|
69
|
+
other domains.
|
|
70
|
+
|
|
71
|
+
extra_headers: Send extra headers
|
|
72
|
+
|
|
73
|
+
extra_query: Add additional query parameters to the request
|
|
74
|
+
|
|
75
|
+
extra_body: Add additional JSON properties to the request
|
|
76
|
+
|
|
77
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
78
|
+
"""
|
|
79
|
+
return self._get(
|
|
80
|
+
"/waap/v1/ip-info/counts",
|
|
81
|
+
options=make_request_options(
|
|
82
|
+
extra_headers=extra_headers,
|
|
83
|
+
extra_query=extra_query,
|
|
84
|
+
extra_body=extra_body,
|
|
85
|
+
timeout=timeout,
|
|
86
|
+
query=maybe_transform(
|
|
87
|
+
{
|
|
88
|
+
"ip": ip,
|
|
89
|
+
"domain_id": domain_id,
|
|
90
|
+
},
|
|
91
|
+
metric_list_params.MetricListParams,
|
|
92
|
+
),
|
|
93
|
+
),
|
|
94
|
+
cast_to=WaapIPInfoCounts,
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class AsyncMetricsResource(AsyncAPIResource):
|
|
99
|
+
@cached_property
|
|
100
|
+
def with_raw_response(self) -> AsyncMetricsResourceWithRawResponse:
|
|
101
|
+
"""
|
|
102
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
103
|
+
the raw response object instead of the parsed content.
|
|
104
|
+
|
|
105
|
+
For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
|
|
106
|
+
"""
|
|
107
|
+
return AsyncMetricsResourceWithRawResponse(self)
|
|
108
|
+
|
|
109
|
+
@cached_property
|
|
110
|
+
def with_streaming_response(self) -> AsyncMetricsResourceWithStreamingResponse:
|
|
111
|
+
"""
|
|
112
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
113
|
+
|
|
114
|
+
For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
|
|
115
|
+
"""
|
|
116
|
+
return AsyncMetricsResourceWithStreamingResponse(self)
|
|
117
|
+
|
|
118
|
+
async def list(
|
|
119
|
+
self,
|
|
120
|
+
*,
|
|
121
|
+
ip: str,
|
|
122
|
+
domain_id: Optional[int] | NotGiven = NOT_GIVEN,
|
|
123
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
124
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
125
|
+
extra_headers: Headers | None = None,
|
|
126
|
+
extra_query: Query | None = None,
|
|
127
|
+
extra_body: Body | None = None,
|
|
128
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
129
|
+
) -> WaapIPInfoCounts:
|
|
130
|
+
"""
|
|
131
|
+
Retrieve metrics encompassing the counts of total requests, blocked requests and
|
|
132
|
+
unique sessions associated with a specified IP address. Metrics provide a
|
|
133
|
+
statistical overview, aiding in analyzing the interaction and access patterns of
|
|
134
|
+
the IP address in context.
|
|
135
|
+
|
|
136
|
+
Args:
|
|
137
|
+
ip: The IP address to check
|
|
138
|
+
|
|
139
|
+
domain_id: The identifier for a domain. When specified, the response will exclusively
|
|
140
|
+
contain data pertinent to the indicated domain, filtering out information from
|
|
141
|
+
other domains.
|
|
142
|
+
|
|
143
|
+
extra_headers: Send extra headers
|
|
144
|
+
|
|
145
|
+
extra_query: Add additional query parameters to the request
|
|
146
|
+
|
|
147
|
+
extra_body: Add additional JSON properties to the request
|
|
148
|
+
|
|
149
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
150
|
+
"""
|
|
151
|
+
return await self._get(
|
|
152
|
+
"/waap/v1/ip-info/counts",
|
|
153
|
+
options=make_request_options(
|
|
154
|
+
extra_headers=extra_headers,
|
|
155
|
+
extra_query=extra_query,
|
|
156
|
+
extra_body=extra_body,
|
|
157
|
+
timeout=timeout,
|
|
158
|
+
query=await async_maybe_transform(
|
|
159
|
+
{
|
|
160
|
+
"ip": ip,
|
|
161
|
+
"domain_id": domain_id,
|
|
162
|
+
},
|
|
163
|
+
metric_list_params.MetricListParams,
|
|
164
|
+
),
|
|
165
|
+
),
|
|
166
|
+
cast_to=WaapIPInfoCounts,
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
class MetricsResourceWithRawResponse:
|
|
171
|
+
def __init__(self, metrics: MetricsResource) -> None:
|
|
172
|
+
self._metrics = metrics
|
|
173
|
+
|
|
174
|
+
self.list = to_raw_response_wrapper(
|
|
175
|
+
metrics.list,
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
class AsyncMetricsResourceWithRawResponse:
|
|
180
|
+
def __init__(self, metrics: AsyncMetricsResource) -> None:
|
|
181
|
+
self._metrics = metrics
|
|
182
|
+
|
|
183
|
+
self.list = async_to_raw_response_wrapper(
|
|
184
|
+
metrics.list,
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class MetricsResourceWithStreamingResponse:
|
|
189
|
+
def __init__(self, metrics: MetricsResource) -> None:
|
|
190
|
+
self._metrics = metrics
|
|
191
|
+
|
|
192
|
+
self.list = to_streamed_response_wrapper(
|
|
193
|
+
metrics.list,
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
class AsyncMetricsResourceWithStreamingResponse:
|
|
198
|
+
def __init__(self, metrics: AsyncMetricsResource) -> None:
|
|
199
|
+
self._metrics = metrics
|
|
200
|
+
|
|
201
|
+
self.list = async_to_streamed_response_wrapper(
|
|
202
|
+
metrics.list,
|
|
203
|
+
)
|
gcore/resources/waap/waap.py
CHANGED
|
@@ -12,15 +12,15 @@ from .tags import (
|
|
|
12
12
|
TagsResourceWithStreamingResponse,
|
|
13
13
|
AsyncTagsResourceWithStreamingResponse,
|
|
14
14
|
)
|
|
15
|
-
from .ip_info import (
|
|
16
|
-
IPInfoResource,
|
|
17
|
-
AsyncIPInfoResource,
|
|
18
|
-
IPInfoResourceWithRawResponse,
|
|
19
|
-
AsyncIPInfoResourceWithRawResponse,
|
|
20
|
-
IPInfoResourceWithStreamingResponse,
|
|
21
|
-
AsyncIPInfoResourceWithStreamingResponse,
|
|
22
|
-
)
|
|
23
15
|
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
|
16
|
+
from .insights import (
|
|
17
|
+
InsightsResource,
|
|
18
|
+
AsyncInsightsResource,
|
|
19
|
+
InsightsResourceWithRawResponse,
|
|
20
|
+
AsyncInsightsResourceWithRawResponse,
|
|
21
|
+
InsightsResourceWithStreamingResponse,
|
|
22
|
+
AsyncInsightsResourceWithStreamingResponse,
|
|
23
|
+
)
|
|
24
24
|
from ..._compat import cached_property
|
|
25
25
|
from .statistics import (
|
|
26
26
|
StatisticsResource,
|
|
@@ -62,6 +62,14 @@ from .domains.domains import (
|
|
|
62
62
|
DomainsResourceWithStreamingResponse,
|
|
63
63
|
AsyncDomainsResourceWithStreamingResponse,
|
|
64
64
|
)
|
|
65
|
+
from .ip_info.ip_info import (
|
|
66
|
+
IPInfoResource,
|
|
67
|
+
AsyncIPInfoResource,
|
|
68
|
+
IPInfoResourceWithRawResponse,
|
|
69
|
+
AsyncIPInfoResourceWithRawResponse,
|
|
70
|
+
IPInfoResourceWithStreamingResponse,
|
|
71
|
+
AsyncIPInfoResourceWithStreamingResponse,
|
|
72
|
+
)
|
|
65
73
|
from .custom_page_sets import (
|
|
66
74
|
CustomPageSetsResource,
|
|
67
75
|
AsyncCustomPageSetsResource,
|
|
@@ -100,6 +108,10 @@ class WaapResource(SyncAPIResource):
|
|
|
100
108
|
def organizations(self) -> OrganizationsResource:
|
|
101
109
|
return OrganizationsResource(self._client)
|
|
102
110
|
|
|
111
|
+
@cached_property
|
|
112
|
+
def insights(self) -> InsightsResource:
|
|
113
|
+
return InsightsResource(self._client)
|
|
114
|
+
|
|
103
115
|
@cached_property
|
|
104
116
|
def ip_info(self) -> IPInfoResource:
|
|
105
117
|
return IPInfoResource(self._client)
|
|
@@ -168,6 +180,10 @@ class AsyncWaapResource(AsyncAPIResource):
|
|
|
168
180
|
def organizations(self) -> AsyncOrganizationsResource:
|
|
169
181
|
return AsyncOrganizationsResource(self._client)
|
|
170
182
|
|
|
183
|
+
@cached_property
|
|
184
|
+
def insights(self) -> AsyncInsightsResource:
|
|
185
|
+
return AsyncInsightsResource(self._client)
|
|
186
|
+
|
|
171
187
|
@cached_property
|
|
172
188
|
def ip_info(self) -> AsyncIPInfoResource:
|
|
173
189
|
return AsyncIPInfoResource(self._client)
|
|
@@ -243,6 +259,10 @@ class WaapResourceWithRawResponse:
|
|
|
243
259
|
def organizations(self) -> OrganizationsResourceWithRawResponse:
|
|
244
260
|
return OrganizationsResourceWithRawResponse(self._waap.organizations)
|
|
245
261
|
|
|
262
|
+
@cached_property
|
|
263
|
+
def insights(self) -> InsightsResourceWithRawResponse:
|
|
264
|
+
return InsightsResourceWithRawResponse(self._waap.insights)
|
|
265
|
+
|
|
246
266
|
@cached_property
|
|
247
267
|
def ip_info(self) -> IPInfoResourceWithRawResponse:
|
|
248
268
|
return IPInfoResourceWithRawResponse(self._waap.ip_info)
|
|
@@ -280,6 +300,10 @@ class AsyncWaapResourceWithRawResponse:
|
|
|
280
300
|
def organizations(self) -> AsyncOrganizationsResourceWithRawResponse:
|
|
281
301
|
return AsyncOrganizationsResourceWithRawResponse(self._waap.organizations)
|
|
282
302
|
|
|
303
|
+
@cached_property
|
|
304
|
+
def insights(self) -> AsyncInsightsResourceWithRawResponse:
|
|
305
|
+
return AsyncInsightsResourceWithRawResponse(self._waap.insights)
|
|
306
|
+
|
|
283
307
|
@cached_property
|
|
284
308
|
def ip_info(self) -> AsyncIPInfoResourceWithRawResponse:
|
|
285
309
|
return AsyncIPInfoResourceWithRawResponse(self._waap.ip_info)
|
|
@@ -317,6 +341,10 @@ class WaapResourceWithStreamingResponse:
|
|
|
317
341
|
def organizations(self) -> OrganizationsResourceWithStreamingResponse:
|
|
318
342
|
return OrganizationsResourceWithStreamingResponse(self._waap.organizations)
|
|
319
343
|
|
|
344
|
+
@cached_property
|
|
345
|
+
def insights(self) -> InsightsResourceWithStreamingResponse:
|
|
346
|
+
return InsightsResourceWithStreamingResponse(self._waap.insights)
|
|
347
|
+
|
|
320
348
|
@cached_property
|
|
321
349
|
def ip_info(self) -> IPInfoResourceWithStreamingResponse:
|
|
322
350
|
return IPInfoResourceWithStreamingResponse(self._waap.ip_info)
|
|
@@ -354,6 +382,10 @@ class AsyncWaapResourceWithStreamingResponse:
|
|
|
354
382
|
def organizations(self) -> AsyncOrganizationsResourceWithStreamingResponse:
|
|
355
383
|
return AsyncOrganizationsResourceWithStreamingResponse(self._waap.organizations)
|
|
356
384
|
|
|
385
|
+
@cached_property
|
|
386
|
+
def insights(self) -> AsyncInsightsResourceWithStreamingResponse:
|
|
387
|
+
return AsyncInsightsResourceWithStreamingResponse(self._waap.insights)
|
|
388
|
+
|
|
357
389
|
@cached_property
|
|
358
390
|
def ip_info(self) -> AsyncIPInfoResourceWithStreamingResponse:
|
|
359
391
|
return AsyncIPInfoResourceWithStreamingResponse(self._waap.ip_info)
|
|
@@ -54,6 +54,9 @@ class CostReportGetAggregatedMonthlyParams(TypedDict, total=False):
|
|
|
54
54
|
response_format: Literal["csv_totals", "json"]
|
|
55
55
|
"""Format of the response (`csv_totals` or json)."""
|
|
56
56
|
|
|
57
|
+
rounding: bool
|
|
58
|
+
"""Round cost values to 5 decimal places. When false, returns full precision."""
|
|
59
|
+
|
|
57
60
|
schema_filter: SchemaFilter
|
|
58
61
|
"""Extended filter for field filtering."""
|
|
59
62
|
|
|
@@ -69,6 +69,9 @@ class CostReportGetAggregatedParams(TypedDict, total=False):
|
|
|
69
69
|
response_format: Literal["csv_totals", "json"]
|
|
70
70
|
"""Format of the response (csv or json)."""
|
|
71
71
|
|
|
72
|
+
rounding: bool
|
|
73
|
+
"""Round cost values to 5 decimal places. When false, returns full precision."""
|
|
74
|
+
|
|
72
75
|
schema_filter: SchemaFilter
|
|
73
76
|
"""Extended filter for field filtering."""
|
|
74
77
|
|
|
@@ -76,6 +76,9 @@ class CostReportGetDetailedParams(TypedDict, total=False):
|
|
|
76
76
|
response_format: Literal["csv_records", "json"]
|
|
77
77
|
"""Format of the response (csv or json)."""
|
|
78
78
|
|
|
79
|
+
rounding: bool
|
|
80
|
+
"""Round cost values to 5 decimal places. When false, returns full precision."""
|
|
81
|
+
|
|
79
82
|
schema_filter: SchemaFilter
|
|
80
83
|
"""Extended filter for field filtering."""
|
|
81
84
|
|
|
@@ -10,10 +10,12 @@ __all__ = [
|
|
|
10
10
|
"GPUBaremetalFlavorSerializerWithoutPrice",
|
|
11
11
|
"GPUBaremetalFlavorSerializerWithoutPriceHardwareDescription",
|
|
12
12
|
"GPUBaremetalFlavorSerializerWithoutPriceHardwareProperties",
|
|
13
|
+
"GPUBaremetalFlavorSerializerWithoutPriceSupportedFeatures",
|
|
13
14
|
"GPUBaremetalFlavorSerializerWithPrices",
|
|
14
15
|
"GPUBaremetalFlavorSerializerWithPricesHardwareDescription",
|
|
15
16
|
"GPUBaremetalFlavorSerializerWithPricesHardwareProperties",
|
|
16
17
|
"GPUBaremetalFlavorSerializerWithPricesPrice",
|
|
18
|
+
"GPUBaremetalFlavorSerializerWithPricesSupportedFeatures",
|
|
17
19
|
]
|
|
18
20
|
|
|
19
21
|
|
|
@@ -45,6 +47,10 @@ class GPUBaremetalFlavorSerializerWithoutPriceHardwareProperties(BaseModel):
|
|
|
45
47
|
"""GPU model"""
|
|
46
48
|
|
|
47
49
|
|
|
50
|
+
class GPUBaremetalFlavorSerializerWithoutPriceSupportedFeatures(BaseModel):
|
|
51
|
+
security_groups: bool
|
|
52
|
+
|
|
53
|
+
|
|
48
54
|
class GPUBaremetalFlavorSerializerWithoutPrice(BaseModel):
|
|
49
55
|
architecture: Optional[str] = None
|
|
50
56
|
"""Flavor architecture type"""
|
|
@@ -64,6 +70,9 @@ class GPUBaremetalFlavorSerializerWithoutPrice(BaseModel):
|
|
|
64
70
|
name: str
|
|
65
71
|
"""Flavor name"""
|
|
66
72
|
|
|
73
|
+
supported_features: GPUBaremetalFlavorSerializerWithoutPriceSupportedFeatures
|
|
74
|
+
"""Set of enabled features based on the flavor's type and configuration"""
|
|
75
|
+
|
|
67
76
|
|
|
68
77
|
class GPUBaremetalFlavorSerializerWithPricesHardwareDescription(BaseModel):
|
|
69
78
|
cpu: str
|
|
@@ -107,6 +116,10 @@ class GPUBaremetalFlavorSerializerWithPricesPrice(BaseModel):
|
|
|
107
116
|
"""Price status for the UI"""
|
|
108
117
|
|
|
109
118
|
|
|
119
|
+
class GPUBaremetalFlavorSerializerWithPricesSupportedFeatures(BaseModel):
|
|
120
|
+
security_groups: bool
|
|
121
|
+
|
|
122
|
+
|
|
110
123
|
class GPUBaremetalFlavorSerializerWithPrices(BaseModel):
|
|
111
124
|
architecture: Optional[str] = None
|
|
112
125
|
"""Flavor architecture type"""
|
|
@@ -129,5 +142,8 @@ class GPUBaremetalFlavorSerializerWithPrices(BaseModel):
|
|
|
129
142
|
price: GPUBaremetalFlavorSerializerWithPricesPrice
|
|
130
143
|
"""Flavor price"""
|
|
131
144
|
|
|
145
|
+
supported_features: GPUBaremetalFlavorSerializerWithPricesSupportedFeatures
|
|
146
|
+
"""Set of enabled features based on the flavor's type and configuration"""
|
|
147
|
+
|
|
132
148
|
|
|
133
149
|
GPUBaremetalFlavor: TypeAlias = Union[GPUBaremetalFlavorSerializerWithoutPrice, GPUBaremetalFlavorSerializerWithPrices]
|
|
@@ -45,6 +45,12 @@ class HealthMonitor(BaseModel):
|
|
|
45
45
|
"""Health monitor type. Once health monitor is created, cannot be changed."""
|
|
46
46
|
|
|
47
47
|
expected_codes: Optional[str] = None
|
|
48
|
+
"""Expected HTTP response codes.
|
|
49
|
+
|
|
50
|
+
Can be a single code or a range of codes. Can only be used together with `HTTP`
|
|
51
|
+
or `HTTPS` health monitor type. For example,
|
|
52
|
+
200,202,300-302,401,403,404,500-504. If not specified, the default is 200.
|
|
53
|
+
"""
|
|
48
54
|
|
|
49
55
|
http_method: Optional[HTTPMethod] = None
|
|
50
56
|
"""HTTP method"""
|
|
@@ -147,7 +147,12 @@ class ListenerPoolHealthmonitor(TypedDict, total=False):
|
|
|
147
147
|
"""Health monitor type. Once health monitor is created, cannot be changed."""
|
|
148
148
|
|
|
149
149
|
expected_codes: Optional[str]
|
|
150
|
-
"""
|
|
150
|
+
"""Expected HTTP response codes.
|
|
151
|
+
|
|
152
|
+
Can be a single code or a range of codes. Can only be used together with `HTTP`
|
|
153
|
+
or `HTTPS` health monitor type. For example,
|
|
154
|
+
200,202,300-302,401,403,404,500-504. If not specified, the default is 200.
|
|
155
|
+
"""
|
|
151
156
|
|
|
152
157
|
http_method: Optional[HTTPMethod]
|
|
153
158
|
"""HTTP method.
|
|
@@ -155,7 +160,7 @@ class ListenerPoolHealthmonitor(TypedDict, total=False):
|
|
|
155
160
|
Can only be used together with `HTTP` or `HTTPS` health monitor type.
|
|
156
161
|
"""
|
|
157
162
|
|
|
158
|
-
max_retries_down:
|
|
163
|
+
max_retries_down: int
|
|
159
164
|
"""Number of failures before the member is switched to ERROR state."""
|
|
160
165
|
|
|
161
166
|
url_path: Optional[str]
|
|
@@ -210,7 +215,7 @@ class ListenerPoolMember(TypedDict, total=False):
|
|
|
210
215
|
Either `subnet_id` or `instance_id` should be provided
|
|
211
216
|
"""
|
|
212
217
|
|
|
213
|
-
weight:
|
|
218
|
+
weight: int
|
|
214
219
|
"""Member weight. Valid values are 0 < `weight` <= 256, defaults to 1."""
|
|
215
220
|
|
|
216
221
|
|
|
@@ -78,7 +78,12 @@ class Healthmonitor(TypedDict, total=False):
|
|
|
78
78
|
"""Health monitor type. Once health monitor is created, cannot be changed."""
|
|
79
79
|
|
|
80
80
|
expected_codes: Optional[str]
|
|
81
|
-
"""
|
|
81
|
+
"""Expected HTTP response codes.
|
|
82
|
+
|
|
83
|
+
Can be a single code or a range of codes. Can only be used together with `HTTP`
|
|
84
|
+
or `HTTPS` health monitor type. For example,
|
|
85
|
+
200,202,300-302,401,403,404,500-504. If not specified, the default is 200.
|
|
86
|
+
"""
|
|
82
87
|
|
|
83
88
|
http_method: Optional[HTTPMethod]
|
|
84
89
|
"""HTTP method.
|
|
@@ -86,7 +91,7 @@ class Healthmonitor(TypedDict, total=False):
|
|
|
86
91
|
Can only be used together with `HTTP` or `HTTPS` health monitor type.
|
|
87
92
|
"""
|
|
88
93
|
|
|
89
|
-
max_retries_down:
|
|
94
|
+
max_retries_down: int
|
|
90
95
|
"""Number of failures before the member is switched to ERROR state."""
|
|
91
96
|
|
|
92
97
|
url_path: Optional[str]
|
|
@@ -141,7 +146,7 @@ class Member(TypedDict, total=False):
|
|
|
141
146
|
Either `subnet_id` or `instance_id` should be provided
|
|
142
147
|
"""
|
|
143
148
|
|
|
144
|
-
weight:
|
|
149
|
+
weight: int
|
|
145
150
|
"""Member weight. Valid values are 0 < `weight` <= 256, defaults to 1."""
|
|
146
151
|
|
|
147
152
|
|
|
@@ -73,7 +73,12 @@ class Healthmonitor(TypedDict, total=False):
|
|
|
73
73
|
"""The maximum time to connect. Must be less than the delay value"""
|
|
74
74
|
|
|
75
75
|
expected_codes: Optional[str]
|
|
76
|
-
"""
|
|
76
|
+
"""Expected HTTP response codes.
|
|
77
|
+
|
|
78
|
+
Can be a single code or a range of codes. Can only be used together with `HTTP`
|
|
79
|
+
or `HTTPS` health monitor type. For example,
|
|
80
|
+
200,202,300-302,401,403,404,500-504. If not specified, the default is 200.
|
|
81
|
+
"""
|
|
77
82
|
|
|
78
83
|
http_method: Optional[HTTPMethod]
|
|
79
84
|
"""HTTP method.
|
|
@@ -81,7 +86,7 @@ class Healthmonitor(TypedDict, total=False):
|
|
|
81
86
|
Can only be used together with `HTTP` or `HTTPS` health monitor type.
|
|
82
87
|
"""
|
|
83
88
|
|
|
84
|
-
max_retries_down:
|
|
89
|
+
max_retries_down: int
|
|
85
90
|
"""Number of failures before the member is switched to ERROR state."""
|
|
86
91
|
|
|
87
92
|
type: Optional[LbHealthMonitorType]
|
|
@@ -139,7 +144,7 @@ class Member(TypedDict, total=False):
|
|
|
139
144
|
Either `subnet_id` or `instance_id` should be provided
|
|
140
145
|
"""
|
|
141
146
|
|
|
142
|
-
weight:
|
|
147
|
+
weight: int
|
|
143
148
|
"""Member weight. Valid values are 0 < `weight` <= 256, defaults to 1."""
|
|
144
149
|
|
|
145
150
|
|
|
@@ -32,7 +32,12 @@ class HealthMonitorCreateParams(TypedDict, total=False):
|
|
|
32
32
|
"""Health monitor type. Once health monitor is created, cannot be changed."""
|
|
33
33
|
|
|
34
34
|
expected_codes: Optional[str]
|
|
35
|
-
"""
|
|
35
|
+
"""Expected HTTP response codes.
|
|
36
|
+
|
|
37
|
+
Can be a single code or a range of codes. Can only be used together with `HTTP`
|
|
38
|
+
or `HTTPS` health monitor type. For example,
|
|
39
|
+
200,202,300-302,401,403,404,500-504. If not specified, the default is 200.
|
|
40
|
+
"""
|
|
36
41
|
|
|
37
42
|
http_method: Optional[HTTPMethod]
|
|
38
43
|
"""HTTP method.
|
|
@@ -40,7 +45,7 @@ class HealthMonitorCreateParams(TypedDict, total=False):
|
|
|
40
45
|
Can only be used together with `HTTP` or `HTTPS` health monitor type.
|
|
41
46
|
"""
|
|
42
47
|
|
|
43
|
-
max_retries_down:
|
|
48
|
+
max_retries_down: int
|
|
44
49
|
"""Number of failures before the member is switched to ERROR state."""
|
|
45
50
|
|
|
46
51
|
url_path: Optional[str]
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import List
|
|
5
|
+
from typing import List
|
|
6
6
|
from typing_extensions import Literal, TypedDict
|
|
7
7
|
|
|
8
8
|
__all__ = ["RequestListParams"]
|
|
@@ -18,5 +18,5 @@ class RequestListParams(TypedDict, total=False):
|
|
|
18
18
|
Offset value is used to exclude the first set of records from the result
|
|
19
19
|
"""
|
|
20
20
|
|
|
21
|
-
status:
|
|
21
|
+
status: List[Literal["done", "in progress", "rejected"]]
|
|
22
22
|
"""List of limit requests statuses for filtering"""
|
gcore/types/cloud/region.py
CHANGED
|
@@ -22,9 +22,6 @@ class Region(BaseModel):
|
|
|
22
22
|
access_level: Literal["core", "edge"]
|
|
23
23
|
"""The access level of the region."""
|
|
24
24
|
|
|
25
|
-
ai_service_endpoint_id: Optional[int] = None
|
|
26
|
-
"""AI service API endpoint ID"""
|
|
27
|
-
|
|
28
25
|
available_volume_types: Optional[List[str]] = None
|
|
29
26
|
"""List of available volume types, 'standard', '`ssd_hiiops`', 'cold']."""
|
|
30
27
|
|
|
@@ -40,9 +37,6 @@ class Region(BaseModel):
|
|
|
40
37
|
created_on: datetime
|
|
41
38
|
"""This field is deprecated. Use `created_at` instead."""
|
|
42
39
|
|
|
43
|
-
ddos_endpoint_id: Optional[int] = None
|
|
44
|
-
"""DDoS endpoint ID"""
|
|
45
|
-
|
|
46
40
|
display_name: str
|
|
47
41
|
"""Human-readable region name"""
|
|
48
42
|
|
|
@@ -70,6 +64,9 @@ class Region(BaseModel):
|
|
|
70
64
|
has_dbaas: bool
|
|
71
65
|
"""Region has DBAAS service"""
|
|
72
66
|
|
|
67
|
+
has_ddos: bool
|
|
68
|
+
"""Region has Advanced DDoS Protection capability"""
|
|
69
|
+
|
|
73
70
|
has_k8s: bool
|
|
74
71
|
"""Region has managed kubernetes capability"""
|
|
75
72
|
|
|
@@ -99,3 +96,6 @@ class Region(BaseModel):
|
|
|
99
96
|
|
|
100
97
|
zone: Optional[Literal["AMERICAS", "APAC", "EMEA", "RUSSIA_AND_CIS"]] = None
|
|
101
98
|
"""Geographical zone"""
|
|
99
|
+
|
|
100
|
+
ddos_endpoint_id: Optional[int] = None
|
|
101
|
+
"""DDoS endpoint ID"""
|
gcore/types/fastedge/__init__.py
CHANGED
|
@@ -23,6 +23,7 @@ from .app_update_params import AppUpdateParams as AppUpdateParams
|
|
|
23
23
|
from .app_replace_params import AppReplaceParams as AppReplaceParams
|
|
24
24
|
from .secret_list_params import SecretListParams as SecretListParams
|
|
25
25
|
from .template_parameter import TemplateParameter as TemplateParameter
|
|
26
|
+
from .binary_create_params import BinaryCreateParams as BinaryCreateParams
|
|
26
27
|
from .binary_list_response import BinaryListResponse as BinaryListResponse
|
|
27
28
|
from .kv_store_list_params import KvStoreListParams as KvStoreListParams
|
|
28
29
|
from .secret_create_params import SecretCreateParams as SecretCreateParams
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["BinaryCreateParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class BinaryCreateParams(TypedDict, total=False):
|
|
11
|
+
pass
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from .client_view import ClientView as ClientView
|
|
6
|
+
from .client_profile import ClientProfile as ClientProfile
|
|
7
|
+
from .client_announce import ClientAnnounce as ClientAnnounce
|
|
8
|
+
from .event_list_params import EventListParams as EventListParams
|
|
9
|
+
from .profile_list_params import ProfileListParams as ProfileListParams
|
|
10
|
+
from .profile_create_params import ProfileCreateParams as ProfileCreateParams
|
|
11
|
+
from .profile_list_response import ProfileListResponse as ProfileListResponse
|
|
12
|
+
from .profile_replace_params import ProfileReplaceParams as ProfileReplaceParams
|
|
13
|
+
from .client_profile_template import ClientProfileTemplate as ClientProfileTemplate
|
|
14
|
+
from .profile_recreate_params import ProfileRecreateParams as ProfileRecreateParams
|
|
15
|
+
from .bgp_announce_list_params import BgpAnnounceListParams as BgpAnnounceListParams
|
|
16
|
+
from .bgp_announce_list_response import BgpAnnounceListResponse as BgpAnnounceListResponse
|
|
17
|
+
from .bgp_announce_toggle_params import BgpAnnounceToggleParams as BgpAnnounceToggleParams
|
|
18
|
+
from .profile_template_list_response import ProfileTemplateListResponse as ProfileTemplateListResponse
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Literal, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["BgpAnnounceListParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BgpAnnounceListParams(TypedDict, total=False):
|
|
12
|
+
announced: Optional[bool]
|
|
13
|
+
|
|
14
|
+
client_id: Optional[int]
|
|
15
|
+
|
|
16
|
+
origin: Optional[Literal["STATIC", "DYNAMIC"]]
|
|
17
|
+
|
|
18
|
+
site: Optional[str]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
from typing_extensions import TypeAlias
|
|
5
|
+
|
|
6
|
+
from .client_announce import ClientAnnounce
|
|
7
|
+
|
|
8
|
+
__all__ = ["BgpAnnounceListResponse"]
|
|
9
|
+
|
|
10
|
+
BgpAnnounceListResponse: TypeAlias = List[ClientAnnounce]
|