oci 2.5.9 → 2.5.10

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 (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
@@ -0,0 +1,157 @@
1
+ # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
6
+ module OCI
7
+ # Backup options for the Autonomous Container Database.
8
+ #
9
+ class Database::Models::AutonomousContainerDatabaseBackupConfig
10
+ # Number of days between the current and the earliest point of recoverability covered by automatic backups.
11
+ # This value applies to automatic backups. After a new automatic backup has been created, Oracle removes old automatic backups that are created before the window.
12
+ # When the value is updated, it is applied to all existing automatic backups.
13
+ #
14
+ # @return [Integer]
15
+ attr_accessor :recovery_window_in_days
16
+
17
+ # Attribute mapping from ruby-style variable name to JSON key.
18
+ def self.attribute_map
19
+ {
20
+ # rubocop:disable Style/SymbolLiteral
21
+ 'recovery_window_in_days': :'recoveryWindowInDays'
22
+ # rubocop:enable Style/SymbolLiteral
23
+ }
24
+ end
25
+
26
+ # Attribute type mapping.
27
+ def self.swagger_types
28
+ {
29
+ # rubocop:disable Style/SymbolLiteral
30
+ 'recovery_window_in_days': :'Integer'
31
+ # rubocop:enable Style/SymbolLiteral
32
+ }
33
+ end
34
+
35
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
36
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
37
+
38
+
39
+ # Initializes the object
40
+ # @param [Hash] attributes Model attributes in the form of hash
41
+ # @option attributes [Integer] :recovery_window_in_days The value to assign to the {#recovery_window_in_days} property
42
+ def initialize(attributes = {})
43
+ return unless attributes.is_a?(Hash)
44
+
45
+ # convert string to symbol for hash key
46
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
47
+
48
+ self.recovery_window_in_days = attributes[:'recoveryWindowInDays'] if attributes[:'recoveryWindowInDays']
49
+
50
+ raise 'You cannot provide both :recoveryWindowInDays and :recovery_window_in_days' if attributes.key?(:'recoveryWindowInDays') && attributes.key?(:'recovery_window_in_days')
51
+
52
+ self.recovery_window_in_days = attributes[:'recovery_window_in_days'] if attributes[:'recovery_window_in_days']
53
+ end
54
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
55
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
56
+
57
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
58
+
59
+
60
+ # Checks equality by comparing each attribute.
61
+ # @param [Object] other the other object to be compared
62
+ def ==(other)
63
+ return true if equal?(other)
64
+
65
+ self.class == other.class &&
66
+ recovery_window_in_days == other.recovery_window_in_days
67
+ end
68
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
69
+
70
+ # @see the `==` method
71
+ # @param [Object] other the other object to be compared
72
+ def eql?(other)
73
+ self == other
74
+ end
75
+
76
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
77
+
78
+
79
+ # Calculates hash code according to all attributes.
80
+ # @return [Fixnum] Hash code
81
+ def hash
82
+ [recovery_window_in_days].hash
83
+ end
84
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
85
+
86
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
87
+
88
+
89
+ # Builds the object from hash
90
+ # @param [Hash] attributes Model attributes in the form of hash
91
+ # @return [Object] Returns the model itself
92
+ def build_from_hash(attributes)
93
+ return nil unless attributes.is_a?(Hash)
94
+
95
+ self.class.swagger_types.each_pair do |key, type|
96
+ if type =~ /^Array<(.*)>/i
97
+ # check to ensure the input is an array given that the the attribute
98
+ # is documented as an array but the input is not
99
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
100
+ public_method("#{key}=").call(
101
+ attributes[self.class.attribute_map[key]]
102
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
103
+ )
104
+ end
105
+ elsif !attributes[self.class.attribute_map[key]].nil?
106
+ public_method("#{key}=").call(
107
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
108
+ )
109
+ end
110
+ # or else data not found in attributes(hash), not an issue as the data can be optional
111
+ end
112
+
113
+ self
114
+ end
115
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
116
+
117
+ # Returns the string representation of the object
118
+ # @return [String] String presentation of the object
119
+ def to_s
120
+ to_hash.to_s
121
+ end
122
+
123
+ # Returns the object in the form of hash
124
+ # @return [Hash] Returns the object in the form of hash
125
+ def to_hash
126
+ hash = {}
127
+ self.class.attribute_map.each_pair do |attr, param|
128
+ value = public_method(attr).call
129
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
130
+
131
+ hash[param] = _to_hash(value)
132
+ end
133
+ hash
134
+ end
135
+
136
+ private
137
+
138
+ # Outputs non-array value in the form of hash
139
+ # For object, use to_hash. Otherwise, just return the value
140
+ # @param [Object] value Any valid value
141
+ # @return [Hash] Returns the value in the form of hash
142
+ def _to_hash(value)
143
+ if value.is_a?(Array)
144
+ value.compact.map { |v| _to_hash(v) }
145
+ elsif value.is_a?(Hash)
146
+ {}.tap do |hash|
147
+ value.each { |k, v| hash[k] = _to_hash(v) }
148
+ end
149
+ elsif value.respond_to? :to_hash
150
+ value.to_hash
151
+ else
152
+ value
153
+ end
154
+ end
155
+ end
156
+ end
157
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,420 @@
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
+ # An Autonomous Container Database is a container database service that enables the customer to host one or more databases within the container database. A basic container database runs on a single Autonomous Exadata Infrastructure from an availability domain without the Extreme Availability features enabled.
9
+ #
10
+ class Database::Models::AutonomousContainerDatabaseSummary
11
+ SERVICE_LEVEL_AGREEMENT_TYPE_ENUM = [
12
+ SERVICE_LEVEL_AGREEMENT_TYPE_STANDARD = 'STANDARD'.freeze,
13
+ SERVICE_LEVEL_AGREEMENT_TYPE_MISSION_CRITICAL = 'MISSION_CRITICAL'.freeze,
14
+ SERVICE_LEVEL_AGREEMENT_TYPE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
15
+ ].freeze
16
+
17
+ LIFECYCLE_STATE_ENUM = [
18
+ LIFECYCLE_STATE_PROVISIONING = 'PROVISIONING'.freeze,
19
+ LIFECYCLE_STATE_AVAILABLE = 'AVAILABLE'.freeze,
20
+ LIFECYCLE_STATE_UPDATING = 'UPDATING'.freeze,
21
+ LIFECYCLE_STATE_TERMINATING = 'TERMINATING'.freeze,
22
+ LIFECYCLE_STATE_TERMINATED = 'TERMINATED'.freeze,
23
+ LIFECYCLE_STATE_FAILED = 'FAILED'.freeze,
24
+ LIFECYCLE_STATE_BACKUP_IN_PROGRESS = 'BACKUP_IN_PROGRESS'.freeze,
25
+ LIFECYCLE_STATE_RESTORING = 'RESTORING'.freeze,
26
+ LIFECYCLE_STATE_RESTORE_FAILED = 'RESTORE_FAILED'.freeze,
27
+ LIFECYCLE_STATE_RESTARTING = 'RESTARTING'.freeze,
28
+ LIFECYCLE_STATE_MAINTENANCE_IN_PROGRESS = 'MAINTENANCE_IN_PROGRESS'.freeze,
29
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
30
+ ].freeze
31
+
32
+ PATCH_MODEL_ENUM = [
33
+ PATCH_MODEL_RELEASE_UPDATES = 'RELEASE_UPDATES'.freeze,
34
+ PATCH_MODEL_RELEASE_UPDATE_REVISIONS = 'RELEASE_UPDATE_REVISIONS'.freeze,
35
+ PATCH_MODEL_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
36
+ ].freeze
37
+
38
+ # **[Required]** The OCID of the Autonomous Container Database.
39
+ # @return [String]
40
+ attr_accessor :id
41
+
42
+ # **[Required]** The OCID of the compartment.
43
+ # @return [String]
44
+ attr_accessor :compartment_id
45
+
46
+ # **[Required]** The user-provided name for the Autonomous Container Database.
47
+ # @return [String]
48
+ attr_accessor :display_name
49
+
50
+ # **[Required]** The service level agreement type of the container database. The default is STANDARD.
51
+ # @return [String]
52
+ attr_reader :service_level_agreement_type
53
+
54
+ # **[Required]** The OCID of the Autonomous Exadata Infrastructure.
55
+ # @return [String]
56
+ attr_accessor :autonomous_exadata_infrastructure_id
57
+
58
+ # **[Required]** The current state of the Autonomous Container Database.
59
+ # @return [String]
60
+ attr_reader :lifecycle_state
61
+
62
+ # Additional information about the current lifecycleState.
63
+ # @return [String]
64
+ attr_accessor :lifecycle_details
65
+
66
+ # The date and time the Autonomous was created.
67
+ # @return [DateTime]
68
+ attr_accessor :time_created
69
+
70
+ # **[Required]** Database Patch model preference.
71
+ # @return [String]
72
+ attr_reader :patch_model
73
+
74
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the last maintenance run.
75
+ # @return [String]
76
+ attr_accessor :last_maintenance_run_id
77
+
78
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the next maintenance run.
79
+ # @return [String]
80
+ attr_accessor :next_maintenance_run_id
81
+
82
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
83
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
84
+ #
85
+ # Example: `{\"Department\": \"Finance\"}`
86
+ #
87
+ # @return [Hash<String, String>]
88
+ attr_accessor :freeform_tags
89
+
90
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
91
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
92
+ #
93
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
94
+ #
95
+ # @return [Hash<String, Hash<String, Object>>]
96
+ attr_accessor :defined_tags
97
+
98
+ # The availability domain of the Autonomous Container Database.
99
+ # @return [String]
100
+ attr_accessor :availability_domain
101
+
102
+ # @return [OCI::Database::Models::AutonomousContainerDatabaseBackupConfig]
103
+ attr_accessor :backup_config
104
+
105
+ # Attribute mapping from ruby-style variable name to JSON key.
106
+ def self.attribute_map
107
+ {
108
+ # rubocop:disable Style/SymbolLiteral
109
+ 'id': :'id',
110
+ 'compartment_id': :'compartmentId',
111
+ 'display_name': :'displayName',
112
+ 'service_level_agreement_type': :'serviceLevelAgreementType',
113
+ 'autonomous_exadata_infrastructure_id': :'autonomousExadataInfrastructureId',
114
+ 'lifecycle_state': :'lifecycleState',
115
+ 'lifecycle_details': :'lifecycleDetails',
116
+ 'time_created': :'timeCreated',
117
+ 'patch_model': :'patchModel',
118
+ 'last_maintenance_run_id': :'lastMaintenanceRunId',
119
+ 'next_maintenance_run_id': :'nextMaintenanceRunId',
120
+ 'freeform_tags': :'freeformTags',
121
+ 'defined_tags': :'definedTags',
122
+ 'availability_domain': :'availabilityDomain',
123
+ 'backup_config': :'backupConfig'
124
+ # rubocop:enable Style/SymbolLiteral
125
+ }
126
+ end
127
+
128
+ # Attribute type mapping.
129
+ def self.swagger_types
130
+ {
131
+ # rubocop:disable Style/SymbolLiteral
132
+ 'id': :'String',
133
+ 'compartment_id': :'String',
134
+ 'display_name': :'String',
135
+ 'service_level_agreement_type': :'String',
136
+ 'autonomous_exadata_infrastructure_id': :'String',
137
+ 'lifecycle_state': :'String',
138
+ 'lifecycle_details': :'String',
139
+ 'time_created': :'DateTime',
140
+ 'patch_model': :'String',
141
+ 'last_maintenance_run_id': :'String',
142
+ 'next_maintenance_run_id': :'String',
143
+ 'freeform_tags': :'Hash<String, String>',
144
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
145
+ 'availability_domain': :'String',
146
+ 'backup_config': :'OCI::Database::Models::AutonomousContainerDatabaseBackupConfig'
147
+ # rubocop:enable Style/SymbolLiteral
148
+ }
149
+ end
150
+
151
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
152
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
153
+
154
+
155
+ # Initializes the object
156
+ # @param [Hash] attributes Model attributes in the form of hash
157
+ # @option attributes [String] :id The value to assign to the {#id} property
158
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
159
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
160
+ # @option attributes [String] :service_level_agreement_type The value to assign to the {#service_level_agreement_type} property
161
+ # @option attributes [String] :autonomous_exadata_infrastructure_id The value to assign to the {#autonomous_exadata_infrastructure_id} property
162
+ # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
163
+ # @option attributes [String] :lifecycle_details The value to assign to the {#lifecycle_details} property
164
+ # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
165
+ # @option attributes [String] :patch_model The value to assign to the {#patch_model} property
166
+ # @option attributes [String] :last_maintenance_run_id The value to assign to the {#last_maintenance_run_id} property
167
+ # @option attributes [String] :next_maintenance_run_id The value to assign to the {#next_maintenance_run_id} property
168
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
169
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
170
+ # @option attributes [String] :availability_domain The value to assign to the {#availability_domain} property
171
+ # @option attributes [OCI::Database::Models::AutonomousContainerDatabaseBackupConfig] :backup_config The value to assign to the {#backup_config} property
172
+ def initialize(attributes = {})
173
+ return unless attributes.is_a?(Hash)
174
+
175
+ # convert string to symbol for hash key
176
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
177
+
178
+ self.id = attributes[:'id'] if attributes[:'id']
179
+
180
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
181
+
182
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
183
+
184
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
185
+
186
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
187
+
188
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
189
+
190
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
191
+
192
+ self.service_level_agreement_type = attributes[:'serviceLevelAgreementType'] if attributes[:'serviceLevelAgreementType']
193
+
194
+ raise 'You cannot provide both :serviceLevelAgreementType and :service_level_agreement_type' if attributes.key?(:'serviceLevelAgreementType') && attributes.key?(:'service_level_agreement_type')
195
+
196
+ self.service_level_agreement_type = attributes[:'service_level_agreement_type'] if attributes[:'service_level_agreement_type']
197
+
198
+ self.autonomous_exadata_infrastructure_id = attributes[:'autonomousExadataInfrastructureId'] if attributes[:'autonomousExadataInfrastructureId']
199
+
200
+ raise 'You cannot provide both :autonomousExadataInfrastructureId and :autonomous_exadata_infrastructure_id' if attributes.key?(:'autonomousExadataInfrastructureId') && attributes.key?(:'autonomous_exadata_infrastructure_id')
201
+
202
+ self.autonomous_exadata_infrastructure_id = attributes[:'autonomous_exadata_infrastructure_id'] if attributes[:'autonomous_exadata_infrastructure_id']
203
+
204
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
205
+
206
+ raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
207
+
208
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
209
+
210
+ self.lifecycle_details = attributes[:'lifecycleDetails'] if attributes[:'lifecycleDetails']
211
+
212
+ raise 'You cannot provide both :lifecycleDetails and :lifecycle_details' if attributes.key?(:'lifecycleDetails') && attributes.key?(:'lifecycle_details')
213
+
214
+ self.lifecycle_details = attributes[:'lifecycle_details'] if attributes[:'lifecycle_details']
215
+
216
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
217
+
218
+ raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
219
+
220
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
221
+
222
+ self.patch_model = attributes[:'patchModel'] if attributes[:'patchModel']
223
+
224
+ raise 'You cannot provide both :patchModel and :patch_model' if attributes.key?(:'patchModel') && attributes.key?(:'patch_model')
225
+
226
+ self.patch_model = attributes[:'patch_model'] if attributes[:'patch_model']
227
+
228
+ self.last_maintenance_run_id = attributes[:'lastMaintenanceRunId'] if attributes[:'lastMaintenanceRunId']
229
+
230
+ raise 'You cannot provide both :lastMaintenanceRunId and :last_maintenance_run_id' if attributes.key?(:'lastMaintenanceRunId') && attributes.key?(:'last_maintenance_run_id')
231
+
232
+ self.last_maintenance_run_id = attributes[:'last_maintenance_run_id'] if attributes[:'last_maintenance_run_id']
233
+
234
+ self.next_maintenance_run_id = attributes[:'nextMaintenanceRunId'] if attributes[:'nextMaintenanceRunId']
235
+
236
+ raise 'You cannot provide both :nextMaintenanceRunId and :next_maintenance_run_id' if attributes.key?(:'nextMaintenanceRunId') && attributes.key?(:'next_maintenance_run_id')
237
+
238
+ self.next_maintenance_run_id = attributes[:'next_maintenance_run_id'] if attributes[:'next_maintenance_run_id']
239
+
240
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
241
+
242
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
243
+
244
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
245
+
246
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
247
+
248
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
249
+
250
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
251
+
252
+ self.availability_domain = attributes[:'availabilityDomain'] if attributes[:'availabilityDomain']
253
+
254
+ raise 'You cannot provide both :availabilityDomain and :availability_domain' if attributes.key?(:'availabilityDomain') && attributes.key?(:'availability_domain')
255
+
256
+ self.availability_domain = attributes[:'availability_domain'] if attributes[:'availability_domain']
257
+
258
+ self.backup_config = attributes[:'backupConfig'] if attributes[:'backupConfig']
259
+
260
+ raise 'You cannot provide both :backupConfig and :backup_config' if attributes.key?(:'backupConfig') && attributes.key?(:'backup_config')
261
+
262
+ self.backup_config = attributes[:'backup_config'] if attributes[:'backup_config']
263
+ end
264
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
265
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
266
+
267
+ # Custom attribute writer method checking allowed values (enum).
268
+ # @param [Object] service_level_agreement_type Object to be assigned
269
+ def service_level_agreement_type=(service_level_agreement_type)
270
+ # rubocop:disable Style/ConditionalAssignment
271
+ if service_level_agreement_type && !SERVICE_LEVEL_AGREEMENT_TYPE_ENUM.include?(service_level_agreement_type)
272
+ 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
273
+ @service_level_agreement_type = SERVICE_LEVEL_AGREEMENT_TYPE_UNKNOWN_ENUM_VALUE
274
+ else
275
+ @service_level_agreement_type = service_level_agreement_type
276
+ end
277
+ # rubocop:enable Style/ConditionalAssignment
278
+ end
279
+
280
+ # Custom attribute writer method checking allowed values (enum).
281
+ # @param [Object] lifecycle_state Object to be assigned
282
+ def lifecycle_state=(lifecycle_state)
283
+ # rubocop:disable Style/ConditionalAssignment
284
+ if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
285
+ OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger
286
+ @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
287
+ else
288
+ @lifecycle_state = lifecycle_state
289
+ end
290
+ # rubocop:enable Style/ConditionalAssignment
291
+ end
292
+
293
+ # Custom attribute writer method checking allowed values (enum).
294
+ # @param [Object] patch_model Object to be assigned
295
+ def patch_model=(patch_model)
296
+ # rubocop:disable Style/ConditionalAssignment
297
+ if patch_model && !PATCH_MODEL_ENUM.include?(patch_model)
298
+ OCI.logger.debug("Unknown value for 'patch_model' [" + patch_model + "]. Mapping to 'PATCH_MODEL_UNKNOWN_ENUM_VALUE'") if OCI.logger
299
+ @patch_model = PATCH_MODEL_UNKNOWN_ENUM_VALUE
300
+ else
301
+ @patch_model = patch_model
302
+ end
303
+ # rubocop:enable Style/ConditionalAssignment
304
+ end
305
+
306
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
307
+
308
+
309
+ # Checks equality by comparing each attribute.
310
+ # @param [Object] other the other object to be compared
311
+ def ==(other)
312
+ return true if equal?(other)
313
+
314
+ self.class == other.class &&
315
+ id == other.id &&
316
+ compartment_id == other.compartment_id &&
317
+ display_name == other.display_name &&
318
+ service_level_agreement_type == other.service_level_agreement_type &&
319
+ autonomous_exadata_infrastructure_id == other.autonomous_exadata_infrastructure_id &&
320
+ lifecycle_state == other.lifecycle_state &&
321
+ lifecycle_details == other.lifecycle_details &&
322
+ time_created == other.time_created &&
323
+ patch_model == other.patch_model &&
324
+ last_maintenance_run_id == other.last_maintenance_run_id &&
325
+ next_maintenance_run_id == other.next_maintenance_run_id &&
326
+ freeform_tags == other.freeform_tags &&
327
+ defined_tags == other.defined_tags &&
328
+ availability_domain == other.availability_domain &&
329
+ backup_config == other.backup_config
330
+ end
331
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
332
+
333
+ # @see the `==` method
334
+ # @param [Object] other the other object to be compared
335
+ def eql?(other)
336
+ self == other
337
+ end
338
+
339
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
340
+
341
+
342
+ # Calculates hash code according to all attributes.
343
+ # @return [Fixnum] Hash code
344
+ def hash
345
+ [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
346
+ end
347
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
348
+
349
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
350
+
351
+
352
+ # Builds the object from hash
353
+ # @param [Hash] attributes Model attributes in the form of hash
354
+ # @return [Object] Returns the model itself
355
+ def build_from_hash(attributes)
356
+ return nil unless attributes.is_a?(Hash)
357
+
358
+ self.class.swagger_types.each_pair do |key, type|
359
+ if type =~ /^Array<(.*)>/i
360
+ # check to ensure the input is an array given that the the attribute
361
+ # is documented as an array but the input is not
362
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
363
+ public_method("#{key}=").call(
364
+ attributes[self.class.attribute_map[key]]
365
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
366
+ )
367
+ end
368
+ elsif !attributes[self.class.attribute_map[key]].nil?
369
+ public_method("#{key}=").call(
370
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
371
+ )
372
+ end
373
+ # or else data not found in attributes(hash), not an issue as the data can be optional
374
+ end
375
+
376
+ self
377
+ end
378
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
379
+
380
+ # Returns the string representation of the object
381
+ # @return [String] String presentation of the object
382
+ def to_s
383
+ to_hash.to_s
384
+ end
385
+
386
+ # Returns the object in the form of hash
387
+ # @return [Hash] Returns the object in the form of hash
388
+ def to_hash
389
+ hash = {}
390
+ self.class.attribute_map.each_pair do |attr, param|
391
+ value = public_method(attr).call
392
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
393
+
394
+ hash[param] = _to_hash(value)
395
+ end
396
+ hash
397
+ end
398
+
399
+ private
400
+
401
+ # Outputs non-array value in the form of hash
402
+ # For object, use to_hash. Otherwise, just return the value
403
+ # @param [Object] value Any valid value
404
+ # @return [Hash] Returns the value in the form of hash
405
+ def _to_hash(value)
406
+ if value.is_a?(Array)
407
+ value.compact.map { |v| _to_hash(v) }
408
+ elsif value.is_a?(Hash)
409
+ {}.tap do |hash|
410
+ value.each { |k, v| hash[k] = _to_hash(v) }
411
+ end
412
+ elsif value.respond_to? :to_hash
413
+ value.to_hash
414
+ else
415
+ value
416
+ end
417
+ end
418
+ end
419
+ end
420
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength