oci 2.5.9 → 2.5.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/oci/autoscaling/auto_scaling_client.rb +73 -0
  4. data/lib/oci/autoscaling/autoscaling.rb +1 -0
  5. data/lib/oci/autoscaling/models/change_auto_scaling_compartment_details.rb +154 -0
  6. data/lib/oci/autoscaling/models/create_auto_scaling_configuration_details.rb +0 -1
  7. data/lib/oci/container_engine/models/work_request_error.rb +0 -1
  8. data/lib/oci/core/blockstorage_client.rb +342 -0
  9. data/lib/oci/core/compute_client.rb +77 -5
  10. data/lib/oci/core/compute_client_composite_operations.rb +3 -3
  11. data/lib/oci/core/compute_management_client.rb +211 -0
  12. data/lib/oci/core/core.rb +27 -0
  13. data/lib/oci/core/models/add_network_security_group_security_rules_details.rb +153 -0
  14. data/lib/oci/core/models/add_security_rule_details.rb +388 -0
  15. data/lib/oci/core/models/added_network_security_group_security_rules.rb +153 -0
  16. data/lib/oci/core/models/change_boot_volume_backup_compartment_details.rb +153 -0
  17. data/lib/oci/core/models/change_boot_volume_compartment_details.rb +153 -0
  18. data/lib/oci/core/models/change_image_compartment_details.rb +154 -0
  19. data/lib/oci/core/models/change_instance_configuration_compartment_details.rb +155 -0
  20. data/lib/oci/core/models/change_instance_pool_compartment_details.rb +155 -0
  21. data/lib/oci/core/models/change_nat_gateway_compartment_details.rb +153 -0
  22. data/lib/oci/core/models/change_route_table_compartment_details.rb +155 -0
  23. data/lib/oci/core/models/change_security_list_compartment_details.rb +155 -0
  24. data/lib/oci/core/models/change_service_gateway_compartment_details.rb +155 -0
  25. data/lib/oci/core/models/change_subnet_compartment_details.rb +155 -0
  26. data/lib/oci/core/models/change_vcn_compartment_details.rb +155 -0
  27. data/lib/oci/core/models/change_volume_backup_compartment_details.rb +153 -0
  28. data/lib/oci/core/models/change_volume_compartment_details.rb +153 -0
  29. data/lib/oci/core/models/change_volume_group_backup_compartment_details.rb +153 -0
  30. data/lib/oci/core/models/change_volume_group_compartment_details.rb +153 -0
  31. data/lib/oci/core/models/create_network_security_group_details.rb +223 -0
  32. data/lib/oci/core/models/create_vnic_details.rb +18 -1
  33. data/lib/oci/core/models/image.rb +2 -1
  34. data/lib/oci/core/models/instance_configuration.rb +3 -1
  35. data/lib/oci/core/models/instance_configuration_create_vnic_details.rb +18 -1
  36. data/lib/oci/core/models/instance_configuration_instance_source_via_image_details.rb +15 -1
  37. data/lib/oci/core/models/instance_configuration_summary.rb +3 -3
  38. data/lib/oci/core/models/instance_pool.rb +4 -1
  39. data/lib/oci/core/models/instance_pool_summary.rb +3 -3
  40. data/lib/oci/core/models/network_security_group.rb +324 -0
  41. data/lib/oci/core/models/network_security_group_vnic.rb +188 -0
  42. data/lib/oci/core/models/remove_network_security_group_security_rules_details.rb +154 -0
  43. data/lib/oci/core/models/security_list.rb +5 -0
  44. data/lib/oci/core/models/security_rule.rb +455 -0
  45. data/lib/oci/core/models/update_network_security_group_details.rb +189 -0
  46. data/lib/oci/core/models/update_network_security_group_security_rules_details.rb +153 -0
  47. data/lib/oci/core/models/update_security_rule_details.rb +404 -0
  48. data/lib/oci/core/models/update_vnic_details.rb +20 -1
  49. data/lib/oci/core/models/updated_network_security_group_security_rules.rb +153 -0
  50. data/lib/oci/core/models/vnic.rb +18 -1
  51. data/lib/oci/core/virtual_network_client.rb +1228 -132
  52. data/lib/oci/core/virtual_network_client_composite_operations.rb +119 -0
  53. data/lib/oci/database/database.rb +19 -0
  54. data/lib/oci/database/database_client.rb +1066 -46
  55. data/lib/oci/database/database_client_composite_operations.rb +317 -0
  56. data/lib/oci/database/models/autonomous_container_database.rb +416 -0
  57. data/lib/oci/database/models/autonomous_container_database_backup_config.rb +157 -0
  58. data/lib/oci/database/models/autonomous_container_database_summary.rb +420 -0
  59. data/lib/oci/database/models/autonomous_database.rb +58 -1
  60. data/lib/oci/database/models/autonomous_database_backup.rb +16 -1
  61. data/lib/oci/database/models/autonomous_database_backup_summary.rb +16 -1
  62. data/lib/oci/database/models/autonomous_database_connection_strings.rb +11 -1
  63. data/lib/oci/database/models/autonomous_database_connection_urls.rb +170 -0
  64. data/lib/oci/database/models/autonomous_database_summary.rb +58 -1
  65. data/lib/oci/database/models/autonomous_db_preview_version_summary.rb +224 -0
  66. data/lib/oci/database/models/autonomous_exadata_infrastructure.rb +419 -0
  67. data/lib/oci/database/models/autonomous_exadata_infrastructure_maintenance_window.rb +186 -0
  68. data/lib/oci/database/models/autonomous_exadata_infrastructure_shape_summary.rb +224 -0
  69. data/lib/oci/database/models/autonomous_exadata_infrastructure_summary.rb +436 -0
  70. data/lib/oci/database/models/backup.rb +1 -0
  71. data/lib/oci/database/models/backup_summary.rb +1 -0
  72. data/lib/oci/database/models/create_autonomous_container_database_details.rb +284 -0
  73. data/lib/oci/database/models/create_autonomous_database_base.rb +46 -1
  74. data/lib/oci/database/models/create_autonomous_database_clone_details.rb +13 -1
  75. data/lib/oci/database/models/create_autonomous_database_details.rb +13 -1
  76. data/lib/oci/database/models/create_data_guard_association_with_new_db_system_details.rb +34 -1
  77. data/lib/oci/database/models/create_db_home_with_db_system_id_base.rb +1 -1
  78. data/lib/oci/database/models/day_of_week.rb +174 -0
  79. data/lib/oci/database/models/db_system.rb +34 -1
  80. data/lib/oci/database/models/db_system_summary.rb +34 -1
  81. data/lib/oci/database/models/launch_autonomous_exadata_infrastructure_details.rb +304 -0
  82. data/lib/oci/database/models/launch_db_system_base.rb +35 -2
  83. data/lib/oci/database/models/launch_db_system_details.rb +11 -2
  84. data/lib/oci/database/models/launch_db_system_from_backup_details.rb +11 -2
  85. data/lib/oci/database/models/maintenance_run.rb +392 -0
  86. data/lib/oci/database/models/maintenance_run_summary.rb +395 -0
  87. data/lib/oci/database/models/maintenance_window.rb +226 -0
  88. data/lib/oci/database/models/month.rb +179 -0
  89. data/lib/oci/database/models/restore_autonomous_database_details.rb +30 -4
  90. data/lib/oci/database/models/update_autonomous_container_database_details.rb +230 -0
  91. data/lib/oci/database/models/update_autonomous_database_details.rb +18 -1
  92. data/lib/oci/database/models/update_autonomous_exadata_infrastructure_details.rb +203 -0
  93. data/lib/oci/database/models/update_db_system_details.rb +37 -4
  94. data/lib/oci/database/models/update_maintenance_run_details.rb +154 -0
  95. data/lib/oci/email/email.rb +1 -0
  96. data/lib/oci/email/email_client.rb +62 -0
  97. data/lib/oci/email/models/change_sender_compartment_details.rb +157 -0
  98. data/lib/oci/key_management/key_management.rb +1 -0
  99. data/lib/oci/key_management/kms_crypto_client.rb +4 -4
  100. data/lib/oci/key_management/kms_management_client.rb +161 -10
  101. data/lib/oci/key_management/kms_management_client_composite_operations.rb +79 -0
  102. data/lib/oci/key_management/kms_vault_client.rb +16 -11
  103. data/lib/oci/key_management/models/key.rb +17 -1
  104. data/lib/oci/key_management/models/schedule_key_deletion_details.rb +156 -0
  105. data/lib/oci/load_balancer/load_balancer.rb +1 -0
  106. data/lib/oci/load_balancer/load_balancer_client.rb +64 -0
  107. data/lib/oci/load_balancer/load_balancer_client_composite_operations.rb +50 -0
  108. data/lib/oci/load_balancer/models/create_load_balancer_details.rb +16 -1
  109. data/lib/oci/load_balancer/models/load_balancer.rb +16 -1
  110. data/lib/oci/load_balancer/models/remove_http_request_header_rule.rb +1 -1
  111. data/lib/oci/load_balancer/models/remove_http_response_header_rule.rb +1 -1
  112. data/lib/oci/load_balancer/models/session_persistence_configuration_details.rb +9 -5
  113. data/lib/oci/load_balancer/models/update_backend_set_details.rb +2 -0
  114. data/lib/oci/load_balancer/models/update_network_security_groups_details.rb +154 -0
  115. data/lib/oci/monitoring/models/metric.rb +1 -0
  116. data/lib/oci/object_storage/models/work_request_error.rb +1 -0
  117. data/lib/oci/resource_manager/models/change_stack_compartment_details.rb +155 -0
  118. data/lib/oci/resource_manager/models/work_request.rb +293 -0
  119. data/lib/oci/resource_manager/models/work_request_error.rb +170 -0
  120. data/lib/oci/resource_manager/models/work_request_log_entry.rb +159 -0
  121. data/lib/oci/resource_manager/models/work_request_resource.rb +217 -0
  122. data/lib/oci/resource_manager/models/work_request_summary.rb +254 -0
  123. data/lib/oci/resource_manager/resource_manager.rb +6 -0
  124. data/lib/oci/resource_manager/resource_manager_client.rb +338 -0
  125. data/lib/oci/resource_manager/resource_manager_client_composite_operations.rb +50 -0
  126. data/lib/oci/streaming/stream_admin_client.rb +2 -2
  127. data/lib/oci/streaming/stream_client.rb +1 -1
  128. data/lib/oci/version.rb +1 -1
  129. metadata +58 -2
