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,209 @@
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 'iceberg_storage'
7
+
8
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
9
+ module OCI
10
+ # Connection details of the OCI Object Storage (S3 Compatibility API) configuration used by the
11
+ # Iceberg connection.
12
+ #
13
+ class GoldenGate::Models::OciObjectStorageS3ApiIcebergStorage < GoldenGate::Models::IcebergStorage
14
+ # **[Required]** OCI Object Storage S3 Compatibility API endpoint URL.
15
+ # Format: \"https://<namespace>.compat.objectstorage.<region>.<domain>\"
16
+ # Example: \"https://mynamespace.compat.objectstorage.us-ashburn-1.oraclecloud.com\"
17
+ #
18
+ # @return [String]
19
+ attr_accessor :endpoint
20
+
21
+ # **[Required]** Access Key ID from the OCI IAM user's Customer Secret Key pair used to authenticate to
22
+ # OCI Object Storage via the S3 Compatibility API.
23
+ #
24
+ # Note: Despite the \"Id\" suffix, this value is not an OCI OCID.
25
+ #
26
+ # @return [String]
27
+ attr_accessor :access_key_id
28
+
29
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the Secret where the Secret Access Key used for OCI Object Storage S3 Compatibility authentication.
30
+ #
31
+ # @return [String]
32
+ attr_accessor :secret_access_key_secret_id
33
+
34
+ # **[Required]** Target OCI Object Storage bucket name where Iceberg stores
35
+ # table metadata and data files.
36
+ #
37
+ # @return [String]
38
+ attr_accessor :bucket
39
+
40
+ # Attribute mapping from ruby-style variable name to JSON key.
41
+ def self.attribute_map
42
+ {
43
+ # rubocop:disable Style/SymbolLiteral
44
+ 'storage_type': :'storageType',
45
+ 'endpoint': :'endpoint',
46
+ 'access_key_id': :'accessKeyId',
47
+ 'secret_access_key_secret_id': :'secretAccessKeySecretId',
48
+ 'bucket': :'bucket'
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
+ 'storage_type': :'String',
58
+ 'endpoint': :'String',
59
+ 'access_key_id': :'String',
60
+ 'secret_access_key_secret_id': :'String',
61
+ 'bucket': :'String'
62
+ # rubocop:enable Style/SymbolLiteral
63
+ }
64
+ end
65
+
66
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
67
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
68
+
69
+
70
+ # Initializes the object
71
+ # @param [Hash] attributes Model attributes in the form of hash
72
+ # @option attributes [String] :endpoint The value to assign to the {#endpoint} property
73
+ # @option attributes [String] :access_key_id The value to assign to the {#access_key_id} property
74
+ # @option attributes [String] :secret_access_key_secret_id The value to assign to the {#secret_access_key_secret_id} property
75
+ # @option attributes [String] :bucket The value to assign to the {#bucket} property
76
+ def initialize(attributes = {})
77
+ return unless attributes.is_a?(Hash)
78
+
79
+ attributes['storageType'] = 'OCI_OBJECT_STORAGE_S3_API'
80
+
81
+ super(attributes)
82
+
83
+ # convert string to symbol for hash key
84
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
85
+
86
+ self.endpoint = attributes[:'endpoint'] if attributes[:'endpoint']
87
+
88
+ self.access_key_id = attributes[:'accessKeyId'] if attributes[:'accessKeyId']
89
+
90
+ raise 'You cannot provide both :accessKeyId and :access_key_id' if attributes.key?(:'accessKeyId') && attributes.key?(:'access_key_id')
91
+
92
+ self.access_key_id = attributes[:'access_key_id'] if attributes[:'access_key_id']
93
+
94
+ self.secret_access_key_secret_id = attributes[:'secretAccessKeySecretId'] if attributes[:'secretAccessKeySecretId']
95
+
96
+ raise 'You cannot provide both :secretAccessKeySecretId and :secret_access_key_secret_id' if attributes.key?(:'secretAccessKeySecretId') && attributes.key?(:'secret_access_key_secret_id')
97
+
98
+ self.secret_access_key_secret_id = attributes[:'secret_access_key_secret_id'] if attributes[:'secret_access_key_secret_id']
99
+
100
+ self.bucket = attributes[:'bucket'] if attributes[:'bucket']
101
+ end
102
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
103
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
104
+
105
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
106
+
107
+
108
+ # Checks equality by comparing each attribute.
109
+ # @param [Object] other the other object to be compared
110
+ def ==(other)
111
+ return true if equal?(other)
112
+
113
+ self.class == other.class &&
114
+ storage_type == other.storage_type &&
115
+ endpoint == other.endpoint &&
116
+ access_key_id == other.access_key_id &&
117
+ secret_access_key_secret_id == other.secret_access_key_secret_id &&
118
+ bucket == other.bucket
119
+ end
120
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
121
+
122
+ # @see the `==` method
123
+ # @param [Object] other the other object to be compared
124
+ def eql?(other)
125
+ self == other
126
+ end
127
+
128
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
129
+
130
+
131
+ # Calculates hash code according to all attributes.
132
+ # @return [Fixnum] Hash code
133
+ def hash
134
+ [storage_type, endpoint, access_key_id, secret_access_key_secret_id, bucket].hash
135
+ end
136
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
137
+
138
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
139
+
140
+
141
+ # Builds the object from hash
142
+ # @param [Hash] attributes Model attributes in the form of hash
143
+ # @return [Object] Returns the model itself
144
+ def build_from_hash(attributes)
145
+ return nil unless attributes.is_a?(Hash)
146
+
147
+ self.class.swagger_types.each_pair do |key, type|
148
+ if type =~ /^Array<(.*)>/i
149
+ # check to ensure the input is an array given that the the attribute
150
+ # is documented as an array but the input is not
151
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
152
+ public_method("#{key}=").call(
153
+ attributes[self.class.attribute_map[key]]
154
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
155
+ )
156
+ end
157
+ elsif !attributes[self.class.attribute_map[key]].nil?
158
+ public_method("#{key}=").call(
159
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
160
+ )
161
+ end
162
+ # or else data not found in attributes(hash), not an issue as the data can be optional
163
+ end
164
+
165
+ self
166
+ end
167
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
168
+
169
+ # Returns the string representation of the object
170
+ # @return [String] String presentation of the object
171
+ def to_s
172
+ to_hash.to_s
173
+ end
174
+
175
+ # Returns the object in the form of hash
176
+ # @return [Hash] Returns the object in the form of hash
177
+ def to_hash
178
+ hash = {}
179
+ self.class.attribute_map.each_pair do |attr, param|
180
+ value = public_method(attr).call
181
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
182
+
183
+ hash[param] = _to_hash(value)
184
+ end
185
+ hash
186
+ end
187
+
188
+ private
189
+
190
+ # Outputs non-array value in the form of hash
191
+ # For object, use to_hash. Otherwise, just return the value
192
+ # @param [Object] value Any valid value
193
+ # @return [Hash] Returns the value in the form of hash
194
+ def _to_hash(value)
195
+ if value.is_a?(Array)
196
+ value.compact.map { |v| _to_hash(v) }
197
+ elsif value.is_a?(Hash)
198
+ {}.tap do |hash|
199
+ value.each { |k, v| hash[k] = _to_hash(v) }
200
+ end
201
+ elsif value.respond_to? :to_hash
202
+ value.to_hash
203
+ else
204
+ value
205
+ end
206
+ end
207
+ end
208
+ end
209
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,209 @@
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 'iceberg_storage_summary'
7
+
8
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
9
+ module OCI
10
+ # Summary of the OCI Object Storage (S3 Compatibility API) configuration used by the
11
+ # Iceberg connection.
12
+ #
13
+ class GoldenGate::Models::OciObjectStorageS3ApiIcebergStorageSummary < GoldenGate::Models::IcebergStorageSummary
14
+ # **[Required]** OCI Object Storage S3 Compatibility API endpoint URL.
15
+ # Format: \"https://<namespace>.compat.objectstorage.<region>.<domain>\"
16
+ # Example: \"https://mynamespace.compat.objectstorage.us-ashburn-1.oraclecloud.com\"
17
+ #
18
+ # @return [String]
19
+ attr_accessor :endpoint
20
+
21
+ # **[Required]** Access Key ID from the OCI IAM user's Customer Secret Key pair used to authenticate to
22
+ # OCI Object Storage via the S3 Compatibility API.
23
+ #
24
+ # Note: Despite the \"Id\" suffix, this value is not an OCI OCID.
25
+ #
26
+ # @return [String]
27
+ attr_accessor :access_key_id
28
+
29
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the Secret where the Secret Access Key used for OCI Object Storage S3 Compatibility authentication.
30
+ #
31
+ # @return [String]
32
+ attr_accessor :secret_access_key_secret_id
33
+
34
+ # **[Required]** Target OCI Object Storage bucket name where Iceberg stores
35
+ # table metadata and data files.
36
+ #
37
+ # @return [String]
38
+ attr_accessor :bucket
39
+
40
+ # Attribute mapping from ruby-style variable name to JSON key.
41
+ def self.attribute_map
42
+ {
43
+ # rubocop:disable Style/SymbolLiteral
44
+ 'storage_type': :'storageType',
45
+ 'endpoint': :'endpoint',
46
+ 'access_key_id': :'accessKeyId',
47
+ 'secret_access_key_secret_id': :'secretAccessKeySecretId',
48
+ 'bucket': :'bucket'
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
+ 'storage_type': :'String',
58
+ 'endpoint': :'String',
59
+ 'access_key_id': :'String',
60
+ 'secret_access_key_secret_id': :'String',
61
+ 'bucket': :'String'
62
+ # rubocop:enable Style/SymbolLiteral
63
+ }
64
+ end
65
+
66
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
67
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
68
+
69
+
70
+ # Initializes the object
71
+ # @param [Hash] attributes Model attributes in the form of hash
72
+ # @option attributes [String] :endpoint The value to assign to the {#endpoint} property
73
+ # @option attributes [String] :access_key_id The value to assign to the {#access_key_id} property
74
+ # @option attributes [String] :secret_access_key_secret_id The value to assign to the {#secret_access_key_secret_id} property
75
+ # @option attributes [String] :bucket The value to assign to the {#bucket} property
76
+ def initialize(attributes = {})
77
+ return unless attributes.is_a?(Hash)
78
+
79
+ attributes['storageType'] = 'OCI_OBJECT_STORAGE_S3_API'
80
+
81
+ super(attributes)
82
+
83
+ # convert string to symbol for hash key
84
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
85
+
86
+ self.endpoint = attributes[:'endpoint'] if attributes[:'endpoint']
87
+
88
+ self.access_key_id = attributes[:'accessKeyId'] if attributes[:'accessKeyId']
89
+
90
+ raise 'You cannot provide both :accessKeyId and :access_key_id' if attributes.key?(:'accessKeyId') && attributes.key?(:'access_key_id')
91
+
92
+ self.access_key_id = attributes[:'access_key_id'] if attributes[:'access_key_id']
93
+
94
+ self.secret_access_key_secret_id = attributes[:'secretAccessKeySecretId'] if attributes[:'secretAccessKeySecretId']
95
+
96
+ raise 'You cannot provide both :secretAccessKeySecretId and :secret_access_key_secret_id' if attributes.key?(:'secretAccessKeySecretId') && attributes.key?(:'secret_access_key_secret_id')
97
+
98
+ self.secret_access_key_secret_id = attributes[:'secret_access_key_secret_id'] if attributes[:'secret_access_key_secret_id']
99
+
100
+ self.bucket = attributes[:'bucket'] if attributes[:'bucket']
101
+ end
102
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
103
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
104
+
105
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
106
+
107
+
108
+ # Checks equality by comparing each attribute.
109
+ # @param [Object] other the other object to be compared
110
+ def ==(other)
111
+ return true if equal?(other)
112
+
113
+ self.class == other.class &&
114
+ storage_type == other.storage_type &&
115
+ endpoint == other.endpoint &&
116
+ access_key_id == other.access_key_id &&
117
+ secret_access_key_secret_id == other.secret_access_key_secret_id &&
118
+ bucket == other.bucket
119
+ end
120
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
121
+
122
+ # @see the `==` method
123
+ # @param [Object] other the other object to be compared
124
+ def eql?(other)
125
+ self == other
126
+ end
127
+
128
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
129
+
130
+
131
+ # Calculates hash code according to all attributes.
132
+ # @return [Fixnum] Hash code
133
+ def hash
134
+ [storage_type, endpoint, access_key_id, secret_access_key_secret_id, bucket].hash
135
+ end
136
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
137
+
138
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
139
+
140
+
141
+ # Builds the object from hash
142
+ # @param [Hash] attributes Model attributes in the form of hash
143
+ # @return [Object] Returns the model itself
144
+ def build_from_hash(attributes)
145
+ return nil unless attributes.is_a?(Hash)
146
+
147
+ self.class.swagger_types.each_pair do |key, type|
148
+ if type =~ /^Array<(.*)>/i
149
+ # check to ensure the input is an array given that the the attribute
150
+ # is documented as an array but the input is not
151
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
152
+ public_method("#{key}=").call(
153
+ attributes[self.class.attribute_map[key]]
154
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
155
+ )
156
+ end
157
+ elsif !attributes[self.class.attribute_map[key]].nil?
158
+ public_method("#{key}=").call(
159
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
160
+ )
161
+ end
162
+ # or else data not found in attributes(hash), not an issue as the data can be optional
163
+ end
164
+
165
+ self
166
+ end
167
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
168
+
169
+ # Returns the string representation of the object
170
+ # @return [String] String presentation of the object
171
+ def to_s
172
+ to_hash.to_s
173
+ end
174
+
175
+ # Returns the object in the form of hash
176
+ # @return [Hash] Returns the object in the form of hash
177
+ def to_hash
178
+ hash = {}
179
+ self.class.attribute_map.each_pair do |attr, param|
180
+ value = public_method(attr).call
181
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
182
+
183
+ hash[param] = _to_hash(value)
184
+ end
185
+ hash
186
+ end
187
+
188
+ private
189
+
190
+ # Outputs non-array value in the form of hash
191
+ # For object, use to_hash. Otherwise, just return the value
192
+ # @param [Object] value Any valid value
193
+ # @return [Hash] Returns the value in the form of hash
194
+ def _to_hash(value)
195
+ if value.is_a?(Array)
196
+ value.compact.map { |v| _to_hash(v) }
197
+ elsif value.is_a?(Hash)
198
+ {}.tap do |hash|
199
+ value.each { |k, v| hash[k] = _to_hash(v) }
200
+ end
201
+ elsif value.respond_to? :to_hash
202
+ value.to_hash
203
+ else
204
+ value
205
+ end
206
+ end
207
+ end
208
+ end
209
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -16,9 +16,12 @@ module OCI
16
16
  TECHNOLOGY_TYPE_OCI_AUTONOMOUS_DATABASE = 'OCI_AUTONOMOUS_DATABASE'.freeze,
17
17
  TECHNOLOGY_TYPE_ORACLE_DATABASE = 'ORACLE_DATABASE'.freeze,
18
18
  TECHNOLOGY_TYPE_ORACLE_EXADATA = 'ORACLE_EXADATA'.freeze,
19
+ TECHNOLOGY_TYPE_ORACLE_EXADATA_EXASCALE = 'ORACLE_EXADATA_EXASCALE'.freeze,
19
20
  TECHNOLOGY_TYPE_ORACLE_EXADATA_DATABASE_AT_AZURE = 'ORACLE_EXADATA_DATABASE_AT_AZURE'.freeze,
21
+ TECHNOLOGY_TYPE_ORACLE_EXADATA_EXASCALE_AT_AZURE = 'ORACLE_EXADATA_EXASCALE_AT_AZURE'.freeze,
20
22
  TECHNOLOGY_TYPE_ORACLE_AUTONOMOUS_DATABASE_AT_AZURE = 'ORACLE_AUTONOMOUS_DATABASE_AT_AZURE'.freeze,
21
23
  TECHNOLOGY_TYPE_ORACLE_EXADATA_DATABASE_AT_GOOGLE_CLOUD = 'ORACLE_EXADATA_DATABASE_AT_GOOGLE_CLOUD'.freeze,
24
+ TECHNOLOGY_TYPE_ORACLE_EXADATA_EXASCALE_AT_GOOGLE_CLOUD = 'ORACLE_EXADATA_EXASCALE_AT_GOOGLE_CLOUD'.freeze,
22
25
  TECHNOLOGY_TYPE_ORACLE_AUTONOMOUS_DATABASE_AT_GOOGLE_CLOUD = 'ORACLE_AUTONOMOUS_DATABASE_AT_GOOGLE_CLOUD'.freeze,
23
26
  TECHNOLOGY_TYPE_ORACLE_EXADATA_DATABASE_AT_AWS = 'ORACLE_EXADATA_DATABASE_AT_AWS'.freeze,
24
27
  TECHNOLOGY_TYPE_ORACLE_AUTONOMOUS_DATABASE_AT_AWS = 'ORACLE_AUTONOMOUS_DATABASE_AT_AWS'.freeze,
@@ -68,7 +71,7 @@ module OCI
68
71
  # The default is DIRECT, except when databaseId is provided and the discovered database relies on the SCAN listener.
69
72
  # In this case, the default is REDIRECT.
70
73
  #
71
- # Deprecated: Defaulting to the REDIRECT session mode will be removed after March 1, 2027.
74
+ # Deprecated: Defaulting to the REDIRECT session mode will be removed after April 21, 2027.
72
75
  #
73
76
  # @return [String]
74
77
  attr_reader :session_mode
@@ -41,7 +41,7 @@ module OCI
41
41
  # The default is DIRECT, except when databaseId is provided and the discovered database relies on the SCAN listener.
42
42
  # In this case, the default is REDIRECT.
43
43
  #
44
- # Deprecated: Defaulting to the REDIRECT session mode will be removed after March 1, 2027.
44
+ # Deprecated: Defaulting to the REDIRECT session mode will be removed after April 21, 2027.
45
45
  #
46
46
  # @return [String]
47
47
  attr_accessor :session_mode
@@ -18,10 +18,13 @@ module OCI
18
18
  TECHNOLOGY_TYPE_OCI_STREAMING_WITH_APACHE_KAFKA = 'OCI_STREAMING_WITH_APACHE_KAFKA'.freeze,
19
19
  TECHNOLOGY_TYPE_ORACLE_DATABASE = 'ORACLE_DATABASE'.freeze,
20
20
  TECHNOLOGY_TYPE_ORACLE_EXADATA = 'ORACLE_EXADATA'.freeze,
21
+ TECHNOLOGY_TYPE_ORACLE_EXADATA_EXASCALE = 'ORACLE_EXADATA_EXASCALE'.freeze,
21
22
  TECHNOLOGY_TYPE_ORACLE_EXADATA_DATABASE_AT_AZURE = 'ORACLE_EXADATA_DATABASE_AT_AZURE'.freeze,
