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,1081 @@
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 Iterable, Optional
6
+
7
+ import httpx
8
+
9
+ from ...._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
10
+ from ...._utils import maybe_transform, async_maybe_transform
11
+ from ...._compat import cached_property
12
+ from ...._resource import SyncAPIResource, AsyncAPIResource
13
+ from ...._response import (
14
+ to_raw_response_wrapper,
15
+ to_streamed_response_wrapper,
16
+ async_to_raw_response_wrapper,
17
+ async_to_streamed_response_wrapper,
18
+ )
19
+ from ...._base_client import make_request_options
20
+ from ....types.cdn.logs import setting_create_params, setting_update_params
21
+ from ....types.cdn.logs.log_settings import LogSettings
22
+
23
+ __all__ = ["SettingsResource", "AsyncSettingsResource"]
24
+
25
+
26
+ class SettingsResource(SyncAPIResource):
27
+ @cached_property
28
+ def with_raw_response(self) -> SettingsResourceWithRawResponse:
29
+ """
30
+ This property can be used as a prefix for any HTTP method call to return
31
+ the raw response object instead of the parsed content.
32
+
33
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
34
+ """
35
+ return SettingsResourceWithRawResponse(self)
36
+
37
+ @cached_property
38
+ def with_streaming_response(self) -> SettingsResourceWithStreamingResponse:
39
+ """
40
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
41
+
42
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
43
+ """
44
+ return SettingsResourceWithStreamingResponse(self)
45
+
46
+ def create(
47
+ self,
48
+ *,
49
+ all_resources_bucket: str,
50
+ all_resources_folder: str,
51
+ folders: Iterable[setting_create_params.Folder],
52
+ for_all_resources: bool,
53
+ ftp_hostname: str,
54
+ ftp_login: str,
55
+ ftp_password: str,
56
+ s3_access_key_id: str,
57
+ s3_hostname: str,
58
+ s3_secret_key: str,
59
+ s3_type: str,
60
+ sftp_hostname: str,
61
+ sftp_login: str,
62
+ sftp_password: str,
63
+ storage_type: str,
64
+ archive_size_mb: Optional[int] | Omit = omit,
65
+ enabled: bool | Omit = omit,
66
+ ftp_prepend_folder: str | Omit = omit,
67
+ ignore_empty_logs: bool | Omit = omit,
68
+ s3_aws_region: int | Omit = omit,
69
+ s3_bucket_location: str | Omit = omit,
70
+ s3_host_bucket: str | Omit = omit,
71
+ sftp_key_passphrase: str | Omit = omit,
72
+ sftp_prepend_folder: str | Omit = omit,
73
+ sftp_private_key: str | Omit = omit,
74
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
75
+ # The extra values given here take precedence over values defined on the client or passed to this method.
76
+ extra_headers: Headers | None = None,
77
+ extra_query: Query | None = None,
78
+ extra_body: Body | None = None,
79
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
80
+ ) -> None:
81
+ """
82
+ Setup raw logs settings
83
+
84
+ Args:
85
+ all_resources_bucket: Name of the S3 bucket to which logs for all CDN resources are delivered.
86
+
87
+ all_resources_folder:
88
+ Parameter meaning depends on the value of the "`storage_type`" value:
89
+
90
+ - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for
91
+ all CDN resources are delivered.
92
+ - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for
93
+ all CDN resources are delivered.
94
+
95
+ folders: List of folders/buckets for receiving CDN resources logs.
96
+
97
+ for_all_resources: Defines whether logs of all CDN resources are delivered to one folder/bucket or
98
+ to separate ones.
99
+
100
+ Possible values:
101
+
102
+ - **true** - Logs of all CDN resources are delivered to one folder/bucket.
103
+ - **false** - Logs of different CDN resources are delivered to separate
104
+ folders/buckets.
105
+
106
+ ftp_hostname: FTP storage hostname.
107
+
108
+ ftp_login: FTP storage login.
109
+
110
+ ftp_password: FTP storage password.
111
+
112
+ s3_access_key_id: Access key ID for the S3 account.
113
+
114
+ Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02
115
+
116
+ s3_hostname: S3 storage hostname.
117
+
118
+ It is required if "`s3_type`": other.
119
+
120
+ s3_secret_key: Secret access key for the S3 account.
121
+
122
+ Secret Access Key is 20-50 alpha-numeric-slash-plus characters like
123
+ kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct
124
+
125
+ s3_type: Storage type compatible with S3.
126
+
127
+ Possible values:
128
+
129
+ - **amazon** – AWS S3 storage.
130
+ - **other** – Other (not AWS) S3 compatible storage.
131
+
132
+ sftp_hostname: SFTP storage hostname.
133
+
134
+ sftp_login: SFTP storage login.
135
+
136
+ sftp_password: SFTP storage password.
137
+
138
+ It should be empty if "`sftp_private_key`" is set.
139
+
140
+ storage_type: Storage type.
141
+
142
+ Possible values:
143
+
144
+ - **ftp**
145
+ - **sftp**
146
+ - **s3**
147
+
148
+ archive_size_mb: The size of a single piece of the archive in MB. In case of **null** value logs
149
+ are delivered without slicing.
150
+
151
+ enabled: Enables or disables a log forwarding feature.
152
+
153
+ Possible values:
154
+
155
+ - **true** - log forwarding feature is active.
156
+ - **false** - log forwarding feature is deactivated.
157
+
158
+ ftp_prepend_folder: Name of the FTP prepend folder for log delivery.
159
+
160
+ **Null** is allowed.
161
+
162
+ ignore_empty_logs: Enables or disables the forwarding of empty logs.
163
+
164
+ Possible values:
165
+
166
+ - **true** - Empty logs are not sent.
167
+ - **false** - Empty logs are sent.
168
+
169
+ s3_aws_region: Amazon AWS region.
170
+
171
+ s3_bucket_location: Location of S3 storage.
172
+
173
+ Restrictions:
174
+
175
+ - Maximum of 255 symbols.
176
+ - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores
177
+ (.:\\__-).
178
+
179
+ s3_host_bucket: S3 bucket hostname.
180
+
181
+ Restrictions:
182
+
183
+ - Maximum of 255 symbols.
184
+ - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores.
185
+ - Required if "`s3_type`": other.
186
+
187
+ sftp_key_passphrase: Passphrase for SFTP private key.
188
+
189
+ Restrictions:
190
+
191
+ - Should be set if private key encoded with passphrase.
192
+ - Should be empty if "`sftp_password`" is set.
193
+
194
+ sftp_prepend_folder: Name of the SFTP prepend folder for log delivery.
195
+
196
+ **Null** is allowed.
197
+
198
+ sftp_private_key: Private key for SFTP authorization.
199
+
200
+ Possible values:
201
+
202
+ - **RSA**
203
+ - **ED25519**
204
+
205
+ It should be empty if "`sftp_password`" is set.
206
+
207
+ extra_headers: Send extra headers
208
+
209
+ extra_query: Add additional query parameters to the request
210
+
211
+ extra_body: Add additional JSON properties to the request
212
+
213
+ timeout: Override the client-level default timeout for this request, in seconds
214
+ """
215
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
216
+ return self._post(
217
+ "/cdn/raw_log_settings"
218
+ if self._client._base_url_overridden
219
+ else "https://api.gcore.com//cdn/raw_log_settings",
220
+ body=maybe_transform(
221
+ {
222
+ "all_resources_bucket": all_resources_bucket,
223
+ "all_resources_folder": all_resources_folder,
224
+ "folders": folders,
225
+ "for_all_resources": for_all_resources,
226
+ "ftp_hostname": ftp_hostname,
227
+ "ftp_login": ftp_login,
228
+ "ftp_password": ftp_password,
229
+ "s3_access_key_id": s3_access_key_id,
230
+ "s3_hostname": s3_hostname,
231
+ "s3_secret_key": s3_secret_key,
232
+ "s3_type": s3_type,
233
+ "sftp_hostname": sftp_hostname,
234
+ "sftp_login": sftp_login,
235
+ "sftp_password": sftp_password,
236
+ "storage_type": storage_type,
237
+ "archive_size_mb": archive_size_mb,
238
+ "enabled": enabled,
239
+ "ftp_prepend_folder": ftp_prepend_folder,
240
+ "ignore_empty_logs": ignore_empty_logs,
241
+ "s3_aws_region": s3_aws_region,
242
+ "s3_bucket_location": s3_bucket_location,
243
+ "s3_host_bucket": s3_host_bucket,
244
+ "sftp_key_passphrase": sftp_key_passphrase,
245
+ "sftp_prepend_folder": sftp_prepend_folder,
246
+ "sftp_private_key": sftp_private_key,
247
+ },
248
+ setting_create_params.SettingCreateParams,
249
+ ),
250
+ options=make_request_options(
251
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
252
+ ),
253
+ cast_to=NoneType,
254
+ )
255
+
256
+ def update(
257
+ self,
258
+ *,
259
+ all_resources_bucket: str,
260
+ all_resources_folder: str,
261
+ folders: Iterable[setting_update_params.Folder],
262
+ for_all_resources: bool,
263
+ ftp_hostname: str,
264
+ ftp_login: str,
265
+ ftp_password: str,
266
+ s3_access_key_id: str,
267
+ s3_hostname: str,
268
+ s3_secret_key: str,
269
+ s3_type: str,
270
+ sftp_hostname: str,
271
+ sftp_login: str,
272
+ sftp_password: str,
273
+ storage_type: str,
274
+ archive_size_mb: Optional[int] | Omit = omit,
275
+ enabled: bool | Omit = omit,
276
+ ftp_prepend_folder: str | Omit = omit,
277
+ ignore_empty_logs: bool | Omit = omit,
278
+ s3_aws_region: int | Omit = omit,
279
+ s3_bucket_location: str | Omit = omit,
280
+ s3_host_bucket: str | Omit = omit,
281
+ sftp_key_passphrase: str | Omit = omit,
282
+ sftp_prepend_folder: str | Omit = omit,
283
+ sftp_private_key: str | Omit = omit,
284
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
285
+ # The extra values given here take precedence over values defined on the client or passed to this method.
286
+ extra_headers: Headers | None = None,
287
+ extra_query: Query | None = None,
288
+ extra_body: Body | None = None,
289
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
290
+ ) -> None:
291
+ """
292
+ PATCH method is not allowed.
293
+
294
+ Args:
295
+ all_resources_bucket: Name of the S3 bucket to which logs for all CDN resources are delivered.
296
+
297
+ all_resources_folder:
298
+ Parameter meaning depends on the value of the "`storage_type`" value:
299
+
300
+ - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for
301
+ all CDN resources are delivered.
302
+ - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for
303
+ all CDN resources are delivered.
304
+
305
+ folders: List of folders/buckets for receiving CDN resources logs.
306
+
307
+ for_all_resources: Defines whether logs of all CDN resources are delivered to one folder/bucket or
308
+ to separate ones.
309
+
310
+ Possible values:
311
+
312
+ - **true** - Logs of all CDN resources are delivered to one folder/bucket.
313
+ - **false** - Logs of different CDN resources are delivered to separate
314
+ folders/buckets.
315
+
316
+ ftp_hostname: FTP storage hostname.
317
+
318
+ ftp_login: FTP storage login.
319
+
320
+ ftp_password: FTP storage password.
321
+
322
+ s3_access_key_id: Access key ID for the S3 account.
323
+
324
+ Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02
325
+
326
+ s3_hostname: S3 storage hostname.
327
+
328
+ It is required if "`s3_type`": other.
329
+
330
+ s3_secret_key: Secret access key for the S3 account.
331
+
332
+ Secret Access Key is 20-50 alpha-numeric-slash-plus characters like
333
+ kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct
334
+
335
+ s3_type: Storage type compatible with S3.
336
+
337
+ Possible values:
338
+
339
+ - **amazon** – AWS S3 storage.
340
+ - **other** – Other (not AWS) S3 compatible storage.
341
+
342
+ sftp_hostname: SFTP storage hostname.
343
+
344
+ sftp_login: SFTP storage login.
345
+
346
+ sftp_password: SFTP storage password.
347
+
348
+ It should be empty if "`sftp_private_key`" is set.
349
+
350
+ storage_type: Storage type.
351
+
352
+ Possible values:
353
+
354
+ - **ftp**
355
+ - **sftp**
356
+ - **s3**
357
+
358
+ archive_size_mb: The size of a single piece of the archive in MB. In case of **null** value logs
359
+ are delivered without slicing.
360
+
361
+ enabled: Enables or disables a log forwarding feature.
362
+
363
+ Possible values:
364
+
365
+ - **true** - log forwarding feature is active.
366
+ - **false** - log forwarding feature is deactivated.
367
+
368
+ ftp_prepend_folder: Name of the FTP prepend folder for log delivery.
369
+
370
+ **Null** is allowed.
371
+
372
+ ignore_empty_logs: Enables or disables the forwarding of empty logs.
373
+
374
+ Possible values:
375
+
376
+ - **true** - Empty logs are not sent.
377
+ - **false** - Empty logs are sent.
378
+
379
+ s3_aws_region: Amazon AWS region.
380
+
381
+ s3_bucket_location: Location of S3 storage.
382
+
383
+ Restrictions:
384
+
385
+ - Maximum of 255 symbols.
386
+ - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores
387
+ (.:\\__-).
388
+
389
+ s3_host_bucket: S3 bucket hostname.
390
+
391
+ Restrictions:
392
+
393
+ - Maximum of 255 symbols.
394
+ - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores.
395
+ - Required if "`s3_type`": other.
396
+
397
+ sftp_key_passphrase: Passphrase for SFTP private key.
398
+
399
+ Restrictions:
400
+
401
+ - Should be set if private key encoded with passphrase.
402
+ - Should be empty if "`sftp_password`" is set.
403
+
404
+ sftp_prepend_folder: Name of the SFTP prepend folder for log delivery.
405
+
406
+ **Null** is allowed.
407
+
408
+ sftp_private_key: Private key for SFTP authorization.
409
+
410
+ Possible values:
411
+
412
+ - **RSA**
413
+ - **ED25519**
414
+
415
+ It should be empty if "`sftp_password`" is set.
416
+
417
+ extra_headers: Send extra headers
418
+
419
+ extra_query: Add additional query parameters to the request
420
+
421
+ extra_body: Add additional JSON properties to the request
422
+
423
+ timeout: Override the client-level default timeout for this request, in seconds
424
+ """
425
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
426
+ return self._put(
427
+ "/cdn/raw_log_settings"
428
+ if self._client._base_url_overridden
429
+ else "https://api.gcore.com//cdn/raw_log_settings",
430
+ body=maybe_transform(
431
+ {
432
+ "all_resources_bucket": all_resources_bucket,
433
+ "all_resources_folder": all_resources_folder,
434
+ "folders": folders,
435
+ "for_all_resources": for_all_resources,
436
+ "ftp_hostname": ftp_hostname,
437
+ "ftp_login": ftp_login,
438
+ "ftp_password": ftp_password,
439
+ "s3_access_key_id": s3_access_key_id,
440
+ "s3_hostname": s3_hostname,
441
+ "s3_secret_key": s3_secret_key,
442
+ "s3_type": s3_type,
443
+ "sftp_hostname": sftp_hostname,
444
+ "sftp_login": sftp_login,
445
+ "sftp_password": sftp_password,
446
+ "storage_type": storage_type,
447
+ "archive_size_mb": archive_size_mb,
448
+ "enabled": enabled,
449
+ "ftp_prepend_folder": ftp_prepend_folder,
450
+ "ignore_empty_logs": ignore_empty_logs,
451
+ "s3_aws_region": s3_aws_region,
452
+ "s3_bucket_location": s3_bucket_location,
453
+ "s3_host_bucket": s3_host_bucket,
454
+ "sftp_key_passphrase": sftp_key_passphrase,
455
+ "sftp_prepend_folder": sftp_prepend_folder,
456
+ "sftp_private_key": sftp_private_key,
457
+ },
458
+ setting_update_params.SettingUpdateParams,
459
+ ),
460
+ options=make_request_options(
461
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
462
+ ),
463
+ cast_to=NoneType,
464
+ )
465
+
466
+ def delete(
467
+ self,
468
+ *,
469
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
470
+ # The extra values given here take precedence over values defined on the client or passed to this method.
471
+ extra_headers: Headers | None = None,
472
+ extra_query: Query | None = None,
473
+ extra_body: Body | None = None,
474
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
475
+ ) -> None:
476
+ """
477
+ Delete the raw logs delivery configuration from the system permanently.
478
+
479
+ Notes:
480
+
481
+ - **Deactivation Requirement**: Set the `enabled` attribute to `false` before
482
+ deletion.
483
+ - **Irreversibility**: This action is irreversible. Once deleted, the raw logs
484
+ delivery configuration cannot be recovered.
485
+ """
486
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
487
+ return self._delete(
488
+ "/cdn/raw_log_settings"
489
+ if self._client._base_url_overridden
490
+ else "https://api.gcore.com//cdn/raw_log_settings",
491
+ options=make_request_options(
492
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
493
+ ),
494
+ cast_to=NoneType,
495
+ )
496
+
497
+ def get(
498
+ self,
499
+ *,
500
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
501
+ # The extra values given here take precedence over values defined on the client or passed to this method.
502
+ extra_headers: Headers | None = None,
503
+ extra_query: Query | None = None,
504
+ extra_body: Body | None = None,
505
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
506
+ ) -> LogSettings:
507
+ """Get information about raw logs feature settings."""
508
+ return self._get(
509
+ "/cdn/raw_log_settings"
510
+ if self._client._base_url_overridden
511
+ else "https://api.gcore.com//cdn/raw_log_settings",
512
+ options=make_request_options(
513
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
514
+ ),
515
+ cast_to=LogSettings,
516
+ )
517
+
518
+
519
+ class AsyncSettingsResource(AsyncAPIResource):
520
+ @cached_property
521
+ def with_raw_response(self) -> AsyncSettingsResourceWithRawResponse:
522
+ """
523
+ This property can be used as a prefix for any HTTP method call to return
524
+ the raw response object instead of the parsed content.
525
+
526
+ For more information, see https://www.github.com/G-Core/gcore-python#accessing-raw-response-data-eg-headers
527
+ """
528
+ return AsyncSettingsResourceWithRawResponse(self)
529
+
530
+ @cached_property
531
+ def with_streaming_response(self) -> AsyncSettingsResourceWithStreamingResponse:
532
+ """
533
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
534
+
535
+ For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response
536
+ """
537
+ return AsyncSettingsResourceWithStreamingResponse(self)
538
+
539
+ async def create(
540
+ self,
541
+ *,
542
+ all_resources_bucket: str,
543
+ all_resources_folder: str,
544
+ folders: Iterable[setting_create_params.Folder],
545
+ for_all_resources: bool,
546
+ ftp_hostname: str,
547
+ ftp_login: str,
548
+ ftp_password: str,
549
+ s3_access_key_id: str,
550
+ s3_hostname: str,
551
+ s3_secret_key: str,
552
+ s3_type: str,
553
+ sftp_hostname: str,
554
+ sftp_login: str,
555
+ sftp_password: str,
556
+ storage_type: str,
557
+ archive_size_mb: Optional[int] | Omit = omit,
558
+ enabled: bool | Omit = omit,
559
+ ftp_prepend_folder: str | Omit = omit,
560
+ ignore_empty_logs: bool | Omit = omit,
561
+ s3_aws_region: int | Omit = omit,
562
+ s3_bucket_location: str | Omit = omit,
563
+ s3_host_bucket: str | Omit = omit,
564
+ sftp_key_passphrase: str | Omit = omit,
565
+ sftp_prepend_folder: str | Omit = omit,
566
+ sftp_private_key: str | Omit = omit,
567
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
568
+ # The extra values given here take precedence over values defined on the client or passed to this method.
569
+ extra_headers: Headers | None = None,
570
+ extra_query: Query | None = None,
571
+ extra_body: Body | None = None,
572
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
573
+ ) -> None:
574
+ """
575
+ Setup raw logs settings
576
+
577
+ Args:
578
+ all_resources_bucket: Name of the S3 bucket to which logs for all CDN resources are delivered.
579
+
580
+ all_resources_folder:
581
+ Parameter meaning depends on the value of the "`storage_type`" value:
582
+
583
+ - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for
584
+ all CDN resources are delivered.
585
+ - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for
586
+ all CDN resources are delivered.
587
+
588
+ folders: List of folders/buckets for receiving CDN resources logs.
589
+
590
+ for_all_resources: Defines whether logs of all CDN resources are delivered to one folder/bucket or
591
+ to separate ones.
592
+
593
+ Possible values:
594
+
595
+ - **true** - Logs of all CDN resources are delivered to one folder/bucket.
596
+ - **false** - Logs of different CDN resources are delivered to separate
597
+ folders/buckets.
598
+
599
+ ftp_hostname: FTP storage hostname.
600
+
601
+ ftp_login: FTP storage login.
602
+
603
+ ftp_password: FTP storage password.
604
+
605
+ s3_access_key_id: Access key ID for the S3 account.
606
+
607
+ Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02
608
+
609
+ s3_hostname: S3 storage hostname.
610
+
611
+ It is required if "`s3_type`": other.
612
+
613
+ s3_secret_key: Secret access key for the S3 account.
614
+
615
+ Secret Access Key is 20-50 alpha-numeric-slash-plus characters like
616
+ kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct
617
+
618
+ s3_type: Storage type compatible with S3.
619
+
620
+ Possible values:
621
+
622
+ - **amazon** – AWS S3 storage.
623
+ - **other** – Other (not AWS) S3 compatible storage.
624
+
625
+ sftp_hostname: SFTP storage hostname.
626
+
627
+ sftp_login: SFTP storage login.
628
+
629
+ sftp_password: SFTP storage password.
630
+
631
+ It should be empty if "`sftp_private_key`" is set.
632
+
633
+ storage_type: Storage type.
634
+
635
+ Possible values:
636
+
637
+ - **ftp**
638
+ - **sftp**
639
+ - **s3**
640
+
641
+ archive_size_mb: The size of a single piece of the archive in MB. In case of **null** value logs
642
+ are delivered without slicing.
643
+
644
+ enabled: Enables or disables a log forwarding feature.
645
+
646
+ Possible values:
647
+
648
+ - **true** - log forwarding feature is active.
649
+ - **false** - log forwarding feature is deactivated.
650
+
651
+ ftp_prepend_folder: Name of the FTP prepend folder for log delivery.
652
+
653
+ **Null** is allowed.
654
+
655
+ ignore_empty_logs: Enables or disables the forwarding of empty logs.
656
+
657
+ Possible values:
658
+
659
+ - **true** - Empty logs are not sent.
660
+ - **false** - Empty logs are sent.
661
+
662
+ s3_aws_region: Amazon AWS region.
663
+
664
+ s3_bucket_location: Location of S3 storage.
665
+
666
+ Restrictions:
667
+
668
+ - Maximum of 255 symbols.
669
+ - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores
670
+ (.:\\__-).
671
+
672
+ s3_host_bucket: S3 bucket hostname.
673
+
674
+ Restrictions:
675
+
676
+ - Maximum of 255 symbols.
677
+ - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores.
678
+ - Required if "`s3_type`": other.
679
+
680
+ sftp_key_passphrase: Passphrase for SFTP private key.
681
+
682
+ Restrictions:
683
+
684
+ - Should be set if private key encoded with passphrase.
685
+ - Should be empty if "`sftp_password`" is set.
686
+
687
+ sftp_prepend_folder: Name of the SFTP prepend folder for log delivery.
688
+
689
+ **Null** is allowed.
690
+
691
+ sftp_private_key: Private key for SFTP authorization.
692
+
693
+ Possible values:
694
+
695
+ - **RSA**
696
+ - **ED25519**
697
+
698
+ It should be empty if "`sftp_password`" is set.
699
+
700
+ extra_headers: Send extra headers
701
+
702
+ extra_query: Add additional query parameters to the request
703
+
704
+ extra_body: Add additional JSON properties to the request
705
+
706
+ timeout: Override the client-level default timeout for this request, in seconds
707
+ """
708
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
709
+ return await self._post(
710
+ "/cdn/raw_log_settings"
711
+ if self._client._base_url_overridden
712
+ else "https://api.gcore.com//cdn/raw_log_settings",
713
+ body=await async_maybe_transform(
714
+ {
715
+ "all_resources_bucket": all_resources_bucket,
716
+ "all_resources_folder": all_resources_folder,
717
+ "folders": folders,
718
+ "for_all_resources": for_all_resources,
719
+ "ftp_hostname": ftp_hostname,
720
+ "ftp_login": ftp_login,
721
+ "ftp_password": ftp_password,
722
+ "s3_access_key_id": s3_access_key_id,
723
+ "s3_hostname": s3_hostname,
724
+ "s3_secret_key": s3_secret_key,
725
+ "s3_type": s3_type,
726
+ "sftp_hostname": sftp_hostname,
727
+ "sftp_login": sftp_login,
728
+ "sftp_password": sftp_password,
729
+ "storage_type": storage_type,
730
+ "archive_size_mb": archive_size_mb,
731
+ "enabled": enabled,
732
+ "ftp_prepend_folder": ftp_prepend_folder,
733
+ "ignore_empty_logs": ignore_empty_logs,
734
+ "s3_aws_region": s3_aws_region,
735
+ "s3_bucket_location": s3_bucket_location,
736
+ "s3_host_bucket": s3_host_bucket,
737
+ "sftp_key_passphrase": sftp_key_passphrase,
738
+ "sftp_prepend_folder": sftp_prepend_folder,
739
+ "sftp_private_key": sftp_private_key,
740
+ },
741
+ setting_create_params.SettingCreateParams,
742
+ ),
743
+ options=make_request_options(
744
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
745
+ ),
746
+ cast_to=NoneType,
747
+ )
748
+
749
+ async def update(
750
+ self,
751
+ *,
752
+ all_resources_bucket: str,
753
+ all_resources_folder: str,
754
+ folders: Iterable[setting_update_params.Folder],
755
+ for_all_resources: bool,
756
+ ftp_hostname: str,
757
+ ftp_login: str,
758
+ ftp_password: str,
759
+ s3_access_key_id: str,
760
+ s3_hostname: str,
761
+ s3_secret_key: str,
762
+ s3_type: str,
763
+ sftp_hostname: str,
764
+ sftp_login: str,
765
+ sftp_password: str,
766
+ storage_type: str,
767
+ archive_size_mb: Optional[int] | Omit = omit,
768
+ enabled: bool | Omit = omit,
769
+ ftp_prepend_folder: str | Omit = omit,
770
+ ignore_empty_logs: bool | Omit = omit,
771
+ s3_aws_region: int | Omit = omit,
772
+ s3_bucket_location: str | Omit = omit,
773
+ s3_host_bucket: str | Omit = omit,
774
+ sftp_key_passphrase: str | Omit = omit,
775
+ sftp_prepend_folder: str | Omit = omit,
776
+ sftp_private_key: str | Omit = omit,
777
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
778
+ # The extra values given here take precedence over values defined on the client or passed to this method.
779
+ extra_headers: Headers | None = None,
780
+ extra_query: Query | None = None,
781
+ extra_body: Body | None = None,
782
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
783
+ ) -> None:
784
+ """
785
+ PATCH method is not allowed.
786
+
787
+ Args:
788
+ all_resources_bucket: Name of the S3 bucket to which logs for all CDN resources are delivered.
789
+
790
+ all_resources_folder:
791
+ Parameter meaning depends on the value of the "`storage_type`" value:
792
+
793
+ - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for
794
+ all CDN resources are delivered.
795
+ - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for
796
+ all CDN resources are delivered.
797
+
798
+ folders: List of folders/buckets for receiving CDN resources logs.
799
+
800
+ for_all_resources: Defines whether logs of all CDN resources are delivered to one folder/bucket or
801
+ to separate ones.
802
+
803
+ Possible values:
804
+
805
+ - **true** - Logs of all CDN resources are delivered to one folder/bucket.
806
+ - **false** - Logs of different CDN resources are delivered to separate
807
+ folders/buckets.
808
+
809
+ ftp_hostname: FTP storage hostname.
810
+
811
+ ftp_login: FTP storage login.
812
+
813
+ ftp_password: FTP storage password.
814
+
815
+ s3_access_key_id: Access key ID for the S3 account.
816
+
817
+ Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02
818
+
819
+ s3_hostname: S3 storage hostname.
820
+
821
+ It is required if "`s3_type`": other.
822
+
823
+ s3_secret_key: Secret access key for the S3 account.
824
+
825
+ Secret Access Key is 20-50 alpha-numeric-slash-plus characters like
826
+ kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct
827
+
828
+ s3_type: Storage type compatible with S3.
829
+
830
+ Possible values:
831
+
832
+ - **amazon** – AWS S3 storage.
833
+ - **other** – Other (not AWS) S3 compatible storage.
834
+
835
+ sftp_hostname: SFTP storage hostname.
836
+
837
+ sftp_login: SFTP storage login.
838
+
839
+ sftp_password: SFTP storage password.
840
+
841
+ It should be empty if "`sftp_private_key`" is set.
842
+
843
+ storage_type: Storage type.
844
+
845
+ Possible values:
846
+
847
+ - **ftp**
848
+ - **sftp**
849
+ - **s3**
850
+
851
+ archive_size_mb: The size of a single piece of the archive in MB. In case of **null** value logs
852
+ are delivered without slicing.
853
+
854
+ enabled: Enables or disables a log forwarding feature.
855
+
856
+ Possible values:
857
+
858
+ - **true** - log forwarding feature is active.
859
+ - **false** - log forwarding feature is deactivated.
860
+
861
+ ftp_prepend_folder: Name of the FTP prepend folder for log delivery.
862
+
863
+ **Null** is allowed.
864
+
865
+ ignore_empty_logs: Enables or disables the forwarding of empty logs.
866
+
867
+ Possible values:
868
+
869
+ - **true** - Empty logs are not sent.
870
+ - **false** - Empty logs are sent.
871
+
872
+ s3_aws_region: Amazon AWS region.
873
+
874
+ s3_bucket_location: Location of S3 storage.
875
+
876
+ Restrictions:
877
+
878
+ - Maximum of 255 symbols.
879
+ - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores
880
+ (.:\\__-).
881
+
882
+ s3_host_bucket: S3 bucket hostname.
883
+
884
+ Restrictions:
885
+
886
+ - Maximum of 255 symbols.
887
+ - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores.
888
+ - Required if "`s3_type`": other.
889
+
890
+ sftp_key_passphrase: Passphrase for SFTP private key.
891
+
892
+ Restrictions:
893
+
894
+ - Should be set if private key encoded with passphrase.
895
+ - Should be empty if "`sftp_password`" is set.
896
+
897
+ sftp_prepend_folder: Name of the SFTP prepend folder for log delivery.
898
+
899
+ **Null** is allowed.
900
+
901
+ sftp_private_key: Private key for SFTP authorization.
902
+
903
+ Possible values:
904
+
905
+ - **RSA**
906
+ - **ED25519**
907
+
908
+ It should be empty if "`sftp_password`" is set.
909
+
910
+ extra_headers: Send extra headers
911
+
912
+ extra_query: Add additional query parameters to the request
913
+
914
+ extra_body: Add additional JSON properties to the request
915
+
916
+ timeout: Override the client-level default timeout for this request, in seconds
917
+ """
918
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
919
+ return await self._put(
920
+ "/cdn/raw_log_settings"
921
+ if self._client._base_url_overridden
922
+ else "https://api.gcore.com//cdn/raw_log_settings",
923
+ body=await async_maybe_transform(
924
+ {
925
+ "all_resources_bucket": all_resources_bucket,
926
+ "all_resources_folder": all_resources_folder,
927
+ "folders": folders,
928
+ "for_all_resources": for_all_resources,
929
+ "ftp_hostname": ftp_hostname,
930
+ "ftp_login": ftp_login,
931
+ "ftp_password": ftp_password,
932
+ "s3_access_key_id": s3_access_key_id,
933
+ "s3_hostname": s3_hostname,
934
+ "s3_secret_key": s3_secret_key,
935
+ "s3_type": s3_type,
936
+ "sftp_hostname": sftp_hostname,
937
+ "sftp_login": sftp_login,
938
+ "sftp_password": sftp_password,
939
+ "storage_type": storage_type,
940
+ "archive_size_mb": archive_size_mb,
941
+ "enabled": enabled,
942
+ "ftp_prepend_folder": ftp_prepend_folder,
943
+ "ignore_empty_logs": ignore_empty_logs,
944
+ "s3_aws_region": s3_aws_region,
945
+ "s3_bucket_location": s3_bucket_location,
946
+ "s3_host_bucket": s3_host_bucket,
947
+ "sftp_key_passphrase": sftp_key_passphrase,
948
+ "sftp_prepend_folder": sftp_prepend_folder,
949
+ "sftp_private_key": sftp_private_key,
950
+ },
951
+ setting_update_params.SettingUpdateParams,
952
+ ),
953
+ options=make_request_options(
954
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
955
+ ),
956
+ cast_to=NoneType,
957
+ )
958
+
959
+ async def delete(
960
+ self,
961
+ *,
962
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
963
+ # The extra values given here take precedence over values defined on the client or passed to this method.
964
+ extra_headers: Headers | None = None,
965
+ extra_query: Query | None = None,
966
+ extra_body: Body | None = None,
967
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
968
+ ) -> None:
969
+ """
970
+ Delete the raw logs delivery configuration from the system permanently.
971
+
972
+ Notes:
973
+
974
+ - **Deactivation Requirement**: Set the `enabled` attribute to `false` before
975
+ deletion.
976
+ - **Irreversibility**: This action is irreversible. Once deleted, the raw logs
977
+ delivery configuration cannot be recovered.
978
+ """
979
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
980
+ return await self._delete(
981
+ "/cdn/raw_log_settings"
982
+ if self._client._base_url_overridden
983
+ else "https://api.gcore.com//cdn/raw_log_settings",
984
+ options=make_request_options(
985
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
986
+ ),
987
+ cast_to=NoneType,
988
+ )
989
+
990
+ async def get(
991
+ self,
992
+ *,
993
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
994
+ # The extra values given here take precedence over values defined on the client or passed to this method.
995
+ extra_headers: Headers | None = None,
996
+ extra_query: Query | None = None,
997
+ extra_body: Body | None = None,
998
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
999
+ ) -> LogSettings:
1000
+ """Get information about raw logs feature settings."""
1001
+ return await self._get(
1002
+ "/cdn/raw_log_settings"
1003
+ if self._client._base_url_overridden
1004
+ else "https://api.gcore.com//cdn/raw_log_settings",
1005
+ options=make_request_options(
1006
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1007
+ ),
1008
+ cast_to=LogSettings,
1009
+ )
1010
+
1011
+
1012
+ class SettingsResourceWithRawResponse:
1013
+ def __init__(self, settings: SettingsResource) -> None:
1014
+ self._settings = settings
1015
+
1016
+ self.create = to_raw_response_wrapper(
1017
+ settings.create,
1018
+ )
1019
+ self.update = to_raw_response_wrapper(
1020
+ settings.update,
1021
+ )
1022
+ self.delete = to_raw_response_wrapper(
1023
+ settings.delete,
1024
+ )
1025
+ self.get = to_raw_response_wrapper(
1026
+ settings.get,
1027
+ )
1028
+
1029
+
1030
+ class AsyncSettingsResourceWithRawResponse:
1031
+ def __init__(self, settings: AsyncSettingsResource) -> None:
1032
+ self._settings = settings
1033
+
1034
+ self.create = async_to_raw_response_wrapper(
1035
+ settings.create,
1036
+ )
1037
+ self.update = async_to_raw_response_wrapper(
1038
+ settings.update,
1039
+ )
1040
+ self.delete = async_to_raw_response_wrapper(
1041
+ settings.delete,
1042
+ )
1043
+ self.get = async_to_raw_response_wrapper(
1044
+ settings.get,
1045
+ )
1046
+
1047
+
1048
+ class SettingsResourceWithStreamingResponse:
1049
+ def __init__(self, settings: SettingsResource) -> None:
1050
+ self._settings = settings
1051
+
1052
+ self.create = to_streamed_response_wrapper(
1053
+ settings.create,
1054
+ )
1055
+ self.update = to_streamed_response_wrapper(
1056
+ settings.update,
1057
+ )
1058
+ self.delete = to_streamed_response_wrapper(
1059
+ settings.delete,
1060
+ )
1061
+ self.get = to_streamed_response_wrapper(
1062
+ settings.get,
1063
+ )
1064
+
1065
+
1066
+ class AsyncSettingsResourceWithStreamingResponse:
1067
+ def __init__(self, settings: AsyncSettingsResource) -> None:
1068
+ self._settings = settings
1069
+
1070
+ self.create = async_to_streamed_response_wrapper(
1071
+ settings.create,
1072
+ )
1073
+ self.update = async_to_streamed_response_wrapper(
1074
+ settings.update,
1075
+ )
1076
+ self.delete = async_to_streamed_response_wrapper(
1077
+ settings.delete,
1078
+ )
1079
+ self.get = async_to_streamed_response_wrapper(
1080
+ settings.get,
1081
+ )