fastly 17.2.0 → 18.0.0

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.
Files changed (340) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -1
  3. data/Gemfile.lock +1 -1
  4. data/README.md +73 -2
  5. data/docs/AiRuntimeControlProviderConnectionsApi.md +210 -0
  6. data/docs/AiRuntimeControlProvidersApi.md +121 -0
  7. data/docs/AiRuntimeControlResponseBodyEnable.md +12 -0
  8. data/docs/AiRuntimeControlResponseCustomer.md +10 -0
  9. data/docs/AiRuntimeControlResponseLinks.md +10 -0
  10. data/docs/AiRuntimeControlResponseLinksLinks.md +10 -0
  11. data/docs/AiRuntimeControlResponseProduct.md +10 -0
  12. data/docs/AiRuntimeControlResponseProductProduct.md +11 -0
  13. data/docs/AiRuntimeControlSessionsApi.md +69 -0
  14. data/docs/AiRuntimeControlUsageMetricsApi.md +113 -0
  15. data/docs/AiRuntimeControlVirtualKeysApi.md +334 -0
  16. data/docs/ArcBedrockSetupResponse.md +11 -0
  17. data/docs/ArcCreateVirtualKeyResponse.md +19 -0
  18. data/docs/ArcError.md +12 -0
  19. data/docs/ArcFailoverTarget.md +10 -0
  20. data/docs/ArcGetProviderConnectionResponse.md +19 -0
  21. data/docs/ArcGetProviderConnectionResponseExtra.md +10 -0
  22. data/docs/ArcModel.md +12 -0
  23. data/docs/ArcModelsMeta.md +10 -0
  24. data/docs/ArcModelsResponse.md +11 -0
  25. data/docs/ArcProvider.md +13 -0
  26. data/docs/ArcProviderConnectionApiKey.md +14 -0
  27. data/docs/ArcProviderConnectionAwsIam.md +14 -0
  28. data/docs/ArcProviderConnectionListItemResponse.md +19 -0
  29. data/docs/ArcProviderConnectionListItemResponseExtra.md +10 -0
  30. data/docs/ArcProviderConnectionRequest.md +49 -0
  31. data/docs/ArcProviderConnectionResponse.md +18 -0
  32. data/docs/ArcProviderConnectionsMeta.md +11 -0
  33. data/docs/ArcProviderConnectionsResponse.md +11 -0
  34. data/docs/ArcProvidersMeta.md +10 -0
  35. data/docs/ArcProvidersResponse.md +11 -0
  36. data/docs/ArcRotateVirtualKeyRequest.md +10 -0
  37. data/docs/ArcRotateVirtualKeyResponse.md +17 -0
  38. data/docs/ArcSession.md +28 -0
  39. data/docs/ArcSessionLogEntry.md +12 -0
  40. data/docs/ArcSessionsMeta.md +14 -0
  41. data/docs/ArcSessionsResponse.md +11 -0
  42. data/docs/ArcUpdateProviderConnectionRequest.md +14 -0
  43. data/docs/ArcUpdateVirtualKeyRequest.md +16 -0
  44. data/docs/ArcUpdateVirtualKeyResponse.md +20 -0
  45. data/docs/ArcUsageMetric.md +18 -0
  46. data/docs/ArcUsageMetricsMeta.md +11 -0
  47. data/docs/ArcUsageMetricsResponse.md +11 -0
  48. data/docs/ArcVirtualKey.md +15 -0
  49. data/docs/ArcVirtualKeyFailoverRequest.md +13 -0
  50. data/docs/ArcVirtualKeyFailoverResponse.md +13 -0
  51. data/docs/ArcVirtualKeyListItemResponse.md +26 -0
  52. data/docs/ArcVirtualKeyListItemResponseExtra.md +20 -0
  53. data/docs/ArcVirtualKeyResponse.md +25 -0
  54. data/docs/ArcVirtualKeyResponseExtra.md +19 -0
  55. data/docs/ArcVirtualKeysMeta.md +14 -0
  56. data/docs/ArcVirtualKeysResponse.md +11 -0
  57. data/docs/AutomationToken.md +6 -2
  58. data/docs/AutomationTokenCreateRequest.md +10 -1
  59. data/docs/AutomationTokenCreateResponse.md +6 -2
  60. data/docs/AutomationTokenResponse.md +5 -1
  61. data/docs/AutomationTokenRole.md +11 -0
  62. data/docs/AutomationTokenUnversionedError.md +11 -0
  63. data/docs/AutomationTokenUnversionedErrorResponse.md +10 -0
  64. data/docs/AutomationTokenWorkspace.md +11 -0
  65. data/docs/AutomationTokenWorkspacesMeta.md +12 -0
  66. data/docs/AutomationTokenWorkspacesResponse.md +12 -0
  67. data/docs/AutomationTokensApi.md +43 -1
  68. data/docs/BotManagementAction.md +10 -0
  69. data/docs/BotManagementApi.md +433 -0
  70. data/docs/BotManagementBot.md +10 -0
  71. data/docs/BotManagementBotAction.md +10 -0
  72. data/docs/BotManagementBotResponse.md +12 -0
  73. data/docs/BotManagementBotResponseExtra.md +11 -0
  74. data/docs/BotManagementBotsResponse.md +11 -0
  75. data/docs/BotManagementCategoriesResponse.md +11 -0
  76. data/docs/BotManagementCategory.md +10 -0
  77. data/docs/BotManagementCategoryResponse.md +13 -0
  78. data/docs/BotManagementCategoryResponseExtra.md +12 -0
  79. data/docs/BotManagementError.md +12 -0
  80. data/docs/BotManagementInvalidRequestError.md +12 -0
  81. data/docs/BotManagementInvalidRequestErrorExtra.md +12 -0
  82. data/docs/BotManagementMeta.md +12 -0
  83. data/docs/BotManagementNotAllowedError.md +12 -0
  84. data/docs/BotManagementNotAllowedErrorExtra.md +11 -0
  85. data/docs/BotManagementNotAuthenticatedError.md +12 -0
  86. data/docs/BotManagementNotAuthenticatedErrorExtra.md +11 -0
  87. data/docs/BotManagementNotFoundError.md +12 -0
  88. data/docs/BotManagementNotFoundErrorExtra.md +11 -0
  89. data/docs/BotManagementProtectionMode.md +9 -0
  90. data/docs/BotManagementRateLimitError.md +12 -0
  91. data/docs/BotManagementRateLimitErrorExtra.md +11 -0
  92. data/docs/BotManagementWorkspace.md +12 -0
  93. data/docs/BotManagementWorkspaceBotResponse.md +13 -0
  94. data/docs/BotManagementWorkspaceBotResponseExtra.md +10 -0
  95. data/docs/BotManagementWorkspaceBotsResponse.md +11 -0
  96. data/docs/BotManagementWorkspaceResponse.md +16 -0
  97. data/docs/BotManagementWorkspaceResponseExtra.md +13 -0
  98. data/docs/BotManagementWorkspacesResponse.md +11 -0
  99. data/docs/BotRequestMetricsDataItem.md +16 -0
  100. data/docs/BotRequestMetricsMetadata.md +14 -0
  101. data/docs/BotRequestMetricsResponse.md +11 -0
  102. data/docs/BotRequestsMetricsApi.md +77 -0
  103. data/docs/BulkUpdateDictionaryItem.md +1 -1
  104. data/docs/DdosProtectionRule.md +1 -1
  105. data/docs/DdosProtectionRuleAllOf.md +1 -1
  106. data/docs/DdosProtectionRulePatch.md +1 -1
  107. data/docs/DdosProtectionRuleWithStats.md +1 -1
  108. data/docs/DictionaryItem.md +1 -1
  109. data/docs/DictionaryItemApi.md +14 -14
  110. data/docs/DictionaryItemResponse.md +1 -1
  111. data/docs/MetricsPlatformApi.md +69 -13
  112. data/docs/NetworkProtectApi.md +789 -0
  113. data/docs/NetworkProtectConflict.md +13 -0
  114. data/docs/NetworkProtectConflictError.md +11 -0
  115. data/docs/NetworkProtectEndpoint.md +11 -0
  116. data/docs/NetworkProtectEndpointCreate.md +11 -0
  117. data/docs/NetworkProtectEndpointPolicy.md +11 -0
  118. data/docs/NetworkProtectEndpointResponse.md +14 -0
  119. data/docs/NetworkProtectEndpointResponseFields.md +12 -0
  120. data/docs/NetworkProtectEndpointUpdate.md +10 -0
  121. data/docs/NetworkProtectEndpointsResponse.md +11 -0
  122. data/docs/NetworkProtectErrorDetail.md +11 -0
  123. data/docs/NetworkProtectInvalidRequest.md +13 -0
  124. data/docs/NetworkProtectListMeta.md +11 -0
  125. data/docs/NetworkProtectLoaStatus.md +9 -0
  126. data/docs/NetworkProtectNetwork.md +15 -0
  127. data/docs/NetworkProtectNetworkCreate.md +14 -0
  128. data/docs/NetworkProtectNetworkResponse.md +22 -0
  129. data/docs/NetworkProtectNetworkResponseFields.md +16 -0
  130. data/docs/NetworkProtectNetworkUpdate.md +14 -0
  131. data/docs/NetworkProtectNetworksResponse.md +11 -0
  132. data/docs/NetworkProtectPolicyEndpoint.md +13 -0
  133. data/docs/NetworkProtectPrefixList.md +12 -0
  134. data/docs/NetworkProtectPrefixListCreate.md +12 -0
  135. data/docs/NetworkProtectPrefixListFamily.md +9 -0
  136. data/docs/NetworkProtectPrefixListResponse.md +15 -0
  137. data/docs/NetworkProtectPrefixListResponseFields.md +12 -0
  138. data/docs/NetworkProtectPrefixListUpdate.md +11 -0
  139. data/docs/NetworkProtectPrefixListsResponse.md +11 -0
  140. data/docs/NetworkProtectRegion.md +9 -0
  141. data/docs/NetworkProtectRoaStatus.md +9 -0
  142. data/docs/NetworkProtectRule.md +16 -0
  143. data/docs/NetworkProtectRuleAction.md +9 -0
  144. data/docs/NetworkProtectRuleDestinationPorts.md +9 -0
  145. data/docs/NetworkProtectRuleIpProtocol.md +9 -0
  146. data/docs/NetworkProtectRuleMatchDestinationIp.md +10 -0
  147. data/docs/NetworkProtectRuleMatchDestinationPorts.md +10 -0
  148. data/docs/NetworkProtectRuleMatchIpProtocol.md +10 -0
  149. data/docs/NetworkProtectRuleMatchSourcePorts.md +10 -0
  150. data/docs/NetworkProtectRuleMatchSourcePrefixList.md +10 -0
  151. data/docs/NetworkProtectRuleResponse.md +16 -0
  152. data/docs/NetworkProtectRuleSet.md +11 -0
  153. data/docs/NetworkProtectRuleSetCreate.md +11 -0
  154. data/docs/NetworkProtectRuleSetDefaultAction.md +9 -0
  155. data/docs/NetworkProtectRuleSetResponse.md +14 -0
  156. data/docs/NetworkProtectRuleSetResponseFields.md +12 -0
  157. data/docs/NetworkProtectRuleSetUpdate.md +11 -0
  158. data/docs/NetworkProtectRuleSetsResponse.md +11 -0
  159. data/docs/NetworkProtectRuleSourcePorts.md +9 -0
  160. data/docs/NetworkProtectRuleTimestamps.md +11 -0
  161. data/docs/PlatformValues.md +359 -16
  162. data/docs/ProductAiRuntimeControlApi.md +115 -0
  163. data/docs/PurgeApi.md +6 -0
  164. data/docs/RealtimeEntryAggregated.md +16 -0
  165. data/docs/RealtimeEntryDatacenter.md +16 -0
  166. data/docs/RealtimeMeasurements.md +16 -0
  167. data/docs/Results.md +16 -0
  168. data/lib/fastly/api/ai_runtime_control_provider_connections_api.rb +355 -0
  169. data/lib/fastly/api/ai_runtime_control_providers_api.rb +195 -0
  170. data/lib/fastly/api/ai_runtime_control_sessions_api.rb +112 -0
  171. data/lib/fastly/api/ai_runtime_control_usage_metrics_api.rb +176 -0
  172. data/lib/fastly/api/ai_runtime_control_virtual_keys_api.rb +580 -0
  173. data/lib/fastly/api/automation_tokens_api.rb +78 -1
  174. data/lib/fastly/api/bot_management_api.rb +787 -0
  175. data/lib/fastly/api/bot_requests_metrics_api.rb +137 -0
  176. data/lib/fastly/api/dictionary_item_api.rb +14 -14
  177. data/lib/fastly/api/metrics_platform_api.rb +130 -23
  178. data/lib/fastly/api/network_protect_api.rb +1420 -0
  179. data/lib/fastly/api/product_ai_runtime_control_api.rb +186 -0
  180. data/lib/fastly/api/purge_api.rb +21 -0
  181. data/lib/fastly/configuration.rb +331 -1
  182. data/lib/fastly/models/ai_runtime_control_response_body_enable.rb +243 -0
  183. data/lib/fastly/models/ai_runtime_control_response_customer.rb +216 -0
  184. data/lib/fastly/models/ai_runtime_control_response_links.rb +216 -0
  185. data/lib/fastly/models/ai_runtime_control_response_links_links.rb +217 -0
  186. data/lib/fastly/models/ai_runtime_control_response_product.rb +216 -0
  187. data/lib/fastly/models/ai_runtime_control_response_product_product.rb +227 -0
  188. data/lib/fastly/models/arc_bedrock_setup_response.rb +237 -0
  189. data/lib/fastly/models/arc_create_virtual_key_response.rb +346 -0
  190. data/lib/fastly/models/arc_error.rb +238 -0
  191. data/lib/fastly/models/arc_failover_target.rb +223 -0
  192. data/lib/fastly/models/arc_get_provider_connection_response.rb +393 -0
  193. data/lib/fastly/models/arc_get_provider_connection_response_extra.rb +224 -0
  194. data/lib/fastly/models/arc_model.rb +253 -0
  195. data/lib/fastly/models/arc_models_meta.rb +217 -0
  196. data/lib/fastly/models/arc_models_response.rb +238 -0
  197. data/lib/fastly/models/arc_provider.rb +270 -0
  198. data/lib/fastly/models/arc_provider_connection_api_key.rb +335 -0
  199. data/lib/fastly/models/arc_provider_connection_aws_iam.rb +350 -0
  200. data/lib/fastly/models/arc_provider_connection_list_item_response.rb +386 -0
  201. data/lib/fastly/models/arc_provider_connection_list_item_response_extra.rb +217 -0
  202. data/lib/fastly/models/arc_provider_connection_request.rb +103 -0
  203. data/lib/fastly/models/arc_provider_connection_response.rb +369 -0
  204. data/lib/fastly/models/arc_provider_connections_meta.rb +228 -0
  205. data/lib/fastly/models/arc_provider_connections_response.rb +238 -0
  206. data/lib/fastly/models/arc_providers_meta.rb +217 -0
  207. data/lib/fastly/models/arc_providers_response.rb +238 -0
  208. data/lib/fastly/models/arc_rotate_virtual_key_request.rb +218 -0
  209. data/lib/fastly/models/arc_rotate_virtual_key_response.rb +324 -0
  210. data/lib/fastly/models/arc_session.rb +465 -0
  211. data/lib/fastly/models/arc_session_log_entry.rb +240 -0
  212. data/lib/fastly/models/arc_sessions_meta.rb +260 -0
  213. data/lib/fastly/models/arc_sessions_response.rb +238 -0
  214. data/lib/fastly/models/arc_update_provider_connection_request.rb +275 -0
  215. data/lib/fastly/models/arc_update_virtual_key_request.rb +345 -0
  216. data/lib/fastly/models/arc_update_virtual_key_response.rb +352 -0
  217. data/lib/fastly/models/arc_usage_metric.rb +347 -0
  218. data/lib/fastly/models/arc_usage_metrics_meta.rb +228 -0
  219. data/lib/fastly/models/arc_usage_metrics_response.rb +238 -0
  220. data/lib/fastly/models/arc_virtual_key.rb +342 -0
  221. data/lib/fastly/models/arc_virtual_key_failover_request.rb +255 -0
  222. data/lib/fastly/models/arc_virtual_key_failover_response.rb +270 -0
  223. data/lib/fastly/models/arc_virtual_key_list_item_response.rb +492 -0
  224. data/lib/fastly/models/arc_virtual_key_list_item_response_extra.rb +350 -0
  225. data/lib/fastly/models/arc_virtual_key_response.rb +477 -0
  226. data/lib/fastly/models/arc_virtual_key_response_extra.rb +335 -0
  227. data/lib/fastly/models/arc_virtual_keys_meta.rb +260 -0
  228. data/lib/fastly/models/arc_virtual_keys_response.rb +238 -0
  229. data/lib/fastly/models/automation_token.rb +49 -5
  230. data/lib/fastly/models/automation_token_create_request.rb +161 -7
  231. data/lib/fastly/models/automation_token_create_response.rb +49 -5
  232. data/lib/fastly/models/automation_token_error_response.rb +1 -0
  233. data/lib/fastly/models/automation_token_response.rb +46 -2
  234. data/lib/fastly/models/automation_token_role.rb +227 -0
  235. data/lib/fastly/models/automation_token_unversioned_error.rb +225 -0
  236. data/lib/fastly/models/automation_token_unversioned_error_response.rb +219 -0
  237. data/lib/fastly/models/automation_token_workspace.rb +237 -0
  238. data/lib/fastly/models/automation_token_workspaces_meta.rb +242 -0
  239. data/lib/fastly/models/automation_token_workspaces_response.rb +253 -0
  240. data/lib/fastly/models/bot_management_action.rb +257 -0
  241. data/lib/fastly/models/bot_management_bot.rb +222 -0
  242. data/lib/fastly/models/bot_management_bot_action.rb +257 -0
  243. data/lib/fastly/models/bot_management_bot_response.rb +259 -0
  244. data/lib/fastly/models/bot_management_bot_response_extra.rb +237 -0
  245. data/lib/fastly/models/bot_management_bots_response.rb +238 -0
  246. data/lib/fastly/models/bot_management_categories_response.rb +238 -0
  247. data/lib/fastly/models/bot_management_category.rb +222 -0
  248. data/lib/fastly/models/bot_management_category_response.rb +269 -0
  249. data/lib/fastly/models/bot_management_category_response_extra.rb +247 -0
  250. data/lib/fastly/models/bot_management_error.rb +248 -0
  251. data/lib/fastly/models/bot_management_invalid_request_error.rb +291 -0
  252. data/lib/fastly/models/bot_management_invalid_request_error_extra.rb +283 -0
  253. data/lib/fastly/models/bot_management_meta.rb +239 -0
  254. data/lib/fastly/models/bot_management_not_allowed_error.rb +287 -0
  255. data/lib/fastly/models/bot_management_not_allowed_error_extra.rb +259 -0
  256. data/lib/fastly/models/bot_management_not_authenticated_error.rb +287 -0
  257. data/lib/fastly/models/bot_management_not_authenticated_error_extra.rb +259 -0
  258. data/lib/fastly/models/bot_management_not_found_error.rb +287 -0
  259. data/lib/fastly/models/bot_management_not_found_error_extra.rb +259 -0
  260. data/lib/fastly/models/bot_management_protection_mode.rb +36 -0
  261. data/lib/fastly/models/bot_management_rate_limit_error.rb +287 -0
  262. data/lib/fastly/models/bot_management_rate_limit_error_extra.rb +259 -0
  263. data/lib/fastly/models/bot_management_workspace.rb +276 -0
  264. data/lib/fastly/models/bot_management_workspace_bot_response.rb +275 -0
  265. data/lib/fastly/models/bot_management_workspace_bot_response_extra.rb +222 -0
  266. data/lib/fastly/models/bot_management_workspace_bots_response.rb +238 -0
  267. data/lib/fastly/models/bot_management_workspace_response.rb +354 -0
  268. data/lib/fastly/models/bot_management_workspace_response_extra.rb +264 -0
  269. data/lib/fastly/models/bot_management_workspaces_response.rb +238 -0
  270. data/lib/fastly/models/bot_request_metrics_data_item.rb +278 -0
  271. data/lib/fastly/models/bot_request_metrics_metadata.rb +258 -0
  272. data/lib/fastly/models/bot_request_metrics_response.rb +228 -0
  273. data/lib/fastly/models/bulk_update_dictionary_item.rb +1 -1
  274. data/lib/fastly/models/ddos_protection_request_enable_mode.rb +2 -2
  275. data/lib/fastly/models/ddos_protection_request_update_configuration.rb +2 -2
  276. data/lib/fastly/models/ddos_protection_rule.rb +1 -1
  277. data/lib/fastly/models/ddos_protection_rule_all_of.rb +1 -1
  278. data/lib/fastly/models/ddos_protection_rule_patch.rb +1 -1
  279. data/lib/fastly/models/ddos_protection_rule_with_stats.rb +1 -1
  280. data/lib/fastly/models/dictionary_item.rb +1 -1
  281. data/lib/fastly/models/dictionary_item_response.rb +1 -1
  282. data/lib/fastly/models/event_attributes.rb +2 -2
  283. data/lib/fastly/models/network_protect_conflict.rb +299 -0
  284. data/lib/fastly/models/network_protect_conflict_error.rb +228 -0
  285. data/lib/fastly/models/network_protect_endpoint.rb +266 -0
  286. data/lib/fastly/models/network_protect_endpoint_create.rb +266 -0
  287. data/lib/fastly/models/network_protect_endpoint_policy.rb +255 -0
  288. data/lib/fastly/models/network_protect_endpoint_response.rb +340 -0
  289. data/lib/fastly/models/network_protect_endpoint_response_fields.rb +274 -0
  290. data/lib/fastly/models/network_protect_endpoint_update.rb +251 -0
  291. data/lib/fastly/models/network_protect_endpoints_response.rb +239 -0
  292. data/lib/fastly/models/network_protect_error_detail.rb +238 -0
  293. data/lib/fastly/models/{automation_token_create_request_attributes.rb → network_protect_invalid_request.rb} +63 -75
  294. data/lib/fastly/models/network_protect_list_meta.rb +263 -0
  295. data/lib/fastly/models/network_protect_loa_status.rb +36 -0
  296. data/lib/fastly/models/network_protect_network.rb +363 -0
  297. data/lib/fastly/models/network_protect_network_create.rb +340 -0
  298. data/lib/fastly/models/network_protect_network_response.rb +477 -0
  299. data/lib/fastly/models/network_protect_network_response_fields.rb +314 -0
  300. data/lib/fastly/models/network_protect_network_update.rb +329 -0
  301. data/lib/fastly/models/network_protect_networks_response.rb +239 -0
  302. data/lib/fastly/models/network_protect_policy_endpoint.rb +307 -0
  303. data/lib/fastly/models/network_protect_prefix_list.rb +282 -0
  304. data/lib/fastly/models/network_protect_prefix_list_create.rb +301 -0
  305. data/lib/fastly/models/network_protect_prefix_list_family.rb +35 -0
  306. data/lib/fastly/models/network_protect_prefix_list_response.rb +356 -0
  307. data/lib/fastly/models/network_protect_prefix_list_response_fields.rb +274 -0
  308. data/lib/fastly/models/network_protect_prefix_list_update.rb +269 -0
  309. data/lib/fastly/models/network_protect_prefix_lists_response.rb +239 -0
  310. data/lib/fastly/models/network_protect_region.rb +34 -0
  311. data/lib/fastly/models/network_protect_roa_status.rb +37 -0
  312. data/lib/fastly/models/network_protect_rule.rb +372 -0
  313. data/lib/fastly/models/network_protect_rule_action.rb +35 -0
  314. data/lib/fastly/models/network_protect_rule_destination_ports.rb +208 -0
  315. data/lib/fastly/models/network_protect_rule_ip_protocol.rb +37 -0
  316. data/lib/fastly/models/network_protect_rule_match_destination_ip.rb +223 -0
  317. data/lib/fastly/models/network_protect_rule_match_destination_ports.rb +222 -0
  318. data/lib/fastly/models/network_protect_rule_match_ip_protocol.rb +222 -0
  319. data/lib/fastly/models/network_protect_rule_match_source_ports.rb +222 -0
  320. data/lib/fastly/models/network_protect_rule_match_source_prefix_list.rb +244 -0
  321. data/lib/fastly/models/network_protect_rule_response.rb +329 -0
  322. data/lib/fastly/models/network_protect_rule_set.rb +258 -0
  323. data/lib/fastly/models/network_protect_rule_set_create.rb +249 -0
  324. data/lib/fastly/models/network_protect_rule_set_default_action.rb +35 -0
  325. data/lib/fastly/models/network_protect_rule_set_response.rb +332 -0
  326. data/lib/fastly/models/network_protect_rule_set_response_fields.rb +274 -0
  327. data/lib/fastly/models/network_protect_rule_set_update.rb +244 -0
  328. data/lib/fastly/models/network_protect_rule_sets_response.rb +239 -0
  329. data/lib/fastly/models/network_protect_rule_source_ports.rb +208 -0
  330. data/lib/fastly/models/network_protect_rule_timestamps.rb +228 -0
  331. data/lib/fastly/models/platform_values.rb +3568 -137
  332. data/lib/fastly/models/realtime_entry_aggregated.rb +164 -4
  333. data/lib/fastly/models/realtime_entry_datacenter.rb +164 -4
  334. data/lib/fastly/models/realtime_measurements.rb +164 -4
  335. data/lib/fastly/models/results.rb +161 -1
  336. data/lib/fastly/version.rb +1 -1
  337. data/lib/fastly.rb +143 -1
  338. data/sig.json +1 -1
  339. metadata +288 -4
  340. data/docs/AutomationTokenCreateRequestAttributes.md +0 -15