23
+ TECHNOLOGY_TYPE_ORACLE_EXADATA_EXASCALE_AT_AZURE = 'ORACLE_EXADATA_EXASCALE_AT_AZURE'.freeze,
22
24
  TECHNOLOGY_TYPE_ORACLE_AUTONOMOUS_DATABASE_AT_AZURE = 'ORACLE_AUTONOMOUS_DATABASE_AT_AZURE'.freeze,
23
25
  TECHNOLOGY_TYPE_ORACLE_JSON_COLLECTION = 'ORACLE_JSON_COLLECTION'.freeze,
24
26
  TECHNOLOGY_TYPE_ORACLE_EXADATA_DATABASE_AT_GOOGLE_CLOUD = 'ORACLE_EXADATA_DATABASE_AT_GOOGLE_CLOUD'.freeze,
27
+ TECHNOLOGY_TYPE_ORACLE_EXADATA_EXASCALE_AT_GOOGLE_CLOUD = 'ORACLE_EXADATA_EXASCALE_AT_GOOGLE_CLOUD'.freeze,
25
28
  TECHNOLOGY_TYPE_ORACLE_AUTONOMOUS_DATABASE_AT_GOOGLE_CLOUD = 'ORACLE_AUTONOMOUS_DATABASE_AT_GOOGLE_CLOUD'.freeze,
26
29
  TECHNOLOGY_TYPE_ORACLE_EXADATA_DATABASE_AT_AWS = 'ORACLE_EXADATA_DATABASE_AT_AWS'.freeze,
27
30
  TECHNOLOGY_TYPE_ORACLE_AUTONOMOUS_DATABASE_AT_AWS = 'ORACLE_AUTONOMOUS_DATABASE_AT_AWS'.freeze,
