oci 2.23.0 → 2.24.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 (243) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/lib/oci/analytics/analytics.rb +5 -0
  4. data/lib/oci/analytics/analytics_client.rb +422 -52
  5. data/lib/oci/analytics/analytics_client_composite_operations.rb +188 -27
  6. data/lib/oci/analytics/models/analytics_instance.rb +32 -15
  7. data/lib/oci/analytics/models/analytics_instance_summary.rb +9 -8
  8. data/lib/oci/analytics/models/capacity.rb +2 -2
  9. data/lib/oci/analytics/models/change_analytics_instance_network_endpoint_details.rb +1 -1
  10. data/lib/oci/analytics/models/create_analytics_instance_details.rb +8 -6
  11. data/lib/oci/analytics/models/create_private_access_channel_details.rb +9 -9
  12. data/lib/oci/analytics/models/create_resource_group_details.rb +190 -0
  13. data/lib/oci/analytics/models/create_vanity_url_details.rb +5 -5
  14. data/lib/oci/analytics/models/feature_bundle.rb +1 -0
  15. data/lib/oci/analytics/models/instance_resource_group.rb +200 -0
  16. data/lib/oci/analytics/models/instance_resource_group_summary.rb +200 -0
  17. data/lib/oci/analytics/models/private_access_channel.rb +13 -13
  18. data/lib/oci/analytics/models/private_endpoint_details.rb +1 -1
  19. data/lib/oci/analytics/models/private_source_dns_zone.rb +3 -3
  20. data/lib/oci/analytics/models/private_source_scan_host.rb +4 -4
  21. data/lib/oci/analytics/models/public_endpoint_details.rb +1 -1
  22. data/lib/oci/analytics/models/resource_group_sort_by.rb +17 -0
  23. data/lib/oci/analytics/models/set_feature_bundle_details.rb +1 -0
  24. data/lib/oci/analytics/models/set_kms_key_details.rb +2 -2
  25. data/lib/oci/analytics/models/update_analytics_instance_details.rb +3 -3
  26. data/lib/oci/analytics/models/update_private_access_channel_details.rb +9 -9
  27. data/lib/oci/analytics/models/update_resource_group_details.rb +190 -0
  28. data/lib/oci/analytics/models/update_vanity_url_details.rb +4 -4
  29. data/lib/oci/analytics/models/vanity_url_details.rb +5 -5
  30. data/lib/oci/analytics/models/work_request.rb +4 -0
  31. data/lib/oci/analytics/models/work_request_action_result.rb +4 -1
  32. data/lib/oci/analytics/models/work_request_error.rb +2 -2
  33. data/lib/oci/analytics/models/work_request_log.rb +1 -1
  34. data/lib/oci/analytics/models/work_request_operation_type.rb +5 -1
  35. data/lib/oci/analytics/models/work_request_resource.rb +4 -1
  36. data/lib/oci/analytics/models/work_request_summary.rb +4 -0
  37. data/lib/oci/apiaccesscontrol/api_metadata_client.rb +8 -6
  38. data/lib/oci/apiaccesscontrol/apiaccesscontrol.rb +1 -0
  39. data/lib/oci/apiaccesscontrol/models/api_metadata.rb +12 -2
  40. data/lib/oci/apiaccesscontrol/models/api_metadata_by_entity_type_summary.rb +15 -1
  41. data/lib/oci/apiaccesscontrol/models/approver_detail.rb +15 -1
  42. data/lib/oci/apiaccesscontrol/models/approver_group_level.rb +169 -0
  43. data/lib/oci/apiaccesscontrol/models/create_privileged_api_control_details.rb +17 -3
  44. data/lib/oci/apiaccesscontrol/models/create_privileged_api_request_details.rb +1 -1
  45. data/lib/oci/apiaccesscontrol/models/privileged_api_control.rb +15 -2
  46. data/lib/oci/apiaccesscontrol/models/privileged_api_control_summary.rb +0 -1
  47. data/lib/oci/apiaccesscontrol/models/update_privileged_api_control_details.rb +16 -2
  48. data/lib/oci/apiaccesscontrol/privileged_api_control_client.rb +4 -3
  49. data/lib/oci/apiaccesscontrol/privileged_api_requests_client.rb +4 -3
  50. data/lib/oci/apiaccesscontrol/privileged_api_work_request_client.rb +4 -3
  51. data/lib/oci/core/core.rb +5 -0
  52. data/lib/oci/core/models/boot_volume_backup.rb +87 -4
  53. data/lib/oci/core/models/create_boot_volume_backup_details.rb +59 -4
  54. data/lib/oci/core/models/create_cross_connect_details.rb +50 -1
  55. data/lib/oci/core/models/create_cross_connect_group_details.rb +71 -4
  56. data/lib/oci/core/models/create_dedicated_vm_host_details.rb +21 -4
  57. data/lib/oci/core/models/create_virtual_circuit_details.rb +63 -4
  58. data/lib/oci/core/models/create_volume_backup_details.rb +59 -4
  59. data/lib/oci/core/models/create_volume_group_backup_details.rb +59 -4
  60. data/lib/oci/core/models/cross_connect.rb +43 -1
  61. data/lib/oci/core/models/cross_connect_group.rb +63 -4
  62. data/lib/oci/core/models/dedicated_vm_host.rb +18 -1
  63. data/lib/oci/core/models/dedicated_vm_host_instance_summary.rb +18 -1
  64. data/lib/oci/core/models/dedicated_vm_host_summary.rb +18 -1
  65. data/lib/oci/core/models/instances.rb +140 -0
  66. data/lib/oci/core/models/letter_of_authority.rb +31 -4
  67. data/lib/oci/core/models/loa_extension_data.rb +170 -0
  68. data/lib/oci/core/models/provider_remote_region_name.rb +174 -0
  69. data/lib/oci/core/models/retention_duration.rb +189 -0
  70. data/lib/oci/core/models/supported_capabilities.rb +21 -4
  71. data/lib/oci/core/models/update_boot_volume_backup_details.rb +59 -4
  72. data/lib/oci/core/models/update_cross_connect_details.rb +32 -4
  73. data/lib/oci/core/models/update_cross_connect_group_details.rb +49 -4
  74. data/lib/oci/core/models/update_cross_connect_letter_of_authority_details.rb +195 -0
  75. data/lib/oci/core/models/update_virtual_circuit_details.rb +30 -1
  76. data/lib/oci/core/models/update_volume_backup_details.rb +59 -4
  77. data/lib/oci/core/models/update_volume_group_backup_details.rb +59 -4
  78. data/lib/oci/core/models/virtual_circuit.rb +80 -1
  79. data/lib/oci/core/models/volume_backup.rb +87 -4
  80. data/lib/oci/core/models/volume_backup_schedule.rb +45 -4
  81. data/lib/oci/core/models/volume_group_backup.rb +73 -4
  82. data/lib/oci/core/virtual_network_client.rb +136 -2
  83. data/lib/oci/database/database.rb +13 -0
  84. data/lib/oci/database/database_client.rb +923 -111
  85. data/lib/oci/database/database_client_composite_operations.rb +283 -0
  86. data/lib/oci/database/models/basecc_vm_cluster.rb +713 -0
  87. data/lib/oci/database/models/basecc_vm_cluster_summary.rb +716 -0
  88. data/lib/oci/database/models/basecc_vm_cluster_update.rb +342 -0
  89. data/lib/oci/database/models/basecc_vm_cluster_update_details.rb +198 -0
  90. data/lib/oci/database/models/basecc_vm_cluster_update_history_entry.rb +318 -0
  91. data/lib/oci/database/models/basecc_vm_cluster_update_history_entry_summary.rb +321 -0
  92. data/lib/oci/database/models/basecc_vm_cluster_update_summary.rb +349 -0
  93. data/lib/oci/database/models/change_basecc_vm_cluster_compartment_details.rb +156 -0
  94. data/lib/oci/database/models/cloud_vm_cluster.rb +28 -1
  95. data/lib/oci/database/models/cloud_vm_cluster_summary.rb +28 -1
  96. data/lib/oci/database/models/create_basecc_vm_cluster_details.rb +506 -0
  97. data/lib/oci/database/models/create_database_software_image_details.rb +2 -1
  98. data/lib/oci/database/models/database_software_image.rb +1 -0
  99. data/lib/oci/database/models/database_software_image_summary.rb +1 -0
  100. data/lib/oci/database/models/exadata_live_image_version_details.rb +216 -0
  101. data/lib/oci/database/models/exadb_vm_cluster.rb +53 -4
  102. data/lib/oci/database/models/exadb_vm_cluster_summary.rb +53 -4
  103. data/lib/oci/database/models/register_exadb_vm_cluster_pkcs_details.rb +171 -0
  104. data/lib/oci/database/models/unregister_exadb_vm_cluster_pkcs_details.rb +171 -0
  105. data/lib/oci/database/models/update.rb +94 -1
  106. data/lib/oci/database/models/update_basecc_vm_cluster_details.rb +345 -0
  107. data/lib/oci/database/models/update_details.rb +33 -1
  108. data/lib/oci/database/models/update_history_entry.rb +39 -1
  109. data/lib/oci/database/models/update_history_entry_summary.rb +39 -1
  110. data/lib/oci/database/models/update_summary.rb +94 -1
  111. data/lib/oci/database/models/vm_cluster.rb +28 -1
  112. data/lib/oci/database/models/vm_cluster_summary.rb +28 -1
  113. data/lib/oci/database/models/vm_cluster_update.rb +94 -1
  114. data/lib/oci/database/models/vm_cluster_update_details.rb +33 -1
  115. data/lib/oci/database/models/vm_cluster_update_history_entry.rb +39 -1
  116. data/lib/oci/database/models/vm_cluster_update_history_entry_summary.rb +39 -1
  117. data/lib/oci/database/models/vm_cluster_update_summary.rb +94 -1
  118. data/lib/oci/file_storage/models/file_system.rb +37 -4
  119. data/lib/oci/file_storage/models/file_system_summary.rb +37 -4
  120. data/lib/oci/file_storage/models/snapshot.rb +19 -4
  121. data/lib/oci/file_storage/models/snapshot_summary.rb +19 -4
  122. data/lib/oci/generative_ai/models/create_dedicated_ai_cluster_details.rb +3 -0
  123. data/lib/oci/generative_ai/models/dedicated_ai_cluster.rb +2 -0
  124. data/lib/oci/golden_gate/golden_gate.rb +29 -0
  125. data/lib/oci/golden_gate/golden_gate_client.rb +185 -6
  126. data/lib/oci/golden_gate/models/ai_model_auth_details.rb +194 -0
  127. data/lib/oci/golden_gate/models/ai_model_auth_details_summary.rb +194 -0
  128. data/lib/oci/golden_gate/models/ai_model_auth_type.rb +13 -0
  129. data/lib/oci/golden_gate/models/ai_model_collection.rb +153 -0
  130. data/lib/oci/golden_gate/models/ai_model_connection.rb +350 -0
  131. data/lib/oci/golden_gate/models/ai_model_connection_summary.rb +333 -0
  132. data/lib/oci/golden_gate/models/ai_model_summary.rb +216 -0
  133. data/lib/oci/golden_gate/models/ai_provider_collection.rb +153 -0
  134. data/lib/oci/golden_gate/models/ai_provider_summary.rb +249 -0
  135. data/lib/oci/golden_gate/models/amazon_kinesis_connection.rb +1 -0
  136. data/lib/oci/golden_gate/models/amazon_kinesis_connection_summary.rb +1 -0
  137. data/lib/oci/golden_gate/models/amazon_s3_connection.rb +1 -1
  138. data/lib/oci/golden_gate/models/amazon_s3_connection_summary.rb +1 -1
  139. data/lib/oci/golden_gate/models/amazon_s3_iceberg_storage.rb +1 -0
  140. data/lib/oci/golden_gate/models/amazon_s3_iceberg_storage_summary.rb +1 -0
  141. data/lib/oci/golden_gate/models/api_key_ai_model_auth_details.rb +199 -0
  142. data/lib/oci/golden_gate/models/api_key_ai_model_auth_details_summary.rb +181 -0
  143. data/lib/oci/golden_gate/models/connection.rb +43 -6
  144. data/lib/oci/golden_gate/models/connection_assignment.rb +63 -1
  145. data/lib/oci/golden_gate/models/connection_assignment_summary.rb +64 -1
  146. data/lib/oci/golden_gate/models/connection_summary.rb +42 -6
  147. data/lib/oci/golden_gate/models/connection_type.rb +2 -1
  148. data/lib/oci/golden_gate/models/create_ai_model_auth_details.rb +187 -0
  149. data/lib/oci/golden_gate/models/create_ai_model_connection_details.rb +298 -0
  150. data/lib/oci/golden_gate/models/create_amazon_kinesis_connection_details.rb +4 -1
  151. data/lib/oci/golden_gate/models/create_amazon_redshift_connection_details.rb +3 -1
  152. data/lib/oci/golden_gate/models/create_amazon_s3_connection_details.rb +5 -3
  153. data/lib/oci/golden_gate/models/create_amazon_s3_iceberg_storage_details.rb +5 -2
  154. data/lib/oci/golden_gate/models/create_api_key_ai_model_auth_details.rb +199 -0
  155. data/lib/oci/golden_gate/models/create_azure_data_lake_storage_connection_details.rb +9 -3
  156. data/lib/oci/golden_gate/models/create_azure_data_lake_storage_iceberg_storage_details.rb +3 -1
  157. data/lib/oci/golden_gate/models/create_azure_synapse_connection_details.rb +3 -1
  158. data/lib/oci/golden_gate/models/create_connection_details.rb +43 -7
  159. data/lib/oci/golden_gate/models/create_database_registration_details.rb +6 -2
  160. data/lib/oci/golden_gate/models/create_databricks_connection_details.rb +6 -2
  161. data/lib/oci/golden_gate/models/create_db2_connection_details.rb +9 -3
  162. data/lib/oci/golden_gate/models/create_elasticsearch_connection_details.rb +3 -1
  163. data/lib/oci/golden_gate/models/create_golden_gate_connection_details.rb +3 -1
  164. data/lib/oci/golden_gate/models/create_google_big_query_connection_details.rb +3 -1
  165. data/lib/oci/golden_gate/models/create_google_cloud_storage_connection_details.rb +3 -1
  166. data/lib/oci/golden_gate/models/create_google_cloud_storage_iceberg_storage_details.rb +3 -1
  167. data/lib/oci/golden_gate/models/create_google_pub_sub_connection_details.rb +3 -1
  168. data/lib/oci/golden_gate/models/create_iceberg_connection_details.rb +1 -0
  169. data/lib/oci/golden_gate/models/create_iceberg_storage_details.rb +5 -1
  170. data/lib/oci/golden_gate/models/create_java_message_service_connection_details.rb +21 -7
  171. data/lib/oci/golden_gate/models/create_kafka_connection_details.rb +18 -6
  172. data/lib/oci/golden_gate/models/create_kafka_schema_registry_connection_details.rb +18 -6
  173. data/lib/oci/golden_gate/models/create_microsoft_fabric_connection_details.rb +3 -1
  174. data/lib/oci/golden_gate/models/create_microsoft_sqlserver_connection_details.rb +3 -1
  175. data/lib/oci/golden_gate/models/create_mongo_db_connection_details.rb +9 -3
  176. data/lib/oci/golden_gate/models/create_mysql_connection_details.rb +6 -2
  177. data/lib/oci/golden_gate/models/create_no_iceberg_storage_details.rb +148 -0
  178. data/lib/oci/golden_gate/models/create_oci_gen_ai_model_auth_details.rb +242 -0
  179. data/lib/oci/golden_gate/models/create_oci_object_storage_connection_details.rb +6 -2
  180. data/lib/oci/golden_gate/models/create_oci_object_storage_s3_api_iceberg_storage_details.rb +228 -0
  181. data/lib/oci/golden_gate/models/create_oracle_ai_data_platform_connection_details.rb +6 -2
  182. data/lib/oci/golden_gate/models/create_oracle_connection_details.rb +7 -3
  183. data/lib/oci/golden_gate/models/create_oracle_nosql_connection_details.rb +6 -2
  184. data/lib/oci/golden_gate/models/create_postgresql_connection_details.rb +6 -2
  185. data/lib/oci/golden_gate/models/create_redis_connection_details.rb +15 -5
  186. data/lib/oci/golden_gate/models/create_snowflake_connection_details.rb +9 -3
  187. data/lib/oci/golden_gate/models/deployment_type_summary.rb +1 -0
  188. data/lib/oci/golden_gate/models/iceberg_connection.rb +1 -0
  189. data/lib/oci/golden_gate/models/iceberg_connection_summary.rb +1 -0
  190. data/lib/oci/golden_gate/models/iceberg_storage.rb +4 -0
  191. data/lib/oci/golden_gate/models/iceberg_storage_summary.rb +4 -0
  192. data/lib/oci/golden_gate/models/iceberg_storage_type.rb +3 -1
  193. data/lib/oci/golden_gate/models/kafka_connection.rb +1 -0
  194. data/lib/oci/golden_gate/models/no_iceberg_storage.rb +148 -0
  195. data/lib/oci/golden_gate/models/no_iceberg_storage_summary.rb +148 -0
  196. data/lib/oci/golden_gate/models/oci_gen_ai_model_auth_details.rb +242 -0
  197. data/lib/oci/golden_gate/models/oci_gen_ai_model_auth_details_summary.rb +224 -0
  198. data/lib/oci/golden_gate/models/oci_object_storage_s3_api_iceberg_storage.rb +209 -0
  199. data/lib/oci/golden_gate/models/oci_object_storage_s3_api_iceberg_storage_summary.rb +209 -0
  200. data/lib/oci/golden_gate/models/oracle_connection.rb +4 -1
  201. data/lib/oci/golden_gate/models/oracle_connection_summary.rb +1 -1
  202. data/lib/oci/golden_gate/models/technology_type.rb +6 -1
  203. data/lib/oci/golden_gate/models/update_ai_model_auth_details.rb +187 -0
  204. data/lib/oci/golden_gate/models/update_ai_model_connection_details.rb +237 -0
  205. data/lib/oci/golden_gate/models/update_amazon_kinesis_connection_details.rb +4 -1
  206. data/lib/oci/golden_gate/models/update_amazon_redshift_connection_details.rb +3 -1
  207. data/lib/oci/golden_gate/models/update_amazon_s3_connection_details.rb +5 -3
  208. data/lib/oci/golden_gate/models/update_amazon_s3_iceberg_storage_details.rb +5 -2
  209. data/lib/oci/golden_gate/models/update_api_key_ai_model_auth_details.rb +199 -0
  210. data/lib/oci/golden_gate/models/update_azure_data_lake_storage_connection_details.rb +9 -3
  211. data/lib/oci/golden_gate/models/update_azure_data_lake_storage_iceberg_storage_details.rb +3 -1
  212. data/lib/oci/golden_gate/models/update_azure_synapse_connection_details.rb +3 -1
  213. data/lib/oci/golden_gate/models/update_connection_details.rb +43 -7
  214. data/lib/oci/golden_gate/models/update_database_registration_details.rb +6 -2
  215. data/lib/oci/golden_gate/models/update_databricks_connection_details.rb +6 -2
  216. data/lib/oci/golden_gate/models/update_db2_connection_details.rb +9 -3
  217. data/lib/oci/golden_gate/models/update_elasticsearch_connection_details.rb +3 -1
  218. data/lib/oci/golden_gate/models/update_golden_gate_connection_details.rb +3 -1
  219. data/lib/oci/golden_gate/models/update_google_big_query_connection_details.rb +3 -1
  220. data/lib/oci/golden_gate/models/update_google_cloud_storage_connection_details.rb +3 -1
  221. data/lib/oci/golden_gate/models/update_google_cloud_storage_iceberg_storage_details.rb +3 -1
  222. data/lib/oci/golden_gate/models/update_google_pub_sub_connection_details.rb +3 -1
  223. data/lib/oci/golden_gate/models/update_iceberg_storage_details.rb +5 -1
  224. data/lib/oci/golden_gate/models/update_java_message_service_connection_details.rb +21 -7
  225. data/lib/oci/golden_gate/models/update_kafka_connection_details.rb +18 -6
  226. data/lib/oci/golden_gate/models/update_kafka_schema_registry_connection_details.rb +18 -6
  227. data/lib/oci/golden_gate/models/update_microsoft_fabric_connection_details.rb +3 -1
  228. data/lib/oci/golden_gate/models/update_microsoft_sqlserver_connection_details.rb +3 -1
  229. data/lib/oci/golden_gate/models/update_mongo_db_connection_details.rb +9 -3
  230. data/lib/oci/golden_gate/models/update_mysql_connection_details.rb +6 -2
  231. data/lib/oci/golden_gate/models/update_no_iceberg_storage_details.rb +148 -0
  232. data/lib/oci/golden_gate/models/update_oci_gen_ai_model_auth_details.rb +242 -0
  233. data/lib/oci/golden_gate/models/update_oci_object_storage_connection_details.rb +6 -2
  234. data/lib/oci/golden_gate/models/update_oci_object_storage_s3_api_iceberg_storage_details.rb +228 -0
  235. data/lib/oci/golden_gate/models/update_oracle_ai_data_platform_connection_details.rb +6 -2
  236. data/lib/oci/golden_gate/models/update_oracle_connection_details.rb +7 -3
  237. data/lib/oci/golden_gate/models/update_oracle_nosql_connection_details.rb +6 -2
  238. data/lib/oci/golden_gate/models/update_postgresql_connection_details.rb +6 -2
  239. data/lib/oci/golden_gate/models/update_redis_connection_details.rb +15 -5
  240. data/lib/oci/golden_gate/models/update_snowflake_connection_details.rb +9 -3
  241. data/lib/oci/regions.rb +8 -1
  242. data/lib/oci/version.rb +1 -1
  243. metadata +55 -2
@@ -0,0 +1,333 @@
1
+ # Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
2
+ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
3
+
4
+ # NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20200407
5
+ require 'date'
6
+ require 'logger'
7
+ require_relative 'connection_summary'
8
+
9
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
10
+ module OCI
11
+ # Summary of the AI Model Connection.
12
+ #
13
+ class GoldenGate::Models::AiModelConnectionSummary < GoldenGate::Models::ConnectionSummary
14
+ PROVIDER_TYPE_ENUM = [
15
+ PROVIDER_TYPE_OCI_GENERATIVE_AI = 'OCI_GENERATIVE_AI'.freeze,
16
+ PROVIDER_TYPE_GEMINI = 'GEMINI'.freeze,
17
+ PROVIDER_TYPE_OPEN_AI = 'OPEN_AI'.freeze,
18
+ PROVIDER_TYPE_VOYAGE_AI = 'VOYAGE_AI'.freeze,
19
+ PROVIDER_TYPE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
20
+ ].freeze
21
+
22
+ # **[Required]** The AI Model technology type.
23
+ #
24
+ # @return [String]
25
+ attr_accessor :technology_type
26
+
27
+ # AI Provider type used by the AI Model Connection.
28
+ #
29
+ # @return [String]
30
+ attr_reader :provider_type
31
+
32
+ # **[Required]** AI model identifier.
33
+ #
34
+ # @return [String]
35
+ attr_accessor :model_key
36
+
37
+ # Maximum number of input characters supported by this AI model connection.
38
+ #
39
+ # @return [Integer]
40
+ attr_accessor :max_input_chars
41
+
42
+ # @return [OCI::GoldenGate::Models::AiModelAuthDetailsSummary]
43
+ attr_accessor :auth_details
44
+
45
+ # Attribute mapping from ruby-style variable name to JSON key.
46
+ def self.attribute_map
47
+ {
48
+ # rubocop:disable Style/SymbolLiteral
49
+ 'connection_type': :'connectionType',
50
+ 'id': :'id',
51
+ 'display_name': :'displayName',
52
+ 'description': :'description',
53
+ 'compartment_id': :'compartmentId',
54
+ 'freeform_tags': :'freeformTags',
55
+ 'defined_tags': :'definedTags',
56
+ 'system_tags': :'systemTags',
57
+ 'lifecycle_state': :'lifecycleState',
58
+ 'lifecycle_details': :'lifecycleDetails',
59
+ 'time_created': :'timeCreated',
60
+ 'time_updated': :'timeUpdated',
61
+ 'vault_id': :'vaultId',
62
+ 'key_id': :'keyId',
63
+ 'ingress_ips': :'ingressIps',
64
+ 'nsg_ids': :'nsgIds',
65
+ 'subnet_id': :'subnetId',
66
+ 'routing_method': :'routingMethod',
67
+ 'locks': :'locks',
68
+ 'does_use_secret_ids': :'doesUseSecretIds',
69
+ 'subscription_id': :'subscriptionId',
70
+ 'cluster_placement_group_id': :'clusterPlacementGroupId',
71
+ 'security_attributes': :'securityAttributes',
72
+ 'technology_type': :'technologyType',
73
+ 'provider_type': :'providerType',
74
+ 'model_key': :'modelKey',
75
+ 'max_input_chars': :'maxInputChars',
76
+ 'auth_details': :'authDetails'
77
+ # rubocop:enable Style/SymbolLiteral
78
+ }
79
+ end
80
+
81
+ # Attribute type mapping.
82
+ def self.swagger_types
83
+ {
84
+ # rubocop:disable Style/SymbolLiteral
85
+ 'connection_type': :'String',
86
+ 'id': :'String',
87
+ 'display_name': :'String',
88
+ 'description': :'String',
89
+ 'compartment_id': :'String',
90
+ 'freeform_tags': :'Hash<String, String>',
91
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
92
+ 'system_tags': :'Hash<String, Hash<String, Object>>',
93
+ 'lifecycle_state': :'String',
94
+ 'lifecycle_details': :'String',
95
+ 'time_created': :'DateTime',
96
+ 'time_updated': :'DateTime',
97
+ 'vault_id': :'String',
98
+ 'key_id': :'String',
99
+ 'ingress_ips': :'Array<OCI::GoldenGate::Models::IngressIpDetails>',
100
+ 'nsg_ids': :'Array<String>',
101
+ 'subnet_id': :'String',
102
+ 'routing_method': :'String',
103
+ 'locks': :'Array<OCI::GoldenGate::Models::ResourceLock>',
104
+ 'does_use_secret_ids': :'BOOLEAN',
105
+ 'subscription_id': :'String',
106
+ 'cluster_placement_group_id': :'String',
107
+ 'security_attributes': :'Hash<String, Hash<String, Object>>',
108
+ 'technology_type': :'String',
109
+ 'provider_type': :'String',
110
+ 'model_key': :'String',
111
+ 'max_input_chars': :'Integer',
112
+ 'auth_details': :'OCI::GoldenGate::Models::AiModelAuthDetailsSummary'
113
+ # rubocop:enable Style/SymbolLiteral
114
+ }
115
+ end
116
+
117
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
118
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
119
+
120
+
121
+ # Initializes the object
122
+ # @param [Hash] attributes Model attributes in the form of hash
123
+ # @option attributes [String] :id The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#id #id} proprety
124
+ # @option attributes [String] :display_name The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#display_name #display_name} proprety
125
+ # @option attributes [String] :description The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#description #description} proprety
126
+ # @option attributes [String] :compartment_id The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#compartment_id #compartment_id} proprety
127
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#freeform_tags #freeform_tags} proprety
128
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#defined_tags #defined_tags} proprety
129
+ # @option attributes [Hash<String, Hash<String, Object>>] :system_tags The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#system_tags #system_tags} proprety
130
+ # @option attributes [String] :lifecycle_state The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#lifecycle_state #lifecycle_state} proprety
131
+ # @option attributes [String] :lifecycle_details The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#lifecycle_details #lifecycle_details} proprety
132
+ # @option attributes [DateTime] :time_created The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#time_created #time_created} proprety
133
+ # @option attributes [DateTime] :time_updated The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#time_updated #time_updated} proprety
134
+ # @option attributes [String] :vault_id The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#vault_id #vault_id} proprety
135
+ # @option attributes [String] :key_id The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#key_id #key_id} proprety
136
+ # @option attributes [Array<OCI::GoldenGate::Models::IngressIpDetails>] :ingress_ips The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#ingress_ips #ingress_ips} proprety
137
+ # @option attributes [Array<String>] :nsg_ids The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#nsg_ids #nsg_ids} proprety
138
+ # @option attributes [String] :subnet_id The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#subnet_id #subnet_id} proprety
139
+ # @option attributes [String] :routing_method The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#routing_method #routing_method} proprety
140
+ # @option attributes [Array<OCI::GoldenGate::Models::ResourceLock>] :locks The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#locks #locks} proprety
141
+ # @option attributes [BOOLEAN] :does_use_secret_ids The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#does_use_secret_ids #does_use_secret_ids} proprety
142
+ # @option attributes [String] :subscription_id The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#subscription_id #subscription_id} proprety
143
+ # @option attributes [String] :cluster_placement_group_id The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#cluster_placement_group_id #cluster_placement_group_id} proprety
144
+ # @option attributes [Hash<String, Hash<String, Object>>] :security_attributes The value to assign to the {OCI::GoldenGate::Models::ConnectionSummary#security_attributes #security_attributes} proprety
145
+ # @option attributes [String] :technology_type The value to assign to the {#technology_type} property
146
+ # @option attributes [String] :provider_type The value to assign to the {#provider_type} property
147
+ # @option attributes [String] :model_key The value to assign to the {#model_key} property
148
+ # @option attributes [Integer] :max_input_chars The value to assign to the {#max_input_chars} property
149
+ # @option attributes [OCI::GoldenGate::Models::AiModelAuthDetailsSummary] :auth_details The value to assign to the {#auth_details} property
150
+ def initialize(attributes = {})
151
+ return unless attributes.is_a?(Hash)
152
+
153
+ attributes['connectionType'] = 'AI_MODEL'
154
+
155
+ super(attributes)
156
+
157
+ # convert string to symbol for hash key
158
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
159
+
160
+ self.technology_type = attributes[:'technologyType'] if attributes[:'technologyType']
161
+
162
+ raise 'You cannot provide both :technologyType and :technology_type' if attributes.key?(:'technologyType') && attributes.key?(:'technology_type')
163
+
164
+ self.technology_type = attributes[:'technology_type'] if attributes[:'technology_type']
165
+
166
+ self.provider_type = attributes[:'providerType'] if attributes[:'providerType']
167
+
168
+ raise 'You cannot provide both :providerType and :provider_type' if attributes.key?(:'providerType') && attributes.key?(:'provider_type')
169
+
170
+ self.provider_type = attributes[:'provider_type'] if attributes[:'provider_type']
171
+
172
+ self.model_key = attributes[:'modelKey'] if attributes[:'modelKey']
173
+
174
+ raise 'You cannot provide both :modelKey and :model_key' if attributes.key?(:'modelKey') && attributes.key?(:'model_key')
175
+
176
+ self.model_key = attributes[:'model_key'] if attributes[:'model_key']
177
+
178
+ self.max_input_chars = attributes[:'maxInputChars'] if attributes[:'maxInputChars']
179
+
180
+ raise 'You cannot provide both :maxInputChars and :max_input_chars' if attributes.key?(:'maxInputChars') && attributes.key?(:'max_input_chars')
181
+
182
+ self.max_input_chars = attributes[:'max_input_chars'] if attributes[:'max_input_chars']
183
+
184
+ self.auth_details = attributes[:'authDetails'] if attributes[:'authDetails']
185
+
186
+ raise 'You cannot provide both :authDetails and :auth_details' if attributes.key?(:'authDetails') && attributes.key?(:'auth_details')
187
+
188
+ self.auth_details = attributes[:'auth_details'] if attributes[:'auth_details']
189
+ end
190
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
191
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
192
+
193
+ # Custom attribute writer method checking allowed values (enum).
194
+ # @param [Object] provider_type Object to be assigned
195
+ def provider_type=(provider_type)
196
+ # rubocop:disable Style/ConditionalAssignment
197
+ if provider_type && !PROVIDER_TYPE_ENUM.include?(provider_type)
198
+ OCI.logger.debug("Unknown value for 'provider_type' [" + provider_type + "]. Mapping to 'PROVIDER_TYPE_UNKNOWN_ENUM_VALUE'") if OCI.logger
199
+ @provider_type = PROVIDER_TYPE_UNKNOWN_ENUM_VALUE
200
+ else
201
+ @provider_type = provider_type
202
+ end
203
+ # rubocop:enable Style/ConditionalAssignment
204
+ end
205
+
206
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
207
+
208
+
209
+ # Checks equality by comparing each attribute.
210
+ # @param [Object] other the other object to be compared
211
+ def ==(other)
212
+ return true if equal?(other)
213
+
214
+ self.class == other.class &&
215
+ connection_type == other.connection_type &&
216
+ id == other.id &&
217
+ display_name == other.display_name &&
218
+ description == other.description &&
219
+ compartment_id == other.compartment_id &&
220
+ freeform_tags == other.freeform_tags &&
221
+ defined_tags == other.defined_tags &&
222
+ system_tags == other.system_tags &&
223
+ lifecycle_state == other.lifecycle_state &&
224
+ lifecycle_details == other.lifecycle_details &&
225
+ time_created == other.time_created &&
226
+ time_updated == other.time_updated &&
227
+ vault_id == other.vault_id &&
228
+ key_id == other.key_id &&
229
+ ingress_ips == other.ingress_ips &&
230
+ nsg_ids == other.nsg_ids &&
231
+ subnet_id == other.subnet_id &&
232
+ routing_method == other.routing_method &&
233
+ locks == other.locks &&
234
+ does_use_secret_ids == other.does_use_secret_ids &&
235
+ subscription_id == other.subscription_id &&
236
+ cluster_placement_group_id == other.cluster_placement_group_id &&
237
+ security_attributes == other.security_attributes &&
238
+ technology_type == other.technology_type &&
239
+ provider_type == other.provider_type &&
240
+ model_key == other.model_key &&
241
+ max_input_chars == other.max_input_chars &&
242
+ auth_details == other.auth_details
243
+ end
244
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
245
+
246
+ # @see the `==` method
247
+ # @param [Object] other the other object to be compared
248
+ def eql?(other)
249
+ self == other
250
+ end
251
+
252
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
253
+
254
+
255
+ # Calculates hash code according to all attributes.
256
+ # @return [Fixnum] Hash code
257
+ def hash
258
+ [connection_type, id, display_name, description, compartment_id, freeform_tags, defined_tags, system_tags, lifecycle_state, lifecycle_details, time_created, time_updated, vault_id, key_id, ingress_ips, nsg_ids, subnet_id, routing_method, locks, does_use_secret_ids, subscription_id, cluster_placement_group_id, security_attributes, technology_type, provider_type, model_key, max_input_chars, auth_details].hash
259
+ end
260
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
261
+
262
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
263
+
264
+
265
+ # Builds the object from hash
266
+ # @param [Hash] attributes Model attributes in the form of hash
267
+ # @return [Object] Returns the model itself
268
+ def build_from_hash(attributes)
269
+ return nil unless attributes.is_a?(Hash)
270
+
271
+ self.class.swagger_types.each_pair do |key, type|
272
+ if type =~ /^Array<(.*)>/i
273
+ # check to ensure the input is an array given that the the attribute
274
+ # is documented as an array but the input is not
275
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
276
+ public_method("#{key}=").call(
277
+ attributes[self.class.attribute_map[key]]
278
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
279
+ )
280
+ end
281
+ elsif !attributes[self.class.attribute_map[key]].nil?
282
+ public_method("#{key}=").call(
283
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
284
+ )
285
+ end
286
+ # or else data not found in attributes(hash), not an issue as the data can be optional
287
+ end
288
+
289
+ self
290
+ end
291
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
292
+
293
+ # Returns the string representation of the object
294
+ # @return [String] String presentation of the object
295
+ def to_s
296
+ to_hash.to_s
297
+ end
298
+
299
+ # Returns the object in the form of hash
300
+ # @return [Hash] Returns the object in the form of hash
301
+ def to_hash
302
+ hash = {}
303
+ self.class.attribute_map.each_pair do |attr, param|
304
+ value = public_method(attr).call
305
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
306
+
307
+ hash[param] = _to_hash(value)
308
+ end
309
+ hash
310
+ end
311
+
312
+ private
313
+
314
+ # Outputs non-array value in the form of hash
315
+ # For object, use to_hash. Otherwise, just return the value
316
+ # @param [Object] value Any valid value
317
+ # @return [Hash] Returns the value in the form of hash
318
+ def _to_hash(value)
319
+ if value.is_a?(Array)
320
+ value.compact.map { |v| _to_hash(v) }
321
+ elsif value.is_a?(Hash)
322
+ {}.tap do |hash|
323
+ value.each { |k, v| hash[k] = _to_hash(v) }
324
+ end
325
+ elsif value.respond_to? :to_hash
326
+ value.to_hash
327
+ else
328
+ value
329
+ end
330
+ end
331
+ end
332
+ end
333
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,216 @@
1
+ # Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
2
+ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
3
+
4
+ # NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20200407
5
+ require 'date'
6
+ require 'logger'
7
+
8
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
9
+ module OCI
10
+ # Summary details of an AI model supported by a provider.
11
+ #
12
+ class GoldenGate::Models::AiModelSummary
13
+ PROVIDER_TYPE_ENUM = [
14
+ PROVIDER_TYPE_OCI_GENERATIVE_AI = 'OCI_GENERATIVE_AI'.freeze,
15
+ PROVIDER_TYPE_GEMINI = 'GEMINI'.freeze,
16
+ PROVIDER_TYPE_OPEN_AI = 'OPEN_AI'.freeze,
17
+ PROVIDER_TYPE_VOYAGE_AI = 'VOYAGE_AI'.freeze,
18
+ PROVIDER_TYPE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
19
+ ].freeze
20
+
21
+ # **[Required]** The identifier of the AI model offered by a provider.
22
+ #
23
+ # @return [String]
24
+ attr_accessor :key
25
+
26
+ # **[Required]** AI Provider type used by the AI Model Connection.
27
+ #
28
+ # @return [String]
29
+ attr_reader :provider_type
30
+
31
+ # **[Required]** An object's Display Name.
32
+ #
33
+ # @return [String]
34
+ attr_accessor :display_name
35
+
36
+ # **[Required]** Metadata about this specific object.
37
+ #
38
+ # @return [String]
39
+ attr_accessor :description
40
+
41
+ # Attribute mapping from ruby-style variable name to JSON key.
42
+ def self.attribute_map
43
+ {
44
+ # rubocop:disable Style/SymbolLiteral
45
+ 'key': :'key',
46
+ 'provider_type': :'providerType',
47
+ 'display_name': :'displayName',
48
+ 'description': :'description'
49
+ # rubocop:enable Style/SymbolLiteral
50
+ }
51
+ end
52
+
53
+ # Attribute type mapping.
54
+ def self.swagger_types
55
+ {
56
+ # rubocop:disable Style/SymbolLiteral
57
+ 'key': :'String',
58
+ 'provider_type': :'String',
59
+ 'display_name': :'String',
60
+ 'description': :'String'
61
+ # rubocop:enable Style/SymbolLiteral
62
+ }
63
+ end
64
+
65
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
66
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
67
+
68
+
69
+ # Initializes the object
70
+ # @param [Hash] attributes Model attributes in the form of hash
71
+ # @option attributes [String] :key The value to assign to the {#key} property
72
+ # @option attributes [String] :provider_type The value to assign to the {#provider_type} property
73
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
74
+ # @option attributes [String] :description The value to assign to the {#description} property
75
+ def initialize(attributes = {})
76
+ return unless attributes.is_a?(Hash)
77
+
78
+ # convert string to symbol for hash key
79
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
80
+
81
+ self.key = attributes[:'key'] if attributes[:'key']
82
+
83
+ self.provider_type = attributes[:'providerType'] if attributes[:'providerType']
84
+
85
+ raise 'You cannot provide both :providerType and :provider_type' if attributes.key?(:'providerType') && attributes.key?(:'provider_type')
86
+
87
+ self.provider_type = attributes[:'provider_type'] if attributes[:'provider_type']
88
+
89
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
90
+
91
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
92
+
93
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
94
+
95
+ self.description = attributes[:'description'] if attributes[:'description']
96
+ end
97
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
98
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
99
+
100
+ # Custom attribute writer method checking allowed values (enum).
101
+ # @param [Object] provider_type Object to be assigned
102
+ def provider_type=(provider_type)
103
+ # rubocop:disable Style/ConditionalAssignment
104
+ if provider_type && !PROVIDER_TYPE_ENUM.include?(provider_type)
105
+ OCI.logger.debug("Unknown value for 'provider_type' [" + provider_type + "]. Mapping to 'PROVIDER_TYPE_UNKNOWN_ENUM_VALUE'") if OCI.logger
106
+ @provider_type = PROVIDER_TYPE_UNKNOWN_ENUM_VALUE
107
+ else
108
+ @provider_type = provider_type
109
+ end
110
+ # rubocop:enable Style/ConditionalAssignment
111
+ end
112
+
113
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
114
+
115
+
116
+ # Checks equality by comparing each attribute.
117
+ # @param [Object] other the other object to be compared
118
+ def ==(other)
119
+ return true if equal?(other)
120
+
121
+ self.class == other.class &&
122
+ key == other.key &&
123
+ provider_type == other.provider_type &&
124
+ display_name == other.display_name &&
125
+ description == other.description
126
+ end
127
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
128
+
129
+ # @see the `==` method
130
+ # @param [Object] other the other object to be compared
131
+ def eql?(other)
132
+ self == other
133
+ end
134
+
135
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
136
+
137
+
138
+ # Calculates hash code according to all attributes.
139
+ # @return [Fixnum] Hash code
140
+ def hash
141
+ [key, provider_type, display_name, description].hash
142
+ end
143
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
144
+
145
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
146
+
147
+
148
+ # Builds the object from hash
149
+ # @param [Hash] attributes Model attributes in the form of hash
150
+ # @return [Object] Returns the model itself
151
+ def build_from_hash(attributes)
152
+ return nil unless attributes.is_a?(Hash)
153
+
154
+ self.class.swagger_types.each_pair do |key, type|
155
+ if type =~ /^Array<(.*)>/i
156
+ # check to ensure the input is an array given that the the attribute
157
+ # is documented as an array but the input is not
158
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
159
+ public_method("#{key}=").call(
160
+ attributes[self.class.attribute_map[key]]
161
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
162
+ )
163
+ end
164
+ elsif !attributes[self.class.attribute_map[key]].nil?
165
+ public_method("#{key}=").call(
166
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
167
+ )
168
+ end
169
+ # or else data not found in attributes(hash), not an issue as the data can be optional
170
+ end
171
+
172
+ self
173
+ end
174
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
175
+
176
+ # Returns the string representation of the object
177
+ # @return [String] String presentation of the object
178
+ def to_s
179
+ to_hash.to_s
180
+ end
181
+
182
+ # Returns the object in the form of hash
183
+ # @return [Hash] Returns the object in the form of hash
184
+ def to_hash
185
+ hash = {}
186
+ self.class.attribute_map.each_pair do |attr, param|
187
+ value = public_method(attr).call
188
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
189
+
190
+ hash[param] = _to_hash(value)
191
+ end
192
+ hash
193
+ end
194
+
195
+ private
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
+ end
215
+ end
216
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength