fastly 8.10.0 → 10.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 (378) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +51 -2
  3. data/Gemfile.lock +3 -3
  4. data/README.md +63 -45
  5. data/docs/AccessKey.md +12 -0
  6. data/docs/AccessKeyResponse.md +15 -0
  7. data/docs/AclsInComputeApi.md +4 -4
  8. data/docs/AiAcceleratorResponseBodyEnable.md +12 -0
  9. data/docs/AiAcceleratorResponseCustomer.md +10 -0
  10. data/docs/AiAcceleratorResponseCustomerCustomer.md +11 -0
  11. data/docs/AiAcceleratorResponseLinks.md +10 -0
  12. data/docs/AiAcceleratorResponseLinksLinks.md +10 -0
  13. data/docs/AiAcceleratorResponseProduct.md +10 -0
  14. data/docs/AiAcceleratorResponseProductProduct.md +11 -0
  15. data/docs/Backend.md +1 -1
  16. data/docs/BackendApi.md +4 -4
  17. data/docs/BackendResponse.md +1 -1
  18. data/docs/BillingUsageMetricsApi.md +17 -23
  19. data/docs/BotManagementResponseBodyEnable.md +12 -0
  20. data/docs/BotManagementResponseLinks.md +10 -0
  21. data/docs/BotManagementResponseLinksLinks.md +11 -0
  22. data/docs/BotManagementResponseProduct.md +10 -0
  23. data/docs/BotManagementResponseProductProduct.md +11 -0
  24. data/docs/BotManagementResponseService.md +10 -0
  25. data/docs/{EnabledProductResponseService.md → BotManagementResponseServiceService.md} +1 -1
  26. data/docs/BrotliCompressionResponseBodyEnable.md +12 -0
  27. data/docs/BrotliCompressionResponseLinks.md +10 -0
  28. data/docs/BrotliCompressionResponseLinksLinks.md +11 -0
  29. data/docs/BrotliCompressionResponseProduct.md +10 -0
  30. data/docs/BrotliCompressionResponseProductProduct.md +11 -0
  31. data/docs/BrotliCompressionResponseService.md +10 -0
  32. data/docs/ComputeAclList.md +11 -0
  33. data/docs/{LegacyWafTag.md → ComputeAclListMeta.md} +2 -2
  34. data/docs/ComputeAclLookup.md +1 -2
  35. data/docs/{InlineResponse2004Meta.md → ComputeAclUpdate.md} +2 -3
  36. data/docs/DdosProtectionRequestUpdateConfiguration.md +10 -0
  37. data/docs/DdosProtectionResponseConfiguration.md +10 -0
  38. data/docs/DdosProtectionResponseConfigurationConfiguration.md +10 -0
  39. data/docs/DdosProtectionResponseConfigure.md +13 -0
  40. data/docs/DdosProtectionResponseEnable.md +12 -0
  41. data/docs/DdosProtectionResponseLinks.md +10 -0
  42. data/docs/DdosProtectionResponseLinksLinks.md +11 -0
  43. data/docs/DdosProtectionResponseProduct.md +10 -0
  44. data/docs/DdosProtectionResponseProductProduct.md +11 -0
  45. data/docs/DdosProtectionResponseService.md +10 -0
  46. data/docs/DimensionAttributesCountryStats.md +12 -0
  47. data/docs/DimensionAttributesRate.md +10 -0
  48. data/docs/DimensionBrowser.md +10 -0
  49. data/docs/DimensionContentType.md +10 -0
  50. data/docs/DimensionCountry.md +10 -0
  51. data/docs/DimensionDevice.md +10 -0
  52. data/docs/DimensionOs.md +10 -0
  53. data/docs/DimensionResponse.md +10 -0
  54. data/docs/DimensionStatusCode.md +10 -0
  55. data/docs/DimensionUrl.md +10 -0
  56. data/docs/DomainInspectorMeasurements.md +2 -0
  57. data/docs/DomainInspectorResponseBodyEnable.md +12 -0
  58. data/docs/DomainInspectorResponseLinks.md +10 -0
  59. data/docs/DomainInspectorResponseLinksLinks.md +11 -0
  60. data/docs/DomainInspectorResponseProduct.md +10 -0
  61. data/docs/{InlineResponse2003Meta.md → DomainInspectorResponseProductProduct.md} +3 -3
  62. data/docs/DomainInspectorResponseService.md +10 -0
  63. data/docs/FanoutResponseBodyEnable.md +12 -0
  64. data/docs/FanoutResponseLinks.md +10 -0
  65. data/docs/{EnabledProductResponseLinks.md → FanoutResponseLinksLinks.md} +1 -1
  66. data/docs/FanoutResponseProduct.md +10 -0
  67. data/docs/{EnabledProductResponseProduct.md → FanoutResponseProductProduct.md} +1 -1
  68. data/docs/FanoutResponseService.md +10 -0
  69. data/docs/FilterFieldItem.md +12 -0
  70. data/docs/GetLogInsightsResponse.md +11 -0
  71. data/docs/GetLogRecordsResponse.md +11 -0
  72. data/docs/GetLogRecordsResponseMeta.md +10 -0
  73. data/docs/GetLogRecordsResponseMetaFilters.md +16 -0
  74. data/docs/ImageOptimizerResponseBodyEnable.md +12 -0
  75. data/docs/ImageOptimizerResponseLinks.md +10 -0
  76. data/docs/ImageOptimizerResponseLinksLinks.md +11 -0
  77. data/docs/ImageOptimizerResponseProduct.md +10 -0
  78. data/docs/ImageOptimizerResponseProductProduct.md +11 -0
  79. data/docs/ImageOptimizerResponseService.md +10 -0
  80. data/docs/InlineResponse2003.md +2 -2
  81. data/docs/InlineResponse2004.md +1 -1
  82. data/docs/InsightsApi.md +69 -0
  83. data/docs/KvStoreApi.md +30 -30
  84. data/docs/{Batch.md → KvStoreBatchResponse.md} +2 -2
  85. data/docs/{BatchErrors.md → KvStoreBatchResponseErrors.md} +4 -4
  86. data/docs/{StoreResponse.md → KvStoreDetails.md} +2 -2
  87. data/docs/KvStoreItemApi.md +55 -50
  88. data/docs/KvStoreRequestCreate.md +10 -0
  89. data/docs/KvStoreUpsertBatch.md +14 -0
  90. data/docs/LogExplorerApi.md +65 -0
  91. data/docs/LogExplorerInsightsResponseBodyEnable.md +12 -0
  92. data/docs/LogExplorerInsightsResponseLinks.md +10 -0
  93. data/docs/LogExplorerInsightsResponseLinksLinks.md +11 -0
  94. data/docs/LogExplorerInsightsResponseProduct.md +10 -0
  95. data/docs/LogExplorerInsightsResponseProductProduct.md +11 -0
  96. data/docs/LogExplorerInsightsResponseService.md +10 -0
  97. data/docs/LogInsights.md +12 -0
  98. data/docs/LogInsightsDimensionAttributes.md +49 -0
  99. data/docs/LogInsightsDimensions.md +61 -0
  100. data/docs/LogInsightsMeta.md +10 -0
  101. data/docs/LogInsightsMetaFilter.md +14 -0
  102. data/docs/LogInsightsValues.md +65 -0
  103. data/docs/{ReadOnlyServiceId.md → LogPropertyServiceId.md} +1 -1
  104. data/docs/LogRecord.md +37 -0
  105. data/docs/LoggingGrafanacloudlogsAdditional.md +14 -0
  106. data/docs/LoggingGrafanacloudlogsApi.md +259 -0
  107. data/docs/LoggingGrafanacloudlogsResponse.md +23 -0
  108. data/docs/{ReadOnlyVersion.md → NgwafRequestEnable.md} +2 -1
  109. data/docs/NgwafRequestUpdateConfiguration.md +11 -0
  110. data/docs/NgwafResponseConfiguration.md +10 -0
  111. data/docs/{ConfiguredProductResponseConfiguration.md → NgwafResponseConfigurationConfiguration.md} +2 -2
  112. data/docs/NgwafResponseConfigure.md +13 -0
  113. data/docs/NgwafResponseEnable.md +12 -0
  114. data/docs/NgwafResponseLinks.md +10 -0
  115. data/docs/{ConfiguredProductResponseLinks.md → NgwafResponseLinksLinks.md} +1 -1
  116. data/docs/NgwafResponseProduct.md +10 -0
  117. data/docs/{ConfiguredProductResponseProduct.md → NgwafResponseProductProduct.md} +1 -1
  118. data/docs/NgwafResponseService.md +10 -0
  119. data/docs/ObjectStorageAccessKeysApi.md +163 -0
  120. data/docs/ObjectStorageResponseBodyEnable.md +12 -0
  121. data/docs/ObjectStorageResponseCustomer.md +10 -0
  122. data/docs/ObjectStorageResponseLinks.md +10 -0
  123. data/docs/ObjectStorageResponseLinksLinks.md +10 -0
  124. data/docs/ObjectStorageResponseProduct.md +10 -0
  125. data/docs/ObjectStorageResponseProductProduct.md +11 -0
  126. data/docs/OriginInspectorMeasurements.md +4 -0
  127. data/docs/OriginInspectorResponseBodyEnable.md +12 -0
  128. data/docs/OriginInspectorResponseLinks.md +10 -0
  129. data/docs/OriginInspectorResponseLinksLinks.md +11 -0
  130. data/docs/OriginInspectorResponseProduct.md +10 -0
  131. data/docs/OriginInspectorResponseProductProduct.md +11 -0
  132. data/docs/OriginInspectorResponseService.md +10 -0
  133. data/docs/OriginInspectorValues.md +4 -0
  134. data/docs/ProductAiAcceleratorApi.md +115 -0
  135. data/docs/ProductBotManagementApi.md +130 -0
  136. data/docs/ProductBrotliCompressionApi.md +130 -0
  137. data/docs/ProductDdosProtectionApi.md +208 -0
  138. data/docs/ProductDomainInspectorApi.md +130 -0
  139. data/docs/ProductFanoutApi.md +130 -0
  140. data/docs/ProductImageOptimizerApi.md +130 -0
  141. data/docs/ProductLogExplorerInsightsApi.md +130 -0
  142. data/docs/ProductNgwafApi.md +210 -0
  143. data/docs/ProductObjectStorageApi.md +115 -0
  144. data/docs/ProductOriginInspectorApi.md +130 -0
  145. data/docs/ProductWebsocketsApi.md +130 -0
  146. data/docs/RealtimeEntryAggregated.md +18 -7
  147. data/docs/RealtimeMeasurements.md +18 -7
  148. data/docs/Results.md +18 -7
  149. data/docs/SnippetApi.md +15 -15
  150. data/docs/Usagemetric.md +18 -0
  151. data/docs/{Store.md → Usagemetrics.md} +2 -2
  152. data/docs/ValueField.md +59 -0
  153. data/docs/Values.md +2 -0
  154. data/docs/Values503Responses.md +12 -0
  155. data/docs/ValuesBandwidth.md +11 -0
  156. data/docs/ValuesBrowser.md +11 -0
  157. data/docs/ValuesCacheHitRatio.md +10 -0
  158. data/docs/ValuesCountryStats.md +12 -0
  159. data/docs/ValuesDuration.md +12 -0
  160. data/docs/ValuesMisses.md +10 -0
  161. data/docs/ValuesRate.md +10 -0
  162. data/docs/ValuesRequests.md +10 -0
  163. data/docs/ValuesStatusCodes.md +12 -0
  164. data/docs/WebsocketsResponseBodyEnable.md +12 -0
  165. data/docs/WebsocketsResponseLinks.md +10 -0
  166. data/docs/WebsocketsResponseLinksLinks.md +11 -0
  167. data/docs/WebsocketsResponseProduct.md +10 -0
  168. data/docs/WebsocketsResponseProductProduct.md +11 -0
  169. data/docs/WebsocketsResponseService.md +10 -0
  170. data/lib/fastly/api/acls_in_compute_api.rb +6 -6
  171. data/lib/fastly/api/backend_api.rb +4 -4
  172. data/lib/fastly/api/billing_usage_metrics_api.rb +46 -73
  173. data/lib/fastly/api/insights_api.rb +125 -0
  174. data/lib/fastly/api/kv_store_api.rb +53 -45
  175. data/lib/fastly/api/kv_store_item_api.rb +114 -99
  176. data/lib/fastly/api/log_explorer_api.rb +109 -0
  177. data/lib/fastly/api/logging_grafanacloudlogs_api.rb +471 -0
  178. data/lib/fastly/api/object_storage_access_keys_api.rb +263 -0
  179. data/lib/fastly/api/product_ai_accelerator_api.rb +186 -0
  180. data/lib/fastly/api/product_bot_management_api.rb +207 -0
  181. data/lib/fastly/api/product_brotli_compression_api.rb +207 -0
  182. data/lib/fastly/api/product_ddos_protection_api.rb +340 -0
  183. data/lib/fastly/api/product_domain_inspector_api.rb +207 -0
  184. data/lib/fastly/api/product_fanout_api.rb +207 -0
  185. data/lib/fastly/api/product_image_optimizer_api.rb +207 -0
  186. data/lib/fastly/api/product_log_explorer_insights_api.rb +207 -0
  187. data/lib/fastly/api/product_ngwaf_api.rb +347 -0
  188. data/lib/fastly/api/product_object_storage_api.rb +186 -0
  189. data/lib/fastly/api/product_origin_inspector_api.rb +207 -0
  190. data/lib/fastly/api/product_websockets_api.rb +207 -0
  191. data/lib/fastly/api/snippet_api.rb +35 -35
  192. data/lib/fastly/configuration.rb +308 -200
  193. data/lib/fastly/models/access_key.rb +248 -0
  194. data/lib/fastly/models/{legacy_waf_update_status.rb → access_key_response.rb} +48 -46
  195. data/lib/fastly/models/ai_accelerator_response_body_enable.rb +243 -0
  196. data/lib/fastly/models/ai_accelerator_response_customer.rb +216 -0
  197. data/lib/fastly/models/ai_accelerator_response_customer_customer.rb +227 -0
  198. data/lib/fastly/models/ai_accelerator_response_links.rb +216 -0
  199. data/lib/fastly/models/ai_accelerator_response_links_links.rb +217 -0
  200. data/lib/fastly/models/ai_accelerator_response_product.rb +216 -0
  201. data/lib/fastly/models/ai_accelerator_response_product_product.rb +227 -0
  202. data/lib/fastly/models/backend.rb +1 -1
  203. data/lib/fastly/models/backend_response.rb +1 -1
  204. data/lib/fastly/models/bot_management_response_body_enable.rb +243 -0
  205. data/lib/fastly/models/bot_management_response_links.rb +216 -0
  206. data/lib/fastly/models/bot_management_response_links_links.rb +227 -0
  207. data/lib/fastly/models/bot_management_response_product.rb +216 -0
  208. data/lib/fastly/models/bot_management_response_product_product.rb +227 -0
  209. data/lib/fastly/models/bot_management_response_service.rb +216 -0
  210. data/lib/fastly/models/{enabled_product_response_service.rb → bot_management_response_service_service.rb} +3 -3
  211. data/lib/fastly/models/brotli_compression_response_body_enable.rb +243 -0
  212. data/lib/fastly/models/brotli_compression_response_links.rb +216 -0
  213. data/lib/fastly/models/brotli_compression_response_links_links.rb +227 -0
  214. data/lib/fastly/models/brotli_compression_response_product.rb +216 -0
  215. data/lib/fastly/models/brotli_compression_response_product_product.rb +227 -0
  216. data/lib/fastly/models/brotli_compression_response_service.rb +216 -0
  217. data/lib/fastly/models/compute_acl_list.rb +228 -0
  218. data/lib/fastly/models/compute_acl_list_entries.rb +1 -1
  219. data/lib/fastly/models/compute_acl_list_meta.rb +218 -0
  220. data/lib/fastly/models/compute_acl_lookup.rb +3 -13
  221. data/lib/fastly/models/compute_acl_update.rb +219 -0
  222. data/lib/fastly/models/compute_acl_update_entry.rb +1 -1
  223. data/lib/fastly/models/ddos_protection_request_update_configuration.rb +256 -0
  224. data/lib/fastly/models/ddos_protection_response_configuration.rb +216 -0
  225. data/lib/fastly/models/ddos_protection_response_configuration_configuration.rb +217 -0
  226. data/lib/fastly/models/ddos_protection_response_configure.rb +253 -0
  227. data/lib/fastly/models/ddos_protection_response_enable.rb +243 -0
  228. data/lib/fastly/models/ddos_protection_response_links.rb +216 -0
  229. data/lib/fastly/models/ddos_protection_response_links_links.rb +227 -0
  230. data/lib/fastly/models/ddos_protection_response_product.rb +216 -0
  231. data/lib/fastly/models/ddos_protection_response_product_product.rb +227 -0
  232. data/lib/fastly/models/ddos_protection_response_service.rb +216 -0
  233. data/lib/fastly/models/dimension_attributes_country_stats.rb +237 -0
  234. data/lib/fastly/models/dimension_attributes_rate.rb +217 -0
  235. data/lib/fastly/models/dimension_browser.rb +217 -0
  236. data/lib/fastly/models/dimension_content_type.rb +217 -0
  237. data/lib/fastly/models/dimension_country.rb +217 -0
  238. data/lib/fastly/models/dimension_device.rb +217 -0
  239. data/lib/fastly/models/{store.rb → dimension_os.rb} +11 -11
  240. data/lib/fastly/models/{read_only_service_id.rb → dimension_response.rb} +15 -5
  241. data/lib/fastly/models/dimension_status_code.rb +217 -0
  242. data/lib/fastly/models/{legacy_waf_tag.rb → dimension_url.rb} +11 -11
  243. data/lib/fastly/models/domain_inspector_measurements.rb +21 -1
  244. data/lib/fastly/models/domain_inspector_response_body_enable.rb +243 -0
  245. data/lib/fastly/models/domain_inspector_response_links.rb +216 -0
  246. data/lib/fastly/models/domain_inspector_response_links_links.rb +227 -0
  247. data/lib/fastly/models/domain_inspector_response_product.rb +216 -0
  248. data/lib/fastly/models/domain_inspector_response_product_product.rb +227 -0
  249. data/lib/fastly/models/domain_inspector_response_service.rb +216 -0
  250. data/lib/fastly/models/fanout_response_body_enable.rb +243 -0
  251. data/lib/fastly/models/fanout_response_links.rb +216 -0
  252. data/lib/fastly/models/{enabled_product_response_links.rb → fanout_response_links_links.rb} +3 -3
  253. data/lib/fastly/models/fanout_response_product.rb +216 -0
  254. data/lib/fastly/models/{enabled_product_response_product.rb → fanout_response_product_product.rb} +3 -3
  255. data/lib/fastly/models/fanout_response_service.rb +216 -0
  256. data/lib/fastly/models/filter_field_item.rb +271 -0
  257. data/lib/fastly/models/{inline_response2004_meta.rb → get_log_insights_response.rb} +18 -16
  258. data/lib/fastly/models/get_log_records_response.rb +227 -0
  259. data/lib/fastly/models/get_log_records_response_meta.rb +216 -0
  260. data/lib/fastly/models/{legacy_waf_firewall.rb → get_log_records_response_meta_filters.rb} +80 -70
  261. data/lib/fastly/models/image_optimizer_response_body_enable.rb +243 -0
  262. data/lib/fastly/models/image_optimizer_response_links.rb +216 -0
  263. data/lib/fastly/models/image_optimizer_response_links_links.rb +227 -0
  264. data/lib/fastly/models/image_optimizer_response_product.rb +216 -0
  265. data/lib/fastly/models/image_optimizer_response_product_product.rb +227 -0
  266. data/lib/fastly/models/image_optimizer_response_service.rb +216 -0
  267. data/lib/fastly/models/inline_response2003.rb +2 -2
  268. data/lib/fastly/models/inline_response2004.rb +1 -1
  269. data/lib/fastly/models/{batch.rb → kv_store_batch_response.rb} +5 -5
  270. data/lib/fastly/models/{batch_errors.rb → kv_store_batch_response_errors.rb} +6 -6
  271. data/lib/fastly/models/{store_response.rb → kv_store_details.rb} +4 -4
  272. data/lib/fastly/models/{legacy_waf_configuration_set.rb → kv_store_request_create.rb} +10 -15
  273. data/lib/fastly/models/kv_store_upsert_batch.rb +269 -0
  274. data/lib/fastly/models/log_explorer_insights_response_body_enable.rb +243 -0
  275. data/lib/fastly/models/log_explorer_insights_response_links.rb +216 -0
  276. data/lib/fastly/models/log_explorer_insights_response_links_links.rb +227 -0
  277. data/lib/fastly/models/log_explorer_insights_response_product.rb +216 -0
  278. data/lib/fastly/models/log_explorer_insights_response_product_product.rb +227 -0
  279. data/lib/fastly/models/log_explorer_insights_response_service.rb +216 -0
  280. data/lib/fastly/models/log_insights.rb +234 -0
  281. data/lib/fastly/models/log_insights_dimension_attributes.rb +103 -0
  282. data/lib/fastly/models/log_insights_dimensions.rb +109 -0
  283. data/lib/fastly/models/log_insights_meta.rb +217 -0
  284. data/lib/fastly/models/{inline_response2003_meta.rb → log_insights_meta_filter.rb} +69 -13
  285. data/lib/fastly/models/log_insights_values.rb +111 -0
  286. data/lib/fastly/models/{read_only_version.rb → log_property_service_id.rb} +4 -3
  287. data/lib/fastly/models/log_record.rb +486 -0
  288. data/lib/fastly/models/logging_grafanacloudlogs_additional.rb +257 -0
  289. data/lib/fastly/models/logging_grafanacloudlogs_response.rb +408 -0
  290. data/lib/fastly/models/{set_workspace_id.rb → ngwaf_request_enable.rb} +9 -4
  291. data/lib/fastly/models/{set_configuration.rb → ngwaf_request_update_configuration.rb} +5 -5
  292. data/lib/fastly/models/ngwaf_response_configuration.rb +216 -0
  293. data/lib/fastly/models/{configured_product_response_configuration.rb → ngwaf_response_configuration_configuration.rb} +4 -4
  294. data/lib/fastly/models/{configured_product_response.rb → ngwaf_response_configure.rb} +17 -7
  295. data/lib/fastly/models/{enabled_product_response.rb → ngwaf_response_enable.rb} +15 -6
  296. data/lib/fastly/models/ngwaf_response_links.rb +216 -0
  297. data/lib/fastly/models/{configured_product_response_links.rb → ngwaf_response_links_links.rb} +3 -3
  298. data/lib/fastly/models/ngwaf_response_product.rb +216 -0
  299. data/lib/fastly/models/ngwaf_response_product_product.rb +227 -0
  300. data/lib/fastly/models/ngwaf_response_service.rb +216 -0
  301. data/lib/fastly/models/object_storage_response_body_enable.rb +243 -0
  302. data/lib/fastly/models/object_storage_response_customer.rb +216 -0
  303. data/lib/fastly/models/object_storage_response_links.rb +216 -0
  304. data/lib/fastly/models/object_storage_response_links_links.rb +217 -0
  305. data/lib/fastly/models/object_storage_response_product.rb +216 -0
  306. data/lib/fastly/models/object_storage_response_product_product.rb +227 -0
  307. data/lib/fastly/models/origin_inspector_measurements.rb +41 -1
  308. data/lib/fastly/models/origin_inspector_response_body_enable.rb +243 -0
  309. data/lib/fastly/models/origin_inspector_response_links.rb +216 -0
  310. data/lib/fastly/models/origin_inspector_response_links_links.rb +227 -0
  311. data/lib/fastly/models/origin_inspector_response_product.rb +216 -0
  312. data/lib/fastly/models/origin_inspector_response_product_product.rb +227 -0
  313. data/lib/fastly/models/origin_inspector_response_service.rb +216 -0
  314. data/lib/fastly/models/origin_inspector_values.rb +41 -1
  315. data/lib/fastly/models/realtime_entry_aggregated.rb +184 -74
  316. data/lib/fastly/models/realtime_measurements.rb +184 -74
  317. data/lib/fastly/models/results.rb +181 -71
  318. data/lib/fastly/models/schemas_snippet_response.rb +1 -0
  319. data/lib/fastly/models/snippet.rb +1 -0
  320. data/lib/fastly/models/snippet_common.rb +1 -0
  321. data/lib/fastly/models/snippet_response.rb +1 -0
  322. data/lib/fastly/models/snippet_response_post.rb +1 -0
  323. data/lib/fastly/models/snippet_with_dynamic_number.rb +1 -0
  324. data/lib/fastly/models/usagemetric.rb +297 -0
  325. data/lib/fastly/models/usagemetrics.rb +218 -0
  326. data/lib/fastly/models/value_field.rb +108 -0
  327. data/lib/fastly/models/values.rb +21 -1
  328. data/lib/fastly/models/{legacy_waf_rule_status.rb → values503_responses.rb} +25 -25
  329. data/lib/fastly/models/values_bandwidth.rb +227 -0
  330. data/lib/fastly/models/values_browser.rb +227 -0
  331. data/lib/fastly/models/values_cache_hit_ratio.rb +217 -0
  332. data/lib/fastly/models/values_country_stats.rb +237 -0
  333. data/lib/fastly/models/{legacy_waf_rule.rb → values_duration.rb} +25 -45
  334. data/lib/fastly/models/values_misses.rb +217 -0
  335. data/lib/fastly/models/values_rate.rb +217 -0
  336. data/lib/fastly/models/values_requests.rb +217 -0
  337. data/lib/fastly/models/values_status_codes.rb +237 -0
  338. data/lib/fastly/models/websockets_response_body_enable.rb +243 -0
  339. data/lib/fastly/models/websockets_response_links.rb +216 -0
  340. data/lib/fastly/models/websockets_response_links_links.rb +227 -0
  341. data/lib/fastly/models/websockets_response_product.rb +216 -0
  342. data/lib/fastly/models/{configured_product_response_product.rb → websockets_response_product_product.rb} +3 -3
  343. data/lib/fastly/models/websockets_response_service.rb +216 -0
  344. data/lib/fastly/version.rb +1 -1
  345. data/lib/fastly.rb +147 -35
  346. data/sig.json +1 -1
  347. metadata +299 -75
  348. data/docs/ConfiguredProductResponse.md +0 -13
  349. data/docs/EnabledProductResponse.md +0 -12
  350. data/docs/EnabledProductsApi.md +0 -220
  351. data/docs/LegacyWafConfigurationSet.md +0 -11
  352. data/docs/LegacyWafConfigurationSetsApi.md +0 -128
  353. data/docs/LegacyWafFirewall.md +0 -18
  354. data/docs/LegacyWafFirewallApi.md +0 -355
  355. data/docs/LegacyWafOwasp.md +0 -38
  356. data/docs/LegacyWafOwaspApi.md +0 -141
  357. data/docs/LegacyWafRule.md +0 -14
  358. data/docs/LegacyWafRuleApi.md +0 -187
  359. data/docs/LegacyWafRuleStatus.md +0 -12
  360. data/docs/LegacyWafRuleStatusApi.md +0 -205
  361. data/docs/LegacyWafRuleset.md +0 -11
  362. data/docs/LegacyWafRulesetApi.md +0 -139
  363. data/docs/LegacyWafTagApi.md +0 -61
  364. data/docs/LegacyWafUpdateStatus.md +0 -15
  365. data/docs/LegacyWafUpdateStatusApi.md +0 -105
  366. data/docs/SetConfiguration.md +0 -11
  367. data/docs/SetWorkspaceId.md +0 -10
  368. data/lib/fastly/api/enabled_products_api.rb +0 -382
  369. data/lib/fastly/api/legacy_waf_configuration_sets_api.rb +0 -209
  370. data/lib/fastly/api/legacy_waf_firewall_api.rb +0 -627
  371. data/lib/fastly/api/legacy_waf_owasp_api.rb +0 -244
  372. data/lib/fastly/api/legacy_waf_rule_api.rb +0 -307
  373. data/lib/fastly/api/legacy_waf_rule_status_api.rb +0 -366
  374. data/lib/fastly/api/legacy_waf_ruleset_api.rb +0 -237
  375. data/lib/fastly/api/legacy_waf_tag_api.rb +0 -96
  376. data/lib/fastly/api/legacy_waf_update_status_api.rb +0 -184
  377. data/lib/fastly/models/legacy_waf_owasp.rb +0 -527
  378. data/lib/fastly/models/legacy_waf_ruleset.rb +0 -227
