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
@@ -38,6 +38,21 @@ module OCI
38
38
  # @return [String]
39
39
  attr_accessor :kms_key_id
40
40
 
41
+ # @return [OCI::Core::Models::RetentionDuration]
42
+ attr_accessor :retention_period
43
+
44
+ # Prevent backups from being deleted during the configured retention period. This is an optional field. If it is not specified, it is set to null, prevent deletion will not be applied to the backups.
45
+ # @return [BOOLEAN]
46
+ attr_accessor :is_prevent_deletion_enabled
47
+
48
+ # feature that prevents deletion or alteration of backup data for a specified period to ensure data protection and regulatory compliance. This is an optional field. If it is not specified, it is set to null, no retention lock will be applied to the backups. This feature should be used in conjunction with the retention-period field.
49
+ # @return [BOOLEAN]
50
+ attr_accessor :is_retention_lock_enabled
51
+
52
+ # feature that preserves backup data from modification or deletion to ensure it remains available for legal or regulatory investigations or litigation, regardless of standard retention policies. This is an optional field. If it is not specified, it is set to null, no legal hold will be applied to the backups.
53
+ # @return [BOOLEAN]
54
+ attr_accessor :is_indefinite_retention_enabled
55
+
41
56
  # Attribute mapping from ruby-style variable name to JSON key.
42
57
  def self.attribute_map
43
58
  {
@@ -45,7 +60,11 @@ module OCI
45
60
  'defined_tags': :'definedTags',
46
61
  'display_name': :'displayName',
47
62
  'freeform_tags': :'freeformTags',
48
- 'kms_key_id': :'kmsKeyId'
63
+ 'kms_key_id': :'kmsKeyId',
64
+ 'retention_period': :'retentionPeriod',
65
+ 'is_prevent_deletion_enabled': :'isPreventDeletionEnabled',
66
+ 'is_retention_lock_enabled': :'isRetentionLockEnabled',
67
+ 'is_indefinite_retention_enabled': :'isIndefiniteRetentionEnabled'
49
68
  # rubocop:enable Style/SymbolLiteral
50
69
  }
51
70
  end
@@ -57,7 +76,11 @@ module OCI
57
76
  'defined_tags': :'Hash<String, Hash<String, Object>>',
58
77
  'display_name': :'String',
59
78
  'freeform_tags': :'Hash<String, String>',
60
- 'kms_key_id': :'String'
79
+ 'kms_key_id': :'String',
80
+ 'retention_period': :'OCI::Core::Models::RetentionDuration',
81
+ 'is_prevent_deletion_enabled': :'BOOLEAN',
82
+ 'is_retention_lock_enabled': :'BOOLEAN',
83
+ 'is_indefinite_retention_enabled': :'BOOLEAN'
61
84
  # rubocop:enable Style/SymbolLiteral
62
85
  }
63
86
  end
@@ -72,6 +95,10 @@ module OCI
72
95
  # @option attributes [String] :display_name The value to assign to the {#display_name} property
73
96
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
74
97
  # @option attributes [String] :kms_key_id The value to assign to the {#kms_key_id} property
98
+ # @option attributes [OCI::Core::Models::RetentionDuration] :retention_period The value to assign to the {#retention_period} property
99
+ # @option attributes [BOOLEAN] :is_prevent_deletion_enabled The value to assign to the {#is_prevent_deletion_enabled} property
100
+ # @option attributes [BOOLEAN] :is_retention_lock_enabled The value to assign to the {#is_retention_lock_enabled} property
101
+ # @option attributes [BOOLEAN] :is_indefinite_retention_enabled The value to assign to the {#is_indefinite_retention_enabled} property
75
102
  def initialize(attributes = {})
76
103
  return unless attributes.is_a?(Hash)
77
104
 
@@ -101,6 +128,30 @@ module OCI
101
128
  raise 'You cannot provide both :kmsKeyId and :kms_key_id' if attributes.key?(:'kmsKeyId') && attributes.key?(:'kms_key_id')
102
129
 
103
130
  self.kms_key_id = attributes[:'kms_key_id'] if attributes[:'kms_key_id']
131
+
132
+ self.retention_period = attributes[:'retentionPeriod'] if attributes[:'retentionPeriod']
133
+
134
+ raise 'You cannot provide both :retentionPeriod and :retention_period' if attributes.key?(:'retentionPeriod') && attributes.key?(:'retention_period')
135
+
136
+ self.retention_period = attributes[:'retention_period'] if attributes[:'retention_period']
137
+
138
+ self.is_prevent_deletion_enabled = attributes[:'isPreventDeletionEnabled'] unless attributes[:'isPreventDeletionEnabled'].nil?
139
+
140
+ raise 'You cannot provide both :isPreventDeletionEnabled and :is_prevent_deletion_enabled' if attributes.key?(:'isPreventDeletionEnabled') && attributes.key?(:'is_prevent_deletion_enabled')
141
+
142
+ self.is_prevent_deletion_enabled = attributes[:'is_prevent_deletion_enabled'] unless attributes[:'is_prevent_deletion_enabled'].nil?
143
+
144
+ self.is_retention_lock_enabled = attributes[:'isRetentionLockEnabled'] unless attributes[:'isRetentionLockEnabled'].nil?
145
+
146
+ raise 'You cannot provide both :isRetentionLockEnabled and :is_retention_lock_enabled' if attributes.key?(:'isRetentionLockEnabled') && attributes.key?(:'is_retention_lock_enabled')
147
+
148
+ self.is_retention_lock_enabled = attributes[:'is_retention_lock_enabled'] unless attributes[:'is_retention_lock_enabled'].nil?
149
+
150
+ self.is_indefinite_retention_enabled = attributes[:'isIndefiniteRetentionEnabled'] unless attributes[:'isIndefiniteRetentionEnabled'].nil?
151
+
152
+ raise 'You cannot provide both :isIndefiniteRetentionEnabled and :is_indefinite_retention_enabled' if attributes.key?(:'isIndefiniteRetentionEnabled') && attributes.key?(:'is_indefinite_retention_enabled')
153
+
154
+ self.is_indefinite_retention_enabled = attributes[:'is_indefinite_retention_enabled'] unless attributes[:'is_indefinite_retention_enabled'].nil?
104
155
  end
105
156
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
106
157
  # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -117,7 +168,11 @@ module OCI
117
168
  defined_tags == other.defined_tags &&
118
169
  display_name == other.display_name &&
119
170
  freeform_tags == other.freeform_tags &&
120
- kms_key_id == other.kms_key_id
171
+ kms_key_id == other.kms_key_id &&
172
+ retention_period == other.retention_period &&
173
+ is_prevent_deletion_enabled == other.is_prevent_deletion_enabled &&
174
+ is_retention_lock_enabled == other.is_retention_lock_enabled &&
175
+ is_indefinite_retention_enabled == other.is_indefinite_retention_enabled
121
176
  end
122
177
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
123
178
 
@@ -133,7 +188,7 @@ module OCI
133
188
  # Calculates hash code according to all attributes.
134
189
  # @return [Fixnum] Hash code
135
190
  def hash
136
- [defined_tags, display_name, freeform_tags, kms_key_id].hash
191
+ [defined_tags, display_name, freeform_tags, kms_key_id, retention_period, is_prevent_deletion_enabled, is_retention_lock_enabled, is_indefinite_retention_enabled].hash
137
192
  end
138
193
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
139
194
 
@@ -48,6 +48,14 @@ module OCI
48
48
  # @return [OCI::Core::Models::UpdateMacsecProperties]
49
49
  attr_accessor :macsec_properties
50
50
 
51
+ # The flag to enable or disable the down timer for the interface.
52
+ # @return [BOOLEAN]
53
+ attr_accessor :is_interface_hold_timer_enabled
54
+
55
+ # The duration of the interface down timer in milliseconds between 0 and 3000 in multiples of 500.
56
+ # @return [Integer]
57
+ attr_accessor :interface_down_timer_value_in_milliseconds
58
+
51
59
  # Attribute mapping from ruby-style variable name to JSON key.
52
60
  def self.attribute_map
53
61
  {
@@ -57,7 +65,9 @@ module OCI
57
65
  'freeform_tags': :'freeformTags',
58
66
  'is_active': :'isActive',
59
67
  'customer_reference_name': :'customerReferenceName',
60
- 'macsec_properties': :'macsecProperties'
68
+ 'macsec_properties': :'macsecProperties',
69
+ 'is_interface_hold_timer_enabled': :'isInterfaceHoldTimerEnabled',
70
+ 'interface_down_timer_value_in_milliseconds': :'interfaceDownTimerValueInMilliseconds'
61
71
  # rubocop:enable Style/SymbolLiteral
62
72
  }
63
73
  end
@@ -71,7 +81,9 @@ module OCI
71
81
  'freeform_tags': :'Hash<String, String>',
72
82
  'is_active': :'BOOLEAN',
73
83
  'customer_reference_name': :'String',
74
- 'macsec_properties': :'OCI::Core::Models::UpdateMacsecProperties'
84
+ 'macsec_properties': :'OCI::Core::Models::UpdateMacsecProperties',
85
+ 'is_interface_hold_timer_enabled': :'BOOLEAN',
86
+ 'interface_down_timer_value_in_milliseconds': :'Integer'
75
87
  # rubocop:enable Style/SymbolLiteral
76
88
  }
77
89
  end
@@ -88,6 +100,8 @@ module OCI
88
100
  # @option attributes [BOOLEAN] :is_active The value to assign to the {#is_active} property
89
101
  # @option attributes [String] :customer_reference_name The value to assign to the {#customer_reference_name} property
90
102
  # @option attributes [OCI::Core::Models::UpdateMacsecProperties] :macsec_properties The value to assign to the {#macsec_properties} property
103
+ # @option attributes [BOOLEAN] :is_interface_hold_timer_enabled The value to assign to the {#is_interface_hold_timer_enabled} property
104
+ # @option attributes [Integer] :interface_down_timer_value_in_milliseconds The value to assign to the {#interface_down_timer_value_in_milliseconds} property
91
105
  def initialize(attributes = {})
92
106
  return unless attributes.is_a?(Hash)
93
107
 
@@ -129,6 +143,18 @@ module OCI
129
143
  raise 'You cannot provide both :macsecProperties and :macsec_properties' if attributes.key?(:'macsecProperties') && attributes.key?(:'macsec_properties')
130
144
 
131
145
  self.macsec_properties = attributes[:'macsec_properties'] if attributes[:'macsec_properties']
146
+
147
+ self.is_interface_hold_timer_enabled = attributes[:'isInterfaceHoldTimerEnabled'] unless attributes[:'isInterfaceHoldTimerEnabled'].nil?
148
+
149
+ raise 'You cannot provide both :isInterfaceHoldTimerEnabled and :is_interface_hold_timer_enabled' if attributes.key?(:'isInterfaceHoldTimerEnabled') && attributes.key?(:'is_interface_hold_timer_enabled')
150
+
151
+ self.is_interface_hold_timer_enabled = attributes[:'is_interface_hold_timer_enabled'] unless attributes[:'is_interface_hold_timer_enabled'].nil?
152
+
153
+ self.interface_down_timer_value_in_milliseconds = attributes[:'interfaceDownTimerValueInMilliseconds'] if attributes[:'interfaceDownTimerValueInMilliseconds']
154
+
155
+ raise 'You cannot provide both :interfaceDownTimerValueInMilliseconds and :interface_down_timer_value_in_milliseconds' if attributes.key?(:'interfaceDownTimerValueInMilliseconds') && attributes.key?(:'interface_down_timer_value_in_milliseconds')
156
+
157
+ self.interface_down_timer_value_in_milliseconds = attributes[:'interface_down_timer_value_in_milliseconds'] if attributes[:'interface_down_timer_value_in_milliseconds']
132
158
  end
133
159
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
134
160
  # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -147,7 +173,9 @@ module OCI
147
173
  freeform_tags == other.freeform_tags &&
148
174
  is_active == other.is_active &&
149
175
  customer_reference_name == other.customer_reference_name &&
150
- macsec_properties == other.macsec_properties
176
+ macsec_properties == other.macsec_properties &&
177
+ is_interface_hold_timer_enabled == other.is_interface_hold_timer_enabled &&
178
+ interface_down_timer_value_in_milliseconds == other.interface_down_timer_value_in_milliseconds
151
179
  end
152
180
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
153
181
 
@@ -163,7 +191,7 @@ module OCI
163
191
  # Calculates hash code according to all attributes.
164
192
  # @return [Fixnum] Hash code
165
193
  def hash
166
- [defined_tags, display_name, freeform_tags, is_active, customer_reference_name, macsec_properties].hash
194
+ [defined_tags, display_name, freeform_tags, is_active, customer_reference_name, macsec_properties, is_interface_hold_timer_enabled, interface_down_timer_value_in_milliseconds].hash
167
195
  end
168
196
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
169
197
 
@@ -38,6 +38,21 @@ module OCI
38
38
  # @return [OCI::Core::Models::UpdateMacsecProperties]
39
39
  attr_accessor :macsec_properties
40
40
 
41
+ # (Optional) Minimum number of active cross-connects required for the cross-connect group to be considered
42
+ # operational. If not specified, this value defaults to 1. Value must not exceed the total number of
43
+ # cross-connects in the cross-connect group.
44
+ #
45
+ # @return [Integer]
46
+ attr_accessor :minimum_links
47
+
48
+ # The flag to enable or disable the down timer for the interface.
49
+ # @return [BOOLEAN]
50
+ attr_accessor :is_interface_hold_timer_enabled
51
+
52
+ # The duration of the interface down timer in milliseconds between 0 and 3000 in multiples of 500.
53
+ # @return [Integer]
54
+ attr_accessor :interface_down_timer_value_in_milliseconds
55
+
41
56
  # Attribute mapping from ruby-style variable name to JSON key.
42
57
  def self.attribute_map
43
58
  {
@@ -46,7 +61,10 @@ module OCI
46
61
  'display_name': :'displayName',
47
62
  'customer_reference_name': :'customerReferenceName',
48
63
  'freeform_tags': :'freeformTags',
49
- 'macsec_properties': :'macsecProperties'
64
+ 'macsec_properties': :'macsecProperties',
65
+ 'minimum_links': :'minimumLinks',
66
+ 'is_interface_hold_timer_enabled': :'isInterfaceHoldTimerEnabled',
67
+ 'interface_down_timer_value_in_milliseconds': :'interfaceDownTimerValueInMilliseconds'
50
68
  # rubocop:enable Style/SymbolLiteral
51
69
  }
52
70
  end
@@ -59,7 +77,10 @@ module OCI
59
77
  'display_name': :'String',
60
78
  'customer_reference_name': :'String',
61
79
  'freeform_tags': :'Hash<String, String>',
62
- 'macsec_properties': :'OCI::Core::Models::UpdateMacsecProperties'
80
+ 'macsec_properties': :'OCI::Core::Models::UpdateMacsecProperties',
81
+ 'minimum_links': :'Integer',
82
+ 'is_interface_hold_timer_enabled': :'BOOLEAN',
83
+ 'interface_down_timer_value_in_milliseconds': :'Integer'
63
84
  # rubocop:enable Style/SymbolLiteral
64
85
  }
65
86
  end
@@ -75,6 +96,9 @@ module OCI
75
96
  # @option attributes [String] :customer_reference_name The value to assign to the {#customer_reference_name} property
76
97
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
77
98
  # @option attributes [OCI::Core::Models::UpdateMacsecProperties] :macsec_properties The value to assign to the {#macsec_properties} property
99
+ # @option attributes [Integer] :minimum_links The value to assign to the {#minimum_links} property
100
+ # @option attributes [BOOLEAN] :is_interface_hold_timer_enabled The value to assign to the {#is_interface_hold_timer_enabled} property
101
+ # @option attributes [Integer] :interface_down_timer_value_in_milliseconds The value to assign to the {#interface_down_timer_value_in_milliseconds} property
78
102
  def initialize(attributes = {})
79
103
  return unless attributes.is_a?(Hash)
