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,153 @@
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
+
7
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
8
+ module OCI
9
+ # Collection of AI providers supported by GoldenGate.
10
+ #
11
+ class GoldenGate::Models::AiProviderCollection
12
+ # **[Required]** An array of AI providers.
13
+ #
14
+ # @return [Array<OCI::GoldenGate::Models::AiProviderSummary>]
15
+ attr_accessor :items
16
+
17
+ # Attribute mapping from ruby-style variable name to JSON key.
18
+ def self.attribute_map
19
+ {
20
+ # rubocop:disable Style/SymbolLiteral
21
+ 'items': :'items'
22
+ # rubocop:enable Style/SymbolLiteral
23
+ }
24
+ end
25
+
26
+ # Attribute type mapping.
27
+ def self.swagger_types
28
+ {
29
+ # rubocop:disable Style/SymbolLiteral
30
+ 'items': :'Array<OCI::GoldenGate::Models::AiProviderSummary>'
31
+ # rubocop:enable Style/SymbolLiteral
32
+ }
33
+ end
34
+
35
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
36
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
37
+
38
+
39
+ # Initializes the object
40
+ # @param [Hash] attributes Model attributes in the form of hash
41
+ # @option attributes [Array<OCI::GoldenGate::Models::AiProviderSummary>] :items The value to assign to the {#items} property
42
+ def initialize(attributes = {})
43
+ return unless attributes.is_a?(Hash)
44
+
45
+ # convert string to symbol for hash key
46
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
47
+
48
+ self.items = attributes[:'items'] if attributes[:'items']
49
+ end
50
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
51
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
52
+
53
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
54
+
55
+
56
+ # Checks equality by comparing each attribute.
57
+ # @param [Object] other the other object to be compared
58
+ def ==(other)
59
+ return true if equal?(other)
60
+
61
+ self.class == other.class &&
62
+ items == other.items
63
+ end
64
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
65
+
66
+ # @see the `==` method
67
+ # @param [Object] other the other object to be compared
68
+ def eql?(other)
69
+ self == other
70
+ end
71
+
72
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
73
+
74
+
75
+ # Calculates hash code according to all attributes.
76
+ # @return [Fixnum] Hash code
77
+ def hash
78
+ [items].hash
79
+ end
80
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
81
+
82
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
83
+
84
+
85
+ # Builds the object from hash
86
+ # @param [Hash] attributes Model attributes in the form of hash
87
+ # @return [Object] Returns the model itself
88
+ def build_from_hash(attributes)
89
+ return nil unless attributes.is_a?(Hash)
90
+
91
+ self.class.swagger_types.each_pair do |key, type|
92
+ if type =~ /^Array<(.*)>/i
93
+ # check to ensure the input is an array given that the the attribute
94
+ # is documented as an array but the input is not
95
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
96
+ public_method("#{key}=").call(
97
+ attributes[self.class.attribute_map[key]]
98
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
99
+ )
100
+ end
101
+ elsif !attributes[self.class.attribute_map[key]].nil?
102
+ public_method("#{key}=").call(
103
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
104
+ )
105
+ end
106
+ # or else data not found in attributes(hash), not an issue as the data can be optional
107
+ end
108
+
109
+ self
110
+ end
111
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
112
+
113
+ # Returns the string representation of the object
114
+ # @return [String] String presentation of the object
115
+ def to_s
116
+ to_hash.to_s
117
+ end
118
+
119
+ # Returns the object in the form of hash
120
+ # @return [Hash] Returns the object in the form of hash
121
+ def to_hash
122
+ hash = {}
123
+ self.class.attribute_map.each_pair do |attr, param|
124
+ value = public_method(attr).call
125
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
126
+
127
+ hash[param] = _to_hash(value)
128
+ end
129
+ hash
130
+ end
131
+
132
+ private
133
+
134
+ # Outputs non-array value in the form of hash
135
+ # For object, use to_hash. Otherwise, just return the value
136
+ # @param [Object] value Any valid value
137
+ # @return [Hash] Returns the value in the form of hash
138
+ def _to_hash(value)
139
+ if value.is_a?(Array)
140
+ value.compact.map { |v| _to_hash(v) }
141
+ elsif value.is_a?(Hash)
142
+ {}.tap do |hash|
143
+ value.each { |k, v| hash[k] = _to_hash(v) }
144
+ end
145
+ elsif value.respond_to? :to_hash
146
+ value.to_hash
147
+ else
148
+ value
149
+ end
150
+ end
151
+ end
152
+ end
153
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,249 @@
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 provider and its supported models.
11
+ #
12
+ class GoldenGate::Models::AiProviderSummary
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]** AI Provider type used by the AI Model Connection.
22
+ #
23
+ # @return [String]
24
+ attr_reader :provider_type
25
+
26
+ # **[Required]** An object's Display Name.
27
+ #
28
+ # @return [String]
29
+ attr_accessor :display_name
30
+
31
+ # **[Required]** Metadata about this specific object.
32
+ #
33
+ # @return [String]
34
+ attr_accessor :description
35
+
36
+ # **[Required]** Authentication types supported by the AI provider.
37
+ #
38
+ # @return [Array<OCI::GoldenGate::Models::AiModelAuthType>]
39
+ attr_accessor :auth_type
40
+
41
+ # **[Required]** Default base URL for the AI provider.
42
+ #
43
+ # @return [String]
44
+ attr_accessor :default_base_url
45
+
46
+ # List of AI models supported by this provider, when available. This
47
+ # field is null when the provider's models can be retrieved only after
48
+ # supplying additional context. For example, OCI_GENERATIVE_AI model
49
+ # availability may vary by region.
50
+ #
51
+ # @return [Array<OCI::GoldenGate::Models::AiModelSummary>]
52
+ attr_accessor :models
53
+
54
+ # Attribute mapping from ruby-style variable name to JSON key.
55
+ def self.attribute_map
56
+ {
57
+ # rubocop:disable Style/SymbolLiteral
58
+ 'provider_type': :'providerType',
59
+ 'display_name': :'displayName',
60
+ 'description': :'description',
61
+ 'auth_type': :'authType',
62
+ 'default_base_url': :'defaultBaseUrl',
63
+ 'models': :'models'
64
+ # rubocop:enable Style/SymbolLiteral
65
+ }
66
+ end
67
+
68
+ # Attribute type mapping.
69
+ def self.swagger_types
70
+ {
71
+ # rubocop:disable Style/SymbolLiteral
72
+ 'provider_type': :'String',
73
+ 'display_name': :'String',
74
+ 'description': :'String',
75
+ 'auth_type': :'Array<OCI::GoldenGate::Models::AiModelAuthType>',
76
+ 'default_base_url': :'String',
77
+ 'models': :'Array<OCI::GoldenGate::Models::AiModelSummary>'
78
+ # rubocop:enable Style/SymbolLiteral
79
+ }
80
+ end
81
+
82
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
83
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
84
+
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ # @option attributes [String] :provider_type The value to assign to the {#provider_type} property
89
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
90
+ # @option attributes [String] :description The value to assign to the {#description} property
91
+ # @option attributes [Array<OCI::GoldenGate::Models::AiModelAuthType>] :auth_type The value to assign to the {#auth_type} property
92
+ # @option attributes [String] :default_base_url The value to assign to the {#default_base_url} property
93
+ # @option attributes [Array<OCI::GoldenGate::Models::AiModelSummary>] :models The value to assign to the {#models} property
94
+ def initialize(attributes = {})
95
+ return unless attributes.is_a?(Hash)
96
+
97
+ # convert string to symbol for hash key
98
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
99
+
100
+ self.provider_type = attributes[:'providerType'] if attributes[:'providerType']
101
+
102
+ raise 'You cannot provide both :providerType and :provider_type' if attributes.key?(:'providerType') && attributes.key?(:'provider_type')
103
+
104
+ self.provider_type = attributes[:'provider_type'] if attributes[:'provider_type']
105
+
106
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
107
+
108
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
109
+
110
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
111
+
112
+ self.description = attributes[:'description'] if attributes[:'description']
113
+
114
+ self.auth_type = attributes[:'authType'] if attributes[:'authType']
115
+
116
+ raise 'You cannot provide both :authType and :auth_type' if attributes.key?(:'authType') && attributes.key?(:'auth_type')
117
+
118
+ self.auth_type = attributes[:'auth_type'] if attributes[:'auth_type']
119
+
120
+ self.default_base_url = attributes[:'defaultBaseUrl'] if attributes[:'defaultBaseUrl']
121
+
122
+ raise 'You cannot provide both :defaultBaseUrl and :default_base_url' if attributes.key?(:'defaultBaseUrl') && attributes.key?(:'default_base_url')
123
+
124
+ self.default_base_url = attributes[:'default_base_url'] if attributes[:'default_base_url']
125
+
126
+ self.models = attributes[:'models'] if attributes[:'models']
127
+ end
128
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
129
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
130
+
131
+ # Custom attribute writer method checking allowed values (enum).
132
+ # @param [Object] provider_type Object to be assigned
133
+ def provider_type=(provider_type)
134
+ # rubocop:disable Style/ConditionalAssignment
135
+ if provider_type && !PROVIDER_TYPE_ENUM.include?(provider_type)
136
+ OCI.logger.debug("Unknown value for 'provider_type' [" + provider_type + "]. Mapping to 'PROVIDER_TYPE_UNKNOWN_ENUM_VALUE'") if OCI.logger
137
+ @provider_type = PROVIDER_TYPE_UNKNOWN_ENUM_VALUE
138
+ else
139
+ @provider_type = provider_type
140
+ end
141
+ # rubocop:enable Style/ConditionalAssignment
142
+ end
143
+
144
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
145
+
146
+
147
+ # Checks equality by comparing each attribute.
148
+ # @param [Object] other the other object to be compared
149
+ def ==(other)
150
+ return true if equal?(other)
151
+
152
+ self.class == other.class &&
153
+ provider_type == other.provider_type &&
154
+ display_name == other.display_name &&
155
+ description == other.description &&
156
+ auth_type == other.auth_type &&
157
+ default_base_url == other.default_base_url &&
158
+ models == other.models
159
+ end
160
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
161
+
162
+ # @see the `==` method
163
+ # @param [Object] other the other object to be compared
164
+ def eql?(other)
165
+ self == other
166
+ end
167
+
168
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
169
+
170
+
171
+ # Calculates hash code according to all attributes.
172
+ # @return [Fixnum] Hash code
173
+ def hash
174
+ [provider_type, display_name, description, auth_type, default_base_url, models].hash
175
+ end
176
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
177
+
178
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
179
+
180
+
181
+ # Builds the object from hash
182
+ # @param [Hash] attributes Model attributes in the form of hash
183
+ # @return [Object] Returns the model itself
184
+ def build_from_hash(attributes)
185
+ return nil unless attributes.is_a?(Hash)
186
+
187
+ self.class.swagger_types.each_pair do |key, type|
188
+ if type =~ /^Array<(.*)>/i
189
+ # check to ensure the input is an array given that the the attribute
190
+ # is documented as an array but the input is not
191
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
192
+ public_method("#{key}=").call(
193
+ attributes[self.class.attribute_map[key]]
194
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
195
+ )
196
+ end
197
+ elsif !attributes[self.class.attribute_map[key]].nil?
198
+ public_method("#{key}=").call(
199
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
200
+ )
201
+ end
202
+ # or else data not found in attributes(hash), not an issue as the data can be optional
203
+ end
204
+
205
+ self
206
+ end
207
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
208
+
209
+ # Returns the string representation of the object
210
+ # @return [String] String presentation of the object
211
+ def to_s
212
+ to_hash.to_s
213
+ end
214
+
215
+ # Returns the object in the form of hash
216
+ # @return [Hash] Returns the object in the form of hash
217
+ def to_hash
218
+ hash = {}
219
+ self.class.attribute_map.each_pair do |attr, param|
220
+ value = public_method(attr).call
221
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
222
+
223
+ hash[param] = _to_hash(value)
224
+ end
225
+ hash
226
+ end
227
+
228
+ private
229
+
230
+ # Outputs non-array value in the form of hash
231
+ # For object, use to_hash. Otherwise, just return the value
232
+ # @param [Object] value Any valid value
233
+ # @return [Hash] Returns the value in the form of hash
234
+ def _to_hash(value)
235
+ if value.is_a?(Array)
236
+ value.compact.map { |v| _to_hash(v) }
237
+ elsif value.is_a?(Hash)
238
+ {}.tap do |hash|
239
+ value.each { |k, v| hash[k] = _to_hash(v) }
240
+ end
241
+ elsif value.respond_to? :to_hash
242
+ value.to_hash
243
+ else
244
+ value
245
+ end
246
+ end
247
+ end
248
+ end
249
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -21,6 +21,7 @@ module OCI
21
21
  attr_reader :technology_type
22
22
 
23
23
  # **[Required]** Access key ID to access the Amazon Kinesis.
24
+ # Note: Despite the \"Id\" suffix, this value is not an OCI OCID.
24
25
  #
25
26
  # @return [String]
26
27
  attr_accessor :access_key_id
@@ -15,6 +15,7 @@ module OCI
15
15
  attr_accessor :technology_type
16
16
 
17
17
  # **[Required]** Access key ID to access the Amazon Kinesis.
18
+ # Note: Despite the \"Id\" suffix, this value is not an OCI OCID.
18
19
  #
19
20
  # @return [String]
20
21
  attr_accessor :access_key_id
@@ -21,7 +21,7 @@ module OCI
21
21
  attr_reader :technology_type
22
22
 
23
23
  # **[Required]** Access key ID to access the Amazon S3 bucket.
24
- # e.g.: \"this-is-not-the-secret\"
24
+ # Note: Despite the \"Id\" suffix, this value is not an OCI OCID.
25
25
  #
26
26
  # @return [String]
27
27
  attr_accessor :access_key_id
@@ -15,7 +15,7 @@ module OCI
15
15
  attr_accessor :technology_type
16
16
 
17
17
  # **[Required]** Access key ID to access the Amazon S3 bucket.
18
- # e.g.: \"this-is-not-the-secret\"
18
+ # Note: Despite the \"Id\" suffix, this value is not an OCI OCID.
19
19
  #
