oci 2.0.0 → 2.0.1

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -1
  3. data/lib/oci.rb +8 -0
  4. data/lib/oci/api_client.rb +11 -5
  5. data/lib/oci/config.rb +3 -2
  6. data/lib/oci/config_file_loader.rb +5 -5
  7. data/lib/oci/core/blockstorage_client.rb +1 -1
  8. data/lib/oci/core/compute_client.rb +58 -4
  9. data/lib/oci/core/core.rb +1 -0
  10. data/lib/oci/core/models/capture_console_history_details.rb +13 -1
  11. data/lib/oci/core/models/create_instance_console_connection_details.rb +2 -2
  12. data/lib/oci/core/models/create_vnic_details.rb +18 -1
  13. data/lib/oci/core/models/create_volume_details.rb +14 -1
  14. data/lib/oci/core/models/instance_console_connection.rb +6 -6
  15. data/lib/oci/core/models/route_rule.rb +4 -1
  16. data/lib/oci/core/models/update_console_history_details.rb +121 -0
  17. data/lib/oci/core/models/update_vnic_details.rb +21 -4
  18. data/lib/oci/core/models/vnic.rb +18 -1
  19. data/lib/oci/core/models/volume.rb +13 -2
  20. data/lib/oci/core/models/volume_backup.rb +29 -2
  21. data/lib/oci/core/virtual_network_client.rb +7 -1
  22. data/lib/oci/database/database.rb +43 -0
  23. data/lib/oci/database/database_client.rb +1246 -0
  24. data/lib/oci/database/models/create_data_guard_association_details.rb +225 -0
  25. data/lib/oci/database/models/create_data_guard_association_to_existing_db_system_details.rb +138 -0
  26. data/lib/oci/database/models/create_database_details.rb +194 -0
  27. data/lib/oci/database/models/create_db_home_details.rb +141 -0
  28. data/lib/oci/database/models/create_db_home_with_db_system_id_details.rb +152 -0
  29. data/lib/oci/database/models/data_guard_association.rb +374 -0
  30. data/lib/oci/database/models/database.rb +261 -0
  31. data/lib/oci/database/models/database_summary.rb +261 -0
  32. data/lib/oci/database/models/db_home.rb +216 -0
  33. data/lib/oci/database/models/db_home_summary.rb +216 -0
  34. data/lib/oci/database/models/db_node.rb +220 -0
  35. data/lib/oci/database/models/db_node_summary.rb +220 -0
  36. data/lib/oci/database/models/db_system.rb +518 -0
  37. data/lib/oci/database/models/db_system_shape_summary.rb +142 -0
  38. data/lib/oci/database/models/db_system_summary.rb +518 -0
  39. data/lib/oci/database/models/db_version_summary.rb +131 -0
  40. data/lib/oci/database/models/failover_data_guard_association_details.rb +120 -0
  41. data/lib/oci/database/models/launch_db_system_details.rb +394 -0
  42. data/lib/oci/database/models/patch.rb +247 -0
  43. data/lib/oci/database/models/patch_details.rb +144 -0
  44. data/lib/oci/database/models/patch_history_entry.rb +218 -0
  45. data/lib/oci/database/models/patch_history_entry_summary.rb +218 -0
  46. data/lib/oci/database/models/patch_summary.rb +247 -0
  47. data/lib/oci/database/models/reinstate_data_guard_association_details.rb +120 -0
  48. data/lib/oci/database/models/switchover_data_guard_association_details.rb +120 -0
  49. data/lib/oci/database/models/update_db_home_details.rb +119 -0
  50. data/lib/oci/database/models/update_db_system_details.rb +153 -0
  51. data/lib/oci/database/util.rb +1 -0
  52. data/lib/oci/errors.rb +3 -4
  53. data/lib/oci/regions.rb +4 -2
  54. data/lib/oci/response_headers.rb +0 -1
  55. data/lib/oci/signer.rb +8 -7
  56. data/lib/oci/version.rb +1 -1
  57. data/lib/oraclebmc.rb +3 -1
  58. metadata +33 -2
@@ -0,0 +1,142 @@
1
+ # Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ module OCI
6
+ class Database::Models::DbSystemShapeSummary
7
+ # The maximum number of CPU cores that can be enabled on the DB System.
8
+ # @return [Integer]
9
+ attr_accessor :available_core_count
10
+
11
+ # The name of the shape used for the DB System.
12
+ # @return [String]
13
+ attr_accessor :name
14
+
15
+ # Deprecated. Use `name` instead of `shape`.
16
+ # @return [String]
17
+ attr_accessor :shape
18
+
19
+
20
+ # Initializes the object
21
+ # @param [Hash] attributes Model attributes in the form of hash
22
+ def initialize(attributes = {})
23
+ return unless attributes.is_a?(Hash)
24
+
25
+ # convert string to symbol for hash key
26
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
27
+
28
+ if attributes[:'availableCoreCount']
29
+ self.available_core_count = attributes[:'availableCoreCount']
30
+ end
31
+
32
+ if attributes[:'name']
33
+ self.name = attributes[:'name']
34
+ end
35
+
36
+ if attributes[:'shape']
37
+ self.shape = attributes[:'shape']
38
+ end
39
+
40
+ end
41
+
42
+ # Checks equality by comparing each attribute.
43
+ # @param [Object] other_object to be compared
44
+ def ==(other_object)
45
+ return true if self.equal?(other_object)
46
+ self.class == other_object.class &&
47
+ available_core_count == other_object.available_core_count &&
48
+ name == other_object.name &&
49
+ shape == other_object.shape
50
+ end
51
+
52
+ # @see the `==` method
53
+ # @param [Object] other_object to be compared
54
+ def eql?(other_object)
55
+ self == other_object
56
+ end
57
+
58
+ # Calculates hash code according to all attributes.
59
+ # @return [Fixnum] Hash code
60
+ def hash
61
+ [available_core_count, name, shape].hash
62
+ end
63
+
64
+ # Builds the object from hash
65
+ # @param [Hash] attributes Model attributes in the form of hash
66
+ # @return [Object] Returns the model itself
67
+ def build_from_hash(attributes)
68
+ return nil unless attributes.is_a?(Hash)
69
+ self.class.swagger_types.each_pair do |key, type|
70
+ if type =~ /^Array<(.*)>/i
71
+ # check to ensure the input is an array given that the the attribute
72
+ # is documented as an array but the input is not
73
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
74
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
75
+ end
76
+ elsif !attributes[self.class.attribute_map[key]].nil?
77
+ self.send("#{key}=", OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
78
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
79
+ end
80
+
81
+ self
82
+ end
83
+
84
+ # Returns the string representation of the object
85
+ # @return [String] String presentation of the object
86
+ def to_s
87
+ to_hash.to_s
88
+ end
89
+
90
+ # Returns the object in the form of hash
91
+ # @return [Hash] Returns the object in the form of hash
92
+ def to_hash
93
+ hash = {}
94
+ self.class.attribute_map.each_pair do |attr, param|
95
+ value = self.send(attr)
96
+ next if value.nil?
97
+ hash[param] = _to_hash(value)
98
+ end
99
+ hash
100
+ end
101
+
102
+ private
103
+
104
+ # Outputs non-array value in the form of hash
105
+ # For object, use to_hash. Otherwise, just return the value
106
+ # @param [Object] value Any valid value
107
+ # @return [Hash] Returns the value in the form of hash
108
+ def _to_hash(value)
109
+ if value.is_a?(Array)
110
+ value.compact.map{ |v| _to_hash(v) }
111
+ elsif value.is_a?(Hash)
112
+ {}.tap do |hash|
113
+ value.each { |k, v| hash[k] = _to_hash(v) }
114
+ end
115
+ elsif value.respond_to? :to_hash
116
+ value.to_hash
117
+ else
118
+ value
119
+ end
120
+ end
121
+
122
+
123
+
124
+ # Attribute mapping from ruby-style variable name to JSON key.
125
+ def self.attribute_map
126
+ {
127
+ :'available_core_count' => :'availableCoreCount',
128
+ :'name' => :'name',
129
+ :'shape' => :'shape'
130
+ }
131
+ end
132
+
133
+ # Attribute type mapping.
134
+ def self.swagger_types
135
+ {
136
+ :'available_core_count' => :'Integer',
137
+ :'name' => :'String',
138
+ :'shape' => :'String'
139
+ }
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,518 @@
1
+ # Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ module OCI
6
+ class Database::Models::DbSystemSummary
7
+
8
+ DATABASE_EDITION_ENUM = [DATABASE_EDITION_STANDARD_EDITION = 'STANDARD_EDITION',
9
+ DATABASE_EDITION_ENTERPRISE_EDITION = 'ENTERPRISE_EDITION',
10
+ DATABASE_EDITION_ENTERPRISE_EDITION_EXTREME_PERFORMANCE = 'ENTERPRISE_EDITION_EXTREME_PERFORMANCE',
11
+ DATABASE_EDITION_ENTERPRISE_EDITION_HIGH_PERFORMANCE = 'ENTERPRISE_EDITION_HIGH_PERFORMANCE',
12
+ DATABASE_EDITION_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE']
13
+
14
+
15
+ DISK_REDUNDANCY_ENUM = [DISK_REDUNDANCY_HIGH = 'HIGH',
16
+ DISK_REDUNDANCY_NORMAL = 'NORMAL',
17
+ DISK_REDUNDANCY_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE']
18
+
19
+
20
+ LICENSE_MODEL_ENUM = [LICENSE_MODEL_LICENSE_INCLUDED = 'LICENSE_INCLUDED',
21
+ LICENSE_MODEL_BRING_YOUR_OWN_LICENSE = 'BRING_YOUR_OWN_LICENSE',
22
+ LICENSE_MODEL_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE']
23
+
24
+
25
+ LIFECYCLE_STATE_ENUM = [LIFECYCLE_STATE_PROVISIONING = 'PROVISIONING',
26
+ LIFECYCLE_STATE_AVAILABLE = 'AVAILABLE',
27
+ LIFECYCLE_STATE_UPDATING = 'UPDATING',
28
+ LIFECYCLE_STATE_TERMINATING = 'TERMINATING',
29
+ LIFECYCLE_STATE_TERMINATED = 'TERMINATED',
30
+ LIFECYCLE_STATE_FAILED = 'FAILED',
31
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE']
32
+
33
+ # The name of the Availability Domain that the DB System is located in.
34
+ # @return [String]
35
+ attr_accessor :availability_domain
36
+
37
+ # The OCID of the backup network subnet the DB System is associated with. Applicable only to Exadata.
38
+ #
39
+ # **Subnet Restriction:** See above subnetId's 'Subnet Restriction'.
40
+ # to malfunction.
41
+ #
42
+ # @return [String]
43
+ attr_accessor :backup_subnet_id
44
+
45
+ # Cluster name for Exadata and 2-node RAC DB Systems. The cluster name must begin with an an alphabetic character, and may contain hyphens (-). Underscores (_) are not permitted. The cluster name can be no longer than 11 characters and is not case sensitive.
46
+ #
47
+ # @return [String]
48
+ attr_accessor :cluster_name
49
+
50
+ # The OCID of the compartment.
51
+ # @return [String]
52
+ attr_accessor :compartment_id
53
+
54
+ # The number of CPU cores enabled on the DB System.
55
+ # @return [Integer]
56
+ attr_accessor :cpu_core_count
57
+
58
+ # The percentage assigned to DATA storage (user data and database files).
59
+ # The remaining percentage is assigned to RECO storage (database redo logs, archive logs, and recovery manager backups). Accepted values are 40 and 80.
60
+ #
61
+ # @return [Integer]
62
+ attr_accessor :data_storage_percentage
63
+
64
+ # Data storage size, in GBs, that is currently available to the DB system. This is applicable only for VM-based DBs.
65
+ #
66
+ # @return [Integer]
67
+ attr_accessor :data_storage_size_in_gb
68
+
69
+ # The Oracle Database Edition that applies to all the databases on the DB System.
70
+ #
71
+ # @return [String]
72
+ attr_accessor :database_edition
73
+
74
+ # The type of redundancy configured for the DB System.
75
+ # Normal is 2-way redundancy.
76
+ # High is 3-way redundancy.
77
+ #
78
+ # @return [String]
79
+ attr_accessor :disk_redundancy
80
+
81
+ # The user-friendly name for the DB System. It does not have to be unique.
82
+ # @return [String]
83
+ attr_accessor :display_name
84
+
85
+ # The domain name for the DB System.
86
+ # @return [String]
87
+ attr_accessor :domain
88
+
89
+ # The host name for the DB Node.
90
+ # @return [String]
91
+ attr_accessor :hostname
92
+
93
+ # The OCID of the DB System.
94
+ # @return [String]
95
+ attr_accessor :id
96
+
97
+ # The OCID of the last patch history. This is updated as soon as a patch operation is started.
98
+ # @return [String]
99
+ attr_accessor :last_patch_history_entry_id
100
+
101
+ # The Oracle license model that applies to all the databases on the DB System. The default is LICENSE_INCLUDED.
102
+ #
103
+ # @return [String]
104
+ attr_accessor :license_model
105
+
106
+ # Additional information about the current lifecycleState.
107
+ # @return [String]
108
+ attr_accessor :lifecycle_details
109
+
110
+ # The current state of the DB System.
111
+ # @return [String]
112
+ attr_accessor :lifecycle_state
113
+
114
+ # The port number configured for the listener on the DB System.
115
+ # @return [Integer]
116
+ attr_accessor :listener_port
117
+
118
+ # Number of nodes in this DB system. For RAC DBs, this will be greater than 1.
119
+ #
120
+ # @return [Integer]
121
+ attr_accessor :node_count
122
+
123
+ # RECO/REDO storage size, in GBs, that is currently allocated to the DB system. This is applicable only for VM-based DBs.
124
+ #
125
+ # @return [Integer]
126
+ attr_accessor :reco_storage_size_in_gb
127
+
128
+ # The OCID of the DNS record for the SCAN IP addresses that are associated with the DB System.
129
+ #
130
+ # @return [String]
131
+ attr_accessor :scan_dns_record_id
132
+
133
+ # The OCID of the Single Client Access Name (SCAN) IP addresses associated with the DB System.
134
+ # SCAN IP addresses are typically used for load balancing and are not assigned to any interface.
135
+ # Clusterware directs the requests to the appropriate nodes in the cluster.
136
+ #
137
+ # - For a single-node DB System, this list is empty.
138
+ #
139
+ # @return [Array<String>]
140
+ attr_accessor :scan_ip_ids
141
+
142
+ # The shape of the DB System. The shape determines resources to allocate to the DB system - CPU cores and memory for VM shapes; CPU cores, memory and storage for non-VM (or bare metal) shapes.
143
+ # @return [String]
144
+ attr_accessor :shape
145
+
146
+ # The public key portion of one or more key pairs used for SSH access to the DB System.
147
+ # @return [Array<String>]
148
+ attr_accessor :ssh_public_keys
149
+
150
+ # The OCID of the subnet the DB System is associated with.
151
+ #
152
+ # **Subnet Restrictions:**
153
+ # - For single node and 2-node (RAC) DB Systems, do not use a subnet that overlaps with 192.168.16.16/28
154
+ # - For Exadata and VM-based RAC DB Systems, do not use a subnet that overlaps with 192.168.128.0/20
155
+ #
156
+ # These subnets are used by the Oracle Clusterware private interconnect on the database instance.
157
+ # Specifying an overlapping subnet will cause the private interconnect to malfunction.
158
+ # This restriction applies to both the client subnet and backup subnet.
159
+ #
160
+ # @return [String]
161
+ attr_accessor :subnet_id
162
+
163
+ # The date and time the DB System was created.
164
+ # @return [DateTime]
165
+ attr_accessor :time_created
166
+
167
+ # The version of the DB System.
168
+ # @return [String]
169
+ attr_accessor :version
170
+
171
+ # The OCID of the virtual IP (VIP) addresses associated with the DB System.
172
+ # The Cluster Ready Services (CRS) creates and maintains one VIP address for each node in the DB System to
173
+ # enable failover. If one node fails, the VIP is reassigned to another active node in the cluster.
174
+ #
175
+ # - For a single-node DB System, this list is empty.
176
+ #
177
+ # @return [Array<String>]
178
+ attr_accessor :vip_ids
179
+
180
+
181
+ # Initializes the object
182
+ # @param [Hash] attributes Model attributes in the form of hash
183
+ def initialize(attributes = {})
184
+ return unless attributes.is_a?(Hash)
185
+
186
+ # convert string to symbol for hash key
187
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
188
+
189
+ if attributes[:'availabilityDomain']
190
+ self.availability_domain = attributes[:'availabilityDomain']
191
+ end
192
+
193
+ if attributes[:'backupSubnetId']
194
+ self.backup_subnet_id = attributes[:'backupSubnetId']
195
+ end
196
+
197
+ if attributes[:'clusterName']
198
+ self.cluster_name = attributes[:'clusterName']
199
+ end
200
+
201
+ if attributes[:'compartmentId']
202
+ self.compartment_id = attributes[:'compartmentId']
203
+ end
204
+
205
+ if attributes[:'cpuCoreCount']
206
+ self.cpu_core_count = attributes[:'cpuCoreCount']
207
+ end
208
+
209
+ if attributes[:'dataStoragePercentage']
210
+ self.data_storage_percentage = attributes[:'dataStoragePercentage']
211
+ end
212
+
213
+ if attributes[:'dataStorageSizeInGB']
214
+ self.data_storage_size_in_gb = attributes[:'dataStorageSizeInGB']
215
+ end
216
+
217
+ if attributes[:'databaseEdition']
218
+ self.database_edition = attributes[:'databaseEdition']
219
+ end
220
+
221
+ if attributes[:'diskRedundancy']
222
+ self.disk_redundancy = attributes[:'diskRedundancy']
223
+ end
224
+
225
+ if attributes[:'displayName']
226
+ self.display_name = attributes[:'displayName']
227
+ end
228
+
229
+ if attributes[:'domain']
230
+ self.domain = attributes[:'domain']
231
+ end
232
+
233
+ if attributes[:'hostname']
234
+ self.hostname = attributes[:'hostname']
235
+ end
236
+
237
+ if attributes[:'id']
238
+ self.id = attributes[:'id']
239
+ end
240
+
241
+ if attributes[:'lastPatchHistoryEntryId']
242
+ self.last_patch_history_entry_id = attributes[:'lastPatchHistoryEntryId']
243
+ end
244
+
245
+ if attributes[:'licenseModel']
246
+ self.license_model = attributes[:'licenseModel']
247
+ end
248
+
249
+ if attributes[:'lifecycleDetails']
250
+ self.lifecycle_details = attributes[:'lifecycleDetails']
251
+ end
252
+
253
+ if attributes[:'lifecycleState']
254
+ self.lifecycle_state = attributes[:'lifecycleState']
255
+ end
256
+
257
+ if attributes[:'listenerPort']
258
+ self.listener_port = attributes[:'listenerPort']
259
+ end
260
+
261
+ if attributes[:'nodeCount']
262
+ self.node_count = attributes[:'nodeCount']
263
+ end
264
+
265
+ if attributes[:'recoStorageSizeInGB']
266
+ self.reco_storage_size_in_gb = attributes[:'recoStorageSizeInGB']
267
+ end
268
+
269
+ if attributes[:'scanDnsRecordId']
270
+ self.scan_dns_record_id = attributes[:'scanDnsRecordId']
271
+ end
272
+
273
+ if attributes[:'scanIpIds']
274
+ self.scan_ip_ids = attributes[:'scanIpIds']
275
+ end
276
+
277
+ if attributes[:'shape']
278
+ self.shape = attributes[:'shape']
279
+ end
280
+
281
+ if attributes[:'sshPublicKeys']
282
+ self.ssh_public_keys = attributes[:'sshPublicKeys']
283
+ end
284
+
285
+ if attributes[:'subnetId']
286
+ self.subnet_id = attributes[:'subnetId']
287
+ end
288
+
289
+ if attributes[:'timeCreated']
290
+ self.time_created = attributes[:'timeCreated']
291
+ end
292
+
293
+ if attributes[:'version']
294
+ self.version = attributes[:'version']
295
+ end
296
+
297
+ if attributes[:'vipIds']
298
+ self.vip_ids = attributes[:'vipIds']
299
+ end
300
+
301
+ end
302
+
303
+ # Custom attribute writer method checking allowed values (enum).
304
+ # @param [Object] database_edition Object to be assigned
305
+ def database_edition=(database_edition)
306
+ if database_edition && !DATABASE_EDITION_ENUM.include?(database_edition)
307
+ @database_edition = DATABASE_EDITION_UNKNOWN_ENUM_VALUE
308
+ else
309
+ @database_edition = database_edition
310
+ end
311
+ end
312
+
313
+ # Custom attribute writer method checking allowed values (enum).
314
+ # @param [Object] disk_redundancy Object to be assigned
315
+ def disk_redundancy=(disk_redundancy)
316
+ if disk_redundancy && !DISK_REDUNDANCY_ENUM.include?(disk_redundancy)
317
+ @disk_redundancy = DISK_REDUNDANCY_UNKNOWN_ENUM_VALUE
318
+ else
319
+ @disk_redundancy = disk_redundancy
320
+ end
321
+ end
322
+
323
+ # Custom attribute writer method checking allowed values (enum).
324
+ # @param [Object] license_model Object to be assigned
325
+ def license_model=(license_model)
326
+ if license_model && !LICENSE_MODEL_ENUM.include?(license_model)
327
+ @license_model = LICENSE_MODEL_UNKNOWN_ENUM_VALUE
328
+ else
329
+ @license_model = license_model
330
+ end
331
+ end
332
+
333
+ # Custom attribute writer method checking allowed values (enum).
334
+ # @param [Object] lifecycle_state Object to be assigned
335
+ def lifecycle_state=(lifecycle_state)
336
+ if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
337
+ @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
338
+ else
339
+ @lifecycle_state = lifecycle_state
340
+ end
341
+ end
342
+
343
+ # Checks equality by comparing each attribute.
344
+ # @param [Object] other_object to be compared
345
+ def ==(other_object)
346
+ return true if self.equal?(other_object)
347
+ self.class == other_object.class &&
348
+ availability_domain == other_object.availability_domain &&
349
+ backup_subnet_id == other_object.backup_subnet_id &&
350
+ cluster_name == other_object.cluster_name &&
351
+ compartment_id == other_object.compartment_id &&
352
+ cpu_core_count == other_object.cpu_core_count &&
353
+ data_storage_percentage == other_object.data_storage_percentage &&
354
+ data_storage_size_in_gb == other_object.data_storage_size_in_gb &&
355
+ database_edition == other_object.database_edition &&
356
+ disk_redundancy == other_object.disk_redundancy &&
357
+ display_name == other_object.display_name &&
358
+ domain == other_object.domain &&
359
+ hostname == other_object.hostname &&
360
+ id == other_object.id &&
361
+ last_patch_history_entry_id == other_object.last_patch_history_entry_id &&
362
+ license_model == other_object.license_model &&
363
+ lifecycle_details == other_object.lifecycle_details &&
364
+ lifecycle_state == other_object.lifecycle_state &&
365
+ listener_port == other_object.listener_port &&
366
+ node_count == other_object.node_count &&
367
+ reco_storage_size_in_gb == other_object.reco_storage_size_in_gb &&
368
+ scan_dns_record_id == other_object.scan_dns_record_id &&
369
+ scan_ip_ids == other_object.scan_ip_ids &&
370
+ shape == other_object.shape &&
371
+ ssh_public_keys == other_object.ssh_public_keys &&
372
+ subnet_id == other_object.subnet_id &&
373
+ time_created == other_object.time_created &&
374
+ version == other_object.version &&
375
+ vip_ids == other_object.vip_ids
376
+ end
377
+
378
+ # @see the `==` method
379
+ # @param [Object] other_object to be compared
380
+ def eql?(other_object)
381
+ self == other_object
382
+ end
383
+
384
+ # Calculates hash code according to all attributes.
385
+ # @return [Fixnum] Hash code
386
+ def hash
387
+ [availability_domain, backup_subnet_id, cluster_name, compartment_id, cpu_core_count, data_storage_percentage, data_storage_size_in_gb, database_edition, disk_redundancy, display_name, domain, hostname, id, last_patch_history_entry_id, license_model, lifecycle_details, lifecycle_state, listener_port, node_count, reco_storage_size_in_gb, scan_dns_record_id, scan_ip_ids, shape, ssh_public_keys, subnet_id, time_created, version, vip_ids].hash
388
+ end
389
+
390
+ # Builds the object from hash
391
+ # @param [Hash] attributes Model attributes in the form of hash
392
+ # @return [Object] Returns the model itself
393
+ def build_from_hash(attributes)
394
+ return nil unless attributes.is_a?(Hash)
395
+ self.class.swagger_types.each_pair do |key, type|
396
+ if type =~ /^Array<(.*)>/i
397
+ # check to ensure the input is an array given that the the attribute
398
+ # is documented as an array but the input is not
399
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
400
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
401
+ end
402
+ elsif !attributes[self.class.attribute_map[key]].nil?
403
+ self.send("#{key}=", OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
404
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
405
+ end
406
+
407
+ self
408
+ end
409
+
410
+ # Returns the string representation of the object
411
+ # @return [String] String presentation of the object
412
+ def to_s
413
+ to_hash.to_s
414
+ end
415
+
416
+ # Returns the object in the form of hash
417
+ # @return [Hash] Returns the object in the form of hash
418
+ def to_hash
419
+ hash = {}
420
+ self.class.attribute_map.each_pair do |attr, param|
421
+ value = self.send(attr)
422
+ next if value.nil?
423
+ hash[param] = _to_hash(value)
424
+ end
425
+ hash
426
+ end
427
+
428
+ private
429
+
430
+ # Outputs non-array value in the form of hash
431
+ # For object, use to_hash. Otherwise, just return the value
432
+ # @param [Object] value Any valid value
433
+ # @return [Hash] Returns the value in the form of hash
434
+ def _to_hash(value)
435
+ if value.is_a?(Array)
436
+ value.compact.map{ |v| _to_hash(v) }
437
+ elsif value.is_a?(Hash)
438
+ {}.tap do |hash|
439
+ value.each { |k, v| hash[k] = _to_hash(v) }
440
+ end
441
+ elsif value.respond_to? :to_hash
442
+ value.to_hash
443
+ else
444
+ value
445
+ end
446
+ end
447
+
448
+
449
+
450
+ # Attribute mapping from ruby-style variable name to JSON key.
451
+ def self.attribute_map
452
+ {
453
+ :'availability_domain' => :'availabilityDomain',
454
+ :'backup_subnet_id' => :'backupSubnetId',
455
+ :'cluster_name' => :'clusterName',
456
+ :'compartment_id' => :'compartmentId',
457
+ :'cpu_core_count' => :'cpuCoreCount',
458
+ :'data_storage_percentage' => :'dataStoragePercentage',
459
+ :'data_storage_size_in_gb' => :'dataStorageSizeInGB',
460
+ :'database_edition' => :'databaseEdition',
461
+ :'disk_redundancy' => :'diskRedundancy',
462
+ :'display_name' => :'displayName',
463
+ :'domain' => :'domain',
464
+ :'hostname' => :'hostname',
465
+ :'id' => :'id',
466
+ :'last_patch_history_entry_id' => :'lastPatchHistoryEntryId',
467
+ :'license_model' => :'licenseModel',
468
+ :'lifecycle_details' => :'lifecycleDetails',
469
+ :'lifecycle_state' => :'lifecycleState',
470
+ :'listener_port' => :'listenerPort',
471
+ :'node_count' => :'nodeCount',
472
+ :'reco_storage_size_in_gb' => :'recoStorageSizeInGB',
473
+ :'scan_dns_record_id' => :'scanDnsRecordId',
474
+ :'scan_ip_ids' => :'scanIpIds',
475
+ :'shape' => :'shape',
476
+ :'ssh_public_keys' => :'sshPublicKeys',
477
+ :'subnet_id' => :'subnetId',
478
+ :'time_created' => :'timeCreated',
479
+ :'version' => :'version',
480
+ :'vip_ids' => :'vipIds'
481
+ }
482
+ end
483
+
484
+ # Attribute type mapping.
485
+ def self.swagger_types
486
+ {
487
+ :'availability_domain' => :'String',
488
+ :'backup_subnet_id' => :'String',
489
+ :'cluster_name' => :'String',
490
+ :'compartment_id' => :'String',
491
+ :'cpu_core_count' => :'Integer',
492
+ :'data_storage_percentage' => :'Integer',
493
+ :'data_storage_size_in_gb' => :'Integer',
494
+ :'database_edition' => :'String',
495
+ :'disk_redundancy' => :'String',
496
+ :'display_name' => :'String',
497
+ :'domain' => :'String',
498
+ :'hostname' => :'String',
499
+ :'id' => :'String',
500
+ :'last_patch_history_entry_id' => :'String',
501
+ :'license_model' => :'String',
502
+ :'lifecycle_details' => :'String',
503
+ :'lifecycle_state' => :'String',
504
+ :'listener_port' => :'Integer',
505
+ :'node_count' => :'Integer',
506
+ :'reco_storage_size_in_gb' => :'Integer',
507
+ :'scan_dns_record_id' => :'String',
508
+ :'scan_ip_ids' => :'Array<String>',
509
+ :'shape' => :'String',
510
+ :'ssh_public_keys' => :'Array<String>',
511
+ :'subnet_id' => :'String',
512
+ :'time_created' => :'DateTime',
513
+ :'version' => :'String',
514
+ :'vip_ids' => :'Array<String>'
515
+ }
516
+ end
517
+ end
518
+ end