oraclebmc 1.2.3 → 1.2.4

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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/oraclebmc/core/blockstorage_client.rb +16 -11
  4. data/lib/oraclebmc/core/compute_client.rb +227 -37
  5. data/lib/oraclebmc/core/core.rb +11 -0
  6. data/lib/oraclebmc/core/models/attach_i_scsi_volume_details.rb +1 -2
  7. data/lib/oraclebmc/core/models/attach_vnic_details.rb +144 -0
  8. data/lib/oraclebmc/core/models/attach_volume_details.rb +5 -6
  9. data/lib/oraclebmc/core/models/capture_console_history_details.rb +1 -2
  10. data/lib/oraclebmc/core/models/console_history.rb +8 -8
  11. data/lib/oraclebmc/core/models/cpe.rb +7 -6
  12. data/lib/oraclebmc/core/models/create_cpe_details.rb +4 -5
  13. data/lib/oraclebmc/core/models/create_cross_connect_details.rb +9 -8
  14. data/lib/oraclebmc/core/models/create_cross_connect_group_details.rb +4 -3
  15. data/lib/oraclebmc/core/models/create_dhcp_details.rb +5 -6
  16. data/lib/oraclebmc/core/models/create_drg_attachment_details.rb +4 -5
  17. data/lib/oraclebmc/core/models/create_drg_details.rb +3 -4
  18. data/lib/oraclebmc/core/models/create_image_details.rb +19 -7
  19. data/lib/oraclebmc/core/models/create_internet_gateway_details.rb +5 -6
  20. data/lib/oraclebmc/core/models/create_ip_sec_connection_details.rb +6 -7
  21. data/lib/oraclebmc/core/models/create_private_ip_details.rb +173 -0
  22. data/lib/oraclebmc/core/models/create_route_table_details.rb +5 -6
  23. data/lib/oraclebmc/core/models/create_security_list_details.rb +6 -7
  24. data/lib/oraclebmc/core/models/create_subnet_details.rb +14 -15
  25. data/lib/oraclebmc/core/models/create_vcn_details.rb +6 -8
  26. data/lib/oraclebmc/core/models/create_virtual_circuit_details.rb +11 -12
  27. data/lib/oraclebmc/core/models/create_vnic_details.rb +39 -27
  28. data/lib/oraclebmc/core/models/create_volume_backup_details.rb +4 -3
  29. data/lib/oraclebmc/core/models/create_volume_details.rb +6 -6
  30. data/lib/oraclebmc/core/models/cross_connect.rb +11 -10
  31. data/lib/oraclebmc/core/models/cross_connect_group.rb +6 -6
  32. data/lib/oraclebmc/core/models/cross_connect_location.rb +2 -3
  33. data/lib/oraclebmc/core/models/cross_connect_mapping.rb +5 -6
  34. data/lib/oraclebmc/core/models/cross_connect_port_speed_shape.rb +2 -3
  35. data/lib/oraclebmc/core/models/cross_connect_status.rb +4 -5
  36. data/lib/oraclebmc/core/models/dhcp_dns_option.rb +2 -3
  37. data/lib/oraclebmc/core/models/dhcp_option.rb +1 -2
  38. data/lib/oraclebmc/core/models/dhcp_options.rb +9 -8
  39. data/lib/oraclebmc/core/models/dhcp_search_domain_option.rb +1 -2
  40. data/lib/oraclebmc/core/models/drg.rb +7 -6
  41. data/lib/oraclebmc/core/models/drg_attachment.rb +9 -8
  42. data/lib/oraclebmc/core/models/egress_security_rule.rb +6 -7
  43. data/lib/oraclebmc/core/models/export_image_details.rb +134 -0
  44. data/lib/oraclebmc/core/models/export_image_via_object_storage_tuple_details.rb +150 -0
  45. data/lib/oraclebmc/core/models/export_image_via_object_storage_uri_details.rb +130 -0
  46. data/lib/oraclebmc/core/models/fast_connect_provider_service.rb +3 -4
  47. data/lib/oraclebmc/core/models/i_scsi_volume_attachment.rb +5 -6
  48. data/lib/oraclebmc/core/models/icmp_options.rb +2 -3
  49. data/lib/oraclebmc/core/models/image.rb +12 -10
  50. data/lib/oraclebmc/core/models/image_source_details.rb +134 -0
  51. data/lib/oraclebmc/core/models/image_source_via_object_storage_tuple_details.rb +150 -0
  52. data/lib/oraclebmc/core/models/image_source_via_object_storage_uri_details.rb +128 -0
  53. data/lib/oraclebmc/core/models/ingress_security_rule.rb +6 -7
  54. data/lib/oraclebmc/core/models/instance.rb +13 -13
  55. data/lib/oraclebmc/core/models/instance_credentials.rb +2 -3
  56. data/lib/oraclebmc/core/models/internet_gateway.rb +9 -8
  57. data/lib/oraclebmc/core/models/ip_sec_connection.rb +10 -9
  58. data/lib/oraclebmc/core/models/ip_sec_connection_device_config.rb +4 -5
  59. data/lib/oraclebmc/core/models/ip_sec_connection_device_status.rb +4 -5
  60. data/lib/oraclebmc/core/models/launch_instance_details.rb +17 -15
  61. data/lib/oraclebmc/core/models/letter_of_authority.rb +6 -7
  62. data/lib/oraclebmc/core/models/port_range.rb +2 -3
  63. data/lib/oraclebmc/core/models/private_ip.rb +248 -0
  64. data/lib/oraclebmc/core/models/route_rule.rb +2 -3
  65. data/lib/oraclebmc/core/models/route_table.rb +9 -8
  66. data/lib/oraclebmc/core/models/security_list.rb +10 -9
  67. data/lib/oraclebmc/core/models/shape.rb +1 -2
  68. data/lib/oraclebmc/core/models/subnet.rb +21 -19
  69. data/lib/oraclebmc/core/models/tcp_options.rb +2 -3
  70. data/lib/oraclebmc/core/models/tunnel_config.rb +3 -4
  71. data/lib/oraclebmc/core/models/tunnel_status.rb +4 -5
  72. data/lib/oraclebmc/core/models/udp_options.rb +2 -3
  73. data/lib/oraclebmc/core/models/update_cpe_details.rb +3 -2
  74. data/lib/oraclebmc/core/models/update_cross_connect_details.rb +4 -3
  75. data/lib/oraclebmc/core/models/update_cross_connect_group_details.rb +3 -2
  76. data/lib/oraclebmc/core/models/update_dhcp_details.rb +4 -3
  77. data/lib/oraclebmc/core/models/update_drg_attachment_details.rb +3 -2
  78. data/lib/oraclebmc/core/models/update_drg_details.rb +3 -2
  79. data/lib/oraclebmc/core/models/update_image_details.rb +3 -3
  80. data/lib/oraclebmc/core/models/update_instance_details.rb +2 -2
  81. data/lib/oraclebmc/core/models/update_internet_gateway_details.rb +4 -3
  82. data/lib/oraclebmc/core/models/update_ip_sec_connection_details.rb +3 -2
  83. data/lib/oraclebmc/core/models/update_private_ip_details.rb +157 -0
  84. data/lib/oraclebmc/core/models/update_route_table_details.rb +4 -3
  85. data/lib/oraclebmc/core/models/update_security_list_details.rb +5 -4
  86. data/lib/oraclebmc/core/models/update_subnet_details.rb +3 -2
  87. data/lib/oraclebmc/core/models/update_vcn_details.rb +3 -2
  88. data/lib/oraclebmc/core/models/update_virtual_circuit_details.rb +8 -8
  89. data/lib/oraclebmc/core/models/update_vnic_details.rb +144 -0
  90. data/lib/oraclebmc/core/models/update_volume_backup_details.rb +3 -2
  91. data/lib/oraclebmc/core/models/update_volume_details.rb +2 -2
  92. data/lib/oraclebmc/core/models/vcn.rb +13 -12
  93. data/lib/oraclebmc/core/models/virtual_circuit.rb +18 -18
  94. data/lib/oraclebmc/core/models/virtual_circuit_bandwidth_shape.rb +2 -3
  95. data/lib/oraclebmc/core/models/vnic.rb +47 -19
  96. data/lib/oraclebmc/core/models/vnic_attachment.rb +33 -15
  97. data/lib/oraclebmc/core/models/volume.rb +8 -8
  98. data/lib/oraclebmc/core/models/volume_attachment.rb +10 -10
  99. data/lib/oraclebmc/core/models/volume_backup.rb +11 -10
  100. data/lib/oraclebmc/core/virtual_network_client.rb +364 -87
  101. data/lib/oraclebmc/errors.rb +19 -1
  102. data/lib/oraclebmc/identity/identity_client.rb +31 -31
  103. data/lib/oraclebmc/identity/models/add_user_to_group_details.rb +2 -3
  104. data/lib/oraclebmc/identity/models/api_key.rb +7 -8
  105. data/lib/oraclebmc/identity/models/availability_domain.rb +2 -3
  106. data/lib/oraclebmc/identity/models/compartment.rb +7 -8
  107. data/lib/oraclebmc/identity/models/create_api_key_details.rb +1 -2
  108. data/lib/oraclebmc/identity/models/create_compartment_details.rb +3 -4
  109. data/lib/oraclebmc/identity/models/create_group_details.rb +3 -4
  110. data/lib/oraclebmc/identity/models/create_identity_provider_details.rb +5 -6
  111. data/lib/oraclebmc/identity/models/create_idp_group_mapping_details.rb +2 -3
  112. data/lib/oraclebmc/identity/models/create_policy_details.rb +5 -6
  113. data/lib/oraclebmc/identity/models/create_region_subscription_details.rb +1 -2
  114. data/lib/oraclebmc/identity/models/create_saml2_identity_provider_details.rb +2 -3
  115. data/lib/oraclebmc/identity/models/create_swift_password_details.rb +1 -2
  116. data/lib/oraclebmc/identity/models/create_user_details.rb +3 -4
  117. data/lib/oraclebmc/identity/models/group.rb +7 -8
  118. data/lib/oraclebmc/identity/models/identity_provider.rb +9 -10
  119. data/lib/oraclebmc/identity/models/idp_group_mapping.rb +8 -9
  120. data/lib/oraclebmc/identity/models/policy.rb +9 -10
  121. data/lib/oraclebmc/identity/models/region.rb +2 -3
  122. data/lib/oraclebmc/identity/models/region_subscription.rb +4 -5
  123. data/lib/oraclebmc/identity/models/saml2_identity_provider.rb +3 -4
  124. data/lib/oraclebmc/identity/models/swift_password.rb +8 -9
  125. data/lib/oraclebmc/identity/models/tenancy.rb +4 -5
  126. data/lib/oraclebmc/identity/models/ui_password.rb +5 -6
  127. data/lib/oraclebmc/identity/models/update_compartment_details.rb +1 -2
  128. data/lib/oraclebmc/identity/models/update_group_details.rb +1 -2
  129. data/lib/oraclebmc/identity/models/update_identity_provider_details.rb +2 -3
  130. data/lib/oraclebmc/identity/models/update_idp_group_mapping_details.rb +2 -3
  131. data/lib/oraclebmc/identity/models/update_policy_details.rb +3 -4
  132. data/lib/oraclebmc/identity/models/update_saml2_identity_provider_details.rb +2 -3
  133. data/lib/oraclebmc/identity/models/update_state_details.rb +1 -2
  134. data/lib/oraclebmc/identity/models/update_swift_password_details.rb +1 -2
  135. data/lib/oraclebmc/identity/models/update_user_details.rb +1 -2
  136. data/lib/oraclebmc/identity/models/user.rb +7 -8
  137. data/lib/oraclebmc/identity/models/user_group_membership.rb +7 -8
  138. data/lib/oraclebmc/load_balancer/load_balancer_client.rb +11 -11
  139. data/lib/oraclebmc/load_balancer/models/backend.rb +7 -8
  140. data/lib/oraclebmc/load_balancer/models/backend_details.rb +6 -7
  141. data/lib/oraclebmc/load_balancer/models/backend_set.rb +6 -7
  142. data/lib/oraclebmc/load_balancer/models/backend_set_details.rb +5 -6
  143. data/lib/oraclebmc/load_balancer/models/certificate.rb +3 -4
  144. data/lib/oraclebmc/load_balancer/models/certificate_details.rb +5 -6
  145. data/lib/oraclebmc/load_balancer/models/create_backend_details.rb +6 -7
  146. data/lib/oraclebmc/load_balancer/models/create_backend_set_details.rb +6 -7
  147. data/lib/oraclebmc/load_balancer/models/create_certificate_details.rb +5 -6
  148. data/lib/oraclebmc/load_balancer/models/create_listener_details.rb +5 -6
  149. data/lib/oraclebmc/load_balancer/models/create_load_balancer_details.rb +8 -9
  150. data/lib/oraclebmc/load_balancer/models/health_checker.rb +8 -9
  151. data/lib/oraclebmc/load_balancer/models/health_checker_details.rb +8 -9
  152. data/lib/oraclebmc/load_balancer/models/ip_address.rb +2 -3
  153. data/lib/oraclebmc/load_balancer/models/listener.rb +5 -6
  154. data/lib/oraclebmc/load_balancer/models/listener_details.rb +4 -5
  155. data/lib/oraclebmc/load_balancer/models/load_balancer.rb +12 -13
  156. data/lib/oraclebmc/load_balancer/models/load_balancer_policy.rb +1 -2
  157. data/lib/oraclebmc/load_balancer/models/load_balancer_protocol.rb +1 -2
  158. data/lib/oraclebmc/load_balancer/models/load_balancer_shape.rb +1 -2
  159. data/lib/oraclebmc/load_balancer/models/session_persistence_configuration_details.rb +2 -3
  160. data/lib/oraclebmc/load_balancer/models/ssl_configuration.rb +3 -4
  161. data/lib/oraclebmc/load_balancer/models/ssl_configuration_details.rb +3 -4
  162. data/lib/oraclebmc/load_balancer/models/update_backend_details.rb +4 -5
  163. data/lib/oraclebmc/load_balancer/models/update_backend_set_details.rb +5 -6
  164. data/lib/oraclebmc/load_balancer/models/update_health_checker_details.rb +8 -9
  165. data/lib/oraclebmc/load_balancer/models/update_listener_details.rb +4 -5
  166. data/lib/oraclebmc/load_balancer/models/update_load_balancer_details.rb +1 -2
  167. data/lib/oraclebmc/load_balancer/models/work_request.rb +8 -9
  168. data/lib/oraclebmc/load_balancer/models/work_request_error.rb +2 -3
  169. data/lib/oraclebmc/version.rb +1 -1
  170. metadata +13 -2
@@ -20,6 +20,8 @@ module OracleBMC
20
20
  attr_accessor :cpe_id
21
21
 
22
22
  # A user-friendly name. Does not have to be unique, and it's changeable.
23
+ # Avoid entering confidential information.
24
+ #
23
25
  # @return [String]
24
26
  attr_accessor :display_name
25
27
 
@@ -59,39 +61,38 @@ module OracleBMC
59
61
  # convert string to symbol for hash key
60
62
  attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
61
63
 
62
-
63
64
  if attributes[:'compartmentId']
64
65
  self.compartment_id = attributes[:'compartmentId']
65
66
  end
66
-
67
+
67
68
  if attributes[:'cpeId']
68
69
  self.cpe_id = attributes[:'cpeId']
69
70
  end
70
-
71
+
71
72
  if attributes[:'displayName']
72
73
  self.display_name = attributes[:'displayName']
73
74
  end
74
-
75
+
75
76
  if attributes[:'drgId']
76
77
  self.drg_id = attributes[:'drgId']
77
78
  end
78
-
79
+
79
80
  if attributes[:'id']
80
81
  self.id = attributes[:'id']
81
82
  end
82
-
83
+
83
84
  if attributes[:'lifecycleState']
84
85
  self.lifecycle_state = attributes[:'lifecycleState']
85
86
  end
86
-
87
+
87
88
  if attributes[:'staticRoutes']
88
89
  self.static_routes = attributes[:'staticRoutes']
89
90
  end
90
-
91
+
91
92
  if attributes[:'timeCreated']
92
93
  self.time_created = attributes[:'timeCreated']
93
94
  end
94
-
95
+
95
96
  end
96
97
 
97
98
  # Custom attribute writer method checking allowed values (enum).
@@ -29,23 +29,22 @@ module OracleBMC
29
29
  # convert string to symbol for hash key
30
30
  attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
31
31
 
32
-
33
32
  if attributes[:'compartmentId']
34
33
  self.compartment_id = attributes[:'compartmentId']
35
34
  end
36
-
35
+
37
36
  if attributes[:'id']
38
37
  self.id = attributes[:'id']
39
38
  end
40
-
39
+
41
40
  if attributes[:'timeCreated']
42
41
  self.time_created = attributes[:'timeCreated']
43
42
  end
44
-
43
+
45
44
  if attributes[:'tunnels']
46
45
  self.tunnels = attributes[:'tunnels']
47
46
  end
48
-
47
+
49
48
  end
50
49
 
51
50
  # Checks equality by comparing each attribute.
@@ -32,23 +32,22 @@ module OracleBMC
32
32
  # convert string to symbol for hash key
33
33
  attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
34
34
 
35
-
36
35
  if attributes[:'compartmentId']
37
36
  self.compartment_id = attributes[:'compartmentId']
38
37
  end
39
-
38
+
40
39
  if attributes[:'id']
41
40
  self.id = attributes[:'id']
42
41
  end
43
-
42
+
44
43
  if attributes[:'timeCreated']
45
44
  self.time_created = attributes[:'timeCreated']
46
45
  end
47
-
46
+
48
47
  if attributes[:'tunnels']
49
48
  self.tunnels = attributes[:'tunnels']
50
49
  end
51
-
50
+
52
51
  end
53
52
 
54
53
  # Checks equality by comparing each attribute.
@@ -15,11 +15,14 @@ module OracleBMC
15
15
  # @return [String]
16
16
  attr_accessor :compartment_id
17
17
 
18
- # Details for the VNIC that is automatically created when an instance is launched.
18
+ # Details for the primary VNIC, which is automatically created and attached when
19
+ # the instance is launched.
20
+ #
19
21
  # @return [OracleBMC::Core::Models::CreateVnicDetails]
20
22
  attr_accessor :create_vnic_details
21
23
 
22
24
  # A user-friendly name. Does not have to be unique, and it's changeable.
25
+ # Avoid entering confidential information.
23
26
  #
24
27
  # Example: `My bare metal instance`
25
28
  #
@@ -35,7 +38,7 @@ module OracleBMC
35
38
  # @return [Hash<String, Object>]
36
39
  attr_accessor :extended_metadata
37
40
 
38
- # Deprecated. Instead use `hostnameLabel` in
41
+ # Deprecated. Instead use `hostnameLabel` in
39
42
  # {CreateVnicDetails}.
40
43
  # If you provide both, the values must match.
41
44
  #
@@ -145,7 +148,7 @@ module OracleBMC
145
148
  attr_accessor :shape
146
149
 
147
150
  # Deprecated. Instead use `subnetId` in
148
- # {CreateVnicDetails}.
151
+ # {CreateVnicDetails}.
149
152
  # At least one of them is required; if you provide both, the values must match.
150
153
  #
151
154
  # @return [String]
@@ -160,51 +163,50 @@ module OracleBMC
160
163
  # convert string to symbol for hash key
161
164
  attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
162
165
 
163
-
164
166
  if attributes[:'availabilityDomain']
165
167
  self.availability_domain = attributes[:'availabilityDomain']
166
168
  end
167
-
169
+
168
170
  if attributes[:'compartmentId']
169
171
  self.compartment_id = attributes[:'compartmentId']
170
172
  end
171
-
173
+
172
174
  if attributes[:'createVnicDetails']
173
175
  self.create_vnic_details = attributes[:'createVnicDetails']
174
176
  end
175
-
177
+
176
178
  if attributes[:'displayName']
177
179
  self.display_name = attributes[:'displayName']
178
180
  end
179
-
181
+
180
182
  if attributes[:'extendedMetadata']
181
183
  self.extended_metadata = attributes[:'extendedMetadata']
182
184
  end
183
-
185
+
184
186
  if attributes[:'hostnameLabel']
185
187
  self.hostname_label = attributes[:'hostnameLabel']
186
188
  end
187
-
189
+
188
190
  if attributes[:'imageId']
189
191
  self.image_id = attributes[:'imageId']
190
192
  end
191
-
193
+
192
194
  if attributes[:'ipxeScript']
193
195
  self.ipxe_script = attributes[:'ipxeScript']
194
196
  end
195
-
197
+
196
198
  if attributes[:'metadata']
197
199
  self.metadata = attributes[:'metadata']
198
200
  end
199
-
201
+
200
202
  if attributes[:'shape']
201
203
  self.shape = attributes[:'shape']
202
204
  end
203
-
205
+
204
206
  if attributes[:'subnetId']
205
207
  self.subnet_id = attributes[:'subnetId']
206
208
  end
207
-
209
+
208
210
  end
209
211
 
210
212
  # Checks equality by comparing each attribute.
@@ -46,31 +46,30 @@ module OracleBMC
46
46
  # convert string to symbol for hash key
47
47
  attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
48
48
 
49
-
50
49
  if attributes[:'circuitType']
51
50
  self.circuit_type = attributes[:'circuitType']
52
51
  end
53
-
52
+
54
53
  if attributes[:'crossConnectId']
55
54
  self.cross_connect_id = attributes[:'crossConnectId']
56
55
  end
57
-
56
+
58
57
  if attributes[:'facilityLocation']
59
58
  self.facility_location = attributes[:'facilityLocation']
60
59
  end
61
-
60
+
62
61
  if attributes[:'portName']
63
62
  self.port_name = attributes[:'portName']
64
63
  end
65
-
64
+
66
65
  if attributes[:'timeExpires']
67
66
  self.time_expires = attributes[:'timeExpires']
68
67
  end
69
-
68
+
70
69
  if attributes[:'timeIssued']
71
70
  self.time_issued = attributes[:'timeIssued']
72
71
  end
73
-
72
+
74
73
  end
75
74
 
76
75
  # Custom attribute writer method checking allowed values (enum).
@@ -23,15 +23,14 @@ module OracleBMC
23
23
  # convert string to symbol for hash key
24
24
  attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
25
25
 
26
-
27
26
  if attributes[:'max']
28
27
  self.max = attributes[:'max']
29
28
  end
30
-
29
+
31
30
  if attributes[:'min']
32
31
  self.min = attributes[:'min']
33
32
  end
34
-
33
+
35
34
  end
36
35
 
37
36
  # Checks equality by comparing each attribute.
@@ -0,0 +1,248 @@
1
+ # Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ module OracleBMC
6
+ class Core::Models::PrivateIp
7
+ # The private IP's Availability Domain.
8
+ #
9
+ # Example: `Uocm:PHX-AD-1`
10
+ #
11
+ # @return [String]
12
+ attr_accessor :availability_domain
13
+
14
+ # The OCID of the compartment containing the private IP.
15
+ # @return [String]
16
+ attr_accessor :compartment_id
17
+
18
+ # A user-friendly name. Does not have to be unique, and it's changeable. Avoid
19
+ # entering confidential information.
20
+ #
21
+ # @return [String]
22
+ attr_accessor :display_name
23
+
24
+ # The hostname for the private IP. Used for DNS. The value is the hostname
25
+ # portion of the private IP's fully qualified domain name (FQDN)
26
+ # (for example, `bminstance-1` in FQDN `bminstance-1.subnet123.vcn1.oraclevcn.com`).
27
+ # Must be unique across all VNICs in the subnet and comply with
28
+ # [RFC 952](https://tools.ietf.org/html/rfc952) and
29
+ # [RFC 1123](https://tools.ietf.org/html/rfc1123).
30
+ #
31
+ # For more information, see
32
+ # [DNS in Your Virtual Cloud Network](https://docs.us-phoenix-1.oraclecloud.com/Content/Network/Concepts/dns.htm).
33
+ #
34
+ # Example: `bminstance-1`
35
+ #
36
+ # @return [String]
37
+ attr_accessor :hostname_label
38
+
39
+ # The private IP's Oracle ID (OCID).
40
+ # @return [String]
41
+ attr_accessor :id
42
+
43
+ # The private IP address of the `privateIp` object. The address is within the CIDR
44
+ # of the VNIC's subnet.
45
+ #
46
+ # Example: `10.0.3.3`
47
+ #
48
+ # @return [String]
49
+ attr_accessor :ip_address
50
+
51
+ # Whether this private IP is the primary one on the VNIC. Primary private IPs
52
+ # are unassigned and deleted automatically when the VNIC is terminated.
53
+ #
54
+ # Example: `true`
55
+ #
56
+ # @return [BOOLEAN]
57
+ attr_accessor :is_primary
58
+
59
+ # The OCID of the subnet the VNIC is in.
60
+ # @return [String]
61
+ attr_accessor :subnet_id
62
+
63
+ # The date and time the private IP was created, in the format defined by RFC3339.
64
+ #
65
+ # Example: `2016-08-25T21:10:29.600Z`
66
+ #
67
+ # @return [DateTime]
68
+ attr_accessor :time_created
69
+
70
+ # The OCID of the VNIC the private IP is assigned to. The VNIC and private IP
71
+ # must be in the same subnet.
72
+ #
73
+ # @return [String]
74
+ attr_accessor :vnic_id
75
+
76
+
77
+ # Initializes the object
78
+ # @param [Hash] attributes Model attributes in the form of hash
79
+ def initialize(attributes = {})
80
+ return unless attributes.is_a?(Hash)
81
+
82
+ # convert string to symbol for hash key
83
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
84
+
85
+ if attributes[:'availabilityDomain']
86
+ self.availability_domain = attributes[:'availabilityDomain']
87
+ end
88
+
89
+ if attributes[:'compartmentId']
90
+ self.compartment_id = attributes[:'compartmentId']
91
+ end
92
+
93
+ if attributes[:'displayName']
94
+ self.display_name = attributes[:'displayName']
95
+ end
96
+
97
+ if attributes[:'hostnameLabel']
98
+ self.hostname_label = attributes[:'hostnameLabel']
99
+ end
100
+
101
+ if attributes[:'id']
102
+ self.id = attributes[:'id']
103
+ end
104
+
105
+ if attributes[:'ipAddress']
106
+ self.ip_address = attributes[:'ipAddress']
107
+ end
108
+
109
+ if attributes[:'isPrimary']
110
+ self.is_primary = attributes[:'isPrimary']
111
+ end
112
+
113
+ if attributes[:'subnetId']
114
+ self.subnet_id = attributes[:'subnetId']
115
+ end
116
+
117
+ if attributes[:'timeCreated']
118
+ self.time_created = attributes[:'timeCreated']
119
+ end
120
+
121
+ if attributes[:'vnicId']
122
+ self.vnic_id = attributes[:'vnicId']
123
+ end
124
+
125
+ end
126
+
127
+ # Checks equality by comparing each attribute.
128
+ # @param [Object] other_object to be compared
129
+ def ==(other_object)
130
+ return true if self.equal?(other_object)
131
+ self.class == other_object.class &&
132
+ availability_domain == other_object.availability_domain &&
133
+ compartment_id == other_object.compartment_id &&
134
+ display_name == other_object.display_name &&
135
+ hostname_label == other_object.hostname_label &&
136
+ id == other_object.id &&
137
+ ip_address == other_object.ip_address &&
138
+ is_primary == other_object.is_primary &&
139
+ subnet_id == other_object.subnet_id &&
140
+ time_created == other_object.time_created &&
141
+ vnic_id == other_object.vnic_id
142
+ end
143
+
144
+ # @see the `==` method
145
+ # @param [Object] other_object to be compared
146
+ def eql?(other_object)
147
+ self == other_object
148
+ end
149
+
150
+ # Calculates hash code according to all attributes.
151
+ # @return [Fixnum] Hash code
152
+ def hash
153
+ [availability_domain, compartment_id, display_name, hostname_label, id, ip_address, is_primary, subnet_id, time_created, vnic_id].hash
154
+ end
155
+
156
+ # Builds the object from hash
157
+ # @param [Hash] attributes Model attributes in the form of hash
158
+ # @return [Object] Returns the model itself
159
+ def build_from_hash(attributes)
160
+ return nil unless attributes.is_a?(Hash)
161
+ self.class.swagger_types.each_pair do |key, type|
162
+ if type =~ /^Array<(.*)>/i
163
+ # check to ensure the input is an array given that the the attribute
164
+ # is documented as an array but the input is not
165
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
166
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OracleBMC::Internal::Util.convert_to_type($1, v) } )
167
+ end
168
+ elsif !attributes[self.class.attribute_map[key]].nil?
169
+ self.send("#{key}=", OracleBMC::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
170
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
171
+ end
172
+
173
+ self
174
+ end
175
+
176
+ # Returns the string representation of the object
177
+ # @return [String] String presentation of the object
178
+ def to_s
179
+ to_hash.to_s
180
+ end
181
+
182
+ # Returns the object in the form of hash
183
+ # @return [Hash] Returns the object in the form of hash
184
+ def to_hash
185
+ hash = {}
186
+ self.class.attribute_map.each_pair do |attr, param|
187
+ value = self.send(attr)
188
+ next if value.nil?
189
+ hash[param] = _to_hash(value)
190
+ end
191
+ hash
192
+ end
193
+
194
+ private
195
+
196
+ # Outputs non-array value in the form of hash
197
+ # For object, use to_hash. Otherwise, just return the value
198
+ # @param [Object] value Any valid value
199
+ # @return [Hash] Returns the value in the form of hash
200
+ def _to_hash(value)
201
+ if value.is_a?(Array)
202
+ value.compact.map{ |v| _to_hash(v) }
203
+ elsif value.is_a?(Hash)
204
+ {}.tap do |hash|
205
+ value.each { |k, v| hash[k] = _to_hash(v) }
206
+ end
207
+ elsif value.respond_to? :to_hash
208
+ value.to_hash
209
+ else
210
+ value
211
+ end
212
+ end
213
+
214
+
215
+
216
+ # Attribute mapping from ruby-style variable name to JSON key.
217
+ def self.attribute_map
218
+ {
219
+ :'availability_domain' => :'availabilityDomain',
220
+ :'compartment_id' => :'compartmentId',
221
+ :'display_name' => :'displayName',
222
+ :'hostname_label' => :'hostnameLabel',
223
+ :'id' => :'id',
224
+ :'ip_address' => :'ipAddress',
225
+ :'is_primary' => :'isPrimary',
226
+ :'subnet_id' => :'subnetId',
227
+ :'time_created' => :'timeCreated',
228
+ :'vnic_id' => :'vnicId'
229
+ }
230
+ end
231
+
232
+ # Attribute type mapping.
233
+ def self.swagger_types
234
+ {
235
+ :'availability_domain' => :'String',
236
+ :'compartment_id' => :'String',
237
+ :'display_name' => :'String',
238
+ :'hostname_label' => :'String',
239
+ :'id' => :'String',
240
+ :'ip_address' => :'String',
241
+ :'is_primary' => :'BOOLEAN',
242
+ :'subnet_id' => :'String',
243
+ :'time_created' => :'DateTime',
244
+ :'vnic_id' => :'String'
245
+ }
246
+ end
247
+ end
248
+ end