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,304 @@
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
+ # Describes the input parameters to launch a new Autonomous Exadata Infrastructure.
8
+ #
9
+ class Database::Models::LaunchAutonomousExadataInfrastructureDetails
10
+ LICENSE_MODEL_ENUM = [
11
+ LICENSE_MODEL_LICENSE_INCLUDED = 'LICENSE_INCLUDED'.freeze,
12
+ LICENSE_MODEL_BRING_YOUR_OWN_LICENSE = 'BRING_YOUR_OWN_LICENSE'.freeze
13
+ ].freeze
14
+
15
+ # **[Required]** The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the compartment the Autonomous Exadata Infrastructure belongs in.
16
+ # @return [String]
17
+ attr_accessor :compartment_id
18
+
19
+ # The user-friendly name for the Autonomous Exadata Infrastructure. It does not have to be unique.
20
+ # @return [String]
21
+ attr_accessor :display_name
22
+
23
+ # **[Required]** The availability domain where the Autonomous Exadata Infrastructure is located.
24
+ # @return [String]
25
+ attr_accessor :availability_domain
26
+
27
+ # **[Required]** The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the subnet the Autonomous Exadata Infrastructure is associated with.
28
+ #
29
+ # **Subnet Restrictions:**
30
+ # - For Autonomous Exadata Infrastructures, do not use a subnet that overlaps with 192.168.128.0/20
31
+ #
32
+ # These subnets are used by the Oracle Clusterware private interconnect on the database instance.
33
+ # Specifying an overlapping subnet will cause the private interconnect to malfunction.
34
+ # This restriction applies to both the client subnet and backup subnet.
35
+ #
36
+ # @return [String]
37
+ attr_accessor :subnet_id
38
+
39
+ # **[Required]** The shape of the Autonomous Exadata Infrastructure. The shape determines resources allocated to the Autonomous Exadata Infrastructure (CPU cores, memory and storage). To get a list of shapes, use the ListDbSystemShapes operation.
40
+ # @return [String]
41
+ attr_accessor :shape
42
+
43
+ # A domain name used for the Autonomous Exadata Infrastructure. If the Oracle-provided Internet and VCN
44
+ # Resolver is enabled for the specified subnet, the domain name for the subnet is used
45
+ # (don't provide one). Otherwise, provide a valid DNS domain name. Hyphens (-) are not permitted.
46
+ #
47
+ # @return [String]
48
+ attr_accessor :domain
49
+
50
+ # The Oracle license model that applies to all the databases in the Autonomous Exadata Infrastructure. The default is BRING_YOUR_OWN_LICENSE.
51
+ #
52
+ # @return [String]
53
+ attr_reader :license_model
54
+
55
+ # @return [OCI::Database::Models::MaintenanceWindow]
56
+ attr_accessor :maintenance_window_details
57
+
58
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
59
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
60
+ #
61
+ # Example: `{\"Department\": \"Finance\"}`
62
+ #
63
+ # @return [Hash<String, String>]
64
+ attr_accessor :freeform_tags
65
+
66
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
67
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
68
+ #
69
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
70
+ #
71
+ # @return [Hash<String, Hash<String, Object>>]
72
+ attr_accessor :defined_tags
73
+
74
+ # Attribute mapping from ruby-style variable name to JSON key.
75
+ def self.attribute_map
76
+ {
77
+ # rubocop:disable Style/SymbolLiteral
78
+ 'compartment_id': :'compartmentId',
79
+ 'display_name': :'displayName',
80
+ 'availability_domain': :'availabilityDomain',
81
+ 'subnet_id': :'subnetId',
82
+ 'shape': :'shape',
83
+ 'domain': :'domain',
84
+ 'license_model': :'licenseModel',
85
+ 'maintenance_window_details': :'maintenanceWindowDetails',
86
+ 'freeform_tags': :'freeformTags',
87
+ 'defined_tags': :'definedTags'
88
+ # rubocop:enable Style/SymbolLiteral
89
+ }
90
+ end
91
+
92
+ # Attribute type mapping.
93
+ def self.swagger_types
94
+ {
95
+ # rubocop:disable Style/SymbolLiteral
96
+ 'compartment_id': :'String',
97
+ 'display_name': :'String',
98
+ 'availability_domain': :'String',
99
+ 'subnet_id': :'String',
100
+ 'shape': :'String',
101
+ 'domain': :'String',
102
+ 'license_model': :'String',
103
+ 'maintenance_window_details': :'OCI::Database::Models::MaintenanceWindow',
104
+ 'freeform_tags': :'Hash<String, String>',
105
+ 'defined_tags': :'Hash<String, Hash<String, Object>>'
106
+ # rubocop:enable Style/SymbolLiteral
107
+ }
108
+ end
109
+
110
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
111
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
112
+
113
+
114
+ # Initializes the object
115
+ # @param [Hash] attributes Model attributes in the form of hash
116
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
117
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
118
+ # @option attributes [String] :availability_domain The value to assign to the {#availability_domain} property
119
+ # @option attributes [String] :subnet_id The value to assign to the {#subnet_id} property
120
+ # @option attributes [String] :shape The value to assign to the {#shape} property
121
+ # @option attributes [String] :domain The value to assign to the {#domain} property
122
+ # @option attributes [String] :license_model The value to assign to the {#license_model} property
123
+ # @option attributes [OCI::Database::Models::MaintenanceWindow] :maintenance_window_details The value to assign to the {#maintenance_window_details} property
124
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
125
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
126
+ def initialize(attributes = {})
127
+ return unless attributes.is_a?(Hash)
128
+
129
+ # convert string to symbol for hash key
130
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
131
+
132
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
133
+
134
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
135
+
136
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
137
+
138
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
139
+
140
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
141
+
142
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
143
+
144
+ self.availability_domain = attributes[:'availabilityDomain'] if attributes[:'availabilityDomain']
145
+
146
+ raise 'You cannot provide both :availabilityDomain and :availability_domain' if attributes.key?(:'availabilityDomain') && attributes.key?(:'availability_domain')
147
+
148
+ self.availability_domain = attributes[:'availability_domain'] if attributes[:'availability_domain']
149
+
150
+ self.subnet_id = attributes[:'subnetId'] if attributes[:'subnetId']
151
+
152
+ raise 'You cannot provide both :subnetId and :subnet_id' if attributes.key?(:'subnetId') && attributes.key?(:'subnet_id')
153
+
154
+ self.subnet_id = attributes[:'subnet_id'] if attributes[:'subnet_id']
155
+
156
+ self.shape = attributes[:'shape'] if attributes[:'shape']
157
+
158
+ self.domain = attributes[:'domain'] if attributes[:'domain']
159
+
160
+ self.license_model = attributes[:'licenseModel'] if attributes[:'licenseModel']
161
+
162
+ raise 'You cannot provide both :licenseModel and :license_model' if attributes.key?(:'licenseModel') && attributes.key?(:'license_model')
163
+
164
+ self.license_model = attributes[:'license_model'] if attributes[:'license_model']
165
+
166
+ self.maintenance_window_details = attributes[:'maintenanceWindowDetails'] if attributes[:'maintenanceWindowDetails']
167
+
168
+ raise 'You cannot provide both :maintenanceWindowDetails and :maintenance_window_details' if attributes.key?(:'maintenanceWindowDetails') && attributes.key?(:'maintenance_window_details')
169
+
170
+ self.maintenance_window_details = attributes[:'maintenance_window_details'] if attributes[:'maintenance_window_details']
171
+
172
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
173
+
174
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
175
+
176
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
177
+
178
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
179
+
180
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
181
+
182
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
183
+ end
184
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
185
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
186
+
187
+ # Custom attribute writer method checking allowed values (enum).
188
+ # @param [Object] license_model Object to be assigned
189
+ def license_model=(license_model)
190
+ raise "Invalid value for 'license_model': this must be one of the values in LICENSE_MODEL_ENUM." if license_model && !LICENSE_MODEL_ENUM.include?(license_model)
191
+
192
+ @license_model = license_model
193
+ end
194
+
195
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
196
+
197
+
198
+ # Checks equality by comparing each attribute.
199
+ # @param [Object] other the other object to be compared
200
+ def ==(other)
201
+ return true if equal?(other)
202
+
203
+ self.class == other.class &&
204
+ compartment_id == other.compartment_id &&
205
+ display_name == other.display_name &&
206
+ availability_domain == other.availability_domain &&
207
+ subnet_id == other.subnet_id &&
208
+ shape == other.shape &&
209
+ domain == other.domain &&
210
+ license_model == other.license_model &&
211
+ maintenance_window_details == other.maintenance_window_details &&
212
+ freeform_tags == other.freeform_tags &&
213
+ defined_tags == other.defined_tags
214
+ end
215
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
216
+
217
+ # @see the `==` method
218
+ # @param [Object] other the other object to be compared
219
+ def eql?(other)
220
+ self == other
221
+ end
222
+
223
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
224
+
225
+
226
+ # Calculates hash code according to all attributes.
227
+ # @return [Fixnum] Hash code
228
+ def hash
229
+ [compartment_id, display_name, availability_domain, subnet_id, shape, domain, license_model, maintenance_window_details, freeform_tags, defined_tags].hash
230
+ end
231
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
232
+
233
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
234
+
235
+
236
+ # Builds the object from hash
237
+ # @param [Hash] attributes Model attributes in the form of hash
238
+ # @return [Object] Returns the model itself
239
+ def build_from_hash(attributes)
240
+ return nil unless attributes.is_a?(Hash)
241
+
242
+ self.class.swagger_types.each_pair do |key, type|
243
+ if type =~ /^Array<(.*)>/i
244
+ # check to ensure the input is an array given that the the attribute
245
+ # is documented as an array but the input is not
246
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
247
+ public_method("#{key}=").call(
248
+ attributes[self.class.attribute_map[key]]
249
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
250
+ )
251
+ end
252
+ elsif !attributes[self.class.attribute_map[key]].nil?
253
+ public_method("#{key}=").call(
254
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
255
+ )
256
+ end
257
+ # or else data not found in attributes(hash), not an issue as the data can be optional
258
+ end
259
+
260
+ self
261
+ end
262
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
263
+
264
+ # Returns the string representation of the object
265
+ # @return [String] String presentation of the object
266
+ def to_s
267
+ to_hash.to_s
268
+ end
269
+
270
+ # Returns the object in the form of hash
271
+ # @return [Hash] Returns the object in the form of hash
272
+ def to_hash
273
+ hash = {}
274
+ self.class.attribute_map.each_pair do |attr, param|
275
+ value = public_method(attr).call
276
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
277
+
278
+ hash[param] = _to_hash(value)
279
+ end
280
+ hash
281
+ end
282
+
283
+ private
284
+
285
+ # Outputs non-array value in the form of hash
286
+ # For object, use to_hash. Otherwise, just return the value
287
+ # @param [Object] value Any valid value
288
+ # @return [Hash] Returns the value in the form of hash
289
+ def _to_hash(value)
290
+ if value.is_a?(Array)
291
+ value.compact.map { |v| _to_hash(v) }
292
+ elsif value.is_a?(Hash)
293
+ {}.tap do |hash|
294
+ value.each { |k, v| hash[k] = _to_hash(v) }
295
+ end
296
+ elsif value.respond_to? :to_hash
297
+ value.to_hash
298
+ else
299
+ value
300
+ end
301
+ end
302
+ end
303
+ end
304
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -68,6 +68,19 @@ module OCI
68
68
  # @return [String]
69
69
  attr_accessor :backup_subnet_id
70
70
 
71
+ # The list of Network Security Group [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) associated with this DB system.
72
+ # A maximum of 5 allowed.
73
+ #
74
+ # @return [Array<String>]
75
+ attr_accessor :nsg_ids
76
+
77
+ # The list of Network Security Group [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) associated with the backup network of this DB system.
78
+ # Applicable only to Exadata DB systems.
79
+ # A maximum of 5 allowed.
80
+ #
81
+ # @return [Array<String>]
82
+ attr_accessor :backup_network_nsg_ids
83
+
71
84
  # **[Required]** The shape of the DB system. The shape determines resources allocated to the DB system.
72
85
  # - For virtual machine shapes, the number of CPU cores and memory
73
86
  # - For bare metal and Exadata shapes, the number of CPU cores, memory, and storage
@@ -164,7 +177,7 @@ module OCI
164
177
  attr_accessor :defined_tags
165
178
 
166
179
  # The source of the database:
167
- # NONE for creating a new database. DB_BACKUP for creating a new database by restoring from a backup. The default is NONE.
180
+ # NONE for creating a new database. DB_BACKUP for creating a new database by restoring from a backup. The default is NONE.
168
181
  #
169
182
  # @return [String]
170
183
  attr_reader :source
@@ -179,6 +192,8 @@ module OCI
179
192
  'availability_domain': :'availabilityDomain',
180
193
  'subnet_id': :'subnetId',
181
194
  'backup_subnet_id': :'backupSubnetId',
195
+ 'nsg_ids': :'nsgIds',
196
+ 'backup_network_nsg_ids': :'backupNetworkNsgIds',
182
197
  'shape': :'shape',
183
198
  'time_zone': :'timeZone',
184
199
  'sparse_diskgroup': :'sparseDiskgroup',
@@ -207,6 +222,8 @@ module OCI
207
222
  'availability_domain': :'String',
208
223
  'subnet_id': :'String',
209
224
  'backup_subnet_id': :'String',
225
+ 'nsg_ids': :'Array<String>',
226
+ 'backup_network_nsg_ids': :'Array<String>',
210
227
  'shape': :'String',
211
228
  'time_zone': :'String',
212
229
  'sparse_diskgroup': :'BOOLEAN',
@@ -253,6 +270,8 @@ module OCI
253
270
  # @option attributes [String] :availability_domain The value to assign to the {#availability_domain} property
254
271
  # @option attributes [String] :subnet_id The value to assign to the {#subnet_id} property
255
272
  # @option attributes [String] :backup_subnet_id The value to assign to the {#backup_subnet_id} property
273
+ # @option attributes [Array<String>] :nsg_ids The value to assign to the {#nsg_ids} property
274
+ # @option attributes [Array<String>] :backup_network_nsg_ids The value to assign to the {#backup_network_nsg_ids} property
256
275
  # @option attributes [String] :shape The value to assign to the {#shape} property
257
276
  # @option attributes [String] :time_zone The value to assign to the {#time_zone} property
258
277
  # @option attributes [BOOLEAN] :sparse_diskgroup The value to assign to the {#sparse_diskgroup} property
@@ -309,6 +328,18 @@ module OCI
309
328
 
310
329
  self.backup_subnet_id = attributes[:'backup_subnet_id'] if attributes[:'backup_subnet_id']
311
330
 
331
+ self.nsg_ids = attributes[:'nsgIds'] if attributes[:'nsgIds']
332
+
333
+ raise 'You cannot provide both :nsgIds and :nsg_ids' if attributes.key?(:'nsgIds') && attributes.key?(:'nsg_ids')
334
+
335
+ self.nsg_ids = attributes[:'nsg_ids'] if attributes[:'nsg_ids']
336
+
337
+ self.backup_network_nsg_ids = attributes[:'backupNetworkNsgIds'] if attributes[:'backupNetworkNsgIds']
338
+
339
+ raise 'You cannot provide both :backupNetworkNsgIds and :backup_network_nsg_ids' if attributes.key?(:'backupNetworkNsgIds') && attributes.key?(:'backup_network_nsg_ids')
340
+
341
+ self.backup_network_nsg_ids = attributes[:'backup_network_nsg_ids'] if attributes[:'backup_network_nsg_ids']
342
+
312
343
  self.shape = attributes[:'shape'] if attributes[:'shape']
313
344
 
314
345
  self.time_zone = attributes[:'timeZone'] if attributes[:'timeZone']
@@ -404,6 +435,8 @@ module OCI
404
435
  availability_domain == other.availability_domain &&
405
436
  subnet_id == other.subnet_id &&
406
437
  backup_subnet_id == other.backup_subnet_id &&
438
+ nsg_ids == other.nsg_ids &&
439
+ backup_network_nsg_ids == other.backup_network_nsg_ids &&
407
440
  shape == other.shape &&
408
441
  time_zone == other.time_zone &&
409
442
  sparse_diskgroup == other.sparse_diskgroup &&
@@ -433,7 +466,7 @@ module OCI
433
466
  # Calculates hash code according to all attributes.
434
467
  # @return [Fixnum] Hash code
435
468
  def hash
436
- [compartment_id, fault_domains, display_name, availability_domain, subnet_id, backup_subnet_id, shape, time_zone, sparse_diskgroup, ssh_public_keys, hostname, domain, cpu_core_count, cluster_name, data_storage_percentage, initial_data_storage_size_in_gb, node_count, freeform_tags, defined_tags, source].hash
469
+ [compartment_id, fault_domains, display_name, availability_domain, subnet_id, backup_subnet_id, nsg_ids, backup_network_nsg_ids, shape, time_zone, sparse_diskgroup, ssh_public_keys, hostname, domain, cpu_core_count, cluster_name, data_storage_percentage, initial_data_storage_size_in_gb, node_count, freeform_tags, defined_tags, source].hash
437
470
  end
438
471
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
439
472
 
@@ -5,7 +5,8 @@ require_relative 'launch_db_system_base'
5
5
 
6
6
  # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
7
7
  module OCI
8
- # LaunchDbSystemDetails model.
8
+ # Used for creating a new DB system. Does not use backups or an existing database for the creation of the initial database.
9
+ #
9
10
  class Database::Models::LaunchDbSystemDetails < Database::Models::LaunchDbSystemBase
10
11
  DATABASE_EDITION_ENUM = [
11
12
  DATABASE_EDITION_STANDARD_EDITION = 'STANDARD_EDITION'.freeze,
@@ -56,6 +57,8 @@ module OCI
56
57
  'availability_domain': :'availabilityDomain',
57
58
  'subnet_id': :'subnetId',
58
59
  'backup_subnet_id': :'backupSubnetId',
60
+ 'nsg_ids': :'nsgIds',
61
+ 'backup_network_nsg_ids': :'backupNetworkNsgIds',
59
62
  'shape': :'shape',
60
63
  'time_zone': :'timeZone',
61
64
  'sparse_diskgroup': :'sparseDiskgroup',
@@ -88,6 +91,8 @@ module OCI
88
91
  'availability_domain': :'String',
89
92
  'subnet_id': :'String',
90
93
  'backup_subnet_id': :'String',
94
+ 'nsg_ids': :'Array<String>',
95
+ 'backup_network_nsg_ids': :'Array<String>',
91
96
  'shape': :'String',
92
97
  'time_zone': :'String',
93
98
  'sparse_diskgroup': :'BOOLEAN',
@@ -122,6 +127,8 @@ module OCI
122
127
  # @option attributes [String] :availability_domain The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#availability_domain #availability_domain} proprety
123
128
  # @option attributes [String] :subnet_id The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#subnet_id #subnet_id} proprety
124
129
  # @option attributes [String] :backup_subnet_id The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#backup_subnet_id #backup_subnet_id} proprety
130
+ # @option attributes [Array<String>] :nsg_ids The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#nsg_ids #nsg_ids} proprety
131
+ # @option attributes [Array<String>] :backup_network_nsg_ids The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#backup_network_nsg_ids #backup_network_nsg_ids} proprety
125
132
  # @option attributes [String] :shape The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#shape #shape} proprety
126
133
  # @option attributes [String] :time_zone The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#time_zone #time_zone} proprety
127
134
  # @option attributes [BOOLEAN] :sparse_diskgroup The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#sparse_diskgroup #sparse_diskgroup} proprety
@@ -215,6 +222,8 @@ module OCI
215
222
  availability_domain == other.availability_domain &&
216
223
  subnet_id == other.subnet_id &&
217
224
  backup_subnet_id == other.backup_subnet_id &&
225
+ nsg_ids == other.nsg_ids &&
226
+ backup_network_nsg_ids == other.backup_network_nsg_ids &&
218
227
  shape == other.shape &&
219
228
  time_zone == other.time_zone &&
220
229
  sparse_diskgroup == other.sparse_diskgroup &&
@@ -248,7 +257,7 @@ module OCI
248
257
  # Calculates hash code according to all attributes.
249
258
  # @return [Fixnum] Hash code
250
259
  def hash
251
- [compartment_id, fault_domains, display_name, availability_domain, subnet_id, backup_subnet_id, shape, time_zone, sparse_diskgroup, ssh_public_keys, hostname, domain, cpu_core_count, cluster_name, data_storage_percentage, initial_data_storage_size_in_gb, node_count, freeform_tags, defined_tags, source, db_home, database_edition, disk_redundancy, license_model].hash
260
+ [compartment_id, fault_domains, display_name, availability_domain, subnet_id, backup_subnet_id, nsg_ids, backup_network_nsg_ids, shape, time_zone, sparse_diskgroup, ssh_public_keys, hostname, domain, cpu_core_count, cluster_name, data_storage_percentage, initial_data_storage_size_in_gb, node_count, freeform_tags, defined_tags, source, db_home, database_edition, disk_redundancy, license_model].hash
252
261
  end
253
262
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
254
263
 
@@ -5,7 +5,8 @@ require_relative 'launch_db_system_base'
5
5
 
6
6
  # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
7
7
  module OCI
8
- # LaunchDbSystemFromBackupDetails model.
8
+ # Used for creating a new DB system from a database backup.
9
+ #
9
10
  class Database::Models::LaunchDbSystemFromBackupDetails < Database::Models::LaunchDbSystemBase
10
11
  DATABASE_EDITION_ENUM = [
11
12
  DATABASE_EDITION_STANDARD_EDITION = 'STANDARD_EDITION'.freeze,
@@ -56,6 +57,8 @@ module OCI
56
57
  'availability_domain': :'availabilityDomain',
57
58
  'subnet_id': :'subnetId',
58
59
  'backup_subnet_id': :'backupSubnetId',
60
+ 'nsg_ids': :'nsgIds',
61
+ 'backup_network_nsg_ids': :'backupNetworkNsgIds',
59
62
  'shape': :'shape',
60
63
  'time_zone': :'timeZone',
61
64
  'sparse_diskgroup': :'sparseDiskgroup',
@@ -88,6 +91,8 @@ module OCI
88
91
  'availability_domain': :'String',
89
92
  'subnet_id': :'String',
90
93
  'backup_subnet_id': :'String',
94
+ 'nsg_ids': :'Array<String>',
95
+ 'backup_network_nsg_ids': :'Array<String>',
91
96
  'shape': :'String',
92
97
  'time_zone': :'String',
93
98
  'sparse_diskgroup': :'BOOLEAN',
@@ -122,6 +127,8 @@ module OCI
122
127
  # @option attributes [String] :availability_domain The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#availability_domain #availability_domain} proprety
123
128
  # @option attributes [String] :subnet_id The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#subnet_id #subnet_id} proprety
124
129
  # @option attributes [String] :backup_subnet_id The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#backup_subnet_id #backup_subnet_id} proprety
130
+ # @option attributes [Array<String>] :nsg_ids The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#nsg_ids #nsg_ids} proprety
131
+ # @option attributes [Array<String>] :backup_network_nsg_ids The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#backup_network_nsg_ids #backup_network_nsg_ids} proprety
125
132
  # @option attributes [String] :shape The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#shape #shape} proprety
126
133
  # @option attributes [String] :time_zone The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#time_zone #time_zone} proprety
127
134
  # @option attributes [BOOLEAN] :sparse_diskgroup The value to assign to the {OCI::Database::Models::LaunchDbSystemBase#sparse_diskgroup #sparse_diskgroup} proprety
@@ -215,6 +222,8 @@ module OCI
215
222
  availability_domain == other.availability_domain &&
216
223
  subnet_id == other.subnet_id &&
217
224
  backup_subnet_id == other.backup_subnet_id &&
225
+ nsg_ids == other.nsg_ids &&
226
+ backup_network_nsg_ids == other.backup_network_nsg_ids &&
218
227
  shape == other.shape &&
219
228
  time_zone == other.time_zone &&
220
229
  sparse_diskgroup == other.sparse_diskgroup &&
@@ -248,7 +257,7 @@ module OCI
248
257
  # Calculates hash code according to all attributes.
249
258
  # @return [Fixnum] Hash code
250
259
  def hash
251
- [compartment_id, fault_domains, display_name, availability_domain, subnet_id, backup_subnet_id, shape, time_zone, sparse_diskgroup, ssh_public_keys, hostname, domain, cpu_core_count, cluster_name, data_storage_percentage, initial_data_storage_size_in_gb, node_count, freeform_tags, defined_tags, source, db_home, database_edition, disk_redundancy, license_model].hash
260
+ [compartment_id, fault_domains, display_name, availability_domain, subnet_id, backup_subnet_id, nsg_ids, backup_network_nsg_ids, shape, time_zone, sparse_diskgroup, ssh_public_keys, hostname, domain, cpu_core_count, cluster_name, data_storage_percentage, initial_data_storage_size_in_gb, node_count, freeform_tags, defined_tags, source, db_home, database_edition, disk_redundancy, license_model].hash
252
261
  end
253
262
  # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
254
263