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,257 @@
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::CreateSubnetDetails
7
+ # The Availability Domain to contain the subnet.
8
+ #
9
+ # Example: `Uocm:PHX-AD-1`
10
+ #
11
+ # @return [String]
12
+ attr_accessor :availability_domain
13
+
14
+ # The CIDR IP address range of the subnet.
15
+ #
16
+ # Example: `172.16.1.0/24`
17
+ #
18
+ # @return [String]
19
+ attr_accessor :cidr_block
20
+
21
+ # The OCID of the compartment to contain the subnet.
22
+ # @return [String]
23
+ attr_accessor :compartment_id
24
+
25
+ # The OCID of the set of DHCP options the subnet will use. If you don't
26
+ # provide a value, the subnet will use the VCN's default set of DHCP options.
27
+ #
28
+ # @return [String]
29
+ attr_accessor :dhcp_options_id
30
+
31
+ # A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
32
+ # @return [String]
33
+ attr_accessor :display_name
34
+
35
+ # A DNS label for the subnet, used in conjunction with the VNIC's hostname and
36
+ # VCN's DNS label to form a fully qualified domain name (FQDN) for each VNIC
37
+ # within this subnet (for example, `bminstance-1.subnet123.vcn1.oraclevcn.com`).
38
+ # Must be an alphanumeric string that begins with a letter and is unique within the VCN.
39
+ # The value cannot be changed.
40
+ #
41
+ # This value must be set if you want to use the Internet and VCN Resolver to resolve the
42
+ # hostnames of instances in the subnet. It can only be set if the VCN itself
43
+ # was created with a DNS label.
44
+ #
45
+ # For more information, see
46
+ # [DNS in Your Virtual Cloud Network](https://docs.us-phoenix-1.oraclecloud.com/Content/Network/Concepts/dns.htm).
47
+ #
48
+ # Example: `subnet123`
49
+ #
50
+ # @return [String]
51
+ attr_accessor :dns_label
52
+
53
+ # Whether VNICs within this subnet can have public IP addresses.
54
+ # Defaults to false, which means VNICs created in this subnet will
55
+ # automatically be assigned public IP addresses unless specified
56
+ # otherwise during instance launch or VNIC creation (with the
57
+ # `assignPublicIp` flag in {CreateVnicDetails}).
58
+ # If `prohibitPublicIpOnVnic` is set to true, VNICs created in this
59
+ # subnet cannot have public IP addresses (that is, it's a private
60
+ # subnet).
61
+ #
62
+ # Example: `true`
63
+ #
64
+ # @return [BOOLEAN]
65
+ attr_accessor :prohibit_public_ip_on_vnic
66
+
67
+ # The OCID of the route table the subnet will use. If you don't provide a value,
68
+ # the subnet will use the VCN's default route table.
69
+ #
70
+ # @return [String]
71
+ attr_accessor :route_table_id
72
+
73
+ # OCIDs for the security lists to associate with the subnet. If you don't
74
+ # provide a value, the VCN's default security list will be associated with
75
+ # the subnet. Remember that security lists are associated at the subnet
76
+ # level, but the rules are applied to the individual VNICs in the subnet.
77
+ #
78
+ # @return [Array<String>]
79
+ attr_accessor :security_list_ids
80
+
81
+ # The OCID of the VCN to contain the subnet.
82
+ # @return [String]
83
+ attr_accessor :vcn_id
84
+
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ return unless attributes.is_a?(Hash)
90
+
91
+ # convert string to symbol for hash key
92
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
93
+
94
+ if attributes[:'availabilityDomain']
95
+ self.availability_domain = attributes[:'availabilityDomain']
96
+ end
97
+
98
+ if attributes[:'cidrBlock']
99
+ self.cidr_block = attributes[:'cidrBlock']
100
+ end
101
+
102
+ if attributes[:'compartmentId']
103
+ self.compartment_id = attributes[:'compartmentId']
104
+ end
105
+
106
+ if attributes[:'dhcpOptionsId']
107
+ self.dhcp_options_id = attributes[:'dhcpOptionsId']
108
+ end
109
+
110
+ if attributes[:'displayName']
111
+ self.display_name = attributes[:'displayName']
112
+ end
113
+
114
+ if attributes[:'dnsLabel']
115
+ self.dns_label = attributes[:'dnsLabel']
116
+ end
117
+
118
+ if attributes[:'prohibitPublicIpOnVnic']
119
+ self.prohibit_public_ip_on_vnic = attributes[:'prohibitPublicIpOnVnic']
120
+ end
121
+
122
+ if attributes[:'routeTableId']
123
+ self.route_table_id = attributes[:'routeTableId']
124
+ end
125
+
126
+ if attributes[:'securityListIds']
127
+ self.security_list_ids = attributes[:'securityListIds']
128
+ end
129
+
130
+ if attributes[:'vcnId']
131
+ self.vcn_id = attributes[:'vcnId']
132
+ end
133
+
134
+ end
135
+
136
+ # Checks equality by comparing each attribute.
137
+ # @param [Object] other_object to be compared
138
+ def ==(other_object)
139
+ return true if self.equal?(other_object)
140
+ self.class == other_object.class &&
141
+ availability_domain == other_object.availability_domain &&
142
+ cidr_block == other_object.cidr_block &&
143
+ compartment_id == other_object.compartment_id &&
144
+ dhcp_options_id == other_object.dhcp_options_id &&
145
+ display_name == other_object.display_name &&
146
+ dns_label == other_object.dns_label &&
147
+ prohibit_public_ip_on_vnic == other_object.prohibit_public_ip_on_vnic &&
148
+ route_table_id == other_object.route_table_id &&
149
+ security_list_ids == other_object.security_list_ids &&
150
+ vcn_id == other_object.vcn_id
151
+ end
152
+
153
+ # @see the `==` method
154
+ # @param [Object] other_object to be compared
155
+ def eql?(other_object)
156
+ self == other_object
157
+ end
158
+
159
+ # Calculates hash code according to all attributes.
160
+ # @return [Fixnum] Hash code
161
+ def hash
162
+ [availability_domain, cidr_block, compartment_id, dhcp_options_id, display_name, dns_label, prohibit_public_ip_on_vnic, route_table_id, security_list_ids, vcn_id].hash
163
+ end
164
+
165
+ # Builds the object from hash
166
+ # @param [Hash] attributes Model attributes in the form of hash
167
+ # @return [Object] Returns the model itself
168
+ def build_from_hash(attributes)
169
+ return nil unless attributes.is_a?(Hash)
170
+ self.class.swagger_types.each_pair do |key, type|
171
+ if type =~ /^Array<(.*)>/i
172
+ # check to ensure the input is an array given that the the attribute
173
+ # is documented as an array but the input is not
174
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
175
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
176
+ end
177
+ elsif !attributes[self.class.attribute_map[key]].nil?
178
+ self.send("#{key}=", OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
179
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
180
+ end
181
+
182
+ self
183
+ end
184
+
185
+ # Returns the string representation of the object
186
+ # @return [String] String presentation of the object
187
+ def to_s
188
+ to_hash.to_s
189
+ end
190
+
191
+ # Returns the object in the form of hash
192
+ # @return [Hash] Returns the object in the form of hash
193
+ def to_hash
194
+ hash = {}
195
+ self.class.attribute_map.each_pair do |attr, param|
196
+ value = self.send(attr)
197
+ next if value.nil?
198
+ hash[param] = _to_hash(value)
199
+ end
200
+ hash
201
+ end
202
+
203
+ private
204
+
205
+ # Outputs non-array value in the form of hash
206
+ # For object, use to_hash. Otherwise, just return the value
207
+ # @param [Object] value Any valid value
208
+ # @return [Hash] Returns the value in the form of hash
209
+ def _to_hash(value)
210
+ if value.is_a?(Array)
211
+ value.compact.map{ |v| _to_hash(v) }
212
+ elsif value.is_a?(Hash)
213
+ {}.tap do |hash|
214
+ value.each { |k, v| hash[k] = _to_hash(v) }
215
+ end
216
+ elsif value.respond_to? :to_hash
217
+ value.to_hash
218
+ else
219
+ value
220
+ end
221
+ end
222
+
223
+
224
+
225
+ # Attribute mapping from ruby-style variable name to JSON key.
226
+ def self.attribute_map
227
+ {
228
+ :'availability_domain' => :'availabilityDomain',
229
+ :'cidr_block' => :'cidrBlock',
230
+ :'compartment_id' => :'compartmentId',
231
+ :'dhcp_options_id' => :'dhcpOptionsId',
232
+ :'display_name' => :'displayName',
233
+ :'dns_label' => :'dnsLabel',
234
+ :'prohibit_public_ip_on_vnic' => :'prohibitPublicIpOnVnic',
235
+ :'route_table_id' => :'routeTableId',
236
+ :'security_list_ids' => :'securityListIds',
237
+ :'vcn_id' => :'vcnId'
238
+ }
239
+ end
240
+
241
+ # Attribute type mapping.
242
+ def self.swagger_types
243
+ {
244
+ :'availability_domain' => :'String',
245
+ :'cidr_block' => :'String',
246
+ :'compartment_id' => :'String',
247
+ :'dhcp_options_id' => :'String',
248
+ :'display_name' => :'String',
249
+ :'dns_label' => :'String',
250
+ :'prohibit_public_ip_on_vnic' => :'BOOLEAN',
251
+ :'route_table_id' => :'String',
252
+ :'security_list_ids' => :'Array<String>',
253
+ :'vcn_id' => :'String'
254
+ }
255
+ end
256
+ end
257
+ end
@@ -0,0 +1,171 @@
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::CreateVcnDetails
7
+ # The CIDR IP address block of the VCN.
8
+ #
9
+ # Example: `172.16.0.0/16`
10
+ #
11
+ # @return [String]
12
+ attr_accessor :cidr_block
13
+
14
+ # The OCID of the compartment to contain the VCN.
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 entering confidential information.
19
+ # @return [String]
20
+ attr_accessor :display_name
21
+
22
+ # A DNS label for the VCN, used in conjunction with the VNIC's hostname and
23
+ # subnet's DNS label to form a fully qualified domain name (FQDN) for each VNIC
24
+ # within this subnet (for example, `bminstance-1.subnet123.vcn1.oraclevcn.com`).
25
+ # Not required to be unique, but it's a best practice to set unique DNS labels
26
+ # for VCNs in your tenancy. Must be an alphanumeric string that begins with a letter.
27
+ # The value cannot be changed.
28
+ #
29
+ # You must set this value if you want instances to be able to use hostnames to
30
+ # resolve other instances in the VCN. Otherwise the Internet and VCN Resolver
31
+ # will not work.
32
+ #
33
+ # For more information, see
34
+ # [DNS in Your Virtual Cloud Network](https://docs.us-phoenix-1.oraclecloud.com/Content/Network/Concepts/dns.htm).
35
+ #
36
+ # Example: `vcn1`
37
+ #
38
+ # @return [String]
39
+ attr_accessor :dns_label
40
+
41
+
42
+ # Initializes the object
43
+ # @param [Hash] attributes Model attributes in the form of hash
44
+ def initialize(attributes = {})
45
+ return unless attributes.is_a?(Hash)
46
+
47
+ # convert string to symbol for hash key
48
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
49
+
50
+ if attributes[:'cidrBlock']
51
+ self.cidr_block = attributes[:'cidrBlock']
52
+ end
53
+
54
+ if attributes[:'compartmentId']
55
+ self.compartment_id = attributes[:'compartmentId']
56
+ end
57
+
58
+ if attributes[:'displayName']
59
+ self.display_name = attributes[:'displayName']
60
+ end
61
+
62
+ if attributes[:'dnsLabel']
63
+ self.dns_label = attributes[:'dnsLabel']
64
+ end
65
+
66
+ end
67
+
68
+ # Checks equality by comparing each attribute.
69
+ # @param [Object] other_object to be compared
70
+ def ==(other_object)
71
+ return true if self.equal?(other_object)
72
+ self.class == other_object.class &&
73
+ cidr_block == other_object.cidr_block &&
74
+ compartment_id == other_object.compartment_id &&
75
+ display_name == other_object.display_name &&
76
+ dns_label == other_object.dns_label
77
+ end
78
+
79
+ # @see the `==` method
80
+ # @param [Object] other_object to be compared
81
+ def eql?(other_object)
82
+ self == other_object
83
+ end
84
+
85
+ # Calculates hash code according to all attributes.
86
+ # @return [Fixnum] Hash code
87
+ def hash
88
+ [cidr_block, compartment_id, display_name, dns_label].hash
89
+ end
90
+
91
+ # Builds the object from hash
92
+ # @param [Hash] attributes Model attributes in the form of hash
93
+ # @return [Object] Returns the model itself
94
+ def build_from_hash(attributes)
95
+ return nil unless attributes.is_a?(Hash)
96
+ self.class.swagger_types.each_pair do |key, type|
97
+ if type =~ /^Array<(.*)>/i
98
+ # check to ensure the input is an array given that the the attribute
99
+ # is documented as an array but the input is not
100
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
101
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
102
+ end
103
+ elsif !attributes[self.class.attribute_map[key]].nil?
104
+ self.send("#{key}=", OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
105
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
106
+ end
107
+
108
+ self
109
+ end
110
+
111
+ # Returns the string representation of the object
112
+ # @return [String] String presentation of the object
113
+ def to_s
114
+ to_hash.to_s
115
+ end
116
+
117
+ # Returns the object in the form of hash
118
+ # @return [Hash] Returns the object in the form of hash
119
+ def to_hash
120
+ hash = {}
121
+ self.class.attribute_map.each_pair do |attr, param|
122
+ value = self.send(attr)
123
+ next if value.nil?
124
+ hash[param] = _to_hash(value)
125
+ end
126
+ hash
127
+ end
128
+
129
+ private
130
+
131
+ # Outputs non-array value in the form of hash
132
+ # For object, use to_hash. Otherwise, just return the value
133
+ # @param [Object] value Any valid value
134
+ # @return [Hash] Returns the value in the form of hash
135
+ def _to_hash(value)
136
+ if value.is_a?(Array)
137
+ value.compact.map{ |v| _to_hash(v) }
138
+ elsif value.is_a?(Hash)
139
+ {}.tap do |hash|
140
+ value.each { |k, v| hash[k] = _to_hash(v) }
141
+ end
142
+ elsif value.respond_to? :to_hash
143
+ value.to_hash
144
+ else
145
+ value
146
+ end
147
+ end
148
+
149
+
150
+
151
+ # Attribute mapping from ruby-style variable name to JSON key.
152
+ def self.attribute_map
153
+ {
154
+ :'cidr_block' => :'cidrBlock',
155
+ :'compartment_id' => :'compartmentId',
156
+ :'display_name' => :'displayName',
157
+ :'dns_label' => :'dnsLabel'
158
+ }
159
+ end
160
+
161
+ # Attribute type mapping.
162
+ def self.swagger_types
163
+ {
164
+ :'cidr_block' => :'String',
165
+ :'compartment_id' => :'String',
166
+ :'display_name' => :'String',
167
+ :'dns_label' => :'String'
168
+ }
169
+ end
170
+ end
171
+ end
@@ -0,0 +1,260 @@
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::CreateVirtualCircuitDetails
7
+
8
+ TYPE_ENUM = [TYPE_PUBLIC = 'PUBLIC',
9
+ TYPE_PRIVATE = 'PRIVATE']
10
+
11
+ # The provisioned data rate of the connection. To get a list of the
12
+ # available bandwidth levels (that is, shapes), see
13
+ # {#list_virtual_circuit_bandwidth_shapes list_virtual_circuit_bandwidth_shapes}.
14
+ #
15
+ # Example: `10 Gbps`
16
+ #
17
+ # @return [String]
18
+ attr_accessor :bandwidth_shape_name
19
+
20
+ # The OCID of the compartment to contain the virtual circuit.
21
+ #
22
+ # @return [String]
23
+ attr_accessor :compartment_id
24
+
25
+ # Create a `CrossConnectMapping` for each cross-connect or cross-connect
26
+ # group this virtual circuit will run on.
27
+ #
28
+ # @return [Array<OCI::Core::Models::CrossConnectMapping>]
29
+ attr_accessor :cross_connect_mappings
30
+
31
+ # Your BGP ASN (either public or private). Provide this value only if
32
+ # there's a BGP session that goes from your edge router to Oracle.
33
+ # Otherwise, leave this empty or null.
34
+ #
35
+ # @return [Integer]
36
+ attr_accessor :customer_bgp_asn
37
+
38
+ # A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
39
+ #
40
+ # @return [String]
41
+ attr_accessor :display_name
42
+
43
+ # The OCID of the {Drg}
44
+ # that this virtual circuit uses.
45
+ #
46
+ # @return [String]
47
+ attr_accessor :gateway_id
48
+
49
+ # The name of the provider (if you're connecting via a provider).
50
+ # To get a list of the provider names, see
51
+ # {#list_fast_connect_provider_services list_fast_connect_provider_services}.
52
+ #
53
+ # @return [String]
54
+ attr_accessor :provider_name
55
+
56
+ # The name of the service offered by the provider (if you're connecting
57
+ # via a provider). To get a list of the available service offerings, see
58
+ # {#list_fast_connect_provider_services list_fast_connect_provider_services}.
59
+ #
60
+ # @return [String]
61
+ attr_accessor :provider_service_name
62
+
63
+ # The Oracle Bare Metal Cloud Services region where this virtual
64
+ # circuit is located.
65
+ #
66
+ # Example: `phx`
67
+ #
68
+ # @return [String]
69
+ attr_accessor :region
70
+
71
+ # The type of IP addresses used in this virtual circuit. PRIVATE
72
+ # means [RFC 1918](https://tools.ietf.org/html/rfc1918) addresses
73
+ # (10.0.0.0/8, 172.16/12, and 192.168/16). Only PRIVATE is supported.
74
+ #
75
+ # @return [String]
76
+ attr_accessor :type
77
+
78
+
79
+ # Initializes the object
80
+ # @param [Hash] attributes Model attributes in the form of hash
81
+ def initialize(attributes = {})
82
+ return unless attributes.is_a?(Hash)
83
+
84
+ # convert string to symbol for hash key
85
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
86
+
87
+ if attributes[:'bandwidthShapeName']
88
+ self.bandwidth_shape_name = attributes[:'bandwidthShapeName']
89
+ end
90
+
91
+ if attributes[:'compartmentId']
92
+ self.compartment_id = attributes[:'compartmentId']
93
+ end
94
+
95
+ if attributes[:'crossConnectMappings']
96
+ self.cross_connect_mappings = attributes[:'crossConnectMappings']
97
+ end
98
+
99
+ if attributes[:'customerBgpAsn']
100
+ self.customer_bgp_asn = attributes[:'customerBgpAsn']
101
+ end
102
+
103
+ if attributes[:'displayName']
104
+ self.display_name = attributes[:'displayName']
105
+ end
106
+
107
+ if attributes[:'gatewayId']
108
+ self.gateway_id = attributes[:'gatewayId']
109
+ end
110
+
111
+ if attributes[:'providerName']
112
+ self.provider_name = attributes[:'providerName']
113
+ end
114
+
115
+ if attributes[:'providerServiceName']
116
+ self.provider_service_name = attributes[:'providerServiceName']
117
+ end
118
+
119
+ if attributes[:'region']
120
+ self.region = attributes[:'region']
121
+ end
122
+
123
+ if attributes[:'type']
124
+ self.type = attributes[:'type']
125
+ end
126
+
127
+ end
128
+
129
+ # Custom attribute writer method checking allowed values (enum).
130
+ # @param [Object] type Object to be assigned
131
+ def type=(type)
132
+ if type && !TYPE_ENUM.include?(type)
133
+ fail "Invalid value for 'type': this must be one of the values in TYPE_ENUM."
134
+ else
135
+ @type = type
136
+ end
137
+ end
138
+
139
+ # Checks equality by comparing each attribute.
140
+ # @param [Object] other_object to be compared
141
+ def ==(other_object)
142
+ return true if self.equal?(other_object)
143
+ self.class == other_object.class &&
144
+ bandwidth_shape_name == other_object.bandwidth_shape_name &&
145
+ compartment_id == other_object.compartment_id &&
146
+ cross_connect_mappings == other_object.cross_connect_mappings &&
147
+ customer_bgp_asn == other_object.customer_bgp_asn &&
148
+ display_name == other_object.display_name &&
149
+ gateway_id == other_object.gateway_id &&
150
+ provider_name == other_object.provider_name &&
151
+ provider_service_name == other_object.provider_service_name &&
152
+ region == other_object.region &&
153
+ type == other_object.type
154
+ end
155
+
156
+ # @see the `==` method
157
+ # @param [Object] other_object to be compared
158
+ def eql?(other_object)
159
+ self == other_object
160
+ end
161
+
162
+ # Calculates hash code according to all attributes.
163
+ # @return [Fixnum] Hash code
164
+ def hash
165
+ [bandwidth_shape_name, compartment_id, cross_connect_mappings, customer_bgp_asn, display_name, gateway_id, provider_name, provider_service_name, region, type].hash
166
+ end
167
+
168
+ # Builds the object from hash
169
+ # @param [Hash] attributes Model attributes in the form of hash
170
+ # @return [Object] Returns the model itself
171
+ def build_from_hash(attributes)
172
+ return nil unless attributes.is_a?(Hash)
173
+ self.class.swagger_types.each_pair do |key, type|
174
+ if type =~ /^Array<(.*)>/i
175
+ # check to ensure the input is an array given that the the attribute
176
+ # is documented as an array but the input is not
177
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
178
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
179
+ end
180
+ elsif !attributes[self.class.attribute_map[key]].nil?
181
+ self.send("#{key}=", OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
182
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
183
+ end
184
+
185
+ self
186
+ end
187
+
188
+ # Returns the string representation of the object
189
+ # @return [String] String presentation of the object
190
+ def to_s
191
+ to_hash.to_s
192
+ end
193
+
194
+ # Returns the object in the form of hash
195
+ # @return [Hash] Returns the object in the form of hash
196
+ def to_hash
197
+ hash = {}
198
+ self.class.attribute_map.each_pair do |attr, param|
199
+ value = self.send(attr)
200
+ next if value.nil?
201
+ hash[param] = _to_hash(value)
202
+ end
203
+ hash
204
+ end
205
+
206
+ private
207
+
208
+ # Outputs non-array value in the form of hash
209
+ # For object, use to_hash. Otherwise, just return the value
210
+ # @param [Object] value Any valid value
211
+ # @return [Hash] Returns the value in the form of hash
212
+ def _to_hash(value)
213
+ if value.is_a?(Array)
214
+ value.compact.map{ |v| _to_hash(v) }
215
+ elsif value.is_a?(Hash)
216
+ {}.tap do |hash|
217
+ value.each { |k, v| hash[k] = _to_hash(v) }
218
+ end
219
+ elsif value.respond_to? :to_hash
220
+ value.to_hash
221
+ else
222
+ value
223
+ end
224
+ end
225
+
226
+
227
+
228
+ # Attribute mapping from ruby-style variable name to JSON key.
229
+ def self.attribute_map
230
+ {
231
+ :'bandwidth_shape_name' => :'bandwidthShapeName',
232
+ :'compartment_id' => :'compartmentId',
233
+ :'cross_connect_mappings' => :'crossConnectMappings',
234
+ :'customer_bgp_asn' => :'customerBgpAsn',
235
+ :'display_name' => :'displayName',
236
+ :'gateway_id' => :'gatewayId',
237
+ :'provider_name' => :'providerName',
238
+ :'provider_service_name' => :'providerServiceName',
239
+ :'region' => :'region',
240
+ :'type' => :'type'
241
+ }
242
+ end
243
+
244
+ # Attribute type mapping.
245
+ def self.swagger_types
246
+ {
247
+ :'bandwidth_shape_name' => :'String',
248
+ :'compartment_id' => :'String',
249
+ :'cross_connect_mappings' => :'Array<OCI::Core::Models::CrossConnectMapping>',
250
+ :'customer_bgp_asn' => :'Integer',
251
+ :'display_name' => :'String',
252
+ :'gateway_id' => :'String',
253
+ :'provider_name' => :'String',
254
+ :'provider_service_name' => :'String',
255
+ :'region' => :'String',
256
+ :'type' => :'String'
257
+ }
258
+ end
259
+ end
260
+ end