@@ -60,6 +63,7 @@ module OCI
60
63
  TECHNOLOGY_TYPE_EDB_POSTGRES_ADVANCED_SERVER = 'EDB_POSTGRES_ADVANCED_SERVER'.freeze,
61
64
  TECHNOLOGY_TYPE_GOOGLE_ALLOY_DB_FOR_POSTGRESQL = 'GOOGLE_ALLOY_DB_FOR_POSTGRESQL'.freeze,
62
65
  TECHNOLOGY_TYPE_GOOGLE_BIGQUERY = 'GOOGLE_BIGQUERY'.freeze,
66
+ TECHNOLOGY_TYPE_GOOGLE_CLOUD_MANAGED_SERVICE_FOR_APACHE_KAFKA = 'GOOGLE_CLOUD_MANAGED_SERVICE_FOR_APACHE_KAFKA'.freeze,
63
67
  TECHNOLOGY_TYPE_GOOGLE_CLOUD_STORAGE = 'GOOGLE_CLOUD_STORAGE'.freeze,
64
68
  TECHNOLOGY_TYPE_GOOGLE_CLOUD_SQL_MYSQL = 'GOOGLE_CLOUD_SQL_MYSQL'.freeze,
65
69
  TECHNOLOGY_TYPE_GOOGLE_CLOUD_SQL_POSTGRESQL = 'GOOGLE_CLOUD_SQL_POSTGRESQL'.freeze,
@@ -80,7 +84,8 @@ module OCI
80
84
  TECHNOLOGY_TYPE_SINGLESTOREDB = 'SINGLESTOREDB'.freeze,
81
85
  TECHNOLOGY_TYPE_SINGLESTOREDB_CLOUD = 'SINGLESTOREDB_CLOUD'.freeze,
82
86
  TECHNOLOGY_TYPE_SNOWFLAKE = 'SNOWFLAKE'.freeze,
83
- TECHNOLOGY_TYPE_YUGABYTE_DB = 'YUGABYTE_DB'.freeze
87
+ TECHNOLOGY_TYPE_YUGABYTE_DB = 'YUGABYTE_DB'.freeze,
88
+ TECHNOLOGY_TYPE_AI_MODEL = 'AI_MODEL'.freeze
84
89
  ].freeze
85
90
  end
86
91
  end
@@ -0,0 +1,187 @@
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
+ # The information to update authentication details for an AI Model connection.
10
+ #
11
+ # This class has direct subclasses. If you are using this class as input to a service operations then you should favor using a subclass over the base class
12
+ class GoldenGate::Models::UpdateAiModelAuthDetails
13
+ AUTH_TYPE_ENUM = [
14
+ AUTH_TYPE_OCI_GEN_AI = 'OCI_GEN_AI'.freeze,
15
+ AUTH_TYPE_API_KEY = 'API_KEY'.freeze
16
+ ].freeze
17
+
18
+ # **[Required]** Authentication type used by the AI model connection.
19
+ #
20
+ # @return [String]
21
+ attr_reader :auth_type
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ # rubocop:disable Style/SymbolLiteral
27
+ 'auth_type': :'authType'
28
+ # rubocop:enable Style/SymbolLiteral
29
+ }
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.swagger_types
34
+ {
35
+ # rubocop:disable Style/SymbolLiteral
36
+ 'auth_type': :'String'
37
+ # rubocop:enable Style/SymbolLiteral
38
+ }
39
+ end
40
+
41
+ # rubocop:disable Metrics/CyclomaticComplexity, Layout/EmptyLines, Metrics/PerceivedComplexity, Metrics/AbcSize
42
+
43
+
44
+ # Given the hash representation of a subtype of this class,
45
+ # use the info in the hash to return the class of the subtype.
46
+ def self.get_subtype(object_hash)
47
+ type = object_hash[:'authType'] # rubocop:disable Style/SymbolLiteral
48
+
49
+ return 'OCI::GoldenGate::Models::UpdateOciGenAiModelAuthDetails' if type == 'OCI_GEN_AI'
50
+ return 'OCI::GoldenGate::Models::UpdateApiKeyAiModelAuthDetails' if type == 'API_KEY'
51
+
52
+ # TODO: Log a warning when the subtype is not found.
53
+ 'OCI::GoldenGate::Models::UpdateAiModelAuthDetails'
54
+ end
55
+ # rubocop:enable Metrics/CyclomaticComplexity, Layout/EmptyLines, Metrics/PerceivedComplexity, Metrics/AbcSize
56
+
57
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
58
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
59
+
60
+
61
+ # Initializes the object
62
+ # @param [Hash] attributes Model attributes in the form of hash
63
+ # @option attributes [String] :auth_type The value to assign to the {#auth_type} property
64
+ def initialize(attributes = {})
65
+ return unless attributes.is_a?(Hash)
66
+
67
+ # convert string to symbol for hash key
68
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
69
+
70
+ self.auth_type = attributes[:'authType'] if attributes[:'authType']
71
+
72
+ raise 'You cannot provide both :authType and :auth_type' if attributes.key?(:'authType') && attributes.key?(:'auth_type')
73
+
74
+ self.auth_type = attributes[:'auth_type'] if attributes[:'auth_type']
75
+ end
76
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
77
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
78
+
79
+ # Custom attribute writer method checking allowed values (enum).
80
+ # @param [Object] auth_type Object to be assigned
81
+ def auth_type=(auth_type)
82
+ raise "Invalid value for 'auth_type': this must be one of the values in AUTH_TYPE_ENUM." if auth_type && !AUTH_TYPE_ENUM.include?(auth_type)
83
+
84
+ @auth_type = auth_type
85
+ end
86
+
87
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
88
+
89
+
90
+ # Checks equality by comparing each attribute.
91
+ # @param [Object] other the other object to be compared
92
+ def ==(other)
93
+ return true if equal?(other)
94
+
95
+ self.class == other.class &&
96
+ auth_type == other.auth_type
97
+ end
98
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
99
+
100
+ # @see the `==` method
101
+ # @param [Object] other the other object to be compared
102
+ def eql?(other)
103
+ self == other
104
+ end
105
+
106
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
107
+
108
+
109
+ # Calculates hash code according to all attributes.
110
+ # @return [Fixnum] Hash code
111
+ def hash
112
+ [auth_type].hash
113
+ end
114
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
115
+
116
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
117
+
118
+
119
+ # Builds the object from hash
120
+ # @param [Hash] attributes Model attributes in the form of hash
121
+ # @return [Object] Returns the model itself
122
+ def build_from_hash(attributes)
123
+ return nil unless attributes.is_a?(Hash)
124
+
125
+ self.class.swagger_types.each_pair do |key, type|
126
+ if type =~ /^Array<(.*)>/i
127
+ # check to ensure the input is an array given that the the attribute
128
+ # is documented as an array but the input is not
129
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
130
+ public_method("#{key}=").call(
131
+ attributes[self.class.attribute_map[key]]
132
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
133
+ )
134
+ end
135
+ elsif !attributes[self.class.attribute_map[key]].nil?
136
+ public_method("#{key}=").call(
137
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
138
+ )
139
+ end
140
+ # or else data not found in attributes(hash), not an issue as the data can be optional
141
+ end
142
+
143
+ self
144
+ end
145
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
146
+
147
+ # Returns the string representation of the object
148
+ # @return [String] String presentation of the object
149
+ def to_s
150
+ to_hash.to_s
151
+ end
152
+
153
+ # Returns the object in the form of hash
154
+ # @return [Hash] Returns the object in the form of hash
155
+ def to_hash
156
+ hash = {}
157
+ self.class.attribute_map.each_pair do |attr, param|
158
+ value = public_method(attr).call
159
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
160
+
161
+ hash[param] = _to_hash(value)
162
+ end
163
+ hash
164
+ end
165
+
166
+ private
167
+
168
+ # Outputs non-array value in the form of hash
169
+ # For object, use to_hash. Otherwise, just return the value
170
+ # @param [Object] value Any valid value
171
+ # @return [Hash] Returns the value in the form of hash
172
+ def _to_hash(value)
173
+ if value.is_a?(Array)
174
+ value.compact.map { |v| _to_hash(v) }
175
+ elsif value.is_a?(Hash)
176
+ {}.tap do |hash|
177
+ value.each { |k, v| hash[k] = _to_hash(v) }
178
+ end
179
+ elsif value.respond_to? :to_hash
180
+ value.to_hash
181
+ else
182
+ value
183
+ end
184
+ end
185
+ end
186
+ end
187
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength