oci 2.5.2 → 2.5.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ff60640046be66b4ea3e8bc2b12fa7c99142fd5b203d2b9bb81f9d21643f40a
4
- data.tar.gz: 5e1ac47c684293b30603c99277b4537f4e9e82019d1f83a009ff97ecb4232021
3
+ metadata.gz: e50aec53657bc50fd4f4a486a9c9271162ee5ca8359b122826daaf9ba84cebae
4
+ data.tar.gz: d55e454f869a09abb01e1b8999ed92c357af9af1c5f624f33526e292c2749a26
5
5
  SHA512:
6
- metadata.gz: 69b0557e4787b24e61dceab239044340d86f7d3865840d63887e34a147087f0839087dfd049dca0e23bc5d9810f33115e6e1e6e9f6f5a285c8ede059ca6fcd0a
7
- data.tar.gz: efc11890a2c853e9bef7ad7d87b8e8e4363e317d6bb0eeeed6caab9972ea6994b984412fbcf7f164fbaa9e15937a70bae1121e11271debeb454f71b1e9218154
6
+ metadata.gz: 521e46b9785d4abb0293bd312f7163a4f4277ef251b39c7ff44cf768bd242df89ad9d513ee693f1af0a8bcb7e454bce3f9004c82d19f914d0bcd739ffbdcdab7
7
+ data.tar.gz: 975fd8d0735c0a0e9fbf291ca3cdd8884879ae9e5125b69ede5bf8132cc3d8fec108f3bdc5ad21d6ac2307e811dc7933b8cacd0ccb5338dac0cf4373a4928527
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Oracle Cloud Infrastructure Ruby SDK
2
- **Version 2.5.2**
2
+ **Version 2.5.3**
3
3
 
4
4
  This topic describes how to install, configure, and use the Oracle Cloud Infrastructure Ruby SDK.
5
5
 
@@ -7,7 +7,7 @@ This topic describes how to install, configure, and use the Oracle Cloud Infrast
7
7
 
8
8
  The Ruby SDK supports the following services:
9
9
 
10
- * Announcements
10
+ * Announcements
11
11
  * Audit
12
12
  * Budgets
13
13
  * Compute Autoscaling
@@ -17,7 +17,7 @@ The Ruby SDK supports the following services:
17
17
  * Domain Name System
18
18
  * Email
19
19
  * File Storage
20
- * Health Checks
20
+ * Health Checks
21
21
  * Identity and Access Management
22
22
  * Key Management
23
23
  * Load Balancing
@@ -326,7 +326,7 @@ Once an {OCI::ApiClientProxySettings} object has been created, it can be used wh
326
326
  ## Exceptions
327
327
 
328
328
  ### Service Errors
329
- Any operation that receives a response with a non-2xx HTTP status code from an Oracle Cloud Infrastructure service will cause an exception of type {OCI::Errors::ServiceError ServiceError} to be thrown by the SDK.
329
+ Any operation that receives a response with a non-2xx HTTP status code from an Oracle Cloud Infrastructure service will cause an exception of type {OCI::Errors::ServiceError ServiceError} to be thrown by the SDK.
330
330
 
331
331
  For information about common service errors returned by OCI, see [API Errors](https://docs.us-phoenix-1.oraclecloud.com/Content/API/References/apierrors.htm).
332
332
 
@@ -342,7 +342,7 @@ You can also call {OCI::Errors::ServiceError#to_s to_s} on the error to get a su
342
342
  #### HTTP 3xx Responses
343
343
  The SDK will throw exceptions of type {OCI::Errors::ServiceError ServiceError} on HTTP 3xx responses. This impacts operations that support conditional GETs. This includes {OCI::ObjectStorage::ObjectStorageClient#get_object} and {OCI::ObjectStorage::ObjectStorageClient#head_object} methods as these can return responses with a HTTP status code of 304 if passed an `if_none_match`, which corresponds to the current etag of the object or bucket.
344
344
 
345
- In order to account for this, you should catch {OCI::Errors::ServiceError ServiceError} and check its `status_code` attribute for the HTTP status code. For example:
345
+ In order to account for this, you should catch {OCI::Errors::ServiceError ServiceError} and check its `status_code` attribute for the HTTP status code. For example:
346
346
 
347
347
  require 'oci'
348
348
 
@@ -373,9 +373,9 @@ The key attributes to inspect when dealing with a {OCI::Errors::NetworkError} ar
373
373
  You can also call {OCI::Errors::NetworkError#to_s to_s} on the error to get a summary of the key information about the error. In addition, the {OCI::Errors::NetworkError#cause NetworkError.cause} of the {OCI::Errors::NetworkError NetworkError} can be inspected to see the original error that caused the {OCI::Errors::NetworkError NetworkError} to be thrown.
374
374
 
375
375
  ### Response Parsing Errors
376
- {OCI::Errors::ResponseParsingError ResponseParsingError} is thrown when a response was received from an Oracle Cloud Infrastructure service but the SDK could not parse it into the appropriate model type to put into an {OCI::Response}.
376
+ {OCI::Errors::ResponseParsingError ResponseParsingError} is thrown when a response was received from an Oracle Cloud Infrastructure service but the SDK could not parse it into the appropriate model type to put into an {OCI::Response}.
377
377
 
378
- The key attributes to inspect when dealing with a {OCI::Errors::ResponseParsingError} are:
378
+ The key attributes to inspect when dealing with a {OCI::Errors::ResponseParsingError} are:
379
379
 
380
380
  * {OCI::Errors::ResponseParsingError#request_made request_made} and {OCI::Errors::ResponseParsingError#response_received response_received} contain the `Net::HTTPRequest` and `Net::HTTPResponse`, respectively
381
381
  * {OCI::Errors::ResponseParsingError#response_body response_body} contains the response data which failed to parse
@@ -420,7 +420,7 @@ module OCI
420
420
  raise 'Response cannot be nil' if response.nil?
421
421
  raise 'A non-blank prefix must be provided' if prefix.nil? || prefix.strip.empty?
422
422
 
423
- prefix_size = prefix.length.freeze
423
+ prefix_size = prefix.length
424
424
  processed_keys = {}
425
425
 
426
426
  response.each_header do |key, value|
@@ -5,7 +5,9 @@ require 'logger'
5
5
 
6
6
  # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
7
7
  module OCI
8
- # Container Engine for Kubernetes API
8
+ # API for the Container Engine for Kubernetes service. Use this API to build, deploy,
9
+ # and manage cloud-native applications. For more information, see
10
+ # [Overview of Container Engine for Kubernetes](/iaas/Content/ContEng/Concepts/contengoverview.htm).
9
11
  class ContainerEngine::ContainerEngineClient
10
12
  # Client used to make HTTP requests.
11
13
  # @return [OCI::ApiClient]
@@ -94,7 +96,7 @@ module OCI
94
96
 
95
97
  raise 'A region must be specified.' unless @region
96
98
 
97
- @endpoint = OCI::Regions.get_service_endpoint(@region, :ContainerEngineClient) + '/20180222'
99
+ @endpoint = OCI::Regions.get_service_endpoint_for_template(@region, 'https://containerengine.{region}.{secondLevelDomain}') + '/20180222'
98
100
  logger.info "ContainerEngineClient endpoint set to '#{@endpoint} from region #{@region}'." if logger
99
101
  end
100
102
 
@@ -786,9 +788,12 @@ module OCI
786
788
  # @option opts [Array<String>] :lifecycle_state A cluster lifecycle state to filter on. Can have multiple parameters of this name.
787
789
  # Allowed values are: CREATING, ACTIVE, FAILED, DELETING, DELETED, UPDATING
788
790
  # @option opts [String] :name The name to filter on.
789
- # @option opts [Integer] :limit The maximum number of items to return in a paginated \"List\" call.
791
+ # @option opts [Integer] :limit For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call.
792
+ # 1 is the minimum, 1000 is the maximum. For important details about how pagination works,
793
+ # see [List Pagination](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
790
794
  #
791
- # @option opts [String] :page The value of the `opc-next-page` response header from the previous \"List\" call.
795
+ # @option opts [String] :page For list pagination. The value of the `opc-next-page` response header from the previous \"List\" call.
796
+ # For important details about how pagination works, see [List Pagination](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
792
797
  #
793
798
  # @option opts [String] :sort_order The optional order in which to sort the results.
794
799
  # @option opts [String] :sort_by The optional field to sort the results by.
@@ -874,9 +879,12 @@ module OCI
874
879
  # retry configuration defined by {#retry_config} will be used. If an explicit `nil` value is provided then the operation will not retry
875
880
  # @option opts [String] :cluster_id The OCID of the cluster.
876
881
  # @option opts [String] :name The name to filter on.
877
- # @option opts [Integer] :limit The maximum number of items to return in a paginated \"List\" call.
882
+ # @option opts [Integer] :limit For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call.
883
+ # 1 is the minimum, 1000 is the maximum. For important details about how pagination works,
884
+ # see [List Pagination](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
878
885
  #
879
- # @option opts [String] :page The value of the `opc-next-page` response header from the previous \"List\" call.
886
+ # @option opts [String] :page For list pagination. The value of the `opc-next-page` response header from the previous \"List\" call.
887
+ # For important details about how pagination works, see [List Pagination](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
880
888
  #
881
889
  # @option opts [String] :sort_order The optional order in which to sort the results.
882
890
  # @option opts [String] :sort_by The optional field to sort the results by.
@@ -1072,9 +1080,12 @@ module OCI
1072
1080
  # Allowed values are: CLUSTER, NODEPOOL
1073
1081
  # @option opts [Array<String>] :status A work request status to filter on. Can have multiple parameters of this name.
1074
1082
  # Allowed values are: ACCEPTED, IN_PROGRESS, FAILED, SUCCEEDED, CANCELING, CANCELED
1075
- # @option opts [Integer] :limit The maximum number of items to return in a paginated \"List\" call.
1083
+ # @option opts [Integer] :limit For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call.
1084
+ # 1 is the minimum, 1000 is the maximum. For important details about how pagination works,
1085
+ # see [List Pagination](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
1076
1086
  #
1077
- # @option opts [String] :page The value of the `opc-next-page` response header from the previous \"List\" call.
1087
+ # @option opts [String] :page For list pagination. The value of the `opc-next-page` response header from the previous \"List\" call.
1088
+ # For important details about how pagination works, see [List Pagination](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
1078
1089
  #
1079
1090
  # @option opts [String] :sort_order The optional order in which to sort the results.
1080
1091
  # @option opts [String] :sort_by The optional field to sort the results by.
@@ -5,7 +5,7 @@ require 'logger'
5
5
 
6
6
  # rubocop:disable Lint/UnneededCopDisableDirective
7
7
  module OCI
8
- # A Kubernetes cluster.
8
+ # A Kubernetes cluster. Avoid entering confidential information.
9
9
  class ContainerEngine::Models::Cluster # rubocop:disable Metrics/LineLength
10
10
  LIFECYCLE_STATE_ENUM = [
11
11
  LIFECYCLE_STATE_CREATING = 'CREATING'.freeze,
@@ -22,6 +22,10 @@ module OCI
22
22
  # @return [String]
23
23
  attr_accessor :kubernetes_version
24
24
 
25
+ # A list of key/value pairs to add to each underlying OCI instance in the node pool.
26
+ # @return [Hash<String, String>]
27
+ attr_accessor :node_metadata
28
+
25
29
  # **[Required]** The name of the image running on the nodes in the node pool.
26
30
  # @return [String]
27
31
  attr_accessor :node_image_name
@@ -54,6 +58,7 @@ module OCI
54
58
  'cluster_id': :'clusterId',
55
59
  'name': :'name',
56
60
  'kubernetes_version': :'kubernetesVersion',
61
+ 'node_metadata': :'nodeMetadata',
57
62
  'node_image_name': :'nodeImageName',
58
63
  'node_shape': :'nodeShape',
59
64
  'initial_node_labels': :'initialNodeLabels',
@@ -72,6 +77,7 @@ module OCI
72
77
  'cluster_id': :'String',
73
78
  'name': :'String',
74
79
  'kubernetes_version': :'String',
80
+ 'node_metadata': :'Hash<String, String>',
75
81
  'node_image_name': :'String',
76
82
  'node_shape': :'String',
77
83
  'initial_node_labels': :'Array<OCI::ContainerEngine::Models::KeyValue>',
@@ -92,6 +98,7 @@ module OCI
92
98
  # @option attributes [String] :cluster_id The value to assign to the {#cluster_id} property
93
99
  # @option attributes [String] :name The value to assign to the {#name} property
94
100
  # @option attributes [String] :kubernetes_version The value to assign to the {#kubernetes_version} property
101
+ # @option attributes [Hash<String, String>] :node_metadata The value to assign to the {#node_metadata} property
95
102
  # @option attributes [String] :node_image_name The value to assign to the {#node_image_name} property
96
103
  # @option attributes [String] :node_shape The value to assign to the {#node_shape} property
97
104
  # @option attributes [Array<OCI::ContainerEngine::Models::KeyValue>] :initial_node_labels The value to assign to the {#initial_node_labels} property
@@ -124,6 +131,12 @@ module OCI
124
131
 
125
132
  self.kubernetes_version = attributes[:'kubernetes_version'] if attributes[:'kubernetes_version']
126
133
 
134
+ self.node_metadata = attributes[:'nodeMetadata'] if attributes[:'nodeMetadata']
135
+
136
+ raise 'You cannot provide both :nodeMetadata and :node_metadata' if attributes.key?(:'nodeMetadata') && attributes.key?(:'node_metadata')
137
+
138
+ self.node_metadata = attributes[:'node_metadata'] if attributes[:'node_metadata']
139
+
127
140
  self.node_image_name = attributes[:'nodeImageName'] if attributes[:'nodeImageName']
128
141
 
129
142
  raise 'You cannot provide both :nodeImageName and :node_image_name' if attributes.key?(:'nodeImageName') && attributes.key?(:'node_image_name')
@@ -176,6 +189,7 @@ module OCI
176
189
  cluster_id == other.cluster_id &&
177
190
  name == other.name &&
178
191
  kubernetes_version == other.kubernetes_version &&
192
+ node_metadata == other.node_metadata &&
179
193
  node_image_name == other.node_image_name &&
180
194
  node_shape == other.node_shape &&
181
195
  initial_node_labels == other.initial_node_labels &&
@@ -197,7 +211,7 @@ module OCI
197
211
  # Calculates hash code according to all attributes.
198
212
  # @return [Fixnum] Hash code
199
213
  def hash
200
- [compartment_id, cluster_id, name, kubernetes_version, node_image_name, node_shape, initial_node_labels, ssh_public_key, quantity_per_subnet, subnet_ids].hash
214
+ [compartment_id, cluster_id, name, kubernetes_version, node_metadata, node_image_name, node_shape, initial_node_labels, ssh_public_key, quantity_per_subnet, subnet_ids].hash
201
215
  end
202
216
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
203
217
 
@@ -4,7 +4,7 @@ require 'date'
4
4
 
5
5
  # rubocop:disable Lint/UnneededCopDisableDirective
6
6
  module OCI
7
- # A pool of compute nodes attached to a cluster.
7
+ # A pool of compute nodes attached to a cluster. Avoid entering confidential information.
8
8
  class ContainerEngine::Models::NodePool # rubocop:disable Metrics/LineLength
9
9
  # The OCID of the node pool.
10
10
  # @return [String]
@@ -26,6 +26,10 @@ module OCI
26
26
  # @return [String]
27
27
  attr_accessor :kubernetes_version
28
28
 
29
+ # A list of key/value pairs to add to each underlying OCI instance in the node pool.
30
+ # @return [Hash<String, String>]
31
+ attr_accessor :node_metadata
32
+
29
33
  # The OCID of the image running on the nodes in the node pool.
30
34
  # @return [String]
31
35
  attr_accessor :node_image_id
@@ -67,6 +71,7 @@ module OCI
67
71
  'cluster_id': :'clusterId',
68
72
  'name': :'name',
69
73
  'kubernetes_version': :'kubernetesVersion',
74
+ 'node_metadata': :'nodeMetadata',
70
75
  'node_image_id': :'nodeImageId',
71
76
  'node_image_name': :'nodeImageName',
72
77
  'node_shape': :'nodeShape',
@@ -88,6 +93,7 @@ module OCI
88
93
  'cluster_id': :'String',
89
94
  'name': :'String',
90
95
  'kubernetes_version': :'String',
96
+ 'node_metadata': :'Hash<String, String>',
91
97
  'node_image_id': :'String',
92
98
  'node_image_name': :'String',
93
99
  'node_shape': :'String',
@@ -111,6 +117,7 @@ module OCI
111
117
  # @option attributes [String] :cluster_id The value to assign to the {#cluster_id} property
112
118
  # @option attributes [String] :name The value to assign to the {#name} property
113
119
  # @option attributes [String] :kubernetes_version The value to assign to the {#kubernetes_version} property
120
+ # @option attributes [Hash<String, String>] :node_metadata The value to assign to the {#node_metadata} property
114
121
  # @option attributes [String] :node_image_id The value to assign to the {#node_image_id} property
115
122
  # @option attributes [String] :node_image_name The value to assign to the {#node_image_name} property
116
123
  # @option attributes [String] :node_shape The value to assign to the {#node_shape} property
@@ -147,6 +154,12 @@ module OCI
147
154
 
148
155
  self.kubernetes_version = attributes[:'kubernetes_version'] if attributes[:'kubernetes_version']
149
156
 
157
+ self.node_metadata = attributes[:'nodeMetadata'] if attributes[:'nodeMetadata']
158
+
159
+ raise 'You cannot provide both :nodeMetadata and :node_metadata' if attributes.key?(:'nodeMetadata') && attributes.key?(:'node_metadata')
160
+
161
+ self.node_metadata = attributes[:'node_metadata'] if attributes[:'node_metadata']
162
+
150
163
  self.node_image_id = attributes[:'nodeImageId'] if attributes[:'nodeImageId']
151
164
 
152
165
  raise 'You cannot provide both :nodeImageId and :node_image_id' if attributes.key?(:'nodeImageId') && attributes.key?(:'node_image_id')
@@ -208,6 +221,7 @@ module OCI
208
221
  cluster_id == other.cluster_id &&
209
222
  name == other.name &&
210
223
  kubernetes_version == other.kubernetes_version &&
224
+ node_metadata == other.node_metadata &&
211
225
  node_image_id == other.node_image_id &&
212
226
  node_image_name == other.node_image_name &&
213
227
  node_shape == other.node_shape &&
@@ -231,7 +245,7 @@ module OCI
231
245
  # Calculates hash code according to all attributes.
232
246
  # @return [Fixnum] Hash code
233
247
  def hash
234
- [id, compartment_id, cluster_id, name, kubernetes_version, node_image_id, node_image_name, node_shape, initial_node_labels, ssh_public_key, quantity_per_subnet, subnet_ids, nodes].hash
248
+ [id, compartment_id, cluster_id, name, kubernetes_version, node_metadata, node_image_id, node_image_name, node_shape, initial_node_labels, ssh_public_key, quantity_per_subnet, subnet_ids, nodes].hash
235
249
  end
236
250
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
237
251
 
@@ -26,6 +26,8 @@ require 'oci/database/models/complete_external_backup_job_details'
26
26
  require 'oci/database/models/create_autonomous_data_warehouse_backup_details'
27
27
  require 'oci/database/models/create_autonomous_data_warehouse_details'
28
28
  require 'oci/database/models/create_autonomous_database_backup_details'
29
+ require 'oci/database/models/create_autonomous_database_base'
30
+ require 'oci/database/models/create_autonomous_database_clone_details'
29
31
  require 'oci/database/models/create_autonomous_database_details'
30
32
  require 'oci/database/models/create_backup_details'
31
33
  require 'oci/database/models/create_data_guard_association_details'
@@ -297,7 +297,7 @@ module OCI
297
297
 
298
298
  # Creates a new Autonomous Database.
299
299
  #
300
- # @param [OCI::Database::Models::CreateAutonomousDatabaseDetails] create_autonomous_database_details Request to create a new Autonomous Database.
300
+ # @param [OCI::Database::Models::CreateAutonomousDatabaseBase] create_autonomous_database_details Request to create a new Autonomous Database.
301
301
  # @param [Hash] opts the optional parameters
302
302
  # @option opts [OCI::Retry::RetryConfig] :retry_config The retry configuration to apply to this operation. If no key is provided then the service-level
303
303
  # retry configuration defined by {#retry_config} will be used. If an explicit `nil` value is provided then the operation will not retry
@@ -105,7 +105,7 @@ module OCI
105
105
  # Calls {OCI::Database::DatabaseClient#create_autonomous_database} and then waits for the {OCI::Database::Models::AutonomousDatabase} acted upon
106
106
  # to enter the given state(s).
107
107
  #
108
- # @param [OCI::Database::Models::CreateAutonomousDatabaseDetails] create_autonomous_database_details Request to create a new Autonomous Database.
108
+ # @param [OCI::Database::Models::CreateAutonomousDatabaseBase] create_autonomous_database_details Request to create a new Autonomous Database.
109
109
  # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Database::Models::AutonomousDatabase#lifecycle_state}
110
110
  # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Database::DatabaseClient#create_autonomous_database}
111
111
  # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
@@ -86,6 +86,10 @@ module OCI
86
86
  # @return [String]
87
87
  attr_reader :license_model
88
88
 
89
+ # The amount of storage that has been used, in terabytes.
90
+ # @return [Integer]
91
+ attr_accessor :used_data_storage_size_in_tbs
92
+
89
93
  # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
90
94
  # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
91
95
  #
@@ -126,6 +130,7 @@ module OCI
126
130
  'service_console_url': :'serviceConsoleUrl',
127
131
  'connection_strings': :'connectionStrings',
128
132
  'license_model': :'licenseModel',
133
+ 'used_data_storage_size_in_tbs': :'usedDataStorageSizeInTBs',
129
134
  'freeform_tags': :'freeformTags',
130
135
  'defined_tags': :'definedTags',
131
136
  'db_version': :'dbVersion',
@@ -150,6 +155,7 @@ module OCI
150
155
  'service_console_url': :'String',
151
156
  'connection_strings': :'OCI::Database::Models::AutonomousDatabaseConnectionStrings',
152
157
  'license_model': :'String',
158
+ 'used_data_storage_size_in_tbs': :'Integer',
153
159
  'freeform_tags': :'Hash<String, String>',
154
160
  'defined_tags': :'Hash<String, Hash<String, Object>>',
155
161
  'db_version': :'String',
@@ -176,6 +182,7 @@ module OCI
176
182
  # @option attributes [String] :service_console_url The value to assign to the {#service_console_url} property
177
183
  # @option attributes [OCI::Database::Models::AutonomousDatabaseConnectionStrings] :connection_strings The value to assign to the {#connection_strings} property
178
184
  # @option attributes [String] :license_model The value to assign to the {#license_model} property
185
+ # @option attributes [Integer] :used_data_storage_size_in_tbs The value to assign to the {#used_data_storage_size_in_tbs} property
179
186
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
180
187
  # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
181
188
  # @option attributes [String] :db_version The value to assign to the {#db_version} property
@@ -251,6 +258,12 @@ module OCI
251
258
 
252
259
  self.license_model = attributes[:'license_model'] if attributes[:'license_model']
253
260
 
261
+ self.used_data_storage_size_in_tbs = attributes[:'usedDataStorageSizeInTBs'] if attributes[:'usedDataStorageSizeInTBs']
262
+
263
+ raise 'You cannot provide both :usedDataStorageSizeInTBs and :used_data_storage_size_in_tbs' if attributes.key?(:'usedDataStorageSizeInTBs') && attributes.key?(:'used_data_storage_size_in_tbs')
264
+
265
+ self.used_data_storage_size_in_tbs = attributes[:'used_data_storage_size_in_tbs'] if attributes[:'used_data_storage_size_in_tbs']
266
+
254
267
  self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
255
268
 
256
269
  raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
@@ -344,6 +357,7 @@ module OCI
344
357
  service_console_url == other.service_console_url &&
345
358
  connection_strings == other.connection_strings &&
346
359
  license_model == other.license_model &&
360
+ used_data_storage_size_in_tbs == other.used_data_storage_size_in_tbs &&
347
361
  freeform_tags == other.freeform_tags &&
348
362
  defined_tags == other.defined_tags &&
349
363
  db_version == other.db_version &&
@@ -363,7 +377,7 @@ module OCI
363
377
  # Calculates hash code according to all attributes.
364
378
  # @return [Fixnum] Hash code
365
379
  def hash
366
- [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, freeform_tags, defined_tags, db_version, db_workload].hash
380
+ [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].hash
367
381
  end
368
382
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
369
383
 
@@ -88,6 +88,10 @@ module OCI
88
88
  # @return [String]
89
89
  attr_reader :license_model
90
90
 
91
+ # The amount of storage that has been used, in terabytes.
92
+ # @return [Integer]
93
+ attr_accessor :used_data_storage_size_in_tbs
94
+
91
95
  # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
92
96
  # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
93
97
  #
@@ -128,6 +132,7 @@ module OCI
128
132
  'service_console_url': :'serviceConsoleUrl',
129
133
  'connection_strings': :'connectionStrings',
130
134
  'license_model': :'licenseModel',
135
+ 'used_data_storage_size_in_tbs': :'usedDataStorageSizeInTBs',
131
136
  'freeform_tags': :'freeformTags',
132
137
  'defined_tags': :'definedTags',
133
138
  'db_version': :'dbVersion',
@@ -152,6 +157,7 @@ module OCI
152
157
  'service_console_url': :'String',
153
158
  'connection_strings': :'OCI::Database::Models::AutonomousDatabaseConnectionStrings',
154
159
  'license_model': :'String',
160
+ 'used_data_storage_size_in_tbs': :'Integer',
155
161
  'freeform_tags': :'Hash<String, String>',
156
162
  'defined_tags': :'Hash<String, Hash<String, Object>>',
157
163
  'db_version': :'String',
@@ -178,6 +184,7 @@ module OCI
178
184
  # @option attributes [String] :service_console_url The value to assign to the {#service_console_url} property
179
185
  # @option attributes [OCI::Database::Models::AutonomousDatabaseConnectionStrings] :connection_strings The value to assign to the {#connection_strings} property
180
186
  # @option attributes [String] :license_model The value to assign to the {#license_model} property
187
+ # @option attributes [Integer] :used_data_storage_size_in_tbs The value to assign to the {#used_data_storage_size_in_tbs} property
181
188
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
182
189
  # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
183
190
  # @option attributes [String] :db_version The value to assign to the {#db_version} property
@@ -256,6 +263,12 @@ module OCI
256
263
 
257
264
  self.license_model = attributes[:'license_model'] if attributes[:'license_model']
258
265
 
266
+ self.used_data_storage_size_in_tbs = attributes[:'usedDataStorageSizeInTBs'] if attributes[:'usedDataStorageSizeInTBs']
267
+
268
+ raise 'You cannot provide both :usedDataStorageSizeInTBs and :used_data_storage_size_in_tbs' if attributes.key?(:'usedDataStorageSizeInTBs') && attributes.key?(:'used_data_storage_size_in_tbs')
269
+
270
+ self.used_data_storage_size_in_tbs = attributes[:'used_data_storage_size_in_tbs'] if attributes[:'used_data_storage_size_in_tbs']
271
+
259
272
  self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
260
273
 
261
274
  raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
@@ -349,6 +362,7 @@ module OCI
349
362
  service_console_url == other.service_console_url &&
350
363
  connection_strings == other.connection_strings &&
351
364
  license_model == other.license_model &&
365
+ used_data_storage_size_in_tbs == other.used_data_storage_size_in_tbs &&
352
366
  freeform_tags == other.freeform_tags &&
353
367
  defined_tags == other.defined_tags &&
354
368
  db_version == other.db_version &&
@@ -368,7 +382,7 @@ module OCI
368
382
  # Calculates hash code according to all attributes.
369
383
  # @return [Fixnum] Hash code
370
384
  def hash
371
- [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, freeform_tags, defined_tags, db_version, db_workload].hash
385
+ [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].hash
372
386
  end
373
387
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
374
388
 
@@ -0,0 +1,366 @@
1
+ # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ # rubocop:disable Lint/UnneededCopDisableDirective
6
+ module OCI
7
+ # Details to create an Oracle Autonomous Database.
8
+ #
9
+ # **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
10
+ #
11
+ # This class has direct subclasses. If you are using this class as input to a service operations then you should favor using a subclass over the base class
12
+ class Database::Models::CreateAutonomousDatabaseBase # rubocop:disable Metrics/LineLength
13
+ DB_WORKLOAD_ENUM = [
14
+ DB_WORKLOAD_OLTP = 'OLTP'.freeze,
15
+ DB_WORKLOAD_DW = 'DW'.freeze
16
+ ].freeze
17
+
18
+ LICENSE_MODEL_ENUM = [
19
+ LICENSE_MODEL_LICENSE_INCLUDED = 'LICENSE_INCLUDED'.freeze,
20
+ LICENSE_MODEL_BRING_YOUR_OWN_LICENSE = 'BRING_YOUR_OWN_LICENSE'.freeze
21
+ ].freeze
22
+
23
+ SOURCE_ENUM = [
24
+ SOURCE_NONE = 'NONE'.freeze,
25
+ SOURCE_DATABASE = 'DATABASE'.freeze
26
+ ].freeze
27
+
28
+ # **[Required]** The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the compartment of the autonomous database.
29
+ # @return [String]
30
+ attr_accessor :compartment_id
31
+
32
+ # **[Required]** The database name. The name must begin with an alphabetic character and can contain a maximum of 14 alphanumeric characters. Special characters are not permitted. The database name must be unique in the tenancy.
33
+ # @return [String]
34
+ attr_accessor :db_name
35
+
36
+ # **[Required]** The number of CPU Cores to be made available to the database.
37
+ # @return [Integer]
38
+ attr_accessor :cpu_core_count
39
+
40
+ # The autonomous database workload type.
41
+ # @return [String]
42
+ attr_reader :db_workload
43
+
44
+ # **[Required]** The size, in terabytes, of the data volume that will be created and attached to the database. This storage can later be scaled up if needed.
45
+ #
46
+ # @return [Integer]
47
+ attr_accessor :data_storage_size_in_tbs
48
+
49
+ # **[Required]** The password must be between 12 and 30 characters long, and must contain at least 1 uppercase, 1 lowercase, and 1 numeric character. It cannot contain the double quote symbol (\") or the username \"admin\", regardless of casing.
50
+ # @return [String]
51
+ attr_accessor :admin_password
52
+
53
+ # The user-friendly name for the Autonomous Database. The name does not have to be unique.
54
+ # @return [String]
55
+ attr_accessor :display_name
56
+
57
+ # The Oracle license model that applies to the Oracle Autonomous Database. The default is BRING_YOUR_OWN_LICENSE.
58
+ #
59
+ # @return [String]
60
+ attr_reader :license_model
61
+
62
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
63
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
64
+ #
65
+ # Example: `{\"Department\": \"Finance\"}`
66
+ #
67
+ # @return [Hash<String, String>]
68
+ attr_accessor :freeform_tags
69
+
70
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
71
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
72
+ #
73
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
74
+ #
75
+ # @return [Hash<String, Hash<String, Object>>]
76
+ attr_accessor :defined_tags
77
+
78
+ # The source of the database: Use NONE for creating a new Autonomous Database. Use DATABASE for creating a new Autonomous Database by cloning an existing Autonomous Database.
79
+ #
80
+ # @return [String]
81
+ attr_reader :source
82
+
83
+ # Attribute mapping from ruby-style variable name to JSON key.
84
+ def self.attribute_map
85
+ {
86
+ # rubocop:disable Style/SymbolLiteral
87
+ 'compartment_id': :'compartmentId',
88
+ 'db_name': :'dbName',
89
+ 'cpu_core_count': :'cpuCoreCount',
90
+ 'db_workload': :'dbWorkload',
91
+ 'data_storage_size_in_tbs': :'dataStorageSizeInTBs',
92
+ 'admin_password': :'adminPassword',
93
+ 'display_name': :'displayName',
94
+ 'license_model': :'licenseModel',
95
+ 'freeform_tags': :'freeformTags',
96
+ 'defined_tags': :'definedTags',
97
+ 'source': :'source'
98
+ # rubocop:enable Style/SymbolLiteral
99
+ }
100
+ end
101
+
102
+ # Attribute type mapping.
103
+ def self.swagger_types
104
+ {
105
+ # rubocop:disable Style/SymbolLiteral
106
+ 'compartment_id': :'String',
107
+ 'db_name': :'String',
108
+ 'cpu_core_count': :'Integer',
109
+ 'db_workload': :'String',
110
+ 'data_storage_size_in_tbs': :'Integer',
111
+ 'admin_password': :'String',
112
+ 'display_name': :'String',
113
+ 'license_model': :'String',
114
+ 'freeform_tags': :'Hash<String, String>',
115
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
116
+ 'source': :'String'
117
+ # rubocop:enable Style/SymbolLiteral
118
+ }
119
+ end
120
+
121
+ # rubocop:disable Metrics/CyclomaticComplexity, Layout/EmptyLines
122
+
123
+
124
+ # Given the hash representation of a subtype of this class,
125
+ # use the info in the hash to return the class of the subtype.
126
+ def self.get_subtype(object_hash)
127
+ type = object_hash[:'source'] # rubocop:disable Style/SymbolLiteral
128
+
129
+ return 'OCI::Database::Models::CreateAutonomousDatabaseCloneDetails' if type == 'DATABASE'
130
+ return 'OCI::Database::Models::CreateAutonomousDatabaseDetails' if type == 'NONE'
131
+
132
+ # TODO: Log a warning when the subtype is not found.
133
+ 'OCI::Database::Models::CreateAutonomousDatabaseBase'
134
+ end
135
+ # rubocop:enable Metrics/CyclomaticComplexity, Layout/EmptyLines
136
+
137
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
138
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
139
+
140
+
141
+ # Initializes the object
142
+ # @param [Hash] attributes Model attributes in the form of hash
143
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
144
+ # @option attributes [String] :db_name The value to assign to the {#db_name} property
145
+ # @option attributes [Integer] :cpu_core_count The value to assign to the {#cpu_core_count} property
146
+ # @option attributes [String] :db_workload The value to assign to the {#db_workload} property
147
+ # @option attributes [Integer] :data_storage_size_in_tbs The value to assign to the {#data_storage_size_in_tbs} property
148
+ # @option attributes [String] :admin_password The value to assign to the {#admin_password} property
149
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
150
+ # @option attributes [String] :license_model The value to assign to the {#license_model} property
151
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
152
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
153
+ # @option attributes [String] :source The value to assign to the {#source} property
154
+ def initialize(attributes = {})
155
+ return unless attributes.is_a?(Hash)
156
+
157
+ # convert string to symbol for hash key
158
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
159
+
160
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
161
+
162
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
163
+
164
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
165
+
166
+ self.db_name = attributes[:'dbName'] if attributes[:'dbName']
167
+
168
+ raise 'You cannot provide both :dbName and :db_name' if attributes.key?(:'dbName') && attributes.key?(:'db_name')
169
+
170
+ self.db_name = attributes[:'db_name'] if attributes[:'db_name']
171
+
172
+ self.cpu_core_count = attributes[:'cpuCoreCount'] if attributes[:'cpuCoreCount']
173
+
174
+ raise 'You cannot provide both :cpuCoreCount and :cpu_core_count' if attributes.key?(:'cpuCoreCount') && attributes.key?(:'cpu_core_count')
175
+
176
+ self.cpu_core_count = attributes[:'cpu_core_count'] if attributes[:'cpu_core_count']
177
+
178
+ self.db_workload = attributes[:'dbWorkload'] if attributes[:'dbWorkload']
179
+
180
+ raise 'You cannot provide both :dbWorkload and :db_workload' if attributes.key?(:'dbWorkload') && attributes.key?(:'db_workload')
181
+
182
+ self.db_workload = attributes[:'db_workload'] if attributes[:'db_workload']
183
+
184
+ self.data_storage_size_in_tbs = attributes[:'dataStorageSizeInTBs'] if attributes[:'dataStorageSizeInTBs']
185
+
186
+ raise 'You cannot provide both :dataStorageSizeInTBs and :data_storage_size_in_tbs' if attributes.key?(:'dataStorageSizeInTBs') && attributes.key?(:'data_storage_size_in_tbs')
187
+
188
+ self.data_storage_size_in_tbs = attributes[:'data_storage_size_in_tbs'] if attributes[:'data_storage_size_in_tbs']
189
+
190
+ self.admin_password = attributes[:'adminPassword'] if attributes[:'adminPassword']
191
+
192
+ raise 'You cannot provide both :adminPassword and :admin_password' if attributes.key?(:'adminPassword') && attributes.key?(:'admin_password')
193
+
194
+ self.admin_password = attributes[:'admin_password'] if attributes[:'admin_password']
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.license_model = attributes[:'licenseModel'] if attributes[:'licenseModel']
203
+
204
+ raise 'You cannot provide both :licenseModel and :license_model' if attributes.key?(:'licenseModel') && attributes.key?(:'license_model')
205
+
206
+ self.license_model = attributes[:'license_model'] if attributes[:'license_model']
207
+
208
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
209
+
210
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
211
+
212
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
213
+
214
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
215
+
216
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
217
+
218
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
219
+
220
+ self.source = attributes[:'source'] if attributes[:'source']
221
+ self.source = "NONE" if source.nil? && !attributes.key?(:'source') # rubocop:disable Style/StringLiterals
222
+ end
223
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
224
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
225
+
226
+ # Custom attribute writer method checking allowed values (enum).
227
+ # @param [Object] db_workload Object to be assigned
228
+ def db_workload=(db_workload)
229
+ # rubocop: disable Metrics/LineLength
230
+ raise "Invalid value for 'db_workload': this must be one of the values in DB_WORKLOAD_ENUM." if db_workload && !DB_WORKLOAD_ENUM.include?(db_workload)
231
+
232
+ # rubocop: enable Metrics/LineLength
233
+ @db_workload = db_workload
234
+ end
235
+
236
+ # Custom attribute writer method checking allowed values (enum).
237
+ # @param [Object] license_model Object to be assigned
238
+ def license_model=(license_model)
239
+ # rubocop: disable Metrics/LineLength
240
+ 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)
241
+
242
+ # rubocop: enable Metrics/LineLength
243
+ @license_model = license_model
244
+ end
245
+
246
+ # Custom attribute writer method checking allowed values (enum).
247
+ # @param [Object] source Object to be assigned
248
+ def source=(source)
249
+ # rubocop: disable Metrics/LineLength
250
+ raise "Invalid value for 'source': this must be one of the values in SOURCE_ENUM." if source && !SOURCE_ENUM.include?(source)
251
+
252
+ # rubocop: enable Metrics/LineLength
253
+ @source = source
254
+ end
255
+
256
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/LineLength, Layout/EmptyLines
257
+
258
+
259
+ # Checks equality by comparing each attribute.
260
+ # @param [Object] other the other object to be compared
261
+ def ==(other)
262
+ return true if equal?(other)
263
+
264
+ self.class == other.class &&
265
+ compartment_id == other.compartment_id &&
266
+ db_name == other.db_name &&
267
+ cpu_core_count == other.cpu_core_count &&
268
+ db_workload == other.db_workload &&
269
+ data_storage_size_in_tbs == other.data_storage_size_in_tbs &&
270
+ admin_password == other.admin_password &&
271
+ display_name == other.display_name &&
272
+ license_model == other.license_model &&
273
+ freeform_tags == other.freeform_tags &&
274
+ defined_tags == other.defined_tags &&
275
+ source == other.source
276
+ end
277
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/LineLength, Layout/EmptyLines
278
+
279
+ # @see the `==` method
280
+ # @param [Object] other the other object to be compared
281
+ def eql?(other)
282
+ self == other
283
+ end
284
+
285
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
286
+
287
+
288
+ # Calculates hash code according to all attributes.
289
+ # @return [Fixnum] Hash code
290
+ def hash
291
+ [compartment_id, db_name, cpu_core_count, db_workload, data_storage_size_in_tbs, admin_password, display_name, license_model, freeform_tags, defined_tags, source].hash
292
+ end
293
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
294
+
295
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
296
+
297
+
298
+ # Builds the object from hash
299
+ # @param [Hash] attributes Model attributes in the form of hash
300
+ # @return [Object] Returns the model itself
301
+ def build_from_hash(attributes)
302
+ return nil unless attributes.is_a?(Hash)
303
+
304
+ self.class.swagger_types.each_pair do |key, type|
305
+ if type =~ /^Array<(.*)>/i
306
+ # check to ensure the input is an array given that the the attribute
307
+ # is documented as an array but the input is not
308
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
309
+ public_method("#{key}=").call(
310
+ attributes[self.class.attribute_map[key]]
311
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
312
+ )
313
+ end
314
+ elsif !attributes[self.class.attribute_map[key]].nil?
315
+ public_method("#{key}=").call(
316
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
317
+ )
318
+ end
319
+ # or else data not found in attributes(hash), not an issue as the data can be optional
320
+ end
321
+
322
+ self
323
+ end
324
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
325
+
326
+ # Returns the string representation of the object
327
+ # @return [String] String presentation of the object
328
+ def to_s
329
+ to_hash.to_s
330
+ end
331
+
332
+ # Returns the object in the form of hash
333
+ # @return [Hash] Returns the object in the form of hash
334
+ def to_hash
335
+ hash = {}
336
+ self.class.attribute_map.each_pair do |attr, param|
337
+ value = public_method(attr).call
338
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
339
+
340
+ hash[param] = _to_hash(value)
341
+ end
342
+ hash
343
+ end
344
+
345
+ private
346
+
347
+ # Outputs non-array value in the form of hash
348
+ # For object, use to_hash. Otherwise, just return the value
349
+ # @param [Object] value Any valid value
350
+ # @return [Hash] Returns the value in the form of hash
351
+ def _to_hash(value)
352
+ if value.is_a?(Array)
353
+ value.compact.map { |v| _to_hash(v) }
354
+ elsif value.is_a?(Hash)
355
+ {}.tap do |hash|
356
+ value.each { |k, v| hash[k] = _to_hash(v) }
357
+ end
358
+ elsif value.respond_to? :to_hash
359
+ value.to_hash
360
+ else
361
+ value
362
+ end
363
+ end
364
+ end
365
+ end
366
+ # rubocop:enable Lint/UnneededCopDisableDirective