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
 
@@ -30,13 +30,32 @@ module OCI
30
30
  # @return [Hash<String, String>]
31
31
  attr_accessor :freeform_tags
32
32
 
33
+ # @return [OCI::Core::Models::RetentionDuration]
34
+ attr_accessor :retention_period
35
+
36
+ # 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.
37
+ # @return [BOOLEAN]
38
+ attr_accessor :is_prevent_deletion_enabled
39
+
40
+ # 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.
41
+ # @return [BOOLEAN]
42
+ attr_accessor :is_retention_lock_enabled
43
+
44
+ # 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.
45
+ # @return [BOOLEAN]
46
+ attr_accessor :is_indefinite_retention_enabled
47
+
33
48
  # Attribute mapping from ruby-style variable name to JSON key.
34
49
  def self.attribute_map
35
50
  {
36
51
  # rubocop:disable Style/SymbolLiteral
37
52
  'defined_tags': :'definedTags',
38
53
  'display_name': :'displayName',
39
- 'freeform_tags': :'freeformTags'
54
+ 'freeform_tags': :'freeformTags',
55
+ 'retention_period': :'retentionPeriod',
56
+ 'is_prevent_deletion_enabled': :'isPreventDeletionEnabled',
57
+ 'is_retention_lock_enabled': :'isRetentionLockEnabled',
58
+ 'is_indefinite_retention_enabled': :'isIndefiniteRetentionEnabled'
40
59
  # rubocop:enable Style/SymbolLiteral
41
60
  }
42
61
  end
@@ -47,7 +66,11 @@ module OCI
47
66
  # rubocop:disable Style/SymbolLiteral
48
67
  'defined_tags': :'Hash<String, Hash<String, Object>>',
49
68
  'display_name': :'String',
50
- 'freeform_tags': :'Hash<String, String>'
69
+ 'freeform_tags': :'Hash<String, String>',
70
+ 'retention_period': :'OCI::Core::Models::RetentionDuration',
71
+ 'is_prevent_deletion_enabled': :'BOOLEAN',
72
+ 'is_retention_lock_enabled': :'BOOLEAN',
73
+ 'is_indefinite_retention_enabled': :'BOOLEAN'
51
74
  # rubocop:enable Style/SymbolLiteral
52
75
  }
53
76
  end
@@ -61,6 +84,10 @@ module OCI
61
84
  # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
62
85
  # @option attributes [String] :display_name The value to assign to the {#display_name} property
63
86
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
87
+ # @option attributes [OCI::Core::Models::RetentionDuration] :retention_period The value to assign to the {#retention_period} property
88
+ # @option attributes [BOOLEAN] :is_prevent_deletion_enabled The value to assign to the {#is_prevent_deletion_enabled} property
89
+ # @option attributes [BOOLEAN] :is_retention_lock_enabled The value to assign to the {#is_retention_lock_enabled} property
90
+ # @option attributes [BOOLEAN] :is_indefinite_retention_enabled The value to assign to the {#is_indefinite_retention_enabled} property
64
91
  def initialize(attributes = {})
65
92
  return unless attributes.is_a?(Hash)
66
93
 
@@ -84,6 +111,30 @@ module OCI
84
111
  raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
85
112
 
86
113
  self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
114
+
115
+ self.retention_period = attributes[:'retentionPeriod'] if attributes[:'retentionPeriod']
116
+
117
+ raise 'You cannot provide both :retentionPeriod and :retention_period' if attributes.key?(:'retentionPeriod') && attributes.key?(:'retention_period')
118
+
119
+ self.retention_period = attributes[:'retention_period'] if attributes[:'retention_period']
120
+
121
+ self.is_prevent_deletion_enabled = attributes[:'isPreventDeletionEnabled'] unless attributes[:'isPreventDeletionEnabled'].nil?
122
+
123
+ raise 'You cannot provide both :isPreventDeletionEnabled and :is_prevent_deletion_enabled' if attributes.key?(:'isPreventDeletionEnabled') && attributes.key?(:'is_prevent_deletion_enabled')
124
+
125
+ self.is_prevent_deletion_enabled = attributes[:'is_prevent_deletion_enabled'] unless attributes[:'is_prevent_deletion_enabled'].nil?
126
+
127
+ self.is_retention_lock_enabled = attributes[:'isRetentionLockEnabled'] unless attributes[:'isRetentionLockEnabled'].nil?
128
+
129
+ raise 'You cannot provide both :isRetentionLockEnabled and :is_retention_lock_enabled' if attributes.key?(:'isRetentionLockEnabled') && attributes.key?(:'is_retention_lock_enabled')
130
+
131
+ self.is_retention_lock_enabled = attributes[:'is_retention_lock_enabled'] unless attributes[:'is_retention_lock_enabled'].nil?
132
+
133
+ self.is_indefinite_retention_enabled = attributes[:'isIndefiniteRetentionEnabled'] unless attributes[:'isIndefiniteRetentionEnabled'].nil?
134
+
135
+ raise 'You cannot provide both :isIndefiniteRetentionEnabled and :is_indefinite_retention_enabled' if attributes.key?(:'isIndefiniteRetentionEnabled') && attributes.key?(:'is_indefinite_retention_enabled')
136
+
137
+ self.is_indefinite_retention_enabled = attributes[:'is_indefinite_retention_enabled'] unless attributes[:'is_indefinite_retention_enabled'].nil?
87
138
  end
88
139
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
89
140
  # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -99,7 +150,11 @@ module OCI
99
150
  self.class == other.class &&
100
151
  defined_tags == other.defined_tags &&
101
152
  display_name == other.display_name &&
102
- freeform_tags == other.freeform_tags
153
+ freeform_tags == other.freeform_tags &&
154
+ retention_period == other.retention_period &&
155
+ is_prevent_deletion_enabled == other.is_prevent_deletion_enabled &&
156
+ is_retention_lock_enabled == other.is_retention_lock_enabled &&
157
+ is_indefinite_retention_enabled == other.is_indefinite_retention_enabled
103
158
  end
104
159
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
105
160
 
@@ -115,7 +170,7 @@ module OCI
115
170
  # Calculates hash code according to all attributes.
116
171
  # @return [Fixnum] Hash code
117
172
  def hash
118
- [defined_tags, display_name, freeform_tags].hash
173
+ [defined_tags, display_name, freeform_tags, retention_period, is_prevent_deletion_enabled, is_retention_lock_enabled, is_indefinite_retention_enabled].hash
119
174
  end
120
175
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
121
176
 
@@ -98,6 +98,12 @@ module OCI
98
98
  IP_MTU_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
99
99
  ].freeze
100
100
 
101
+ TRAFFIC_MODE_ENUM = [
102
+ TRAFFIC_MODE_NORMAL = 'NORMAL'.freeze,
103
+ TRAFFIC_MODE_DRAIN = 'DRAIN'.freeze,
104
+ TRAFFIC_MODE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
105
+ ].freeze
106
+
101
107
  # The provisioned data rate of the connection. To get a list of the
102
108
  # available bandwidth levels (that is, shapes), see
103
109
  # {#list_fast_connect_provider_virtual_circuit_bandwidth_shapes list_fast_connect_provider_virtual_circuit_bandwidth_shapes}.
@@ -284,6 +290,26 @@ module OCI
284
290
  # @return [String]
285
291
  attr_reader :ip_mtu
286
292
 
293
+ # The OCI's FastConnect MultiCloud Provider/Partner remote region name associated with the OCI region.
294
+ # To get the list of associated provider remote region use the ListProviderRemoteRegions operation
295
+ #
296
+ # @return [String]
297
+ attr_accessor :provider_remote_region
298
+
299
+ # The Shared unique identifier for the connection between the multicloud interconnect providers
300
+ # @return [String]
301
+ attr_accessor :shared_connection_uuid
302
+
303
+ # Customer's account on Provider/Partner cloud (AWS, GCP or any other)
304
+ # @return [String]
305
+ attr_accessor :remote_account_id
306
+
307
+ # The current traffic mode for the Virtual Circuit. This indicates whether the traffic is drained for the
308
+ # associated Virtual Circuit or not.
309
+ #
310
+ # @return [String]
311
+ attr_reader :traffic_mode
312
+
287
313
  # @return [OCI::Core::Models::VirtualCircuitRedundancyMetadata]
288
314
  attr_accessor :virtual_circuit_redundancy_metadata
289
315
 
@@ -322,6 +348,10 @@ module OCI
322
348
  'time_created': :'timeCreated',
323
349
  'type': :'type',
324
350
  'ip_mtu': :'ipMtu',
351
+ 'provider_remote_region': :'providerRemoteRegion',
352
+ 'shared_connection_uuid': :'sharedConnectionUuid',
353
+ 'remote_account_id': :'remoteAccountId',
354
+ 'traffic_mode': :'trafficMode',
325
355
  'virtual_circuit_redundancy_metadata': :'virtualCircuitRedundancyMetadata'
326
356
  # rubocop:enable Style/SymbolLiteral
327
357
  }
@@ -362,6 +392,10 @@ module OCI
362
392
  'time_created': :'DateTime',
363
393
  'type': :'String',
364
394
  'ip_mtu': :'String',
395
+ 'provider_remote_region': :'String',
396
+ 'shared_connection_uuid': :'String',
397
+ 'remote_account_id': :'String',
398
+ 'traffic_mode': :'String',
365
399
  'virtual_circuit_redundancy_metadata': :'OCI::Core::Models::VirtualCircuitRedundancyMetadata'
366
400
  # rubocop:enable Style/SymbolLiteral
367
401
  }
@@ -404,6 +438,10 @@ module OCI
404
438
  # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
405
439
  # @option attributes [String] :type The value to assign to the {#type} property
406
440
  # @option attributes [String] :ip_mtu The value to assign to the {#ip_mtu} property
441
+ # @option attributes [String] :provider_remote_region The value to assign to the {#provider_remote_region} property
442
+ # @option attributes [String] :shared_connection_uuid The value to assign to the {#shared_connection_uuid} property
443
+ # @option attributes [String] :remote_account_id The value to assign to the {#remote_account_id} property
444
+ # @option attributes [String] :traffic_mode The value to assign to the {#traffic_mode} property
407
445
  # @option attributes [OCI::Core::Models::VirtualCircuitRedundancyMetadata] :virtual_circuit_redundancy_metadata The value to assign to the {#virtual_circuit_redundancy_metadata} property
408
446
  def initialize(attributes = {})
409
447
  return unless attributes.is_a?(Hash)
@@ -589,6 +627,30 @@ module OCI
589
627
 
590
628
  self.ip_mtu = attributes[:'ip_mtu'] if attributes[:'ip_mtu']
591
629
 
630
+ self.provider_remote_region = attributes[:'providerRemoteRegion'] if attributes[:'providerRemoteRegion']
631
+
632
+ raise 'You cannot provide both :providerRemoteRegion and :provider_remote_region' if attributes.key?(:'providerRemoteRegion') && attributes.key?(:'provider_remote_region')
633
+
634
+ self.provider_remote_region = attributes[:'provider_remote_region'] if attributes[:'provider_remote_region']
635
+
636
+ self.shared_connection_uuid = attributes[:'sharedConnectionUuid'] if attributes[:'sharedConnectionUuid']
637
+
638
+ raise 'You cannot provide both :sharedConnectionUuid and :shared_connection_uuid' if attributes.key?(:'sharedConnectionUuid') && attributes.key?(:'shared_connection_uuid')
639
+
640
+ self.shared_connection_uuid = attributes[:'shared_connection_uuid'] if attributes[:'shared_connection_uuid']
641
+
642
+ self.remote_account_id = attributes[:'remoteAccountId'] if attributes[:'remoteAccountId']
643
+
644
+ raise 'You cannot provide both :remoteAccountId and :remote_account_id' if attributes.key?(:'remoteAccountId') && attributes.key?(:'remote_account_id')
645
+
646
+ self.remote_account_id = attributes[:'remote_account_id'] if attributes[:'remote_account_id']
647
+
648
+ self.traffic_mode = attributes[:'trafficMode'] if attributes[:'trafficMode']
649
+
650
+ raise 'You cannot provide both :trafficMode and :traffic_mode' if attributes.key?(:'trafficMode') && attributes.key?(:'traffic_mode')
651
+
652
+ self.traffic_mode = attributes[:'traffic_mode'] if attributes[:'traffic_mode']
653
+
592
654
  self.virtual_circuit_redundancy_metadata = attributes[:'virtualCircuitRedundancyMetadata'] if attributes[:'virtualCircuitRedundancyMetadata']
593
655
 
594
656
  raise 'You cannot provide both :virtualCircuitRedundancyMetadata and :virtual_circuit_redundancy_metadata' if attributes.key?(:'virtualCircuitRedundancyMetadata') && attributes.key?(:'virtual_circuit_redundancy_metadata')
@@ -735,6 +797,19 @@ module OCI
735
797
  # rubocop:enable Style/ConditionalAssignment
736
798
  end
737
799
 
800
+ # Custom attribute writer method checking allowed values (enum).
801
+ # @param [Object] traffic_mode Object to be assigned
802
+ def traffic_mode=(traffic_mode)
803
+ # rubocop:disable Style/ConditionalAssignment
804
+ if traffic_mode && !TRAFFIC_MODE_ENUM.include?(traffic_mode)
805
+ OCI.logger.debug("Unknown value for 'traffic_mode' [" + traffic_mode + "]. Mapping to 'TRAFFIC_MODE_UNKNOWN_ENUM_VALUE'") if OCI.logger
806
+ @traffic_mode = TRAFFIC_MODE_UNKNOWN_ENUM_VALUE
807
+ else
808
+ @traffic_mode = traffic_mode
809
+ end
810
+ # rubocop:enable Style/ConditionalAssignment
811
+ end
812
+
738
813
  # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
739
814
 
740
815
 
@@ -775,6 +850,10 @@ module OCI
775
850
  time_created == other.time_created &&
776
851
  type == other.type &&
777
852
  ip_mtu == other.ip_mtu &&
853
+ provider_remote_region == other.provider_remote_region &&
854
+ shared_connection_uuid == other.shared_connection_uuid &&
855
+ remote_account_id == other.remote_account_id &&
856
+ traffic_mode == other.traffic_mode &&
778
857
  virtual_circuit_redundancy_metadata == other.virtual_circuit_redundancy_metadata
779
858
  end
780
859
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
@@ -791,7 +870,7 @@ module OCI
791
870
  # Calculates hash code according to all attributes.
792
871
  # @return [Fixnum] Hash code
793
872
  def hash
794
- [bandwidth_shape_name, bgp_management, bgp_session_state, bgp_ipv6_session_state, compartment_id, 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, id, lifecycle_state, oracle_bgp_asn, provider_name, provider_service_id, provider_service_key_name, provider_service_name, provider_state, public_prefixes, reference_comment, region, service_type, time_created, type, ip_mtu, virtual_circuit_redundancy_metadata].hash
873
+ [bandwidth_shape_name, bgp_management, bgp_session_state, bgp_ipv6_session_state, compartment_id, 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, id, lifecycle_state, oracle_bgp_asn, provider_name, provider_service_id, provider_service_key_name, provider_service_name, provider_state, public_prefixes, reference_comment, region, service_type, time_created, type, ip_mtu, provider_remote_region, shared_connection_uuid, remote_account_id, traffic_mode, virtual_circuit_redundancy_metadata].hash
795
874
  end
796
875
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
797
876
 
@@ -150,6 +150,29 @@ module OCI
150
150
  # @return [String]
151
151
  attr_accessor :volume_id
152
152
 
153
+ # The date and time when a backup\u2019s retention period ends and it is set to expire. This is an optional field. If it is not specified, it is set to null, no retention period will be applied to the backups.
154
+ # @return [DateTime]
155
+ attr_accessor :time_retention_expires_at
156
+
157
+ # @return [OCI::Core::Models::RetentionDuration]
158
+ attr_accessor :retention_period
159
+
160
+ # 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.
161
+ # @return [BOOLEAN]
162
+ attr_accessor :is_prevent_deletion_enabled
163
+
164
+ # 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.
165
+ # @return [BOOLEAN]
166
+ attr_accessor :is_retention_lock_enabled
167
+
168
+ # 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.
169
+ # @return [BOOLEAN]
170
+ attr_accessor :is_indefinite_retention_enabled
171
+
172
+ # The OCID of the volume group backup associated with the backup. This is an optional field. If it is not present in the response, the backup does not belong to a volume group.
173
+ # @return [String]
174
+ attr_accessor :volume_group_backup_id
175
+
153
176
  # Attribute mapping from ruby-style variable name to JSON key.
154
177
  def self.attribute_map
155
178
  {
@@ -172,7 +195,13 @@ module OCI
172
195
  'type': :'type',
173
196
  'unique_size_in_gbs': :'uniqueSizeInGBs',
174
197
  'unique_size_in_mbs': :'uniqueSizeInMbs',
175
- 'volume_id': :'volumeId'
198
+ 'volume_id': :'volumeId',
199
+ 'time_retention_expires_at': :'timeRetentionExpiresAt',
200
+ 'retention_period': :'retentionPeriod',
201
+ 'is_prevent_deletion_enabled': :'isPreventDeletionEnabled',
202
+ 'is_retention_lock_enabled': :'isRetentionLockEnabled',
203
+ 'is_indefinite_retention_enabled': :'isIndefiniteRetentionEnabled',
204
+ 'volume_group_backup_id': :'volumeGroupBackupId'
176
205
  # rubocop:enable Style/SymbolLiteral
177
206
  }
178
207
  end
@@ -199,7 +228,13 @@ module OCI
199
228
  'type': :'String',
200
229
  'unique_size_in_gbs': :'Integer',
201
230
  'unique_size_in_mbs': :'Integer',
202
- 'volume_id': :'String'
231
+ 'volume_id': :'String',
232
+ 'time_retention_expires_at': :'DateTime',
233
+ 'retention_period': :'OCI::Core::Models::RetentionDuration',
234
+ 'is_prevent_deletion_enabled': :'BOOLEAN',
235
+ 'is_retention_lock_enabled': :'BOOLEAN',
236
+ 'is_indefinite_retention_enabled': :'BOOLEAN',
237
+ 'volume_group_backup_id': :'String'
203
238
  # rubocop:enable Style/SymbolLiteral
204
239
  }
205
240
  end
@@ -229,6 +264,12 @@ module OCI
229
264
  # @option attributes [Integer] :unique_size_in_gbs The value to assign to the {#unique_size_in_gbs} property
230
265
  # @option attributes [Integer] :unique_size_in_mbs The value to assign to the {#unique_size_in_mbs} property
231
266
  # @option attributes [String] :volume_id The value to assign to the {#volume_id} property
267
+ # @option attributes [DateTime] :time_retention_expires_at The value to assign to the {#time_retention_expires_at} property
268
+ # @option attributes [OCI::Core::Models::RetentionDuration] :retention_period The value to assign to the {#retention_period} property
269
+ # @option attributes [BOOLEAN] :is_prevent_deletion_enabled The value to assign to the {#is_prevent_deletion_enabled} property
270
+ # @option attributes [BOOLEAN] :is_retention_lock_enabled The value to assign to the {#is_retention_lock_enabled} property
271
+ # @option attributes [BOOLEAN] :is_indefinite_retention_enabled The value to assign to the {#is_indefinite_retention_enabled} property
272
+ # @option attributes [String] :volume_group_backup_id The value to assign to the {#volume_group_backup_id} property
232
273
  def initialize(attributes = {})
233
274
  return unless attributes.is_a?(Hash)
234
275
 
@@ -340,6 +381,42 @@ module OCI
340
381
  raise 'You cannot provide both :volumeId and :volume_id' if attributes.key?(:'volumeId') && attributes.key?(:'volume_id')
341
382
 
342
383
  self.volume_id = attributes[:'volume_id'] if attributes[:'volume_id']
384
+
385
+ self.time_retention_expires_at = attributes[:'timeRetentionExpiresAt'] if attributes[:'timeRetentionExpiresAt']
386
+
387
+ raise 'You cannot provide both :timeRetentionExpiresAt and :time_retention_expires_at' if attributes.key?(:'timeRetentionExpiresAt') && attributes.key?(:'time_retention_expires_at')
388
+
389
+ self.time_retention_expires_at = attributes[:'time_retention_expires_at'] if attributes[:'time_retention_expires_at']
390
+
391
+ self.retention_period = attributes[:'retentionPeriod'] if attributes[:'retentionPeriod']
392
+
393
+ raise 'You cannot provide both :retentionPeriod and :retention_period' if attributes.key?(:'retentionPeriod') && attributes.key?(:'retention_period')
394
+
395
+ self.retention_period = attributes[:'retention_period'] if attributes[:'retention_period']
396
+
397
+ self.is_prevent_deletion_enabled = attributes[:'isPreventDeletionEnabled'] unless attributes[:'isPreventDeletionEnabled'].nil?
398
+
399
+ raise 'You cannot provide both :isPreventDeletionEnabled and :is_prevent_deletion_enabled' if attributes.key?(:'isPreventDeletionEnabled') && attributes.key?(:'is_prevent_deletion_enabled')
400
+
401
+ self.is_prevent_deletion_enabled = attributes[:'is_prevent_deletion_enabled'] unless attributes[:'is_prevent_deletion_enabled'].nil?
402
+
403
+ self.is_retention_lock_enabled = attributes[:'isRetentionLockEnabled'] unless attributes[:'isRetentionLockEnabled'].nil?
404
+
405
+ raise 'You cannot provide both :isRetentionLockEnabled and :is_retention_lock_enabled' if attributes.key?(:'isRetentionLockEnabled') && attributes.key?(:'is_retention_lock_enabled')
406
+
407
+ self.is_retention_lock_enabled = attributes[:'is_retention_lock_enabled'] unless attributes[:'is_retention_lock_enabled'].nil?
408
+
409
+ self.is_indefinite_retention_enabled = attributes[:'isIndefiniteRetentionEnabled'] unless attributes[:'isIndefiniteRetentionEnabled'].nil?
410
+
411
+ raise 'You cannot provide both :isIndefiniteRetentionEnabled and :is_indefinite_retention_enabled' if attributes.key?(:'isIndefiniteRetentionEnabled') && attributes.key?(:'is_indefinite_retention_enabled')
412
+
413
+ self.is_indefinite_retention_enabled = attributes[:'is_indefinite_retention_enabled'] unless attributes[:'is_indefinite_retention_enabled'].nil?
414
+
415
+ self.volume_group_backup_id = attributes[:'volumeGroupBackupId'] if attributes[:'volumeGroupBackupId']
416
+
417
+ raise 'You cannot provide both :volumeGroupBackupId and :volume_group_backup_id' if attributes.key?(:'volumeGroupBackupId') && attributes.key?(:'volume_group_backup_id')
418
+
419
+ self.volume_group_backup_id = attributes[:'volume_group_backup_id'] if attributes[:'volume_group_backup_id']
343
420
  end
344
421
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
345
422
  # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -410,7 +487,13 @@ module OCI
410
487
  type == other.type &&
411
488
  unique_size_in_gbs == other.unique_size_in_gbs &&
412
489
  unique_size_in_mbs == other.unique_size_in_mbs &&
413
- volume_id == other.volume_id
490
+ volume_id == other.volume_id &&
491
+ time_retention_expires_at == other.time_retention_expires_at &&
492
+ retention_period == other.retention_period &&
493
+ is_prevent_deletion_enabled == other.is_prevent_deletion_enabled &&
494
+ is_retention_lock_enabled == other.is_retention_lock_enabled &&
495
+ is_indefinite_retention_enabled == other.is_indefinite_retention_enabled &&
496
+ volume_group_backup_id == other.volume_group_backup_id
414
497
  end
415
498
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
416
499
 
@@ -426,7 +509,7 @@ module OCI
426
509
  # Calculates hash code according to all attributes.
427
510
  # @return [Fixnum] Hash code
428
511
  def hash
429
- [compartment_id, defined_tags, system_tags, display_name, expiration_time, freeform_tags, id, kms_key_id, lifecycle_state, size_in_gbs, size_in_mbs, source_type, source_volume_backup_id, time_created, time_request_received, type, unique_size_in_gbs, unique_size_in_mbs, volume_id].hash
512
+ [compartment_id, defined_tags, system_tags, display_name, expiration_time, freeform_tags, id, kms_key_id, lifecycle_state, size_in_gbs, size_in_mbs, source_type, source_volume_backup_id, time_created, time_request_received, type, unique_size_in_gbs, unique_size_in_mbs, volume_id, time_retention_expires_at, retention_period, is_prevent_deletion_enabled, is_retention_lock_enabled, is_indefinite_retention_enabled, volume_group_backup_id].hash
430
513
  end
431
514
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
432
515
 
@@ -131,6 +131,17 @@ module OCI
131
131
  # @return [String]
132
132
  attr_reader :time_zone
133
133
 
134
+ # @return [OCI::Core::Models::RetentionDuration]
135
+ attr_accessor :retention_period
136
+
137
+ # 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.
138
+ # @return [BOOLEAN]
139
+ attr_accessor :is_prevent_deletion_enabled
140
+
141
+ # 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.
142
+ # @return [BOOLEAN]
143
+ attr_accessor :is_retention_lock_enabled
144
+
134
145
  # Attribute mapping from ruby-style variable name to JSON key.
135
146
  def self.attribute_map
136
147
  {
@@ -144,7 +155,10 @@ module OCI
144
155
  'day_of_month': :'dayOfMonth',
145
156
  'month': :'month',
146
157
  'retention_seconds': :'retentionSeconds',
147
- 'time_zone': :'timeZone'
158
+ 'time_zone': :'timeZone',
159
+ 'retention_period': :'retentionPeriod',
160
+ 'is_prevent_deletion_enabled': :'isPreventDeletionEnabled',
161
+ 'is_retention_lock_enabled': :'isRetentionLockEnabled'
148
162
  # rubocop:enable Style/SymbolLiteral
149
163
  }
150
164
  end
@@ -162,7 +176,10 @@ module OCI
162
176
  'day_of_month': :'Integer',
163
177
  'month': :'String',
164
178
  'retention_seconds': :'Integer',
165
- 'time_zone': :'String'
179
+ 'time_zone': :'String',
180
+ 'retention_period': :'OCI::Core::Models::RetentionDuration',
181
+ 'is_prevent_deletion_enabled': :'BOOLEAN',
182
+ 'is_retention_lock_enabled': :'BOOLEAN'
166
183
  # rubocop:enable Style/SymbolLiteral
167
184
  }
168
185
  end
@@ -183,6 +200,9 @@ module OCI
183
200
  # @option attributes [String] :month The value to assign to the {#month} property
184
201
  # @option attributes [Integer] :retention_seconds The value to assign to the {#retention_seconds} property
185
202
  # @option attributes [String] :time_zone The value to assign to the {#time_zone} property
203
+ # @option attributes [OCI::Core::Models::RetentionDuration] :retention_period The value to assign to the {#retention_period} property
204
+ # @option attributes [BOOLEAN] :is_prevent_deletion_enabled The value to assign to the {#is_prevent_deletion_enabled} property
205
+ # @option attributes [BOOLEAN] :is_retention_lock_enabled The value to assign to the {#is_retention_lock_enabled} property
186
206
  def initialize(attributes = {})
187
207
  return unless attributes.is_a?(Hash)
188
208
 
@@ -242,6 +262,24 @@ module OCI
242
262
 
243
263
  self.time_zone = attributes[:'time_zone'] if attributes[:'time_zone']
244
264
  self.time_zone = "UTC" if time_zone.nil? && !attributes.key?(:'timeZone') && !attributes.key?(:'time_zone') # rubocop:disable Style/StringLiterals
265
+
266
+ self.retention_period = attributes[:'retentionPeriod'] if attributes[:'retentionPeriod']
267
+
268
+ raise 'You cannot provide both :retentionPeriod and :retention_period' if attributes.key?(:'retentionPeriod') && attributes.key?(:'retention_period')
269
+
270
+ self.retention_period = attributes[:'retention_period'] if attributes[:'retention_period']
271
+
272
+ self.is_prevent_deletion_enabled = attributes[:'isPreventDeletionEnabled'] unless attributes[:'isPreventDeletionEnabled'].nil?
273
+
274
+ raise 'You cannot provide both :isPreventDeletionEnabled and :is_prevent_deletion_enabled' if attributes.key?(:'isPreventDeletionEnabled') && attributes.key?(:'is_prevent_deletion_enabled')
275
+
276
+ self.is_prevent_deletion_enabled = attributes[:'is_prevent_deletion_enabled'] unless attributes[:'is_prevent_deletion_enabled'].nil?
277
+
278
+ self.is_retention_lock_enabled = attributes[:'isRetentionLockEnabled'] unless attributes[:'isRetentionLockEnabled'].nil?
279
+
280
+ raise 'You cannot provide both :isRetentionLockEnabled and :is_retention_lock_enabled' if attributes.key?(:'isRetentionLockEnabled') && attributes.key?(:'is_retention_lock_enabled')
281
+
282
+ self.is_retention_lock_enabled = attributes[:'is_retention_lock_enabled'] unless attributes[:'is_retention_lock_enabled'].nil?
245
283
  end
246
284
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
247
285
  # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -342,7 +380,10 @@ module OCI
342
380
  day_of_month == other.day_of_month &&
343
381
  month == other.month &&
344
382
  retention_seconds == other.retention_seconds &&
345
- time_zone == other.time_zone
383
+ time_zone == other.time_zone &&
384
+ retention_period == other.retention_period &&
385
+ is_prevent_deletion_enabled == other.is_prevent_deletion_enabled &&
386
+ is_retention_lock_enabled == other.is_retention_lock_enabled
346
387
  end
347
388
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
348
389
 
@@ -358,7 +399,7 @@ module OCI
358
399
  # Calculates hash code according to all attributes.
359
400
  # @return [Fixnum] Hash code
360
401
  def hash
361
- [backup_type, offset_seconds, period, offset_type, hour_of_day, day_of_week, day_of_month, month, retention_seconds, time_zone].hash
402
+ [backup_type, offset_seconds, period, offset_type, hour_of_day, day_of_week, day_of_month, month, retention_seconds, time_zone, retention_period, is_prevent_deletion_enabled, is_retention_lock_enabled].hash
362
403
  end
363
404
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
364
405