oci 2.1.1 → 2.1.2

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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -1
  3. data/lib/oci.rb +1 -0
  4. data/lib/oci/audit/audit_client.rb +65 -30
  5. data/lib/oci/audit/models/audit_event.rb +17 -1
  6. data/lib/oci/core/blockstorage_client.rb +336 -197
  7. data/lib/oci/core/compute_client.rb +601 -357
  8. data/lib/oci/core/models/attach_volume_details.rb +4 -0
  9. data/lib/oci/core/models/boot_volume.rb +1 -1
  10. data/lib/oci/core/models/dhcp_option.rb +4 -0
  11. data/lib/oci/core/models/export_image_details.rb +4 -0
  12. data/lib/oci/core/models/image_source_details.rb +4 -0
  13. data/lib/oci/core/models/instance_source_details.rb +4 -0
  14. data/lib/oci/core/models/volume_attachment.rb +4 -0
  15. data/lib/oci/core/models/volume_source_details.rb +4 -0
  16. data/lib/oci/core/util.rb +29 -0
  17. data/lib/oci/core/virtual_network_client.rb +1695 -1031
  18. data/lib/oci/database/database_client.rb +612 -368
  19. data/lib/oci/database/models/create_data_guard_association_details.rb +4 -0
  20. data/lib/oci/database/models/create_db_home_with_db_system_id_base.rb +4 -0
  21. data/lib/oci/dns/dns_client.rb +271 -158
  22. data/lib/oci/email/email_client.rb +144 -79
  23. data/lib/oci/file_storage/file_storage_client.rb +354 -207
  24. data/lib/oci/identity/identity_client.rb +1111 -670
  25. data/lib/oci/identity/models/create_identity_provider_details.rb +4 -0
  26. data/lib/oci/identity/models/identity_provider.rb +4 -0
  27. data/lib/oci/identity/models/update_identity_provider_details.rb +4 -0
  28. data/lib/oci/load_balancer/load_balancer.rb +4 -0
  29. data/lib/oci/load_balancer/load_balancer_client.rb +943 -383
  30. data/lib/oci/load_balancer/load_balancer_client_composite_operations.rb +149 -17
  31. data/lib/oci/load_balancer/models/backend.rb +5 -5
  32. data/lib/oci/load_balancer/models/backend_details.rb +4 -4
  33. data/lib/oci/load_balancer/models/backend_set.rb +1 -1
  34. data/lib/oci/load_balancer/models/backend_set_health.rb +4 -4
  35. data/lib/oci/load_balancer/models/certificate.rb +2 -2
  36. data/lib/oci/load_balancer/models/certificate_details.rb +2 -4
  37. data/lib/oci/load_balancer/models/connection_configuration.rb +1 -28
  38. data/lib/oci/load_balancer/models/create_backend_details.rb +4 -4
  39. data/lib/oci/load_balancer/models/create_backend_set_details.rb +1 -1
  40. data/lib/oci/load_balancer/models/create_certificate_details.rb +5 -7
  41. data/lib/oci/load_balancer/models/create_hostname_details.rb +164 -0
  42. data/lib/oci/load_balancer/models/create_listener_details.rb +19 -5
  43. data/lib/oci/load_balancer/models/create_load_balancer_details.rb +12 -3
  44. data/lib/oci/load_balancer/models/create_path_route_set_details.rb +1 -1
  45. data/lib/oci/load_balancer/models/health_check_result.rb +2 -2
  46. data/lib/oci/load_balancer/models/health_checker.rb +3 -3
  47. data/lib/oci/load_balancer/models/health_checker_details.rb +3 -3
  48. data/lib/oci/load_balancer/models/hostname.rb +164 -0
  49. data/lib/oci/load_balancer/models/hostname_details.rb +163 -0
  50. data/lib/oci/load_balancer/models/ip_address.rb +1 -1
  51. data/lib/oci/load_balancer/models/listener.rb +19 -5
  52. data/lib/oci/load_balancer/models/listener_details.rb +17 -3
  53. data/lib/oci/load_balancer/models/load_balancer.rb +13 -2
  54. data/lib/oci/load_balancer/models/load_balancer_health.rb +3 -3
  55. data/lib/oci/load_balancer/models/load_balancer_policy.rb +4 -1
  56. data/lib/oci/load_balancer/models/load_balancer_protocol.rb +5 -2
  57. data/lib/oci/load_balancer/models/load_balancer_shape.rb +3 -0
  58. data/lib/oci/load_balancer/models/path_route.rb +1 -1
  59. data/lib/oci/load_balancer/models/path_route_set.rb +1 -1
  60. data/lib/oci/load_balancer/models/session_persistence_configuration_details.rb +2 -2
  61. data/lib/oci/load_balancer/models/ssl_configuration.rb +1 -1
  62. data/lib/oci/load_balancer/models/ssl_configuration_details.rb +1 -1
  63. data/lib/oci/load_balancer/models/update_backend_details.rb +3 -3
  64. data/lib/oci/load_balancer/models/update_health_checker_details.rb +3 -3
  65. data/lib/oci/load_balancer/models/update_hostname_details.rb +153 -0
  66. data/lib/oci/load_balancer/models/update_listener_details.rb +17 -3
  67. data/lib/oci/load_balancer/models/update_load_balancer_details.rb +1 -1
  68. data/lib/oci/load_balancer/models/work_request.rb +2 -0
  69. data/lib/oci/object_storage/object_storage_client.rb +443 -270
  70. data/lib/oci/retry/functions/should_retry_on_error.rb +28 -0
  71. data/lib/oci/retry/functions/sleep.rb +85 -0
  72. data/lib/oci/retry/internal/retry_state.rb +48 -0
  73. data/lib/oci/retry/retry.rb +85 -0
  74. data/lib/oci/retry/retry_config.rb +121 -0
  75. data/lib/oci/version.rb +1 -1
  76. metadata +39 -4
@@ -11,15 +11,19 @@ module OCI
11
11
 
12
12
  # **[Required]** The name of the associated backend set.
13
13
  #
14
- # Example: `My_backend_set`
14
+ # Example: `example_backend_set`
15
15
  #
16
16
  # @return [String]
17
17
  attr_accessor :default_backend_set_name
18
18
 
19
+ # An array of hostname resource names.
20
+ # @return [Array<String>]
21
+ attr_accessor :hostname_names
22
+
19
23
  # The name of the set of path-based routing rules, {PathRouteSet},
20
24
  # applied to this listener's traffic.
21
25
  #
22
- # Example: `path-route-set-001`
26
+ # Example: `example_path_route_set`
23
27
  #
24
28
  # @return [String]
25
29
  attr_accessor :path_route_set_name
@@ -49,6 +53,7 @@ module OCI
49
53
  # rubocop:disable Style/SymbolLiteral
50
54
  'connection_configuration': :'connectionConfiguration',
51
55
  'default_backend_set_name': :'defaultBackendSetName',
56
+ 'hostname_names': :'hostnameNames',
52
57
  'path_route_set_name': :'pathRouteSetName',
53
58
  'port': :'port',
54
59
  'protocol': :'protocol',
@@ -63,6 +68,7 @@ module OCI
63
68
  # rubocop:disable Style/SymbolLiteral
64
69
  'connection_configuration': :'OCI::LoadBalancer::Models::ConnectionConfiguration',
65
70
  'default_backend_set_name': :'String',
71
+ 'hostname_names': :'Array<String>',
66
72
  'path_route_set_name': :'String',
67
73
  'port': :'Integer',
68
74
  'protocol': :'String',
@@ -79,6 +85,7 @@ module OCI
79
85
  # @param [Hash] attributes Model attributes in the form of hash
80
86
  # @option attributes [OCI::LoadBalancer::Models::ConnectionConfiguration] :connection_configuration The value to assign to the {#connection_configuration} property
81
87
  # @option attributes [String] :default_backend_set_name The value to assign to the {#default_backend_set_name} property
88
+ # @option attributes [Array<String>] :hostname_names The value to assign to the {#hostname_names} property
82
89
  # @option attributes [String] :path_route_set_name The value to assign to the {#path_route_set_name} property
83
90
  # @option attributes [Integer] :port The value to assign to the {#port} property
84
91
  # @option attributes [String] :protocol The value to assign to the {#protocol} property
@@ -101,6 +108,12 @@ module OCI
101
108
 
102
109
  self.default_backend_set_name = attributes[:'default_backend_set_name'] if attributes[:'default_backend_set_name']
103
110
 
111
+ self.hostname_names = attributes[:'hostnameNames'] if attributes[:'hostnameNames']
112
+
113
+ raise 'You cannot provide both :hostnameNames and :hostname_names' if attributes.key?(:'hostnameNames') && attributes.key?(:'hostname_names')
114
+
115
+ self.hostname_names = attributes[:'hostname_names'] if attributes[:'hostname_names']
116
+
104
117
  self.path_route_set_name = attributes[:'pathRouteSetName'] if attributes[:'pathRouteSetName']
105
118
 
106
119
  raise 'You cannot provide both :pathRouteSetName and :path_route_set_name' if attributes.key?(:'pathRouteSetName') && attributes.key?(:'path_route_set_name')
@@ -130,6 +143,7 @@ module OCI
130
143
  self.class == other.class &&
131
144
  connection_configuration == other.connection_configuration &&
132
145
  default_backend_set_name == other.default_backend_set_name &&
146
+ hostname_names == other.hostname_names &&
133
147
  path_route_set_name == other.path_route_set_name &&
134
148
  port == other.port &&
135
149
  protocol == other.protocol &&
@@ -149,7 +163,7 @@ module OCI
149
163
  # Calculates hash code according to all attributes.
150
164
  # @return [Fixnum] Hash code
151
165
  def hash
152
- [connection_configuration, default_backend_set_name, path_route_set_name, port, protocol, ssl_configuration].hash
166
+ [connection_configuration, default_backend_set_name, hostname_names, path_route_set_name, port, protocol, ssl_configuration].hash
153
167
  end
154
168
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
155
169
 
@@ -38,11 +38,14 @@ module OCI
38
38
 
39
39
  # **[Required]** A user-friendly name. It does not have to be unique, and it is changeable.
40
40
  #
41
- # Example: `My load balancer`
41
+ # Example: `example_load_balancer`
42
42
  #
43
43
  # @return [String]
44
44
  attr_accessor :display_name
45
45
 
46
+ # @return [Hash<String, OCI::LoadBalancer::Models::Hostname>]
47
+ attr_accessor :hostnames
48
+
46
49
  # **[Required]** The [OCID](https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/identifiers.htm) of the load balancer.
47
50
  # @return [String]
48
51
  attr_accessor :id
@@ -66,6 +69,8 @@ module OCI
66
69
  # hosts the secondary (standby) load balancer. A public load balancer is accessible from the internet, depending on your
67
70
  # VCN's [security list rules](https://docs.us-phoenix-1.oraclecloud.com/Content/Network/Concepts/securitylists.htm).
68
71
  #
72
+ # Example: `true`
73
+ #
69
74
  # @return [BOOLEAN]
70
75
  attr_accessor :is_private
71
76
 
@@ -108,6 +113,7 @@ module OCI
108
113
  'certificates': :'certificates',
109
114
  'compartment_id': :'compartmentId',
110
115
  'display_name': :'displayName',
116
+ 'hostnames': :'hostnames',
111
117
  'id': :'id',
112
118
  'ip_addresses': :'ipAddresses',
113
119
  'is_private': :'isPrivate',
@@ -129,6 +135,7 @@ module OCI
129
135
  'certificates': :'Hash<String, OCI::LoadBalancer::Models::Certificate>',
130
136
  'compartment_id': :'String',
131
137
  'display_name': :'String',
138
+ 'hostnames': :'Hash<String, OCI::LoadBalancer::Models::Hostname>',
132
139
  'id': :'String',
133
140
  'ip_addresses': :'Array<OCI::LoadBalancer::Models::IpAddress>',
134
141
  'is_private': :'BOOLEAN',
@@ -152,6 +159,7 @@ module OCI
152
159
  # @option attributes [Hash<String, OCI::LoadBalancer::Models::Certificate>] :certificates The value to assign to the {#certificates} property
153
160
  # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
154
161
  # @option attributes [String] :display_name The value to assign to the {#display_name} property
162
+ # @option attributes [Hash<String, OCI::LoadBalancer::Models::Hostname>] :hostnames The value to assign to the {#hostnames} property
155
163
  # @option attributes [String] :id The value to assign to the {#id} property
156
164
  # @option attributes [Array<OCI::LoadBalancer::Models::IpAddress>] :ip_addresses The value to assign to the {#ip_addresses} property
157
165
  # @option attributes [BOOLEAN] :is_private The value to assign to the {#is_private} property
@@ -187,6 +195,8 @@ module OCI
187
195
 
188
196
  self.display_name = attributes[:'display_name'] if attributes[:'display_name']
189
197
 
198
+ self.hostnames = attributes[:'hostnames'] if attributes[:'hostnames']
199
+
190
200
  self.id = attributes[:'id'] if attributes[:'id']
191
201
 
192
202
  self.ip_addresses = attributes[:'ipAddresses'] if attributes[:'ipAddresses']
@@ -263,6 +273,7 @@ module OCI
263
273
  certificates == other.certificates &&
264
274
  compartment_id == other.compartment_id &&
265
275
  display_name == other.display_name &&
276
+ hostnames == other.hostnames &&
266
277
  id == other.id &&
267
278
  ip_addresses == other.ip_addresses &&
268
279
  is_private == other.is_private &&
@@ -287,7 +298,7 @@ module OCI
287
298
  # Calculates hash code according to all attributes.
288
299
  # @return [Fixnum] Hash code
289
300
  def hash
290
- [backend_sets, certificates, compartment_id, display_name, id, ip_addresses, is_private, lifecycle_state, listeners, path_route_sets, shape_name, subnet_ids, time_created].hash
301
+ [backend_sets, certificates, compartment_id, display_name, hostnames, id, ip_addresses, is_private, lifecycle_state, listeners, path_route_sets, shape_name, subnet_ids, time_created].hash
291
302
  end
292
303
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
293
304
 
@@ -22,7 +22,7 @@ module OCI
22
22
  # **[Required]** A list of backend sets that are currently in the `CRITICAL` health state. The list identifies each backend set by the
23
23
  # friendly name you assigned when you created it.
24
24
  #
25
- # Example: `My_backend_set`
25
+ # Example: `example_backend_set`
26
26
  #
27
27
  # @return [Array<String>]
28
28
  attr_accessor :critical_state_backend_set_names
@@ -60,7 +60,7 @@ module OCI
60
60
  # **[Required]** A list of backend sets that are currently in the `UNKNOWN` health state. The list identifies each backend set by the
61
61
  # friendly name you assigned when you created it.
62
62
  #
63
- # Example: `Backend_set2`
63
+ # Example: `example_backend_set2`
64
64
  #
65
65
  # @return [Array<String>]
66
66
  attr_accessor :unknown_state_backend_set_names
@@ -68,7 +68,7 @@ module OCI
68
68
  # **[Required]** A list of backend sets that are currently in the `WARNING` health state. The list identifies each backend set by the
69
69
  # friendly name you assigned when you created it.
70
70
  #
71
- # Example: `Backend_set3`
71
+ # Example: `example_backend_set3`
72
72
  #
73
73
  # @return [Array<String>]
74
74
  attr_accessor :warning_state_backend_set_names
@@ -9,7 +9,10 @@ module OCI
9
9
  # [How Load Balancing Policies Work](https://docs.us-phoenix-1.oraclecloud.com/Content/Balance/Reference/lbpolicies.htm).
10
10
  #
11
11
  class LoadBalancer::Models::LoadBalancerPolicy # rubocop:disable Metrics/LineLength
12
- # **[Required]** The name of the load balancing policy.
12
+ # **[Required]** The name of a load balancing policy.
13
+ #
14
+ # Example: 'LEAST_CONNECTIONS'
15
+ #
13
16
  # @return [String]
14
17
  attr_accessor :name
15
18
 
@@ -4,9 +4,12 @@ require 'date'
4
4
 
5
5
  # rubocop:disable Lint/UnneededCopDisableDirective
6
6
  module OCI
7
- # The protocol that defines the type of traffic accepted by a listener.
7
+ # A protocol that defines the type of traffic accepted by a listener.
8
8
  class LoadBalancer::Models::LoadBalancerProtocol # rubocop:disable Metrics/LineLength
9
- # **[Required]** The name of the protocol.
9
+ # **[Required]** The name of a protocol.
10
+ #
11
+ # Example: 'HTTP'
12
+ #
10
13
  # @return [String]
11
14
  attr_accessor :name
12
15
 
@@ -12,6 +12,9 @@ module OCI
12
12
  #
13
13
  class LoadBalancer::Models::LoadBalancerShape # rubocop:disable Metrics/LineLength
14
14
  # **[Required]** The name of the shape.
15
+ #
16
+ # Example: `100Mbps`
17
+ #
15
18
  # @return [String]
16
19
  attr_accessor :name
17
20
 
@@ -11,7 +11,7 @@ module OCI
11
11
  class LoadBalancer::Models::PathRoute # rubocop:disable Metrics/LineLength
12
12
  # **[Required]** The name of the target backend set for requests where the incoming URI matches the specified path.
13
13
  #
14
- # Example: `My_backend_set`
14
+ # Example: `example_backend_set`
15
15
  #
16
16
  # @return [String]
17
17
  attr_accessor :backend_set_name
@@ -10,7 +10,7 @@ module OCI
10
10
  class LoadBalancer::Models::PathRouteSet # rubocop:disable Metrics/LineLength
11
11
  # **[Required]** The unique name for this set of path route rules. Avoid entering confidential information.
12
12
  #
13
- # Example: `path-route-set-001`
13
+ # Example: `example_path_route_set`
14
14
  #
15
15
  # @return [String]
16
16
  attr_accessor :name
@@ -18,7 +18,7 @@ module OCI
18
18
  # **[Required]** The name of the cookie used to detect a session initiated by the backend server. Use '*' to specify
19
19
  # that any cookie set by the backend causes the session to persist.
20
20
  #
21
- # Example: `myCookieName`
21
+ # Example: `example_cookie`
22
22
  #
23
23
  # @return [String]
24
24
  attr_accessor :cookie_name
@@ -26,7 +26,7 @@ module OCI
26
26
  # Whether the load balancer is prevented from directing traffic from a persistent session client to
27
27
  # a different backend server if the original server is unavailable. Defaults to false.
28
28
  #
29
- # Example: `true`
29
+ # Example: `false`
30
30
  #
31
31
  # @return [BOOLEAN]
32
32
  attr_accessor :disable_fallback
@@ -13,7 +13,7 @@ module OCI
13
13
  # Valid certificate bundle names include only alphanumeric characters, dashes, and underscores.
14
14
  # Certificate bundle names cannot contain spaces. Avoid entering confidential information.
15
15
  #
16
- # Example: `My_certificate_bundle`
16
+ # Example: `example_certificate_bundle`
17
17
  #
18
18
  # @return [String]
19
19
  attr_accessor :certificate_name
@@ -10,7 +10,7 @@ module OCI
10
10
  # Valid certificate bundle names include only alphanumeric characters, dashes, and underscores.
11
11
  # Certificate bundle names cannot contain spaces. Avoid entering confidential information.
12
12
  #
13
- # Example: `My_certificate_bundle`
13
+ # Example: `example_certificate_bundle`
14
14
  #
15
15
  # @return [String]
16
16
  attr_accessor :certificate_name
@@ -9,7 +9,7 @@ module OCI
9
9
  # **[Required]** Whether the load balancer should treat this server as a backup unit. If `true`, the load balancer forwards no ingress
10
10
  # traffic to this backend server unless all other backend servers not marked as \"backup\" fail the health check policy.
11
11
  #
12
- # Example: `true`
12
+ # Example: `false`
13
13
  #
14
14
  # @return [BOOLEAN]
15
15
  attr_accessor :backup
@@ -17,7 +17,7 @@ module OCI
17
17
  # **[Required]** Whether the load balancer should drain this server. Servers marked \"drain\" receive no new
18
18
  # incoming traffic.
19
19
  #
20
- # Example: `true`
20
+ # Example: `false`
21
21
  #
22
22
  # @return [BOOLEAN]
23
23
  attr_accessor :drain
@@ -25,7 +25,7 @@ module OCI
25
25
  # **[Required]** Whether the load balancer should treat this server as offline. Offline servers receive no incoming
26
26
  # traffic.
27
27
  #
28
- # Example: `true`
28
+ # Example: `false`
29
29
  #
30
30
  # @return [BOOLEAN]
31
31
  attr_accessor :offline
@@ -8,7 +8,7 @@ module OCI
8
8
  class LoadBalancer::Models::UpdateHealthCheckerDetails # rubocop:disable Metrics/LineLength
9
9
  # **[Required]** The interval between health checks, in milliseconds.
10
10
  #
11
- # Example: `30000`
11
+ # Example: `10000`
12
12
  #
13
13
  # @return [Integer]
14
14
  attr_accessor :interval_in_millis
@@ -29,7 +29,7 @@ module OCI
29
29
 
30
30
  # **[Required]** A regular expression for parsing the response body from the backend server.
31
31
  #
32
- # Example: `^(500|40[1348])$`
32
+ # Example: `^((?!false).|\\s)*$`
33
33
  #
34
34
  # @return [String]
35
35
  attr_accessor :response_body_regex
@@ -51,7 +51,7 @@ module OCI
51
51
  # **[Required]** The maximum time, in milliseconds, to wait for a reply to a health check. A health check is successful only if a reply
52
52
  # returns within this timeout period.
53
53
  #
54
- # Example: `6000`
54
+ # Example: `3000`
55
55
  #
56
56
  # @return [Integer]
57
57
  attr_accessor :timeout_in_millis
@@ -0,0 +1,153 @@
1
+ # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ # rubocop:disable Lint/UnneededCopDisableDirective
6
+ module OCI
7
+ # The configuration details for updating a virtual hostname.
8
+ # For more information on virtual hostnames, see
9
+ # [Managing Request Routing](https://docs.us-phoenix-1.oraclecloud.com/Content/Balance/Tasks/managingrequest.htm).
10
+ #
11
+ class LoadBalancer::Models::UpdateHostnameDetails # rubocop:disable Metrics/LineLength
12
+ # The virtual hostname to update. For more information about virtual hostname string construction, see
13
+ # [Managing Request Routing](https://docs.us-phoenix-1.oraclecloud.com/Content/Balance/Tasks/managingrequest.htm#routing).
14
+ #
15
+ # Example: `app.example.com`
16
+ #
17
+ # @return [String]
18
+ attr_accessor :hostname
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ # rubocop:disable Style/SymbolLiteral
24
+ 'hostname': :'hostname'
25
+ # rubocop:enable Style/SymbolLiteral
26
+ }
27
+ end
28
+
29
+ # Attribute type mapping.
30
+ def self.swagger_types
31
+ {
32
+ # rubocop:disable Style/SymbolLiteral
33
+ 'hostname': :'String'
34
+ # rubocop:enable Style/SymbolLiteral
35
+ }
36
+ end
37
+
38
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
39
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
40
+
41
+
42
+ # Initializes the object
43
+ # @param [Hash] attributes Model attributes in the form of hash
44
+ # @option attributes [String] :hostname The value to assign to the {#hostname} property
45
+ def initialize(attributes = {})
46
+ return unless attributes.is_a?(Hash)
47
+
48
+ # convert string to symbol for hash key
49
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
50
+
51
+ self.hostname = attributes[:'hostname'] if attributes[:'hostname']
52
+ end
53
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
54
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
55
+
56
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
57
+
58
+
59
+ # Checks equality by comparing each attribute.
60
+ # @param [Object] other the other object to be compared
61
+ def ==(other)
62
+ return true if equal?(other)
63
+ self.class == other.class &&
64
+ hostname == other.hostname
65
+ end
66
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
67
+
68
+ # @see the `==` method
69
+ # @param [Object] other the other object to be compared
70
+ def eql?(other)
71
+ self == other
72
+ end
73
+
74
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
75
+
76
+
77
+ # Calculates hash code according to all attributes.
78
+ # @return [Fixnum] Hash code
79
+ def hash
80
+ [hostname].hash
81
+ end
82
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
83
+
84
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
85
+
86
+
87
+ # Builds the object from hash
88
+ # @param [Hash] attributes Model attributes in the form of hash
89
+ # @return [Object] Returns the model itself
90
+ def build_from_hash(attributes)
91
+ return nil unless attributes.is_a?(Hash)
92
+ self.class.swagger_types.each_pair do |key, type|
93
+ if type =~ /^Array<(.*)>/i
94
+ # check to ensure the input is an array given that the the attribute
95
+ # is documented as an array but the input is not
96
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
97
+ public_method("#{key}=").call(
98
+ attributes[self.class.attribute_map[key]]
99
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
100
+ )
101
+ end
102
+ elsif !attributes[self.class.attribute_map[key]].nil?
103
+ public_method("#{key}=").call(
104
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
105
+ )
106
+ end
107
+ # or else data not found in attributes(hash), not an issue as the data can be optional
108
+ end
109
+
110
+ self
111
+ end
112
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
113
+
114
+ # Returns the string representation of the object
115
+ # @return [String] String presentation of the object
116
+ def to_s
117
+ to_hash.to_s
118
+ end
119
+
120
+ # Returns the object in the form of hash
121
+ # @return [Hash] Returns the object in the form of hash
122
+ def to_hash
123
+ hash = {}
124
+ self.class.attribute_map.each_pair do |attr, param|
125
+ value = public_method(attr).call
126
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
127
+ hash[param] = _to_hash(value)
128
+ end
129
+ hash
130
+ end
131
+
132
+ private
133
+
134
+ # Outputs non-array value in the form of hash
135
+ # For object, use to_hash. Otherwise, just return the value
136
+ # @param [Object] value Any valid value
137
+ # @return [Hash] Returns the value in the form of hash
138
+ def _to_hash(value)
139
+ if value.is_a?(Array)
140
+ value.compact.map { |v| _to_hash(v) }
141
+ elsif value.is_a?(Hash)
142
+ {}.tap do |hash|
143
+ value.each { |k, v| hash[k] = _to_hash(v) }
144
+ end
145
+ elsif value.respond_to? :to_hash
146
+ value.to_hash
147
+ else
148
+ value
149
+ end
150
+ end
151
+ end
152
+ end
153
+ # rubocop:enable Lint/UnneededCopDisableDirective