oci 2.0.0

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 (217) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +82 -0
  3. data/README.md +262 -0
  4. data/lib/oci.rb +25 -0
  5. data/lib/oci/api_client.rb +389 -0
  6. data/lib/oci/config.rb +118 -0
  7. data/lib/oci/config_file_loader.rb +96 -0
  8. data/lib/oci/core/blockstorage_client.rb +462 -0
  9. data/lib/oci/core/compute_client.rb +1415 -0
  10. data/lib/oci/core/core.rb +114 -0
  11. data/lib/oci/core/models/attach_i_scsi_volume_details.rb +137 -0
  12. data/lib/oci/core/models/attach_vnic_details.rb +144 -0
  13. data/lib/oci/core/models/attach_volume_details.rb +165 -0
  14. data/lib/oci/core/models/capture_console_history_details.rb +120 -0
  15. data/lib/oci/core/models/console_history.rb +213 -0
  16. data/lib/oci/core/models/cpe.rb +169 -0
  17. data/lib/oci/core/models/create_cpe_details.rb +145 -0
  18. data/lib/oci/core/models/create_cross_connect_details.rb +204 -0
  19. data/lib/oci/core/models/create_cross_connect_group_details.rb +133 -0
  20. data/lib/oci/core/models/create_dhcp_details.rb +153 -0
  21. data/lib/oci/core/models/create_drg_attachment_details.rb +142 -0
  22. data/lib/oci/core/models/create_drg_details.rb +131 -0
  23. data/lib/oci/core/models/create_image_details.rb +159 -0
  24. data/lib/oci/core/models/create_instance_console_connection_details.rb +131 -0
  25. data/lib/oci/core/models/create_internet_gateway_details.rb +153 -0
  26. data/lib/oci/core/models/create_ip_sec_connection_details.rb +168 -0
  27. data/lib/oci/core/models/create_private_ip_details.rb +173 -0
  28. data/lib/oci/core/models/create_route_table_details.rb +153 -0
  29. data/lib/oci/core/models/create_security_list_details.rb +164 -0
  30. data/lib/oci/core/models/create_subnet_details.rb +257 -0
  31. data/lib/oci/core/models/create_vcn_details.rb +171 -0
  32. data/lib/oci/core/models/create_virtual_circuit_details.rb +260 -0
  33. data/lib/oci/core/models/create_vnic_details.rb +214 -0
  34. data/lib/oci/core/models/create_volume_backup_details.rb +133 -0
  35. data/lib/oci/core/models/create_volume_details.rb +170 -0
  36. data/lib/oci/core/models/cross_connect.rb +235 -0
  37. data/lib/oci/core/models/cross_connect_group.rb +187 -0
  38. data/lib/oci/core/models/cross_connect_location.rb +134 -0
  39. data/lib/oci/core/models/cross_connect_mapping.rb +190 -0
  40. data/lib/oci/core/models/cross_connect_port_speed_shape.rb +137 -0
  41. data/lib/oci/core/models/cross_connect_status.rb +200 -0
  42. data/lib/oci/core/models/dhcp_dns_option.rb +171 -0
  43. data/lib/oci/core/models/dhcp_option.rb +135 -0
  44. data/lib/oci/core/models/dhcp_options.rb +208 -0
  45. data/lib/oci/core/models/dhcp_search_domain_option.rb +141 -0
  46. data/lib/oci/core/models/drg.rb +186 -0
  47. data/lib/oci/core/models/drg_attachment.rb +208 -0
  48. data/lib/oci/core/models/egress_security_rule.rb +198 -0
  49. data/lib/oci/core/models/export_image_details.rb +134 -0
  50. data/lib/oci/core/models/export_image_via_object_storage_tuple_details.rb +150 -0
  51. data/lib/oci/core/models/export_image_via_object_storage_uri_details.rb +130 -0
  52. data/lib/oci/core/models/fast_connect_provider_service.rb +145 -0
  53. data/lib/oci/core/models/i_scsi_volume_attachment.rb +212 -0
  54. data/lib/oci/core/models/icmp_options.rb +131 -0
  55. data/lib/oci/core/models/image.rb +245 -0
  56. data/lib/oci/core/models/image_source_details.rb +134 -0
  57. data/lib/oci/core/models/image_source_via_object_storage_tuple_details.rb +150 -0
  58. data/lib/oci/core/models/image_source_via_object_storage_uri_details.rb +128 -0
  59. data/lib/oci/core/models/ingress_security_rule.rb +198 -0
  60. data/lib/oci/core/models/instance.rb +307 -0
  61. data/lib/oci/core/models/instance_console_connection.rb +193 -0
  62. data/lib/oci/core/models/instance_credentials.rb +131 -0
  63. data/lib/oci/core/models/internet_gateway.rb +210 -0
  64. data/lib/oci/core/models/ip_sec_connection.rb +223 -0
  65. data/lib/oci/core/models/ip_sec_connection_device_config.rb +153 -0
  66. data/lib/oci/core/models/ip_sec_connection_device_status.rb +156 -0
  67. data/lib/oci/core/models/launch_instance_details.rb +336 -0
  68. data/lib/oci/core/models/letter_of_authority.rb +194 -0
  69. data/lib/oci/core/models/port_range.rb +133 -0
  70. data/lib/oci/core/models/private_ip.rb +248 -0
  71. data/lib/oci/core/models/route_rule.rb +135 -0
  72. data/lib/oci/core/models/route_table.rb +208 -0
  73. data/lib/oci/core/models/security_list.rb +219 -0
  74. data/lib/oci/core/models/shape.rb +122 -0
  75. data/lib/oci/core/models/subnet.rb +351 -0
  76. data/lib/oci/core/models/tcp_options.rb +135 -0
  77. data/lib/oci/core/models/tunnel_config.rb +151 -0
  78. data/lib/oci/core/models/tunnel_status.rb +178 -0
  79. data/lib/oci/core/models/udp_options.rb +135 -0
  80. data/lib/oci/core/models/update_cpe_details.rb +122 -0
  81. data/lib/oci/core/models/update_cross_connect_details.rb +138 -0
  82. data/lib/oci/core/models/update_cross_connect_group_details.rb +122 -0
  83. data/lib/oci/core/models/update_dhcp_details.rb +132 -0
  84. data/lib/oci/core/models/update_drg_attachment_details.rb +122 -0
  85. data/lib/oci/core/models/update_drg_details.rb +122 -0
  86. data/lib/oci/core/models/update_image_details.rb +124 -0
  87. data/lib/oci/core/models/update_instance_details.rb +124 -0
  88. data/lib/oci/core/models/update_internet_gateway_details.rb +133 -0
  89. data/lib/oci/core/models/update_ip_sec_connection_details.rb +122 -0
  90. data/lib/oci/core/models/update_private_ip_details.rb +157 -0
  91. data/lib/oci/core/models/update_route_table_details.rb +133 -0
  92. data/lib/oci/core/models/update_security_list_details.rb +144 -0
  93. data/lib/oci/core/models/update_subnet_details.rb +122 -0
  94. data/lib/oci/core/models/update_vcn_details.rb +122 -0
  95. data/lib/oci/core/models/update_virtual_circuit_details.rb +240 -0
  96. data/lib/oci/core/models/update_vnic_details.rb +144 -0
  97. data/lib/oci/core/models/update_volume_backup_details.rb +122 -0
  98. data/lib/oci/core/models/update_volume_details.rb +122 -0
  99. data/lib/oci/core/models/vcn.rb +276 -0
  100. data/lib/oci/core/models/virtual_circuit.rb +395 -0
  101. data/lib/oci/core/models/virtual_circuit_bandwidth_shape.rb +137 -0
  102. data/lib/oci/core/models/vnic.rb +287 -0
  103. data/lib/oci/core/models/vnic_attachment.rb +250 -0
  104. data/lib/oci/core/models/volume.rb +210 -0
  105. data/lib/oci/core/models/volume_attachment.rb +246 -0
  106. data/lib/oci/core/models/volume_backup.rb +235 -0
  107. data/lib/oci/core/util.rb +1 -0
  108. data/lib/oci/core/virtual_network_client.rb +3421 -0
  109. data/lib/oci/errors.rb +78 -0
  110. data/lib/oci/global_context.rb +20 -0
  111. data/lib/oci/identity/identity.rb +55 -0
  112. data/lib/oci/identity/identity_client.rb +2148 -0
  113. data/lib/oci/identity/models/add_user_to_group_details.rb +131 -0
  114. data/lib/oci/identity/models/api_key.rb +211 -0
  115. data/lib/oci/identity/models/availability_domain.rb +131 -0
  116. data/lib/oci/identity/models/compartment.rb +211 -0
  117. data/lib/oci/identity/models/create_api_key_details.rb +120 -0
  118. data/lib/oci/identity/models/create_compartment_details.rb +145 -0
  119. data/lib/oci/identity/models/create_customer_secret_key_details.rb +121 -0
  120. data/lib/oci/identity/models/create_group_details.rb +144 -0
  121. data/lib/oci/identity/models/create_identity_provider_details.rb +215 -0
  122. data/lib/oci/identity/models/create_idp_group_mapping_details.rb +133 -0
  123. data/lib/oci/identity/models/create_policy_details.rb +173 -0
  124. data/lib/oci/identity/models/create_region_subscription_details.rb +128 -0
  125. data/lib/oci/identity/models/create_saml2_identity_provider_details.rb +154 -0
  126. data/lib/oci/identity/models/create_swift_password_details.rb +121 -0
  127. data/lib/oci/identity/models/create_user_details.rb +144 -0
  128. data/lib/oci/identity/models/customer_secret_key.rb +225 -0
  129. data/lib/oci/identity/models/customer_secret_key_summary.rb +213 -0
  130. data/lib/oci/identity/models/group.rb +211 -0
  131. data/lib/oci/identity/models/identity_provider.rb +261 -0
  132. data/lib/oci/identity/models/idp_group_mapping.rb +220 -0
  133. data/lib/oci/identity/models/policy.rb +237 -0
  134. data/lib/oci/identity/models/region.rb +143 -0
  135. data/lib/oci/identity/models/region_subscription.rb +180 -0
  136. data/lib/oci/identity/models/saml2_identity_provider.rb +180 -0
  137. data/lib/oci/identity/models/swift_password.rb +226 -0
  138. data/lib/oci/identity/models/tenancy.rb +159 -0
  139. data/lib/oci/identity/models/ui_password.rb +187 -0
  140. data/lib/oci/identity/models/update_compartment_details.rb +132 -0
  141. data/lib/oci/identity/models/update_customer_secret_key_details.rb +120 -0
  142. data/lib/oci/identity/models/update_group_details.rb +120 -0
  143. data/lib/oci/identity/models/update_identity_provider_details.rb +160 -0
  144. data/lib/oci/identity/models/update_idp_group_mapping_details.rb +131 -0
  145. data/lib/oci/identity/models/update_policy_details.rb +148 -0
  146. data/lib/oci/identity/models/update_saml2_identity_provider_details.rb +145 -0
  147. data/lib/oci/identity/models/update_state_details.rb +121 -0
  148. data/lib/oci/identity/models/update_swift_password_details.rb +120 -0
  149. data/lib/oci/identity/models/update_user_details.rb +120 -0
  150. data/lib/oci/identity/models/user.rb +217 -0
  151. data/lib/oci/identity/models/user_group_membership.rb +209 -0
  152. data/lib/oci/identity/util.rb +1 -0
  153. data/lib/oci/internal/internal.rb +10 -0
  154. data/lib/oci/internal/util.rb +69 -0
  155. data/lib/oci/load_balancer/load_balancer.rb +51 -0
  156. data/lib/oci/load_balancer/load_balancer_client.rb +1449 -0
  157. data/lib/oci/load_balancer/models/backend.rb +220 -0
  158. data/lib/oci/load_balancer/models/backend_details.rb +206 -0
  159. data/lib/oci/load_balancer/models/backend_health.rb +158 -0
  160. data/lib/oci/load_balancer/models/backend_set.rb +182 -0
  161. data/lib/oci/load_balancer/models/backend_set_details.rb +165 -0
  162. data/lib/oci/load_balancer/models/backend_set_health.rb +207 -0
  163. data/lib/oci/load_balancer/models/certificate.rb +169 -0
  164. data/lib/oci/load_balancer/models/certificate_details.rb +205 -0
  165. data/lib/oci/load_balancer/models/create_backend_details.rb +206 -0
  166. data/lib/oci/load_balancer/models/create_backend_set_details.rb +181 -0
  167. data/lib/oci/load_balancer/models/create_certificate_details.rb +205 -0
  168. data/lib/oci/load_balancer/models/create_listener_details.rb +175 -0
  169. data/lib/oci/load_balancer/models/create_load_balancer_details.rb +220 -0
  170. data/lib/oci/load_balancer/models/health_check_result.rb +183 -0
  171. data/lib/oci/load_balancer/models/health_checker.rb +224 -0
  172. data/lib/oci/load_balancer/models/health_checker_details.rb +223 -0
  173. data/lib/oci/load_balancer/models/ip_address.rb +139 -0
  174. data/lib/oci/load_balancer/models/listener.rb +174 -0
  175. data/lib/oci/load_balancer/models/listener_details.rb +160 -0
  176. data/lib/oci/load_balancer/models/load_balancer.rb +280 -0
  177. data/lib/oci/load_balancer/models/load_balancer_health.rb +215 -0
  178. data/lib/oci/load_balancer/models/load_balancer_health_summary.rb +168 -0
  179. data/lib/oci/load_balancer/models/load_balancer_policy.rb +120 -0
  180. data/lib/oci/load_balancer/models/load_balancer_protocol.rb +120 -0
  181. data/lib/oci/load_balancer/models/load_balancer_shape.rb +120 -0
  182. data/lib/oci/load_balancer/models/session_persistence_configuration_details.rb +141 -0
  183. data/lib/oci/load_balancer/models/ssl_configuration.rb +155 -0
  184. data/lib/oci/load_balancer/models/ssl_configuration_details.rb +155 -0
  185. data/lib/oci/load_balancer/models/update_backend_details.rb +178 -0
  186. data/lib/oci/load_balancer/models/update_backend_set_details.rb +165 -0
  187. data/lib/oci/load_balancer/models/update_health_checker_details.rb +222 -0
  188. data/lib/oci/load_balancer/models/update_listener_details.rb +160 -0
  189. data/lib/oci/load_balancer/models/update_load_balancer_details.rb +124 -0
  190. data/lib/oci/load_balancer/models/work_request.rb +229 -0
  191. data/lib/oci/load_balancer/models/work_request_error.rb +145 -0
  192. data/lib/oci/load_balancer/util.rb +58 -0
  193. data/lib/oci/object_storage/models/bucket.rb +216 -0
  194. data/lib/oci/object_storage/models/bucket_summary.rb +175 -0
  195. data/lib/oci/object_storage/models/commit_multipart_upload_details.rb +133 -0
  196. data/lib/oci/object_storage/models/commit_multipart_upload_part_details.rb +131 -0
  197. data/lib/oci/object_storage/models/create_bucket_details.rb +173 -0
  198. data/lib/oci/object_storage/models/create_multipart_upload_details.rb +166 -0
  199. data/lib/oci/object_storage/models/create_preauthenticated_request_details.rb +171 -0
  200. data/lib/oci/object_storage/models/list_objects.rb +146 -0
  201. data/lib/oci/object_storage/models/multipart_upload.rb +164 -0
  202. data/lib/oci/object_storage/models/multipart_upload_part_summary.rb +153 -0
  203. data/lib/oci/object_storage/models/object_summary.rb +153 -0
  204. data/lib/oci/object_storage/models/preauthenticated_request.rb +207 -0
  205. data/lib/oci/object_storage/models/preauthenticated_request_summary.rb +196 -0
  206. data/lib/oci/object_storage/models/update_bucket_details.rb +171 -0
  207. data/lib/oci/object_storage/object_storage.rb +30 -0
  208. data/lib/oci/object_storage/object_storage_client.rb +1185 -0
  209. data/lib/oci/object_storage/util.rb +1 -0
  210. data/lib/oci/regions.rb +43 -0
  211. data/lib/oci/response.rb +80 -0
  212. data/lib/oci/response_headers.rb +144 -0
  213. data/lib/oci/signer.rb +157 -0
  214. data/lib/oci/version.rb +5 -0
  215. data/lib/oci/waiter.rb +101 -0
  216. data/lib/oraclebmc.rb +3 -0
  217. metadata +375 -0
@@ -0,0 +1,198 @@
1
+ # Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ module OCI
6
+ class Core::Models::EgressSecurityRule
7
+ # The destination CIDR block for the egress rule. This is the range of IP addresses that a
8
+ # packet originating from the instance can go to.
9
+ #
10
+ # @return [String]
11
+ attr_accessor :destination
12
+
13
+ # Optional and valid only for ICMP. Use to specify a particular ICMP type and code
14
+ # as defined in
15
+ # [ICMP Parameters](http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml).
16
+ # If you specify ICMP as the protocol but omit this object, then all ICMP types and
17
+ # codes are allowed. If you do provide this object, the type is required and the code is optional.
18
+ # To enable MTU negotiation for ingress internet traffic, make sure to allow type 3 (\"Destination
19
+ # Unreachable\") code 4 (\"Fragmentation Needed and Don't Fragment was Set\"). If you need to specify
20
+ # multiple codes for a single type, create a separate security list rule for each.
21
+ #
22
+ # @return [OCI::Core::Models::IcmpOptions]
23
+ attr_accessor :icmp_options
24
+
25
+ # A stateless rule allows traffic in one direction. Remember to add a corresponding
26
+ # stateless rule in the other direction if you need to support bidirectional traffic. For
27
+ # example, if egress traffic allows TCP destination port 80, there should be an ingress
28
+ # rule to allow TCP source port 80. Defaults to false, which means the rule is stateful
29
+ # and a corresponding rule is not necessary for bidirectional traffic.
30
+ #
31
+ # @return [BOOLEAN]
32
+ attr_accessor :is_stateless
33
+
34
+ # The transport protocol. Specify either `all` or an IPv4 protocol number as
35
+ # defined in
36
+ # [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).
37
+ # Options are supported only for ICMP (\"1\"), TCP (\"6\"), and UDP (\"17\").
38
+ #
39
+ # @return [String]
40
+ attr_accessor :protocol
41
+
42
+ # Optional and valid only for TCP. Use to specify particular destination ports for TCP rules.
43
+ # If you specify TCP as the protocol but omit this object, then all destination ports are allowed.
44
+ #
45
+ # @return [OCI::Core::Models::TcpOptions]
46
+ attr_accessor :tcp_options
47
+
48
+ # Optional and valid only for UDP. Use to specify particular destination ports for UDP rules.
49
+ # If you specify UDP as the protocol but omit this object, then all destination ports are allowed.
50
+ #
51
+ # @return [OCI::Core::Models::UdpOptions]
52
+ attr_accessor :udp_options
53
+
54
+
55
+ # Initializes the object
56
+ # @param [Hash] attributes Model attributes in the form of hash
57
+ def initialize(attributes = {})
58
+ return unless attributes.is_a?(Hash)
59
+
60
+ # convert string to symbol for hash key
61
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
62
+
63
+ if attributes[:'destination']
64
+ self.destination = attributes[:'destination']
65
+ end
66
+
67
+ if attributes[:'icmpOptions']
68
+ self.icmp_options = attributes[:'icmpOptions']
69
+ end
70
+
71
+ if attributes[:'isStateless']
72
+ self.is_stateless = attributes[:'isStateless']
73
+ end
74
+
75
+ if attributes[:'protocol']
76
+ self.protocol = attributes[:'protocol']
77
+ end
78
+
79
+ if attributes[:'tcpOptions']
80
+ self.tcp_options = attributes[:'tcpOptions']
81
+ end
82
+
83
+ if attributes[:'udpOptions']
84
+ self.udp_options = attributes[:'udpOptions']
85
+ end
86
+
87
+ end
88
+
89
+ # Checks equality by comparing each attribute.
90
+ # @param [Object] other_object to be compared
91
+ def ==(other_object)
92
+ return true if self.equal?(other_object)
93
+ self.class == other_object.class &&
94
+ destination == other_object.destination &&
95
+ icmp_options == other_object.icmp_options &&
96
+ is_stateless == other_object.is_stateless &&
97
+ protocol == other_object.protocol &&
98
+ tcp_options == other_object.tcp_options &&
99
+ udp_options == other_object.udp_options
100
+ end
101
+
102
+ # @see the `==` method
103
+ # @param [Object] other_object to be compared
104
+ def eql?(other_object)
105
+ self == other_object
106
+ end
107
+
108
+ # Calculates hash code according to all attributes.
109
+ # @return [Fixnum] Hash code
110
+ def hash
111
+ [destination, icmp_options, is_stateless, protocol, tcp_options, udp_options].hash
112
+ end
113
+
114
+ # Builds the object from hash
115
+ # @param [Hash] attributes Model attributes in the form of hash
116
+ # @return [Object] Returns the model itself
117
+ def build_from_hash(attributes)
118
+ return nil unless attributes.is_a?(Hash)
119
+ self.class.swagger_types.each_pair do |key, type|
120
+ if type =~ /^Array<(.*)>/i
121
+ # check to ensure the input is an array given that the the attribute
122
+ # is documented as an array but the input is not
123
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
124
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
125
+ end
126
+ elsif !attributes[self.class.attribute_map[key]].nil?
127
+ self.send("#{key}=", OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
128
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
129
+ end
130
+
131
+ self
132
+ end
133
+
134
+ # Returns the string representation of the object
135
+ # @return [String] String presentation of the object
136
+ def to_s
137
+ to_hash.to_s
138
+ end
139
+
140
+ # Returns the object in the form of hash
141
+ # @return [Hash] Returns the object in the form of hash
142
+ def to_hash
143
+ hash = {}
144
+ self.class.attribute_map.each_pair do |attr, param|
145
+ value = self.send(attr)
146
+ next if value.nil?
147
+ hash[param] = _to_hash(value)
148
+ end
149
+ hash
150
+ end
151
+
152
+ private
153
+
154
+ # Outputs non-array value in the form of hash
155
+ # For object, use to_hash. Otherwise, just return the value
156
+ # @param [Object] value Any valid value
157
+ # @return [Hash] Returns the value in the form of hash
158
+ def _to_hash(value)
159
+ if value.is_a?(Array)
160
+ value.compact.map{ |v| _to_hash(v) }
161
+ elsif value.is_a?(Hash)
162
+ {}.tap do |hash|
163
+ value.each { |k, v| hash[k] = _to_hash(v) }
164
+ end
165
+ elsif value.respond_to? :to_hash
166
+ value.to_hash
167
+ else
168
+ value
169
+ end
170
+ end
171
+
172
+
173
+
174
+ # Attribute mapping from ruby-style variable name to JSON key.
175
+ def self.attribute_map
176
+ {
177
+ :'destination' => :'destination',
178
+ :'icmp_options' => :'icmpOptions',
179
+ :'is_stateless' => :'isStateless',
180
+ :'protocol' => :'protocol',
181
+ :'tcp_options' => :'tcpOptions',
182
+ :'udp_options' => :'udpOptions'
183
+ }
184
+ end
185
+
186
+ # Attribute type mapping.
187
+ def self.swagger_types
188
+ {
189
+ :'destination' => :'String',
190
+ :'icmp_options' => :'OCI::Core::Models::IcmpOptions',
191
+ :'is_stateless' => :'BOOLEAN',
192
+ :'protocol' => :'String',
193
+ :'tcp_options' => :'OCI::Core::Models::TcpOptions',
194
+ :'udp_options' => :'OCI::Core::Models::UdpOptions'
195
+ }
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,134 @@
1
+ # Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ module OCI
6
+ class Core::Models::ExportImageDetails
7
+ # The destination type. Use `objectStorageTuple` when specifying the namespace, bucket name, and object name.
8
+ # Use `objectStorageUri` when specifying the Object Storage Service URL.
9
+ #
10
+ # @return [String]
11
+ attr_accessor :destination_type
12
+
13
+
14
+ # Given the hash representation of a subtype of this class,
15
+ # use the info in the hash to return the class of the subtype.
16
+ def self.get_subtype(object_hash)
17
+ type = object_hash[:'destinationType']
18
+
19
+ return 'OCI::Core::Models::ExportImageViaObjectStorageUriDetails' if type == 'objectStorageUri'
20
+ return 'OCI::Core::Models::ExportImageViaObjectStorageTupleDetails' if type == 'objectStorageTuple'
21
+
22
+ # TODO: Log a warning when the subtype is not found.
23
+ return 'OCI::Core::Models::ExportImageDetails'
24
+ end
25
+
26
+ # Initializes the object
27
+ # @param [Hash] attributes Model attributes in the form of hash
28
+ def initialize(attributes = {})
29
+ return unless attributes.is_a?(Hash)
30
+
31
+ # convert string to symbol for hash key
32
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
33
+
34
+ if attributes[:'destinationType']
35
+ self.destination_type = attributes[:'destinationType']
36
+ end
37
+
38
+ end
39
+
40
+ # Checks equality by comparing each attribute.
41
+ # @param [Object] other_object to be compared
42
+ def ==(other_object)
43
+ return true if self.equal?(other_object)
44
+ self.class == other_object.class &&
45
+ destination_type == other_object.destination_type
46
+ end
47
+
48
+ # @see the `==` method
49
+ # @param [Object] other_object to be compared
50
+ def eql?(other_object)
51
+ self == other_object
52
+ end
53
+
54
+ # Calculates hash code according to all attributes.
55
+ # @return [Fixnum] Hash code
56
+ def hash
57
+ [destination_type].hash
58
+ end
59
+
60
+ # Builds the object from hash
61
+ # @param [Hash] attributes Model attributes in the form of hash
62
+ # @return [Object] Returns the model itself
63
+ def build_from_hash(attributes)
64
+ return nil unless attributes.is_a?(Hash)
65
+ self.class.swagger_types.each_pair do |key, type|
66
+ if type =~ /^Array<(.*)>/i
67
+ # check to ensure the input is an array given that the the attribute
68
+ # is documented as an array but the input is not
69
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
70
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
71
+ end
72
+ elsif !attributes[self.class.attribute_map[key]].nil?
73
+ self.send("#{key}=", OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
74
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
75
+ end
76
+
77
+ self
78
+ end
79
+
80
+ # Returns the string representation of the object
81
+ # @return [String] String presentation of the object
82
+ def to_s
83
+ to_hash.to_s
84
+ end
85
+
86
+ # Returns the object in the form of hash
87
+ # @return [Hash] Returns the object in the form of hash
88
+ def to_hash
89
+ hash = {}
90
+ self.class.attribute_map.each_pair do |attr, param|
91
+ value = self.send(attr)
92
+ next if value.nil?
93
+ hash[param] = _to_hash(value)
94
+ end
95
+ hash
96
+ end
97
+
98
+ private
99
+
100
+ # Outputs non-array value in the form of hash
101
+ # For object, use to_hash. Otherwise, just return the value
102
+ # @param [Object] value Any valid value
103
+ # @return [Hash] Returns the value in the form of hash
104
+ def _to_hash(value)
105
+ if value.is_a?(Array)
106
+ value.compact.map{ |v| _to_hash(v) }
107
+ elsif value.is_a?(Hash)
108
+ {}.tap do |hash|
109
+ value.each { |k, v| hash[k] = _to_hash(v) }
110
+ end
111
+ elsif value.respond_to? :to_hash
112
+ value.to_hash
113
+ else
114
+ value
115
+ end
116
+ end
117
+
118
+
119
+
120
+ # Attribute mapping from ruby-style variable name to JSON key.
121
+ def self.attribute_map
122
+ {
123
+ :'destination_type' => :'destinationType'
124
+ }
125
+ end
126
+
127
+ # Attribute type mapping.
128
+ def self.swagger_types
129
+ {
130
+ :'destination_type' => :'String'
131
+ }
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,150 @@
1
+ # Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+ require_relative 'export_image_details'
5
+
6
+ module OCI
7
+ class Core::Models::ExportImageViaObjectStorageTupleDetails < Core::Models::ExportImageDetails
8
+ # The Object Storage Service bucket to export the image to.
9
+ # @return [String]
10
+ attr_accessor :bucket_name
11
+
12
+ # The Object Storage Service namespace to export the image to.
13
+ # @return [String]
14
+ attr_accessor :namespace_name
15
+
16
+ # The Object Storage Service object name for the exported image.
17
+ # @return [String]
18
+ attr_accessor :object_name
19
+
20
+
21
+ # Initializes the object
22
+ # @param [Hash] attributes Model attributes in the form of hash
23
+ def initialize(attributes = {})
24
+ return unless attributes.is_a?(Hash)
25
+
26
+ attributes['destinationType'] = 'objectStorageTuple'
27
+
28
+ super(attributes)
29
+
30
+ # convert string to symbol for hash key
31
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
32
+
33
+ if attributes[:'bucketName']
34
+ self.bucket_name = attributes[:'bucketName']
35
+ end
36
+
37
+ if attributes[:'namespaceName']
38
+ self.namespace_name = attributes[:'namespaceName']
39
+ end
40
+
41
+ if attributes[:'objectName']
42
+ self.object_name = attributes[:'objectName']
43
+ end
44
+
45
+ end
46
+
47
+ # Checks equality by comparing each attribute.
48
+ # @param [Object] other_object to be compared
49
+ def ==(other_object)
50
+ return true if self.equal?(other_object)
51
+ self.class == other_object.class &&
52
+ destination_type == other_object.destination_type &&
53
+ bucket_name == other_object.bucket_name &&
54
+ namespace_name == other_object.namespace_name &&
55
+ object_name == other_object.object_name
56
+ end
57
+
58
+ # @see the `==` method
59
+ # @param [Object] other_object to be compared
60
+ def eql?(other_object)
61
+ self == other_object
62
+ end
63
+
64
+ # Calculates hash code according to all attributes.
65
+ # @return [Fixnum] Hash code
66
+ def hash
67
+ [destination_type, bucket_name, namespace_name, object_name].hash
68
+ end
69
+
70
+ # Builds the object from hash
71
+ # @param [Hash] attributes Model attributes in the form of hash
72
+ # @return [Object] Returns the model itself
73
+ def build_from_hash(attributes)
74
+ return nil unless attributes.is_a?(Hash)
75
+ self.class.swagger_types.each_pair do |key, type|
76
+ if type =~ /^Array<(.*)>/i
77
+ # check to ensure the input is an array given that the the attribute
78
+ # is documented as an array but the input is not
79
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
80
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
81
+ end
82
+ elsif !attributes[self.class.attribute_map[key]].nil?
83
+ self.send("#{key}=", OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
84
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
85
+ end
86
+
87
+ self
88
+ end
89
+
90
+ # Returns the string representation of the object
91
+ # @return [String] String presentation of the object
92
+ def to_s
93
+ to_hash.to_s
94
+ end
95
+
96
+ # Returns the object in the form of hash
97
+ # @return [Hash] Returns the object in the form of hash
98
+ def to_hash
99
+ hash = {}
100
+ self.class.attribute_map.each_pair do |attr, param|
101
+ value = self.send(attr)
102
+ next if value.nil?
103
+ hash[param] = _to_hash(value)
104
+ end
105
+ hash
106
+ end
107
+
108
+ private
109
+
110
+ # Outputs non-array value in the form of hash
111
+ # For object, use to_hash. Otherwise, just return the value
112
+ # @param [Object] value Any valid value
113
+ # @return [Hash] Returns the value in the form of hash
114
+ def _to_hash(value)
115
+ if value.is_a?(Array)
116
+ value.compact.map{ |v| _to_hash(v) }
117
+ elsif value.is_a?(Hash)
118
+ {}.tap do |hash|
119
+ value.each { |k, v| hash[k] = _to_hash(v) }
120
+ end
121
+ elsif value.respond_to? :to_hash
122
+ value.to_hash
123
+ else
124
+ value
125
+ end
126
+ end
127
+
128
+
129
+
130
+ # Attribute mapping from ruby-style variable name to JSON key.
131
+ def self.attribute_map
132
+ {
133
+ :'destination_type' => :'destinationType',
134
+ :'bucket_name' => :'bucketName',
135
+ :'namespace_name' => :'namespaceName',
136
+ :'object_name' => :'objectName'
137
+ }
138
+ end
139
+
140
+ # Attribute type mapping.
141
+ def self.swagger_types
142
+ {
143
+ :'destination_type' => :'String',
144
+ :'bucket_name' => :'String',
145
+ :'namespace_name' => :'String',
146
+ :'object_name' => :'String'
147
+ }
148
+ end
149
+ end
150
+ end