@@ -0,0 +1,103 @@
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
+ module LogInsightsDimensionAttributes
16
+ class << self
17
+ # List of class defined in oneOf (OpenAPI v3)
18
+ def fastly_one_of
19
+ [
20
+ :'DimensionAttributesCountryStats',
21
+ :'DimensionAttributesRate'
22
+ ]
23
+ end
24
+
25
+ # Builds the object
26
+ # @param [Mixed] Data to be matched against the list of oneOf items
27
+ # @return [Object] Returns the model or the data itself
28
+ def build(data)
29
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
30
+ # Note:
31
+ # - We do not attempt to check whether exactly one item matches.
32
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
33
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
34
+ # - TODO: scalar values are de facto behaving as if they were nullable.
35
+ # - TODO: logging when debugging is set.
36
+ fastly_one_of.each do |klass|
37
+ begin
38
+ next if klass == :AnyType # "nullable: true"
39
+ typed_data = find_and_cast_into_type(klass, data)
40
+ return typed_data if typed_data
41
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
42
+ end
43
+ end
44
+
45
+ fastly_one_of.include?(:AnyType) ? data : nil
46
+ end
47
+
48
+ private
49
+
50
+ SchemaMismatchError = Class.new(StandardError)
51
+
52
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
53
+ def find_and_cast_into_type(klass, data)
54
+ return if data.nil?
55
+
56
+ case klass.to_s
57
+ when 'Boolean'
58
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
59
+ when 'Float'
60
+ return data if data.instance_of?(Float)
61
+ when 'Integer'
62
+ return data if data.instance_of?(Integer)
63
+ when 'Time'
64
+ return Time.parse(data)
65
+ when 'Date'
66
+ return Date.parse(data)
67
+ when 'String'
68
+ return data if data.instance_of?(String)
69
+ when 'Object' # "type: object"
70
+ return data if data.instance_of?(Hash)
71
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
72
+ if data.instance_of?(Array)
73
+ sub_type = Regexp.last_match[:sub_type]
74
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
75
+ end
76
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
77
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
78
+ sub_type = Regexp.last_match[:sub_type]
79
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
80
+ end
81
+ else # model
82
+ const = Fastly.const_get(klass)
83
+ if const
84
+ if const.respond_to?(:fastly_one_of) # nested oneOf model
85
+ model = const.build(data)
86
+ return model if model
87
+ else
88
+ # raise if data contains keys that are not known to the model
89
+ raise unless (data.keys - const.acceptable_attributes).empty?
90
+ model = const.build_from_hash(data)
91
+ return model if model && model.valid?
92
+ end
93
+ end
94
+ end
95
+
96
+ raise # if no match by now, raise
97
+ rescue
98
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
99
+ end
100
+ end
101
+ end
102
+
103
+ end
@@ -0,0 +1,109 @@
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
+ module LogInsightsDimensions
16
+ class << self
17
+ # List of class defined in oneOf (OpenAPI v3)
18
+ def fastly_one_of
19
+ [
20
+ :'DimensionBrowser',
21
+ :'DimensionContentType',
22
+ :'DimensionCountry',
23
+ :'DimensionDevice',
24
+ :'DimensionOs',
25
+ :'DimensionResponse',
26
+ :'DimensionStatusCode',
27
+ :'DimensionUrl'
28
+ ]
29
+ end
30
+
31
+ # Builds the object
32
+ # @param [Mixed] Data to be matched against the list of oneOf items
33
+ # @return [Object] Returns the model or the data itself
34
+ def build(data)
35
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
36
+ # Note:
37
+ # - We do not attempt to check whether exactly one item matches.
38
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
39
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
40
+ # - TODO: scalar values are de facto behaving as if they were nullable.
41
+ # - TODO: logging when debugging is set.
42
+ fastly_one_of.each do |klass|
43
+ begin
44
+ next if klass == :AnyType # "nullable: true"
45
+ typed_data = find_and_cast_into_type(klass, data)
46
+ return typed_data if typed_data
47
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
48
+ end
49
+ end
50
+
51
+ fastly_one_of.include?(:AnyType) ? data : nil
52
+ end
53
+
54
+ private
55
+
56
+ SchemaMismatchError = Class.new(StandardError)
57
+
58
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
59
+ def find_and_cast_into_type(klass, data)
60
+ return if data.nil?
61
+
62
+ case klass.to_s
63
+ when 'Boolean'
64
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
65
+ when 'Float'
66
+ return data if data.instance_of?(Float)
67
+ when 'Integer'
68
+ return data if data.instance_of?(Integer)
69
+ when 'Time'
70
+ return Time.parse(data)
71
+ when 'Date'
72
+ return Date.parse(data)
73
+ when 'String'
74
+ return data if data.instance_of?(String)
75
+ when 'Object' # "type: object"
76
+ return data if data.instance_of?(Hash)
77
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
78
+ if data.instance_of?(Array)
79
+ sub_type = Regexp.last_match[:sub_type]
80
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
81
+ end
82
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
83
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
84
+ sub_type = Regexp.last_match[:sub_type]
85
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
86
+ end
87
+ else # model
88
+ const = Fastly.const_get(klass)
89
+ if const
90
+ if const.respond_to?(:fastly_one_of) # nested oneOf model
91
+ model = const.build(data)
92
+ return model if model
93
+ else
94
+ # raise if data contains keys that are not known to the model
95
+ raise unless (data.keys - const.acceptable_attributes).empty?
96
+ model = const.build_from_hash(data)
97
+ return model if model && model.valid?
98
+ end
99
+ end
100
+ end
101
+
102
+ raise # if no match by now, raise
103
+ rescue
104
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
105
+ end
106
+ end
107
+ end
108
+
109
+ end
@@ -0,0 +1,217 @@
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
+ # Echoes the filters that were supplied in the request.
16
+ class LogInsightsMeta
17
+ attr_accessor :filters
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :'filters' => :'filters'
23
+ }
24
+ end
25
+
26
+ # Returns all the JSON keys this model knows about
27
+ def self.acceptable_attributes
28
+ attribute_map.values
29
+ end
30
+
31
+ # Attribute type mapping.
32
+ def self.fastly_types
33
+ {
34
+ :'filters' => :'LogInsightsMetaFilter'
35
+ }
36
+ end
37
+
38
+ # List of attributes with nullable: true
39
+ def self.fastly_nullable
40
+ Set.new([
41
+ ])
42
+ end
43
+
44
+ # Initializes the object
45
+ # @param [Hash] attributes Model attributes in the form of hash
46
+ def initialize(attributes = {})
47
+ if (!attributes.is_a?(Hash))
48
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Fastly::LogInsightsMeta` initialize method"
49
+ end
50
+
51
+ # check to see if the attribute exists and convert string to symbol for hash key
52
+ attributes = attributes.each_with_object({}) { |(k, v), h|
53
+ if (!self.class.attribute_map.key?(k.to_sym))
54
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Fastly::LogInsightsMeta`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
+ end
56
+ h[k.to_sym] = v
57
+ }
58
+
59
+ if attributes.key?(:'filters')
60
+ self.filters = attributes[:'filters']
61
+ end
62
+ end
63
+
64
+ # Show invalid properties with the reasons. Usually used together with valid?
65
+ # @return Array for valid properties with the reasons
66
+ def list_invalid_properties
67
+ invalid_properties = Array.new
68
+ invalid_properties
69
+ end
70
+
71
+ # Check to see if the all the properties in the model are valid
72
+ # @return true if the model is valid
73
+ def valid?
74
+ true
75
+ end
76
+
77
+ # Checks equality by comparing each attribute.
78
+ # @param [Object] Object to be compared
79
+ def ==(o)
80
+ return true if self.equal?(o)
81
+ self.class == o.class &&
82
+ filters == o.filters
83
+ end
84
+
85
+ # @see the `==` method
86
+ # @param [Object] Object to be compared
87
+ def eql?(o)
88
+ self == o
89
+ end
90
+
91
+ # Calculates hash code according to all attributes.
92
+ # @return [Integer] Hash code
93
+ def hash
94
+ [filters].hash
95
+ end
96
+
97
+ # Builds the object from hash
98
+ # @param [Hash] attributes Model attributes in the form of hash
99
+ # @return [Object] Returns the model itself
100
+ def self.build_from_hash(attributes)
101
+ new.build_from_hash(attributes)
102
+ end
103
+
104
+ # Builds the object from hash
105
+ # @param [Hash] attributes Model attributes in the form of hash
106
+ # @return [Object] Returns the model itself
107
+ def build_from_hash(attributes)
108
+ return nil unless attributes.is_a?(Hash)
109
+ self.class.fastly_types.each_pair do |key, type|
110
+ if attributes[self.class.attribute_map[key]].nil? && self.class.fastly_nullable.include?(key)
111
+ self.send("#{key}=", nil)
112
+ elsif type =~ /\AArray<(.*)>/i
113
+ # check to ensure the input is an array given that the attribute
114
+ # is documented as an array but the input is not
115
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
116
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
117
+ end
118
+ elsif !attributes[self.class.attribute_map[key]].nil?
119
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
120
+ end
121
+ end
122
+
123
+ self
124
+ end
125
+
126
+ # Deserializes the data based on type
127
+ # @param string type Data type
128
+ # @param string value Value to be deserialized
129
+ # @return [Object] Deserialized data
130
+ def _deserialize(type, value)
131
+ case type.to_sym
132
+ when :Time
133
+ Time.parse(value)
134
+ when :Date
135
+ Date.parse(value)
136
+ when :String
137
+ value.to_s
138
+ when :Integer
139
+ value.to_i
140
+ when :Float
141
+ value.to_f
142
+ when :Boolean
143
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
144
+ true
145
+ else
146
+ false
147
+ end
148
+ when :Object
149
+ # generic object (usually a Hash), return directly
150
+ value
151
+ when /\AArray<(?<inner_type>.+)>\z/
152
+ inner_type = Regexp.last_match[:inner_type]
153
+ value.map { |v| _deserialize(inner_type, v) }
154
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
155
+ k_type = Regexp.last_match[:k_type]
156
+ v_type = Regexp.last_match[:v_type]
157
+ {}.tap do |hash|
158
+ value.each do |k, v|
159
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
160
+ end
161
+ end
162
+ else # model
163
+ # models (e.g. Pet) or oneOf
164
+ klass = Fastly.const_get(type)
165
+ klass.respond_to?(:fastly_one_of) ? klass.build(value) : klass.build_from_hash(value)
166
+ end
167
+ end
168
+
169
+ # Returns the string representation of the object
170
+ # @return [String] String presentation of the object
171
+ def to_s
172
+ to_hash.to_s
173
+ end
174
+
175
+ # to_body is an alias to to_hash (backward compatibility)
176
+ # @return [Hash] Returns the object in the form of hash
177
+ def to_body
178
+ to_hash
179
+ end
180
+
181
+ # Returns the object in the form of hash
182
+ # @return [Hash] Returns the object in the form of hash
183
+ def to_hash
184
+ hash = {}
185
+ self.class.attribute_map.each_pair do |attr, param|
186
+ value = self.send(attr)
187
+ if value.nil?
188
+ is_nullable = self.class.fastly_nullable.include?(attr)
189
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
190
+ end
191
+
192
+ hash[param] = _to_hash(value)
193
+ end
194
+ hash
195
+ end
196
+
197
+ # Outputs non-array value in the form of hash
198
+ # For object, use to_hash. Otherwise, just return the value
199
+ # @param [Object] value Any valid value
200
+ # @return [Hash] Returns the value in the form of hash
201
+ def _to_hash(value)
202
+ if value.is_a?(Array)
203
+ value.compact.map { |v| _to_hash(v) }
204
+ elsif value.is_a?(Hash)
205
+ {}.tap do |hash|
206
+ value.each { |k, v| hash[k] = _to_hash(v) }
207
+ end
208
+ elsif value.respond_to? :to_hash
209
+ value.to_hash
210
+ else
211
+ value
212
+ end
213
+ end
214
+
215
+ end
216
+
217
+ end
@@ -12,18 +12,30 @@ require 'date'
12
12
  require 'time'
13
13
 
14
14
  module Fastly
15
- # Meta for the pagination.
16
- class InlineResponse2003Meta
17
- # Cursor for the next page.
18
- attr_accessor :next_cursor
15
+ # The filters that were supplied in the request.
16
+ class LogInsightsMetaFilter
17
+ # Specifies the ID of the service for which data should be returned.
18
+ attr_accessor :service_id
19
19
 
20
- # Entries returned.
20
+ # Start time for the query as supplied in the request.
21
+ attr_accessor :start
22
+
23
+ # End time for the query as supplied in the request.
24
+ attr_accessor :_end
25
+
26
+ # Value of the `domain_exact_match` filter as supplied in the request.
27
+ attr_accessor :domain_exact_match
28
+
29
+ # Number of records per page.
21
30
  attr_accessor :limit
22
31
 
23
32
  # Attribute mapping from ruby-style variable name to JSON key.
24
33
  def self.attribute_map
25
34
  {
26
- :'next_cursor' => :'next_cursor',
35
+ :'service_id' => :'service_id',
36
+ :'start' => :'start',
37
+ :'_end' => :'end',
38
+ :'domain_exact_match' => :'domain_exact_match',
27
39
  :'limit' => :'limit'
28
40
  }
29
41
  end
@@ -36,7 +48,10 @@ module Fastly
36
48
  # Attribute type mapping.
37
49
  def self.fastly_types
38
50
  {
39
- :'next_cursor' => :'String',
51
+ :'service_id' => :'String',
52
+ :'start' => :'String',
53
+ :'_end' => :'String',
54
+ :'domain_exact_match' => :'Boolean',
40
55
  :'limit' => :'Integer'
41
56
  }
42
57
  end
@@ -51,23 +66,37 @@ module Fastly
51
66
  # @param [Hash] attributes Model attributes in the form of hash
52
67
  def initialize(attributes = {})
53
68
  if (!attributes.is_a?(Hash))
54
- fail ArgumentError, "The input argument (attributes) must be a hash in `Fastly::InlineResponse2003Meta` initialize method"
69
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Fastly::LogInsightsMetaFilter` initialize method"
55
70
  end
56
71
 
57
72
  # check to see if the attribute exists and convert string to symbol for hash key
58
73
  attributes = attributes.each_with_object({}) { |(k, v), h|
59
74
  if (!self.class.attribute_map.key?(k.to_sym))
60
- fail ArgumentError, "`#{k}` is not a valid attribute in `Fastly::InlineResponse2003Meta`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
75
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Fastly::LogInsightsMetaFilter`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
61
76
  end
62
77
  h[k.to_sym] = v
63
78
  }
64
79
 
65
- if attributes.key?(:'next_cursor')
66
- self.next_cursor = attributes[:'next_cursor']
80
+ if attributes.key?(:'service_id')
81
+ self.service_id = attributes[:'service_id']
82
+ end
83
+
84
+ if attributes.key?(:'start')
85
+ self.start = attributes[:'start']
86
+ end
87
+
88
+ if attributes.key?(:'_end')
89
+ self._end = attributes[:'_end']
90
+ end
91
+
92
+ if attributes.key?(:'domain_exact_match')
93
+ self.domain_exact_match = attributes[:'domain_exact_match']
67
94
  end
68
95
 
69
96
  if attributes.key?(:'limit')
70
97
  self.limit = attributes[:'limit']
98
+ else
99
+ self.limit = 20
71
100
  end
72
101
  end
73
102
 
@@ -75,21 +104,48 @@ module Fastly
75
104
  # @return Array for valid properties with the reasons
76
105
  def list_invalid_properties
77
106
  invalid_properties = Array.new
107
+ if !@limit.nil? && @limit > 100
108
+ invalid_properties.push('invalid value for "limit", must be smaller than or equal to 100.')
109
+ end
110
+
111
+ if !@limit.nil? && @limit < 1
112
+ invalid_properties.push('invalid value for "limit", must be greater than or equal to 1.')
113
+ end
114
+
78
115
  invalid_properties
79
116
  end
80
117
 
81
118
  # Check to see if the all the properties in the model are valid
82
119
  # @return true if the model is valid
83
120
  def valid?
121
+ return false if !@limit.nil? && @limit > 100
122
+ return false if !@limit.nil? && @limit < 1
84
123
  true
85
124
  end
86
125
 
126
+ # Custom attribute writer method with validation
127
+ # @param [Object] limit Value to be assigned
128
+ def limit=(limit)
129
+ if !limit.nil? && limit > 100
130
+ fail ArgumentError, 'invalid value for "limit", must be smaller than or equal to 100.'
131
+ end
132
+
133
+ if !limit.nil? && limit < 1
134
+ fail ArgumentError, 'invalid value for "limit", must be greater than or equal to 1.'
135
+ end
136
+
137
+ @limit = limit
138
+ end
139
+
87
140
  # Checks equality by comparing each attribute.
88
141
  # @param [Object] Object to be compared
89
142
  def ==(o)
90
143
  return true if self.equal?(o)
91
144
  self.class == o.class &&
92
- next_cursor == o.next_cursor &&
145
+ service_id == o.service_id &&
146
+ start == o.start &&
147
+ _end == o._end &&
148
+ domain_exact_match == o.domain_exact_match &&
93
149
  limit == o.limit
94
150
  end
95
151
 
@@ -102,7 +158,7 @@ module Fastly
102
158
  # Calculates hash code according to all attributes.
103
159
  # @return [Integer] Hash code
104
160
  def hash
105
- [next_cursor, limit].hash
161
+ [service_id, start, _end, domain_exact_match, limit].hash
106
162
  end
107
163
 
108
164
  # Builds the object from hash
@@ -0,0 +1,111 @@
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
+ module LogInsightsValues
16
+ class << self
17
+ # List of class defined in oneOf (OpenAPI v3)
18
+ def fastly_one_of
19
+ [
20
+ :'Values503Responses',
21
+ :'ValuesBandwidth',
22
+ :'ValuesBrowser',
23
+ :'ValuesCacheHitRatio',
24
+ :'ValuesCountryStats',
25
+ :'ValuesDuration',
26
+ :'ValuesMisses',
27
+ :'ValuesRate',
28
+ :'ValuesRequests',
29
+ :'ValuesStatusCodes'
30
+ ]
31
+ end
32
+
33
+ # Builds the object
34
+ # @param [Mixed] Data to be matched against the list of oneOf items
35
+ # @return [Object] Returns the model or the data itself
36
+ def build(data)
37
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
38
+ # Note:
39
+ # - We do not attempt to check whether exactly one item matches.
40
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
41
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
42
+ # - TODO: scalar values are de facto behaving as if they were nullable.
43
+ # - TODO: logging when debugging is set.
44
+ fastly_one_of.each do |klass|
45
+ begin
46
+ next if klass == :AnyType # "nullable: true"
47
+ typed_data = find_and_cast_into_type(klass, data)
48
+ return typed_data if typed_data
49
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
50
+ end
51
+ end
52
+
53
+ fastly_one_of.include?(:AnyType) ? data : nil
54
+ end
55
+
56
+ private
57
+
58
+ SchemaMismatchError = Class.new(StandardError)
59
+
60
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
61
+ def find_and_cast_into_type(klass, data)
62
+ return if data.nil?
63
+
64
+ case klass.to_s
65
+ when 'Boolean'
66
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
67
+ when 'Float'
68
+ return data if data.instance_of?(Float)
69
+ when 'Integer'
70
+ return data if data.instance_of?(Integer)
71
+ when 'Time'
72
+ return Time.parse(data)
73
+ when 'Date'
74
+ return Date.parse(data)
75
+ when 'String'
76
+ return data if data.instance_of?(String)
77
+ when 'Object' # "type: object"
78
+ return data if data.instance_of?(Hash)
79
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
80
+ if data.instance_of?(Array)
81
+ sub_type = Regexp.last_match[:sub_type]
82
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
83
+ end
84
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
85
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
86
+ sub_type = Regexp.last_match[:sub_type]
87
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
88
+ end
89
+ else # model
90
+ const = Fastly.const_get(klass)
91
+ if const
92
+ if const.respond_to?(:fastly_one_of) # nested oneOf model
93
+ model = const.build(data)
94
+ return model if model
95
+ else
96
+ # raise if data contains keys that are not known to the model
97
+ raise unless (data.keys - const.acceptable_attributes).empty?
98
+ model = const.build_from_hash(data)
99
+ return model if model && model.valid?
100
+ end
101
+ end
102
+ end
103
+
104
+ raise # if no match by now, raise
105
+ rescue
106
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
107
+ end
108
+ end
109
+ end
110
+
111
+ end