@@ -0,0 +1,477 @@
1
+ =begin
2
+ #Fastly API
3
+
4
+ #Via the Fastly API you can perform any of the operations that are possible within the management console, including creating services, domains, and backends, configuring rules or uploading your own application code, as well as account operations such as user administration and billing reports. The API is organized into collections of endpoints that allow manipulation of objects related to Fastly services and accounts. For the most accurate and up-to-date API reference content, visit our [Developer Hub](https://www.fastly.com/documentation/reference/api/)
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: oss@fastly.com
8
+
9
+ =end
10
+
11
+ require 'date'
12
+ require 'time'
13
+
14
+ module Fastly
15
+ class ArcVirtualKeyResponse
16
+ # A display name for the virtual key.
17
+ attr_accessor :name
18
+
19
+ # The unique identifier of the virtual key.
20
+ attr_accessor :id
21
+
22
+ # The type of the resource.
23
+ attr_accessor :type
24
+
25
+ # The ID of the user who created the key.
26
+ attr_accessor :user_id
27
+
28
+ # The date and time the key was created, in RFC 3339 format.
29
+ attr_accessor :created_at
30
+
31
+ # The date and time the key was last updated, in RFC 3339 format.
32
+ attr_accessor :updated_at
33
+
34
+ # The date and time the key expires, in RFC 3339 format. Omit for a key that doesn't expire.
35
+ attr_accessor :expires_at
36
+
37
+ # Whether AI Firewall security is enabled for requests made with this key.
38
+ attr_accessor :security_enabled
39
+
40
+ # The action AI Firewall takes when it detects a violation on a request made with this key. Only meaningful when `security_enabled` is `true`.
41
+ attr_accessor :security_action
42
+
43
+ # The requests-per-minute limit for this key. Omit for no limit.
44
+ attr_accessor :rpm_limit
45
+
46
+ # The tokens-per-minute limit for this key. Omit for no limit.
47
+ attr_accessor :tpm_limit
48
+
49
+ # The display name of the user who created the key.
50
+ attr_accessor :created_by
51
+
52
+ # The date and time the key was last used to make a request, in RFC 3339 format. `null` if the key has never been used.
53
+ attr_accessor :last_used_at
54
+
55
+ # The date and time the key was deleted, in RFC 3339 format. `null` unless the key was deleted and `include_deleted` was used to retrieve it.
56
+ attr_accessor :deleted_at
57
+
58
+ # Whether a spend limit is enabled for this key.
59
+ attr_accessor :spend_limit_enabled
60
+
61
+ # The date and time `spend_limit_enabled` was last set to `true`, in RFC 3339 format. `null` if the spend limit has never been enabled. This timestamp is not cleared when `spend_limit_enabled` is later set back to `false`, so it can be non-null even when the spend limit is currently disabled.
62
+ attr_accessor :spend_limit_enabled_on
63
+
64
+ class EnumAttributeValidator
65
+ attr_reader :datatype
66
+ attr_reader :allowable_values
67
+
68
+ def initialize(datatype, allowable_values)
69
+ @allowable_values = allowable_values.map do |value|
70
+ case datatype.to_s
71
+ when /Integer/i
72
+ value.to_i
73
+ when /Float/i
74
+ value.to_f
75
+ else
76
+ value
77
+ end
78
+ end
79
+ end
80
+
81
+ def valid?(value)
82
+ !value || allowable_values.include?(value)
83
+ end
84
+ end
85
+
86
+ # Attribute mapping from ruby-style variable name to JSON key.
87
+ def self.attribute_map
88
+ {
89
+ :'name' => :'name',
90
+ :'id' => :'id',
91
+ :'type' => :'type',
92
+ :'user_id' => :'user_id',
93
+ :'created_at' => :'created_at',
94
+ :'updated_at' => :'updated_at',
95
+ :'expires_at' => :'expires_at',
96
+ :'security_enabled' => :'security_enabled',
97
+ :'security_action' => :'security_action',
98
+ :'rpm_limit' => :'rpm_limit',
99
+ :'tpm_limit' => :'tpm_limit',
100
+ :'created_by' => :'created_by',
101
+ :'last_used_at' => :'last_used_at',
102
+ :'deleted_at' => :'deleted_at',
103
+ :'spend_limit_enabled' => :'spend_limit_enabled',
104
+ :'spend_limit_enabled_on' => :'spend_limit_enabled_on'
105
+ }
106
+ end
107
+
108
+ # Returns all the JSON keys this model knows about
109
+ def self.acceptable_attributes
110
+ attribute_map.values
111
+ end
112
+
113
+ # Attribute type mapping.
114
+ def self.fastly_types
115
+ {
116
+ :'name' => :'String',
117
+ :'id' => :'String',
118
+ :'type' => :'String',
119
+ :'user_id' => :'String',
120
+ :'created_at' => :'Time',
121
+ :'updated_at' => :'Time',
122
+ :'expires_at' => :'Time',
123
+ :'security_enabled' => :'Boolean',
124
+ :'security_action' => :'String',
125
+ :'rpm_limit' => :'Integer',
126
+ :'tpm_limit' => :'Integer',
127
+ :'created_by' => :'String',
128
+ :'last_used_at' => :'Time',
129
+ :'deleted_at' => :'Time',
130
+ :'spend_limit_enabled' => :'Boolean',
131
+ :'spend_limit_enabled_on' => :'Time'
132
+ }
133
+ end
134
+
135
+ # List of attributes with nullable: true
136
+ def self.fastly_nullable
137
+ Set.new([
138
+ :'expires_at',
139
+ :'rpm_limit',
140
+ :'tpm_limit',
141
+ :'last_used_at',
142
+ :'deleted_at',
143
+ :'spend_limit_enabled_on'
144
+ ])
145
+ end
146
+
147
+ # List of class defined in allOf (OpenAPI v3)
148
+ def self.fastly_all_of
149
+ [
150
+ :'ArcVirtualKey',
151
+ :'ArcVirtualKeyResponseExtra'
152
+ ]
153
+ end
154
+
155
+ # Initializes the object
156
+ # @param [Hash] attributes Model attributes in the form of hash
157
+ def initialize(attributes = {})
158
+ if (!attributes.is_a?(Hash))
159
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Fastly::ArcVirtualKeyResponse` initialize method"
160
+ end
161
+
162
+ # check to see if the attribute exists and convert string to symbol for hash key
163
+ attributes = attributes.each_with_object({}) { |(k, v), h|
164
+ if (!self.class.attribute_map.key?(k.to_sym))
165
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Fastly::ArcVirtualKeyResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
166
+ end
167
+ h[k.to_sym] = v
168
+ }
169
+
170
+ if attributes.key?(:'name')
171
+ self.name = attributes[:'name']
172
+ end
173
+
174
+ if attributes.key?(:'id')
175
+ self.id = attributes[:'id']
176
+ end
177
+
178
+ if attributes.key?(:'type')
179
+ self.type = attributes[:'type']
180
+ end
181
+
182
+ if attributes.key?(:'user_id')
183
+ self.user_id = attributes[:'user_id']
184
+ end
185
+
186
+ if attributes.key?(:'created_at')
187
+ self.created_at = attributes[:'created_at']
188
+ end
189
+
190
+ if attributes.key?(:'updated_at')
191
+ self.updated_at = attributes[:'updated_at']
192
+ end
193
+
194
+ if attributes.key?(:'expires_at')
195
+ self.expires_at = attributes[:'expires_at']
196
+ end
197
+
198
+ if attributes.key?(:'security_enabled')
199
+ self.security_enabled = attributes[:'security_enabled']
200
+ else
201
+ self.security_enabled = false
202
+ end
203
+
204
+ if attributes.key?(:'security_action')
205
+ self.security_action = attributes[:'security_action']
206
+ end
207
+
208
+ if attributes.key?(:'rpm_limit')
209
+ self.rpm_limit = attributes[:'rpm_limit']
210
+ end
211
+
212
+ if attributes.key?(:'tpm_limit')
213
+ self.tpm_limit = attributes[:'tpm_limit']
214
+ end
215
+
216
+ if attributes.key?(:'created_by')
217
+ self.created_by = attributes[:'created_by']
218
+ end
219
+
220
+ if attributes.key?(:'last_used_at')
221
+ self.last_used_at = attributes[:'last_used_at']
222
+ end
223
+
224
+ if attributes.key?(:'deleted_at')
225
+ self.deleted_at = attributes[:'deleted_at']
226
+ end
227
+
228
+ if attributes.key?(:'spend_limit_enabled')
229
+ self.spend_limit_enabled = attributes[:'spend_limit_enabled']
230
+ end
231
+
232
+ if attributes.key?(:'spend_limit_enabled_on')
233
+ self.spend_limit_enabled_on = attributes[:'spend_limit_enabled_on']
234
+ end
235
+ end
236
+
237
+ # Show invalid properties with the reasons. Usually used together with valid?
238
+ # @return Array for valid properties with the reasons
239
+ def list_invalid_properties
240
+ invalid_properties = Array.new
241
+ if @name.nil?
242
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
243
+ end
244
+
245
+ if @id.nil?
246
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
247
+ end
248
+
249
+ if @type.nil?
250
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
251
+ end
252
+
253
+ if @user_id.nil?
254
+ invalid_properties.push('invalid value for "user_id", user_id cannot be nil.')
255
+ end
256
+
257
+ if @created_at.nil?
258
+ invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
259
+ end
260
+
261
+ if @updated_at.nil?
262
+ invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
263
+ end
264
+
265
+ if !@rpm_limit.nil? && @rpm_limit < 1
266
+ invalid_properties.push('invalid value for "rpm_limit", must be greater than or equal to 1.')
267
+ end
268
+
269
+ if !@tpm_limit.nil? && @tpm_limit < 1
270
+ invalid_properties.push('invalid value for "tpm_limit", must be greater than or equal to 1.')
271
+ end
272
+
273
+ invalid_properties
274
+ end
275
+
276
+ # Check to see if the all the properties in the model are valid
277
+ # @return true if the model is valid
278
+ def valid?
279
+ return false if @name.nil?
280
+ return false if @id.nil?
281
+ return false if @type.nil?
282
+ return false if @user_id.nil?
283
+ return false if @created_at.nil?
284
+ return false if @updated_at.nil?
285
+ security_action_validator = EnumAttributeValidator.new('String', ["log", "block", "replace"])
286
+ return false unless security_action_validator.valid?(@security_action)
287
+ return false if !@rpm_limit.nil? && @rpm_limit < 1
288
+ return false if !@tpm_limit.nil? && @tpm_limit < 1
289
+ true
290
+ end
291
+
292
+ # Custom attribute writer method checking allowed values (enum).
293
+ # @param [Object] security_action Object to be assigned
294
+ def security_action=(security_action)
295
+ validator = EnumAttributeValidator.new('String', ["log", "block", "replace"])
296
+ unless validator.valid?(security_action)
297
+ fail ArgumentError, "invalid value for \"security_action\", must be one of #{validator.allowable_values}."
298
+ end
299
+ @security_action = security_action
300
+ end
301
+
302
+ # Custom attribute writer method with validation
303
+ # @param [Object] rpm_limit Value to be assigned
304
+ def rpm_limit=(rpm_limit)
305
+ if !rpm_limit.nil? && rpm_limit < 1
306
+ fail ArgumentError, 'invalid value for "rpm_limit", must be greater than or equal to 1.'
307
+ end
308
+
309
+ @rpm_limit = rpm_limit
310
+ end
311
+
312
+ # Custom attribute writer method with validation
313
+ # @param [Object] tpm_limit Value to be assigned
314
+ def tpm_limit=(tpm_limit)
315
+ if !tpm_limit.nil? && tpm_limit < 1
316
+ fail ArgumentError, 'invalid value for "tpm_limit", must be greater than or equal to 1.'
317
+ end
318
+
319
+ @tpm_limit = tpm_limit
320
+ end
321
+
322
+ # Checks equality by comparing each attribute.
323
+ # @param [Object] Object to be compared
324
+ def ==(o)
325
+ return true if self.equal?(o)
326
+ self.class == o.class &&
327
+ name == o.name &&
328
+ id == o.id &&
329
+ type == o.type &&
330
+ user_id == o.user_id &&
331
+ created_at == o.created_at &&
332
+ updated_at == o.updated_at &&
333
+ expires_at == o.expires_at &&
334
+ security_enabled == o.security_enabled &&
335
+ security_action == o.security_action &&
336
+ rpm_limit == o.rpm_limit &&
337
+ tpm_limit == o.tpm_limit &&
338
+ created_by == o.created_by &&
339
+ last_used_at == o.last_used_at &&
340
+ deleted_at == o.deleted_at &&
341
+ spend_limit_enabled == o.spend_limit_enabled &&
342
+ spend_limit_enabled_on == o.spend_limit_enabled_on
343
+ end
344
+
345
+ # @see the `==` method
346
+ # @param [Object] Object to be compared
347
+ def eql?(o)
348
+ self == o
349
+ end
350
+
351
+ # Calculates hash code according to all attributes.
352
+ # @return [Integer] Hash code
353
+ def hash
354
+ [name, id, type, user_id, created_at, updated_at, expires_at, security_enabled, security_action, rpm_limit, tpm_limit, created_by, last_used_at, deleted_at, spend_limit_enabled, spend_limit_enabled_on].hash
355
+ end
356
+
357
+ # Builds the object from hash
358
+ # @param [Hash] attributes Model attributes in the form of hash
359
+ # @return [Object] Returns the model itself
360
+ def self.build_from_hash(attributes)
361
+ new.build_from_hash(attributes)
362
+ end
363
+
364
+ # Builds the object from hash
365
+ # @param [Hash] attributes Model attributes in the form of hash
366
+ # @return [Object] Returns the model itself
367
+ def build_from_hash(attributes)
368
+ return nil unless attributes.is_a?(Hash)
369
+ self.class.fastly_types.each_pair do |key, type|
370
+ if attributes[self.class.attribute_map[key]].nil? && self.class.fastly_nullable.include?(key)
371
+ self.send("#{key}=", nil)
372
+ elsif type =~ /\AArray<(.*)>/i
373
+ # check to ensure the input is an array given that the attribute
374
+ # is documented as an array but the input is not
375
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
376
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
377
+ end
378
+ elsif !attributes[self.class.attribute_map[key]].nil?
379
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
380
+ end
381
+ end
382
+
383
+ self
384
+ end
385
+
386
+ # Deserializes the data based on type
387
+ # @param string type Data type
388
+ # @param string value Value to be deserialized
389
+ # @return [Object] Deserialized data
390
+ def _deserialize(type, value)
391
+ case type.to_sym
392
+ when :Time
393
+ Time.parse(value)
394
+ when :Date
395
+ Date.parse(value)
396
+ when :String
397
+ value.to_s
398
+ when :Integer
399
+ value.to_i
400
+ when :Float
401
+ value.to_f
402
+ when :Boolean
403
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
404
+ true
405
+ else
406
+ false
407
+ end
408
+ when :Object
409
+ # generic object (usually a Hash), return directly
410
+ value
411
+ when /\AArray<(?<inner_type>.+)>\z/
412
+ inner_type = Regexp.last_match[:inner_type]
413
+ value.map { |v| _deserialize(inner_type, v) }
414
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
415
+ k_type = Regexp.last_match[:k_type]
416
+ v_type = Regexp.last_match[:v_type]
417
+ {}.tap do |hash|
418
+ value.each do |k, v|
419
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
420
+ end
421
+ end
422
+ else # model
423
+ # models (e.g. Pet) or oneOf
424
+ klass = Fastly.const_get(type)
425
+ klass.respond_to?(:fastly_one_of) ? klass.build(value) : klass.build_from_hash(value)
426
+ end
427
+ end
428
+
429
+ # Returns the string representation of the object
430
+ # @return [String] String presentation of the object
431
+ def to_s
432
+ to_hash.to_s
433
+ end
434
+
435
+ # to_body is an alias to to_hash (backward compatibility)
436
+ # @return [Hash] Returns the object in the form of hash
437
+ def to_body
438
+ to_hash
439
+ end
440
+
441
+ # Returns the object in the form of hash
442
+ # @return [Hash] Returns the object in the form of hash
443
+ def to_hash
444
+ hash = {}
445
+ self.class.attribute_map.each_pair do |attr, param|
446
+ value = self.send(attr)
447
+ if value.nil?
448
+ is_nullable = self.class.fastly_nullable.include?(attr)
449
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
450
+ end
451
+
452
+ hash[param] = _to_hash(value)
453
+ end
454
+ hash
455
+ end
456
+
457
+ # Outputs non-array value in the form of hash
458
+ # For object, use to_hash. Otherwise, just return the value
459
+ # @param [Object] value Any valid value
460
+ # @return [Hash] Returns the value in the form of hash
461
+ def _to_hash(value)
462
+ if value.is_a?(Array)
463
+ value.compact.map { |v| _to_hash(v) }
464
+ elsif value.is_a?(Hash)
465
+ {}.tap do |hash|
466
+ value.each { |k, v| hash[k] = _to_hash(v) }
467
+ end
468
+ elsif value.respond_to? :to_hash
469
+ value.to_hash
470
+ else
471
+ value
472
+ end
473
+ end
474
+
475
+ end
476
+
477
+ end