@@ -24,6 +24,45 @@ module OCI
24
24
  # rubocop:disable Layout/EmptyLines
25
25
 
26
26
 
27
+ # Calls {OCI::Database::DatabaseClient#create_autonomous_container_database} and then waits for the {OCI::Database::Models::AutonomousContainerDatabase} acted upon
28
+ # to enter the given state(s).
29
+ #
30
+ # @param [OCI::Database::Models::CreateAutonomousContainerDatabaseDetails] create_autonomous_container_database_details Request to create an Autonomous Container Database in a specified Autonomous Exadata Infrastructure.
31
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::AutonomousContainerDatabase#lifecycle_state}
32
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#create_autonomous_container_database}
33
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
34
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
35
+ # * max_wait_seconds The maximum time to wait, in seconds
36
+ #
37
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Database::Models::AutonomousContainerDatabase}
38
+ def create_autonomous_container_database_and_wait_for_state(create_autonomous_container_database_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
39
+ operation_result = @service_client.create_autonomous_container_database(create_autonomous_container_database_details, base_operation_opts)
40
+
41
+ return operation_result if wait_for_states.empty?
42
+
43
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
44
+ wait_for_resource_id = operation_result.data.id
45
+
46
+ begin
47
+ waiter_result = @service_client.get_autonomous_container_database(wait_for_resource_id).wait_until(
48
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
49
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
50
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
51
+ )
52
+ result_to_return = waiter_result
53
+
54
+ return result_to_return
55
+ rescue StandardError
56
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
57
+ end
58
+ end
59
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
60
+ # rubocop:enable Layout/EmptyLines
61
+
62
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
63
+ # rubocop:disable Layout/EmptyLines
64
+
65
+
27
66
  # Calls {OCI::Database::DatabaseClient#create_autonomous_data_warehouse} and then waits for the {OCI::Database::Models::AutonomousDataWarehouse} acted upon
28
67
  # to enter the given state(s).
29
68
  #
@@ -540,6 +579,45 @@ module OCI
540
579
  # rubocop:disable Layout/EmptyLines
541
580
 
542
581
 
582
+ # Calls {OCI::Database::DatabaseClient#launch_autonomous_exadata_infrastructure} and then waits for the {OCI::Database::Models::AutonomousExadataInfrastructure} acted upon
583
+ # to enter the given state(s).
584
+ #
585
+ # @param [OCI::Database::Models::LaunchAutonomousExadataInfrastructureDetails] launch_autonomous_exadata_infrastructure_details Request to launch a Autonomous Exadata Infrastructure.
586
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::AutonomousExadataInfrastructure#lifecycle_state}
587
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#launch_autonomous_exadata_infrastructure}
588
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
589
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
590
+ # * max_wait_seconds The maximum time to wait, in seconds
591
+ #
592
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Database::Models::AutonomousExadataInfrastructure}
593
+ def launch_autonomous_exadata_infrastructure_and_wait_for_state(launch_autonomous_exadata_infrastructure_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
594
+ operation_result = @service_client.launch_autonomous_exadata_infrastructure(launch_autonomous_exadata_infrastructure_details, base_operation_opts)
595
+
596
+ return operation_result if wait_for_states.empty?
597
+
598
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
599
+ wait_for_resource_id = operation_result.data.id
600
+
601
+ begin
602
+ waiter_result = @service_client.get_autonomous_exadata_infrastructure(wait_for_resource_id).wait_until(
603
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
604
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
605
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
606
+ )
607
+ result_to_return = waiter_result
608
+
609
+ return result_to_return
610
+ rescue StandardError
611
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
612
+ end
613
+ end
614
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
615
+ # rubocop:enable Layout/EmptyLines
616
+
617
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
618
+ # rubocop:disable Layout/EmptyLines
619
+
620
+
543
621
  # Calls {OCI::Database::DatabaseClient#launch_db_system} and then waits for the {OCI::Database::Models::DbSystem} acted upon
544
622
  # to enter the given state(s).
545
623
  #
@@ -620,6 +698,45 @@ module OCI
620
698
  # rubocop:disable Layout/EmptyLines
621
699
 
622
700
 
701
+ # Calls {OCI::Database::DatabaseClient#restart_autonomous_container_database} and then waits for the {OCI::Database::Models::AutonomousContainerDatabase} acted upon
702
+ # to enter the given state(s).
703
+ #
704
+ # @param [String] autonomous_container_database_id The Autonomous Container Database [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
705
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::AutonomousContainerDatabase#lifecycle_state}
706
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#restart_autonomous_container_database}
707
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
708
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
709
+ # * max_wait_seconds The maximum time to wait, in seconds
710
+ #
711
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Database::Models::AutonomousContainerDatabase}
712
+ def restart_autonomous_container_database_and_wait_for_state(autonomous_container_database_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
713
+ operation_result = @service_client.restart_autonomous_container_database(autonomous_container_database_id, base_operation_opts)
714
+
715
+ return operation_result if wait_for_states.empty?
716
+
717
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
718
+ wait_for_resource_id = operation_result.data.id
719
+
720
+ begin
721
+ waiter_result = @service_client.get_autonomous_container_database(wait_for_resource_id).wait_until(
722
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
723
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
724
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
725
+ )
726
+ result_to_return = waiter_result
727
+
728
+ return result_to_return
729
+ rescue StandardError
730
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
731
+ end
732
+ end
733
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
734
+ # rubocop:enable Layout/EmptyLines
735
+
736
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
737
+ # rubocop:disable Layout/EmptyLines
738
+
739
+
623
740
  # Calls {OCI::Database::DatabaseClient#restore_autonomous_data_warehouse} and then waits for the {OCI::Database::Models::AutonomousDataWarehouse} acted upon
624
741
  # to enter the given state(s).
625
742
  #
@@ -937,6 +1054,86 @@ module OCI
937
1054
  # rubocop:disable Layout/EmptyLines
938
1055
 
939
1056
 
1057
+ # Calls {OCI::Database::DatabaseClient#terminate_autonomous_container_database} and then waits for the {OCI::Database::Models::AutonomousContainerDatabase} acted upon
1058
+ # to enter the given state(s).
1059
+ #
1060
+ # @param [String] autonomous_container_database_id The Autonomous Container Database [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
1061
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::AutonomousContainerDatabase#lifecycle_state}
1062
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#terminate_autonomous_container_database}
1063
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
1064
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
1065
+ # * max_wait_seconds The maximum time to wait, in seconds
1066
+ #
1067
+ # @return [OCI::Response] A {OCI::Response} object with data of type nil
1068
+ def terminate_autonomous_container_database_and_wait_for_state(autonomous_container_database_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
1069
+ initial_get_result = @service_client.get_autonomous_container_database(autonomous_container_database_id)
1070
+ operation_result = @service_client.terminate_autonomous_container_database(autonomous_container_database_id, base_operation_opts)
1071
+
1072
+ return operation_result if wait_for_states.empty?
1073
+
1074
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
1075
+
1076
+ begin
1077
+ waiter_result = initial_get_result.wait_until(
1078
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
1079
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
1080
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200,
1081
+ succeed_on_not_found: true
1082
+ )
1083
+ result_to_return = waiter_result
1084
+
1085
+ return result_to_return
1086
+ rescue StandardError
1087
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
1088
+ end
1089
+ end
1090
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1091
+ # rubocop:enable Layout/EmptyLines
1092
+
1093
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1094
+ # rubocop:disable Layout/EmptyLines
1095
+
1096
+
1097
+ # Calls {OCI::Database::DatabaseClient#terminate_autonomous_exadata_infrastructure} and then waits for the {OCI::Database::Models::AutonomousExadataInfrastructure} acted upon
1098
+ # to enter the given state(s).
1099
+ #
1100
+ # @param [String] autonomous_exadata_infrastructure_id The Autonomous Exadata Infrastructure [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
1101
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::AutonomousExadataInfrastructure#lifecycle_state}
1102
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#terminate_autonomous_exadata_infrastructure}
1103
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
1104
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
1105
+ # * max_wait_seconds The maximum time to wait, in seconds
1106
+ #
1107
+ # @return [OCI::Response] A {OCI::Response} object with data of type nil
1108
+ def terminate_autonomous_exadata_infrastructure_and_wait_for_state(autonomous_exadata_infrastructure_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
1109
+ initial_get_result = @service_client.get_autonomous_exadata_infrastructure(autonomous_exadata_infrastructure_id)
1110
+ operation_result = @service_client.terminate_autonomous_exadata_infrastructure(autonomous_exadata_infrastructure_id, base_operation_opts)
1111
+
1112
+ return operation_result if wait_for_states.empty?
1113
+
1114
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
1115
+
1116
+ begin
1117
+ waiter_result = initial_get_result.wait_until(
1118
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
1119
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
1120
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200,
1121
+ succeed_on_not_found: true
1122
+ )
1123
+ result_to_return = waiter_result
1124
+
1125
+ return result_to_return
1126
+ rescue StandardError
1127
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
1128
+ end
1129
+ end
1130
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1131
+ # rubocop:enable Layout/EmptyLines
1132
+
1133
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1134
+ # rubocop:disable Layout/EmptyLines
1135
+
1136
+
940
1137
  # Calls {OCI::Database::DatabaseClient#terminate_db_system} and then waits for the {OCI::Database::Models::DbSystem} acted upon
941
1138
  # to enter the given state(s).
942
1139
  #
@@ -977,6 +1174,46 @@ module OCI
977
1174
  # rubocop:disable Layout/EmptyLines
978
1175
 
979
1176
 
1177
+ # Calls {OCI::Database::DatabaseClient#update_autonomous_container_database} and then waits for the {OCI::Database::Models::AutonomousContainerDatabase} acted upon
1178
+ # to enter the given state(s).
1179
+ #
1180
+ # @param [String] autonomous_container_database_id The Autonomous Container Database [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
1181
+ # @param [OCI::Database::Models::UpdateAutonomousContainerDatabaseDetails] update_autonomous_container_database_details Request to update the properties of an Autonomous Container Database.
1182
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::AutonomousContainerDatabase#lifecycle_state}
1183
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#update_autonomous_container_database}
1184
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
1185
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
1186
+ # * max_wait_seconds The maximum time to wait, in seconds
1187
+ #
1188
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Database::Models::AutonomousContainerDatabase}
1189
+ def update_autonomous_container_database_and_wait_for_state(autonomous_container_database_id, update_autonomous_container_database_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
1190
+ operation_result = @service_client.update_autonomous_container_database(autonomous_container_database_id, update_autonomous_container_database_details, base_operation_opts)
1191
+
1192
+ return operation_result if wait_for_states.empty?
1193
+
1194
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
1195
+ wait_for_resource_id = operation_result.data.id
1196
+
1197
+ begin
1198
+ waiter_result = @service_client.get_autonomous_container_database(wait_for_resource_id).wait_until(
1199
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
1200
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
1201
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
1202
+ )
1203
+ result_to_return = waiter_result
1204
+
1205
+ return result_to_return
1206
+ rescue StandardError
1207
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
1208
+ end
1209
+ end
1210
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1211
+ # rubocop:enable Layout/EmptyLines
1212
+
1213
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1214
+ # rubocop:disable Layout/EmptyLines
1215
+
1216
+
980
1217
  # Calls {OCI::Database::DatabaseClient#update_autonomous_data_warehouse} and then waits for the {OCI::Database::Models::AutonomousDataWarehouse} acted upon
981
1218
  # to enter the given state(s).
982
1219
  #
@@ -1057,6 +1294,46 @@ module OCI
1057
1294
  # rubocop:disable Layout/EmptyLines
1058
1295
 
1059
1296
 
1297
+ # Calls {OCI::Database::DatabaseClient#update_autonomous_exadata_infrastructure} and then waits for the {OCI::Database::Models::AutonomousExadataInfrastructure} acted upon
1298
+ # to enter the given state(s).
1299
+ #
1300
+ # @param [String] autonomous_exadata_infrastructure_id The Autonomous Exadata Infrastructure [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
1301
+ # @param [OCI::Database::Models::UpdateAutonomousExadataInfrastructureDetails] update_autonomous_exadata_infrastructures_details Request to update the properties of a Autonomous Exadata Infrastructure.
1302
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::AutonomousExadataInfrastructure#lifecycle_state}
1303
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#update_autonomous_exadata_infrastructure}
1304
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
1305
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
1306
+ # * max_wait_seconds The maximum time to wait, in seconds
1307
+ #
1308
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Database::Models::AutonomousExadataInfrastructure}
1309
+ def update_autonomous_exadata_infrastructure_and_wait_for_state(autonomous_exadata_infrastructure_id, update_autonomous_exadata_infrastructures_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
1310
+ operation_result = @service_client.update_autonomous_exadata_infrastructure(autonomous_exadata_infrastructure_id, update_autonomous_exadata_infrastructures_details, base_operation_opts)
1311
+
1312
+ return operation_result if wait_for_states.empty?
1313
+
1314
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
1315
+ wait_for_resource_id = operation_result.data.id
1316
+
1317
+ begin
1318
+ waiter_result = @service_client.get_autonomous_exadata_infrastructure(wait_for_resource_id).wait_until(
1319
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
1320
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
1321
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
1322
+ )
1323
+ result_to_return = waiter_result
1324
+
1325
+ return result_to_return
1326
+ rescue StandardError
1327
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
1328
+ end
1329
+ end
1330
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1331
+ # rubocop:enable Layout/EmptyLines
1332
+
1333
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1334
+ # rubocop:disable Layout/EmptyLines
1335
+
1336
+
1060
1337
  # Calls {OCI::Database::DatabaseClient#update_database} and then waits for the {OCI::Database::Models::Database} acted upon
1061
1338
  # to enter the given state(s).
1062
1339
  #
@@ -1212,6 +1489,46 @@ module OCI
1212
1489
  end
1213
1490
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1214
1491
  # rubocop:enable Layout/EmptyLines
1492
+
1493
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1494
+ # rubocop:disable Layout/EmptyLines
1495
+
1496
+
1497
+ # Calls {OCI::Database::DatabaseClient#update_maintenance_run} and then waits for the {OCI::Database::Models::MaintenanceRun} acted upon
1498
+ # to enter the given state(s).
1499
+ #
1500
+ # @param [String] maintenance_run_id The Maintenance Run OCID.
1501
+ # @param [OCI::Database::Models::UpdateMaintenanceRunDetails] update_maintenance_run_details Request to update the properties of a Maintenance Run.
1502
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::MaintenanceRun#lifecycle_state}
1503
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#update_maintenance_run}
1504
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
1505
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
1506
+ # * max_wait_seconds The maximum time to wait, in seconds
1507
+ #
1508
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Database::Models::MaintenanceRun}
1509
+ def update_maintenance_run_and_wait_for_state(maintenance_run_id, update_maintenance_run_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
1510
+ operation_result = @service_client.update_maintenance_run(maintenance_run_id, update_maintenance_run_details, base_operation_opts)
1511
+
1512
+ return operation_result if wait_for_states.empty?
1513
+
1514
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
1515
+ wait_for_resource_id = operation_result.data.id
1516
+
1517
+ begin
1518
+ waiter_result = @service_client.get_maintenance_run(wait_for_resource_id).wait_until(
1519
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
1520
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
1521
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
1522
+ )
1523
+ result_to_return = waiter_result
1524
+
1525
+ return result_to_return
1526
+ rescue StandardError
1527
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
1528
+ end
1529
+ end
1530
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
1531
+ # rubocop:enable Layout/EmptyLines
1215
1532
  end
1216
1533
  end
1217
1534
  # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,416 @@
1
+ # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+ require 'logger'
5
+
6
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
7
+ module OCI
8
+ # AutonomousContainerDatabase model.
9
+ class Database::Models::AutonomousContainerDatabase
10
+ SERVICE_LEVEL_AGREEMENT_TYPE_ENUM = [
11
+ SERVICE_LEVEL_AGREEMENT_TYPE_STANDARD = 'STANDARD'.freeze,
12
+ SERVICE_LEVEL_AGREEMENT_TYPE_MISSION_CRITICAL = 'MISSION_CRITICAL'.freeze,
13
+ SERVICE_LEVEL_AGREEMENT_TYPE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
14
+ ].freeze
15
+
16
+ LIFECYCLE_STATE_ENUM = [
17
+ LIFECYCLE_STATE_PROVISIONING = 'PROVISIONING'.freeze,
18
+ LIFECYCLE_STATE_AVAILABLE = 'AVAILABLE'.freeze,
19
+ LIFECYCLE_STATE_UPDATING = 'UPDATING'.freeze,
20
+ LIFECYCLE_STATE_TERMINATING = 'TERMINATING'.freeze,
21
+ LIFECYCLE_STATE_TERMINATED = 'TERMINATED'.freeze,
22
+ LIFECYCLE_STATE_FAILED = 'FAILED'.freeze,
23
+ LIFECYCLE_STATE_BACKUP_IN_PROGRESS = 'BACKUP_IN_PROGRESS'.freeze,
24
+ LIFECYCLE_STATE_RESTORING = 'RESTORING'.freeze,
25
+ LIFECYCLE_STATE_RESTORE_FAILED = 'RESTORE_FAILED'.freeze,
26
+ LIFECYCLE_STATE_RESTARTING = 'RESTARTING'.freeze,
27
+ LIFECYCLE_STATE_MAINTENANCE_IN_PROGRESS = 'MAINTENANCE_IN_PROGRESS'.freeze,
28
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
29
+ ].freeze
30
+
31
+ PATCH_MODEL_ENUM = [
32
+ PATCH_MODEL_RELEASE_UPDATES = 'RELEASE_UPDATES'.freeze,
33
+ PATCH_MODEL_RELEASE_UPDATE_REVISIONS = 'RELEASE_UPDATE_REVISIONS'.freeze,
34
+ PATCH_MODEL_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
35
+ ].freeze
36
+
37
+ # **[Required]** The OCID of the Autonomous Container Database.
38
+ # @return [String]
39
+ attr_accessor :id
40
+
41
+ # **[Required]** The OCID of the compartment.
42
+ # @return [String]
43
+ attr_accessor :compartment_id
44
+
45
+ # **[Required]** The user-provided name for the Autonomous Container Database.
46
+ # @return [String]
47
+ attr_accessor :display_name
48
+
49
+ # **[Required]** The service level agreement type of the container database. The default is STANDARD.
50
+ # @return [String]
51
+ attr_reader :service_level_agreement_type
52
+
53
+ # **[Required]** The OCID of the Autonomous Exadata Infrastructure.
54
+ # @return [String]
55
+ attr_accessor :autonomous_exadata_infrastructure_id
56
+
57
+ # **[Required]** The current state of the Autonomous Container Database.
58
+ # @return [String]
59
+ attr_reader :lifecycle_state
60
+
61
+ # Additional information about the current lifecycleState.
62
+ # @return [String]
63
+ attr_accessor :lifecycle_details
64
+
65
+ # The date and time the Autonomous was created.
66
+ # @return [DateTime]
67
+ attr_accessor :time_created
68
+
69
+ # **[Required]** Database Patch model preference.
70
+ # @return [String]
71
+ attr_reader :patch_model
72
+
73
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the last maintenance run.
74
+ # @return [String]
75
+ attr_accessor :last_maintenance_run_id
76
+
77
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the next maintenance run.
78
+ # @return [String]
79
+ attr_accessor :next_maintenance_run_id
80
+
81
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
82
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
83
+ #
84
+ # Example: `{\"Department\": \"Finance\"}`
85
+ #
86
+ # @return [Hash<String, String>]
87
+ attr_accessor :freeform_tags
88
+
89
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
90
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
91
+ #
92
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
93
+ #
94
+ # @return [Hash<String, Hash<String, Object>>]
95
+ attr_accessor :defined_tags
96
+
97
+ # The availability domain of the Autonomous Container Database.
98
+ # @return [String]
99
+ attr_accessor :availability_domain
100
+
101
+ # @return [OCI::Database::Models::AutonomousContainerDatabaseBackupConfig]
102
+ attr_accessor :backup_config
103
+
104
+ # Attribute mapping from ruby-style variable name to JSON key.
105
+ def self.attribute_map
106
+ {
107
+ # rubocop:disable Style/SymbolLiteral
108
+ 'id': :'id',
109
+ 'compartment_id': :'compartmentId',
110
+ 'display_name': :'displayName',
111
+ 'service_level_agreement_type': :'serviceLevelAgreementType',
112
+ 'autonomous_exadata_infrastructure_id': :'autonomousExadataInfrastructureId',
113
+ 'lifecycle_state': :'lifecycleState',
114
+ 'lifecycle_details': :'lifecycleDetails',
115
+ 'time_created': :'timeCreated',
116
+ 'patch_model': :'patchModel',
117
+ 'last_maintenance_run_id': :'lastMaintenanceRunId',
118
+ 'next_maintenance_run_id': :'nextMaintenanceRunId',
119
+ 'freeform_tags': :'freeformTags',
120
+ 'defined_tags': :'definedTags',
121
+ 'availability_domain': :'availabilityDomain',
122
+ 'backup_config': :'backupConfig'
123
+ # rubocop:enable Style/SymbolLiteral
124
+ }
125
+ end
126
+
127
+ # Attribute type mapping.
128
+ def self.swagger_types
129
+ {
130
+ # rubocop:disable Style/SymbolLiteral
131
+ 'id': :'String',
132
+ 'compartment_id': :'String',
133
+ 'display_name': :'String',
134
+ 'service_level_agreement_type': :'String',
135
+ 'autonomous_exadata_infrastructure_id': :'String',
136
+ 'lifecycle_state': :'String',
137
+ 'lifecycle_details': :'String',
138
+ 'time_created': :'DateTime',
139
+ 'patch_model': :'String',
140
+ 'last_maintenance_run_id': :'String',
141
+ 'next_maintenance_run_id': :'String',
142
+ 'freeform_tags': :'Hash<String, String>',
143
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
144
+ 'availability_domain': :'String',
145
+ 'backup_config': :'OCI::Database::Models::AutonomousContainerDatabaseBackupConfig'
146
+ # rubocop:enable Style/SymbolLiteral
147
+ }
148
+ end
149
+
150
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
151
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
152
+
153
+
154
+ # Initializes the object
155
+ # @param [Hash] attributes Model attributes in the form of hash
156
+ # @option attributes [String] :id The value to assign to the {#id} property
157
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
158
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
159
+ # @option attributes [String] :service_level_agreement_type The value to assign to the {#service_level_agreement_type} property
160
+ # @option attributes [String] :autonomous_exadata_infrastructure_id The value to assign to the {#autonomous_exadata_infrastructure_id} property
161
+ # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
162
+ # @option attributes [String] :lifecycle_details The value to assign to the {#lifecycle_details} property
163
+ # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
164
+ # @option attributes [String] :patch_model The value to assign to the {#patch_model} property
165
+ # @option attributes [String] :last_maintenance_run_id The value to assign to the {#last_maintenance_run_id} property
166
+ # @option attributes [String] :next_maintenance_run_id The value to assign to the {#next_maintenance_run_id} property
167
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
168
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
169
+ # @option attributes [String] :availability_domain The value to assign to the {#availability_domain} property
170
+ # @option attributes [OCI::Database::Models::AutonomousContainerDatabaseBackupConfig] :backup_config The value to assign to the {#backup_config} property
171
+ def initialize(attributes = {})
172
+ return unless attributes.is_a?(Hash)
173
+
174
+ self.id = attributes[:'id'] if attributes[:'id']
175
+
176
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
177
+
178
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
179
+
180
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
181
+
182
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
183
+
184
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
185
+
186
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
187
+
188
+ self.service_level_agreement_type = attributes[:'serviceLevelAgreementType'] if attributes[:'serviceLevelAgreementType']
189
+
190
+ raise 'You cannot provide both :serviceLevelAgreementType and :service_level_agreement_type' if attributes.key?(:'serviceLevelAgreementType') && attributes.key?(:'service_level_agreement_type')
191
+
192
+ self.service_level_agreement_type = attributes[:'service_level_agreement_type'] if attributes[:'service_level_agreement_type']
193
+
194
+ self.autonomous_exadata_infrastructure_id = attributes[:'autonomousExadataInfrastructureId'] if attributes[:'autonomousExadataInfrastructureId']
195
+
196
+ raise 'You cannot provide both :autonomousExadataInfrastructureId and :autonomous_exadata_infrastructure_id' if attributes.key?(:'autonomousExadataInfrastructureId') && attributes.key?(:'autonomous_exadata_infrastructure_id')
197
+
198
+ self.autonomous_exadata_infrastructure_id = attributes[:'autonomous_exadata_infrastructure_id'] if attributes[:'autonomous_exadata_infrastructure_id']
199
+
200
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
201
+
202
+ raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
203
+
204
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
205
+
206
+ self.lifecycle_details = attributes[:'lifecycleDetails'] if attributes[:'lifecycleDetails']
207
+
208
+ raise 'You cannot provide both :lifecycleDetails and :lifecycle_details' if attributes.key?(:'lifecycleDetails') && attributes.key?(:'lifecycle_details')
209
+
210
+ self.lifecycle_details = attributes[:'lifecycle_details'] if attributes[:'lifecycle_details']
211
+
212
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
213
+
214
+ raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
215
+
216
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
217
+
218
+ self.patch_model = attributes[:'patchModel'] if attributes[:'patchModel']
219
+
220
+ raise 'You cannot provide both :patchModel and :patch_model' if attributes.key?(:'patchModel') && attributes.key?(:'patch_model')
221
+
222
+ self.patch_model = attributes[:'patch_model'] if attributes[:'patch_model']
223
+
224
+ self.last_maintenance_run_id = attributes[:'lastMaintenanceRunId'] if attributes[:'lastMaintenanceRunId']
225
+
226
+ raise 'You cannot provide both :lastMaintenanceRunId and :last_maintenance_run_id' if attributes.key?(:'lastMaintenanceRunId') && attributes.key?(:'last_maintenance_run_id')
227
+
228
+ self.last_maintenance_run_id = attributes[:'last_maintenance_run_id'] if attributes[:'last_maintenance_run_id']
229
+
230
+ self.next_maintenance_run_id = attributes[:'nextMaintenanceRunId'] if attributes[:'nextMaintenanceRunId']
231
+
232
+ raise 'You cannot provide both :nextMaintenanceRunId and :next_maintenance_run_id' if attributes.key?(:'nextMaintenanceRunId') && attributes.key?(:'next_maintenance_run_id')
233
+
234
+ self.next_maintenance_run_id = attributes[:'next_maintenance_run_id'] if attributes[:'next_maintenance_run_id']
235
+
236
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
237
+
238
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
239
+
240
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
241
+
242
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
243
+
244
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
245
+
246
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
247
+
248
+ self.availability_domain = attributes[:'availabilityDomain'] if attributes[:'availabilityDomain']
249
+
250
+ raise 'You cannot provide both :availabilityDomain and :availability_domain' if attributes.key?(:'availabilityDomain') && attributes.key?(:'availability_domain')
251
+
252
+ self.availability_domain = attributes[:'availability_domain'] if attributes[:'availability_domain']
253
+
254
+ self.backup_config = attributes[:'backupConfig'] if attributes[:'backupConfig']
255
+
256
+ raise 'You cannot provide both :backupConfig and :backup_config' if attributes.key?(:'backupConfig') && attributes.key?(:'backup_config')
257
+
258
+ self.backup_config = attributes[:'backup_config'] if attributes[:'backup_config']
259
+ end
260
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
261
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
262
+
263
+ # Custom attribute writer method checking allowed values (enum).
264
+ # @param [Object] service_level_agreement_type Object to be assigned
265
+ def service_level_agreement_type=(service_level_agreement_type)
266
+ # rubocop:disable Style/ConditionalAssignment
267
+ if service_level_agreement_type && !SERVICE_LEVEL_AGREEMENT_TYPE_ENUM.include?(service_level_agreement_type)
268
+ OCI.logger.debug("Unknown value for 'service_level_agreement_type' [" + service_level_agreement_type + "]. Mapping to 'SERVICE_LEVEL_AGREEMENT_TYPE_UNKNOWN_ENUM_VALUE'") if OCI.logger
269
+ @service_level_agreement_type = SERVICE_LEVEL_AGREEMENT_TYPE_UNKNOWN_ENUM_VALUE
270
+ else
271
+ @service_level_agreement_type = service_level_agreement_type
272
+ end
273
+ # rubocop:enable Style/ConditionalAssignment
274
+ end
275
+
276
+ # Custom attribute writer method checking allowed values (enum).
277
+ # @param [Object] lifecycle_state Object to be assigned
278
+ def lifecycle_state=(lifecycle_state)
279
+ # rubocop:disable Style/ConditionalAssignment
280
+ if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
281
+ OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger
282
+ @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
283
+ else
284
+ @lifecycle_state = lifecycle_state
285
+ end
286
+ # rubocop:enable Style/ConditionalAssignment
287
+ end
288
+
289
+ # Custom attribute writer method checking allowed values (enum).
290
+ # @param [Object] patch_model Object to be assigned
291
+ def patch_model=(patch_model)
292
+ # rubocop:disable Style/ConditionalAssignment
293
+ if patch_model && !PATCH_MODEL_ENUM.include?(patch_model)
294
+ OCI.logger.debug("Unknown value for 'patch_model' [" + patch_model + "]. Mapping to 'PATCH_MODEL_UNKNOWN_ENUM_VALUE'") if OCI.logger
295
+ @patch_model = PATCH_MODEL_UNKNOWN_ENUM_VALUE
296
+ else
297
+ @patch_model = patch_model
298
+ end
299
+ # rubocop:enable Style/ConditionalAssignment
300
+ end
301
+
302
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
303
+
304
+
305
+ # Checks equality by comparing each attribute.
306
+ # @param [Object] other the other object to be compared
307
+ def ==(other)
308
+ return true if equal?(other)
309
+
310
+ self.class == other.class &&
311
+ id == other.id &&
312
+ compartment_id == other.compartment_id &&
313
+ display_name == other.display_name &&
314
+ service_level_agreement_type == other.service_level_agreement_type &&
315
+ autonomous_exadata_infrastructure_id == other.autonomous_exadata_infrastructure_id &&
316
+ lifecycle_state == other.lifecycle_state &&
317
+ lifecycle_details == other.lifecycle_details &&
318
+ time_created == other.time_created &&
319
+ patch_model == other.patch_model &&
320
+ last_maintenance_run_id == other.last_maintenance_run_id &&
321
+ next_maintenance_run_id == other.next_maintenance_run_id &&
322
+ freeform_tags == other.freeform_tags &&
323
+ defined_tags == other.defined_tags &&
324
+ availability_domain == other.availability_domain &&
325
+ backup_config == other.backup_config
326
+ end
327
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
328
+
329
+ # @see the `==` method
330
+ # @param [Object] other the other object to be compared
331
+ def eql?(other)
332
+ self == other
333
+ end
334
+
335
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
336
+
337
+
338
+ # Calculates hash code according to all attributes.
339
+ # @return [Fixnum] Hash code
340
+ def hash
341
+ [id, compartment_id, display_name, service_level_agreement_type, autonomous_exadata_infrastructure_id, lifecycle_state, lifecycle_details, time_created, patch_model, last_maintenance_run_id, next_maintenance_run_id, freeform_tags, defined_tags, availability_domain, backup_config].hash
342
+ end
343
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
344
+
345
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
346
+
347
+
348
+ # Builds the object from hash
349
+ # @param [Hash] attributes Model attributes in the form of hash
350
+ # @return [Object] Returns the model itself
351
+ def build_from_hash(attributes)
352
+ return nil unless attributes.is_a?(Hash)
353
+
354
+ self.class.swagger_types.each_pair do |key, type|
355
+ if type =~ /^Array<(.*)>/i
356
+ # check to ensure the input is an array given that the the attribute
357
+ # is documented as an array but the input is not
358
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
359
+ public_method("#{key}=").call(
360
+ attributes[self.class.attribute_map[key]]
361
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
362
+ )
363
+ end
364
+ elsif !attributes[self.class.attribute_map[key]].nil?
365
+ public_method("#{key}=").call(
366
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
367
+ )
368
+ end
369
+ # or else data not found in attributes(hash), not an issue as the data can be optional
370
+ end
371
+
372
+ self
373
+ end
374
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
375
+
376
+ # Returns the string representation of the object
377
+ # @return [String] String presentation of the object
378
+ def to_s
379
+ to_hash.to_s
380
+ end
381
+
382
+ # Returns the object in the form of hash
383
+ # @return [Hash] Returns the object in the form of hash
384
+ def to_hash
385
+ hash = {}
386
+ self.class.attribute_map.each_pair do |attr, param|
387
+ value = public_method(attr).call
388
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
389
+
390
+ hash[param] = _to_hash(value)
391
+ end
392
+ hash
393
+ end
394
+
395
+ private
396
+
397
+ # Outputs non-array value in the form of hash
398
+ # For object, use to_hash. Otherwise, just return the value
399
+ # @param [Object] value Any valid value
400
+ # @return [Hash] Returns the value in the form of hash
401
+ def _to_hash(value)
402
+ if value.is_a?(Array)
403
+ value.compact.map { |v| _to_hash(v) }
404
+ elsif value.is_a?(Hash)
405
+ {}.tap do |hash|
406
+ value.each { |k, v| hash[k] = _to_hash(v) }
407
+ end
408
+ elsif value.respond_to? :to_hash
409
+ value.to_hash
410
+ else
411
+ value
412
+ end
413
+ end
414
+ end
415
+ end
416
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength