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
@@ -9,17 +9,16 @@ require 'uri'
9
9
  require 'cgi'
10
10
 
11
11
  module OCI
12
-
13
12
  # The base class for other classes which are meant to generate a signature
14
13
  class BaseSigner
15
14
  # enum to define the signing strategy
16
- SIGNING_STRATEGY_ENUM = [STANDARD = 'standard', OBJECT_STORAGE = 'object_storage']
15
+ SIGNING_STRATEGY_ENUM = [STANDARD = 'standard'.freeze, OBJECT_STORAGE = 'object_storage'.freeze].freeze
17
16
 
18
17
  # The Oracle Cloud Infrastructure API signature version
19
- SIGNATURE_VERSION = "1"
18
+ SIGNATURE_VERSION = '1'.freeze
20
19
 
21
- GENERIC_HEADERS = [:"date", :"(request-target)", :"host"]
22
- BODY_HEADERS = [:"content-length", :"content-type", :"x-content-sha256"]
20
+ GENERIC_HEADERS = %i[date (request-target) host].freeze
21
+ BODY_HEADERS = %i[content-length content-type x-content-sha256].freeze
23
22
 
24
23
  # Creates a BaseSigner
25
24
  #
@@ -27,11 +26,18 @@ module OCI
27
26
  # @param [String] private_key_content The private key as a PEM-formatted string
28
27
  # @param [String] pass_phrase Optional the pass phrase for the private key (if any)
29
28
  # @param [SIGNING_STRATEGY_ENUM] signing_strategy Optional signing for standard service or object storage service
30
- # @param [Array<String>] headers_to_sign_in_all_requests Optional headers which should be signed on each request
29
+ # @param [Array<String>] headers_to_sign_in_all_requests Optional headers which should be signed on each request
31
30
  # @param [Array<String>] body_headers_to_sign Optional headers which should be signed on requests with bodies
32
- def initialize(api_key, private_key_content, pass_phrase:nil, signing_strategy:STANDARD, headers_to_sign_in_all_requests:GENERIC_HEADERS, body_headers_to_sign:BODY_HEADERS)
33
- fail 'Missing required parameter api_key.' unless api_key
34
- fail 'Missing required parameter private_key_content.' unless private_key_content
31
+ def initialize(
32
+ api_key,
33
+ private_key_content,
34
+ pass_phrase: nil,
35
+ signing_strategy: STANDARD,
36
+ headers_to_sign_in_all_requests: GENERIC_HEADERS,
37
+ body_headers_to_sign: BODY_HEADERS
38
+ )
39
+ raise 'Missing required parameter api_key.' unless api_key
40
+ raise 'Missing required parameter private_key_content.' unless private_key_content
35
41
 
36
42
  @key_id = api_key
37
43
  @private_key_content = private_key_content
@@ -39,7 +45,7 @@ module OCI
39
45
  @signing_strategy = signing_strategy
40
46
 
41
47
  @headers_to_sign_all_requests = headers_to_sign_in_all_requests
42
- @body_headers_to_sign = body_headers_to_sign
48
+ @body_headers_to_sign = body_headers_to_sign
43
49
  @operation_header_mapping = {
44
50
  options: [],
45
51
  get: headers_to_sign_in_all_requests,
@@ -65,65 +71,63 @@ module OCI
65
71
  path = uri.query.nil? ? uri.path : "#{uri.path}?#{uri.query}"
66
72
  inject_missing_headers(method, headers, body, uri)
67
73
  signature = compute_signature(headers, method, path)
68
- unless signature.nil?
69
- inject_authorization_header(headers, method, signature)
70
- end
74
+ inject_authorization_header(headers, method, signature) unless signature.nil?
71
75
  end
72
76
 
73
77
  private
74
78
 
75
79
  def inject_missing_headers(method, headers, body, uri)
76
- headers["date"] ||= Time.now.utc.httpdate
77
- headers["accept"] ||= "*/*"
78
- headers["host"] ||= uri.host if @headers_to_sign_all_requests.include?(:"host")
80
+ headers['date'] ||= Time.now.utc.httpdate
81
+ headers['accept'] ||= '*/*'
82
+ headers['host'] ||= uri.host if @headers_to_sign_all_requests.include?(:host)
79
83
 
80
84
  # For object storage service's put method, we don't need to set content type
81
85
  if method != :put || @signing_strategy != OBJECT_STORAGE
82
- headers["content-type"] ||= "application/json"
86
+ headers['content-type'] ||= 'application/json'
83
87
  else
84
88
  headers[:'Content-Type'] ||= 'application/octet-stream'
85
89
  end
86
90
 
87
- if method == :put || method == :post
88
- body ||= ''
91
+ return unless %i[put post patch].include?(method)
89
92
 
90
- # For object storage service's put method, we don't need to set content length and x-content sha256
91
- if method != :put || @signing_strategy != OBJECT_STORAGE
92
- headers["content-length"] ||= body.length.to_s
93
- headers["x-content-sha256"] ||= Digest::SHA256.base64digest(body)
94
- else
95
- if body.respond_to?(:read) && body.respond_to?(:write)
96
- headers['Content-Length'] ||= body.respond_to?('size') ? body.size : body.stat.size
97
- else
98
- headers['Content-Length'] ||= body.length.to_s
99
- end
100
- end
101
- end
102
- end
93
+ body ||= ''
103
94
 
104
- def inject_authorization_header(headers, method, signature)
105
- if method == :put && @signing_strategy == OBJECT_STORAGE
106
- header_mapping = @headers_to_sign_all_requests
95
+ # For object storage service's put method, we don't need to set content length and x-content sha256
96
+ if method != :put || @signing_strategy != OBJECT_STORAGE
97
+ headers['content-length'] ||= body.length.to_s
98
+ headers['x-content-sha256'] ||= Digest::SHA256.base64digest(body)
107
99
  else
108
- header_mapping = @operation_header_mapping[method]
100
+ headers['Content-Length'] ||= if body.respond_to?(:read) && body.respond_to?(:write)
101
+ body.respond_to?('size') ? body.size : body.stat.size
102
+ else
103
+ body.length.to_s
104
+ end
109
105
  end
106
+ end
110
107
 
111
- signed_headers = header_mapping.map(&:to_s).join(" ")
112
- headers["authorization"] = [
113
- %(Signature headers="#{signed_headers}"),
114
- %(keyId="#{@key_id}"),
115
- %(algorithm="rsa-sha256"),
116
- %(signature="#{signature}"),
117
- %(version="#{SIGNATURE_VERSION}")
118
- ].join(",")
108
+ def inject_authorization_header(headers, method, signature)
109
+ header_mapping = if method == :put && @signing_strategy == OBJECT_STORAGE
110
+ @headers_to_sign_all_requests
111
+ else
112
+ @operation_header_mapping[method]
113
+ end
114
+
115
+ signed_headers = header_mapping.map(&:to_s).join(' ')
116
+ headers['authorization'] = [
117
+ %(Signature headers="#{signed_headers}"),
118
+ %(keyId="#{@key_id}"),
119
+ %(algorithm="rsa-sha256"),
120
+ %(signature="#{signature}"),
121
+ %(version="#{SIGNATURE_VERSION}")
122
+ ].join(',')
119
123
  end
120
124
 
121
125
  def compute_signature(headers, method, path)
122
- if method == :put && @signing_strategy == OBJECT_STORAGE
123
- header_mapping = @headers_to_sign_all_requests
124
- else
125
- header_mapping = @operation_header_mapping[method]
126
- end
126
+ header_mapping = if method == :put && @signing_strategy == OBJECT_STORAGE
127
+ @headers_to_sign_all_requests
128
+ else
129
+ @operation_header_mapping[method]
130
+ end
127
131
 
128
132
  return if header_mapping.empty?
129
133
  signing_string = header_mapping.map do |header|
@@ -134,7 +138,7 @@ module OCI
134
138
  end
135
139
  end.join("\n")
136
140
 
137
- signature = private_key.sign(OpenSSL::Digest::SHA256.new, signing_string.encode("ascii"))
141
+ signature = private_key.sign(OpenSSL::Digest::SHA256.new, signing_string.encode('ascii'))
138
142
  Base64.strict_encode64(signature)
139
143
  end
140
144
 
@@ -50,10 +50,7 @@ module OCI
50
50
  # @return [Array<Config>] An array containing all the configs found in the given file.
51
51
  def self.load_configs(config_file_location)
52
52
  config_file_location = File.expand_path(config_file_location)
53
-
54
- unless File.file?(config_file_location)
55
- raise Errors::ConfigFileNotFoundError, 'Config file does not exist.'
56
- end
53
+ raise Errors::ConfigFileNotFoundError, 'Config file does not exist.' unless File.file?(config_file_location)
57
54
 
58
55
  config_file = IniFile.load(config_file_location)
59
56
  configs = {}
@@ -65,9 +62,7 @@ module OCI
65
62
  config_file.each_section do |section|
66
63
  config = Config.new
67
64
 
68
- unless section.equal? DEFAULT_PROFILE
69
- load_section(config_file[DEFAULT_PROFILE], config)
70
- end
65
+ load_section(config_file[DEFAULT_PROFILE], config) unless section.equal? DEFAULT_PROFILE
71
66
  load_section(config_file[section], config)
72
67
 
73
68
  configs[section] = config
@@ -83,10 +78,7 @@ module OCI
83
78
 
84
79
  # key_content is not allowed in configuration file
85
80
  next if key == 'key_content'
86
-
87
- if config.respond_to?("#{key}=") && config.respond_to?(key)
88
- config.instance_variable_set('@' + key, value)
89
- end
81
+ config.instance_variable_set('@' + key, value) if config.respond_to?("#{key}=") && config.respond_to?(key)
90
82
  # TODO: log the key been ignored by Ruby SDK
91
83
  end
92
84
  end
@@ -168,6 +168,40 @@ module OCI
168
168
  :return_type => 'OCI::Core::Models::VolumeBackup')
169
169
  end
170
170
 
171
+ # Assigns a policy to the specified asset, such as a volume. Note that a given asset can
172
+ # only have one policy assigned to it; if this method is called for an asset that previously
173
+ # has a different policy assigned, the prior assignment will be silently deleted.
174
+ #
175
+ # @param [CreateVolumeBackupPolicyAssignmentDetails] create_volume_backup_policy_assignment_details Request to assign a specified policy to a particular asset.
176
+ # @param [Hash] opts the optional parameters
177
+ # @return [Response] A Response object with data of type OCI::Core::Models::VolumeBackupPolicyAssignment
178
+ def create_volume_backup_policy_assignment(create_volume_backup_policy_assignment_details, opts = {})
179
+ logger.debug "Calling operation BlockstorageClient#create_volume_backup_policy_assignment." if logger
180
+
181
+ fail "Missing the required parameter 'create_volume_backup_policy_assignment_details' when calling create_volume_backup_policy_assignment." if create_volume_backup_policy_assignment_details.nil?
182
+
183
+ path = "/volumeBackupPolicyAssignments"
184
+
185
+ # Query Params
186
+ query_params = {}
187
+
188
+ # Header Params
189
+ header_params = {}
190
+ header_params['accept'] = 'application/json'
191
+ header_params['content-type'] = 'application/json'
192
+
193
+ post_body = @api_client.object_to_http_body(create_volume_backup_policy_assignment_details)
194
+
195
+ return @api_client.call_api(
196
+ :POST,
197
+ path,
198
+ endpoint,
199
+ :header_params => header_params,
200
+ :query_params => query_params,
201
+ :body => post_body,
202
+ :return_type => 'OCI::Core::Models::VolumeBackupPolicyAssignment')
203
+ end
204
+
171
205
  # Deletes the specified boot volume. The volume cannot have an active connection to an instance.
172
206
  # To disconnect the boot volume from a connected instance, see
173
207
  # [Disconnecting From a Boot Volume](https://docs.us-phoenix-1.oraclecloud.com/Content/Block/Tasks/deletingbootvolume.htm).
@@ -281,6 +315,41 @@ module OCI
281
315
  :body => post_body)
282
316
  end
283
317
 
318
+ # Deletes a volume backup policy assignment (i.e. unassigns the policy from an asset).
319
+ # @param [String] policy_assignment_id The OCID of the volume backup policy assignment.
320
+ # @param [Hash] opts the optional parameters
321
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
322
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
323
+ # will be updated or deleted only if the etag you provide matches the resource's current etag value.
324
+ #
325
+ # @return [Response] A Response object with data of type nil
326
+ def delete_volume_backup_policy_assignment(policy_assignment_id, opts = {})
327
+ logger.debug "Calling operation BlockstorageClient#delete_volume_backup_policy_assignment." if logger
328
+
329
+ fail "Missing the required parameter 'policy_assignment_id' when calling delete_volume_backup_policy_assignment." if policy_assignment_id.nil?
330
+
331
+ path = "/volumeBackupPolicyAssignments/{policyAssignmentId}".sub('{policyAssignmentId}', policy_assignment_id.to_s)
332
+
333
+ # Query Params
334
+ query_params = {}
335
+
336
+ # Header Params
337
+ header_params = {}
338
+ header_params['accept'] = 'application/json'
339
+ header_params['content-type'] = 'application/json'
340
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
341
+
342
+ post_body = nil
343
+
344
+ return @api_client.call_api(
345
+ :DELETE,
346
+ path,
347
+ endpoint,
348
+ :header_params => header_params,
349
+ :query_params => query_params,
350
+ :body => post_body)
351
+ end
352
+
284
353
  # Gets information for the specified boot volume.
285
354
  # @param [String] boot_volume_id The OCID of the boot volume.
286
355
  # @param [Hash] opts the optional parameters
@@ -374,6 +443,111 @@ module OCI
374
443
  :return_type => 'OCI::Core::Models::VolumeBackup')
375
444
  end
376
445
 
446
+ # Gets information for the specified volume backup policy.
447
+ # @param [String] policy_id The OCID of the volume backup policy.
448
+ # @param [Hash] opts the optional parameters
449
+ # @return [Response] A Response object with data of type OCI::Core::Models::VolumeBackupPolicy
450
+ def get_volume_backup_policy(policy_id, opts = {})
451
+ logger.debug "Calling operation BlockstorageClient#get_volume_backup_policy." if logger
452
+
453
+ fail "Missing the required parameter 'policy_id' when calling get_volume_backup_policy." if policy_id.nil?
454
+
455
+ path = "/volumeBackupPolicies/{policyId}".sub('{policyId}', policy_id.to_s)
456
+
457
+ # Query Params
458
+ query_params = {}
459
+
460
+ # Header Params
461
+ header_params = {}
462
+ header_params['accept'] = 'application/json'
463
+ header_params['content-type'] = 'application/json'
464
+
465
+ post_body = nil
466
+
467
+ return @api_client.call_api(
468
+ :GET,
469
+ path,
470
+ endpoint,
471
+ :header_params => header_params,
472
+ :query_params => query_params,
473
+ :body => post_body,
474
+ :return_type => 'OCI::Core::Models::VolumeBackupPolicy')
475
+ end
476
+
477
+ # Gets the volume backup policy assignment for the specified asset. Note that the
478
+ # assetId query parameter is required, and that the returned list will contain at most
479
+ # one item (since any given asset can only have one policy assigned to it).
480
+ #
481
+ # @param [String] asset_id The OCID of an asset (e.g. a volume).
482
+ # @param [Hash] opts the optional parameters
483
+ # @option opts [Integer] :limit The maximum number of items to return in a paginated \"List\" call.
484
+ #
485
+ # Example: `500`
486
+ #
487
+ # @option opts [String] :page The value of the `opc-next-page` response header from the previous \"List\" call.
488
+ #
489
+ # @return [Response] A Response object with data of type Array<OCI::Core::Models::VolumeBackupPolicyAssignment>
490
+ def get_volume_backup_policy_asset_assignment(asset_id, opts = {})
491
+ logger.debug "Calling operation BlockstorageClient#get_volume_backup_policy_asset_assignment." if logger
492
+
493
+ fail "Missing the required parameter 'asset_id' when calling get_volume_backup_policy_asset_assignment." if asset_id.nil?
494
+
495
+ path = "/volumeBackupPolicyAssignments"
496
+
497
+ # Query Params
498
+ query_params = {}
499
+ query_params[:'assetId'] = asset_id
500
+ query_params[:'limit'] = opts[:'limit'] if opts[:'limit']
501
+ query_params[:'page'] = opts[:'page'] if opts[:'page']
502
+
503
+ # Header Params
504
+ header_params = {}
505
+ header_params['accept'] = 'application/json'
506
+ header_params['content-type'] = 'application/json'
507
+
508
+ post_body = nil
509
+
510
+ return @api_client.call_api(
511
+ :GET,
512
+ path,
513
+ endpoint,
514
+ :header_params => header_params,
515
+ :query_params => query_params,
516
+ :body => post_body,
517
+ :return_type => 'Array<OCI::Core::Models::VolumeBackupPolicyAssignment>')
518
+ end
519
+
520
+ # Gets information for the specified volume backup policy assignment.
521
+ # @param [String] policy_assignment_id The OCID of the volume backup policy assignment.
522
+ # @param [Hash] opts the optional parameters
523
+ # @return [Response] A Response object with data of type OCI::Core::Models::VolumeBackupPolicyAssignment
524
+ def get_volume_backup_policy_assignment(policy_assignment_id, opts = {})
525
+ logger.debug "Calling operation BlockstorageClient#get_volume_backup_policy_assignment." if logger
526
+
527
+ fail "Missing the required parameter 'policy_assignment_id' when calling get_volume_backup_policy_assignment." if policy_assignment_id.nil?
528
+
529
+ path = "/volumeBackupPolicyAssignments/{policyAssignmentId}".sub('{policyAssignmentId}', policy_assignment_id.to_s)
530
+
531
+ # Query Params
532
+ query_params = {}
533
+
534
+ # Header Params
535
+ header_params = {}
536
+ header_params['accept'] = 'application/json'
537
+ header_params['content-type'] = 'application/json'
538
+
539
+ post_body = nil
540
+
541
+ return @api_client.call_api(
542
+ :GET,
543
+ path,
544
+ endpoint,
545
+ :header_params => header_params,
546
+ :query_params => query_params,
547
+ :body => post_body,
548
+ :return_type => 'OCI::Core::Models::VolumeBackupPolicyAssignment')
549
+ end
550
+
377
551
  # Lists the boot volumes in the specified compartment and Availability Domain.
378
552
  #
379
553
  # @param [String] availability_domain The name of the Availability Domain.
@@ -421,6 +595,43 @@ module OCI
421
595
  :return_type => 'Array<OCI::Core::Models::BootVolume>')
422
596
  end
423
597
 
598
+ # Lists all volume backup policies available to the caller.
599
+ # @param [Hash] opts the optional parameters
600
+ # @option opts [Integer] :limit The maximum number of items to return in a paginated \"List\" call.
601
+ #
602
+ # Example: `500`
603
+ #
604
+ # @option opts [String] :page The value of the `opc-next-page` response header from the previous \"List\" call.
605
+ #
606
+ # @return [Response] A Response object with data of type Array<OCI::Core::Models::VolumeBackupPolicy>
607
+ def list_volume_backup_policies(opts = {})
608
+ logger.debug "Calling operation BlockstorageClient#list_volume_backup_policies." if logger
609
+
610
+
611
+ path = "/volumeBackupPolicies"
612
+
613
+ # Query Params
614
+ query_params = {}
615
+ query_params[:'limit'] = opts[:'limit'] if opts[:'limit']
616
+ query_params[:'page'] = opts[:'page'] if opts[:'page']
617
+
618
+ # Header Params
619
+ header_params = {}
620
+ header_params['accept'] = 'application/json'
621
+ header_params['content-type'] = 'application/json'
622
+
623
+ post_body = nil
624
+
625
+ return @api_client.call_api(
626
+ :GET,
627
+ path,
628
+ endpoint,
629
+ :header_params => header_params,
630
+ :query_params => query_params,
631
+ :body => post_body,
632
+ :return_type => 'Array<OCI::Core::Models::VolumeBackupPolicy>')
633
+ end
634
+
424
635
  # Lists the volume backups in the specified compartment. You can filter the results by volume.
425
636
  #
426
637
  # @param [String] compartment_id The OCID of the compartment.
@@ -284,7 +284,7 @@ module OCI
284
284
 
285
285
  fail "Missing the required parameter 'create_image_details' when calling create_image." if create_image_details.nil?
286
286
 
287
- path = "/images/"
287
+ path = "/images"
288
288
 
289
289
  # Query Params
290
290
  query_params = {}
@@ -1209,6 +1209,7 @@ module OCI
1209
1209
  #
1210
1210
  # Example: `7.2`
1211
1211
  #
1212
+ # @option opts [String] :shape Shape name.
1212
1213
  # @option opts [Integer] :limit The maximum number of items to return in a paginated \"List\" call.
1213
1214
  #
1214
1215
  # Example: `500`
@@ -1249,7 +1250,7 @@ module OCI
1249
1250
  fail 'Invalid value for "lifecycle_state", must be one of the values in OCI::Core::Models::Image::LIFECYCLE_STATE_ENUM.'
1250
1251
  end
1251
1252
 
1252
- path = "/images/"
1253
+ path = "/images"
1253
1254
 
1254
1255
  # Query Params
1255
1256
  query_params = {}
@@ -1257,6 +1258,7 @@ module OCI
1257
1258
  query_params[:'displayName'] = opts[:'display_name'] if opts[:'display_name']
1258
1259
  query_params[:'operatingSystem'] = opts[:'operating_system'] if opts[:'operating_system']
1259
1260
  query_params[:'operatingSystemVersion'] = opts[:'operating_system_version'] if opts[:'operating_system_version']
1261
+ query_params[:'shape'] = opts[:'shape'] if opts[:'shape']
1260
1262
  query_params[:'limit'] = opts[:'limit'] if opts[:'limit']
1261
1263
  query_params[:'page'] = opts[:'page'] if opts[:'page']
1262
1264
  query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']