oci 2.0.6 → 2.0.7

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +23 -1
  3. data/lib/oci.rb +4 -7
  4. data/lib/oci/api_client.rb +51 -6
  5. data/lib/oci/auth/auth.rb +5 -2
  6. data/lib/oci/auth/federation_client.rb +2 -2
  7. data/lib/oci/auth/internal/auth_token_request_signer.rb +2 -2
  8. data/lib/oci/auth/security_token_container.rb +2 -2
  9. data/lib/oci/auth/session_key_supplier.rb +3 -4
  10. data/lib/oci/auth/signers/instance_principals_security_token_signer.rb +30 -17
  11. data/lib/oci/auth/signers/security_token_signer.rb +13 -6
  12. data/lib/oci/auth/signers/x509_federation_client_based_security_token_signer.rb +8 -4
  13. data/lib/oci/auth/url_based_certificate_retriever.rb +3 -4
  14. data/lib/oci/auth/util.rb +6 -4
  15. data/lib/oci/base_signer.rb +54 -50
  16. data/lib/oci/config_file_loader.rb +3 -11
  17. data/lib/oci/core/blockstorage_client.rb +211 -0
  18. data/lib/oci/core/compute_client.rb +4 -2
  19. data/lib/oci/core/core.rb +9 -0
  20. data/lib/oci/core/models/attach_i_scsi_volume_details.rb +5 -1
  21. data/lib/oci/core/models/attach_volume_details.rb +13 -1
  22. data/lib/oci/core/models/create_public_ip_details.rb +186 -0
  23. data/lib/oci/core/models/create_vnic_details.rb +8 -2
  24. data/lib/oci/core/models/create_volume_backup_details.rb +27 -1
  25. data/lib/oci/core/models/create_volume_backup_policy_assignment_details.rb +133 -0
  26. data/lib/oci/core/models/create_volume_details.rb +15 -1
  27. data/lib/oci/core/models/get_public_ip_by_ip_address_details.rb +125 -0
  28. data/lib/oci/core/models/get_public_ip_by_private_ip_id_details.rb +124 -0
  29. data/lib/oci/core/models/i_scsi_volume_attachment.rb +5 -1
  30. data/lib/oci/core/models/public_ip.rb +328 -0
  31. data/lib/oci/core/models/update_public_ip_details.rb +140 -0
  32. data/lib/oci/core/models/volume_attachment.rb +13 -1
  33. data/lib/oci/core/models/volume_backup.rb +72 -1
  34. data/lib/oci/core/models/volume_backup_policy.rb +161 -0
  35. data/lib/oci/core/models/volume_backup_policy_assignment.rb +159 -0
  36. data/lib/oci/core/models/volume_backup_schedule.rb +191 -0
  37. data/lib/oci/core/virtual_network_client.rb +374 -4
  38. data/lib/oci/database/database_client.rb +3 -1
  39. data/lib/oci/dns/dns.rb +34 -0
  40. data/lib/oci/dns/dns_client.rb +985 -0
  41. data/lib/oci/dns/models/create_zone_details.rb +174 -0
  42. data/lib/oci/dns/models/external_master.rb +145 -0
  43. data/lib/oci/dns/models/patch_domain_records_details.rb +120 -0
  44. data/lib/oci/dns/models/patch_rr_set_details.rb +120 -0
  45. data/lib/oci/dns/models/patch_zone_records_details.rb +120 -0
  46. data/lib/oci/dns/models/record.rb +204 -0
  47. data/lib/oci/dns/models/record_collection.rb +121 -0
  48. data/lib/oci/dns/models/record_details.rb +204 -0
  49. data/lib/oci/dns/models/record_operation.rb +253 -0
  50. data/lib/oci/dns/models/rr_set.rb +123 -0
  51. data/lib/oci/dns/models/sort_order.rb +12 -0
  52. data/lib/oci/dns/models/tsig.rb +149 -0
  53. data/lib/oci/dns/models/update_domain_records_details.rb +120 -0
  54. data/lib/oci/dns/models/update_rr_set_details.rb +120 -0
  55. data/lib/oci/dns/models/update_zone_details.rb +122 -0
  56. data/lib/oci/dns/models/update_zone_records_details.rb +120 -0
  57. data/lib/oci/dns/models/zone.rb +272 -0
  58. data/lib/oci/dns/models/zone_summary.rb +230 -0
  59. data/lib/oci/dns/util.rb +2 -0
  60. data/lib/oci/errors.rb +20 -0
  61. data/lib/oci/identity/identity_client.rb +1 -0
  62. data/lib/oci/identity/models/create_dynamic_group_details.rb +4 -2
  63. data/lib/oci/identity/models/dynamic_group.rb +9 -6
  64. data/lib/oci/identity/models/update_dynamic_group_details.rb +4 -2
  65. data/lib/oci/load_balancer/load_balancer.rb +6 -0
  66. data/lib/oci/load_balancer/load_balancer_client.rb +219 -0
  67. data/lib/oci/load_balancer/models/create_listener_details.rb +17 -1
  68. data/lib/oci/load_balancer/models/create_load_balancer_details.rb +12 -1
  69. data/lib/oci/load_balancer/models/create_path_route_set_details.rb +138 -0
  70. data/lib/oci/load_balancer/models/listener.rb +17 -1
  71. data/lib/oci/load_balancer/models/listener_details.rb +17 -1
  72. data/lib/oci/load_balancer/models/load_balancer.rb +12 -1
  73. data/lib/oci/load_balancer/models/path_match_type.rb +153 -0
  74. data/lib/oci/load_balancer/models/path_route.rb +161 -0
  75. data/lib/oci/load_balancer/models/path_route_set.rb +139 -0
  76. data/lib/oci/load_balancer/models/path_route_set_details.rb +122 -0
  77. data/lib/oci/load_balancer/models/update_listener_details.rb +17 -1
  78. data/lib/oci/load_balancer/models/update_path_route_set_details.rb +122 -0
  79. data/lib/oci/load_balancer/util.rb +1 -3
  80. data/lib/oci/object_storage/transfer/multipart/internal/file_part_io_wrapper.rb +111 -0
  81. data/lib/oci/object_storage/transfer/multipart/internal/multipart_upload_parts_collection.rb +41 -0
  82. data/lib/oci/object_storage/transfer/multipart/internal/seekable_non_file_part_io_wrapper.rb +48 -0
  83. data/lib/oci/object_storage/transfer/multipart/internal/stdin_part_io_wrapper.rb +54 -0
  84. data/lib/oci/object_storage/transfer/multipart/multipart_object_assembler.rb +545 -0
  85. data/lib/oci/object_storage/transfer/transfer.rb +31 -0
  86. data/lib/oci/object_storage/transfer/upload_manager.rb +212 -0
  87. data/lib/oci/object_storage/transfer/upload_manager_config.rb +60 -0
  88. data/lib/oci/regions.rb +3 -1
  89. data/lib/oci/response.rb +1 -3
  90. data/lib/oci/version.rb +1 -1
  91. data/lib/oci/waiter.rb +16 -11
  92. data/lib/oraclebmc.rb +1 -1
  93. metadata +46 -2
@@ -45,6 +45,9 @@ module OCI
45
45
  # @return [Hash<String, OCI::LoadBalancer::Models::ListenerDetails>]
46
46
  attr_accessor :listeners
47
47
 
48
+ # @return [Hash<String, OCI::LoadBalancer::Models::PathRouteSetDetails>]
49
+ attr_accessor :path_route_sets
50
+
48
51
  # **[Required]** A template that determines the total pre-provisioned bandwidth (ingress plus egress).
49
52
  # To get a list of available shapes, use the {#list_shapes list_shapes}
50
53
  # operation.
@@ -67,6 +70,7 @@ module OCI
67
70
  # @option attributes [String] :displayName The value to assign to the {#display_name} property
68
71
  # @option attributes [BOOLEAN] :isPrivate The value to assign to the {#is_private} property
69
72
  # @option attributes [Hash<String, OCI::LoadBalancer::Models::ListenerDetails>] :listeners The value to assign to the {#listeners} property
73
+ # @option attributes [Hash<String, OCI::LoadBalancer::Models::PathRouteSetDetails>] :pathRouteSets The value to assign to the {#path_route_sets} property
70
74
  # @option attributes [String] :shapeName The value to assign to the {#shape_name} property
71
75
  # @option attributes [Array<String>] :subnetIds The value to assign to the {#subnet_ids} property
72
76
  def initialize(attributes = {})
@@ -101,6 +105,10 @@ module OCI
101
105
  self.listeners = attributes[:'listeners']
102
106
  end
103
107
 
108
+ if attributes[:'pathRouteSets']
109
+ self.path_route_sets = attributes[:'pathRouteSets']
110
+ end
111
+
104
112
  if attributes[:'shapeName']
105
113
  self.shape_name = attributes[:'shapeName']
106
114
  end
@@ -122,6 +130,7 @@ module OCI
122
130
  display_name == other_object.display_name &&
123
131
  is_private == other_object.is_private &&
124
132
  listeners == other_object.listeners &&
133
+ path_route_sets == other_object.path_route_sets &&
125
134
  shape_name == other_object.shape_name &&
126
135
  subnet_ids == other_object.subnet_ids
127
136
  end
@@ -135,7 +144,7 @@ module OCI
135
144
  # Calculates hash code according to all attributes.
136
145
  # @return [Fixnum] Hash code
137
146
  def hash
138
- [backend_sets, certificates, compartment_id, display_name, is_private, listeners, shape_name, subnet_ids].hash
147
+ [backend_sets, certificates, compartment_id, display_name, is_private, listeners, path_route_sets, shape_name, subnet_ids].hash
139
148
  end
140
149
 
141
150
  # Builds the object from hash
@@ -207,6 +216,7 @@ module OCI
207
216
  :'display_name' => :'displayName',
208
217
  :'is_private' => :'isPrivate',
209
218
  :'listeners' => :'listeners',
219
+ :'path_route_sets' => :'pathRouteSets',
210
220
  :'shape_name' => :'shapeName',
211
221
  :'subnet_ids' => :'subnetIds'
212
222
  }
@@ -221,6 +231,7 @@ module OCI
221
231
  :'display_name' => :'String',
222
232
  :'is_private' => :'BOOLEAN',
223
233
  :'listeners' => :'Hash<String, OCI::LoadBalancer::Models::ListenerDetails>',
234
+ :'path_route_sets' => :'Hash<String, OCI::LoadBalancer::Models::PathRouteSetDetails>',
224
235
  :'shape_name' => :'String',
225
236
  :'subnet_ids' => :'Array<String>'
226
237
  }
@@ -0,0 +1,138 @@
1
+ # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ module OCI
6
+ # A named set of path route rules to add to the load balancer.
7
+ class LoadBalancer::Models::CreatePathRouteSetDetails
8
+ # **[Required]** The name for this set of path route rules. It must be unique and it cannot be changed. Avoid entering
9
+ # confidential information.
10
+ #
11
+ # Example: `path-route-set-001`
12
+ #
13
+ # @return [String]
14
+ attr_accessor :name
15
+
16
+ # **[Required]** The set of path route rules.
17
+ # @return [Array<OCI::LoadBalancer::Models::PathRoute>]
18
+ attr_accessor :path_routes
19
+
20
+
21
+ # Initializes the object
22
+ # @param [Hash] attributes Model attributes in the form of hash
23
+ # @option attributes [String] :name The value to assign to the {#name} property
24
+ # @option attributes [Array<OCI::LoadBalancer::Models::PathRoute>] :pathRoutes The value to assign to the {#path_routes} property
25
+ def initialize(attributes = {})
26
+ return unless attributes.is_a?(Hash)
27
+
28
+ # convert string to symbol for hash key
29
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
30
+
31
+ if attributes[:'name']
32
+ self.name = attributes[:'name']
33
+ end
34
+
35
+ if attributes[:'pathRoutes']
36
+ self.path_routes = attributes[:'pathRoutes']
37
+ end
38
+
39
+ end
40
+
41
+ # Checks equality by comparing each attribute.
42
+ # @param [Object] other_object to be compared
43
+ def ==(other_object)
44
+ return true if self.equal?(other_object)
45
+ self.class == other_object.class &&
46
+ name == other_object.name &&
47
+ path_routes == other_object.path_routes
48
+ end
49
+
50
+ # @see the `==` method
51
+ # @param [Object] other_object to be compared
52
+ def eql?(other_object)
53
+ self == other_object
54
+ end
55
+
56
+ # Calculates hash code according to all attributes.
57
+ # @return [Fixnum] Hash code
58
+ def hash
59
+ [name, path_routes].hash
60
+ end
61
+
62
+ # Builds the object from hash
63
+ # @param [Hash] attributes Model attributes in the form of hash
64
+ # @return [Object] Returns the model itself
65
+ def build_from_hash(attributes)
66
+ return nil unless attributes.is_a?(Hash)
67
+ self.class.swagger_types.each_pair do |key, type|
68
+ if type =~ /^Array<(.*)>/i
69
+ # check to ensure the input is an array given that the the attribute
70
+ # is documented as an array but the input is not
71
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
72
+ self.public_method("#{key}=").call(attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
73
+ end
74
+ elsif !attributes[self.class.attribute_map[key]].nil?
75
+ self.public_method("#{key}=").call(OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
76
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
77
+ end
78
+
79
+ self
80
+ end
81
+
82
+ # Returns the string representation of the object
83
+ # @return [String] String presentation of the object
84
+ def to_s
85
+ to_hash.to_s
86
+ end
87
+
88
+ # Returns the object in the form of hash
89
+ # @return [Hash] Returns the object in the form of hash
90
+ def to_hash
91
+ hash = {}
92
+ self.class.attribute_map.each_pair do |attr, param|
93
+ value = public_method(attr).call
94
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
95
+ hash[param] = _to_hash(value)
96
+ end
97
+ hash
98
+ end
99
+
100
+ private
101
+
102
+ # Outputs non-array value in the form of hash
103
+ # For object, use to_hash. Otherwise, just return the value
104
+ # @param [Object] value Any valid value
105
+ # @return [Hash] Returns the value in the form of hash
106
+ def _to_hash(value)
107
+ if value.is_a?(Array)
108
+ value.compact.map{ |v| _to_hash(v) }
109
+ elsif value.is_a?(Hash)
110
+ {}.tap do |hash|
111
+ value.each { |k, v| hash[k] = _to_hash(v) }
112
+ end
113
+ elsif value.respond_to? :to_hash
114
+ value.to_hash
115
+ else
116
+ value
117
+ end
118
+ end
119
+
120
+
121
+
122
+ # Attribute mapping from ruby-style variable name to JSON key.
123
+ def self.attribute_map
124
+ {
125
+ :'name' => :'name',
126
+ :'path_routes' => :'pathRoutes'
127
+ }
128
+ end
129
+
130
+ # Attribute type mapping.
131
+ def self.swagger_types
132
+ {
133
+ :'name' => :'String',
134
+ :'path_routes' => :'Array<OCI::LoadBalancer::Models::PathRoute>'
135
+ }
136
+ end
137
+ end
138
+ end
@@ -25,6 +25,14 @@ module OCI
25
25
  # @return [String]
26
26
  attr_accessor :name
27
27
 
28
+ # The name of the set of path-based routing rules, {PathRouteSet},
29
+ # applied to this listener's traffic.
30
+ #
31
+ # Example: `path-route-set-001`
32
+ #
33
+ # @return [String]
34
+ attr_accessor :path_route_set_name
35
+
28
36
  # **[Required]** The communication port for the listener.
29
37
  #
30
38
  # Example: `80`
@@ -50,6 +58,7 @@ module OCI
50
58
  # @option attributes [OCI::LoadBalancer::Models::ConnectionConfiguration] :connectionConfiguration The value to assign to the {#connection_configuration} property
51
59
  # @option attributes [String] :defaultBackendSetName The value to assign to the {#default_backend_set_name} property
52
60
  # @option attributes [String] :name The value to assign to the {#name} property
61
+ # @option attributes [String] :pathRouteSetName The value to assign to the {#path_route_set_name} property
53
62
  # @option attributes [Integer] :port The value to assign to the {#port} property
54
63
  # @option attributes [String] :protocol The value to assign to the {#protocol} property
55
64
  # @option attributes [OCI::LoadBalancer::Models::SSLConfiguration] :sslConfiguration The value to assign to the {#ssl_configuration} property
@@ -71,6 +80,10 @@ module OCI
71
80
  self.name = attributes[:'name']
72
81
  end
73
82
 
83
+ if attributes[:'pathRouteSetName']
84
+ self.path_route_set_name = attributes[:'pathRouteSetName']
85
+ end
86
+
74
87
  if attributes[:'port']
75
88
  self.port = attributes[:'port']
76
89
  end
@@ -93,6 +106,7 @@ module OCI
93
106
  connection_configuration == other_object.connection_configuration &&
94
107
  default_backend_set_name == other_object.default_backend_set_name &&
95
108
  name == other_object.name &&
109
+ path_route_set_name == other_object.path_route_set_name &&
96
110
  port == other_object.port &&
97
111
  protocol == other_object.protocol &&
98
112
  ssl_configuration == other_object.ssl_configuration
@@ -107,7 +121,7 @@ module OCI
107
121
  # Calculates hash code according to all attributes.
108
122
  # @return [Fixnum] Hash code
109
123
  def hash
110
- [connection_configuration, default_backend_set_name, name, port, protocol, ssl_configuration].hash
124
+ [connection_configuration, default_backend_set_name, name, path_route_set_name, port, protocol, ssl_configuration].hash
111
125
  end
112
126
 
113
127
  # Builds the object from hash
@@ -176,6 +190,7 @@ module OCI
176
190
  :'connection_configuration' => :'connectionConfiguration',
177
191
  :'default_backend_set_name' => :'defaultBackendSetName',
178
192
  :'name' => :'name',
193
+ :'path_route_set_name' => :'pathRouteSetName',
179
194
  :'port' => :'port',
180
195
  :'protocol' => :'protocol',
181
196
  :'ssl_configuration' => :'sslConfiguration'
@@ -188,6 +203,7 @@ module OCI
188
203
  :'connection_configuration' => :'OCI::LoadBalancer::Models::ConnectionConfiguration',
189
204
  :'default_backend_set_name' => :'String',
190
205
  :'name' => :'String',
206
+ :'path_route_set_name' => :'String',
191
207
  :'port' => :'Integer',
192
208
  :'protocol' => :'String',
193
209
  :'ssl_configuration' => :'OCI::LoadBalancer::Models::SSLConfiguration'
@@ -15,6 +15,14 @@ module OCI
15
15
  # @return [String]
16
16
  attr_accessor :default_backend_set_name
17
17
 
18
+ # The name of the set of path-based routing rules, {PathRouteSet},
19
+ # applied to this listener's traffic.
20
+ #
21
+ # Example: `path-route-set-001`
22
+ #
23
+ # @return [String]
24
+ attr_accessor :path_route_set_name
25
+
18
26
  # **[Required]** The communication port for the listener.
19
27
  #
20
28
  # Example: `80`
@@ -39,6 +47,7 @@ module OCI
39
47
  # @param [Hash] attributes Model attributes in the form of hash
40
48
  # @option attributes [OCI::LoadBalancer::Models::ConnectionConfiguration] :connectionConfiguration The value to assign to the {#connection_configuration} property
41
49
  # @option attributes [String] :defaultBackendSetName The value to assign to the {#default_backend_set_name} property
50
+ # @option attributes [String] :pathRouteSetName The value to assign to the {#path_route_set_name} property
42
51
  # @option attributes [Integer] :port The value to assign to the {#port} property
43
52
  # @option attributes [String] :protocol The value to assign to the {#protocol} property
44
53
  # @option attributes [OCI::LoadBalancer::Models::SSLConfigurationDetails] :sslConfiguration The value to assign to the {#ssl_configuration} property
@@ -56,6 +65,10 @@ module OCI
56
65
  self.default_backend_set_name = attributes[:'defaultBackendSetName']
57
66
  end
58
67
 
68
+ if attributes[:'pathRouteSetName']
69
+ self.path_route_set_name = attributes[:'pathRouteSetName']
70
+ end
71
+
59
72
  if attributes[:'port']
60
73
  self.port = attributes[:'port']
61
74
  end
@@ -77,6 +90,7 @@ module OCI
77
90
  self.class == other_object.class &&
78
91
  connection_configuration == other_object.connection_configuration &&
79
92
  default_backend_set_name == other_object.default_backend_set_name &&
93
+ path_route_set_name == other_object.path_route_set_name &&
80
94
  port == other_object.port &&
81
95
  protocol == other_object.protocol &&
82
96
  ssl_configuration == other_object.ssl_configuration
@@ -91,7 +105,7 @@ module OCI
91
105
  # Calculates hash code according to all attributes.
92
106
  # @return [Fixnum] Hash code
93
107
  def hash
94
- [connection_configuration, default_backend_set_name, port, protocol, ssl_configuration].hash
108
+ [connection_configuration, default_backend_set_name, path_route_set_name, port, protocol, ssl_configuration].hash
95
109
  end
96
110
 
97
111
  # Builds the object from hash
@@ -159,6 +173,7 @@ module OCI
159
173
  {
160
174
  :'connection_configuration' => :'connectionConfiguration',
161
175
  :'default_backend_set_name' => :'defaultBackendSetName',
176
+ :'path_route_set_name' => :'pathRouteSetName',
162
177
  :'port' => :'port',
163
178
  :'protocol' => :'protocol',
164
179
  :'ssl_configuration' => :'sslConfiguration'
@@ -170,6 +185,7 @@ module OCI
170
185
  {
171
186
  :'connection_configuration' => :'OCI::LoadBalancer::Models::ConnectionConfiguration',
172
187
  :'default_backend_set_name' => :'String',
188
+ :'path_route_set_name' => :'String',
173
189
  :'port' => :'Integer',
174
190
  :'protocol' => :'String',
175
191
  :'ssl_configuration' => :'OCI::LoadBalancer::Models::SSLConfigurationDetails'
@@ -74,6 +74,9 @@ module OCI
74
74
  # @return [Hash<String, OCI::LoadBalancer::Models::Listener>]
75
75
  attr_accessor :listeners
76
76
 
77
+ # @return [Hash<String, OCI::LoadBalancer::Models::PathRouteSet>]
78
+ attr_accessor :path_route_sets
79
+
77
80
  # **[Required]** A template that determines the total pre-provisioned bandwidth (ingress plus egress).
78
81
  # To get a list of available shapes, use the {#list_shapes list_shapes}
79
82
  # operation.
@@ -106,6 +109,7 @@ module OCI
106
109
  # @option attributes [BOOLEAN] :isPrivate The value to assign to the {#is_private} property
107
110
  # @option attributes [String] :lifecycleState The value to assign to the {#lifecycle_state} property
108
111
  # @option attributes [Hash<String, OCI::LoadBalancer::Models::Listener>] :listeners The value to assign to the {#listeners} property
112
+ # @option attributes [Hash<String, OCI::LoadBalancer::Models::PathRouteSet>] :pathRouteSets The value to assign to the {#path_route_sets} property
109
113
  # @option attributes [String] :shapeName The value to assign to the {#shape_name} property
110
114
  # @option attributes [Array<String>] :subnetIds The value to assign to the {#subnet_ids} property
111
115
  # @option attributes [DateTime] :timeCreated The value to assign to the {#time_created} property
@@ -151,6 +155,10 @@ module OCI
151
155
  self.listeners = attributes[:'listeners']
152
156
  end
153
157
 
158
+ if attributes[:'pathRouteSets']
159
+ self.path_route_sets = attributes[:'pathRouteSets']
160
+ end
161
+
154
162
  if attributes[:'shapeName']
155
163
  self.shape_name = attributes[:'shapeName']
156
164
  end
@@ -189,6 +197,7 @@ module OCI
189
197
  is_private == other_object.is_private &&
190
198
  lifecycle_state == other_object.lifecycle_state &&
191
199
  listeners == other_object.listeners &&
200
+ path_route_sets == other_object.path_route_sets &&
192
201
  shape_name == other_object.shape_name &&
193
202
  subnet_ids == other_object.subnet_ids &&
194
203
  time_created == other_object.time_created
@@ -203,7 +212,7 @@ module OCI
203
212
  # Calculates hash code according to all attributes.
204
213
  # @return [Fixnum] Hash code
205
214
  def hash
206
- [backend_sets, certificates, compartment_id, display_name, id, ip_addresses, is_private, lifecycle_state, listeners, shape_name, subnet_ids, time_created].hash
215
+ [backend_sets, certificates, compartment_id, display_name, id, ip_addresses, is_private, lifecycle_state, listeners, path_route_sets, shape_name, subnet_ids, time_created].hash
207
216
  end
208
217
 
209
218
  # Builds the object from hash
@@ -278,6 +287,7 @@ module OCI
278
287
  :'is_private' => :'isPrivate',
279
288
  :'lifecycle_state' => :'lifecycleState',
280
289
  :'listeners' => :'listeners',
290
+ :'path_route_sets' => :'pathRouteSets',
281
291
  :'shape_name' => :'shapeName',
282
292
  :'subnet_ids' => :'subnetIds',
283
293
  :'time_created' => :'timeCreated'
@@ -296,6 +306,7 @@ module OCI
296
306
  :'is_private' => :'BOOLEAN',
297
307
  :'lifecycle_state' => :'String',
298
308
  :'listeners' => :'Hash<String, OCI::LoadBalancer::Models::Listener>',
309
+ :'path_route_sets' => :'Hash<String, OCI::LoadBalancer::Models::PathRouteSet>',
299
310
  :'shape_name' => :'String',
300
311
  :'subnet_ids' => :'Array<String>',
301
312
  :'time_created' => :'DateTime'
@@ -0,0 +1,153 @@
1
+ # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ module OCI
6
+ # The type of matching to apply to incoming URIs.
7
+ class LoadBalancer::Models::PathMatchType
8
+
9
+ MATCH_TYPE_ENUM = [MATCH_TYPE_EXACT_MATCH = 'EXACT_MATCH',
10
+ MATCH_TYPE_FORCE_LONGEST_PREFIX_MATCH = 'FORCE_LONGEST_PREFIX_MATCH',
11
+ MATCH_TYPE_PREFIX_MATCH = 'PREFIX_MATCH',
12
+ MATCH_TYPE_SUFFIX_MATCH = 'SUFFIX_MATCH',
13
+ MATCH_TYPE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE']
14
+
15
+ # **[Required]** Specifies how the load balancing service compares a {#path_route path_route}
16
+ # object's `path` string against the incoming URI.
17
+ #
18
+ # * **EXACT_MATCH** - Looks for a `path` string that exactly matches the incoming URI path.
19
+ #
20
+ # * **FORCE_LONGEST_PREFIX_MATCH** - Looks for the `path` string with the best, longest match of the beginning
21
+ # portion of the incoming URI path.
22
+ #
23
+ # * **PREFIX_MATCH** - Looks for a `path` string that matches the beginning portion of the incoming URI path.
24
+ #
25
+ # * **SUFFIX_MATCH** - Looks for a `path` string that matches the ending portion of the incoming URI path.
26
+ #
27
+ # For a full description of how the system handles `matchType` in a path route set containing multiple rules, see
28
+ # [Managing Request Routing](https://docs.us-phoenix-1.oraclecloud.com/Content/Balance/Tasks/managingrequest.htm).
29
+ #
30
+ # @return [String]
31
+ attr_accessor :match_type
32
+
33
+
34
+ # Initializes the object
35
+ # @param [Hash] attributes Model attributes in the form of hash
36
+ # @option attributes [String] :matchType The value to assign to the {#match_type} property
37
+ def initialize(attributes = {})
38
+ return unless attributes.is_a?(Hash)
39
+
40
+ # convert string to symbol for hash key
41
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
42
+
43
+ if attributes[:'matchType']
44
+ self.match_type = attributes[:'matchType']
45
+ end
46
+
47
+ end
48
+
49
+ # Custom attribute writer method checking allowed values (enum).
50
+ # @param [Object] match_type Object to be assigned
51
+ def match_type=(match_type)
52
+ if match_type && !MATCH_TYPE_ENUM.include?(match_type)
53
+ @match_type = MATCH_TYPE_UNKNOWN_ENUM_VALUE
54
+ else
55
+ @match_type = match_type
56
+ end
57
+ end
58
+
59
+ # Checks equality by comparing each attribute.
60
+ # @param [Object] other_object to be compared
61
+ def ==(other_object)
62
+ return true if self.equal?(other_object)
63
+ self.class == other_object.class &&
64
+ match_type == other_object.match_type
65
+ end
66
+
67
+ # @see the `==` method
68
+ # @param [Object] other_object to be compared
69
+ def eql?(other_object)
70
+ self == other_object
71
+ end
72
+
73
+ # Calculates hash code according to all attributes.
74
+ # @return [Fixnum] Hash code
75
+ def hash
76
+ [match_type].hash
77
+ end
78
+
79
+ # Builds the object from hash
80
+ # @param [Hash] attributes Model attributes in the form of hash
81
+ # @return [Object] Returns the model itself
82
+ def build_from_hash(attributes)
83
+ return nil unless attributes.is_a?(Hash)
84
+ self.class.swagger_types.each_pair do |key, type|
85
+ if type =~ /^Array<(.*)>/i
86
+ # check to ensure the input is an array given that the the attribute
87
+ # is documented as an array but the input is not
88
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
89
+ self.public_method("#{key}=").call(attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
90
+ end
91
+ elsif !attributes[self.class.attribute_map[key]].nil?
92
+ self.public_method("#{key}=").call(OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
93
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
94
+ end
95
+
96
+ self
97
+ end
98
+
99
+ # Returns the string representation of the object
100
+ # @return [String] String presentation of the object
101
+ def to_s
102
+ to_hash.to_s
103
+ end
104
+
105
+ # Returns the object in the form of hash
106
+ # @return [Hash] Returns the object in the form of hash
107
+ def to_hash
108
+ hash = {}
109
+ self.class.attribute_map.each_pair do |attr, param|
110
+ value = public_method(attr).call
111
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
112
+ hash[param] = _to_hash(value)
113
+ end
114
+ hash
115
+ end
116
+
117
+ private
118
+
119
+ # Outputs non-array value in the form of hash
120
+ # For object, use to_hash. Otherwise, just return the value
121
+ # @param [Object] value Any valid value
122
+ # @return [Hash] Returns the value in the form of hash
123
+ def _to_hash(value)
124
+ if value.is_a?(Array)
125
+ value.compact.map{ |v| _to_hash(v) }
126
+ elsif value.is_a?(Hash)
127
+ {}.tap do |hash|
128
+ value.each { |k, v| hash[k] = _to_hash(v) }
129
+ end
130
+ elsif value.respond_to? :to_hash
131
+ value.to_hash
132
+ else
133
+ value
134
+ end
135
+ end
136
+
137
+
138
+
139
+ # Attribute mapping from ruby-style variable name to JSON key.
140
+ def self.attribute_map
141
+ {
142
+ :'match_type' => :'matchType'
143
+ }
144
+ end
145
+
146
+ # Attribute type mapping.
147
+ def self.swagger_types
148
+ {
149
+ :'match_type' => :'String'
150
+ }
151
+ end
152
+ end
153
+ end