oci 2.3.1 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b1a3978b282dff7d53077c6d7c503f41ee373bd0
4
- data.tar.gz: 12fa0b73f4d560600e0783e74a8c8585428658f4
3
+ metadata.gz: 5dce598b5266d9674ebe6ea0e70e422671331b47
4
+ data.tar.gz: e8dd3e1ad2d99f2ea990f4b93878692d02a3aa32
5
5
  SHA512:
6
- metadata.gz: 84739969db3f6bacefc32e0cfeea55448a81faf84e858b15389e0c9fd63f7bae0f8b2960ce6616219751fed1512c4be30b020c494fdd9359c2f8c5416de1f3e8
7
- data.tar.gz: 525c4ab3c450c109f615d7b7c31ee6133dba5792c3c884270faf97f186ad4f405f9b64a73b82403a81a498b03a0f3f6e137a387c580d694934c33871d3f1c5f5
6
+ metadata.gz: b50db7913ddcb46fd07972392ddee5ef2fe8d9faa3e84f56411d25151c32163661f169b8beb1502676c14da5a415cb8afdc2e1bcda7f25ac12e60c5b6029d106
7
+ data.tar.gz: 2969c2b133de7b2d9563f5293386f282f4a38de21d1d47cdeef4a2045096d3cabcc392c6965413f7d655d127dc1be9ec62f162ba6fdae1fad187d7720b344086
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Oracle Cloud Infrastructure Ruby SDK
2
- **Version 2.3.1**
2
+ **Version 2.3.2**
3
3
 
4
4
  This topic describes how to install, configure, and use the Oracle Cloud Infrastructure Ruby SDK.
5
5
 
@@ -14,6 +14,12 @@ module OCI
14
14
  # @return [String]
15
15
  attr_accessor :compartment_id
16
16
 
17
+ # The name of the compartment. This value is the friendly name associated with compartmentId.
18
+ # This value can change, but the service logs the value that appeared at the time of the audit event.
19
+ #
20
+ # @return [String]
21
+ attr_accessor :compartment_name
22
+
17
23
  # The GUID of the event.
18
24
  # @return [String]
19
25
  attr_accessor :event_id
@@ -88,12 +94,17 @@ module OCI
88
94
  # @return [Hash<String, Object>]
89
95
  attr_accessor :response_payload
90
96
 
97
+ # The name of the user or service. This value is the friendly name associated with principalId.
98
+ # @return [String]
99
+ attr_accessor :user_name
100
+
91
101
  # Attribute mapping from ruby-style variable name to JSON key.
92
102
  def self.attribute_map
93
103
  {
94
104
  # rubocop:disable Style/SymbolLiteral
95
105
  'tenant_id': :'tenantId',
96
106
  'compartment_id': :'compartmentId',
107
+ 'compartment_name': :'compartmentName',
97
108
  'event_id': :'eventId',
98
109
  'event_name': :'eventName',
99
110
  'event_source': :'eventSource',
@@ -111,7 +122,8 @@ module OCI
111
122
  'response_headers': :'responseHeaders',
112
123
  'response_status': :'responseStatus',
113
124
  'response_time': :'responseTime',
114
- 'response_payload': :'responsePayload'
125
+ 'response_payload': :'responsePayload',
126
+ 'user_name': :'userName'
115
127
  # rubocop:enable Style/SymbolLiteral
116
128
  }
117
129
  end
@@ -122,6 +134,7 @@ module OCI
122
134
  # rubocop:disable Style/SymbolLiteral
123
135
  'tenant_id': :'String',
124
136
  'compartment_id': :'String',
137
+ 'compartment_name': :'String',
125
138
  'event_id': :'String',
126
139
  'event_name': :'String',
127
140
  'event_source': :'String',
@@ -139,7 +152,8 @@ module OCI
139
152
  'response_headers': :'Hash<String, Array<String>>',
140
153
  'response_status': :'String',
141
154
  'response_time': :'DateTime',
142
- 'response_payload': :'Hash<String, Object>'
155
+ 'response_payload': :'Hash<String, Object>',
156
+ 'user_name': :'String'
143
157
  # rubocop:enable Style/SymbolLiteral
144
158
  }
145
159
  end
@@ -152,6 +166,7 @@ module OCI
152
166
  # @param [Hash] attributes Model attributes in the form of hash
153
167
  # @option attributes [String] :tenant_id The value to assign to the {#tenant_id} property
154
168
  # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
169
+ # @option attributes [String] :compartment_name The value to assign to the {#compartment_name} property
155
170
  # @option attributes [String] :event_id The value to assign to the {#event_id} property
156
171
  # @option attributes [String] :event_name The value to assign to the {#event_name} property
157
172
  # @option attributes [String] :event_source The value to assign to the {#event_source} property
@@ -170,6 +185,7 @@ module OCI
170
185
  # @option attributes [String] :response_status The value to assign to the {#response_status} property
171
186
  # @option attributes [DateTime] :response_time The value to assign to the {#response_time} property
172
187
  # @option attributes [Hash<String, Object>] :response_payload The value to assign to the {#response_payload} property
188
+ # @option attributes [String] :user_name The value to assign to the {#user_name} property
173
189
  def initialize(attributes = {})
174
190
  return unless attributes.is_a?(Hash)
175
191
 
@@ -188,6 +204,12 @@ module OCI
188
204
 
189
205
  self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
190
206
 
207
+ self.compartment_name = attributes[:'compartmentName'] if attributes[:'compartmentName']
208
+
209
+ raise 'You cannot provide both :compartmentName and :compartment_name' if attributes.key?(:'compartmentName') && attributes.key?(:'compartment_name')
210
+
211
+ self.compartment_name = attributes[:'compartment_name'] if attributes[:'compartment_name']
212
+
191
213
  self.event_id = attributes[:'eventId'] if attributes[:'eventId']
192
214
 
193
215
  raise 'You cannot provide both :eventId and :event_id' if attributes.key?(:'eventId') && attributes.key?(:'event_id')
@@ -295,6 +317,12 @@ module OCI
295
317
  raise 'You cannot provide both :responsePayload and :response_payload' if attributes.key?(:'responsePayload') && attributes.key?(:'response_payload')
296
318
 
297
319
  self.response_payload = attributes[:'response_payload'] if attributes[:'response_payload']
320
+
321
+ self.user_name = attributes[:'userName'] if attributes[:'userName']
322
+
323
+ raise 'You cannot provide both :userName and :user_name' if attributes.key?(:'userName') && attributes.key?(:'user_name')
324
+
325
+ self.user_name = attributes[:'user_name'] if attributes[:'user_name']
298
326
  end
299
327
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
300
328
  # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -309,6 +337,7 @@ module OCI
309
337
  self.class == other.class &&
310
338
  tenant_id == other.tenant_id &&
311
339
  compartment_id == other.compartment_id &&
340
+ compartment_name == other.compartment_name &&
312
341
  event_id == other.event_id &&
313
342
  event_name == other.event_name &&
314
343
  event_source == other.event_source &&
@@ -326,7 +355,8 @@ module OCI
326
355
  response_headers == other.response_headers &&
327
356
  response_status == other.response_status &&
328
357
  response_time == other.response_time &&
329
- response_payload == other.response_payload
358
+ response_payload == other.response_payload &&
359
+ user_name == other.user_name
330
360
  end
331
361
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
332
362
 
@@ -342,7 +372,7 @@ module OCI
342
372
  # Calculates hash code according to all attributes.
343
373
  # @return [Fixnum] Hash code
344
374
  def hash
345
- [tenant_id, compartment_id, event_id, event_name, event_source, event_type, event_time, principal_id, credential_id, request_action, request_id, request_agent, request_headers, request_origin, request_parameters, request_resource, response_headers, response_status, response_time, response_payload].hash
375
+ [tenant_id, compartment_id, compartment_name, event_id, event_name, event_source, event_type, event_time, principal_id, credential_id, request_action, request_id, request_agent, request_headers, request_origin, request_parameters, request_resource, response_headers, response_status, response_time, response_payload, user_name].hash
346
376
  end
347
377
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
348
378
 
@@ -10,6 +10,7 @@ module OCI
10
10
  end
11
11
 
12
12
  # Require models
13
+ require 'oci/file_storage/models/client_options'
13
14
  require 'oci/file_storage/models/create_export_details'
14
15
  require 'oci/file_storage/models/create_file_system_details'
15
16
  require 'oci/file_storage/models/create_mount_target_details'
@@ -24,6 +25,7 @@ require 'oci/file_storage/models/mount_target'
24
25
  require 'oci/file_storage/models/mount_target_summary'
25
26
  require 'oci/file_storage/models/snapshot'
26
27
  require 'oci/file_storage/models/snapshot_summary'
28
+ require 'oci/file_storage/models/update_export_details'
27
29
  require 'oci/file_storage/models/update_export_set_details'
28
30
  require 'oci/file_storage/models/update_file_system_details'
29
31
  require 'oci/file_storage/models/update_mount_target_details'
@@ -1387,6 +1387,66 @@ module OCI
1387
1387
  # rubocop:disable Metrics/MethodLength, Layout/EmptyLines
1388
1388
 
1389
1389
 
1390
+ # Updates the specified export's information.
1391
+ # @param [String] export_id The OCID of the export.
1392
+ # @param [OCI::FileStorage::Models::UpdateExportDetails] update_export_details Details object for updating an export.
1393
+ # @param [Hash] opts the optional parameters
1394
+ # @option opts [OCI::Retry::RetryConfig] :retry_config The retry configuration to apply to this operation. If no key is provided then the service-level
1395
+ # retry configuration defined by {#retry_config} will be used. If an explicit `nil` value is provided then the operation will not retry
1396
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call
1397
+ # for a resource, set the `if-match` parameter to the value of the
1398
+ # etag from a previous GET or POST response for that resource.
1399
+ # The resource will be updated or deleted only if the etag you
1400
+ # provide matches the resource's current etag value.
1401
+ #
1402
+ # @return [Response] A Response object with data of type {OCI::FileStorage::Models::Export Export}
1403
+ def update_export(export_id, update_export_details, opts = {})
1404
+ logger.debug 'Calling operation FileStorageClient#update_export.' if logger
1405
+
1406
+ raise "Missing the required parameter 'export_id' when calling update_export." if export_id.nil?
1407
+ raise "Missing the required parameter 'update_export_details' when calling update_export." if update_export_details.nil?
1408
+ raise "Parameter value for 'export_id' must not be blank" if OCI::Internal::Util.blank_string?(export_id)
1409
+
1410
+ path = '/exports/{exportId}'.sub('{exportId}', export_id.to_s)
1411
+ operation_signing_strategy = :standard
1412
+
1413
+ # rubocop:disable Style/NegatedIf
1414
+ # Query Params
1415
+ query_params = {}
1416
+
1417
+ # Header Params
1418
+ header_params = {}
1419
+ header_params['accept'] = 'application/json'
1420
+ header_params['content-type'] = 'application/json'
1421
+ header_params[:'if-match'] = opts[:if_match] if opts[:if_match]
1422
+ # rubocop:enable Style/NegatedIf
1423
+
1424
+ post_body = @api_client.object_to_http_body(update_export_details)
1425
+
1426
+ # rubocop:disable Metrics/BlockLength
1427
+ OCI::Retry.make_retrying_call(applicable_retry_config(opts), call_name: 'FileStorageClient#update_export') do
1428
+ @api_client.call_api(
1429
+ :PUT,
1430
+ path,
1431
+ endpoint,
1432
+ header_params: header_params,
1433
+ query_params: query_params,
1434
+ operation_signing_strategy: operation_signing_strategy,
1435
+ body: post_body,
1436
+ return_type: 'OCI::FileStorage::Models::Export'
1437
+ )
1438
+ end
1439
+ # rubocop:enable Metrics/BlockLength
1440
+ end
1441
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
1442
+ # rubocop:enable Style/IfUnlessModifier, Metrics/ParameterLists
1443
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines
1444
+
1445
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
1446
+ # rubocop:disable Style/IfUnlessModifier, Metrics/ParameterLists
1447
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines
1448
+
1449
+
1390
1450
  # Updates the specified export set's information.
1391
1451
  # @param [String] export_set_id The OCID of the export set.
1392
1452
  # @param [OCI::FileStorage::Models::UpdateExportSetDetails] update_export_set_details Details object for updating an export set.
@@ -340,6 +340,46 @@ module OCI
340
340
  # rubocop:disable Layout/EmptyLines
341
341
 
342
342
 
343
+ # Calls {OCI::FileStorage::FileStorageClient#update_export} and then waits for the {OCI::FileStorage::Models::Export} acted upon
344
+ # to enter the given state(s).
345
+ #
346
+ # @param [String] export_id The OCID of the export.
347
+ # @param [OCI::FileStorage::Models::UpdateExportDetails] update_export_details Details object for updating an export.
348
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::FileStorage::Models::Export#lifecycle_state}
349
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::FileStorage::FileStorageClient#update_export}
350
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
351
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
352
+ # * max_wait_seconds The maximum time to wait, in seconds
353
+ #
354
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::FileStorage::Models::Export}
355
+ def update_export_and_wait_for_state(export_id, update_export_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
356
+ operation_result = @service_client.update_export(export_id, update_export_details, base_operation_opts)
357
+
358
+ return operation_result if wait_for_states.empty?
359
+
360
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
361
+ wait_for_resource_id = operation_result.data.id
362
+
363
+ begin
364
+ waiter_result = @service_client.get_export(wait_for_resource_id).wait_until(
365
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
366
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
367
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
368
+ )
369
+ result_to_return = waiter_result
370
+
371
+ return result_to_return
372
+ rescue StandardError
373
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
374
+ end
375
+ end
376
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
377
+ # rubocop:enable Layout/EmptyLines
378
+
379
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
380
+ # rubocop:disable Layout/EmptyLines
381
+
382
+
343
383
  # Calls {OCI::FileStorage::FileStorageClient#update_export_set} and then waits for the {OCI::FileStorage::Models::ExportSet} acted upon
344
384
  # to enter the given state(s).
345
385
  #
@@ -0,0 +1,284 @@
1
+ # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+ require 'logger'
5
+
6
+ # rubocop:disable Lint/UnneededCopDisableDirective
7
+ module OCI
8
+ # NFS export options applied to a specified set of
9
+ # clients. Only governs access through the associated
10
+ # export. Access to the same file system through a different
11
+ # export (on the same or different mount target) will be governed
12
+ # by that export's export options.
13
+ #
14
+ class FileStorage::Models::ClientOptions # rubocop:disable Metrics/LineLength
15
+ ACCESS_ENUM = [
16
+ ACCESS_READ_WRITE = 'READ_WRITE'.freeze,
17
+ ACCESS_READ_ONLY = 'READ_ONLY'.freeze,
18
+ ACCESS_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
19
+ ].freeze
20
+
21
+ IDENTITY_SQUASH_ENUM = [
22
+ IDENTITY_SQUASH_NONE = 'NONE'.freeze,
23
+ IDENTITY_SQUASH_ROOT = 'ROOT'.freeze,
24
+ IDENTITY_SQUASH_ALL = 'ALL'.freeze,
25
+ IDENTITY_SQUASH_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
26
+ ].freeze
27
+
28
+ # **[Required]** Clients these options should apply to. Must be a either
29
+ # single IPv4 address or single IPv4 CIDR block.
30
+ #
31
+ # **Note:** Access will also be limited by any applicable VCN
32
+ # security rules and the ability to route IP packets to the
33
+ # mount target. Mount targets do not have Internet-routable IP addresses.
34
+ #
35
+ # @return [String]
36
+ attr_accessor :source
37
+
38
+ # If `true`, clients accessing the file system through this
39
+ # export must connect from a privileged source port. If
40
+ # unspecified, defaults to `true`.
41
+ #
42
+ # @return [BOOLEAN]
43
+ attr_accessor :require_privileged_source_port
44
+
45
+ # Type of access to grant clients using the file system
46
+ # through this export. If unspecified defaults to `READ_ONLY`.
47
+ #
48
+ # @return [String]
49
+ attr_reader :access
50
+
51
+ # Used when clients accessing the file system through this export
52
+ # have their UID and GID remapped to 'anonymousUid' and
53
+ # 'anonymousGid'. If `ALL`, all users and groups are remapped;
54
+ # if `ROOT`, only the root user and group (UID/GID 0) are
55
+ # remapped; if `NONE`, no remapping is done. If unspecified,
56
+ # defaults to `ROOT`.
57
+ #
58
+ # @return [String]
59
+ attr_reader :identity_squash
60
+
61
+ # UID value to remap to when squashing a client UID (see
62
+ # identitySquash for more details.) If unspecified, defaults
63
+ # to `65534`.
64
+ #
65
+ # @return [Integer]
66
+ attr_accessor :anonymous_uid
67
+
68
+ # GID value to remap to when squashing a client GID (see
69
+ # identitySquash for more details.) If unspecified defaults
70
+ # to `65534`.
71
+ #
72
+ # @return [Integer]
73
+ attr_accessor :anonymous_gid
74
+
75
+ # Attribute mapping from ruby-style variable name to JSON key.
76
+ def self.attribute_map
77
+ {
78
+ # rubocop:disable Style/SymbolLiteral
79
+ 'source': :'source',
80
+ 'require_privileged_source_port': :'requirePrivilegedSourcePort',
81
+ 'access': :'access',
82
+ 'identity_squash': :'identitySquash',
83
+ 'anonymous_uid': :'anonymousUid',
84
+ 'anonymous_gid': :'anonymousGid'
85
+ # rubocop:enable Style/SymbolLiteral
86
+ }
87
+ end
88
+
89
+ # Attribute type mapping.
90
+ def self.swagger_types
91
+ {
92
+ # rubocop:disable Style/SymbolLiteral
93
+ 'source': :'String',
94
+ 'require_privileged_source_port': :'BOOLEAN',
95
+ 'access': :'String',
96
+ 'identity_squash': :'String',
97
+ 'anonymous_uid': :'Integer',
98
+ 'anonymous_gid': :'Integer'
99
+ # rubocop:enable Style/SymbolLiteral
100
+ }
101
+ end
102
+
103
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
104
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
105
+
106
+
107
+ # Initializes the object
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ # @option attributes [String] :source The value to assign to the {#source} property
110
+ # @option attributes [BOOLEAN] :require_privileged_source_port The value to assign to the {#require_privileged_source_port} property
111
+ # @option attributes [String] :access The value to assign to the {#access} property
112
+ # @option attributes [String] :identity_squash The value to assign to the {#identity_squash} property
113
+ # @option attributes [Integer] :anonymous_uid The value to assign to the {#anonymous_uid} property
114
+ # @option attributes [Integer] :anonymous_gid The value to assign to the {#anonymous_gid} property
115
+ def initialize(attributes = {})
116
+ return unless attributes.is_a?(Hash)
117
+
118
+ # convert string to symbol for hash key
119
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
120
+
121
+ self.source = attributes[:'source'] if attributes[:'source']
122
+
123
+ self.require_privileged_source_port = attributes[:'requirePrivilegedSourcePort'] unless attributes[:'requirePrivilegedSourcePort'].nil?
124
+
125
+ raise 'You cannot provide both :requirePrivilegedSourcePort and :require_privileged_source_port' if attributes.key?(:'requirePrivilegedSourcePort') && attributes.key?(:'require_privileged_source_port')
126
+
127
+ self.require_privileged_source_port = attributes[:'require_privileged_source_port'] unless attributes[:'require_privileged_source_port'].nil?
128
+
129
+ self.access = attributes[:'access'] if attributes[:'access']
130
+
131
+ self.identity_squash = attributes[:'identitySquash'] if attributes[:'identitySquash']
132
+
133
+ raise 'You cannot provide both :identitySquash and :identity_squash' if attributes.key?(:'identitySquash') && attributes.key?(:'identity_squash')
134
+
135
+ self.identity_squash = attributes[:'identity_squash'] if attributes[:'identity_squash']
136
+
137
+ self.anonymous_uid = attributes[:'anonymousUid'] if attributes[:'anonymousUid']
138
+
139
+ raise 'You cannot provide both :anonymousUid and :anonymous_uid' if attributes.key?(:'anonymousUid') && attributes.key?(:'anonymous_uid')
140
+
141
+ self.anonymous_uid = attributes[:'anonymous_uid'] if attributes[:'anonymous_uid']
142
+
143
+ self.anonymous_gid = attributes[:'anonymousGid'] if attributes[:'anonymousGid']
144
+
145
+ raise 'You cannot provide both :anonymousGid and :anonymous_gid' if attributes.key?(:'anonymousGid') && attributes.key?(:'anonymous_gid')
146
+
147
+ self.anonymous_gid = attributes[:'anonymous_gid'] if attributes[:'anonymous_gid']
148
+ end
149
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
150
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
151
+
152
+ # Custom attribute writer method checking allowed values (enum).
153
+ # @param [Object] access Object to be assigned
154
+ def access=(access)
155
+ # rubocop:disable Style/ConditionalAssignment
156
+ if access && !ACCESS_ENUM.include?(access)
157
+ # rubocop: disable Metrics/LineLength
158
+ OCI.logger.debug("Unknown value for 'access' [" + access + "]. Mapping to 'ACCESS_UNKNOWN_ENUM_VALUE'") if OCI.logger
159
+ # rubocop: enable Metrics/LineLength
160
+ @access = ACCESS_UNKNOWN_ENUM_VALUE
161
+ else
162
+ @access = access
163
+ end
164
+ # rubocop:enable Style/ConditionalAssignment
165
+ end
166
+
167
+ # Custom attribute writer method checking allowed values (enum).
168
+ # @param [Object] identity_squash Object to be assigned
169
+ def identity_squash=(identity_squash)
170
+ # rubocop:disable Style/ConditionalAssignment
171
+ if identity_squash && !IDENTITY_SQUASH_ENUM.include?(identity_squash)
172
+ # rubocop: disable Metrics/LineLength
173
+ OCI.logger.debug("Unknown value for 'identity_squash' [" + identity_squash + "]. Mapping to 'IDENTITY_SQUASH_UNKNOWN_ENUM_VALUE'") if OCI.logger
174
+ # rubocop: enable Metrics/LineLength
175
+ @identity_squash = IDENTITY_SQUASH_UNKNOWN_ENUM_VALUE
176
+ else
177
+ @identity_squash = identity_squash
178
+ end
179
+ # rubocop:enable Style/ConditionalAssignment
180
+ end
181
+
182
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
183
+
184
+
185
+ # Checks equality by comparing each attribute.
186
+ # @param [Object] other the other object to be compared
187
+ def ==(other)
188
+ return true if equal?(other)
189
+ self.class == other.class &&
190
+ source == other.source &&
191
+ require_privileged_source_port == other.require_privileged_source_port &&
192
+ access == other.access &&
193
+ identity_squash == other.identity_squash &&
194
+ anonymous_uid == other.anonymous_uid &&
195
+ anonymous_gid == other.anonymous_gid
196
+ end
197
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
198
+
199
+ # @see the `==` method
200
+ # @param [Object] other the other object to be compared
201
+ def eql?(other)
202
+ self == other
203
+ end
204
+
205
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
206
+
207
+
208
+ # Calculates hash code according to all attributes.
209
+ # @return [Fixnum] Hash code
210
+ def hash
211
+ [source, require_privileged_source_port, access, identity_squash, anonymous_uid, anonymous_gid].hash
212
+ end
213
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
214
+
215
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
216
+
217
+
218
+ # Builds the object from hash
219
+ # @param [Hash] attributes Model attributes in the form of hash
220
+ # @return [Object] Returns the model itself
221
+ def build_from_hash(attributes)
222
+ return nil unless attributes.is_a?(Hash)
223
+ self.class.swagger_types.each_pair do |key, type|
224
+ if type =~ /^Array<(.*)>/i
225
+ # check to ensure the input is an array given that the the attribute
226
+ # is documented as an array but the input is not
227
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
228
+ public_method("#{key}=").call(
229
+ attributes[self.class.attribute_map[key]]
230
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
231
+ )
232
+ end
233
+ elsif !attributes[self.class.attribute_map[key]].nil?
234
+ public_method("#{key}=").call(
235
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
236
+ )
237
+ end
238
+ # or else data not found in attributes(hash), not an issue as the data can be optional
239
+ end
240
+
241
+ self
242
+ end
243
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
244
+
245
+ # Returns the string representation of the object
246
+ # @return [String] String presentation of the object
247
+ def to_s
248
+ to_hash.to_s
249
+ end
250
+
251
+ # Returns the object in the form of hash
252
+ # @return [Hash] Returns the object in the form of hash
253
+ def to_hash
254
+ hash = {}
255
+ self.class.attribute_map.each_pair do |attr, param|
256
+ value = public_method(attr).call
257
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
258
+ hash[param] = _to_hash(value)
259
+ end
260
+ hash
261
+ end
262
+
263
+ private
264
+
265
+ # Outputs non-array value in the form of hash
266
+ # For object, use to_hash. Otherwise, just return the value
267
+ # @param [Object] value Any valid value
268
+ # @return [Hash] Returns the value in the form of hash
269
+ def _to_hash(value)
270
+ if value.is_a?(Array)
271
+ value.compact.map { |v| _to_hash(v) }
272
+ elsif value.is_a?(Hash)
273
+ {}.tap do |hash|
274
+ value.each { |k, v| hash[k] = _to_hash(v) }
275
+ end
276
+ elsif value.respond_to? :to_hash
277
+ value.to_hash
278
+ else
279
+ value
280
+ end
281
+ end
282
+ end
283
+ end
284
+ # rubocop:enable Lint/UnneededCopDisableDirective