oci 2.6.0 → 2.7.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 (385) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -1
  3. data/lib/oci.rb +4 -0
  4. data/lib/oci/analytics/analytics.rb +42 -0
  5. data/lib/oci/analytics/analytics_client.rb +1134 -0
  6. data/lib/oci/analytics/analytics_client_composite_operations.rb +371 -0
  7. data/lib/oci/analytics/models/analytics_instance.rb +406 -0
  8. data/lib/oci/analytics/models/analytics_instance_lifecycle_state.rb +15 -0
  9. data/lib/oci/analytics/models/analytics_instance_summary.rb +370 -0
  10. data/lib/oci/analytics/models/capacity.rb +191 -0
  11. data/lib/oci/analytics/models/capacity_type.rb +10 -0
  12. data/lib/oci/analytics/models/change_compartment_details.rb +155 -0
  13. data/lib/oci/analytics/models/create_analytics_instance_details.rb +309 -0
  14. data/lib/oci/analytics/models/feature_set.rb +10 -0
  15. data/lib/oci/analytics/models/license_type.rb +10 -0
  16. data/lib/oci/analytics/models/scale_analytics_instance_details.rb +150 -0
  17. data/lib/oci/analytics/models/sort_by.rb +13 -0
  18. data/lib/oci/analytics/models/sort_order.rb +10 -0
  19. data/lib/oci/analytics/models/update_analytics_instance_details.rb +231 -0
  20. data/lib/oci/analytics/models/work_request.rb +316 -0
  21. data/lib/oci/analytics/models/work_request_action_result.rb +15 -0
  22. data/lib/oci/analytics/models/work_request_error.rb +176 -0
  23. data/lib/oci/analytics/models/work_request_log.rb +164 -0
  24. data/lib/oci/analytics/models/work_request_operation_type.rb +14 -0
  25. data/lib/oci/analytics/models/work_request_resource.rb +248 -0
  26. data/lib/oci/analytics/models/work_request_resource_type.rb +9 -0
  27. data/lib/oci/analytics/models/work_request_sort_by.rb +14 -0
  28. data/lib/oci/analytics/models/work_request_status.rb +14 -0
  29. data/lib/oci/analytics/models/work_request_summary.rb +300 -0
  30. data/lib/oci/analytics/util.rb +2 -0
  31. data/lib/oci/audit/audit.rb +5 -0
  32. data/lib/oci/audit/audit_client.rb +30 -14
  33. data/lib/oci/audit/models/audit_event.rb +81 -261
  34. data/lib/oci/audit/models/configuration.rb +7 -2
  35. data/lib/oci/audit/models/data.rb +464 -0
  36. data/lib/oci/audit/models/identity.rb +313 -0
  37. data/lib/oci/audit/models/request.rb +285 -0
  38. data/lib/oci/audit/models/response.rb +273 -0
  39. data/lib/oci/audit/models/state_change.rb +175 -0
  40. data/lib/oci/audit/models/update_configuration_details.rb +7 -2
  41. data/lib/oci/container_engine/container_engine.rb +4 -0
  42. data/lib/oci/container_engine/models/cluster.rb +15 -1
  43. data/lib/oci/container_engine/models/create_cluster_details.rb +17 -1
  44. data/lib/oci/container_engine/models/create_cluster_kubeconfig_content_details.rb +4 -1
  45. data/lib/oci/container_engine/models/create_node_pool_details.rb +29 -6
  46. data/lib/oci/container_engine/models/create_node_pool_node_config_details.rb +170 -0
  47. data/lib/oci/container_engine/models/node_pool.rb +18 -4
  48. data/lib/oci/container_engine/models/node_pool_node_config_details.rb +170 -0
  49. data/lib/oci/container_engine/models/node_pool_options.rb +1 -1
  50. data/lib/oci/container_engine/models/node_pool_placement_config_details.rb +169 -0
  51. data/lib/oci/container_engine/models/node_pool_summary.rb +18 -4
  52. data/lib/oci/container_engine/models/update_node_pool_details.rb +45 -19
  53. data/lib/oci/container_engine/models/update_node_pool_node_config_details.rb +170 -0
  54. data/lib/oci/core/blockstorage_client.rb +197 -0
  55. data/lib/oci/core/compute_client.rb +132 -17
  56. data/lib/oci/core/compute_client_composite_operations.rb +1 -1
  57. data/lib/oci/core/compute_management_client.rb +493 -0
  58. data/lib/oci/core/compute_management_client_composite_operations.rb +119 -0
  59. data/lib/oci/core/core.rb +11 -0
  60. data/lib/oci/core/models/boot_volume.rb +17 -1
  61. data/lib/oci/core/models/boot_volume_backup.rb +17 -1
  62. data/lib/oci/core/models/change_cluster_network_compartment_details.rb +155 -0
  63. data/lib/oci/core/models/change_dedicated_vm_host_compartment_details.rb +2 -2
  64. data/lib/oci/core/models/change_drg_compartment_details.rb +155 -0
  65. data/lib/oci/core/models/cluster_network.rb +313 -0
  66. data/lib/oci/core/models/cluster_network_placement_configuration_details.rb +183 -0
  67. data/lib/oci/core/models/cluster_network_summary.rb +299 -0
  68. data/lib/oci/core/models/create_cluster_network_details.rb +231 -0
  69. data/lib/oci/core/models/create_cluster_network_instance_pool_details.rb +213 -0
  70. data/lib/oci/core/models/create_dedicated_vm_host_details.rb +10 -8
  71. data/lib/oci/core/models/create_ip_sec_connection_details.rb +4 -0
  72. data/lib/oci/core/models/create_ip_sec_connection_tunnel_details.rb +29 -1
  73. data/lib/oci/core/models/create_volume_backup_policy_details.rb +215 -0
  74. data/lib/oci/core/models/dedicated_vm_host.rb +10 -8
  75. data/lib/oci/core/models/image_shape_compatibility_entry.rb +163 -0
  76. data/lib/oci/core/models/instance.rb +17 -1
  77. data/lib/oci/core/models/ip_sec_connection.rb +4 -0
  78. data/lib/oci/core/models/ip_sec_connection_tunnel.rb +35 -1
  79. data/lib/oci/core/models/launch_instance_details.rb +14 -1
  80. data/lib/oci/core/models/launch_options.rb +4 -4
  81. data/lib/oci/core/models/service_gateway.rb +0 -1
  82. data/lib/oci/core/models/update_cluster_network_details.rb +189 -0
  83. data/lib/oci/core/models/update_dedicated_vm_host_details.rb +1 -1
  84. data/lib/oci/core/models/update_ip_sec_connection_details.rb +4 -0
  85. data/lib/oci/core/models/update_ip_sec_connection_tunnel_details.rb +29 -1
  86. data/lib/oci/core/models/update_service_gateway_details.rb +0 -1
  87. data/lib/oci/core/models/update_volume_backup_policy_details.rb +201 -0
  88. data/lib/oci/core/models/volume.rb +17 -1
  89. data/lib/oci/core/models/volume_backup.rb +17 -1
  90. data/lib/oci/core/models/volume_backup_policy.rb +54 -4
  91. data/lib/oci/core/models/volume_backup_schedule.rb +177 -4
  92. data/lib/oci/core/virtual_network_client.rb +67 -0
  93. data/lib/oci/database/database.rb +35 -1
  94. data/lib/oci/database/database_client.rb +3351 -1159
  95. data/lib/oci/database/database_client_composite_operations.rb +522 -1
  96. data/lib/oci/database/models/activate_exadata_infrastructure_details.rb +153 -0
  97. data/lib/oci/database/models/associated_database_details.rb +163 -0
  98. data/lib/oci/database/models/autonomous_container_database.rb +0 -2
  99. data/lib/oci/database/models/autonomous_container_database_summary.rb +0 -2
  100. data/lib/oci/database/models/autonomous_data_warehouse.rb +0 -2
  101. data/lib/oci/database/models/autonomous_data_warehouse_summary.rb +0 -2
  102. data/lib/oci/database/models/autonomous_database.rb +65 -4
  103. data/lib/oci/database/models/autonomous_database_summary.rb +65 -4
  104. data/lib/oci/database/models/autonomous_database_wallet.rb +188 -0
  105. data/lib/oci/database/models/autonomous_exadata_infrastructure.rb +16 -3
  106. data/lib/oci/database/models/autonomous_exadata_infrastructure_summary.rb +16 -3
  107. data/lib/oci/database/models/backup_destination.rb +359 -0
  108. data/lib/oci/database/models/backup_destination_details.rb +243 -0
  109. data/lib/oci/database/models/backup_destination_summary.rb +362 -0
  110. data/lib/oci/database/models/change_exadata_infrastructure_compartment_details.rb +155 -0
  111. data/lib/oci/database/models/change_vm_cluster_compartment_details.rb +155 -0
  112. data/lib/oci/database/models/create_autonomous_container_database_details.rb +0 -2
  113. data/lib/oci/database/models/create_autonomous_data_warehouse_details.rb +0 -2
  114. data/lib/oci/database/models/create_autonomous_database_base.rb +19 -4
  115. data/lib/oci/database/models/create_autonomous_database_clone_details.rb +6 -2
  116. data/lib/oci/database/models/create_autonomous_database_details.rb +5 -1
  117. data/lib/oci/database/models/create_backup_destination_details.rb +241 -0
  118. data/lib/oci/database/models/create_database_details.rb +15 -3
  119. data/lib/oci/database/models/create_database_from_backup_details.rb +15 -1
  120. data/lib/oci/database/models/{create_db_home_with_db_system_id_base.rb → create_db_home_base.rb} +8 -18
  121. data/lib/oci/database/models/create_db_home_with_db_system_id_details.rb +18 -8
  122. data/lib/oci/database/models/create_db_home_with_db_system_id_from_backup_details.rb +18 -8
  123. data/lib/oci/database/models/create_db_home_with_vm_cluster_id_details.rb +190 -0
  124. data/lib/oci/database/models/create_db_home_with_vm_cluster_id_from_backup_details.rb +176 -0
  125. data/lib/oci/database/models/create_exadata_infrastructure_details.rb +348 -0
  126. data/lib/oci/database/models/create_nfs_backup_destination_details.rb +178 -0
  127. data/lib/oci/database/models/create_recovery_appliance_backup_destination_details.rb +191 -0
  128. data/lib/oci/database/models/create_vm_cluster_details.rb +344 -0
  129. data/lib/oci/database/models/database.rb +0 -2
  130. data/lib/oci/database/models/database_summary.rb +0 -2
  131. data/lib/oci/database/models/db_backup_config.rb +65 -4
  132. data/lib/oci/database/models/db_home.rb +15 -1
  133. data/lib/oci/database/models/db_home_summary.rb +15 -1
  134. data/lib/oci/database/models/db_system.rb +14 -3
  135. data/lib/oci/database/models/db_system_options.rb +173 -0
  136. data/lib/oci/database/models/db_system_shape_summary.rb +15 -1
  137. data/lib/oci/database/models/db_system_summary.rb +14 -3
  138. data/lib/oci/database/models/exadata_infrastructure.rb +450 -0
  139. data/lib/oci/database/models/exadata_infrastructure_summary.rb +453 -0
  140. data/lib/oci/database/models/generate_autonomous_database_wallet_details.rb +31 -1
  141. data/lib/oci/database/models/generate_recommended_network_details.rb +232 -0
  142. data/lib/oci/database/models/gi_version_summary.rb +152 -0
  143. data/lib/oci/database/models/info_for_network_gen_details.rb +231 -0
  144. data/lib/oci/database/models/launch_autonomous_exadata_infrastructure_details.rb +16 -3
  145. data/lib/oci/database/models/launch_db_system_base.rb +14 -3
  146. data/lib/oci/database/models/launch_db_system_details.rb +5 -1
  147. data/lib/oci/database/models/launch_db_system_from_backup_details.rb +5 -1
  148. data/lib/oci/database/models/node_details.rb +183 -0
  149. data/lib/oci/database/models/scan_details.rb +170 -0
  150. data/lib/oci/database/models/update_autonomous_container_database_details.rb +0 -2
  151. data/lib/oci/database/models/update_autonomous_data_warehouse_details.rb +0 -2
  152. data/lib/oci/database/models/update_autonomous_database_details.rb +19 -4
  153. data/lib/oci/database/models/update_autonomous_database_wallet_details.rb +156 -0
  154. data/lib/oci/database/models/update_autonomous_exadata_infrastructure_details.rb +16 -3
  155. data/lib/oci/database/models/update_backup_destination_details.rb +218 -0
  156. data/lib/oci/database/models/update_database_details.rb +0 -2
  157. data/lib/oci/database/models/update_db_system_details.rb +0 -2
  158. data/lib/oci/database/models/update_exadata_infrastructure_details.rb +307 -0
  159. data/lib/oci/database/models/update_vm_cluster_details.rb +229 -0
  160. data/lib/oci/database/models/update_vm_cluster_network_details.rb +218 -0
  161. data/lib/oci/database/models/vm_cluster.rb +449 -0
  162. data/lib/oci/database/models/vm_cluster_network.rb +350 -0
  163. data/lib/oci/database/models/vm_cluster_network_details.rb +246 -0
  164. data/lib/oci/database/models/vm_cluster_network_summary.rb +353 -0
  165. data/lib/oci/database/models/vm_cluster_summary.rb +452 -0
  166. data/lib/oci/database/models/vm_network_details.rb +231 -0
  167. data/lib/oci/dns/dns.rb +4 -0
  168. data/lib/oci/dns/dns_client.rb +103 -103
  169. data/lib/oci/dns/dns_client_composite_operations.rb +1 -1
  170. data/lib/oci/dns/models/create_migrated_dynect_zone_details.rb +179 -0
  171. data/lib/oci/dns/models/create_zone_base_details.rb +252 -0
  172. data/lib/oci/dns/models/create_zone_details.rb +18 -56
  173. data/lib/oci/dns/models/dynect_migration_details.rb +192 -0
  174. data/lib/oci/dns/models/migration_replacement.rb +187 -0
  175. data/lib/oci/dts/dts.rb +2 -0
  176. data/lib/oci/dts/models/create_transfer_appliance_entitlement_details.rb +49 -4
  177. data/lib/oci/dts/models/transfer_appliance.rb +2 -0
  178. data/lib/oci/dts/models/transfer_appliance_entitlement.rb +102 -33
  179. data/lib/oci/dts/models/transfer_appliance_entitlement_summary.rb +261 -0
  180. data/lib/oci/dts/models/transfer_appliance_summary.rb +2 -0
  181. data/lib/oci/dts/models/transfer_job.rb +0 -4
  182. data/lib/oci/dts/models/update_transfer_appliance_details.rb +1 -0
  183. data/lib/oci/dts/shipping_vendors_client.rb +1 -1
  184. data/lib/oci/dts/transfer_appliance_client.rb +4 -4
  185. data/lib/oci/dts/transfer_appliance_entitlement_client.rb +86 -10
  186. data/lib/oci/dts/transfer_appliance_entitlement_client_composite_operations.rb +39 -0
  187. data/lib/oci/dts/transfer_device_client.rb +1 -1
  188. data/lib/oci/dts/transfer_job_client.rb +1 -1
  189. data/lib/oci/dts/transfer_package_client.rb +1 -1
  190. data/lib/oci/functions/functions_invoke_client.rb +1 -1
  191. data/lib/oci/functions/functions_management_client.rb +1 -1
  192. data/lib/oci/healthchecks/health_checks_client.rb +18 -14
  193. data/lib/oci/healthchecks/models/http_monitor.rb +31 -1
  194. data/lib/oci/healthchecks/models/http_monitor_summary.rb +31 -1
  195. data/lib/oci/healthchecks/models/http_probe.rb +31 -1
  196. data/lib/oci/healthchecks/models/ping_monitor.rb +31 -1
  197. data/lib/oci/healthchecks/models/ping_monitor_summary.rb +31 -1
  198. data/lib/oci/healthchecks/models/ping_probe.rb +31 -1
  199. data/lib/oci/identity/identity.rb +7 -0
  200. data/lib/oci/identity/identity_client.rb +348 -9
  201. data/lib/oci/identity/models/base_tag_definition_validator.rb +200 -0
  202. data/lib/oci/identity/models/compartment.rb +3 -0
  203. data/lib/oci/identity/models/create_region_subscription_details.rb +3 -0
  204. data/lib/oci/identity/models/create_tag_default_details.rb +26 -4
  205. data/lib/oci/identity/models/create_tag_details.rb +21 -5
  206. data/lib/oci/identity/models/default_tag_definition_validator.rb +146 -0
  207. data/lib/oci/identity/models/dynamic_group.rb +3 -0
  208. data/lib/oci/identity/models/enum_tag_definition_validator.rb +161 -0
  209. data/lib/oci/identity/models/group.rb +3 -0
  210. data/lib/oci/identity/models/identity_provider.rb +3 -0
  211. data/lib/oci/identity/models/move_compartment_details.rb +2 -2
  212. data/lib/oci/identity/models/policy.rb +3 -0
  213. data/lib/oci/identity/models/region.rb +9 -3
  214. data/lib/oci/identity/models/region_subscription.rb +8 -2
  215. data/lib/oci/identity/models/tag.rb +25 -6
  216. data/lib/oci/identity/models/tag_default.rb +26 -4
  217. data/lib/oci/identity/models/tag_default_summary.rb +26 -4
  218. data/lib/oci/identity/models/tag_namespace.rb +5 -2
  219. data/lib/oci/identity/models/tag_summary.rb +3 -2
  220. data/lib/oci/identity/models/tagging_work_request.rb +305 -0
  221. data/lib/oci/identity/models/tagging_work_request_error_summary.rb +172 -0
  222. data/lib/oci/identity/models/tagging_work_request_log_summary.rb +162 -0
  223. data/lib/oci/identity/models/tagging_work_request_summary.rb +304 -0
  224. data/lib/oci/identity/models/tenancy.rb +3 -0
  225. data/lib/oci/identity/models/update_tag_default_details.rb +26 -4
  226. data/lib/oci/identity/models/update_tag_details.rb +19 -4
  227. data/lib/oci/identity/models/user.rb +3 -0
  228. data/lib/oci/integration/integration.rb +29 -0
  229. data/lib/oci/integration/integration_instance_client.rb +731 -0
  230. data/lib/oci/integration/integration_instance_client_composite_operations.rb +222 -0
  231. data/lib/oci/integration/models/change_integration_instance_compartment_details.rb +153 -0
  232. data/lib/oci/integration/models/create_integration_instance_details.rb +270 -0
  233. data/lib/oci/integration/models/integration_instance.rb +366 -0
  234. data/lib/oci/integration/models/integration_instance_summary.rb +332 -0
  235. data/lib/oci/integration/models/update_integration_instance_details.rb +242 -0
  236. data/lib/oci/integration/models/work_request.rb +310 -0
  237. data/lib/oci/integration/models/work_request_error.rb +170 -0
  238. data/lib/oci/integration/models/work_request_log_entry.rb +159 -0
  239. data/lib/oci/integration/models/work_request_resource.rb +218 -0
  240. data/lib/oci/integration/models/work_request_summary.rb +310 -0
  241. data/lib/oci/integration/util.rb +2 -0
  242. data/lib/oci/load_balancer/load_balancer_client.rb +3 -3
  243. data/lib/oci/load_balancer/load_balancer_client_composite_operations.rb +2 -2
  244. data/lib/oci/load_balancer/models/backend.rb +2 -0
  245. data/lib/oci/load_balancer/models/backend_details.rb +2 -0
  246. data/lib/oci/load_balancer/models/create_backend_details.rb +2 -0
  247. data/lib/oci/load_balancer/models/create_load_balancer_details.rb +12 -1
  248. data/lib/oci/load_balancer/models/health_checker.rb +2 -1
  249. data/lib/oci/load_balancer/models/health_checker_details.rb +2 -1
  250. data/lib/oci/load_balancer/models/lb_cookie_session_persistence_configuration_details.rb +2 -2
  251. data/lib/oci/load_balancer/models/load_balancer.rb +33 -2
  252. data/lib/oci/load_balancer/models/update_backend_details.rb +2 -0
  253. data/lib/oci/load_balancer/models/update_health_checker_details.rb +2 -1
  254. data/lib/oci/load_balancer/models/update_network_security_groups_details.rb +15 -2
  255. data/lib/oci/monitoring/models/alarm.rb +6 -5
  256. data/lib/oci/monitoring/models/create_alarm_details.rb +6 -5
  257. data/lib/oci/monitoring/models/update_alarm_details.rb +6 -5
  258. data/lib/oci/monitoring/monitoring_client.rb +25 -9
  259. data/lib/oci/object_storage/models/bucket.rb +17 -1
  260. data/lib/oci/object_storage/models/create_bucket_details.rb +17 -1
  261. data/lib/oci/object_storage/models/update_bucket_details.rb +18 -2
  262. data/lib/oci/object_storage/models/update_namespace_metadata_details.rb +1 -1
  263. data/lib/oci/object_storage/models/work_request.rb +7 -4
  264. data/lib/oci/object_storage/models/work_request_summary.rb +7 -4
  265. data/lib/oci/object_storage/object_storage_client.rb +75 -4
  266. data/lib/oci/object_storage/object_storage_client_composite_operations.rb +52 -0
  267. data/lib/oci/oce/models/change_oce_instance_compartment_details.rb +155 -0
  268. data/lib/oci/oce/models/create_oce_instance_details.rb +275 -0
  269. data/lib/oci/oce/models/delete_oce_instance_details.rb +153 -0
  270. data/lib/oci/oce/models/oce_instance.rb +387 -0
  271. data/lib/oci/oce/models/oce_instance_summary.rb +387 -0
  272. data/lib/oci/oce/models/update_oce_instance_details.rb +181 -0
  273. data/lib/oci/oce/models/work_request.rb +319 -0
  274. data/lib/oci/oce/models/work_request_error.rb +172 -0
  275. data/lib/oci/oce/models/work_request_log_entry.rb +159 -0
  276. data/lib/oci/oce/models/work_request_resource.rb +217 -0
  277. data/lib/oci/oce/models/workflow_monitor.rb +181 -0
  278. data/lib/oci/oce/models/workflow_step.rb +163 -0
  279. data/lib/oci/oce/oce.rb +31 -0
  280. data/lib/oci/oce/oce_instance_client.rb +733 -0
  281. data/lib/oci/oce/oce_instance_client_composite_operations.rb +223 -0
  282. data/lib/oci/oce/util.rb +2 -0
  283. data/lib/oci/oda/models/change_oda_instance_compartment_details.rb +153 -0
  284. data/lib/oci/oda/models/create_oda_instance_details.rb +237 -0
  285. data/lib/oci/oda/models/error_body.rb +159 -0
  286. data/lib/oci/oda/models/oda_instance.rb +399 -0
  287. data/lib/oci/oda/models/oda_instance_summary.rb +369 -0
  288. data/lib/oci/oda/models/update_oda_instance_details.rb +196 -0
  289. data/lib/oci/oda/models/work_request.rb +340 -0
  290. data/lib/oci/oda/models/work_request_error.rb +176 -0
  291. data/lib/oci/oda/models/work_request_log_entry.rb +163 -0
  292. data/lib/oci/oda/models/work_request_resource.rb +272 -0
  293. data/lib/oci/oda/models/work_request_summary.rb +262 -0
  294. data/lib/oci/oda/oda.rb +30 -0
  295. data/lib/oci/oda/oda_client.rb +842 -0
  296. data/lib/oci/oda/oda_client_composite_operations.rb +212 -0
  297. data/lib/oci/oda/util.rb +2 -0
  298. data/lib/oci/ons/models/backoff_retry_policy.rb +2 -1
  299. data/lib/oci/ons/models/confirmation_result.rb +5 -3
  300. data/lib/oci/ons/models/create_subscription_details.rb +19 -4
  301. data/lib/oci/ons/models/notification_topic.rb +2 -1
  302. data/lib/oci/ons/models/subscription.rb +8 -3
  303. data/lib/oci/ons/models/subscription_summary.rb +5 -3
  304. data/lib/oci/ons/notification_control_plane_client.rb +4 -3
  305. data/lib/oci/ons/notification_data_plane_client.rb +28 -4
  306. data/lib/oci/regions.rb +3 -0
  307. data/lib/oci/resource_manager/models/apply_job_operation_details.rb +201 -0
  308. data/lib/oci/resource_manager/models/apply_job_operation_details_summary.rb +180 -0
  309. data/lib/oci/resource_manager/models/apply_job_plan_resolution.rb +4 -5
  310. data/lib/oci/resource_manager/models/config_source.rb +3 -2
  311. data/lib/oci/resource_manager/models/create_apply_job_operation_details.rb +179 -0
  312. data/lib/oci/resource_manager/models/create_config_source_details.rb +2 -1
  313. data/lib/oci/resource_manager/models/create_destroy_job_operation_details.rb +165 -0
  314. data/lib/oci/resource_manager/models/create_import_tf_state_job_operation_details.rb +163 -0
  315. data/lib/oci/resource_manager/models/create_job_details.rb +16 -3
  316. data/lib/oci/resource_manager/models/create_job_operation_details.rb +169 -0
  317. data/lib/oci/resource_manager/models/create_plan_job_operation_details.rb +145 -0
  318. data/lib/oci/resource_manager/models/create_stack_details.rb +17 -2
  319. data/lib/oci/resource_manager/models/destroy_job_operation_details.rb +184 -0
  320. data/lib/oci/resource_manager/models/destroy_job_operation_details_summary.rb +165 -0
  321. data/lib/oci/resource_manager/models/import_tf_state_job_operation_details.rb +145 -0
  322. data/lib/oci/resource_manager/models/import_tf_state_job_operation_details_summary.rb +145 -0
  323. data/lib/oci/resource_manager/models/job.rb +23 -5
  324. data/lib/oci/resource_manager/models/job_operation_details.rb +169 -0
  325. data/lib/oci/resource_manager/models/job_operation_details_summary.rb +169 -0
  326. data/lib/oci/resource_manager/models/job_summary.rb +20 -5
  327. data/lib/oci/resource_manager/models/plan_job_operation_details.rb +145 -0
  328. data/lib/oci/resource_manager/models/plan_job_operation_details_summary.rb +145 -0
  329. data/lib/oci/resource_manager/models/stack.rb +18 -6
  330. data/lib/oci/resource_manager/models/stack_summary.rb +16 -1
  331. data/lib/oci/resource_manager/models/terraform_version_collection.rb +150 -0
  332. data/lib/oci/resource_manager/models/terraform_version_summary.rb +151 -0
  333. data/lib/oci/resource_manager/models/update_config_source_details.rb +3 -1
  334. data/lib/oci/resource_manager/models/update_stack_details.rb +16 -1
  335. data/lib/oci/resource_manager/models/work_request.rb +2 -2
  336. data/lib/oci/resource_manager/models/work_request_resource.rb +1 -1
  337. data/lib/oci/resource_manager/models/work_request_summary.rb +2 -2
  338. data/lib/oci/resource_manager/resource_manager.rb +17 -0
  339. data/lib/oci/resource_manager/resource_manager_client.rb +187 -29
  340. data/lib/oci/resource_manager/resource_manager_client_composite_operations.rb +6 -6
  341. data/lib/oci/version.rb +1 -1
  342. data/lib/oci/waas/models/access_rule.rb +2 -2
  343. data/lib/oci/waas/models/access_rule_criteria.rb +1 -1
  344. data/lib/oci/waas/models/address_list.rb +1 -0
  345. data/lib/oci/waas/models/address_rate_limiting.rb +1 -1
  346. data/lib/oci/waas/models/block_challenge_settings.rb +1 -1
  347. data/lib/oci/waas/models/caching_rule.rb +9 -8
  348. data/lib/oci/waas/models/caching_rule_criteria.rb +1 -5
  349. data/lib/oci/waas/models/caching_rule_summary.rb +9 -8
  350. data/lib/oci/waas/models/change_address_list_compartment_details.rb +1 -1
  351. data/lib/oci/waas/models/change_certificate_compartment_details.rb +1 -0
  352. data/lib/oci/waas/models/change_custom_protection_rule_compartment_details.rb +1 -1
  353. data/lib/oci/waas/models/change_http_redirect_compartment_details.rb +154 -0
  354. data/lib/oci/waas/models/change_waas_policy_compartment_details.rb +1 -0
  355. data/lib/oci/waas/models/create_address_list_details.rb +1 -1
  356. data/lib/oci/waas/models/create_custom_protection_rule_details.rb +17 -12
  357. data/lib/oci/waas/models/create_http_redirect_details.rb +238 -0
  358. data/lib/oci/waas/models/create_waas_policy_details.rb +2 -1
  359. data/lib/oci/waas/models/custom_protection_rule.rb +20 -16
  360. data/lib/oci/waas/models/custom_protection_rule_setting.rb +4 -3
  361. data/lib/oci/waas/models/custom_protection_rule_summary.rb +6 -6
  362. data/lib/oci/waas/models/http_redirect.rb +301 -0
  363. data/lib/oci/waas/models/http_redirect_summary.rb +301 -0
  364. data/lib/oci/waas/models/http_redirect_target.rb +209 -0
  365. data/lib/oci/waas/models/origin_group_origins.rb +2 -2
  366. data/lib/oci/waas/models/policy_config.rb +14 -7
  367. data/lib/oci/waas/models/protection_settings.rb +1 -1
  368. data/lib/oci/waas/models/purge_cache.rb +2 -2
  369. data/lib/oci/waas/models/update_address_list_details.rb +1 -1
  370. data/lib/oci/waas/models/update_custom_protection_rule_details.rb +16 -12
  371. data/lib/oci/waas/models/update_http_redirect_details.rb +215 -0
  372. data/lib/oci/waas/models/update_waas_policy_details.rb +2 -1
  373. data/lib/oci/waas/models/waas_policy.rb +1 -1
  374. data/lib/oci/waas/models/waas_policy_custom_protection_rule_summary.rb +5 -4
  375. data/lib/oci/waas/models/waf_config.rb +2 -1
  376. data/lib/oci/waas/models/waf_config_details.rb +2 -1
  377. data/lib/oci/waas/models/work_request.rb +3 -0
  378. data/lib/oci/waas/models/work_request_operation_types.rb +3 -0
  379. data/lib/oci/waas/models/work_request_summary.rb +3 -0
  380. data/lib/oci/waas/redirect_client.rb +493 -0
  381. data/lib/oci/waas/redirect_client_composite_operations.rb +172 -0
  382. data/lib/oci/waas/waas.rb +8 -0
  383. data/lib/oci/waas/waas_client.rb +35 -23
  384. data/lib/oci/waas/waas_client_composite_operations.rb +4 -4
  385. metadata +166 -3
@@ -0,0 +1,371 @@
1
+ # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
4
+ module OCI
5
+ # This class provides a wrapper around {OCI::Analytics::AnalyticsClient} and offers convenience methods
6
+ # for operations that would otherwise need to be chained together. For example, instead of performing an action
7
+ # on a resource (e.g. launching an instance, creating a load balancer) and then using a waiter to wait for the resource
8
+ # to enter a given state, you can call a single method in this class to accomplish the same functionality
9
+ class Analytics::AnalyticsClientCompositeOperations
10
+ # The {OCI::Analytics::AnalyticsClient} used to communicate with the service_client
11
+ #
12
+ # @return [OCI::Analytics::AnalyticsClient]
13
+ attr_reader :service_client
14
+
15
+ # Initializes a new AnalyticsClientCompositeOperations
16
+ #
17
+ # @param [OCI::Analytics::AnalyticsClient] service_client The client used to communicate with the service.
18
+ # Defaults to a new service client created via {OCI::Analytics::AnalyticsClient#initialize} with no arguments
19
+ def initialize(service_client = OCI::Analytics::AnalyticsClient.new)
20
+ @service_client = service_client
21
+ end
22
+
23
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
24
+ # rubocop:disable Layout/EmptyLines
25
+
26
+
27
+ # Calls {OCI::Analytics::AnalyticsClient#change_analytics_instance_compartment} and then waits for the {OCI::Analytics::Models::WorkRequest}
28
+ # to enter the given state(s).
29
+ #
30
+ # @param [String] analytics_instance_id The OCID of the AnalyticsInstance.
31
+ #
32
+ # @param [OCI::Analytics::Models::ChangeCompartmentDetails] change_compartment_details Input payload to move the resource to a different compartment.
33
+ #
34
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Analytics::Models::WorkRequest#status}
35
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Analytics::AnalyticsClient#change_analytics_instance_compartment}
36
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
37
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
38
+ # * max_wait_seconds The maximum time to wait, in seconds
39
+ #
40
+ # @return [OCI::Response] A {OCI::Response} object containing the completed {OCI::Analytics::Models::WorkRequest}
41
+ def change_analytics_instance_compartment_and_wait_for_state(analytics_instance_id, change_compartment_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
42
+ operation_result = @service_client.change_analytics_instance_compartment(analytics_instance_id, change_compartment_details, base_operation_opts)
43
+ use_util = OCI::Analytics::Util.respond_to?(:wait_on_work_request)
44
+
45
+ return operation_result if wait_for_states.empty? && !use_util
46
+
47
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
48
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
49
+
50
+ begin
51
+ if use_util
52
+ waiter_result = OCI::Analytics::Util.wait_on_work_request(
53
+ @service_client,
54
+ wait_for_resource_id,
55
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
56
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
57
+ )
58
+ else
59
+ waiter_result = @service_client.get_work_request(wait_for_resource_id).wait_until(
60
+ eval_proc: ->(response) { response.data.respond_to?(:status) && lowered_wait_for_states.include?(response.data.status.downcase) },
61
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
62
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
63
+ )
64
+ end
65
+ result_to_return = waiter_result
66
+
67
+ return result_to_return
68
+ rescue StandardError
69
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
70
+ end
71
+ end
72
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
73
+ # rubocop:enable Layout/EmptyLines
74
+
75
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
76
+ # rubocop:disable Layout/EmptyLines
77
+
78
+
79
+ # Calls {OCI::Analytics::AnalyticsClient#create_analytics_instance} and then waits for the {OCI::Analytics::Models::WorkRequest}
80
+ # to enter the given state(s).
81
+ #
82
+ # @param [OCI::Analytics::Models::CreateAnalyticsInstanceDetails] create_analytics_instance_details Analytics Instance details.
83
+ #
84
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Analytics::Models::WorkRequest#status}
85
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Analytics::AnalyticsClient#create_analytics_instance}
86
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
87
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
88
+ # * max_wait_seconds The maximum time to wait, in seconds
89
+ #
90
+ # @return [OCI::Response] A {OCI::Response} object containing the completed {OCI::Analytics::Models::WorkRequest}
91
+ def create_analytics_instance_and_wait_for_state(create_analytics_instance_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
92
+ operation_result = @service_client.create_analytics_instance(create_analytics_instance_details, base_operation_opts)
93
+ use_util = OCI::Analytics::Util.respond_to?(:wait_on_work_request)
94
+
95
+ return operation_result if wait_for_states.empty? && !use_util
96
+
97
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
98
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
99
+
100
+ begin
101
+ if use_util
102
+ waiter_result = OCI::Analytics::Util.wait_on_work_request(
103
+ @service_client,
104
+ wait_for_resource_id,
105
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
106
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
107
+ )
108
+ else
109
+ waiter_result = @service_client.get_work_request(wait_for_resource_id).wait_until(
110
+ eval_proc: ->(response) { response.data.respond_to?(:status) && lowered_wait_for_states.include?(response.data.status.downcase) },
111
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
112
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
113
+ )
114
+ end
115
+ result_to_return = waiter_result
116
+
117
+ return result_to_return
118
+ rescue StandardError
119
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
120
+ end
121
+ end
122
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
123
+ # rubocop:enable Layout/EmptyLines
124
+
125
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
126
+ # rubocop:disable Layout/EmptyLines
127
+
128
+
129
+ # Calls {OCI::Analytics::AnalyticsClient#delete_analytics_instance} and then waits for the {OCI::Analytics::Models::WorkRequest}
130
+ # to enter the given state(s).
131
+ #
132
+ # @param [String] analytics_instance_id The OCID of the AnalyticsInstance.
133
+ #
134
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Analytics::Models::WorkRequest#status}
135
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Analytics::AnalyticsClient#delete_analytics_instance}
136
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
137
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
138
+ # * max_wait_seconds The maximum time to wait, in seconds
139
+ #
140
+ # @return [OCI::Response] A {OCI::Response} object containing the completed {OCI::Analytics::Models::WorkRequest}
141
+ def delete_analytics_instance_and_wait_for_state(analytics_instance_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
142
+ operation_result = @service_client.delete_analytics_instance(analytics_instance_id, base_operation_opts)
143
+ use_util = OCI::Analytics::Util.respond_to?(:wait_on_work_request)
144
+
145
+ return operation_result if wait_for_states.empty? && !use_util
146
+
147
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
148
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
149
+
150
+ begin
151
+ if use_util
152
+ waiter_result = OCI::Analytics::Util.wait_on_work_request(
153
+ @service_client,
154
+ wait_for_resource_id,
155
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
156
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
157
+ )
158
+ else
159
+ waiter_result = @service_client.get_work_request(wait_for_resource_id).wait_until(
160
+ eval_proc: ->(response) { response.data.respond_to?(:status) && lowered_wait_for_states.include?(response.data.status.downcase) },
161
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
162
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
163
+ )
164
+ end
165
+ result_to_return = waiter_result
166
+
167
+ return result_to_return
168
+ rescue StandardError
169
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
170
+ end
171
+ end
172
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
173
+ # rubocop:enable Layout/EmptyLines
174
+
175
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
176
+ # rubocop:disable Layout/EmptyLines
177
+
178
+
179
+ # Calls {OCI::Analytics::AnalyticsClient#scale_analytics_instance} and then waits for the {OCI::Analytics::Models::WorkRequest}
180
+ # to enter the given state(s).
181
+ #
182
+ # @param [String] analytics_instance_id The OCID of the AnalyticsInstance.
183
+ #
184
+ # @param [OCI::Analytics::Models::ScaleAnalyticsInstanceDetails] scale_analytics_instance_details Input payload for scaling an Analytics instance up or down.
185
+ #
186
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Analytics::Models::WorkRequest#status}
187
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Analytics::AnalyticsClient#scale_analytics_instance}
188
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
189
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
190
+ # * max_wait_seconds The maximum time to wait, in seconds
191
+ #
192
+ # @return [OCI::Response] A {OCI::Response} object containing the completed {OCI::Analytics::Models::WorkRequest}
193
+ def scale_analytics_instance_and_wait_for_state(analytics_instance_id, scale_analytics_instance_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
194
+ operation_result = @service_client.scale_analytics_instance(analytics_instance_id, scale_analytics_instance_details, base_operation_opts)
195
+ use_util = OCI::Analytics::Util.respond_to?(:wait_on_work_request)
196
+
197
+ return operation_result if wait_for_states.empty? && !use_util
198
+
199
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
200
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
201
+
202
+ begin
203
+ if use_util
204
+ waiter_result = OCI::Analytics::Util.wait_on_work_request(
205
+ @service_client,
206
+ wait_for_resource_id,
207
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
208
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
209
+ )
210
+ else
211
+ waiter_result = @service_client.get_work_request(wait_for_resource_id).wait_until(
212
+ eval_proc: ->(response) { response.data.respond_to?(:status) && lowered_wait_for_states.include?(response.data.status.downcase) },
213
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
214
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
215
+ )
216
+ end
217
+ result_to_return = waiter_result
218
+
219
+ return result_to_return
220
+ rescue StandardError
221
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
222
+ end
223
+ end
224
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
225
+ # rubocop:enable Layout/EmptyLines
226
+
227
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
228
+ # rubocop:disable Layout/EmptyLines
229
+
230
+
231
+ # Calls {OCI::Analytics::AnalyticsClient#start_analytics_instance} and then waits for the {OCI::Analytics::Models::WorkRequest}
232
+ # to enter the given state(s).
233
+ #
234
+ # @param [String] analytics_instance_id The OCID of the AnalyticsInstance.
235
+ #
236
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Analytics::Models::WorkRequest#status}
237
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Analytics::AnalyticsClient#start_analytics_instance}
238
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
239
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
240
+ # * max_wait_seconds The maximum time to wait, in seconds
241
+ #
242
+ # @return [OCI::Response] A {OCI::Response} object containing the completed {OCI::Analytics::Models::WorkRequest}
243
+ def start_analytics_instance_and_wait_for_state(analytics_instance_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
244
+ operation_result = @service_client.start_analytics_instance(analytics_instance_id, base_operation_opts)
245
+ use_util = OCI::Analytics::Util.respond_to?(:wait_on_work_request)
246
+
247
+ return operation_result if wait_for_states.empty? && !use_util
248
+
249
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
250
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
251
+
252
+ begin
253
+ if use_util
254
+ waiter_result = OCI::Analytics::Util.wait_on_work_request(
255
+ @service_client,
256
+ wait_for_resource_id,
257
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
258
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
259
+ )
260
+ else
261
+ waiter_result = @service_client.get_work_request(wait_for_resource_id).wait_until(
262
+ eval_proc: ->(response) { response.data.respond_to?(:status) && lowered_wait_for_states.include?(response.data.status.downcase) },
263
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
264
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
265
+ )
266
+ end
267
+ result_to_return = waiter_result
268
+
269
+ return result_to_return
270
+ rescue StandardError
271
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
272
+ end
273
+ end
274
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
275
+ # rubocop:enable Layout/EmptyLines
276
+
277
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
278
+ # rubocop:disable Layout/EmptyLines
279
+
280
+
281
+ # Calls {OCI::Analytics::AnalyticsClient#stop_analytics_instance} and then waits for the {OCI::Analytics::Models::WorkRequest}
282
+ # to enter the given state(s).
283
+ #
284
+ # @param [String] analytics_instance_id The OCID of the AnalyticsInstance.
285
+ #
286
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Analytics::Models::WorkRequest#status}
287
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Analytics::AnalyticsClient#stop_analytics_instance}
288
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
289
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
290
+ # * max_wait_seconds The maximum time to wait, in seconds
291
+ #
292
+ # @return [OCI::Response] A {OCI::Response} object containing the completed {OCI::Analytics::Models::WorkRequest}
293
+ def stop_analytics_instance_and_wait_for_state(analytics_instance_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
294
+ operation_result = @service_client.stop_analytics_instance(analytics_instance_id, base_operation_opts)
295
+ use_util = OCI::Analytics::Util.respond_to?(:wait_on_work_request)
296
+
297
+ return operation_result if wait_for_states.empty? && !use_util
298
+
299
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
300
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
301
+
302
+ begin
303
+ if use_util
304
+ waiter_result = OCI::Analytics::Util.wait_on_work_request(
305
+ @service_client,
306
+ wait_for_resource_id,
307
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
308
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
309
+ )
310
+ else
311
+ waiter_result = @service_client.get_work_request(wait_for_resource_id).wait_until(
312
+ eval_proc: ->(response) { response.data.respond_to?(:status) && lowered_wait_for_states.include?(response.data.status.downcase) },
313
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
314
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
315
+ )
316
+ end
317
+ result_to_return = waiter_result
318
+
319
+ return result_to_return
320
+ rescue StandardError
321
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
322
+ end
323
+ end
324
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
325
+ # rubocop:enable Layout/EmptyLines
326
+
327
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
328
+ # rubocop:disable Layout/EmptyLines
329
+
330
+
331
+ # Calls {OCI::Analytics::AnalyticsClient#update_analytics_instance} and then waits for the {OCI::Analytics::Models::AnalyticsInstance} acted upon
332
+ # to enter the given state(s).
333
+ #
334
+ # @param [String] analytics_instance_id The OCID of the AnalyticsInstance.
335
+ #
336
+ # @param [OCI::Analytics::Models::UpdateAnalyticsInstanceDetails] update_analytics_instance_details The Analytics Instance fields to update. Fields that are not provided
337
+ # will not be updated.
338
+ #
339
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Analytics::Models::AnalyticsInstance#lifecycle_state}
340
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Analytics::AnalyticsClient#update_analytics_instance}
341
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
342
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
343
+ # * max_wait_seconds The maximum time to wait, in seconds
344
+ #
345
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Analytics::Models::AnalyticsInstance}
346
+ def update_analytics_instance_and_wait_for_state(analytics_instance_id, update_analytics_instance_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
347
+ operation_result = @service_client.update_analytics_instance(analytics_instance_id, update_analytics_instance_details, base_operation_opts)
348
+
349
+ return operation_result if wait_for_states.empty?
350
+
351
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
352
+ wait_for_resource_id = operation_result.data.id
353
+
354
+ begin
355
+ waiter_result = @service_client.get_analytics_instance(wait_for_resource_id).wait_until(
356
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
357
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
358
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
359
+ )
360
+ result_to_return = waiter_result
361
+
362
+ return result_to_return
363
+ rescue StandardError
364
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
365
+ end
366
+ end
367
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
368
+ # rubocop:enable Layout/EmptyLines
369
+ end
370
+ end
371
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,406 @@
1
+ # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+ require 'logger'
5
+
6
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
7
+ module OCI
8
+ # Analytics Instance metadata.
9
+ #
10
+ class Analytics::Models::AnalyticsInstance
11
+ LIFECYCLE_STATE_ENUM = [
12
+ LIFECYCLE_STATE_ACTIVE = 'ACTIVE'.freeze,
13
+ LIFECYCLE_STATE_CREATING = 'CREATING'.freeze,
14
+ LIFECYCLE_STATE_DELETED = 'DELETED'.freeze,
15
+ LIFECYCLE_STATE_DELETING = 'DELETING'.freeze,
16
+ LIFECYCLE_STATE_FAILED = 'FAILED'.freeze,
17
+ LIFECYCLE_STATE_INACTIVE = 'INACTIVE'.freeze,
18
+ LIFECYCLE_STATE_UPDATING = 'UPDATING'.freeze,
19
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
20
+ ].freeze
21
+
22
+ FEATURE_SET_ENUM = [
23
+ FEATURE_SET_SELF_SERVICE_ANALYTICS = 'SELF_SERVICE_ANALYTICS'.freeze,
24
+ FEATURE_SET_ENTERPRISE_ANALYTICS = 'ENTERPRISE_ANALYTICS'.freeze,
25
+ FEATURE_SET_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
26
+ ].freeze
27
+
28
+ LICENSE_TYPE_ENUM = [
29
+ LICENSE_TYPE_LICENSE_INCLUDED = 'LICENSE_INCLUDED'.freeze,
30
+ LICENSE_TYPE_BRING_YOUR_OWN_LICENSE = 'BRING_YOUR_OWN_LICENSE'.freeze,
31
+ LICENSE_TYPE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
32
+ ].freeze
33
+
34
+ # **[Required]** The resource OCID.
35
+ #
36
+ # @return [String]
37
+ attr_accessor :id
38
+
39
+ # **[Required]** The name of the Analytics instance. This name must be unique in the tenancy and cannot be changed.
40
+ #
41
+ # @return [String]
42
+ attr_accessor :name
43
+
44
+ # Optional description.
45
+ #
46
+ # @return [String]
47
+ attr_accessor :description
48
+
49
+ # **[Required]** The OCID of the compartment.
50
+ #
51
+ # @return [String]
52
+ attr_accessor :compartment_id
53
+
54
+ # **[Required]** The current state of an instance.
55
+ #
56
+ # @return [String]
57
+ attr_reader :lifecycle_state
58
+
59
+ # **[Required]** Analytics feature set.
60
+ #
61
+ # @return [String]
62
+ attr_reader :feature_set
63
+
64
+ # This attribute is required.
65
+ # @return [OCI::Analytics::Models::Capacity]
66
+ attr_accessor :capacity
67
+
68
+ # The license used for the service.
69
+ #
70
+ # @return [String]
71
+ attr_reader :license_type
72
+
73
+ # Email address receiving notifications.
74
+ #
75
+ # @return [String]
76
+ attr_accessor :email_notification
77
+
78
+ # URL of the Analytics service.
79
+ #
80
+ # @return [String]
81
+ attr_accessor :service_url
82
+
83
+ # Defined tags for this resource. Each key is predefined and scoped to a
84
+ # namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
85
+ #
86
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
87
+ #
88
+ # @return [Hash<String, Hash<String, Object>>]
89
+ attr_accessor :defined_tags
90
+
91
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no
92
+ # predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
93
+ #
94
+ # Example: `{\"Department\": \"Finance\"}`
95
+ #
96
+ # @return [Hash<String, String>]
97
+ attr_accessor :freeform_tags
98
+
99
+ # **[Required]** The date and time the instance was created, in the format defined by RFC3339.
100
+ #
101
+ # Example: `2016-08-25T21:10:29.600Z`
102
+ #
103
+ # @return [DateTime]
104
+ attr_accessor :time_created
105
+
106
+ # The date and time the instance was last updated (in the format defined by RFC3339).
107
+ # This timestamp represents updates made through this API. External events do not
108
+ # influence it.
109
+ #
110
+ # @return [DateTime]
111
+ attr_accessor :time_updated
112
+
113
+ # Attribute mapping from ruby-style variable name to JSON key.
114
+ def self.attribute_map
115
+ {
116
+ # rubocop:disable Style/SymbolLiteral
117
+ 'id': :'id',
118
+ 'name': :'name',
119
+ 'description': :'description',
120
+ 'compartment_id': :'compartmentId',
121
+ 'lifecycle_state': :'lifecycleState',
122
+ 'feature_set': :'featureSet',
123
+ 'capacity': :'capacity',
124
+ 'license_type': :'licenseType',
125
+ 'email_notification': :'emailNotification',
126
+ 'service_url': :'serviceUrl',
127
+ 'defined_tags': :'definedTags',
128
+ 'freeform_tags': :'freeformTags',
129
+ 'time_created': :'timeCreated',
130
+ 'time_updated': :'timeUpdated'
131
+ # rubocop:enable Style/SymbolLiteral
132
+ }
133
+ end
134
+
135
+ # Attribute type mapping.
136
+ def self.swagger_types
137
+ {
138
+ # rubocop:disable Style/SymbolLiteral
139
+ 'id': :'String',
140
+ 'name': :'String',
141
+ 'description': :'String',
142
+ 'compartment_id': :'String',
143
+ 'lifecycle_state': :'String',
144
+ 'feature_set': :'String',
145
+ 'capacity': :'OCI::Analytics::Models::Capacity',
146
+ 'license_type': :'String',
147
+ 'email_notification': :'String',
148
+ 'service_url': :'String',
149
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
150
+ 'freeform_tags': :'Hash<String, String>',
151
+ 'time_created': :'DateTime',
152
+ 'time_updated': :'DateTime'
153
+ # rubocop:enable Style/SymbolLiteral
154
+ }
155
+ end
156
+
157
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
158
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
159
+
160
+
161
+ # Initializes the object
162
+ # @param [Hash] attributes Model attributes in the form of hash
163
+ # @option attributes [String] :id The value to assign to the {#id} property
164
+ # @option attributes [String] :name The value to assign to the {#name} property
165
+ # @option attributes [String] :description The value to assign to the {#description} property
166
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
167
+ # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
168
+ # @option attributes [String] :feature_set The value to assign to the {#feature_set} property
169
+ # @option attributes [OCI::Analytics::Models::Capacity] :capacity The value to assign to the {#capacity} property
170
+ # @option attributes [String] :license_type The value to assign to the {#license_type} property
171
+ # @option attributes [String] :email_notification The value to assign to the {#email_notification} property
172
+ # @option attributes [String] :service_url The value to assign to the {#service_url} property
173
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
174
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
175
+ # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
176
+ # @option attributes [DateTime] :time_updated The value to assign to the {#time_updated} property
177
+ def initialize(attributes = {})
178
+ return unless attributes.is_a?(Hash)
179
+
180
+ # convert string to symbol for hash key
181
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
182
+
183
+ self.id = attributes[:'id'] if attributes[:'id']
184
+
185
+ self.name = attributes[:'name'] if attributes[:'name']
186
+
187
+ self.description = attributes[:'description'] if attributes[:'description']
188
+
189
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
190
+
191
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
192
+
193
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
194
+
195
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
196
+
197
+ raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
198
+
199
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
200
+
201
+ self.feature_set = attributes[:'featureSet'] if attributes[:'featureSet']
202
+
203
+ raise 'You cannot provide both :featureSet and :feature_set' if attributes.key?(:'featureSet') && attributes.key?(:'feature_set')
204
+
205
+ self.feature_set = attributes[:'feature_set'] if attributes[:'feature_set']
206
+
207
+ self.capacity = attributes[:'capacity'] if attributes[:'capacity']
208
+
209
+ self.license_type = attributes[:'licenseType'] if attributes[:'licenseType']
210
+
211
+ raise 'You cannot provide both :licenseType and :license_type' if attributes.key?(:'licenseType') && attributes.key?(:'license_type')
212
+
213
+ self.license_type = attributes[:'license_type'] if attributes[:'license_type']
214
+
215
+ self.email_notification = attributes[:'emailNotification'] if attributes[:'emailNotification']
216
+
217
+ raise 'You cannot provide both :emailNotification and :email_notification' if attributes.key?(:'emailNotification') && attributes.key?(:'email_notification')
218
+
219
+ self.email_notification = attributes[:'email_notification'] if attributes[:'email_notification']
220
+
221
+ self.service_url = attributes[:'serviceUrl'] if attributes[:'serviceUrl']
222
+
223
+ raise 'You cannot provide both :serviceUrl and :service_url' if attributes.key?(:'serviceUrl') && attributes.key?(:'service_url')
224
+
225
+ self.service_url = attributes[:'service_url'] if attributes[:'service_url']
226
+
227
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
228
+
229
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
230
+
231
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
232
+
233
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
234
+
235
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
236
+
237
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
238
+
239
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
240
+
241
+ raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
242
+
243
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
244
+
245
+ self.time_updated = attributes[:'timeUpdated'] if attributes[:'timeUpdated']
246
+
247
+ raise 'You cannot provide both :timeUpdated and :time_updated' if attributes.key?(:'timeUpdated') && attributes.key?(:'time_updated')
248
+
249
+ self.time_updated = attributes[:'time_updated'] if attributes[:'time_updated']
250
+ end
251
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
252
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
253
+
254
+ # Custom attribute writer method checking allowed values (enum).
255
+ # @param [Object] lifecycle_state Object to be assigned
256
+ def lifecycle_state=(lifecycle_state)
257
+ # rubocop:disable Style/ConditionalAssignment
258
+ if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
259
+ OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger
260
+ @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
261
+ else
262
+ @lifecycle_state = lifecycle_state
263
+ end
264
+ # rubocop:enable Style/ConditionalAssignment
265
+ end
266
+
267
+ # Custom attribute writer method checking allowed values (enum).
268
+ # @param [Object] feature_set Object to be assigned
269
+ def feature_set=(feature_set)
270
+ # rubocop:disable Style/ConditionalAssignment
271
+ if feature_set && !FEATURE_SET_ENUM.include?(feature_set)
272
+ OCI.logger.debug("Unknown value for 'feature_set' [" + feature_set + "]. Mapping to 'FEATURE_SET_UNKNOWN_ENUM_VALUE'") if OCI.logger
273
+ @feature_set = FEATURE_SET_UNKNOWN_ENUM_VALUE
274
+ else
275
+ @feature_set = feature_set
276
+ end
277
+ # rubocop:enable Style/ConditionalAssignment
278
+ end
279
+
280
+ # Custom attribute writer method checking allowed values (enum).
281
+ # @param [Object] license_type Object to be assigned
282
+ def license_type=(license_type)
283
+ # rubocop:disable Style/ConditionalAssignment
284
+ if license_type && !LICENSE_TYPE_ENUM.include?(license_type)
285
+ OCI.logger.debug("Unknown value for 'license_type' [" + license_type + "]. Mapping to 'LICENSE_TYPE_UNKNOWN_ENUM_VALUE'") if OCI.logger
286
+ @license_type = LICENSE_TYPE_UNKNOWN_ENUM_VALUE
287
+ else
288
+ @license_type = license_type
289
+ end
290
+ # rubocop:enable Style/ConditionalAssignment
291
+ end
292
+
293
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
294
+
295
+
296
+ # Checks equality by comparing each attribute.
297
+ # @param [Object] other the other object to be compared
298
+ def ==(other)
299
+ return true if equal?(other)
300
+
301
+ self.class == other.class &&
302
+ id == other.id &&
303
+ name == other.name &&
304
+ description == other.description &&
305
+ compartment_id == other.compartment_id &&
306
+ lifecycle_state == other.lifecycle_state &&
307
+ feature_set == other.feature_set &&
308
+ capacity == other.capacity &&
309
+ license_type == other.license_type &&
310
+ email_notification == other.email_notification &&
311
+ service_url == other.service_url &&
312
+ defined_tags == other.defined_tags &&
313
+ freeform_tags == other.freeform_tags &&
314
+ time_created == other.time_created &&
315
+ time_updated == other.time_updated
316
+ end
317
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
318
+
319
+ # @see the `==` method
320
+ # @param [Object] other the other object to be compared
321
+ def eql?(other)
322
+ self == other
323
+ end
324
+
325
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
326
+
327
+
328
+ # Calculates hash code according to all attributes.
329
+ # @return [Fixnum] Hash code
330
+ def hash
331
+ [id, name, description, compartment_id, lifecycle_state, feature_set, capacity, license_type, email_notification, service_url, defined_tags, freeform_tags, time_created, time_updated].hash
332
+ end
333
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
334
+
335
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
336
+
337
+
338
+ # Builds the object from hash
339
+ # @param [Hash] attributes Model attributes in the form of hash
340
+ # @return [Object] Returns the model itself
341
+ def build_from_hash(attributes)
342
+ return nil unless attributes.is_a?(Hash)
343
+
344
+ self.class.swagger_types.each_pair do |key, type|
345
+ if type =~ /^Array<(.*)>/i
346
+ # check to ensure the input is an array given that the the attribute
347
+ # is documented as an array but the input is not
348
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
349
+ public_method("#{key}=").call(
350
+ attributes[self.class.attribute_map[key]]
351
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
352
+ )
353
+ end
354
+ elsif !attributes[self.class.attribute_map[key]].nil?
355
+ public_method("#{key}=").call(
356
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
357
+ )
358
+ end
359
+ # or else data not found in attributes(hash), not an issue as the data can be optional
360
+ end
361
+
362
+ self
363
+ end
364
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
365
+
366
+ # Returns the string representation of the object
367
+ # @return [String] String presentation of the object
368
+ def to_s
369
+ to_hash.to_s
370
+ end
371
+
372
+ # Returns the object in the form of hash
373
+ # @return [Hash] Returns the object in the form of hash
374
+ def to_hash
375
+ hash = {}
376
+ self.class.attribute_map.each_pair do |attr, param|
377
+ value = public_method(attr).call
378
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
379
+
380
+ hash[param] = _to_hash(value)
381
+ end
382
+ hash
383
+ end
384
+
385
+ private
386
+
387
+ # Outputs non-array value in the form of hash
388
+ # For object, use to_hash. Otherwise, just return the value
389
+ # @param [Object] value Any valid value
390
+ # @return [Hash] Returns the value in the form of hash
391
+ def _to_hash(value)
392
+ if value.is_a?(Array)
393
+ value.compact.map { |v| _to_hash(v) }
394
+ elsif value.is_a?(Hash)
395
+ {}.tap do |hash|
396
+ value.each { |k, v| hash[k] = _to_hash(v) }
397
+ end
398
+ elsif value.respond_to? :to_hash
399
+ value.to_hash
400
+ else
401
+ value
402
+ end
403
+ end
404
+ end
405
+ end
406
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength