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
@@ -25,6 +25,7 @@ module OCI
25
25
  LIFECYCLE_STATE_SCALE_IN_PROGRESS = 'SCALE_IN_PROGRESS'.freeze,
26
26
  LIFECYCLE_STATE_AVAILABLE_NEEDS_ATTENTION = 'AVAILABLE_NEEDS_ATTENTION'.freeze,
27
27
  LIFECYCLE_STATE_UPDATING = 'UPDATING'.freeze,
28
+ LIFECYCLE_STATE_MAINTENANCE_IN_PROGRESS = 'MAINTENANCE_IN_PROGRESS'.freeze,
28
29
  LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
29
30
  ].freeze
30
31
 
@@ -68,6 +69,15 @@ module OCI
68
69
  # @return [Integer]
69
70
  attr_accessor :data_storage_size_in_tbs
70
71
 
72
+ # True if it is dedicated database.
73
+ #
74
+ # @return [BOOLEAN]
75
+ attr_accessor :is_dedicated
76
+
77
+ # The Autonomous Container Database [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
78
+ # @return [String]
79
+ attr_accessor :autonomous_container_database_id
80
+
71
81
  # The date and time the database was created.
72
82
  # @return [DateTime]
73
83
  attr_accessor :time_created
@@ -84,6 +94,9 @@ module OCI
84
94
  # @return [OCI::Database::Models::AutonomousDatabaseConnectionStrings]
85
95
  attr_accessor :connection_strings
86
96
 
97
+ # @return [OCI::Database::Models::AutonomousDatabaseConnectionUrls]
98
+ attr_accessor :connection_urls
99
+
87
100
  # The Oracle license model that applies to the Oracle Autonomous Database. The default is BRING_YOUR_OWN_LICENSE.
88
101
  #
89
102
  # @return [String]
@@ -113,6 +126,10 @@ module OCI
113
126
  # @return [String]
114
127
  attr_accessor :db_version
115
128
 
129
+ # Indicates if the Autonomous Database version is a preview version.
130
+ # @return [BOOLEAN]
131
+ attr_accessor :is_preview
132
+
116
133
  # The Autonomous Database workload type. OLTP indicates an Autonomous Transaction Processing database and DW indicates an Autonomous Data Warehouse database.
117
134
  # @return [String]
118
135
  attr_reader :db_workload
@@ -137,15 +154,19 @@ module OCI
137
154
  'db_name': :'dbName',
138
155
  'cpu_core_count': :'cpuCoreCount',
139
156
  'data_storage_size_in_tbs': :'dataStorageSizeInTBs',
157
+ 'is_dedicated': :'isDedicated',
158
+ 'autonomous_container_database_id': :'autonomousContainerDatabaseId',
140
159
  'time_created': :'timeCreated',
141
160
  'display_name': :'displayName',
142
161
  'service_console_url': :'serviceConsoleUrl',
143
162
  'connection_strings': :'connectionStrings',
163
+ 'connection_urls': :'connectionUrls',
144
164
  'license_model': :'licenseModel',
145
165
  'used_data_storage_size_in_tbs': :'usedDataStorageSizeInTBs',
146
166
  'freeform_tags': :'freeformTags',
147
167
  'defined_tags': :'definedTags',
148
168
  'db_version': :'dbVersion',
169
+ 'is_preview': :'isPreview',
149
170
  'db_workload': :'dbWorkload',
150
171
  'whitelisted_ips': :'whitelistedIps',
151
172
  'is_auto_scaling_enabled': :'isAutoScalingEnabled'
@@ -164,15 +185,19 @@ module OCI
164
185
  'db_name': :'String',
165
186
  'cpu_core_count': :'Integer',
166
187
  'data_storage_size_in_tbs': :'Integer',
188
+ 'is_dedicated': :'BOOLEAN',
189
+ 'autonomous_container_database_id': :'String',
167
190
  'time_created': :'DateTime',
168
191
  'display_name': :'String',
169
192
  'service_console_url': :'String',
170
193
  'connection_strings': :'OCI::Database::Models::AutonomousDatabaseConnectionStrings',
194
+ 'connection_urls': :'OCI::Database::Models::AutonomousDatabaseConnectionUrls',
171
195
  'license_model': :'String',
172
196
  'used_data_storage_size_in_tbs': :'Integer',
173
197
  'freeform_tags': :'Hash<String, String>',
174
198
  'defined_tags': :'Hash<String, Hash<String, Object>>',
175
199
  'db_version': :'String',
200
+ 'is_preview': :'BOOLEAN',
176
201
  'db_workload': :'String',
177
202
  'whitelisted_ips': :'Array<String>',
178
203
  'is_auto_scaling_enabled': :'BOOLEAN'
@@ -193,15 +218,19 @@ module OCI
193
218
  # @option attributes [String] :db_name The value to assign to the {#db_name} property
194
219
  # @option attributes [Integer] :cpu_core_count The value to assign to the {#cpu_core_count} property
195
220
  # @option attributes [Integer] :data_storage_size_in_tbs The value to assign to the {#data_storage_size_in_tbs} property
221
+ # @option attributes [BOOLEAN] :is_dedicated The value to assign to the {#is_dedicated} property
222
+ # @option attributes [String] :autonomous_container_database_id The value to assign to the {#autonomous_container_database_id} property
196
223
  # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
197
224
  # @option attributes [String] :display_name The value to assign to the {#display_name} property
198
225
  # @option attributes [String] :service_console_url The value to assign to the {#service_console_url} property
199
226
  # @option attributes [OCI::Database::Models::AutonomousDatabaseConnectionStrings] :connection_strings The value to assign to the {#connection_strings} property
227
+ # @option attributes [OCI::Database::Models::AutonomousDatabaseConnectionUrls] :connection_urls The value to assign to the {#connection_urls} property
200
228
  # @option attributes [String] :license_model The value to assign to the {#license_model} property
201
229
  # @option attributes [Integer] :used_data_storage_size_in_tbs The value to assign to the {#used_data_storage_size_in_tbs} property
202
230
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
203
231
  # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
204
232
  # @option attributes [String] :db_version The value to assign to the {#db_version} property
233
+ # @option attributes [BOOLEAN] :is_preview The value to assign to the {#is_preview} property
205
234
  # @option attributes [String] :db_workload The value to assign to the {#db_workload} property
206
235
  # @option attributes [Array<String>] :whitelisted_ips The value to assign to the {#whitelisted_ips} property
207
236
  # @option attributes [BOOLEAN] :is_auto_scaling_enabled The value to assign to the {#is_auto_scaling_enabled} property
@@ -249,6 +278,18 @@ module OCI
249
278
 
250
279
  self.data_storage_size_in_tbs = attributes[:'data_storage_size_in_tbs'] if attributes[:'data_storage_size_in_tbs']
251
280
 
281
+ self.is_dedicated = attributes[:'isDedicated'] unless attributes[:'isDedicated'].nil?
282
+
283
+ raise 'You cannot provide both :isDedicated and :is_dedicated' if attributes.key?(:'isDedicated') && attributes.key?(:'is_dedicated')
284
+
285
+ self.is_dedicated = attributes[:'is_dedicated'] unless attributes[:'is_dedicated'].nil?
286
+
287
+ self.autonomous_container_database_id = attributes[:'autonomousContainerDatabaseId'] if attributes[:'autonomousContainerDatabaseId']
288
+
289
+ raise 'You cannot provide both :autonomousContainerDatabaseId and :autonomous_container_database_id' if attributes.key?(:'autonomousContainerDatabaseId') && attributes.key?(:'autonomous_container_database_id')
290
+
291
+ self.autonomous_container_database_id = attributes[:'autonomous_container_database_id'] if attributes[:'autonomous_container_database_id']
292
+
252
293
  self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
253
294
 
254
295
  raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
@@ -273,6 +314,12 @@ module OCI
273
314
 
274
315
  self.connection_strings = attributes[:'connection_strings'] if attributes[:'connection_strings']
275
316
 
317
+ self.connection_urls = attributes[:'connectionUrls'] if attributes[:'connectionUrls']
318
+
319
+ raise 'You cannot provide both :connectionUrls and :connection_urls' if attributes.key?(:'connectionUrls') && attributes.key?(:'connection_urls')
320
+
321
+ self.connection_urls = attributes[:'connection_urls'] if attributes[:'connection_urls']
322
+
276
323
  self.license_model = attributes[:'licenseModel'] if attributes[:'licenseModel']
277
324
 
278
325
  raise 'You cannot provide both :licenseModel and :license_model' if attributes.key?(:'licenseModel') && attributes.key?(:'license_model')
@@ -303,6 +350,12 @@ module OCI
303
350
 
304
351
  self.db_version = attributes[:'db_version'] if attributes[:'db_version']
305
352
 
353
+ self.is_preview = attributes[:'isPreview'] unless attributes[:'isPreview'].nil?
354
+
355
+ raise 'You cannot provide both :isPreview and :is_preview' if attributes.key?(:'isPreview') && attributes.key?(:'is_preview')
356
+
357
+ self.is_preview = attributes[:'is_preview'] unless attributes[:'is_preview'].nil?
358
+
306
359
  self.db_workload = attributes[:'dbWorkload'] if attributes[:'dbWorkload']
307
360
 
308
361
  raise 'You cannot provide both :dbWorkload and :db_workload' if attributes.key?(:'dbWorkload') && attributes.key?(:'db_workload')
@@ -379,15 +432,19 @@ module OCI
379
432
  db_name == other.db_name &&
380
433
  cpu_core_count == other.cpu_core_count &&
381
434
  data_storage_size_in_tbs == other.data_storage_size_in_tbs &&
435
+ is_dedicated == other.is_dedicated &&
436
+ autonomous_container_database_id == other.autonomous_container_database_id &&
382
437
  time_created == other.time_created &&
383
438
  display_name == other.display_name &&
384
439
  service_console_url == other.service_console_url &&
385
440
  connection_strings == other.connection_strings &&
441
+ connection_urls == other.connection_urls &&
386
442
  license_model == other.license_model &&
387
443
  used_data_storage_size_in_tbs == other.used_data_storage_size_in_tbs &&
388
444
  freeform_tags == other.freeform_tags &&
389
445
  defined_tags == other.defined_tags &&
390
446
  db_version == other.db_version &&
447
+ is_preview == other.is_preview &&
391
448
  db_workload == other.db_workload &&
392
449
  whitelisted_ips == other.whitelisted_ips &&
393
450
  is_auto_scaling_enabled == other.is_auto_scaling_enabled
@@ -406,7 +463,7 @@ module OCI
406
463
  # Calculates hash code according to all attributes.
407
464
  # @return [Fixnum] Hash code
408
465
  def hash
409
- [id, compartment_id, lifecycle_state, lifecycle_details, db_name, cpu_core_count, data_storage_size_in_tbs, time_created, display_name, service_console_url, connection_strings, license_model, used_data_storage_size_in_tbs, freeform_tags, defined_tags, db_version, db_workload, whitelisted_ips, is_auto_scaling_enabled].hash
466
+ [id, compartment_id, lifecycle_state, lifecycle_details, db_name, cpu_core_count, data_storage_size_in_tbs, is_dedicated, autonomous_container_database_id, time_created, display_name, service_console_url, connection_strings, connection_urls, license_model, used_data_storage_size_in_tbs, freeform_tags, defined_tags, db_version, is_preview, db_workload, whitelisted_ips, is_auto_scaling_enabled].hash
410
467
  end
411
468
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
412
469
 
@@ -0,0 +1,224 @@
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
+ # The Autonomous Database preview version.
9
+ #
10
+ # To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized, talk to an administrator. If you're an administrator who needs to write policies to give users access, see [Getting Started with Policies](https://docs.cloud.oracle.com/Content/Identity/Concepts/policygetstarted.htm).
11
+ #
12
+ class Database::Models::AutonomousDbPreviewVersionSummary
13
+ DB_WORKLOAD_ENUM = [
14
+ DB_WORKLOAD_OLTP = 'OLTP'.freeze,
15
+ DB_WORKLOAD_DW = 'DW'.freeze,
16
+ DB_WORKLOAD_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
17
+ ].freeze
18
+
19
+ # **[Required]** A valid Autonomous Database preview version.
20
+ # @return [String]
21
+ attr_accessor :version
22
+
23
+ # The date and time when the preview version availability begins.
24
+ # @return [DateTime]
25
+ attr_accessor :time_preview_begin
26
+
27
+ # The date and time when the preview version availability ends.
28
+ # @return [DateTime]
29
+ attr_accessor :time_preview_end
30
+
31
+ # The Autonomous Database workload type. OLTP indicates an Autonomous Transaction Processing database and DW indicates an Autonomous Data Warehouse database.
32
+ # @return [String]
33
+ attr_reader :db_workload
34
+
35
+ # A URL that points to a detailed description of the preview version.
36
+ # @return [String]
37
+ attr_accessor :details
38
+
39
+ # Attribute mapping from ruby-style variable name to JSON key.
40
+ def self.attribute_map
41
+ {
42
+ # rubocop:disable Style/SymbolLiteral
43
+ 'version': :'version',
44
+ 'time_preview_begin': :'timePreviewBegin',
45
+ 'time_preview_end': :'timePreviewEnd',
46
+ 'db_workload': :'dbWorkload',
47
+ 'details': :'details'
48
+ # rubocop:enable Style/SymbolLiteral
49
+ }
50
+ end
51
+
52
+ # Attribute type mapping.
53
+ def self.swagger_types
54
+ {
55
+ # rubocop:disable Style/SymbolLiteral
56
+ 'version': :'String',
57
+ 'time_preview_begin': :'DateTime',
58
+ 'time_preview_end': :'DateTime',
59
+ 'db_workload': :'String',
60
+ 'details': :'String'
61
+ # rubocop:enable Style/SymbolLiteral
62
+ }
63
+ end
64
+
65
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
66
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
67
+
68
+
69
+ # Initializes the object
70
+ # @param [Hash] attributes Model attributes in the form of hash
71
+ # @option attributes [String] :version The value to assign to the {#version} property
72
+ # @option attributes [DateTime] :time_preview_begin The value to assign to the {#time_preview_begin} property
73
+ # @option attributes [DateTime] :time_preview_end The value to assign to the {#time_preview_end} property
74
+ # @option attributes [String] :db_workload The value to assign to the {#db_workload} property
75
+ # @option attributes [String] :details The value to assign to the {#details} property
76
+ def initialize(attributes = {})
77
+ return unless attributes.is_a?(Hash)
78
+
79
+ # convert string to symbol for hash key
80
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
81
+
82
+ self.version = attributes[:'version'] if attributes[:'version']
83
+
84
+ self.time_preview_begin = attributes[:'timePreviewBegin'] if attributes[:'timePreviewBegin']
85
+
86
+ raise 'You cannot provide both :timePreviewBegin and :time_preview_begin' if attributes.key?(:'timePreviewBegin') && attributes.key?(:'time_preview_begin')
87
+
88
+ self.time_preview_begin = attributes[:'time_preview_begin'] if attributes[:'time_preview_begin']
89
+
90
+ self.time_preview_end = attributes[:'timePreviewEnd'] if attributes[:'timePreviewEnd']
91
+
92
+ raise 'You cannot provide both :timePreviewEnd and :time_preview_end' if attributes.key?(:'timePreviewEnd') && attributes.key?(:'time_preview_end')
93
+
94
+ self.time_preview_end = attributes[:'time_preview_end'] if attributes[:'time_preview_end']
95
+
96
+ self.db_workload = attributes[:'dbWorkload'] if attributes[:'dbWorkload']
97
+
98
+ raise 'You cannot provide both :dbWorkload and :db_workload' if attributes.key?(:'dbWorkload') && attributes.key?(:'db_workload')
99
+
100
+ self.db_workload = attributes[:'db_workload'] if attributes[:'db_workload']
101
+
102
+ self.details = attributes[:'details'] if attributes[:'details']
103
+ end
104
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
105
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
106
+
107
+ # Custom attribute writer method checking allowed values (enum).
108
+ # @param [Object] db_workload Object to be assigned
109
+ def db_workload=(db_workload)
110
+ # rubocop:disable Style/ConditionalAssignment
111
+ if db_workload && !DB_WORKLOAD_ENUM.include?(db_workload)
112
+ OCI.logger.debug("Unknown value for 'db_workload' [" + db_workload + "]. Mapping to 'DB_WORKLOAD_UNKNOWN_ENUM_VALUE'") if OCI.logger
113
+ @db_workload = DB_WORKLOAD_UNKNOWN_ENUM_VALUE
114
+ else
115
+ @db_workload = db_workload
116
+ end
117
+ # rubocop:enable Style/ConditionalAssignment
118
+ end
119
+
120
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
121
+
122
+
123
+ # Checks equality by comparing each attribute.
124
+ # @param [Object] other the other object to be compared
125
+ def ==(other)
126
+ return true if equal?(other)
127
+
128
+ self.class == other.class &&
129
+ version == other.version &&
130
+ time_preview_begin == other.time_preview_begin &&
131
+ time_preview_end == other.time_preview_end &&
132
+ db_workload == other.db_workload &&
133
+ details == other.details
134
+ end
135
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
136
+
137
+ # @see the `==` method
138
+ # @param [Object] other the other object to be compared
139
+ def eql?(other)
140
+ self == other
141
+ end
142
+
143
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
144
+
145
+
146
+ # Calculates hash code according to all attributes.
147
+ # @return [Fixnum] Hash code
148
+ def hash
149
+ [version, time_preview_begin, time_preview_end, db_workload, details].hash
150
+ end
151
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
152
+
153
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
154
+
155
+
156
+ # Builds the object from hash
157
+ # @param [Hash] attributes Model attributes in the form of hash
158
+ # @return [Object] Returns the model itself
159
+ def build_from_hash(attributes)
160
+ return nil unless attributes.is_a?(Hash)
161
+
162
+ self.class.swagger_types.each_pair do |key, type|
163
+ if type =~ /^Array<(.*)>/i
164
+ # check to ensure the input is an array given that the the attribute
165
+ # is documented as an array but the input is not
166
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
167
+ public_method("#{key}=").call(
168
+ attributes[self.class.attribute_map[key]]
169
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
170
+ )
171
+ end
172
+ elsif !attributes[self.class.attribute_map[key]].nil?
173
+ public_method("#{key}=").call(
174
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
175
+ )
176
+ end
177
+ # or else data not found in attributes(hash), not an issue as the data can be optional
178
+ end
179
+
180
+ self
181
+ end
182
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
183
+
184
+ # Returns the string representation of the object
185
+ # @return [String] String presentation of the object
186
+ def to_s
187
+ to_hash.to_s
188
+ end
189
+
190
+ # Returns the object in the form of hash
191
+ # @return [Hash] Returns the object in the form of hash
192
+ def to_hash
193
+ hash = {}
194
+ self.class.attribute_map.each_pair do |attr, param|
195
+ value = public_method(attr).call
196
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
197
+
198
+ hash[param] = _to_hash(value)
199
+ end
200
+ hash
201
+ end
202
+
203
+ private
204
+
205
+ # Outputs non-array value in the form of hash
206
+ # For object, use to_hash. Otherwise, just return the value
207
+ # @param [Object] value Any valid value
208
+ # @return [Hash] Returns the value in the form of hash
209
+ def _to_hash(value)
210
+ if value.is_a?(Array)
211
+ value.compact.map { |v| _to_hash(v) }
212
+ elsif value.is_a?(Hash)
213
+ {}.tap do |hash|
214
+ value.each { |k, v| hash[k] = _to_hash(v) }
215
+ end
216
+ elsif value.respond_to? :to_hash
217
+ value.to_hash
218
+ else
219
+ value
220
+ end
221
+ end
222
+ end
223
+ end
224
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,419 @@
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
+ # AutonomousExadataInfrastructure model.
9
+ class Database::Models::AutonomousExadataInfrastructure
10
+ LIFECYCLE_STATE_ENUM = [
11
+ LIFECYCLE_STATE_PROVISIONING = 'PROVISIONING'.freeze,
12
+ LIFECYCLE_STATE_AVAILABLE = 'AVAILABLE'.freeze,
13
+ LIFECYCLE_STATE_UPDATING = 'UPDATING'.freeze,
14
+ LIFECYCLE_STATE_TERMINATING = 'TERMINATING'.freeze,
15
+ LIFECYCLE_STATE_TERMINATED = 'TERMINATED'.freeze,
16
+ LIFECYCLE_STATE_FAILED = 'FAILED'.freeze,
17
+ LIFECYCLE_STATE_MAINTENANCE_IN_PROGRESS = 'MAINTENANCE_IN_PROGRESS'.freeze,
18
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
19
+ ].freeze
20
+
21
+ LICENSE_MODEL_ENUM = [
22
+ LICENSE_MODEL_LICENSE_INCLUDED = 'LICENSE_INCLUDED'.freeze,
23
+ LICENSE_MODEL_BRING_YOUR_OWN_LICENSE = 'BRING_YOUR_OWN_LICENSE'.freeze,
24
+ LICENSE_MODEL_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
25
+ ].freeze
26
+
27
+ # **[Required]** The OCID of the Autonomous Exadata Infrastructure.
28
+ # @return [String]
29
+ attr_accessor :id
30
+
31
+ # **[Required]** The OCID of the compartment.
32
+ # @return [String]
33
+ attr_accessor :compartment_id
34
+
35
+ # **[Required]** The user-friendly name for the Autonomous Exadata Infrastructure.
36
+ # @return [String]
37
+ attr_accessor :display_name
38
+
39
+ # **[Required]** The name of the availability domain that the Autonomous Exadata Infrastructure is located in.
40
+ # @return [String]
41
+ attr_accessor :availability_domain
42
+
43
+ # **[Required]** The OCID of the subnet the Autonomous Exadata Infrastructure is associated with.
44
+ #
45
+ # **Subnet Restrictions:**
46
+ # - For Autonomous Databases with Autonomous Exadata Infrastructure, do not use a subnet that overlaps with 192.168.128.0/20
47
+ #
48
+ # These subnets are used by the Oracle Clusterware private interconnect on the database instance.
49
+ # Specifying an overlapping subnet will cause the private interconnect to malfunction.
50
+ # This restriction applies to both the client subnet and backup subnet.
51
+ #
52
+ # @return [String]
53
+ attr_accessor :subnet_id
54
+
55
+ # **[Required]** The shape of the Autonomous Exadata Infrastructure. The shape determines resources to allocate to the Autonomous Exadata Infrastructure (CPU cores, memory and storage).
56
+ # @return [String]
57
+ attr_accessor :shape
58
+
59
+ # **[Required]** The host name for the Autonomous Exadata Infrastructure node.
60
+ # @return [String]
61
+ attr_accessor :hostname
62
+
63
+ # **[Required]** The domain name for the Autonomous Exadata Infrastructure.
64
+ # @return [String]
65
+ attr_accessor :domain
66
+
67
+ # **[Required]** The current lifecycle state of the Autonomous Exadata Infrastructure.
68
+ # @return [String]
69
+ attr_reader :lifecycle_state
70
+
71
+ # Additional information about the current lifecycle state of the Autonomous Exadata Infrastructure.
72
+ # @return [String]
73
+ attr_accessor :lifecycle_details
74
+
75
+ # The Oracle license model that applies to all databases in the Autonomous Exadata Infrastructure. The default is BRING_YOUR_OWN_LICENSE.
76
+ #
77
+ # @return [String]
78
+ attr_reader :license_model
79
+
80
+ # The date and time the Autonomous Exadata Infrastructure was created.
81
+ # @return [DateTime]
82
+ attr_accessor :time_created
83
+
84
+ # This attribute is required.
85
+ # @return [OCI::Database::Models::MaintenanceWindow]
86
+ attr_accessor :maintenance_window
87
+
88
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the last maintenance run.
89
+ # @return [String]
90
+ attr_accessor :last_maintenance_run_id
91
+
92
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the next maintenance run.
93
+ # @return [String]
94
+ attr_accessor :next_maintenance_run_id
95
+
96
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
97
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
98
+ #
99
+ # Example: `{\"Department\": \"Finance\"}`
100
+ #
101
+ # @return [Hash<String, String>]
102
+ attr_accessor :freeform_tags
103
+
104
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
105
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
106
+ #
107
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
108
+ #
109
+ # @return [Hash<String, Hash<String, Object>>]
110
+ attr_accessor :defined_tags
111
+
112
+ # Attribute mapping from ruby-style variable name to JSON key.
113
+ def self.attribute_map
114
+ {
115
+ # rubocop:disable Style/SymbolLiteral
116
+ 'id': :'id',
117
+ 'compartment_id': :'compartmentId',
118
+ 'display_name': :'displayName',
119
+ 'availability_domain': :'availabilityDomain',
120
+ 'subnet_id': :'subnetId',
121
+ 'shape': :'shape',
122
+ 'hostname': :'hostname',
123
+ 'domain': :'domain',
124
+ 'lifecycle_state': :'lifecycleState',
125
+ 'lifecycle_details': :'lifecycleDetails',
126
+ 'license_model': :'licenseModel',
127
+ 'time_created': :'timeCreated',
128
+ 'maintenance_window': :'maintenanceWindow',
129
+ 'last_maintenance_run_id': :'lastMaintenanceRunId',
130
+ 'next_maintenance_run_id': :'nextMaintenanceRunId',
131
+ 'freeform_tags': :'freeformTags',
132
+ 'defined_tags': :'definedTags'
133
+ # rubocop:enable Style/SymbolLiteral
134
+ }
135
+ end
136
+
137
+ # Attribute type mapping.
138
+ def self.swagger_types
139
+ {
140
+ # rubocop:disable Style/SymbolLiteral
141
+ 'id': :'String',
142
+ 'compartment_id': :'String',
143
+ 'display_name': :'String',
144
+ 'availability_domain': :'String',
145
+ 'subnet_id': :'String',
146
+ 'shape': :'String',
147
+ 'hostname': :'String',
148
+ 'domain': :'String',
149
+ 'lifecycle_state': :'String',
150
+ 'lifecycle_details': :'String',
151
+ 'license_model': :'String',
152
+ 'time_created': :'DateTime',
153
+ 'maintenance_window': :'OCI::Database::Models::MaintenanceWindow',
154
+ 'last_maintenance_run_id': :'String',
155
+ 'next_maintenance_run_id': :'String',
156
+ 'freeform_tags': :'Hash<String, String>',
157
+ 'defined_tags': :'Hash<String, Hash<String, Object>>'
158
+ # rubocop:enable Style/SymbolLiteral
159
+ }
160
+ end
161
+
162
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
163
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
164
+
165
+
166
+ # Initializes the object
167
+ # @param [Hash] attributes Model attributes in the form of hash
168
+ # @option attributes [String] :id The value to assign to the {#id} property
169
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
170
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
171
+ # @option attributes [String] :availability_domain The value to assign to the {#availability_domain} property
172
+ # @option attributes [String] :subnet_id The value to assign to the {#subnet_id} property
173
+ # @option attributes [String] :shape The value to assign to the {#shape} property
174
+ # @option attributes [String] :hostname The value to assign to the {#hostname} property
175
+ # @option attributes [String] :domain The value to assign to the {#domain} property
176
+ # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
177
+ # @option attributes [String] :lifecycle_details The value to assign to the {#lifecycle_details} property
178
+ # @option attributes [String] :license_model The value to assign to the {#license_model} property
179
+ # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
180
+ # @option attributes [OCI::Database::Models::MaintenanceWindow] :maintenance_window The value to assign to the {#maintenance_window} property
181
+ # @option attributes [String] :last_maintenance_run_id The value to assign to the {#last_maintenance_run_id} property
182
+ # @option attributes [String] :next_maintenance_run_id The value to assign to the {#next_maintenance_run_id} property
183
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
184
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
185
+ def initialize(attributes = {})
186
+ return unless attributes.is_a?(Hash)
187
+
188
+ self.id = attributes[:'id'] if attributes[:'id']
189
+
190
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
191
+
192
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
193
+
194
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
195
+
196
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
197
+
198
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
199
+
200
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
201
+
202
+ self.availability_domain = attributes[:'availabilityDomain'] if attributes[:'availabilityDomain']
203
+
204
+ raise 'You cannot provide both :availabilityDomain and :availability_domain' if attributes.key?(:'availabilityDomain') && attributes.key?(:'availability_domain')
205
+
206
+ self.availability_domain = attributes[:'availability_domain'] if attributes[:'availability_domain']
207
+
208
+ self.subnet_id = attributes[:'subnetId'] if attributes[:'subnetId']
209
+
210
+ raise 'You cannot provide both :subnetId and :subnet_id' if attributes.key?(:'subnetId') && attributes.key?(:'subnet_id')
211
+
212
+ self.subnet_id = attributes[:'subnet_id'] if attributes[:'subnet_id']
213
+
214
+ self.shape = attributes[:'shape'] if attributes[:'shape']
215
+
216
+ self.hostname = attributes[:'hostname'] if attributes[:'hostname']
217
+
218
+ self.domain = attributes[:'domain'] if attributes[:'domain']
219
+
220
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
221
+
222
+ raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
223
+
224
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
225
+
226
+ self.lifecycle_details = attributes[:'lifecycleDetails'] if attributes[:'lifecycleDetails']
227
+
228
+ raise 'You cannot provide both :lifecycleDetails and :lifecycle_details' if attributes.key?(:'lifecycleDetails') && attributes.key?(:'lifecycle_details')
229
+
230
+ self.lifecycle_details = attributes[:'lifecycle_details'] if attributes[:'lifecycle_details']
231
+
232
+ self.license_model = attributes[:'licenseModel'] if attributes[:'licenseModel']
233
+
234
+ raise 'You cannot provide both :licenseModel and :license_model' if attributes.key?(:'licenseModel') && attributes.key?(:'license_model')
235
+
236
+ self.license_model = attributes[:'license_model'] if attributes[:'license_model']
237
+
238
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
239
+
240
+ raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
241
+
242
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
243
+
244
+ self.maintenance_window = attributes[:'maintenanceWindow'] if attributes[:'maintenanceWindow']
245
+
246
+ raise 'You cannot provide both :maintenanceWindow and :maintenance_window' if attributes.key?(:'maintenanceWindow') && attributes.key?(:'maintenance_window')
247
+
248
+ self.maintenance_window = attributes[:'maintenance_window'] if attributes[:'maintenance_window']
249
+
250
+ self.last_maintenance_run_id = attributes[:'lastMaintenanceRunId'] if attributes[:'lastMaintenanceRunId']
251
+
252
+ raise 'You cannot provide both :lastMaintenanceRunId and :last_maintenance_run_id' if attributes.key?(:'lastMaintenanceRunId') && attributes.key?(:'last_maintenance_run_id')
253
+
254
+ self.last_maintenance_run_id = attributes[:'last_maintenance_run_id'] if attributes[:'last_maintenance_run_id']
255
+
256
+ self.next_maintenance_run_id = attributes[:'nextMaintenanceRunId'] if attributes[:'nextMaintenanceRunId']
257
+
258
+ raise 'You cannot provide both :nextMaintenanceRunId and :next_maintenance_run_id' if attributes.key?(:'nextMaintenanceRunId') && attributes.key?(:'next_maintenance_run_id')
259
+
260
+ self.next_maintenance_run_id = attributes[:'next_maintenance_run_id'] if attributes[:'next_maintenance_run_id']
261
+
262
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
263
+
264
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
265
+
266
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
267
+
268
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
269
+
270
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
271
+
272
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
273
+ end
274
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
275
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
276
+
277
+ # Custom attribute writer method checking allowed values (enum).
278
+ # @param [Object] lifecycle_state Object to be assigned
279
+ def lifecycle_state=(lifecycle_state)
280
+ # rubocop:disable Style/ConditionalAssignment
281
+ if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
282
+ OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger
283
+ @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
284
+ else
285
+ @lifecycle_state = lifecycle_state
286
+ end
287
+ # rubocop:enable Style/ConditionalAssignment
288
+ end
289
+
290
+ # Custom attribute writer method checking allowed values (enum).
291
+ # @param [Object] license_model Object to be assigned
292
+ def license_model=(license_model)
293
+ # rubocop:disable Style/ConditionalAssignment
294
+ if license_model && !LICENSE_MODEL_ENUM.include?(license_model)
295
+ OCI.logger.debug("Unknown value for 'license_model' [" + license_model + "]. Mapping to 'LICENSE_MODEL_UNKNOWN_ENUM_VALUE'") if OCI.logger
296
+ @license_model = LICENSE_MODEL_UNKNOWN_ENUM_VALUE
297
+ else
298
+ @license_model = license_model
299
+ end
300
+ # rubocop:enable Style/ConditionalAssignment
301
+ end
302
+
303
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
304
+
305
+
306
+ # Checks equality by comparing each attribute.
307
+ # @param [Object] other the other object to be compared
308
+ def ==(other)
309
+ return true if equal?(other)
310
+
311
+ self.class == other.class &&
312
+ id == other.id &&
313
+ compartment_id == other.compartment_id &&
314
+ display_name == other.display_name &&
315
+ availability_domain == other.availability_domain &&
316
+ subnet_id == other.subnet_id &&
317
+ shape == other.shape &&
318
+ hostname == other.hostname &&
319
+ domain == other.domain &&
320
+ lifecycle_state == other.lifecycle_state &&
321
+ lifecycle_details == other.lifecycle_details &&
322
+ license_model == other.license_model &&
323
+ time_created == other.time_created &&
324
+ maintenance_window == other.maintenance_window &&
325
+ last_maintenance_run_id == other.last_maintenance_run_id &&
326
+ next_maintenance_run_id == other.next_maintenance_run_id &&
327
+ freeform_tags == other.freeform_tags &&
328
+ defined_tags == other.defined_tags
329
+ end
330
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
331
+
332
+ # @see the `==` method
333
+ # @param [Object] other the other object to be compared
334
+ def eql?(other)
335
+ self == other
336
+ end
337
+
338
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
339
+
340
+
341
+ # Calculates hash code according to all attributes.
342
+ # @return [Fixnum] Hash code
343
+ def hash
344
+ [id, compartment_id, display_name, availability_domain, subnet_id, shape, hostname, domain, lifecycle_state, lifecycle_details, license_model, time_created, maintenance_window, last_maintenance_run_id, next_maintenance_run_id, freeform_tags, defined_tags].hash
345
+ end
346
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
347
+
348
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
349
+
350
+
351
+ # Builds the object from hash
352
+ # @param [Hash] attributes Model attributes in the form of hash
353
+ # @return [Object] Returns the model itself
354
+ def build_from_hash(attributes)
355
+ return nil unless attributes.is_a?(Hash)
356
+
357
+ self.class.swagger_types.each_pair do |key, type|
358
+ if type =~ /^Array<(.*)>/i
359
+ # check to ensure the input is an array given that the the attribute
360
+ # is documented as an array but the input is not
361
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
362
+ public_method("#{key}=").call(
363
+ attributes[self.class.attribute_map[key]]
364
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
365
+ )
366
+ end
367
+ elsif !attributes[self.class.attribute_map[key]].nil?
368
+ public_method("#{key}=").call(
369
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
370
+ )
371
+ end
372
+ # or else data not found in attributes(hash), not an issue as the data can be optional
373
+ end
374
+
375
+ self
376
+ end
377
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
378
+
379
+ # Returns the string representation of the object
380
+ # @return [String] String presentation of the object
381
+ def to_s
382
+ to_hash.to_s
383
+ end
384
+
385
+ # Returns the object in the form of hash
386
+ # @return [Hash] Returns the object in the form of hash
387
+ def to_hash
388
+ hash = {}
389
+ self.class.attribute_map.each_pair do |attr, param|
390
+ value = public_method(attr).call
391
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
392
+
393
+ hash[param] = _to_hash(value)
394
+ end
395
+ hash
396
+ end
397
+
398
+ private
399
+
400
+ # Outputs non-array value in the form of hash
401
+ # For object, use to_hash. Otherwise, just return the value
402
+ # @param [Object] value Any valid value
403
+ # @return [Hash] Returns the value in the form of hash
404
+ def _to_hash(value)
405
+ if value.is_a?(Array)
406
+ value.compact.map { |v| _to_hash(v) }
407
+ elsif value.is_a?(Hash)
408
+ {}.tap do |hash|
409
+ value.each { |k, v| hash[k] = _to_hash(v) }
410
+ end
411
+ elsif value.respond_to? :to_hash
412
+ value.to_hash
413
+ else
414
+ value
415
+ end
416
+ end
417
+ end
418
+ end
419
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength