gcore 0.13.0__py3-none-any.whl → 0.15.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 (345) 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 +109 -87
  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 +233 -108
  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 +47 -29
  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 +1997 -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 +1845 -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 +1823 -0
  233. gcore/types/cdn/resource_update_params.py +1814 -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 +1715 -0
  237. gcore/types/cdn/resources/origin_shielding.py +15 -0
  238. gcore/types/cdn/resources/rule_create_params.py +1672 -0
  239. gcore/types/cdn/resources/rule_list_response.py +10 -0
  240. gcore/types/cdn/resources/rule_replace_params.py +1674 -0
  241. gcore/types/cdn/resources/rule_update_params.py +1674 -0
  242. gcore/types/cdn/resources/shield_replace_params.py +16 -0
  243. gcore/types/cdn/rule_template.py +1686 -0
  244. gcore/types/cdn/rule_template_create_params.py +1656 -0
  245. gcore/types/cdn/rule_template_list.py +10 -0
  246. gcore/types/cdn/rule_template_replace_params.py +1656 -0
  247. gcore/types/cdn/rule_template_update_params.py +1656 -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 +2 -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/gpu_baremetal_clusters/gpu_baremetal_flavor.py +12 -0
  270. gcore/types/cloud/inference/inference_deployment.py +3 -1
  271. gcore/types/cloud/instance_create_params.py +3 -1
  272. gcore/types/cloud/k8s/cluster_create_params.py +46 -4
  273. gcore/types/cloud/k8s/cluster_update_params.py +60 -6
  274. gcore/types/cloud/k8s/clusters/pool_update_params.py +1 -1
  275. gcore/types/cloud/k8s/k8s_cluster.py +40 -3
  276. gcore/types/cloud/load_balancer_update_params.py +3 -1
  277. gcore/types/cloud/network_update_params.py +3 -1
  278. gcore/types/cloud/networks/subnet_update_params.py +3 -1
  279. gcore/types/cloud/quota_get_all_response.py +8 -8
  280. gcore/types/cloud/quota_get_by_region_response.py +8 -8
  281. gcore/types/cloud/quotas/request_create_params.py +4 -4
  282. gcore/types/cloud/quotas/request_get_response.py +4 -4
  283. gcore/types/cloud/quotas/request_list_response.py +4 -4
  284. gcore/types/cloud/registries/user_create_multiple_params.py +5 -3
  285. gcore/types/cloud/registries/user_create_params.py +5 -3
  286. gcore/types/cloud/registry_create_params.py +5 -3
  287. gcore/types/cloud/reserved_fixed_ip_update_params.py +16 -0
  288. gcore/types/cloud/security_group_update_params.py +3 -1
  289. gcore/types/cloud/ssh_key_created.py +6 -3
  290. gcore/types/cloud/volume_update_params.py +3 -1
  291. gcore/types/dns/zone_get_statistics_params.py +12 -9
  292. gcore/types/dns/zone_get_statistics_response.py +3 -1
  293. gcore/types/dns/zone_import_params.py +21 -15
  294. gcore/types/dns/zones/dns_output_rrset.py +7 -3
  295. gcore/types/iam/account_overview.py +31 -28
  296. gcore/types/iam/api_token.py +24 -24
  297. gcore/types/iam/api_token_create_params.py +2 -1
  298. gcore/types/iam/api_token_list.py +24 -24
  299. gcore/types/iam/user.py +7 -2
  300. gcore/types/iam/user_detailed.py +22 -17
  301. gcore/types/iam/user_invite.py +2 -4
  302. gcore/types/iam/user_invite_params.py +4 -1
  303. gcore/types/iam/user_update.py +22 -17
  304. gcore/types/iam/user_update_params.py +7 -2
  305. gcore/types/streaming/ai_contentmoderation_hardnudity.py +6 -4
  306. gcore/types/streaming/ai_contentmoderation_nsfw.py +6 -4
  307. gcore/types/streaming/ai_contentmoderation_softnudity.py +6 -4
  308. gcore/types/streaming/ai_contentmoderation_sport.py +6 -4
  309. gcore/types/streaming/ai_task.py +20 -11
  310. gcore/types/streaming/ai_task_create_params.py +20 -11
  311. gcore/types/streaming/ai_task_get_response.py +5 -4
  312. gcore/types/streaming/ai_task_list_params.py +11 -5
  313. gcore/types/streaming/clip.py +33 -22
  314. gcore/types/streaming/create_video_param.py +75 -43
  315. gcore/types/streaming/playlist.py +7 -5
  316. gcore/types/streaming/playlist_create_params.py +7 -5
  317. gcore/types/streaming/playlist_update_params.py +7 -5
  318. gcore/types/streaming/playlist_video.py +75 -43
  319. gcore/types/streaming/statistic_get_unique_viewers_cdn_params.py +7 -4
  320. gcore/types/streaming/stream.py +207 -136
  321. gcore/types/streaming/stream_create_clip_params.py +33 -22
  322. gcore/types/streaming/stream_create_params.py +41 -24
  323. gcore/types/streaming/stream_update_params.py +41 -24
  324. gcore/types/streaming/video.py +138 -76
  325. gcore/types/streaming/video_list_params.py +4 -2
  326. gcore/types/streaming/video_update_params.py +75 -43
  327. gcore/types/waap/domain_update_params.py +2 -2
  328. gcore/types/waap/domains/advanced_rule_create_params.py +26 -18
  329. gcore/types/waap/domains/advanced_rule_list_params.py +10 -7
  330. gcore/types/waap/domains/advanced_rule_update_params.py +22 -17
  331. gcore/types/waap/domains/api_path_create_params.py +0 -3
  332. gcore/types/waap/domains/api_path_update_params.py +1 -3
  333. gcore/types/waap/domains/custom_rule_create_params.py +36 -35
  334. gcore/types/waap/domains/custom_rule_update_params.py +31 -33
  335. gcore/types/waap/domains/firewall_rule_create_params.py +6 -6
  336. gcore/types/waap/domains/firewall_rule_update_params.py +5 -5
  337. gcore/types/waap/domains/waap_advanced_rule.py +17 -9
  338. gcore/types/waap/domains/waap_custom_rule.py +5 -2
  339. gcore/types/waap/domains/waap_firewall_rule.py +1 -1
  340. gcore/types/waap/domains/waap_insight.py +1 -1
  341. gcore/types/waap/insight_list_types_params.py +1 -1
  342. {gcore-0.13.0.dist-info → gcore-0.15.0.dist-info}/METADATA +1 -1
  343. {gcore-0.13.0.dist-info → gcore-0.15.0.dist-info}/RECORD +345 -224
  344. {gcore-0.13.0.dist-info → gcore-0.15.0.dist-info}/WHEEL +0 -0
  345. {gcore-0.13.0.dist-info → gcore-0.15.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,1686 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from ..._models import BaseModel
9
+
10
+ __all__ = [
11
+ "RuleTemplate",
12
+ "Options",
13
+ "OptionsAllowedHTTPMethods",
14
+ "OptionsBotProtection",
15
+ "OptionsBotProtectionBotChallenge",
16
+ "OptionsBrotliCompression",
17
+ "OptionsBrowserCacheSettings",
18
+ "OptionsCacheHTTPHeaders",
19
+ "OptionsCors",
20
+ "OptionsCountryACL",
21
+ "OptionsDisableCache",
22
+ "OptionsDisableProxyForceRanges",
23
+ "OptionsEdgeCacheSettings",
24
+ "OptionsFastedge",
25
+ "OptionsFastedgeOnRequestBody",
26
+ "OptionsFastedgeOnRequestHeaders",
27
+ "OptionsFastedgeOnResponseBody",
28
+ "OptionsFastedgeOnResponseHeaders",
29
+ "OptionsFetchCompressed",
30
+ "OptionsFollowOriginRedirect",
31
+ "OptionsForceReturn",
32
+ "OptionsForceReturnTimeInterval",
33
+ "OptionsForwardHostHeader",
34
+ "OptionsGzipOn",
35
+ "OptionsHostHeader",
36
+ "OptionsIgnoreCookie",
37
+ "OptionsIgnoreQueryString",
38
+ "OptionsImageStack",
39
+ "OptionsIPAddressACL",
40
+ "OptionsLimitBandwidth",
41
+ "OptionsProxyCacheKey",
42
+ "OptionsProxyCacheMethodsSet",
43
+ "OptionsProxyConnectTimeout",
44
+ "OptionsProxyReadTimeout",
45
+ "OptionsQueryParamsBlacklist",
46
+ "OptionsQueryParamsWhitelist",
47
+ "OptionsQueryStringForwarding",
48
+ "OptionsRedirectHTTPToHTTPS",
49
+ "OptionsRedirectHTTPSToHTTP",
50
+ "OptionsReferrerACL",
51
+ "OptionsRequestLimiter",
52
+ "OptionsResponseHeadersHidingPolicy",
53
+ "OptionsRewrite",
54
+ "OptionsSecureKey",
55
+ "OptionsSlice",
56
+ "OptionsSni",
57
+ "OptionsStale",
58
+ "OptionsStaticResponseHeaders",
59
+ "OptionsStaticResponseHeadersValue",
60
+ "OptionsStaticHeaders",
61
+ "OptionsStaticRequestHeaders",
62
+ "OptionsUserAgentACL",
63
+ "OptionsWaap",
64
+ "OptionsWebsockets",
65
+ ]
66
+
67
+
68
+ class OptionsAllowedHTTPMethods(BaseModel):
69
+ enabled: bool
70
+ """Controls the option state.
71
+
72
+ Possible values:
73
+
74
+ - **true** - Option is enabled.
75
+ - **false** - Option is disabled.
76
+ """
77
+
78
+ value: List[Literal["GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]]
79
+
80
+
81
+ class OptionsBotProtectionBotChallenge(BaseModel):
82
+ enabled: Optional[bool] = None
83
+ """Possible values:
84
+
85
+ - **true** - Bot challenge is enabled.
86
+ - **false** - Bot challenge is disabled.
87
+ """
88
+
89
+
90
+ class OptionsBotProtection(BaseModel):
91
+ bot_challenge: OptionsBotProtectionBotChallenge
92
+ """Controls the bot challenge module state."""
93
+
94
+ enabled: bool
95
+ """Controls the option state.
96
+
97
+ Possible values:
98
+
99
+ - **true** - Option is enabled.
100
+ - **false** - Option is disabled.
101
+ """
102
+
103
+
104
+ class OptionsBrotliCompression(BaseModel):
105
+ enabled: bool
106
+ """Controls the option state.
107
+
108
+ Possible values:
109
+
110
+ - **true** - Option is enabled.
111
+ - **false** - Option is disabled.
112
+ """
113
+
114
+ value: List[
115
+ Literal[
116
+ "application/javascript",
117
+ "application/json",
118
+ "application/vnd.ms-fontobject",
119
+ "application/wasm",
120
+ "application/x-font-ttf",
121
+ "application/x-javascript",
122
+ "application/xml",
123
+ "application/xml+rss",
124
+ "image/svg+xml",
125
+ "image/x-icon",
126
+ "text/css",
127
+ "text/html",
128
+ "text/javascript",
129
+ "text/plain",
130
+ "text/xml",
131
+ ]
132
+ ]
133
+ """Allows to select the content types you want to compress.
134
+
135
+ `text/html` is a mandatory content type.
136
+ """
137
+
138
+
139
+ class OptionsBrowserCacheSettings(BaseModel):
140
+ enabled: bool
141
+ """Controls the option state.
142
+
143
+ Possible values:
144
+
145
+ - **true** - Option is enabled.
146
+ - **false** - Option is disabled.
147
+ """
148
+
149
+ value: str
150
+ """Set the cache expiration time to '0s' to disable caching.
151
+
152
+ The maximum duration is any equivalent to `1y`.
153
+ """
154
+
155
+
156
+ class OptionsCacheHTTPHeaders(BaseModel):
157
+ enabled: bool
158
+ """Controls the option state.
159
+
160
+ Possible values:
161
+
162
+ - **true** - Option is enabled.
163
+ - **false** - Option is disabled.
164
+ """
165
+
166
+ value: List[str]
167
+
168
+
169
+ class OptionsCors(BaseModel):
170
+ enabled: bool
171
+ """Controls the option state.
172
+
173
+ Possible values:
174
+
175
+ - **true** - Option is enabled.
176
+ - **false** - Option is disabled.
177
+ """
178
+
179
+ value: List[str]
180
+ """Value of the Access-Control-Allow-Origin header.
181
+
182
+ Possible values:
183
+
184
+ - **Adds \\** as the Access-Control-Allow-Origin header value** - Content will be
185
+ uploaded for requests from any domain. `"value": ["\\**"]`
186
+ - **Adds "$`http_origin`" as the Access-Control-Allow-Origin header value if the
187
+ origin matches one of the listed domains** - Content will be uploaded only for
188
+ requests from the domains specified in the field.
189
+ `"value": ["domain.com", "second.dom.com"]`
190
+ - **Adds "$`http_origin`" as the Access-Control-Allow-Origin header value** -
191
+ Content will be uploaded for requests from any domain, and the domain from
192
+ which the request was sent will be added to the "Access-Control-Allow-Origin"
193
+ header in the response. `"value": ["$`http_origin`"]`
194
+ """
195
+
196
+ always: Optional[bool] = None
197
+ """
198
+ Defines whether the Access-Control-Allow-Origin header should be added to a
199
+ response from CDN regardless of response code.
200
+
201
+ Possible values:
202
+
203
+ - **true** - Header will be added to a response regardless of response code.
204
+ - **false** - Header will only be added to responses with codes: 200, 201, 204,
205
+ 206, 301, 302, 303, 304, 307, 308.
206
+ """
207
+
208
+
209
+ class OptionsCountryACL(BaseModel):
210
+ enabled: bool
211
+ """Controls the option state.
212
+
213
+ Possible values:
214
+
215
+ - **true** - Option is enabled.
216
+ - **false** - Option is disabled.
217
+ """
218
+
219
+ excepted_values: List[str]
220
+ """List of countries according to ISO-3166-1.
221
+
222
+ The meaning of the parameter depends on `policy_type` value:
223
+
224
+ - **allow** - List of countries for which access is prohibited.
225
+ - **deny** - List of countries for which access is allowed.
226
+ """
227
+
228
+ policy_type: Literal["allow", "deny"]
229
+ """Defines the type of CDN resource access policy.
230
+
231
+ Possible values:
232
+
233
+ - **allow** - Access is allowed for all the countries except for those specified
234
+ in `excepted_values` field.
235
+ - **deny** - Access is denied for all the countries except for those specified
236
+ in `excepted_values` field.
237
+ """
238
+
239
+
240
+ class OptionsDisableCache(BaseModel):
241
+ enabled: bool
242
+ """Controls the option state.
243
+
244
+ Possible values:
245
+
246
+ - **true** - Option is enabled.
247
+ - **false** - Option is disabled.
248
+ """
249
+
250
+ value: bool
251
+ """Possible values:
252
+
253
+ - **true** - content caching is disabled.
254
+ - **false** - content caching is enabled.
255
+ """
256
+
257
+
258
+ class OptionsDisableProxyForceRanges(BaseModel):
259
+ enabled: bool
260
+ """Controls the option state.
261
+
262
+ Possible values:
263
+
264
+ - **true** - Option is enabled.
265
+ - **false** - Option is disabled.
266
+ """
267
+
268
+ value: bool
269
+ """Possible values:
270
+
271
+ - **true** - Option is enabled.
272
+ - **false** - Option is disabled.
273
+ """
274
+
275
+
276
+ class OptionsEdgeCacheSettings(BaseModel):
277
+ enabled: bool
278
+ """Controls the option state.
279
+
280
+ Possible values:
281
+
282
+ - **true** - Option is enabled.
283
+ - **false** - Option is disabled.
284
+ """
285
+
286
+ custom_values: Optional[Dict[str, str]] = None
287
+ """
288
+ A MAP object representing the caching time in seconds for a response with a
289
+ specific response code.
290
+
291
+ These settings have a higher priority than the `value` field.
292
+
293
+ - Use `any` key to specify caching time for all response codes.
294
+ - Use `0s` value to disable caching for a specific response code.
295
+ """
296
+
297
+ default: Optional[str] = None
298
+ """Enables content caching according to the origin cache settings.
299
+
300
+ The value is applied to the following response codes 200, 201, 204, 206, 301,
301
+ 302, 303, 304, 307, 308, if an origin server does not have caching HTTP headers.
302
+
303
+ Responses with other codes will not be cached.
304
+
305
+ The maximum duration is any equivalent to `1y`.
306
+ """
307
+
308
+ value: Optional[str] = None
309
+ """Caching time.
310
+
311
+ The value is applied to the following response codes: 200, 206, 301, 302.
312
+ Responses with codes 4xx, 5xx will not be cached.
313
+
314
+ Use `0s` to disable caching.
315
+
316
+ The maximum duration is any equivalent to `1y`.
317
+ """
318
+
319
+
320
+ class OptionsFastedgeOnRequestBody(BaseModel):
321
+ app_id: str
322
+ """The ID of the application in FastEdge."""
323
+
324
+ enabled: Optional[bool] = None
325
+ """
326
+ Determines if the FastEdge application should be called whenever HTTP request
327
+ headers are received.
328
+ """
329
+
330
+ execute_on_edge: Optional[bool] = None
331
+ """Determines if the request should be executed at the edge nodes."""
332
+
333
+ execute_on_shield: Optional[bool] = None
334
+ """Determines if the request should be executed at the shield nodes."""
335
+
336
+ interrupt_on_error: Optional[bool] = None
337
+ """Determines if the request execution should be interrupted when an error occurs."""
338
+
339
+
340
+ class OptionsFastedgeOnRequestHeaders(BaseModel):
341
+ app_id: str
342
+ """The ID of the application in FastEdge."""
343
+
344
+ enabled: Optional[bool] = None
345
+ """
346
+ Determines if the FastEdge application should be called whenever HTTP request
347
+ headers are received.
348
+ """
349
+
350
+ execute_on_edge: Optional[bool] = None
351
+ """Determines if the request should be executed at the edge nodes."""
352
+
353
+ execute_on_shield: Optional[bool] = None
354
+ """Determines if the request should be executed at the shield nodes."""
355
+
356
+ interrupt_on_error: Optional[bool] = None
357
+ """Determines if the request execution should be interrupted when an error occurs."""
358
+
359
+
360
+ class OptionsFastedgeOnResponseBody(BaseModel):
361
+ app_id: str
362
+ """The ID of the application in FastEdge."""
363
+
364
+ enabled: Optional[bool] = None
365
+ """
366
+ Determines if the FastEdge application should be called whenever HTTP request
367
+ headers are received.
368
+ """
369
+
370
+ execute_on_edge: Optional[bool] = None
371
+ """Determines if the request should be executed at the edge nodes."""
372
+
373
+ execute_on_shield: Optional[bool] = None
374
+ """Determines if the request should be executed at the shield nodes."""
375
+
376
+ interrupt_on_error: Optional[bool] = None
377
+ """Determines if the request execution should be interrupted when an error occurs."""
378
+
379
+
380
+ class OptionsFastedgeOnResponseHeaders(BaseModel):
381
+ app_id: str
382
+ """The ID of the application in FastEdge."""
383
+
384
+ enabled: Optional[bool] = None
385
+ """
386
+ Determines if the FastEdge application should be called whenever HTTP request
387
+ headers are received.
388
+ """
389
+
390
+ execute_on_edge: Optional[bool] = None
391
+ """Determines if the request should be executed at the edge nodes."""
392
+
393
+ execute_on_shield: Optional[bool] = None
394
+ """Determines if the request should be executed at the shield nodes."""
395
+
396
+ interrupt_on_error: Optional[bool] = None
397
+ """Determines if the request execution should be interrupted when an error occurs."""
398
+
399
+
400
+ class OptionsFastedge(BaseModel):
401
+ enabled: bool
402
+ """Controls the option state.
403
+
404
+ Possible values:
405
+
406
+ - **true** - Option is enabled.
407
+ - **false** - Option is disabled.
408
+ """
409
+
410
+ on_request_body: Optional[OptionsFastedgeOnRequestBody] = None
411
+ """
412
+ Allows to configure FastEdge application that will be called to handle request
413
+ body as soon as CDN receives incoming HTTP request.
414
+ """
415
+
416
+ on_request_headers: Optional[OptionsFastedgeOnRequestHeaders] = None
417
+ """
418
+ Allows to configure FastEdge application that will be called to handle request
419
+ headers as soon as CDN receives incoming HTTP request.
420
+ """
421
+
422
+ on_response_body: Optional[OptionsFastedgeOnResponseBody] = None
423
+ """
424
+ Allows to configure FastEdge application that will be called to handle response
425
+ body before CDN sends the HTTP response.
426
+ """
427
+
428
+ on_response_headers: Optional[OptionsFastedgeOnResponseHeaders] = None
429
+ """
430
+ Allows to configure FastEdge application that will be called to handle response
431
+ headers before CDN sends the HTTP response.
432
+ """
433
+
434
+
435
+ class OptionsFetchCompressed(BaseModel):
436
+ enabled: bool
437
+ """Controls the option state.
438
+
439
+ Possible values:
440
+
441
+ - **true** - Option is enabled.
442
+ - **false** - Option is disabled.
443
+ """
444
+
445
+ value: bool
446
+ """Possible values:
447
+
448
+ - **true** - Option is enabled.
449
+ - **false** - Option is disabled.
450
+ """
451
+
452
+
453
+ class OptionsFollowOriginRedirect(BaseModel):
454
+ codes: List[Literal[301, 302, 303, 307, 308]]
455
+ """Redirect status code that the origin server returns.
456
+
457
+ To serve up to date content to end users, you will need to purge the cache after
458
+ managing the option.
459
+ """
460
+
461
+ enabled: bool
462
+ """Controls the option state.
463
+
464
+ Possible values:
465
+
466
+ - **true** - Option is enabled.
467
+ - **false** - Option is disabled.
468
+ """
469
+
470
+
471
+ class OptionsForceReturnTimeInterval(BaseModel):
472
+ end_time: str
473
+ """Time until which a custom HTTP response code should be applied.
474
+
475
+ Indicated in 24-hour format.
476
+ """
477
+
478
+ start_time: str
479
+ """Time from which a custom HTTP response code should be applied.
480
+
481
+ Indicated in 24-hour format.
482
+ """
483
+
484
+ time_zone: Optional[str] = None
485
+ """Time zone used to calculate time."""
486
+
487
+
488
+ class OptionsForceReturn(BaseModel):
489
+ body: str
490
+ """URL for redirection or text."""
491
+
492
+ code: int
493
+ """Status code value."""
494
+
495
+ enabled: bool
496
+ """Controls the option state.
497
+
498
+ Possible values:
499
+
500
+ - **true** - Option is enabled.
501
+ - **false** - Option is disabled.
502
+ """
503
+
504
+ time_interval: Optional[OptionsForceReturnTimeInterval] = None
505
+ """Controls the time at which a custom HTTP response code should be applied.
506
+
507
+ By default, a custom HTTP response code is applied at any time.
508
+ """
509
+
510
+
511
+ class OptionsForwardHostHeader(BaseModel):
512
+ enabled: bool
513
+ """Controls the option state.
514
+
515
+ Possible values:
516
+
517
+ - **true** - Option is enabled.
518
+ - **false** - Option is disabled.
519
+ """
520
+
521
+ value: bool
522
+ """Possible values:
523
+
524
+ - **true** - Option is enabled.
525
+ - **false** - Option is disabled.
526
+ """
527
+
528
+
529
+ class OptionsGzipOn(BaseModel):
530
+ enabled: bool
531
+ """Controls the option state.
532
+
533
+ Possible values:
534
+
535
+ - **true** - Option is enabled.
536
+ - **false** - Option is disabled.
537
+ """
538
+
539
+ value: bool
540
+ """Possible values:
541
+
542
+ - **true** - Option is enabled.
543
+ - **false** - Option is disabled.
544
+ """
545
+
546
+
547
+ class OptionsHostHeader(BaseModel):
548
+ enabled: bool
549
+ """Controls the option state.
550
+
551
+ Possible values:
552
+
553
+ - **true** - Option is enabled.
554
+ - **false** - Option is disabled.
555
+ """
556
+
557
+ value: str
558
+ """Host Header value."""
559
+
560
+
561
+ class OptionsIgnoreCookie(BaseModel):
562
+ enabled: bool
563
+ """Controls the option state.
564
+
565
+ Possible values:
566
+
567
+ - **true** - Option is enabled.
568
+ - **false** - Option is disabled.
569
+ """
570
+
571
+ value: bool
572
+ """Possible values:
573
+
574
+ - **true** - Option is enabled, files with cookies are cached as one file.
575
+ - **false** - Option is disabled, files with cookies are cached as different
576
+ files.
577
+ """
578
+
579
+
580
+ class OptionsIgnoreQueryString(BaseModel):
581
+ enabled: bool
582
+ """Controls the option state.
583
+
584
+ Possible values:
585
+
586
+ - **true** - Option is enabled.
587
+ - **false** - Option is disabled.
588
+ """
589
+
590
+ value: bool
591
+ """Possible values:
592
+
593
+ - **true** - Option is enabled.
594
+ - **false** - Option is disabled.
595
+ """
596
+
597
+
598
+ class OptionsImageStack(BaseModel):
599
+ enabled: bool
600
+ """Controls the option state.
601
+
602
+ Possible values:
603
+
604
+ - **true** - Option is enabled.
605
+ - **false** - Option is disabled.
606
+ """
607
+
608
+ avif_enabled: Optional[bool] = None
609
+ """Enables or disables automatic conversion of JPEG and PNG images to AVI format."""
610
+
611
+ png_lossless: Optional[bool] = None
612
+ """Enables or disables compression without quality loss for PNG format."""
613
+
614
+ quality: Optional[int] = None
615
+ """Defines quality settings for JPG and PNG images.
616
+
617
+ The higher the value, the better the image quality, and the larger the file size
618
+ after conversion.
619
+ """
620
+
621
+ webp_enabled: Optional[bool] = None
622
+ """Enables or disables automatic conversion of JPEG and PNG images to WebP format."""
623
+
624
+
625
+ class OptionsIPAddressACL(BaseModel):
626
+ enabled: bool
627
+ """Controls the option state.
628
+
629
+ Possible values:
630
+
631
+ - **true** - Option is enabled.
632
+ - **false** - Option is disabled.
633
+ """
634
+
635
+ excepted_values: List[str]
636
+ """List of IP addresses with a subnet mask.
637
+
638
+ The meaning of the parameter depends on `policy_type` value:
639
+
640
+ - **allow** - List of IP addresses for which access is prohibited.
641
+ - **deny** - List of IP addresses for which access is allowed.
642
+
643
+ Examples:
644
+
645
+ - `192.168.3.2/32`
646
+ - `2a03:d000:2980:7::8/128`
647
+ """
648
+
649
+ policy_type: Literal["allow", "deny"]
650
+ """IP access policy type.
651
+
652
+ Possible values:
653
+
654
+ - **allow** - Allow access to all IPs except IPs specified in
655
+ "`excepted_values`" field.
656
+ - **deny** - Deny access to all IPs except IPs specified in "`excepted_values`"
657
+ field.
658
+ """
659
+
660
+
661
+ class OptionsLimitBandwidth(BaseModel):
662
+ enabled: bool
663
+ """Controls the option state.
664
+
665
+ Possible values:
666
+
667
+ - **true** - Option is enabled.
668
+ - **false** - Option is disabled.
669
+ """
670
+
671
+ limit_type: Literal["static", "dynamic"]
672
+ """Method of controlling the download speed per connection.
673
+
674
+ Possible values:
675
+
676
+ - **static** - Use speed and buffer fields to set the download speed limit.
677
+ - **dynamic** - Use query strings **speed** and **buffer** to set the download
678
+ speed limit.
679
+
680
+ For example, when requesting content at the link
681
+
682
+ ```
683
+ http://cdn.example.com/video.mp4?speed=50k&buffer=500k
684
+ ```
685
+
686
+ the download speed will be limited to 50kB/s after 500 kB.
687
+ """
688
+
689
+ buffer: Optional[int] = None
690
+ """Amount of downloaded data after which the user will be rate limited."""
691
+
692
+ speed: Optional[int] = None
693
+ """Maximum download speed per connection."""
694
+
695
+
696
+ class OptionsProxyCacheKey(BaseModel):
697
+ enabled: bool
698
+ """Controls the option state.
699
+
700
+ Possible values:
701
+
702
+ - **true** - Option is enabled.
703
+ - **false** - Option is disabled.
704
+ """
705
+
706
+ value: str
707
+ """Key for caching."""
708
+
709
+
710
+ class OptionsProxyCacheMethodsSet(BaseModel):
711
+ enabled: bool
712
+ """Controls the option state.
713
+
714
+ Possible values:
715
+
716
+ - **true** - Option is enabled.
717
+ - **false** - Option is disabled.
718
+ """
719
+
720
+ value: bool
721
+ """Possible values:
722
+
723
+ - **true** - Option is enabled.
724
+ - **false** - Option is disabled.
725
+ """
726
+
727
+
728
+ class OptionsProxyConnectTimeout(BaseModel):
729
+ enabled: bool
730
+ """Controls the option state.
731
+
732
+ Possible values:
733
+
734
+ - **true** - Option is enabled.
735
+ - **false** - Option is disabled.
736
+ """
737
+
738
+ value: str
739
+ """Timeout value in seconds."""
740
+
741
+
742
+ class OptionsProxyReadTimeout(BaseModel):
743
+ enabled: bool
744
+ """Controls the option state.
745
+
746
+ Possible values:
747
+
748
+ - **true** - Option is enabled.
749
+ - **false** - Option is disabled.
750
+ """
751
+
752
+ value: str
753
+ """Timeout value in seconds."""
754
+
755
+
756
+ class OptionsQueryParamsBlacklist(BaseModel):
757
+ enabled: bool
758
+ """Controls the option state.
759
+
760
+ Possible values:
761
+
762
+ - **true** - Option is enabled.
763
+ - **false** - Option is disabled.
764
+ """
765
+
766
+ value: List[str]
767
+ """List of query parameters."""
768
+
769
+
770
+ class OptionsQueryParamsWhitelist(BaseModel):
771
+ enabled: bool
772
+ """Controls the option state.
773
+
774
+ Possible values:
775
+
776
+ - **true** - Option is enabled.
777
+ - **false** - Option is disabled.
778
+ """
779
+
780
+ value: List[str]
781
+ """List of query parameters."""
782
+
783
+
784
+ class OptionsQueryStringForwarding(BaseModel):
785
+ enabled: bool
786
+ """Controls the option state.
787
+
788
+ Possible values:
789
+
790
+ - **true** - Option is enabled.
791
+ - **false** - Option is disabled.
792
+ """
793
+
794
+ forward_from_file_types: List[str]
795
+ """
796
+ The `forward_from_files_types` field specifies the types of playlist files from
797
+ which parameters will be extracted and forwarded. This typically includes
798
+ formats that list multiple media chunk references, such as HLS and DASH
799
+ playlists. Parameters associated with these playlist files (like query strings
800
+ or headers) will be propagated to the chunks they reference.
801
+ """
802
+
803
+ forward_to_file_types: List[str]
804
+ """
805
+ The field specifies the types of media chunk files to which parameters,
806
+ extracted from playlist files, will be forwarded. These refer to the actual
807
+ segments of media content that are delivered to viewers. Ensuring the correct
808
+ parameters are forwarded to these files is crucial for maintaining the integrity
809
+ of the streaming session.
810
+ """
811
+
812
+ forward_except_keys: Optional[List[str]] = None
813
+ """
814
+ The `forward_except_keys` field provides a mechanism to exclude specific
815
+ parameters from being forwarded from playlist files to media chunk files. By
816
+ listing certain keys in this field, you can ensure that these parameters are
817
+ omitted during the forwarding process. This is particularly useful for
818
+ preventing sensitive or irrelevant information from being included in requests
819
+ for media chunks, thereby enhancing security and optimizing performance.
820
+ """
821
+
822
+ forward_only_keys: Optional[List[str]] = None
823
+ """
824
+ The `forward_only_keys` field allows for granular control over which specific
825
+ parameters are forwarded from playlist files to media chunk files. By specifying
826
+ certain keys, only those parameters will be propagated, ensuring that only
827
+ relevant information is passed along. This is particularly useful for security
828
+ and performance optimization, as it prevents unnecessary or sensitive data from
829
+ being included in requests for media chunks.
830
+ """
831
+
832
+
833
+ class OptionsRedirectHTTPToHTTPS(BaseModel):
834
+ enabled: bool
835
+ """Controls the option state.
836
+
837
+ Possible values:
838
+
839
+ - **true** - Option is enabled.
840
+ - **false** - Option is disabled.
841
+ """
842
+
843
+ value: bool
844
+ """Possible values:
845
+
846
+ - **true** - Option is enabled.
847
+ - **false** - Option is disabled.
848
+ """
849
+
850
+
851
+ class OptionsRedirectHTTPSToHTTP(BaseModel):
852
+ enabled: bool
853
+ """Controls the option state.
854
+
855
+ Possible values:
856
+
857
+ - **true** - Option is enabled.
858
+ - **false** - Option is disabled.
859
+ """
860
+
861
+ value: bool
862
+ """Possible values:
863
+
864
+ - **true** - Option is enabled.
865
+ - **false** - Option is disabled.
866
+ """
867
+
868
+
869
+ class OptionsReferrerACL(BaseModel):
870
+ enabled: bool
871
+ """Controls the option state.
872
+
873
+ Possible values:
874
+
875
+ - **true** - Option is enabled.
876
+ - **false** - Option is disabled.
877
+ """
878
+
879
+ excepted_values: List[str]
880
+ """
881
+ List of domain names or wildcard domains (without protocol: `http://` or
882
+ `https://`.)
883
+
884
+ The meaning of the parameter depends on `policy_type` value:
885
+
886
+ - **allow** - List of domain names for which access is prohibited.
887
+ - **deny** - List of IP domain names for which access is allowed.
888
+
889
+ Examples:
890
+
891
+ - `example.com`
892
+ - `\\**.example.com`
893
+ """
894
+
895
+ policy_type: Literal["allow", "deny"]
896
+ """Policy type.
897
+
898
+ Possible values:
899
+
900
+ - **allow** - Allow access to all domain names except the domain names specified
901
+ in `excepted_values` field.
902
+ - **deny** - Deny access to all domain names except the domain names specified
903
+ in `excepted_values` field.
904
+ """
905
+
906
+
907
+ class OptionsRequestLimiter(BaseModel):
908
+ enabled: bool
909
+ """Controls the option state.
910
+
911
+ Possible values:
912
+
913
+ - **true** - Option is enabled.
914
+ - **false** - Option is disabled.
915
+ """
916
+
917
+ rate: int
918
+ """Maximum request rate."""
919
+
920
+ burst: Optional[int] = None
921
+
922
+ delay: Optional[int] = None
923
+
924
+ rate_unit: Optional[Literal["r/s", "r/m"]] = None
925
+ """Units of measurement for the `rate` field.
926
+
927
+ Possible values:
928
+
929
+ - **r/s** - Requests per second.
930
+ - **r/m** - Requests per minute.
931
+
932
+ If the rate is less than one request per second, it is specified in request per
933
+ minute (r/m.)
934
+ """
935
+
936
+
937
+ class OptionsResponseHeadersHidingPolicy(BaseModel):
938
+ enabled: bool
939
+ """Controls the option state.
940
+
941
+ Possible values:
942
+
943
+ - **true** - Option is enabled.
944
+ - **false** - Option is disabled.
945
+ """
946
+
947
+ excepted: List[str]
948
+ """List of HTTP headers.
949
+
950
+ Parameter meaning depends on the value of the `mode` field:
951
+
952
+ - **show** - List of HTTP headers to hide from response.
953
+ - **hide** - List of HTTP headers to include in response. Other HTTP headers
954
+ will be hidden.
955
+
956
+ The following headers are required and cannot be hidden from response:
957
+
958
+ - `Connection`
959
+ - `Content-Length`
960
+ - `Content-Type`
961
+ - `Date`
962
+ - `Server`
963
+ """
964
+
965
+ mode: Literal["hide", "show"]
966
+ """How HTTP headers are hidden from the response.
967
+
968
+ Possible values:
969
+
970
+ - **show** - Hide only HTTP headers listed in the `excepted` field.
971
+ - **hide** - Hide all HTTP headers except headers listed in the "excepted"
972
+ field.
973
+ """
974
+
975
+
976
+ class OptionsRewrite(BaseModel):
977
+ body: str
978
+ """Path for the Rewrite option.
979
+
980
+ Example:
981
+
982
+ - `/(.\\**) /media/$1`
983
+ """
984
+
985
+ enabled: bool
986
+ """Controls the option state.
987
+
988
+ Possible values:
989
+
990
+ - **true** - Option is enabled.
991
+ - **false** - Option is disabled.
992
+ """
993
+
994
+ flag: Optional[Literal["break", "last", "redirect", "permanent"]] = None
995
+ """Flag for the Rewrite option.
996
+
997
+ Possible values:
998
+
999
+ - **last** - Stop processing the current set of `ngx_http_rewrite_module`
1000
+ directives and start a search for a new location matching changed URI.
1001
+ - **break** - Stop processing the current set of the Rewrite option.
1002
+ - **redirect** - Return a temporary redirect with the 302 code; used when a
1003
+ replacement string does not start with `http://`, `https://`, or `$scheme`.
1004
+ - **permanent** - Return a permanent redirect with the 301 code.
1005
+ """
1006
+
1007
+
1008
+ class OptionsSecureKey(BaseModel):
1009
+ enabled: bool
1010
+ """Controls the option state.
1011
+
1012
+ Possible values:
1013
+
1014
+ - **true** - Option is enabled.
1015
+ - **false** - Option is disabled.
1016
+ """
1017
+
1018
+ key: Optional[str] = None
1019
+ """Key generated on your side that will be used for URL signing."""
1020
+
1021
+ type: Optional[Literal[0, 2]] = None
1022
+ """Type of URL signing.
1023
+
1024
+ Possible types:
1025
+
1026
+ - **Type 0** - Includes end user IP to secure token generation.
1027
+ - **Type 2** - Excludes end user IP from secure token generation.
1028
+ """
1029
+
1030
+
1031
+ class OptionsSlice(BaseModel):
1032
+ enabled: bool
1033
+ """Controls the option state.
1034
+
1035
+ Possible values:
1036
+
1037
+ - **true** - Option is enabled.
1038
+ - **false** - Option is disabled.
1039
+ """
1040
+
1041
+ value: bool
1042
+ """Possible values:
1043
+
1044
+ - **true** - Option is enabled.
1045
+ - **false** - Option is disabled.
1046
+ """
1047
+
1048
+
1049
+ class OptionsSni(BaseModel):
1050
+ custom_hostname: str
1051
+ """Custom SNI hostname.
1052
+
1053
+ It is required if `sni_type` is set to custom.
1054
+ """
1055
+
1056
+ enabled: bool
1057
+ """Controls the option state.
1058
+
1059
+ Possible values:
1060
+
1061
+ - **true** - Option is enabled.
1062
+ - **false** - Option is disabled.
1063
+ """
1064
+
1065
+ sni_type: Optional[Literal["dynamic", "custom"]] = None
1066
+ """SNI (Server Name Indication) type.
1067
+
1068
+ Possible values:
1069
+
1070
+ - **dynamic** - SNI hostname depends on `hostHeader` and `forward_host_header`
1071
+ options. It has several possible combinations:
1072
+ - If the `hostHeader` option is enabled and specified, SNI hostname matches the
1073
+ Host header.
1074
+ - If the `forward_host_header` option is enabled and has true value, SNI
1075
+ hostname matches the Host header used in the request made to a CDN.
1076
+ - If the `hostHeader` and `forward_host_header` options are disabled, SNI
1077
+ hostname matches the primary CNAME.
1078
+ - **custom** - custom SNI hostname is in use.
1079
+ """
1080
+
1081
+
1082
+ class OptionsStale(BaseModel):
1083
+ enabled: bool
1084
+ """Controls the option state.
1085
+
1086
+ Possible values:
1087
+
1088
+ - **true** - Option is enabled.
1089
+ - **false** - Option is disabled.
1090
+ """
1091
+
1092
+ value: List[
1093
+ Literal[
1094
+ "error",
1095
+ "http_403",
1096
+ "http_404",
1097
+ "http_429",
1098
+ "http_500",
1099
+ "http_502",
1100
+ "http_503",
1101
+ "http_504",
1102
+ "invalid_header",
1103
+ "timeout",
1104
+ "updating",
1105
+ ]
1106
+ ]
1107
+ """Defines list of errors for which "Always online" option is applied."""
1108
+
1109
+
1110
+ class OptionsStaticResponseHeadersValue(BaseModel):
1111
+ name: str
1112
+ """HTTP Header name.
1113
+
1114
+ Restrictions:
1115
+
1116
+ - Maximum 128 symbols.
1117
+ - Latin letters (A-Z, a-z,) numbers (0-9,) dashes, and underscores only.
1118
+ """
1119
+
1120
+ value: List[str]
1121
+ """Header value.
1122
+
1123
+ Restrictions:
1124
+
1125
+ - Maximum 512 symbols.
1126
+ - Letters (a-z), numbers (0-9), spaces, and symbols (`~!@#%%^&\\**()-\\__=+
1127
+ /|\";:?.,><{}[]).
1128
+ - Must start with a letter, number, asterisk or {.
1129
+ - Multiple values can be added.
1130
+ """
1131
+
1132
+ always: Optional[bool] = None
1133
+ """
1134
+ Defines whether the header will be added to a response from CDN regardless of
1135
+ response code.
1136
+
1137
+ Possible values:
1138
+
1139
+ - **true** - Header will be added to a response from CDN regardless of response
1140
+ code.
1141
+ - **false** - Header will be added only to the following response codes: 200,
1142
+ 201, 204, 206, 301, 302, 303, 304, 307, 308.
1143
+ """
1144
+
1145
+
1146
+ class OptionsStaticResponseHeaders(BaseModel):
1147
+ enabled: bool
1148
+ """Controls the option state.
1149
+
1150
+ Possible values:
1151
+
1152
+ - **true** - Option is enabled.
1153
+ - **false** - Option is disabled.
1154
+ """
1155
+
1156
+ value: List[OptionsStaticResponseHeadersValue]
1157
+
1158
+
1159
+ class OptionsStaticHeaders(BaseModel):
1160
+ enabled: bool
1161
+ """Controls the option state.
1162
+
1163
+ Possible values:
1164
+
1165
+ - **true** - Option is enabled.
1166
+ - **false** - Option is disabled.
1167
+ """
1168
+
1169
+ value: Dict[str, str]
1170
+ """A MAP for static headers in a format of `header_name: header_value`.
1171
+
1172
+ Restrictions:
1173
+
1174
+ - **Header name** - Maximum 128 symbols, may contain Latin letters (A-Z, a-z),
1175
+ numbers (0-9), dashes, and underscores.
1176
+ - **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers
1177
+ (0-9), spaces, and symbols (`~!@#%%^&\\**()-\\__=+ /|\";:?.,><{}[]). Must start
1178
+ with a letter, number, asterisk or {.
1179
+ """
1180
+
1181
+
1182
+ class OptionsStaticRequestHeaders(BaseModel):
1183
+ enabled: bool
1184
+ """Controls the option state.
1185
+
1186
+ Possible values:
1187
+
1188
+ - **true** - Option is enabled.
1189
+ - **false** - Option is disabled.
1190
+ """
1191
+
1192
+ value: Dict[str, str]
1193
+ """A MAP for static headers in a format of `header_name: header_value`.
1194
+
1195
+ Restrictions:
1196
+
1197
+ - **Header name** - Maximum 255 symbols, may contain Latin letters (A-Z, a-z),
1198
+ numbers (0-9), dashes, and underscores.
1199
+ - **Header value** - Maximum 512 symbols, may contain letters (a-z), numbers
1200
+ (0-9), spaces, and symbols (`~!@#%%^&\\**()-\\__=+ /|\";:?.,><{}[]). Must start
1201
+ with a letter, number, asterisk or {.
1202
+ """
1203
+
1204
+
1205
+ class OptionsUserAgentACL(BaseModel):
1206
+ enabled: bool
1207
+ """Controls the option state.
1208
+
1209
+ Possible values:
1210
+
1211
+ - **true** - Option is enabled.
1212
+ - **false** - Option is disabled.
1213
+ """
1214
+
1215
+ excepted_values: List[str]
1216
+ """List of User-Agents that will be allowed/denied.
1217
+
1218
+ The meaning of the parameter depends on `policy_type`:
1219
+
1220
+ - **allow** - List of User-Agents for which access is prohibited.
1221
+ - **deny** - List of User-Agents for which access is allowed.
1222
+
1223
+ Use an empty string `""` to allow/deny access when the User-Agent header is
1224
+ empty.
1225
+ """
1226
+
1227
+ policy_type: Literal["allow", "deny"]
1228
+ """User-Agents policy type.
1229
+
1230
+ Possible values:
1231
+
1232
+ - **allow** - Allow access for all User-Agents except specified in
1233
+ `excepted_values` field.
1234
+ - **deny** - Deny access for all User-Agents except specified in
1235
+ `excepted_values` field.
1236
+ """
1237
+
1238
+
1239
+ class OptionsWaap(BaseModel):
1240
+ enabled: bool
1241
+ """Controls the option state.
1242
+
1243
+ Possible values:
1244
+
1245
+ - **true** - Option is enabled.
1246
+ - **false** - Option is disabled.
1247
+ """
1248
+
1249
+ value: bool
1250
+ """Possible values:
1251
+
1252
+ - **true** - Option is enabled.
1253
+ - **false** - Option is disabled.
1254
+ """
1255
+
1256
+
1257
+ class OptionsWebsockets(BaseModel):
1258
+ enabled: bool
1259
+ """Controls the option state.
1260
+
1261
+ Possible values:
1262
+
1263
+ - **true** - Option is enabled.
1264
+ - **false** - Option is disabled.
1265
+ """
1266
+
1267
+ value: bool
1268
+ """Possible values:
1269
+
1270
+ - **true** - Option is enabled.
1271
+ - **false** - Option is disabled.
1272
+ """
1273
+
1274
+
1275
+ class Options(BaseModel):
1276
+ allowed_http_methods: Optional[OptionsAllowedHTTPMethods] = FieldInfo(alias="allowedHttpMethods", default=None)
1277
+ """HTTP methods allowed for content requests from the CDN."""
1278
+
1279
+ bot_protection: Optional[OptionsBotProtection] = None
1280
+ """
1281
+ Allows to prevent online services from overloading and ensure your business
1282
+ workflow running smoothly.
1283
+ """
1284
+
1285
+ brotli_compression: Optional[OptionsBrotliCompression] = None
1286
+ """Compresses content with Brotli on the CDN side.
1287
+
1288
+ CDN servers will request only uncompressed content from the origin.
1289
+
1290
+ Notes:
1291
+
1292
+ 1. CDN only supports "Brotli compression" when the "origin shielding" feature is
1293
+ activated.
1294
+ 2. If a precache server is not active for a CDN resource, no compression occurs,
1295
+ even if the option is enabled.
1296
+ 3. `brotli_compression` is not supported with `fetch_compressed` or `slice`
1297
+ options enabled.
1298
+ 4. `fetch_compressed` option in CDN resource settings overrides
1299
+ `brotli_compression` in rules. If you enabled `fetch_compressed` in CDN
1300
+ resource and want to enable `brotli_compression` in a rule, you must specify
1301
+ `fetch_compressed:false` in the rule.
1302
+ """
1303
+
1304
+ browser_cache_settings: Optional[OptionsBrowserCacheSettings] = None
1305
+ """Cache expiration time for users browsers in seconds.
1306
+
1307
+ Cache expiration time is applied to the following response codes: 200, 201, 204,
1308
+ 206, 301, 302, 303, 304, 307, 308.
1309
+
1310
+ Responses with other codes will not be cached.
1311
+ """
1312
+
1313
+ cache_http_headers: Optional[OptionsCacheHTTPHeaders] = None
1314
+ """**Legacy option**. Use the `response_headers_hiding_policy` option instead.
1315
+
1316
+ HTTP Headers that must be included in the response.
1317
+ """
1318
+
1319
+ cors: Optional[OptionsCors] = None
1320
+ """Enables or disables CORS (Cross-Origin Resource Sharing) header support.
1321
+
1322
+ CORS header support allows the CDN to add the Access-Control-Allow-Origin header
1323
+ to a response to a browser.
1324
+ """
1325
+
1326
+ country_acl: Optional[OptionsCountryACL] = None
1327
+ """Enables control access to content for specified countries."""
1328
+
1329
+ disable_cache: Optional[OptionsDisableCache] = None
1330
+ """**Legacy option**. Use the `edge_cache_settings` option instead.
1331
+
1332
+ Allows the complete disabling of content caching.
1333
+ """
1334
+
1335
+ disable_proxy_force_ranges: Optional[OptionsDisableProxyForceRanges] = None
1336
+ """Allows 206 responses regardless of the settings of an origin source."""
1337
+
1338
+ edge_cache_settings: Optional[OptionsEdgeCacheSettings] = None
1339
+ """Cache expiration time for CDN servers.
1340
+
1341
+ `value` and `default` fields cannot be used simultaneously.
1342
+ """
1343
+
1344
+ fastedge: Optional[OptionsFastedge] = None
1345
+ """
1346
+ Allows to configure FastEdge app to be called on different request/response
1347
+ phases.
1348
+
1349
+ Note: At least one of `on_request_headers`, `on_request_body`,
1350
+ `on_response_headers`, or `on_response_body` must be specified.
1351
+ """
1352
+
1353
+ fetch_compressed: Optional[OptionsFetchCompressed] = None
1354
+ """Makes the CDN request compressed content from the origin.
1355
+
1356
+ The origin server should support compression. CDN servers will not decompress
1357
+ your content even if a user browser does not accept compression.
1358
+
1359
+ Notes:
1360
+
1361
+ 1. `fetch_compressed` is not supported with `gzipON` or `brotli_compression` or
1362
+ `slice` options enabled.
1363
+ 2. `fetch_compressed` overrides `gzipON` and `brotli_compression` in rule. If
1364
+ you enable it in CDN resource and want to use `gzipON` and
1365
+ `brotli_compression` in a rule, you have to specify
1366
+ `"`fetch_compressed`": false` in the rule.
1367
+ """
1368
+
1369
+ follow_origin_redirect: Optional[OptionsFollowOriginRedirect] = None
1370
+ """
1371
+ Enables redirection from origin. If the origin server returns a redirect, the
1372
+ option allows the CDN to pull the requested content from the origin server that
1373
+ was returned in the redirect.
1374
+ """
1375
+
1376
+ force_return: Optional[OptionsForceReturn] = None
1377
+ """Applies custom HTTP response codes for CDN content.
1378
+
1379
+ The following codes are reserved by our system and cannot be specified in this
1380
+ option: 408, 444, 477, 494, 495, 496, 497, 499.
1381
+ """
1382
+
1383
+ forward_host_header: Optional[OptionsForwardHostHeader] = None
1384
+ """Forwards the Host header from a end-user request to an origin server.
1385
+
1386
+ `hostHeader` and `forward_host_header` options cannot be enabled simultaneously.
1387
+ """
1388
+
1389
+ gzip_on: Optional[OptionsGzipOn] = FieldInfo(alias="gzipOn", default=None)
1390
+ """Compresses content with gzip on the CDN end.
1391
+
1392
+ CDN servers will request only uncompressed content from the origin.
1393
+
1394
+ Notes:
1395
+
1396
+ 1. Compression with gzip is not supported with `fetch_compressed` or `slice`
1397
+ options enabled.
1398
+ 2. `fetch_compressed` option in CDN resource settings overrides `gzipON` in
1399
+ rules. If you enable `fetch_compressed` in CDN resource and want to enable
1400
+ `gzipON` in rules, you need to specify `"`fetch_compressed`":false` for
1401
+ rules.
1402
+ """
1403
+
1404
+ host_header: Optional[OptionsHostHeader] = FieldInfo(alias="hostHeader", default=None)
1405
+ """
1406
+ Sets the Host header that CDN servers use when request content from an origin
1407
+ server. Your server must be able to process requests with the chosen header.
1408
+
1409
+ If the option is `null`, the Host Header value is equal to first CNAME.
1410
+
1411
+ `hostHeader` and `forward_host_header` options cannot be enabled simultaneously.
1412
+ """
1413
+
1414
+ ignore_cookie: Optional[OptionsIgnoreCookie] = None
1415
+ """
1416
+ Defines whether the files with the Set-Cookies header are cached as one file or
1417
+ as different ones.
1418
+ """
1419
+
1420
+ ignore_query_string: Optional[OptionsIgnoreQueryString] = FieldInfo(alias="ignoreQueryString", default=None)
1421
+ """
1422
+ How a file with different query strings is cached: either as one object (option
1423
+ is enabled) or as different objects (option is disabled.)
1424
+
1425
+ `ignoreQueryString`, `query_params_whitelist` and `query_params_blacklist`
1426
+ options cannot be enabled simultaneously.
1427
+ """
1428
+
1429
+ image_stack: Optional[OptionsImageStack] = None
1430
+ """
1431
+ Transforms JPG and PNG images (for example, resize or crop) and automatically
1432
+ converts them to WebP or AVIF format.
1433
+ """
1434
+
1435
+ ip_address_acl: Optional[OptionsIPAddressACL] = None
1436
+ """Controls access to the CDN resource content for specific IP addresses.
1437
+
1438
+ If you want to use IPs from our CDN servers IP list for IP ACL configuration,
1439
+ you have to independently monitor their relevance. We recommend you use a script
1440
+ for automatically update IP ACL.
1441
+ [Read more.](/docs/api-reference/cdn/ip-addresses-list/get-cdn-servers-ip-addresses)
1442
+ """
1443
+
1444
+ limit_bandwidth: Optional[OptionsLimitBandwidth] = None
1445
+ """Allows to control the download speed per connection."""
1446
+
1447
+ proxy_cache_key: Optional[OptionsProxyCacheKey] = None
1448
+ """Allows you to modify your cache key.
1449
+
1450
+ If omitted, the default value is `$request_uri`.
1451
+
1452
+ Combine the specified variables to create a key for caching.
1453
+
1454
+ - **$`request_uri`**
1455
+ - **$scheme**
1456
+ - **$uri**
1457
+
1458
+ **Warning**: Enabling and changing this option can invalidate your current cache
1459
+ and affect the cache hit ratio. Furthermore, the "Purge by pattern" option will
1460
+ not work.
1461
+ """
1462
+
1463
+ proxy_cache_methods_set: Optional[OptionsProxyCacheMethodsSet] = None
1464
+ """Caching for POST requests along with default GET and HEAD."""
1465
+
1466
+ proxy_connect_timeout: Optional[OptionsProxyConnectTimeout] = None
1467
+ """The time limit for establishing a connection with the origin."""
1468
+
1469
+ proxy_read_timeout: Optional[OptionsProxyReadTimeout] = None
1470
+ """
1471
+ The time limit for receiving a partial response from the origin. If no response
1472
+ is received within this time, the connection will be closed.
1473
+
1474
+ **Note:** When used with a WebSocket connection, this option supports values
1475
+ only in the range 1–20 seconds (instead of the usual 1–30 seconds).
1476
+ """
1477
+
1478
+ query_params_blacklist: Optional[OptionsQueryParamsBlacklist] = None
1479
+ """
1480
+ Files with the specified query parameters are cached as one object, files with
1481
+ other parameters are cached as different objects.
1482
+
1483
+ `ignoreQueryString`, `query_params_whitelist` and `query_params_blacklist`
1484
+ options cannot be enabled simultaneously.
1485
+ """
1486
+
1487
+ query_params_whitelist: Optional[OptionsQueryParamsWhitelist] = None
1488
+ """
1489
+ Files with the specified query parameters are cached as different objects, files
1490
+ with other parameters are cached as one object.
1491
+
1492
+ `ignoreQueryString`, `query_params_whitelist` and `query_params_blacklist`
1493
+ options cannot be enabled simultaneously.
1494
+ """
1495
+
1496
+ query_string_forwarding: Optional[OptionsQueryStringForwarding] = None
1497
+ """
1498
+ The Query String Forwarding feature allows for the seamless transfer of
1499
+ parameters embedded in playlist files to the corresponding media chunk files.
1500
+ This functionality ensures that specific attributes, such as authentication
1501
+ tokens or tracking information, are consistently passed along from the playlist
1502
+ manifest to the individual media segments. This is particularly useful for
1503
+ maintaining continuity in security, analytics, and any other parameter-based
1504
+ operations across the entire media delivery workflow.
1505
+ """
1506
+
1507
+ redirect_http_to_https: Optional[OptionsRedirectHTTPToHTTPS] = None
1508
+ """Enables redirect from HTTP to HTTPS.
1509
+
1510
+ `redirect_http_to_https` and `redirect_https_to_http` options cannot be enabled
1511
+ simultaneously.
1512
+ """
1513
+
1514
+ redirect_https_to_http: Optional[OptionsRedirectHTTPSToHTTP] = None
1515
+ """Enables redirect from HTTPS to HTTP.
1516
+
1517
+ `redirect_http_to_https` and `redirect_https_to_http` options cannot be enabled
1518
+ simultaneously.
1519
+ """
1520
+
1521
+ referrer_acl: Optional[OptionsReferrerACL] = None
1522
+ """Controls access to the CDN resource content for specified domain names."""
1523
+
1524
+ request_limiter: Optional[OptionsRequestLimiter] = None
1525
+ """Option allows to limit the amount of HTTP requests."""
1526
+
1527
+ response_headers_hiding_policy: Optional[OptionsResponseHeadersHidingPolicy] = None
1528
+ """Hides HTTP headers from an origin server in the CDN response."""
1529
+
1530
+ rewrite: Optional[OptionsRewrite] = None
1531
+ """Changes and redirects requests from the CDN to the origin.
1532
+
1533
+ It operates according to the
1534
+ [Nginx](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite)
1535
+ configuration.
1536
+ """
1537
+
1538
+ secure_key: Optional[OptionsSecureKey] = None
1539
+ """Configures access with tokenized URLs.
1540
+
1541
+ This makes impossible to access content without a valid (unexpired) token.
1542
+ """
1543
+
1544
+ slice: Optional[OptionsSlice] = None
1545
+ """
1546
+ Requests and caches files larger than 10 MB in parts (no larger than 10 MB per
1547
+ part.) This reduces time to first byte.
1548
+
1549
+ The option is based on the
1550
+ [Slice](https://nginx.org/en/docs/http/ngx_http_slice_module.html) module.
1551
+
1552
+ Notes:
1553
+
1554
+ 1. Origin must support HTTP Range requests.
1555
+ 2. Not supported with `gzipON`, `brotli_compression` or `fetch_compressed`
1556
+ options enabled.
1557
+ """
1558
+
1559
+ sni: Optional[OptionsSni] = None
1560
+ """
1561
+ The hostname that is added to SNI requests from CDN servers to the origin server
1562
+ via HTTPS.
1563
+
1564
+ SNI is generally only required if your origin uses shared hosting or does not
1565
+ have a dedicated IP address. If the origin server presents multiple
1566
+ certificates, SNI allows the origin server to know which certificate to use for
1567
+ the connection.
1568
+
1569
+ The option works only if `originProtocol` parameter is `HTTPS` or `MATCH`.
1570
+ """
1571
+
1572
+ stale: Optional[OptionsStale] = None
1573
+ """Serves stale cached content in case of origin unavailability."""
1574
+
1575
+ static_response_headers: Optional[OptionsStaticResponseHeaders] = None
1576
+ """Custom HTTP Headers that a CDN server adds to a response."""
1577
+
1578
+ static_headers: Optional[OptionsStaticHeaders] = FieldInfo(alias="staticHeaders", default=None)
1579
+ """**Legacy option**. Use the `static_response_headers` option instead.
1580
+
1581
+ Custom HTTP Headers that a CDN server adds to response. Up to fifty custom HTTP
1582
+ Headers can be specified. May contain a header with multiple values.
1583
+ """
1584
+
1585
+ static_request_headers: Optional[OptionsStaticRequestHeaders] = FieldInfo(
1586
+ alias="staticRequestHeaders", default=None
1587
+ )
1588
+ """Custom HTTP Headers for a CDN server to add to request.
1589
+
1590
+ Up to fifty custom HTTP Headers can be specified.
1591
+ """
1592
+
1593
+ user_agent_acl: Optional[OptionsUserAgentACL] = None
1594
+ """Controls access to the content for specified User-Agents."""
1595
+
1596
+ waap: Optional[OptionsWaap] = None
1597
+ """Allows to enable WAAP (Web Application and API Protection)."""
1598
+
1599
+ websockets: Optional[OptionsWebsockets] = None
1600
+ """Enables or disables WebSockets connections to an origin server."""
1601
+
1602
+
1603
+ class RuleTemplate(BaseModel):
1604
+ id: Optional[int] = None
1605
+ """Rule template ID."""
1606
+
1607
+ client: Optional[int] = None
1608
+ """Client ID"""
1609
+
1610
+ default: Optional[bool] = None
1611
+ """Defines whether the template is a system template developed for common cases.
1612
+
1613
+ System templates are available to all customers.
1614
+
1615
+ Possible values:
1616
+
1617
+ - **true** - Template is a system template and cannot be changed by a user.
1618
+ - **false** - Template is a custom template and can be changed by a user.
1619
+ """
1620
+
1621
+ deleted: Optional[bool] = None
1622
+ """Defines whether the template has been deleted.
1623
+
1624
+ Possible values:
1625
+
1626
+ - **true** - Template has been deleted.
1627
+ - **false** - Template has not been deleted.
1628
+ """
1629
+
1630
+ name: Optional[str] = None
1631
+ """Rule template name."""
1632
+
1633
+ options: Optional[Options] = None
1634
+ """List of options that can be configured for the rule.
1635
+
1636
+ In case of `null` value the option is not added to the rule. Option inherits its
1637
+ value from the CDN resource settings.
1638
+ """
1639
+
1640
+ override_origin_protocol: Optional[Literal["HTTPS", "HTTP", "MATCH"]] = FieldInfo(
1641
+ alias="overrideOriginProtocol", default=None
1642
+ )
1643
+ """
1644
+ Sets a protocol other than the one specified in the CDN resource settings to
1645
+ connect to the origin.
1646
+
1647
+ Possible values:
1648
+
1649
+ - **HTTPS** - CDN servers connect to origin via HTTPS protocol.
1650
+ - **HTTP** - CDN servers connect to origin via HTTP protocol.
1651
+ - **MATCH** - Connection protocol is chosen automatically; in this case, content
1652
+ on origin source should be available for the CDN both through HTTP and HTTPS
1653
+ protocols.
1654
+ - **null** - `originProtocol` setting is inherited from the CDN resource
1655
+ settings.
1656
+ """
1657
+
1658
+ rule: Optional[str] = None
1659
+ """Path to the file or folder for which the rule will be applied.
1660
+
1661
+ The rule is applied if the requested URI matches the rule path.
1662
+
1663
+ We add a leading forward slash to any rule path. Specify a path without a
1664
+ forward slash.
1665
+ """
1666
+
1667
+ rule_type: Optional[int] = FieldInfo(alias="ruleType", default=None)
1668
+ """Rule type.
1669
+
1670
+ Possible values:
1671
+
1672
+ - **Type 0** - Regular expression. Must start with '^/' or '/'.
1673
+ - **Type 1** - Regular expression. Note that for this rule type we automatically
1674
+ add / to each rule pattern before your regular expression. This type is
1675
+ **legacy**, please use Type 0.
1676
+ """
1677
+
1678
+ template: Optional[bool] = None
1679
+ """Determines whether the rule is a template."""
1680
+
1681
+ weight: Optional[int] = None
1682
+ """Rule execution order: from lowest (1) to highest.
1683
+
1684
+ If requested URI matches multiple rules, the one higher in the order of the
1685
+ rules will be applied.
1686
+ """