oci 2.3.6 → 2.3.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -10
  3. data/lib/oci.rb +1 -0
  4. data/lib/oci/api_client.rb +2 -2
  5. data/lib/oci/audit/audit_client.rb +11 -9
  6. data/lib/oci/base_signer.rb +13 -13
  7. data/lib/oci/container_engine/container_engine_client.rb +43 -39
  8. data/lib/oci/container_engine/models/node_error.rb +1 -1
  9. data/lib/oci/container_engine/models/work_request_error.rb +1 -1
  10. data/lib/oci/core/blockstorage_client.rb +421 -75
  11. data/lib/oci/core/compute_client.rb +77 -75
  12. data/lib/oci/core/compute_client_composite_operations.rb +40 -0
  13. data/lib/oci/core/core.rb +4 -0
  14. data/lib/oci/core/models/boot_volume.rb +18 -4
  15. data/lib/oci/core/models/boot_volume_kms_key.rb +152 -0
  16. data/lib/oci/core/models/create_boot_volume_details.rb +15 -1
  17. data/lib/oci/core/models/create_image_details.rb +2 -0
  18. data/lib/oci/core/models/create_volume_details.rb +15 -1
  19. data/lib/oci/core/models/fast_connect_provider_service.rb +1 -1
  20. data/lib/oci/core/models/image.rb +2 -0
  21. data/lib/oci/core/models/instance.rb +2 -0
  22. data/lib/oci/core/models/instance_source_via_image_details.rb +18 -4
  23. data/lib/oci/core/models/launch_options.rb +2 -0
  24. data/lib/oci/core/models/update_boot_volume_kms_key_details.rb +154 -0
  25. data/lib/oci/core/models/update_volume_kms_key_details.rb +154 -0
  26. data/lib/oci/core/models/volume.rb +15 -1
  27. data/lib/oci/core/models/volume_kms_key.rb +152 -0
  28. data/lib/oci/core/virtual_network_client.rb +233 -231
  29. data/lib/oci/core/virtual_network_client_composite_operations.rb +80 -0
  30. data/lib/oci/database/database_client.rb +123 -121
  31. data/lib/oci/database/database_client_composite_operations.rb +399 -0
  32. data/lib/oci/database/models/patch.rb +1 -1
  33. data/lib/oci/database/models/patch_summary.rb +1 -1
  34. data/lib/oci/dns/dns_client.rb +38 -36
  35. data/lib/oci/email/email_client.rb +21 -19
  36. data/lib/oci/email/models/sender.rb +1 -1
  37. data/lib/oci/email/models/suppression.rb +1 -1
  38. data/lib/oci/file_storage/file_storage_client.rb +49 -47
  39. data/lib/oci/identity/identity_client.rb +151 -149
  40. data/lib/oci/identity/identity_client_composite_operations.rb +40 -0
  41. data/lib/oci/key_management/key_management.rb +40 -0
  42. data/lib/oci/key_management/kms_crypto_client.rb +258 -0
  43. data/lib/oci/key_management/kms_crypto_client_composite_operations.rb +24 -0
  44. data/lib/oci/key_management/kms_management_client.rb +716 -0
  45. data/lib/oci/key_management/kms_management_client_composite_operations.rb +181 -0
  46. data/lib/oci/key_management/kms_vault_client.rb +533 -0
  47. data/lib/oci/key_management/kms_vault_client_composite_operations.rb +182 -0
  48. data/lib/oci/key_management/models/create_key_details.rb +180 -0
  49. data/lib/oci/key_management/models/create_vault_details.rb +194 -0
  50. data/lib/oci/key_management/models/decrypt_data_details.rb +177 -0
  51. data/lib/oci/key_management/models/decrypted_data.rb +160 -0
  52. data/lib/oci/key_management/models/encrypt_data_details.rb +177 -0
  53. data/lib/oci/key_management/models/encrypted_data.rb +146 -0
  54. data/lib/oci/key_management/models/generate_key_details.rb +195 -0
  55. data/lib/oci/key_management/models/generated_key.rb +177 -0
  56. data/lib/oci/key_management/models/key.rb +318 -0
  57. data/lib/oci/key_management/models/key_shape.rb +178 -0
  58. data/lib/oci/key_management/models/key_summary.rb +287 -0
  59. data/lib/oci/key_management/models/key_version.rb +205 -0
  60. data/lib/oci/key_management/models/key_version_summary.rb +205 -0
  61. data/lib/oci/key_management/models/schedule_vault_deletion_details.rb +153 -0
  62. data/lib/oci/key_management/models/update_key_details.rb +152 -0
  63. data/lib/oci/key_management/models/update_vault_details.rb +152 -0
  64. data/lib/oci/key_management/models/vault.rb +350 -0
  65. data/lib/oci/key_management/models/vault_summary.rb +334 -0
  66. data/lib/oci/key_management/util.rb +2 -0
  67. data/lib/oci/load_balancer/load_balancer_client.rb +89 -87
  68. data/lib/oci/object_storage/models/bucket.rb +18 -4
  69. data/lib/oci/object_storage/models/create_bucket_details.rb +18 -4
  70. data/lib/oci/object_storage/models/multipart_upload.rb +1 -1
  71. data/lib/oci/object_storage/models/preauthenticated_request.rb +1 -1
  72. data/lib/oci/object_storage/models/update_bucket_details.rb +22 -4
  73. data/lib/oci/object_storage/object_storage_client.rb +63 -58
  74. data/lib/oci/resource_search/resource_search_client.rb +11 -9
  75. data/lib/oci/version.rb +1 -1
  76. metadata +32 -2
@@ -100,6 +100,10 @@ module OCI
100
100
  # @return [String]
101
101
  attr_accessor :volume_group_id
102
102
 
103
+ # The OCID of the KMS key which is the master encryption key for the boot volume.
104
+ # @return [String]
105
+ attr_accessor :kms_key_id
106
+
103
107
  # Attribute mapping from ruby-style variable name to JSON key.
104
108
  def self.attribute_map
105
109
  {
@@ -117,7 +121,8 @@ module OCI
117
121
  'size_in_mbs': :'sizeInMBs',
118
122
  'source_details': :'sourceDetails',
119
123
  'time_created': :'timeCreated',
120
- 'volume_group_id': :'volumeGroupId'
124
+ 'volume_group_id': :'volumeGroupId',
125
+ 'kms_key_id': :'kmsKeyId'
121
126
  # rubocop:enable Style/SymbolLiteral
122
127
  }
123
128
  end
@@ -139,7 +144,8 @@ module OCI
139
144
  'size_in_mbs': :'Integer',
140
145
  'source_details': :'OCI::Core::Models::BootVolumeSourceDetails',
141
146
  'time_created': :'DateTime',
142
- 'volume_group_id': :'String'
147
+ 'volume_group_id': :'String',
148
+ 'kms_key_id': :'String'
143
149
  # rubocop:enable Style/SymbolLiteral
144
150
  }
145
151
  end
@@ -164,6 +170,7 @@ module OCI
164
170
  # @option attributes [OCI::Core::Models::BootVolumeSourceDetails] :source_details The value to assign to the {#source_details} property
165
171
  # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
166
172
  # @option attributes [String] :volume_group_id The value to assign to the {#volume_group_id} property
173
+ # @option attributes [String] :kms_key_id The value to assign to the {#kms_key_id} property
167
174
  def initialize(attributes = {})
168
175
  return unless attributes.is_a?(Hash)
169
176
 
@@ -249,6 +256,12 @@ module OCI
249
256
  raise 'You cannot provide both :volumeGroupId and :volume_group_id' if attributes.key?(:'volumeGroupId') && attributes.key?(:'volume_group_id')
250
257
 
251
258
  self.volume_group_id = attributes[:'volume_group_id'] if attributes[:'volume_group_id']
259
+
260
+ self.kms_key_id = attributes[:'kmsKeyId'] if attributes[:'kmsKeyId']
261
+
262
+ raise 'You cannot provide both :kmsKeyId and :kms_key_id' if attributes.key?(:'kmsKeyId') && attributes.key?(:'kms_key_id')
263
+
264
+ self.kms_key_id = attributes[:'kms_key_id'] if attributes[:'kms_key_id']
252
265
  end
253
266
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
254
267
  # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -289,7 +302,8 @@ module OCI
289
302
  size_in_mbs == other.size_in_mbs &&
290
303
  source_details == other.source_details &&
291
304
  time_created == other.time_created &&
292
- volume_group_id == other.volume_group_id
305
+ volume_group_id == other.volume_group_id &&
306
+ kms_key_id == other.kms_key_id
293
307
  end
294
308
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
295
309
 
@@ -305,7 +319,7 @@ module OCI
305
319
  # Calculates hash code according to all attributes.
306
320
  # @return [Fixnum] Hash code
307
321
  def hash
308
- [availability_domain, compartment_id, defined_tags, display_name, freeform_tags, id, image_id, is_hydrated, lifecycle_state, size_in_gbs, size_in_mbs, source_details, time_created, volume_group_id].hash
322
+ [availability_domain, compartment_id, defined_tags, display_name, freeform_tags, id, image_id, is_hydrated, lifecycle_state, size_in_gbs, size_in_mbs, source_details, time_created, volume_group_id, kms_key_id].hash
309
323
  end
310
324
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
311
325
 
@@ -0,0 +1,152 @@
1
+ # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ # rubocop:disable Lint/UnneededCopDisableDirective
6
+ module OCI
7
+ # Kms key id associated with this volume.
8
+ #
9
+ class Core::Models::BootVolumeKmsKey # rubocop:disable Metrics/LineLength
10
+ # Kms key id associated with this volume. If volume is not using KMS, then kmsKeyId will be null string.
11
+ #
12
+ # @return [String]
13
+ attr_accessor :kms_key_id
14
+
15
+ # Attribute mapping from ruby-style variable name to JSON key.
16
+ def self.attribute_map
17
+ {
18
+ # rubocop:disable Style/SymbolLiteral
19
+ 'kms_key_id': :'kmsKeyId'
20
+ # rubocop:enable Style/SymbolLiteral
21
+ }
22
+ end
23
+
24
+ # Attribute type mapping.
25
+ def self.swagger_types
26
+ {
27
+ # rubocop:disable Style/SymbolLiteral
28
+ 'kms_key_id': :'String'
29
+ # rubocop:enable Style/SymbolLiteral
30
+ }
31
+ end
32
+
33
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
34
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
35
+
36
+
37
+ # Initializes the object
38
+ # @param [Hash] attributes Model attributes in the form of hash
39
+ # @option attributes [String] :kms_key_id The value to assign to the {#kms_key_id} property
40
+ def initialize(attributes = {})
41
+ return unless attributes.is_a?(Hash)
42
+
43
+ # convert string to symbol for hash key
44
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
45
+
46
+ self.kms_key_id = attributes[:'kmsKeyId'] if attributes[:'kmsKeyId']
47
+
48
+ raise 'You cannot provide both :kmsKeyId and :kms_key_id' if attributes.key?(:'kmsKeyId') && attributes.key?(:'kms_key_id')
49
+
50
+ self.kms_key_id = attributes[:'kms_key_id'] if attributes[:'kms_key_id']
51
+ end
52
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
53
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
54
+
55
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
56
+
57
+
58
+ # Checks equality by comparing each attribute.
59
+ # @param [Object] other the other object to be compared
60
+ def ==(other)
61
+ return true if equal?(other)
62
+ self.class == other.class &&
63
+ kms_key_id == other.kms_key_id
64
+ end
65
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
66
+
67
+ # @see the `==` method
68
+ # @param [Object] other the other object to be compared
69
+ def eql?(other)
70
+ self == other
71
+ end
72
+
73
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
74
+
75
+
76
+ # Calculates hash code according to all attributes.
77
+ # @return [Fixnum] Hash code
78
+ def hash
79
+ [kms_key_id].hash
80
+ end
81
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
82
+
83
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
84
+
85
+
86
+ # Builds the object from hash
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ # @return [Object] Returns the model itself
89
+ def build_from_hash(attributes)
90
+ return nil unless attributes.is_a?(Hash)
91
+ self.class.swagger_types.each_pair do |key, type|
92
+ if type =~ /^Array<(.*)>/i
93
+ # check to ensure the input is an array given that the the attribute
94
+ # is documented as an array but the input is not
95
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
96
+ public_method("#{key}=").call(
97
+ attributes[self.class.attribute_map[key]]
98
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
99
+ )
100
+ end
101
+ elsif !attributes[self.class.attribute_map[key]].nil?
102
+ public_method("#{key}=").call(
103
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
104
+ )
105
+ end
106
+ # or else data not found in attributes(hash), not an issue as the data can be optional
107
+ end
108
+
109
+ self
110
+ end
111
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
112
+
113
+ # Returns the string representation of the object
114
+ # @return [String] String presentation of the object
115
+ def to_s
116
+ to_hash.to_s
117
+ end
118
+
119
+ # Returns the object in the form of hash
120
+ # @return [Hash] Returns the object in the form of hash
121
+ def to_hash
122
+ hash = {}
123
+ self.class.attribute_map.each_pair do |attr, param|
124
+ value = public_method(attr).call
125
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
126
+ hash[param] = _to_hash(value)
127
+ end
128
+ hash
129
+ end
130
+
131
+ private
132
+
133
+ # Outputs non-array value in the form of hash
134
+ # For object, use to_hash. Otherwise, just return the value
135
+ # @param [Object] value Any valid value
136
+ # @return [Hash] Returns the value in the form of hash
137
+ def _to_hash(value)
138
+ if value.is_a?(Array)
139
+ value.compact.map { |v| _to_hash(v) }
140
+ elsif value.is_a?(Hash)
141
+ {}.tap do |hash|
142
+ value.each { |k, v| hash[k] = _to_hash(v) }
143
+ end
144
+ elsif value.respond_to? :to_hash
145
+ value.to_hash
146
+ else
147
+ value
148
+ end
149
+ end
150
+ end
151
+ end
152
+ # rubocop:enable Lint/UnneededCopDisableDirective
@@ -46,6 +46,10 @@ module OCI
46
46
  # @return [Hash<String, String>]
47
47
  attr_accessor :freeform_tags
48
48
 
49
+ # The OCID of the KMS key to be used as the master encryption key for the boot volume.
50
+ # @return [String]
51
+ attr_accessor :kms_key_id
52
+
49
53
  # The size of the volume in GBs.
50
54
  # @return [Integer]
51
55
  attr_accessor :size_in_gbs
@@ -66,6 +70,7 @@ module OCI
66
70
  'defined_tags': :'definedTags',
67
71
  'display_name': :'displayName',
68
72
  'freeform_tags': :'freeformTags',
73
+ 'kms_key_id': :'kmsKeyId',
69
74
  'size_in_gbs': :'sizeInGBs',
70
75
  'source_details': :'sourceDetails'
71
76
  # rubocop:enable Style/SymbolLiteral
@@ -82,6 +87,7 @@ module OCI
82
87
  'defined_tags': :'Hash<String, Hash<String, Object>>',
83
88
  'display_name': :'String',
84
89
  'freeform_tags': :'Hash<String, String>',
90
+ 'kms_key_id': :'String',
85
91
  'size_in_gbs': :'Integer',
86
92
  'source_details': :'OCI::Core::Models::BootVolumeSourceDetails'
87
93
  # rubocop:enable Style/SymbolLiteral
@@ -100,6 +106,7 @@ module OCI
100
106
  # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
101
107
  # @option attributes [String] :display_name The value to assign to the {#display_name} property
102
108
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
109
+ # @option attributes [String] :kms_key_id The value to assign to the {#kms_key_id} property
103
110
  # @option attributes [Integer] :size_in_gbs The value to assign to the {#size_in_gbs} property
104
111
  # @option attributes [OCI::Core::Models::BootVolumeSourceDetails] :source_details The value to assign to the {#source_details} property
105
112
  def initialize(attributes = {})
@@ -144,6 +151,12 @@ module OCI
144
151
 
145
152
  self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
146
153
 
154
+ self.kms_key_id = attributes[:'kmsKeyId'] if attributes[:'kmsKeyId']
155
+
156
+ raise 'You cannot provide both :kmsKeyId and :kms_key_id' if attributes.key?(:'kmsKeyId') && attributes.key?(:'kms_key_id')
157
+
158
+ self.kms_key_id = attributes[:'kms_key_id'] if attributes[:'kms_key_id']
159
+
147
160
  self.size_in_gbs = attributes[:'sizeInGBs'] if attributes[:'sizeInGBs']
148
161
 
149
162
  raise 'You cannot provide both :sizeInGBs and :size_in_gbs' if attributes.key?(:'sizeInGBs') && attributes.key?(:'size_in_gbs')
@@ -173,6 +186,7 @@ module OCI
173
186
  defined_tags == other.defined_tags &&
174
187
  display_name == other.display_name &&
175
188
  freeform_tags == other.freeform_tags &&
189
+ kms_key_id == other.kms_key_id &&
176
190
  size_in_gbs == other.size_in_gbs &&
177
191
  source_details == other.source_details
178
192
  end
@@ -190,7 +204,7 @@ module OCI
190
204
  # Calculates hash code according to all attributes.
191
205
  # @return [Fixnum] Hash code
192
206
  def hash
193
- [availability_domain, backup_policy_id, compartment_id, defined_tags, display_name, freeform_tags, size_in_gbs, source_details].hash
207
+ [availability_domain, backup_policy_id, compartment_id, defined_tags, display_name, freeform_tags, kms_key_id, size_in_gbs, source_details].hash
194
208
  end
195
209
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
196
210
 
@@ -9,6 +9,7 @@ module OCI
9
9
  LAUNCH_MODE_ENUM = [
10
10
  LAUNCH_MODE_NATIVE = 'NATIVE'.freeze,
11
11
  LAUNCH_MODE_EMULATED = 'EMULATED'.freeze,
12
+ LAUNCH_MODE_PARAVIRTUALIZED = 'PARAVIRTUALIZED'.freeze,
12
13
  LAUNCH_MODE_CUSTOM = 'CUSTOM'.freeze
13
14
  ].freeze
14
15
 
@@ -54,6 +55,7 @@ module OCI
54
55
  # Specifies the configuration mode for launching virtual machine (VM) instances. The configuration modes are:
55
56
  # * `NATIVE` - VM instances launch with iSCSI boot and VFIO devices. The default value for Oracle-provided images.
56
57
  # * `EMULATED` - VM instances launch with emulated devices, such as the E1000 network driver and emulated SCSI disk controller.
58
+ # * `PARAVIRTUALIZED` - VM instances launch with paravirtualized devices using virtio drivers.
57
59
  # * `CUSTOM` - VM instances launch with custom configuration settings specified in the `LaunchOptions` parameter.
58
60
  #
59
61
  # @return [String]
@@ -46,6 +46,10 @@ module OCI
46
46
  # @return [Hash<String, String>]
47
47
  attr_accessor :freeform_tags
48
48
 
49
+ # The OCID of the KMS key to be used as the master encryption key for the volume.
50
+ # @return [String]
51
+ attr_accessor :kms_key_id
52
+
49
53
  # The size of the volume in GBs.
50
54
  # @return [Integer]
51
55
  attr_accessor :size_in_gbs
@@ -80,6 +84,7 @@ module OCI
80
84
  'defined_tags': :'definedTags',
81
85
  'display_name': :'displayName',
82
86
  'freeform_tags': :'freeformTags',
87
+ 'kms_key_id': :'kmsKeyId',
83
88
  'size_in_gbs': :'sizeInGBs',
84
89
  'size_in_mbs': :'sizeInMBs',
85
90
  'source_details': :'sourceDetails',
@@ -98,6 +103,7 @@ module OCI
98
103
  'defined_tags': :'Hash<String, Hash<String, Object>>',
99
104
  'display_name': :'String',
100
105
  'freeform_tags': :'Hash<String, String>',
106
+ 'kms_key_id': :'String',
101
107
  'size_in_gbs': :'Integer',
102
108
  'size_in_mbs': :'Integer',
103
109
  'source_details': :'OCI::Core::Models::VolumeSourceDetails',
@@ -118,6 +124,7 @@ module OCI
118
124
  # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
119
125
  # @option attributes [String] :display_name The value to assign to the {#display_name} property
120
126
  # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
127
+ # @option attributes [String] :kms_key_id The value to assign to the {#kms_key_id} property
121
128
  # @option attributes [Integer] :size_in_gbs The value to assign to the {#size_in_gbs} property
122
129
  # @option attributes [Integer] :size_in_mbs The value to assign to the {#size_in_mbs} property
123
130
  # @option attributes [OCI::Core::Models::VolumeSourceDetails] :source_details The value to assign to the {#source_details} property
@@ -164,6 +171,12 @@ module OCI
164
171
 
165
172
  self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
166
173
 
174
+ self.kms_key_id = attributes[:'kmsKeyId'] if attributes[:'kmsKeyId']
175
+
176
+ raise 'You cannot provide both :kmsKeyId and :kms_key_id' if attributes.key?(:'kmsKeyId') && attributes.key?(:'kms_key_id')
177
+
178
+ self.kms_key_id = attributes[:'kms_key_id'] if attributes[:'kms_key_id']
179
+
167
180
  self.size_in_gbs = attributes[:'sizeInGBs'] if attributes[:'sizeInGBs']
168
181
 
169
182
  raise 'You cannot provide both :sizeInGBs and :size_in_gbs' if attributes.key?(:'sizeInGBs') && attributes.key?(:'size_in_gbs')
@@ -205,6 +218,7 @@ module OCI
205
218
  defined_tags == other.defined_tags &&
206
219
  display_name == other.display_name &&
207
220
  freeform_tags == other.freeform_tags &&
221
+ kms_key_id == other.kms_key_id &&
208
222
  size_in_gbs == other.size_in_gbs &&
209
223
  size_in_mbs == other.size_in_mbs &&
210
224
  source_details == other.source_details &&
@@ -224,7 +238,7 @@ module OCI
224
238
  # Calculates hash code according to all attributes.
225
239
  # @return [Fixnum] Hash code
226
240
  def hash
227
- [availability_domain, backup_policy_id, compartment_id, defined_tags, display_name, freeform_tags, size_in_gbs, size_in_mbs, source_details, volume_backup_id].hash
241
+ [availability_domain, backup_policy_id, compartment_id, defined_tags, display_name, freeform_tags, kms_key_id, size_in_gbs, size_in_mbs, source_details, volume_backup_id].hash
228
242
  end
229
243
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
230
244
 
@@ -215,7 +215,7 @@ module OCI
215
215
  end
216
216
  end
217
217
  end
218
- # rubocop:disable Style/ConditionalAssignment
218
+ # rubocop:enable Style/ConditionalAssignment
219
219
  end
220
220
 
221
221
  # Custom attribute writer method checking allowed values (enum).
@@ -19,6 +19,7 @@ module OCI
19
19
  LAUNCH_MODE_ENUM = [
20
20
  LAUNCH_MODE_NATIVE = 'NATIVE'.freeze,
21
21
  LAUNCH_MODE_EMULATED = 'EMULATED'.freeze,
22
+ LAUNCH_MODE_PARAVIRTUALIZED = 'PARAVIRTUALIZED'.freeze,
22
23
  LAUNCH_MODE_CUSTOM = 'CUSTOM'.freeze,
23
24
  LAUNCH_MODE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
24
25
  ].freeze
@@ -82,6 +83,7 @@ module OCI
82
83
  # Specifies the configuration mode for launching virtual machine (VM) instances. The configuration modes are:
83
84
  # * `NATIVE` - VM instances launch with iSCSI boot and VFIO devices. The default value for Oracle-provided images.
84
85
  # * `EMULATED` - VM instances launch with emulated devices, such as the E1000 network driver and emulated SCSI disk controller.
86
+ # * `PARAVIRTUALIZED` - VM instances launch with paravirtualized devices using virtio drivers.
85
87
  # * `CUSTOM` - VM instances launch with custom configuration settings specified in the `LaunchOptions` parameter.
86
88
  #
87
89
  # @return [String]
@@ -21,6 +21,7 @@ module OCI
21
21
  LAUNCH_MODE_ENUM = [
22
22
  LAUNCH_MODE_NATIVE = 'NATIVE'.freeze,
23
23
  LAUNCH_MODE_EMULATED = 'EMULATED'.freeze,
24
+ LAUNCH_MODE_PARAVIRTUALIZED = 'PARAVIRTUALIZED'.freeze,
24
25
  LAUNCH_MODE_CUSTOM = 'CUSTOM'.freeze,
25
26
  LAUNCH_MODE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
26
27
  ].freeze
@@ -134,6 +135,7 @@ module OCI
134
135
  # Specifies the configuration mode for launching virtual machine (VM) instances. The configuration modes are:
135
136
  # * `NATIVE` - VM instances launch with iSCSI boot and VFIO devices. The default value for Oracle-provided images.
136
137
  # * `EMULATED` - VM instances launch with emulated devices, such as the E1000 network driver and emulated SCSI disk controller.
138
+ # * `PARAVIRTUALIZED` - VM instances launch with paravirtualized devices using virtio drivers.
137
139
  # * `CUSTOM` - VM instances launch with custom configuration settings specified in the `LaunchOptions` parameter.
138
140
  #
139
141
  # @return [String]
@@ -15,13 +15,18 @@ module OCI
15
15
  # @return [String]
16
16
  attr_accessor :image_id
17
17
 
18
+ # The OCID of the KMS key to be used as the master encryption key for the boot volume.
19
+ # @return [String]
20
+ attr_accessor :kms_key_id
21
+
18
22
  # Attribute mapping from ruby-style variable name to JSON key.
19
23
  def self.attribute_map
20
24
  {
21
25
  # rubocop:disable Style/SymbolLiteral
22
26
  'source_type': :'sourceType',
23
27
  'boot_volume_size_in_gbs': :'bootVolumeSizeInGBs',
24
- 'image_id': :'imageId'
28
+ 'image_id': :'imageId',
29
+ 'kms_key_id': :'kmsKeyId'
25
30
  # rubocop:enable Style/SymbolLiteral
26
31
  }
27
32
  end
@@ -32,7 +37,8 @@ module OCI
32
37
  # rubocop:disable Style/SymbolLiteral
33
38
  'source_type': :'String',
34
39
  'boot_volume_size_in_gbs': :'Integer',
35
- 'image_id': :'String'
40
+ 'image_id': :'String',
41
+ 'kms_key_id': :'String'
36
42
  # rubocop:enable Style/SymbolLiteral
37
43
  }
38
44
  end
@@ -45,6 +51,7 @@ module OCI
45
51
  # @param [Hash] attributes Model attributes in the form of hash
46
52
  # @option attributes [Integer] :boot_volume_size_in_gbs The value to assign to the {#boot_volume_size_in_gbs} property
47
53
  # @option attributes [String] :image_id The value to assign to the {#image_id} property
54
+ # @option attributes [String] :kms_key_id The value to assign to the {#kms_key_id} property
48
55
  def initialize(attributes = {})
49
56
  return unless attributes.is_a?(Hash)
50
57
 
@@ -66,6 +73,12 @@ module OCI
66
73
  raise 'You cannot provide both :imageId and :image_id' if attributes.key?(:'imageId') && attributes.key?(:'image_id')
67
74
 
68
75
  self.image_id = attributes[:'image_id'] if attributes[:'image_id']
76
+
77
+ self.kms_key_id = attributes[:'kmsKeyId'] if attributes[:'kmsKeyId']
78
+
79
+ raise 'You cannot provide both :kmsKeyId and :kms_key_id' if attributes.key?(:'kmsKeyId') && attributes.key?(:'kms_key_id')
80
+
81
+ self.kms_key_id = attributes[:'kms_key_id'] if attributes[:'kms_key_id']
69
82
  end
70
83
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
71
84
  # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -80,7 +93,8 @@ module OCI
80
93
  self.class == other.class &&
81
94
  source_type == other.source_type &&
82
95
  boot_volume_size_in_gbs == other.boot_volume_size_in_gbs &&
83
- image_id == other.image_id
96
+ image_id == other.image_id &&
97
+ kms_key_id == other.kms_key_id
84
98
  end
85
99
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
86
100
 
@@ -96,7 +110,7 @@ module OCI
96
110
  # Calculates hash code according to all attributes.
97
111
  # @return [Fixnum] Hash code
98
112
  def hash
99
- [source_type, boot_volume_size_in_gbs, image_id].hash
113
+ [source_type, boot_volume_size_in_gbs, image_id, kms_key_id].hash
100
114
  end
101
115
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
102
116