80
104
 
@@ -110,6 +134,24 @@ module OCI
110
134
  raise 'You cannot provide both :macsecProperties and :macsec_properties' if attributes.key?(:'macsecProperties') && attributes.key?(:'macsec_properties')
111
135
 
112
136
  self.macsec_properties = attributes[:'macsec_properties'] if attributes[:'macsec_properties']
137
+
138
+ self.minimum_links = attributes[:'minimumLinks'] if attributes[:'minimumLinks']
139
+
140
+ raise 'You cannot provide both :minimumLinks and :minimum_links' if attributes.key?(:'minimumLinks') && attributes.key?(:'minimum_links')
141
+
142
+ self.minimum_links = attributes[:'minimum_links'] if attributes[:'minimum_links']
143
+
144
+ self.is_interface_hold_timer_enabled = attributes[:'isInterfaceHoldTimerEnabled'] unless attributes[:'isInterfaceHoldTimerEnabled'].nil?
145
+
146
+ raise 'You cannot provide both :isInterfaceHoldTimerEnabled and :is_interface_hold_timer_enabled' if attributes.key?(:'isInterfaceHoldTimerEnabled') && attributes.key?(:'is_interface_hold_timer_enabled')
147
+
148
+ self.is_interface_hold_timer_enabled = attributes[:'is_interface_hold_timer_enabled'] unless attributes[:'is_interface_hold_timer_enabled'].nil?
149
+
150
+ self.interface_down_timer_value_in_milliseconds = attributes[:'interfaceDownTimerValueInMilliseconds'] if attributes[:'interfaceDownTimerValueInMilliseconds']
151
+
152
+ raise 'You cannot provide both :interfaceDownTimerValueInMilliseconds and :interface_down_timer_value_in_milliseconds' if attributes.key?(:'interfaceDownTimerValueInMilliseconds') && attributes.key?(:'interface_down_timer_value_in_milliseconds')
153
+
154
+ self.interface_down_timer_value_in_milliseconds = attributes[:'interface_down_timer_value_in_milliseconds'] if attributes[:'interface_down_timer_value_in_milliseconds']
113
155
  end
114
156
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
115
157
  # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -127,7 +169,10 @@ module OCI
127
169
  display_name == other.display_name &&
128
170
  customer_reference_name == other.customer_reference_name &&
129
171
  freeform_tags == other.freeform_tags &&
130
- macsec_properties == other.macsec_properties
172
+ macsec_properties == other.macsec_properties &&
173
+ minimum_links == other.minimum_links &&
174
+ is_interface_hold_timer_enabled == other.is_interface_hold_timer_enabled &&
175
+ interface_down_timer_value_in_milliseconds == other.interface_down_timer_value_in_milliseconds
131
176
  end
132
177
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
133
178
 
@@ -143,7 +188,7 @@ module OCI
143
188
  # Calculates hash code according to all attributes.
144
189
  # @return [Fixnum] Hash code
145
190
  def hash
146
- [defined_tags, display_name, customer_reference_name, freeform_tags, macsec_properties].hash
191
+ [defined_tags, display_name, customer_reference_name, freeform_tags, macsec_properties, minimum_links, is_interface_hold_timer_enabled, interface_down_timer_value_in_milliseconds].hash
147
192
  end
148
193
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
149
194
 
@@ -0,0 +1,195 @@
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: 20160918
5
+ require 'date'
6
+
7
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
8
+ module OCI
9
+ # Update the details of the Letter of Authority associated with a cross-connect. Upon successful alterations
10
+ # a new updated copy of the LOA will be attached to the cross-connect.
11
+ #
12
+ class Core::Models::UpdateCrossConnectLetterOfAuthorityDetails
13
+ # A boolean flag to indicate whether to extend the expiry of the associated LOA with the provided
14
+ # cross-connect. If un-set or set to false, it does not alter the existing expiry of the LOA.
15
+ # On extension an updated copy of the LOA will be provided with the new expiry date. An LOA cannot
16
+ # be extended more than 3 times.
17
+ #
18
+ # @return [BOOLEAN]
19
+ attr_accessor :should_extend
20
+
21
+ # A boolean flag to indicate whether to remove an attached Authorized Agent to the LOA. If this boolean flag
22
+ # is set, an attempt will be made to remove the attached authorized agent to the LOA, if any, and any value
23
+ # given in the field 'authorizedAgent' will be ignored. In case, of updating an existing Authorized Agent,
24
+ # keep this flag unset and set the expected value in 'authorizedAgent'.
25
+ #
26
+ # @return [BOOLEAN]
27
+ attr_accessor :should_remove_authorized_agent
28
+
29
+ # Name of a customer authorized agent which will be appended to the LOA as the field 'Authorized Agent'.
30
+ # If the field is left un-set in the request body, no changes will be done on the LOA for Authorized Agent.
31
+ #
32
+ # @return [String]
33
+ attr_accessor :authorized_agent
34
+
35
+ # Attribute mapping from ruby-style variable name to JSON key.
36
+ def self.attribute_map
37
+ {
38
+ # rubocop:disable Style/SymbolLiteral
39
+ 'should_extend': :'shouldExtend',
40
+ 'should_remove_authorized_agent': :'shouldRemoveAuthorizedAgent',
41
+ 'authorized_agent': :'authorizedAgent'
42
+ # rubocop:enable Style/SymbolLiteral
43
+ }
44
+ end
45
+
46
+ # Attribute type mapping.
47
+ def self.swagger_types
48
+ {
49
+ # rubocop:disable Style/SymbolLiteral
50
+ 'should_extend': :'BOOLEAN',
51
+ 'should_remove_authorized_agent': :'BOOLEAN',
52
+ 'authorized_agent': :'String'
53
+ # rubocop:enable Style/SymbolLiteral
54
+ }
55
+ end
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 [BOOLEAN] :should_extend The value to assign to the {#should_extend} property
64
+ # @option attributes [BOOLEAN] :should_remove_authorized_agent The value to assign to the {#should_remove_authorized_agent} property
65
+ # @option attributes [String] :authorized_agent The value to assign to the {#authorized_agent} property
66
+ def initialize(attributes = {})
67
+ return unless attributes.is_a?(Hash)
68
+
69
+ # convert string to symbol for hash key
70
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
71
+
72
+ self.should_extend = attributes[:'shouldExtend'] unless attributes[:'shouldExtend'].nil?
73
+
74
+ raise 'You cannot provide both :shouldExtend and :should_extend' if attributes.key?(:'shouldExtend') && attributes.key?(:'should_extend')
75
+
76
+ self.should_extend = attributes[:'should_extend'] unless attributes[:'should_extend'].nil?
77
+
78
+ self.should_remove_authorized_agent = attributes[:'shouldRemoveAuthorizedAgent'] unless attributes[:'shouldRemoveAuthorizedAgent'].nil?
79
+
80
+ raise 'You cannot provide both :shouldRemoveAuthorizedAgent and :should_remove_authorized_agent' if attributes.key?(:'shouldRemoveAuthorizedAgent') && attributes.key?(:'should_remove_authorized_agent')
81
+
82
+ self.should_remove_authorized_agent = attributes[:'should_remove_authorized_agent'] unless attributes[:'should_remove_authorized_agent'].nil?
83
+
84
+ self.authorized_agent = attributes[:'authorizedAgent'] if attributes[:'authorizedAgent']
85
+
86
+ raise 'You cannot provide both :authorizedAgent and :authorized_agent' if attributes.key?(:'authorizedAgent') && attributes.key?(:'authorized_agent')
87
+
88
+ self.authorized_agent = attributes[:'authorized_agent'] if attributes[:'authorized_agent']
89
+ end
90
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
91
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
92
+
93
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
94
+
95
+
96
+ # Checks equality by comparing each attribute.
97
+ # @param [Object] other the other object to be compared
98
+ def ==(other)
99
+ return true if equal?(other)
100
+
101
+ self.class == other.class &&
102
+ should_extend == other.should_extend &&
103
+ should_remove_authorized_agent == other.should_remove_authorized_agent &&
104
+ authorized_agent == other.authorized_agent
105
+ end
106
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
107
+
108
+ # @see the `==` method
109
+ # @param [Object] other the other object to be compared
110
+ def eql?(other)
111
+ self == other
112
+ end
113
+
114
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
115
+
116
+
117
+ # Calculates hash code according to all attributes.
118
+ # @return [Fixnum] Hash code
119
+ def hash
120
+ [should_extend, should_remove_authorized_agent, authorized_agent].hash
121
+ end
122
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
123
+
124
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
125
+
126
+
127
+ # Builds the object from hash
128
+ # @param [Hash] attributes Model attributes in the form of hash
129
+ # @return [Object] Returns the model itself
130
+ def build_from_hash(attributes)
131
+ return nil unless attributes.is_a?(Hash)
132
+
133
+ self.class.swagger_types.each_pair do |key, type|
134
+ if type =~ /^Array<(.*)>/i
135
+ # check to ensure the input is an array given that the the attribute
136
+ # is documented as an array but the input is not
137
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
138
+ public_method("#{key}=").call(
139
+ attributes[self.class.attribute_map[key]]
140
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
141
+ )
142
+ end
143
+ elsif !attributes[self.class.attribute_map[key]].nil?
144
+ public_method("#{key}=").call(
145
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
146
+ )
147
+ end
148
+ # or else data not found in attributes(hash), not an issue as the data can be optional
149
+ end
150
+
151
+ self
152
+ end
153
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
154
+
155
+ # Returns the string representation of the object
156
+ # @return [String] String presentation of the object
157
+ def to_s
158
+ to_hash.to_s
159
+ end
160
+
161
+ # Returns the object in the form of hash
162
+ # @return [Hash] Returns the object in the form of hash
163
+ def to_hash
164
+ hash = {}
165
+ self.class.attribute_map.each_pair do |attr, param|
166
+ value = public_method(attr).call
167
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
168
+
169
+ hash[param] = _to_hash(value)
170
+ end
171
+ hash
172
+ end
173
+
174
+ private
175
+
176
+ # Outputs non-array value in the form of hash
177
+ # For object, use to_hash. Otherwise, just return the value
178
+ # @param [Object] value Any valid value
179
+ # @return [Hash] Returns the value in the form of hash
180
+ def _to_hash(value)
181
+ if value.is_a?(Array)
182
+ value.compact.map { |v| _to_hash(v) }
183
+ elsif value.is_a?(Hash)
184
+ {}.tap do |hash|
185
+ value.each { |k, v| hash[k] = _to_hash(v) }
186
+ end
187
+ elsif value.respond_to? :to_hash
188
+ value.to_hash
189
+ else
190
+ value
191
+ end
192
+ end
193
+ end
194
+ end
195
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -20,6 +20,11 @@ module OCI
20
20
  BGP_ADMIN_STATE_DISABLED = 'DISABLED'.freeze
21
21
  ].freeze
22
22
 
23
+ TRAFFIC_MODE_ENUM = [
24
+ TRAFFIC_MODE_NORMAL = 'NORMAL'.freeze,
25
+ TRAFFIC_MODE_DRAIN = 'DRAIN'.freeze
26
+ ].freeze
27
+
23
28
  PROVIDER_STATE_ENUM = [
24
29
  PROVIDER_STATE_ACTIVE = 'ACTIVE'.freeze,
25
30
  PROVIDER_STATE_INACTIVE = 'INACTIVE'.freeze
@@ -115,6 +120,12 @@ module OCI
115
120
  # @return [Hash<String, String>]
116
121
  attr_accessor :freeform_tags
117
122
 
123
+ # The traffic mode to be set with this Virtual Circuit. This controls whether the traffic is to be drained
124
+ # for the associated Virtual Circuit or not.
125
+ #
126
+ # @return [String]
127
+ attr_reader :traffic_mode
128
+
118
129
  # The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the {Drg}
119
130
  # that this private virtual circuit uses.
120
131
  #
@@ -166,6 +177,7 @@ module OCI
166
177
  'defined_tags': :'definedTags',
167
178
  'display_name': :'displayName',
168
179
  'freeform_tags': :'freeformTags',
180
+ 'traffic_mode': :'trafficMode',
169
181
  'gateway_id': :'gatewayId',
170
182
  'provider_state': :'providerState',
171
183
  'provider_service_key_name': :'providerServiceKeyName',
@@ -190,6 +202,7 @@ module OCI
190
202
  'defined_tags': :'Hash<String, Hash<String, Object>>',
191
203
  'display_name': :'String',
192
204
  'freeform_tags': :'Hash<String, String>',
205
+ 'traffic_mode': :'String',
193
206
  'gateway_id': :'String',
194
207
  'provider_state': :'String',
195
208
  'provider_service_key_name': :'String',
@@ -216,6 +229,7 @@ module OCI
216
229
  # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
217
230
  # @option attributes [String] :display_name The value to assign to the {#display_name} property
218
231
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
232
+ # @option attributes [String] :traffic_mode The value to assign to the {#traffic_mode} property
219
233
  # @option attributes [String] :gateway_id The value to assign to the {#gateway_id} property
220
234
  # @option attributes [String] :provider_state The value to assign to the {#provider_state} property
221
235
  # @option attributes [String] :provider_service_key_name The value to assign to the {#provider_service_key_name} property
@@ -297,6 +311,12 @@ module OCI
297
311
 
298
312
  self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
299
313
 
314
+ self.traffic_mode = attributes[:'trafficMode'] if attributes[:'trafficMode']
315
+
316
+ raise 'You cannot provide both :trafficMode and :traffic_mode' if attributes.key?(:'trafficMode') && attributes.key?(:'traffic_mode')
317
+
318
+ self.traffic_mode = attributes[:'traffic_mode'] if attributes[:'traffic_mode']
319
+
300
320
  self.gateway_id = attributes[:'gatewayId'] if attributes[:'gatewayId']
301
321
 
302
322
  raise 'You cannot provide both :gatewayId and :gateway_id' if attributes.key?(:'gatewayId') && attributes.key?(:'gateway_id')
@@ -353,6 +373,14 @@ module OCI
353
373
  @bgp_admin_state = bgp_admin_state
354
374
  end
355
375
 
376
+ # Custom attribute writer method checking allowed values (enum).
377
+ # @param [Object] traffic_mode Object to be assigned
378
+ def traffic_mode=(traffic_mode)
379
+ raise "Invalid value for 'traffic_mode': this must be one of the values in TRAFFIC_MODE_ENUM." if traffic_mode && !TRAFFIC_MODE_ENUM.include?(traffic_mode)
380
+
381
+ @traffic_mode = traffic_mode
382
+ end
383
+
356
384
  # Custom attribute writer method checking allowed values (enum).
357
385
  # @param [Object] provider_state Object to be assigned
358
386
  def provider_state=(provider_state)
@@ -389,6 +417,7 @@ module OCI
389
417
  defined_tags == other.defined_tags &&
390
418
  display_name == other.display_name &&
391
419
  freeform_tags == other.freeform_tags &&
420
+ traffic_mode == other.traffic_mode &&
392
421
  gateway_id == other.gateway_id &&
393
422
  provider_state == other.provider_state &&
394
423
  provider_service_key_name == other.provider_service_key_name &&
@@ -409,7 +438,7 @@ module OCI
409
438
  # Calculates hash code according to all attributes.
410
439
  # @return [Fixnum] Hash code
411
440
  def hash
412
- [bandwidth_shape_name, cross_connect_mappings, routing_policy, bgp_admin_state, is_bfd_enabled, is_transport_mode, customer_bgp_asn, customer_asn, defined_tags, display_name, freeform_tags, gateway_id, provider_state, provider_service_key_name, reference_comment, ip_mtu].hash
441
+ [bandwidth_shape_name, cross_connect_mappings, routing_policy, bgp_admin_state, is_bfd_enabled, is_transport_mode, customer_bgp_asn, customer_asn, defined_tags, display_name, freeform_tags, traffic_mode, gateway_id, provider_state, provider_service_key_name, reference_comment, ip_mtu].hash
413
442
  end
414
443
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
415
444