gcore 0.13.0__py3-none-any.whl → 0.14.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gcore might be problematic. Click here for more details.

Files changed (334) hide show
  1. gcore/__init__.py +3 -1
  2. gcore/_base_client.py +9 -9
  3. gcore/_client.py +25 -10
  4. gcore/_models.py +10 -4
  5. gcore/_qs.py +7 -7
  6. gcore/_types.py +18 -11
  7. gcore/_utils/_transform.py +2 -2
  8. gcore/_utils/_utils.py +4 -4
  9. gcore/_version.py +1 -1
  10. gcore/pagination.py +137 -0
  11. gcore/resources/__init__.py +14 -0
  12. gcore/resources/cdn/__init__.py +201 -0
  13. gcore/resources/cdn/audit_log.py +406 -0
  14. gcore/resources/cdn/cdn.py +957 -0
  15. gcore/resources/cdn/certificates.py +1062 -0
  16. gcore/resources/cdn/ip_ranges.py +224 -0
  17. gcore/resources/cdn/logs/__init__.py +33 -0
  18. gcore/resources/cdn/logs/logs.py +1424 -0
  19. gcore/resources/cdn/logs/settings.py +1081 -0
  20. gcore/resources/cdn/logs_uploader/__init__.py +61 -0
  21. gcore/resources/cdn/logs_uploader/configs.py +868 -0
  22. gcore/resources/cdn/logs_uploader/logs_uploader.py +166 -0
  23. gcore/resources/cdn/logs_uploader/policies.py +1060 -0
  24. gcore/resources/cdn/logs_uploader/targets.py +811 -0
  25. gcore/resources/cdn/metrics.py +419 -0
  26. gcore/resources/cdn/network_capacity.py +139 -0
  27. gcore/resources/cdn/origin_groups.py +1496 -0
  28. gcore/resources/cdn/resources/__init__.py +47 -0
  29. gcore/resources/cdn/resources/resources.py +2060 -0
  30. gcore/resources/cdn/resources/rules.py +1027 -0
  31. gcore/resources/cdn/resources/shield.py +259 -0
  32. gcore/resources/cdn/rule_templates.py +883 -0
  33. gcore/resources/cdn/shields.py +139 -0
  34. gcore/resources/cdn/statistics.py +1408 -0
  35. gcore/resources/cdn/trusted_ca_certificates.py +592 -0
  36. gcore/resources/cloud/audit_logs.py +33 -29
  37. gcore/resources/cloud/baremetal/flavors.py +21 -17
  38. gcore/resources/cloud/baremetal/images.py +19 -15
  39. gcore/resources/cloud/baremetal/servers.py +141 -119
  40. gcore/resources/cloud/billing_reservations.py +41 -33
  41. gcore/resources/cloud/cloud.py +24 -0
  42. gcore/resources/cloud/cost_reports.py +149 -119
  43. gcore/resources/cloud/file_shares/access_rules.py +25 -13
  44. gcore/resources/cloud/file_shares/file_shares.py +107 -71
  45. gcore/resources/cloud/floating_ips.py +101 -59
  46. gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +13 -9
  47. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +275 -65
  48. gcore/resources/cloud/gpu_baremetal_clusters/images.py +69 -53
  49. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +9 -5
  50. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +151 -127
  51. gcore/resources/cloud/inference/api_keys.py +51 -31
  52. gcore/resources/cloud/inference/applications/deployments.py +49 -31
  53. gcore/resources/cloud/inference/applications/templates.py +17 -9
  54. gcore/resources/cloud/inference/deployments/deployments.py +171 -139
  55. gcore/resources/cloud/inference/deployments/logs.py +17 -13
  56. gcore/resources/cloud/inference/flavors.py +21 -13
  57. gcore/resources/cloud/inference/inference.py +9 -5
  58. gcore/resources/cloud/inference/registry_credentials.py +45 -25
  59. gcore/resources/cloud/inference/secrets.py +45 -25
  60. gcore/resources/cloud/instances/flavors.py +17 -13
  61. gcore/resources/cloud/instances/images.py +153 -129
  62. gcore/resources/cloud/instances/instances.py +287 -213
  63. gcore/resources/cloud/instances/interfaces.py +165 -161
  64. gcore/resources/cloud/instances/metrics.py +9 -5
  65. gcore/resources/cloud/ip_ranges.py +25 -15
  66. gcore/resources/cloud/k8s/clusters/clusters.py +151 -87
  67. gcore/resources/cloud/k8s/clusters/nodes.py +19 -11
  68. gcore/resources/cloud/k8s/clusters/pools/nodes.py +19 -11
  69. gcore/resources/cloud/k8s/clusters/pools/pools.py +83 -59
  70. gcore/resources/cloud/k8s/flavors.py +13 -9
  71. gcore/resources/cloud/k8s/k8s.py +9 -5
  72. gcore/resources/cloud/load_balancers/flavors.py +11 -7
  73. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +103 -83
  74. gcore/resources/cloud/load_balancers/l7_policies/rules.py +77 -57
  75. gcore/resources/cloud/load_balancers/listeners.py +125 -105
  76. gcore/resources/cloud/load_balancers/load_balancers.py +155 -123
  77. gcore/resources/cloud/load_balancers/metrics.py +9 -5
  78. gcore/resources/cloud/load_balancers/pools/health_monitors.py +25 -17
  79. gcore/resources/cloud/load_balancers/pools/members.py +31 -23
  80. gcore/resources/cloud/load_balancers/pools/pools.py +155 -129
  81. gcore/resources/cloud/load_balancers/statuses.py +17 -9
  82. gcore/resources/cloud/networks/networks.py +79 -55
  83. gcore/resources/cloud/networks/routers.py +75 -47
  84. gcore/resources/cloud/networks/subnets.py +105 -81
  85. gcore/resources/cloud/placement_groups.py +33 -17
  86. gcore/resources/cloud/projects.py +53 -41
  87. gcore/resources/cloud/quotas/quotas.py +25 -13
  88. gcore/resources/cloud/quotas/requests.py +41 -25
  89. gcore/resources/cloud/regions.py +25 -23
  90. gcore/resources/cloud/registries/artifacts.py +17 -9
  91. gcore/resources/cloud/registries/registries.py +55 -29
  92. gcore/resources/cloud/registries/repositories.py +17 -9
  93. gcore/resources/cloud/registries/tags.py +9 -5
  94. gcore/resources/cloud/registries/users.py +65 -35
  95. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +123 -107
  96. gcore/resources/cloud/reserved_fixed_ips/vip.py +45 -25
  97. gcore/resources/cloud/secrets.py +43 -27
  98. gcore/resources/cloud/security_groups/rules.py +55 -43
  99. gcore/resources/cloud/security_groups/security_groups.py +79 -47
  100. gcore/resources/cloud/ssh_keys.py +51 -31
  101. gcore/resources/cloud/tasks.py +57 -45
  102. gcore/resources/cloud/usage_reports.py +27 -23
  103. gcore/resources/cloud/users/role_assignments.py +49 -33
  104. gcore/resources/cloud/volumes.py +237 -201
  105. gcore/resources/dns/dns.py +17 -13
  106. gcore/resources/dns/locations.py +29 -17
  107. gcore/resources/dns/metrics.py +13 -9
  108. gcore/resources/dns/pickers/pickers.py +5 -5
  109. gcore/resources/dns/pickers/presets.py +9 -5
  110. gcore/resources/dns/zones/dnssec.py +19 -11
  111. gcore/resources/dns/zones/rrsets.py +149 -91
  112. gcore/resources/dns/zones/zones.py +245 -187
  113. gcore/resources/fastedge/apps/apps.py +105 -89
  114. gcore/resources/fastedge/apps/logs.py +25 -21
  115. gcore/resources/fastedge/binaries.py +33 -17
  116. gcore/resources/fastedge/fastedge.py +5 -5
  117. gcore/resources/fastedge/kv_stores.py +43 -31
  118. gcore/resources/fastedge/secrets.py +69 -45
  119. gcore/resources/fastedge/statistics.py +25 -17
  120. gcore/resources/fastedge/templates.py +59 -39
  121. gcore/resources/iam/api_tokens.py +43 -27
  122. gcore/resources/iam/iam.py +5 -5
  123. gcore/resources/iam/users.py +97 -65
  124. gcore/resources/security/bgp_announces.py +27 -19
  125. gcore/resources/security/events.py +23 -19
  126. gcore/resources/security/profile_templates.py +9 -5
  127. gcore/resources/security/profiles.py +69 -45
  128. gcore/resources/storage/buckets/buckets.py +37 -25
  129. gcore/resources/storage/buckets/cors.py +19 -11
  130. gcore/resources/storage/buckets/lifecycle.py +19 -11
  131. gcore/resources/storage/buckets/policy.py +25 -13
  132. gcore/resources/storage/credentials.py +19 -15
  133. gcore/resources/storage/locations.py +13 -9
  134. gcore/resources/storage/statistics.py +39 -31
  135. gcore/resources/storage/storage.py +105 -69
  136. gcore/resources/streaming/ai_tasks.py +307 -197
  137. gcore/resources/streaming/broadcasts.py +63 -35
  138. gcore/resources/streaming/directories.py +65 -39
  139. gcore/resources/streaming/players.py +47 -31
  140. gcore/resources/streaming/playlists.py +189 -123
  141. gcore/resources/streaming/quality_sets.py +69 -39
  142. gcore/resources/streaming/restreams.py +47 -27
  143. gcore/resources/streaming/statistics.py +613 -407
  144. gcore/resources/streaming/streams/overlays.py +107 -67
  145. gcore/resources/streaming/streams/streams.py +403 -263
  146. gcore/resources/streaming/videos/subtitles.py +131 -75
  147. gcore/resources/streaming/videos/videos.py +429 -279
  148. gcore/resources/waap/advanced_rules.py +9 -5
  149. gcore/resources/waap/custom_page_sets.py +99 -75
  150. gcore/resources/waap/domains/advanced_rules.py +157 -99
  151. gcore/resources/waap/domains/api_discovery.py +71 -47
  152. gcore/resources/waap/domains/api_path_groups.py +9 -5
  153. gcore/resources/waap/domains/api_paths.py +79 -83
  154. gcore/resources/waap/domains/custom_rules.py +89 -59
  155. gcore/resources/waap/domains/domains.py +59 -41
  156. gcore/resources/waap/domains/firewall_rules.py +83 -55
  157. gcore/resources/waap/domains/insight_silences.py +59 -39
  158. gcore/resources/waap/domains/insights.py +39 -27
  159. gcore/resources/waap/domains/settings.py +21 -13
  160. gcore/resources/waap/domains/statistics.py +99 -75
  161. gcore/resources/waap/insights.py +23 -21
  162. gcore/resources/waap/ip_info/ip_info.py +65 -33
  163. gcore/resources/waap/ip_info/metrics.py +11 -7
  164. gcore/resources/waap/organizations.py +17 -13
  165. gcore/resources/waap/statistics.py +9 -5
  166. gcore/resources/waap/tags.py +17 -17
  167. gcore/resources/waap/waap.py +5 -5
  168. gcore/types/cdn/__init__.py +80 -0
  169. gcore/types/cdn/audit_log_list_params.py +73 -0
  170. gcore/types/cdn/ca_certificate.py +53 -0
  171. gcore/types/cdn/ca_certificate_list.py +10 -0
  172. gcore/types/cdn/cdn_account.py +86 -0
  173. gcore/types/cdn/cdn_account_limits.py +27 -0
  174. gcore/types/cdn/cdn_audit_log_entry.py +66 -0
  175. gcore/types/cdn/cdn_available_features.py +46 -0
  176. gcore/types/cdn/cdn_list_purge_statuses_params.py +67 -0
  177. gcore/types/cdn/cdn_log_entry.py +70 -0
  178. gcore/types/cdn/cdn_metrics.py +22 -0
  179. gcore/types/cdn/cdn_metrics_groups.py +13 -0
  180. gcore/types/cdn/cdn_metrics_values.py +19 -0
  181. gcore/types/cdn/cdn_resource.py +1977 -0
  182. gcore/types/cdn/cdn_resource_list.py +10 -0
  183. gcore/types/cdn/cdn_update_account_params.py +15 -0
  184. gcore/types/cdn/certificate_create_params.py +51 -0
  185. gcore/types/cdn/certificate_get_status_params.py +14 -0
  186. gcore/types/cdn/certificate_list_params.py +29 -0
  187. gcore/types/cdn/certificate_replace_params.py +39 -0
  188. gcore/types/cdn/log_download_params.py +279 -0
  189. gcore/types/cdn/log_list_params.py +273 -0
  190. gcore/types/cdn/logs/__init__.py +7 -0
  191. gcore/types/cdn/logs/log_settings.py +172 -0
  192. gcore/types/cdn/logs/setting_create_params.py +200 -0
  193. gcore/types/cdn/logs/setting_update_params.py +200 -0
  194. gcore/types/cdn/logs_aggregated_stats.py +23 -0
  195. gcore/types/cdn/logs_uploader/__init__.py +23 -0
  196. gcore/types/cdn/logs_uploader/config_create_params.py +32 -0
  197. gcore/types/cdn/logs_uploader/config_list_params.py +16 -0
  198. gcore/types/cdn/logs_uploader/config_replace_params.py +32 -0
  199. gcore/types/cdn/logs_uploader/config_update_params.py +32 -0
  200. gcore/types/cdn/logs_uploader/logs_uploader_config.py +51 -0
  201. gcore/types/cdn/logs_uploader/logs_uploader_config_list.py +10 -0
  202. gcore/types/cdn/logs_uploader/logs_uploader_policy.py +73 -0
  203. gcore/types/cdn/logs_uploader/logs_uploader_policy_list.py +10 -0
  204. gcore/types/cdn/logs_uploader/logs_uploader_target.py +236 -0
  205. gcore/types/cdn/logs_uploader/logs_uploader_target_list.py +10 -0
  206. gcore/types/cdn/logs_uploader/policy_create_params.py +61 -0
  207. gcore/types/cdn/logs_uploader/policy_list_fields_response.py +8 -0
  208. gcore/types/cdn/logs_uploader/policy_list_params.py +16 -0
  209. gcore/types/cdn/logs_uploader/policy_replace_params.py +61 -0
  210. gcore/types/cdn/logs_uploader/policy_update_params.py +61 -0
  211. gcore/types/cdn/logs_uploader/target_create_params.py +249 -0
  212. gcore/types/cdn/logs_uploader/target_list_params.py +16 -0
  213. gcore/types/cdn/logs_uploader/target_replace_params.py +249 -0
  214. gcore/types/cdn/logs_uploader/target_update_params.py +249 -0
  215. gcore/types/cdn/logs_uploader_validation.py +23 -0
  216. gcore/types/cdn/metric_list_params.py +168 -0
  217. gcore/types/cdn/network_capacity.py +22 -0
  218. gcore/types/cdn/origin_group_create_params.py +184 -0
  219. gcore/types/cdn/origin_group_list_params.py +24 -0
  220. gcore/types/cdn/origin_group_replace_params.py +190 -0
  221. gcore/types/cdn/origin_group_update_params.py +190 -0
  222. gcore/types/cdn/origin_groups.py +212 -0
  223. gcore/types/cdn/origin_groups_list.py +10 -0
  224. gcore/types/cdn/public_ip_list.py +15 -0
  225. gcore/types/cdn/public_network_list.py +15 -0
  226. gcore/types/cdn/purge_status.py +55 -0
  227. gcore/types/cdn/resource_aggregated_stats.py +80 -0
  228. gcore/types/cdn/resource_create_params.py +1825 -0
  229. gcore/types/cdn/resource_list_params.py +107 -0
  230. gcore/types/cdn/resource_prefetch_params.py +17 -0
  231. gcore/types/cdn/resource_purge_params.py +71 -0
  232. gcore/types/cdn/resource_replace_params.py +1803 -0
  233. gcore/types/cdn/resource_update_params.py +1794 -0
  234. gcore/types/cdn/resource_usage_stats.py +111 -0
  235. gcore/types/cdn/resources/__init__.py +11 -0
  236. gcore/types/cdn/resources/cdn_resource_rule.py +1695 -0
  237. gcore/types/cdn/resources/origin_shielding.py +15 -0
  238. gcore/types/cdn/resources/rule_create_params.py +1652 -0
  239. gcore/types/cdn/resources/rule_list_response.py +10 -0
  240. gcore/types/cdn/resources/rule_replace_params.py +1654 -0
  241. gcore/types/cdn/resources/rule_update_params.py +1654 -0
  242. gcore/types/cdn/resources/shield_replace_params.py +16 -0
  243. gcore/types/cdn/rule_template.py +1666 -0
  244. gcore/types/cdn/rule_template_create_params.py +1636 -0
  245. gcore/types/cdn/rule_template_list.py +10 -0
  246. gcore/types/cdn/rule_template_replace_params.py +1636 -0
  247. gcore/types/cdn/rule_template_update_params.py +1636 -0
  248. gcore/types/cdn/shield_aggregated_stats.py +23 -0
  249. gcore/types/cdn/shield_list_response.py +25 -0
  250. gcore/types/cdn/ssl_detail.py +62 -0
  251. gcore/types/cdn/ssl_detail_list.py +10 -0
  252. gcore/types/cdn/ssl_request_status.py +135 -0
  253. gcore/types/cdn/statistic_get_logs_usage_aggregated_params.py +42 -0
  254. gcore/types/cdn/statistic_get_logs_usage_series_params.py +35 -0
  255. gcore/types/cdn/statistic_get_resource_usage_aggregated_params.py +151 -0
  256. gcore/types/cdn/statistic_get_resource_usage_series_params.py +131 -0
  257. gcore/types/cdn/statistic_get_shield_usage_aggregated_params.py +42 -0
  258. gcore/types/cdn/statistic_get_shield_usage_series_params.py +25 -0
  259. gcore/types/cdn/trusted_ca_certificate_create_params.py +23 -0
  260. gcore/types/cdn/trusted_ca_certificate_list_params.py +29 -0
  261. gcore/types/cdn/trusted_ca_certificate_replace_params.py +15 -0
  262. gcore/types/cdn/usage_series_stats.py +31 -0
  263. gcore/types/cloud/__init__.py +1 -0
  264. gcore/types/cloud/file_share.py +4 -0
  265. gcore/types/cloud/file_share_create_params.py +20 -0
  266. gcore/types/cloud/file_share_update_params.py +40 -3
  267. gcore/types/cloud/floating_ip_update_params.py +3 -1
  268. gcore/types/cloud/gpu_baremetal_cluster_action_params.py +46 -0
  269. gcore/types/cloud/inference/inference_deployment.py +3 -1
  270. gcore/types/cloud/instance_create_params.py +3 -1
  271. gcore/types/cloud/k8s/cluster_create_params.py +46 -4
  272. gcore/types/cloud/k8s/cluster_update_params.py +60 -6
  273. gcore/types/cloud/k8s/clusters/pool_update_params.py +1 -1
  274. gcore/types/cloud/k8s/k8s_cluster.py +40 -3
  275. gcore/types/cloud/load_balancer_update_params.py +3 -1
  276. gcore/types/cloud/network_update_params.py +3 -1
  277. gcore/types/cloud/networks/subnet_update_params.py +3 -1
  278. gcore/types/cloud/registries/user_create_multiple_params.py +5 -3
  279. gcore/types/cloud/registries/user_create_params.py +5 -3
  280. gcore/types/cloud/registry_create_params.py +5 -3
  281. gcore/types/cloud/security_group_update_params.py +3 -1
  282. gcore/types/cloud/ssh_key_created.py +6 -3
  283. gcore/types/cloud/volume_update_params.py +3 -1
  284. gcore/types/dns/zone_get_statistics_params.py +12 -9
  285. gcore/types/dns/zone_get_statistics_response.py +3 -1
  286. gcore/types/dns/zone_import_params.py +21 -15
  287. gcore/types/dns/zones/dns_output_rrset.py +7 -3
  288. gcore/types/iam/account_overview.py +7 -2
  289. gcore/types/iam/user.py +7 -2
  290. gcore/types/iam/user_detailed.py +7 -2
  291. gcore/types/iam/user_invite_params.py +4 -1
  292. gcore/types/iam/user_update.py +7 -2
  293. gcore/types/iam/user_update_params.py +7 -2
  294. gcore/types/streaming/ai_contentmoderation_hardnudity.py +6 -4
  295. gcore/types/streaming/ai_contentmoderation_nsfw.py +6 -4
  296. gcore/types/streaming/ai_contentmoderation_softnudity.py +6 -4
  297. gcore/types/streaming/ai_contentmoderation_sport.py +6 -4
  298. gcore/types/streaming/ai_task.py +20 -11
  299. gcore/types/streaming/ai_task_create_params.py +20 -11
  300. gcore/types/streaming/ai_task_get_response.py +5 -4
  301. gcore/types/streaming/ai_task_list_params.py +11 -5
  302. gcore/types/streaming/clip.py +33 -22
  303. gcore/types/streaming/create_video_param.py +75 -43
  304. gcore/types/streaming/playlist.py +7 -5
  305. gcore/types/streaming/playlist_create_params.py +7 -5
  306. gcore/types/streaming/playlist_update_params.py +7 -5
  307. gcore/types/streaming/playlist_video.py +75 -43
  308. gcore/types/streaming/statistic_get_unique_viewers_cdn_params.py +7 -4
  309. gcore/types/streaming/stream.py +207 -136
  310. gcore/types/streaming/stream_create_clip_params.py +33 -22
  311. gcore/types/streaming/stream_create_params.py +41 -24
  312. gcore/types/streaming/stream_update_params.py +41 -24
  313. gcore/types/streaming/video.py +138 -76
  314. gcore/types/streaming/video_list_params.py +4 -2
  315. gcore/types/streaming/video_update_params.py +75 -43
  316. gcore/types/waap/domain_update_params.py +2 -2
  317. gcore/types/waap/domains/advanced_rule_create_params.py +26 -18
  318. gcore/types/waap/domains/advanced_rule_list_params.py +10 -7
  319. gcore/types/waap/domains/advanced_rule_update_params.py +22 -17
  320. gcore/types/waap/domains/api_path_create_params.py +0 -3
  321. gcore/types/waap/domains/api_path_update_params.py +1 -3
  322. gcore/types/waap/domains/custom_rule_create_params.py +36 -35
  323. gcore/types/waap/domains/custom_rule_update_params.py +31 -33
  324. gcore/types/waap/domains/firewall_rule_create_params.py +6 -6
  325. gcore/types/waap/domains/firewall_rule_update_params.py +5 -5
  326. gcore/types/waap/domains/waap_advanced_rule.py +17 -9
  327. gcore/types/waap/domains/waap_custom_rule.py +5 -2
  328. gcore/types/waap/domains/waap_firewall_rule.py +1 -1
  329. gcore/types/waap/domains/waap_insight.py +1 -1
  330. gcore/types/waap/insight_list_types_params.py +1 -1
  331. {gcore-0.13.0.dist-info → gcore-0.14.0.dist-info}/METADATA +1 -1
  332. {gcore-0.13.0.dist-info → gcore-0.14.0.dist-info}/RECORD +334 -214
  333. {gcore-0.13.0.dist-info → gcore-0.14.0.dist-info}/WHEEL +0 -0
  334. {gcore-0.13.0.dist-info → gcore-0.14.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,883 @@
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
7
+
8
+ import httpx
9
+
10
+ from ..._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
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 ...types.cdn import rule_template_create_params, rule_template_update_params, rule_template_replace_params
21
+ from ..._base_client import make_request_options
22
+ from ...types.cdn.rule_template import RuleTemplate
23
+ from ...types.cdn.rule_template_list import RuleTemplateList
24
+
25
+ __all__ = ["RuleTemplatesResource", "AsyncRuleTemplatesResource"]
26
+
27
+
28
+ class RuleTemplatesResource(SyncAPIResource):
29
+ @cached_property
30
+ def with_raw_response(self) -> RuleTemplatesResourceWithRawResponse:
31
+ """
32
+ This property can be used as a prefix for any HTTP method call to return
33
+ the raw response object instead of the parsed content.
34
+
35
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
36
+ """
37
+ return RuleTemplatesResourceWithRawResponse(self)
38
+
39
+ @cached_property
40
+ def with_streaming_response(self) -> RuleTemplatesResourceWithStreamingResponse:
41
+ """
42
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
43
+
44
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
45
+ """
46
+ return RuleTemplatesResourceWithStreamingResponse(self)
47
+
48
+ def create(
49
+ self,
50
+ *,
51
+ rule: str,
52
+ rule_type: int,
53
+ name: str | Omit = omit,
54
+ options: rule_template_create_params.Options | Omit = omit,
55
+ override_origin_protocol: Optional[Literal["HTTPS", "HTTP", "MATCH"]] | Omit = omit,
56
+ weight: int | Omit = omit,
57
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
58
+ # The extra values given here take precedence over values defined on the client or passed to this method.
59
+ extra_headers: Headers | None = None,
60
+ extra_query: Query | None = None,
61
+ extra_body: Body | None = None,
62
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
63
+ ) -> RuleTemplate:
64
+ """
65
+ Create rule template
66
+
67
+ Args:
68
+ rule: Path to the file or folder for which the rule will be applied.
69
+
70
+ The rule is applied if the requested URI matches the rule path.
71
+
72
+ We add a leading forward slash to any rule path. Specify a path without a
73
+ forward slash.
74
+
75
+ rule_type: Rule type.
76
+
77
+ Possible values:
78
+
79
+ - **Type 0** - Regular expression. Must start with '^/' or '/'.
80
+ - **Type 1** - Regular expression. Note that for this rule type we automatically
81
+ add / to each rule pattern before your regular expression. This type is
82
+ **legacy**, please use Type 0.
83
+
84
+ name: Rule template name.
85
+
86
+ options: List of options that can be configured for the rule.
87
+
88
+ In case of `null` value the option is not added to the rule. Option inherits its
89
+ value from the CDN resource settings.
90
+
91
+ override_origin_protocol: Sets a protocol other than the one specified in the CDN resource settings to
92
+ connect to the origin.
93
+
94
+ Possible values:
95
+
96
+ - **HTTPS** - CDN servers connect to origin via HTTPS protocol.
97
+ - **HTTP** - CDN servers connect to origin via HTTP protocol.
98
+ - **MATCH** - Connection protocol is chosen automatically; in this case, content
99
+ on origin source should be available for the CDN both through HTTP and HTTPS
100
+ protocols.
101
+ - **null** - `originProtocol` setting is inherited from the CDN resource
102
+ settings.
103
+
104
+ weight: Rule execution order: from lowest (1) to highest.
105
+
106
+ If requested URI matches multiple rules, the one higher in the order of the
107
+ rules will be applied.
108
+
109
+ extra_headers: Send extra headers
110
+
111
+ extra_query: Add additional query parameters to the request
112
+
113
+ extra_body: Add additional JSON properties to the request
114
+
115
+ timeout: Override the client-level default timeout for this request, in seconds
116
+ """
117
+ return self._post(
118
+ "/cdn/resources/rule_templates"
119
+ if self._client._base_url_overridden
120
+ else "https://api.gcore.com//cdn/resources/rule_templates",
121
+ body=maybe_transform(
122
+ {
123
+ "rule": rule,
124
+ "rule_type": rule_type,
125
+ "name": name,
126
+ "options": options,
127
+ "override_origin_protocol": override_origin_protocol,
128
+ "weight": weight,
129
+ },
130
+ rule_template_create_params.RuleTemplateCreateParams,
131
+ ),
132
+ options=make_request_options(
133
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
134
+ ),
135
+ cast_to=RuleTemplate,
136
+ )
137
+
138
+ def update(
139
+ self,
140
+ rule_template_id: int,
141
+ *,
142
+ name: str | Omit = omit,
143
+ options: rule_template_update_params.Options | Omit = omit,
144
+ override_origin_protocol: Optional[Literal["HTTPS", "HTTP", "MATCH"]] | Omit = omit,
145
+ rule: str | Omit = omit,
146
+ rule_type: int | Omit = omit,
147
+ weight: int | Omit = omit,
148
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
149
+ # The extra values given here take precedence over values defined on the client or passed to this method.
150
+ extra_headers: Headers | None = None,
151
+ extra_query: Query | None = None,
152
+ extra_body: Body | None = None,
153
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
154
+ ) -> RuleTemplate:
155
+ """
156
+ Change rule template
157
+
158
+ Args:
159
+ name: Rule template name.
160
+
161
+ options: List of options that can be configured for the rule.
162
+
163
+ In case of `null` value the option is not added to the rule. Option inherits its
164
+ value from the CDN resource settings.
165
+
166
+ override_origin_protocol: Sets a protocol other than the one specified in the CDN resource settings to
167
+ connect to the origin.
168
+
169
+ Possible values:
170
+
171
+ - **HTTPS** - CDN servers connect to origin via HTTPS protocol.
172
+ - **HTTP** - CDN servers connect to origin via HTTP protocol.
173
+ - **MATCH** - Connection protocol is chosen automatically; in this case, content
174
+ on origin source should be available for the CDN both through HTTP and HTTPS
175
+ protocols.
176
+ - **null** - `originProtocol` setting is inherited from the CDN resource
177
+ settings.
178
+
179
+ rule: Path to the file or folder for which the rule will be applied.
180
+
181
+ The rule is applied if the requested URI matches the rule path.
182
+
183
+ We add a leading forward slash to any rule path. Specify a path without a
184
+ forward slash.
185
+
186
+ rule_type: Rule type.
187
+
188
+ Possible values:
189
+
190
+ - **Type 0** - Regular expression. Must start with '^/' or '/'.
191
+ - **Type 1** - Regular expression. Note that for this rule type we automatically
192
+ add / to each rule pattern before your regular expression. This type is
193
+ **legacy**, please use Type 0.
194
+
195
+ weight: Rule execution order: from lowest (1) to highest.
196
+
197
+ If requested URI matches multiple rules, the one higher in the order of the
198
+ rules will be applied.
199
+
200
+ extra_headers: Send extra headers
201
+
202
+ extra_query: Add additional query parameters to the request
203
+
204
+ extra_body: Add additional JSON properties to the request
205
+
206
+ timeout: Override the client-level default timeout for this request, in seconds
207
+ """
208
+ return self._patch(
209
+ f"/cdn/resources/rule_templates/{rule_template_id}"
210
+ if self._client._base_url_overridden
211
+ else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}",
212
+ body=maybe_transform(
213
+ {
214
+ "name": name,
215
+ "options": options,
216
+ "override_origin_protocol": override_origin_protocol,
217
+ "rule": rule,
218
+ "rule_type": rule_type,
219
+ "weight": weight,
220
+ },
221
+ rule_template_update_params.RuleTemplateUpdateParams,
222
+ ),
223
+ options=make_request_options(
224
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
225
+ ),
226
+ cast_to=RuleTemplate,
227
+ )
228
+
229
+ def list(
230
+ self,
231
+ *,
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
+ ) -> RuleTemplateList:
239
+ """Get rule templates list"""
240
+ return self._get(
241
+ "/cdn/resources/rule_templates"
242
+ if self._client._base_url_overridden
243
+ else "https://api.gcore.com//cdn/resources/rule_templates",
244
+ options=make_request_options(
245
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
246
+ ),
247
+ cast_to=RuleTemplateList,
248
+ )
249
+
250
+ def delete(
251
+ self,
252
+ rule_template_id: int,
253
+ *,
254
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
255
+ # The extra values given here take precedence over values defined on the client or passed to this method.
256
+ extra_headers: Headers | None = None,
257
+ extra_query: Query | None = None,
258
+ extra_body: Body | None = None,
259
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
260
+ ) -> None:
261
+ """
262
+ Delete rule template
263
+
264
+ Args:
265
+ extra_headers: Send extra headers
266
+
267
+ extra_query: Add additional query parameters to the request
268
+
269
+ extra_body: Add additional JSON properties to the request
270
+
271
+ timeout: Override the client-level default timeout for this request, in seconds
272
+ """
273
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
274
+ return self._delete(
275
+ f"/cdn/resources/rule_templates/{rule_template_id}"
276
+ if self._client._base_url_overridden
277
+ else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}",
278
+ options=make_request_options(
279
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
280
+ ),
281
+ cast_to=NoneType,
282
+ )
283
+
284
+ def get(
285
+ self,
286
+ rule_template_id: int,
287
+ *,
288
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
289
+ # The extra values given here take precedence over values defined on the client or passed to this method.
290
+ extra_headers: Headers | None = None,
291
+ extra_query: Query | None = None,
292
+ extra_body: Body | None = None,
293
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
294
+ ) -> RuleTemplate:
295
+ """
296
+ Get rule template details
297
+
298
+ Args:
299
+ extra_headers: Send extra headers
300
+
301
+ extra_query: Add additional query parameters to the request
302
+
303
+ extra_body: Add additional JSON properties to the request
304
+
305
+ timeout: Override the client-level default timeout for this request, in seconds
306
+ """
307
+ return self._get(
308
+ f"/cdn/resources/rule_templates/{rule_template_id}"
309
+ if self._client._base_url_overridden
310
+ else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}",
311
+ options=make_request_options(
312
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
313
+ ),
314
+ cast_to=RuleTemplate,
315
+ )
316
+
317
+ def replace(
318
+ self,
319
+ rule_template_id: int,
320
+ *,
321
+ rule: str,
322
+ rule_type: int,
323
+ name: str | Omit = omit,
324
+ options: rule_template_replace_params.Options | Omit = omit,
325
+ override_origin_protocol: Optional[Literal["HTTPS", "HTTP", "MATCH"]] | Omit = omit,
326
+ weight: int | Omit = omit,
327
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
328
+ # The extra values given here take precedence over values defined on the client or passed to this method.
329
+ extra_headers: Headers | None = None,
330
+ extra_query: Query | None = None,
331
+ extra_body: Body | None = None,
332
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
333
+ ) -> RuleTemplate:
334
+ """
335
+ Change rule template
336
+
337
+ Args:
338
+ rule: Path to the file or folder for which the rule will be applied.
339
+
340
+ The rule is applied if the requested URI matches the rule path.
341
+
342
+ We add a leading forward slash to any rule path. Specify a path without a
343
+ forward slash.
344
+
345
+ rule_type: Rule type.
346
+
347
+ Possible values:
348
+
349
+ - **Type 0** - Regular expression. Must start with '^/' or '/'.
350
+ - **Type 1** - Regular expression. Note that for this rule type we automatically
351
+ add / to each rule pattern before your regular expression. This type is
352
+ **legacy**, please use Type 0.
353
+
354
+ name: Rule template name.
355
+
356
+ options: List of options that can be configured for the rule.
357
+
358
+ In case of `null` value the option is not added to the rule. Option inherits its
359
+ value from the CDN resource settings.
360
+
361
+ override_origin_protocol: Sets a protocol other than the one specified in the CDN resource settings to
362
+ connect to the origin.
363
+
364
+ Possible values:
365
+
366
+ - **HTTPS** - CDN servers connect to origin via HTTPS protocol.
367
+ - **HTTP** - CDN servers connect to origin via HTTP protocol.
368
+ - **MATCH** - Connection protocol is chosen automatically; in this case, content
369
+ on origin source should be available for the CDN both through HTTP and HTTPS
370
+ protocols.
371
+ - **null** - `originProtocol` setting is inherited from the CDN resource
372
+ settings.
373
+
374
+ weight: Rule execution order: from lowest (1) to highest.
375
+
376
+ If requested URI matches multiple rules, the one higher in the order of the
377
+ rules will be applied.
378
+
379
+ extra_headers: Send extra headers
380
+
381
+ extra_query: Add additional query parameters to the request
382
+
383
+ extra_body: Add additional JSON properties to the request
384
+
385
+ timeout: Override the client-level default timeout for this request, in seconds
386
+ """
387
+ return self._put(
388
+ f"/cdn/resources/rule_templates/{rule_template_id}"
389
+ if self._client._base_url_overridden
390
+ else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}",
391
+ body=maybe_transform(
392
+ {
393
+ "rule": rule,
394
+ "rule_type": rule_type,
395
+ "name": name,
396
+ "options": options,
397
+ "override_origin_protocol": override_origin_protocol,
398
+ "weight": weight,
399
+ },
400
+ rule_template_replace_params.RuleTemplateReplaceParams,
401
+ ),
402
+ options=make_request_options(
403
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
404
+ ),
405
+ cast_to=RuleTemplate,
406
+ )
407
+
408
+
409
+ class AsyncRuleTemplatesResource(AsyncAPIResource):
410
+ @cached_property
411
+ def with_raw_response(self) -> AsyncRuleTemplatesResourceWithRawResponse:
412
+ """
413
+ This property can be used as a prefix for any HTTP method call to return
414
+ the raw response object instead of the parsed content.
415
+
416
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
417
+ """
418
+ return AsyncRuleTemplatesResourceWithRawResponse(self)
419
+
420
+ @cached_property
421
+ def with_streaming_response(self) -> AsyncRuleTemplatesResourceWithStreamingResponse:
422
+ """
423
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
424
+
425
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
426
+ """
427
+ return AsyncRuleTemplatesResourceWithStreamingResponse(self)
428
+
429
+ async def create(
430
+ self,
431
+ *,
432
+ rule: str,
433
+ rule_type: int,
434
+ name: str | Omit = omit,
435
+ options: rule_template_create_params.Options | Omit = omit,
436
+ override_origin_protocol: Optional[Literal["HTTPS", "HTTP", "MATCH"]] | Omit = omit,
437
+ weight: int | Omit = omit,
438
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
439
+ # The extra values given here take precedence over values defined on the client or passed to this method.
440
+ extra_headers: Headers | None = None,
441
+ extra_query: Query | None = None,
442
+ extra_body: Body | None = None,
443
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
444
+ ) -> RuleTemplate:
445
+ """
446
+ Create rule template
447
+
448
+ Args:
449
+ rule: Path to the file or folder for which the rule will be applied.
450
+
451
+ The rule is applied if the requested URI matches the rule path.
452
+
453
+ We add a leading forward slash to any rule path. Specify a path without a
454
+ forward slash.
455
+
456
+ rule_type: Rule type.
457
+
458
+ Possible values:
459
+
460
+ - **Type 0** - Regular expression. Must start with '^/' or '/'.
461
+ - **Type 1** - Regular expression. Note that for this rule type we automatically
462
+ add / to each rule pattern before your regular expression. This type is
463
+ **legacy**, please use Type 0.
464
+
465
+ name: Rule template name.
466
+
467
+ options: List of options that can be configured for the rule.
468
+
469
+ In case of `null` value the option is not added to the rule. Option inherits its
470
+ value from the CDN resource settings.
471
+
472
+ override_origin_protocol: Sets a protocol other than the one specified in the CDN resource settings to
473
+ connect to the origin.
474
+
475
+ Possible values:
476
+
477
+ - **HTTPS** - CDN servers connect to origin via HTTPS protocol.
478
+ - **HTTP** - CDN servers connect to origin via HTTP protocol.
479
+ - **MATCH** - Connection protocol is chosen automatically; in this case, content
480
+ on origin source should be available for the CDN both through HTTP and HTTPS
481
+ protocols.
482
+ - **null** - `originProtocol` setting is inherited from the CDN resource
483
+ settings.
484
+
485
+ weight: Rule execution order: from lowest (1) to highest.
486
+
487
+ If requested URI matches multiple rules, the one higher in the order of the
488
+ rules will be applied.
489
+
490
+ extra_headers: Send extra headers
491
+
492
+ extra_query: Add additional query parameters to the request
493
+
494
+ extra_body: Add additional JSON properties to the request
495
+
496
+ timeout: Override the client-level default timeout for this request, in seconds
497
+ """
498
+ return await self._post(
499
+ "/cdn/resources/rule_templates"
500
+ if self._client._base_url_overridden
501
+ else "https://api.gcore.com//cdn/resources/rule_templates",
502
+ body=await async_maybe_transform(
503
+ {
504
+ "rule": rule,
505
+ "rule_type": rule_type,
506
+ "name": name,
507
+ "options": options,
508
+ "override_origin_protocol": override_origin_protocol,
509
+ "weight": weight,
510
+ },
511
+ rule_template_create_params.RuleTemplateCreateParams,
512
+ ),
513
+ options=make_request_options(
514
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
515
+ ),
516
+ cast_to=RuleTemplate,
517
+ )
518
+
519
+ async def update(
520
+ self,
521
+ rule_template_id: int,
522
+ *,
523
+ name: str | Omit = omit,
524
+ options: rule_template_update_params.Options | Omit = omit,
525
+ override_origin_protocol: Optional[Literal["HTTPS", "HTTP", "MATCH"]] | Omit = omit,
526
+ rule: str | Omit = omit,
527
+ rule_type: int | Omit = omit,
528
+ weight: int | Omit = omit,
529
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
530
+ # The extra values given here take precedence over values defined on the client or passed to this method.
531
+ extra_headers: Headers | None = None,
532
+ extra_query: Query | None = None,
533
+ extra_body: Body | None = None,
534
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
535
+ ) -> RuleTemplate:
536
+ """
537
+ Change rule template
538
+
539
+ Args:
540
+ name: Rule template name.
541
+
542
+ options: List of options that can be configured for the rule.
543
+
544
+ In case of `null` value the option is not added to the rule. Option inherits its
545
+ value from the CDN resource settings.
546
+
547
+ override_origin_protocol: Sets a protocol other than the one specified in the CDN resource settings to
548
+ connect to the origin.
549
+
550
+ Possible values:
551
+
552
+ - **HTTPS** - CDN servers connect to origin via HTTPS protocol.
553
+ - **HTTP** - CDN servers connect to origin via HTTP protocol.
554
+ - **MATCH** - Connection protocol is chosen automatically; in this case, content
555
+ on origin source should be available for the CDN both through HTTP and HTTPS
556
+ protocols.
557
+ - **null** - `originProtocol` setting is inherited from the CDN resource
558
+ settings.
559
+
560
+ rule: Path to the file or folder for which the rule will be applied.
561
+
562
+ The rule is applied if the requested URI matches the rule path.
563
+
564
+ We add a leading forward slash to any rule path. Specify a path without a
565
+ forward slash.
566
+
567
+ rule_type: Rule type.
568
+
569
+ Possible values:
570
+
571
+ - **Type 0** - Regular expression. Must start with '^/' or '/'.
572
+ - **Type 1** - Regular expression. Note that for this rule type we automatically
573
+ add / to each rule pattern before your regular expression. This type is
574
+ **legacy**, please use Type 0.
575
+
576
+ weight: Rule execution order: from lowest (1) to highest.
577
+
578
+ If requested URI matches multiple rules, the one higher in the order of the
579
+ rules will be applied.
580
+
581
+ extra_headers: Send extra headers
582
+
583
+ extra_query: Add additional query parameters to the request
584
+
585
+ extra_body: Add additional JSON properties to the request
586
+
587
+ timeout: Override the client-level default timeout for this request, in seconds
588
+ """
589
+ return await self._patch(
590
+ f"/cdn/resources/rule_templates/{rule_template_id}"
591
+ if self._client._base_url_overridden
592
+ else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}",
593
+ body=await async_maybe_transform(
594
+ {
595
+ "name": name,
596
+ "options": options,
597
+ "override_origin_protocol": override_origin_protocol,
598
+ "rule": rule,
599
+ "rule_type": rule_type,
600
+ "weight": weight,
601
+ },
602
+ rule_template_update_params.RuleTemplateUpdateParams,
603
+ ),
604
+ options=make_request_options(
605
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
606
+ ),
607
+ cast_to=RuleTemplate,
608
+ )
609
+
610
+ async def list(
611
+ self,
612
+ *,
613
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
614
+ # The extra values given here take precedence over values defined on the client or passed to this method.
615
+ extra_headers: Headers | None = None,
616
+ extra_query: Query | None = None,
617
+ extra_body: Body | None = None,
618
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
619
+ ) -> RuleTemplateList:
620
+ """Get rule templates list"""
621
+ return await self._get(
622
+ "/cdn/resources/rule_templates"
623
+ if self._client._base_url_overridden
624
+ else "https://api.gcore.com//cdn/resources/rule_templates",
625
+ options=make_request_options(
626
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
627
+ ),
628
+ cast_to=RuleTemplateList,
629
+ )
630
+
631
+ async def delete(
632
+ self,
633
+ rule_template_id: int,
634
+ *,
635
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
636
+ # The extra values given here take precedence over values defined on the client or passed to this method.
637
+ extra_headers: Headers | None = None,
638
+ extra_query: Query | None = None,
639
+ extra_body: Body | None = None,
640
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
641
+ ) -> None:
642
+ """
643
+ Delete rule template
644
+
645
+ Args:
646
+ extra_headers: Send extra headers
647
+
648
+ extra_query: Add additional query parameters to the request
649
+
650
+ extra_body: Add additional JSON properties to the request
651
+
652
+ timeout: Override the client-level default timeout for this request, in seconds
653
+ """
654
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
655
+ return await self._delete(
656
+ f"/cdn/resources/rule_templates/{rule_template_id}"
657
+ if self._client._base_url_overridden
658
+ else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}",
659
+ options=make_request_options(
660
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
661
+ ),
662
+ cast_to=NoneType,
663
+ )
664
+
665
+ async def get(
666
+ self,
667
+ rule_template_id: int,
668
+ *,
669
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
670
+ # The extra values given here take precedence over values defined on the client or passed to this method.
671
+ extra_headers: Headers | None = None,
672
+ extra_query: Query | None = None,
673
+ extra_body: Body | None = None,
674
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
675
+ ) -> RuleTemplate:
676
+ """
677
+ Get rule template details
678
+
679
+ Args:
680
+ extra_headers: Send extra headers
681
+
682
+ extra_query: Add additional query parameters to the request
683
+
684
+ extra_body: Add additional JSON properties to the request
685
+
686
+ timeout: Override the client-level default timeout for this request, in seconds
687
+ """
688
+ return await self._get(
689
+ f"/cdn/resources/rule_templates/{rule_template_id}"
690
+ if self._client._base_url_overridden
691
+ else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}",
692
+ options=make_request_options(
693
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
694
+ ),
695
+ cast_to=RuleTemplate,
696
+ )
697
+
698
+ async def replace(
699
+ self,
700
+ rule_template_id: int,
701
+ *,
702
+ rule: str,
703
+ rule_type: int,
704
+ name: str | Omit = omit,
705
+ options: rule_template_replace_params.Options | Omit = omit,
706
+ override_origin_protocol: Optional[Literal["HTTPS", "HTTP", "MATCH"]] | Omit = omit,
707
+ weight: int | Omit = omit,
708
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
709
+ # The extra values given here take precedence over values defined on the client or passed to this method.
710
+ extra_headers: Headers | None = None,
711
+ extra_query: Query | None = None,
712
+ extra_body: Body | None = None,
713
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
714
+ ) -> RuleTemplate:
715
+ """
716
+ Change rule template
717
+
718
+ Args:
719
+ rule: Path to the file or folder for which the rule will be applied.
720
+
721
+ The rule is applied if the requested URI matches the rule path.
722
+
723
+ We add a leading forward slash to any rule path. Specify a path without a
724
+ forward slash.
725
+
726
+ rule_type: Rule type.
727
+
728
+ Possible values:
729
+
730
+ - **Type 0** - Regular expression. Must start with '^/' or '/'.
731
+ - **Type 1** - Regular expression. Note that for this rule type we automatically
732
+ add / to each rule pattern before your regular expression. This type is
733
+ **legacy**, please use Type 0.
734
+
735
+ name: Rule template name.
736
+
737
+ options: List of options that can be configured for the rule.
738
+
739
+ In case of `null` value the option is not added to the rule. Option inherits its
740
+ value from the CDN resource settings.
741
+
742
+ override_origin_protocol: Sets a protocol other than the one specified in the CDN resource settings to
743
+ connect to the origin.
744
+
745
+ Possible values:
746
+
747
+ - **HTTPS** - CDN servers connect to origin via HTTPS protocol.
748
+ - **HTTP** - CDN servers connect to origin via HTTP protocol.
749
+ - **MATCH** - Connection protocol is chosen automatically; in this case, content
750
+ on origin source should be available for the CDN both through HTTP and HTTPS
751
+ protocols.
752
+ - **null** - `originProtocol` setting is inherited from the CDN resource
753
+ settings.
754
+
755
+ weight: Rule execution order: from lowest (1) to highest.
756
+
757
+ If requested URI matches multiple rules, the one higher in the order of the
758
+ rules will be applied.
759
+
760
+ extra_headers: Send extra headers
761
+
762
+ extra_query: Add additional query parameters to the request
763
+
764
+ extra_body: Add additional JSON properties to the request
765
+
766
+ timeout: Override the client-level default timeout for this request, in seconds
767
+ """
768
+ return await self._put(
769
+ f"/cdn/resources/rule_templates/{rule_template_id}"
770
+ if self._client._base_url_overridden
771
+ else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}",
772
+ body=await async_maybe_transform(
773
+ {
774
+ "rule": rule,
775
+ "rule_type": rule_type,
776
+ "name": name,
777
+ "options": options,
778
+ "override_origin_protocol": override_origin_protocol,
779
+ "weight": weight,
780
+ },
781
+ rule_template_replace_params.RuleTemplateReplaceParams,
782
+ ),
783
+ options=make_request_options(
784
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
785
+ ),
786
+ cast_to=RuleTemplate,
787
+ )
788
+
789
+
790
+ class RuleTemplatesResourceWithRawResponse:
791
+ def __init__(self, rule_templates: RuleTemplatesResource) -> None:
792
+ self._rule_templates = rule_templates
793
+
794
+ self.create = to_raw_response_wrapper(
795
+ rule_templates.create,
796
+ )
797
+ self.update = to_raw_response_wrapper(
798
+ rule_templates.update,
799
+ )
800
+ self.list = to_raw_response_wrapper(
801
+ rule_templates.list,
802
+ )
803
+ self.delete = to_raw_response_wrapper(
804
+ rule_templates.delete,
805
+ )
806
+ self.get = to_raw_response_wrapper(
807
+ rule_templates.get,
808
+ )
809
+ self.replace = to_raw_response_wrapper(
810
+ rule_templates.replace,
811
+ )
812
+
813
+
814
+ class AsyncRuleTemplatesResourceWithRawResponse:
815
+ def __init__(self, rule_templates: AsyncRuleTemplatesResource) -> None:
816
+ self._rule_templates = rule_templates
817
+
818
+ self.create = async_to_raw_response_wrapper(
819
+ rule_templates.create,
820
+ )
821
+ self.update = async_to_raw_response_wrapper(
822
+ rule_templates.update,
823
+ )
824
+ self.list = async_to_raw_response_wrapper(
825
+ rule_templates.list,
826
+ )
827
+ self.delete = async_to_raw_response_wrapper(
828
+ rule_templates.delete,
829
+ )
830
+ self.get = async_to_raw_response_wrapper(
831
+ rule_templates.get,
832
+ )
833
+ self.replace = async_to_raw_response_wrapper(
834
+ rule_templates.replace,
835
+ )
836
+
837
+
838
+ class RuleTemplatesResourceWithStreamingResponse:
839
+ def __init__(self, rule_templates: RuleTemplatesResource) -> None:
840
+ self._rule_templates = rule_templates
841
+
842
+ self.create = to_streamed_response_wrapper(
843
+ rule_templates.create,
844
+ )
845
+ self.update = to_streamed_response_wrapper(
846
+ rule_templates.update,
847
+ )
848
+ self.list = to_streamed_response_wrapper(
849
+ rule_templates.list,
850
+ )
851
+ self.delete = to_streamed_response_wrapper(
852
+ rule_templates.delete,
853
+ )
854
+ self.get = to_streamed_response_wrapper(
855
+ rule_templates.get,
856
+ )
857
+ self.replace = to_streamed_response_wrapper(
858
+ rule_templates.replace,
859
+ )
860
+
861
+
862
+ class AsyncRuleTemplatesResourceWithStreamingResponse:
863
+ def __init__(self, rule_templates: AsyncRuleTemplatesResource) -> None:
864
+ self._rule_templates = rule_templates
865
+
866
+ self.create = async_to_streamed_response_wrapper(
867
+ rule_templates.create,
868
+ )
869
+ self.update = async_to_streamed_response_wrapper(
870
+ rule_templates.update,
871
+ )
872
+ self.list = async_to_streamed_response_wrapper(
873
+ rule_templates.list,
874
+ )
875
+ self.delete = async_to_streamed_response_wrapper(
876
+ rule_templates.delete,
877
+ )
878
+ self.get = async_to_streamed_response_wrapper(
879
+ rule_templates.get,
880
+ )
881
+ self.replace = async_to_streamed_response_wrapper(
882
+ rule_templates.replace,
883
+ )