20
20
  # @return [String]
21
21
  attr_accessor :access_key_id
@@ -28,6 +28,7 @@ module OCI
28
28
  attr_accessor :endpoint
29
29
 
30
30
  # **[Required]** Access key ID to access the Amazon S3 bucket.
31
+ # Note: Despite the \"Id\" suffix, this value is not an OCI OCID.
31
32
  #
32
33
  # @return [String]
33
34
  attr_accessor :access_key_id
@@ -22,6 +22,7 @@ module OCI
22
22
  attr_accessor :endpoint
23
23
 
24
24
  # **[Required]** Access key ID to access the Amazon S3 bucket.
25
+ # Note: Despite the \"Id\" suffix, this value is not an OCI OCID.
25
26
  #
26
27
  # @return [String]
27
28
  attr_accessor :access_key_id
@@ -0,0 +1,199 @@
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_relative 'ai_model_auth_details'
7
+
8
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
9
+ module OCI
10
+ # API key authentication details for an AI Model connection.
11
+ #
12
+ class GoldenGate::Models::ApiKeyAiModelAuthDetails < GoldenGate::Models::AiModelAuthDetails
13
+ # Base URL of the AI model endpoint.
14
+ # If not specified, the default base URL for the selected AI provider will be used.
15
+ #
16
+ # @return [String]
17
+ attr_accessor :base_url
18
+
19
+ # API key for the AI model connection.
20
+ # Deprecated: This field is deprecated and replaced by \"apiKeySecretId\".
21
+ # This change follows the GoldenGate \"Plain Text Fields in Connections\" deprecation:
22
+ # https://docs.oracle.com/en-us/iaas/Content/servicechanges.htm#servicechanges_topic-GoldenGate
23
+ #
24
+ # @return [String]
25
+ attr_accessor :api_key
26
+
27
+ # API key secret OCID for the AI model connection.
28
+ #
29
+ # @return [String]
30
+ attr_accessor :api_key_secret_id
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ # rubocop:disable Style/SymbolLiteral
36
+ 'auth_type': :'authType',
37
+ 'base_url': :'baseUrl',
38
+ 'api_key': :'apiKey',
39
+ 'api_key_secret_id': :'apiKeySecretId'
40
+ # rubocop:enable Style/SymbolLiteral
41
+ }
42
+ end
43
+
44
+ # Attribute type mapping.
45
+ def self.swagger_types
46
+ {
47
+ # rubocop:disable Style/SymbolLiteral
48
+ 'auth_type': :'String',
49
+ 'base_url': :'String',
50
+ 'api_key': :'String',
51
+ 'api_key_secret_id': :'String'
52
+ # rubocop:enable Style/SymbolLiteral
53
+ }
54
+ end
55
+
56
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
57
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
58
+
59
+
60
+ # Initializes the object
61
+ # @param [Hash] attributes Model attributes in the form of hash
62
+ # @option attributes [String] :base_url The value to assign to the {#base_url} property
63
+ # @option attributes [String] :api_key The value to assign to the {#api_key} property
64
+ # @option attributes [String] :api_key_secret_id The value to assign to the {#api_key_secret_id} property
65
+ def initialize(attributes = {})
66
+ return unless attributes.is_a?(Hash)
67
+
68
+ attributes['authType'] = 'API_KEY'
69
+
70
+ super(attributes)
71
+
72
+ # convert string to symbol for hash key
73
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
74
+
75
+ self.base_url = attributes[:'baseUrl'] if attributes[:'baseUrl']
76
+
77
+ raise 'You cannot provide both :baseUrl and :base_url' if attributes.key?(:'baseUrl') && attributes.key?(:'base_url')
78
+
79
+ self.base_url = attributes[:'base_url'] if attributes[:'base_url']
80
+
81
+ self.api_key = attributes[:'apiKey'] if attributes[:'apiKey']
82
+
83
+ raise 'You cannot provide both :apiKey and :api_key' if attributes.key?(:'apiKey') && attributes.key?(:'api_key')
84
+
85
+ self.api_key = attributes[:'api_key'] if attributes[:'api_key']
86
+
87
+ self.api_key_secret_id = attributes[:'apiKeySecretId'] if attributes[:'apiKeySecretId']
88
+
89
+ raise 'You cannot provide both :apiKeySecretId and :api_key_secret_id' if attributes.key?(:'apiKeySecretId') && attributes.key?(:'api_key_secret_id')
90
+
91
+ self.api_key_secret_id = attributes[:'api_key_secret_id'] if attributes[:'api_key_secret_id']
92
+ end
93
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
94
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
95
+
96
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
97
+
98
+
99
+ # Checks equality by comparing each attribute.
100
+ # @param [Object] other the other object to be compared
101
+ def ==(other)
102
+ return true if equal?(other)
103
+
104
+ self.class == other.class &&
105
+ auth_type == other.auth_type &&
106
+ base_url == other.base_url &&
107
+ api_key == other.api_key &&
108
+ api_key_secret_id == other.api_key_secret_id
109
+ end
110
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
111
+
112
+ # @see the `==` method
113
+ # @param [Object] other the other object to be compared
114
+ def eql?(other)
115
+ self == other
116
+ end
117
+
118
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
119
+
120
+
121
+ # Calculates hash code according to all attributes.
122
+ # @return [Fixnum] Hash code
123
+ def hash
124
+ [auth_type, base_url, api_key, api_key_secret_id].hash
125
+ end
126
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
127
+
128
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
129
+
130
+
131
+ # Builds the object from hash
132
+ # @param [Hash] attributes Model attributes in the form of hash
133
+ # @return [Object] Returns the model itself
134
+ def build_from_hash(attributes)
135
+ return nil unless attributes.is_a?(Hash)
136
+
137
+ self.class.swagger_types.each_pair do |key, type|
138
+ if type =~ /^Array<(.*)>/i
139
+ # check to ensure the input is an array given that the the attribute
140
+ # is documented as an array but the input is not
141
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
142
+ public_method("#{key}=").call(
143
+ attributes[self.class.attribute_map[key]]
144
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
145
+ )
146
+ end
147
+ elsif !attributes[self.class.attribute_map[key]].nil?
148
+ public_method("#{key}=").call(
149
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
150
+ )
151
+ end
152
+ # or else data not found in attributes(hash), not an issue as the data can be optional
153
+ end
154
+
155
+ self
156
+ end
157
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
158
+
159
+ # Returns the string representation of the object
160
+ # @return [String] String presentation of the object
161
+ def to_s
162
+ to_hash.to_s
163
+ end
164
+
165
+ # Returns the object in the form of hash
166
+ # @return [Hash] Returns the object in the form of hash
167
+ def to_hash
168
+ hash = {}
169
+ self.class.attribute_map.each_pair do |attr, param|
170
+ value = public_method(attr).call
171
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
172
+
173
+ hash[param] = _to_hash(value)
174
+ end
175
+ hash
176
+ end
177
+
178
+ private
179
+
180
+ # Outputs non-array value in the form of hash
181
+ # For object, use to_hash. Otherwise, just return the value
182
+ # @param [Object] value Any valid value
183
+ # @return [Hash] Returns the value in the form of hash
184
+ def _to_hash(value)
185
+ if value.is_a?(Array)
186
+ value.compact.map { |v| _to_hash(v) }
187
+ elsif value.is_a?(Hash)
188
+ {}.tap do |hash|
189
+ value.each { |k, v| hash[k] = _to_hash(v) }
190
+ end
191
+ elsif value.respond_to? :to_hash
192
+ value.to_hash
193
+ else
194
+ value
195
+ end
196
+ end
197
+ end
198
+ end
199
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength