oci 2.3.0 → 2.3.1

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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/oci/core/blockstorage_client.rb +412 -13
  4. data/lib/oci/core/blockstorage_client_composite_operations.rb +158 -0
  5. data/lib/oci/core/compute_client.rb +6 -7
  6. data/lib/oci/core/core.rb +13 -0
  7. data/lib/oci/core/models/boot_volume.rb +68 -1
  8. data/lib/oci/core/models/boot_volume_backup.rb +435 -0
  9. data/lib/oci/core/models/boot_volume_source_details.rb +163 -0
  10. data/lib/oci/core/models/boot_volume_source_from_boot_volume_backup_details.rb +154 -0
  11. data/lib/oci/core/models/boot_volume_source_from_boot_volume_details.rb +154 -0
  12. data/lib/oci/core/models/create_boot_volume_backup_details.rb +227 -0
  13. data/lib/oci/core/models/create_boot_volume_details.rb +250 -0
  14. data/lib/oci/core/models/create_service_gateway_details.rb +228 -0
  15. data/lib/oci/core/models/egress_security_rule.rb +44 -3
  16. data/lib/oci/core/models/ingress_security_rule.rb +47 -3
  17. data/lib/oci/core/models/instance_source_via_image_details.rb +0 -1
  18. data/lib/oci/core/models/route_rule.rb +59 -2
  19. data/lib/oci/core/models/service.rb +185 -0
  20. data/lib/oci/core/models/service_gateway.rb +325 -0
  21. data/lib/oci/core/models/service_id_request_details.rb +151 -0
  22. data/lib/oci/core/models/service_id_response_details.rb +165 -0
  23. data/lib/oci/core/models/update_boot_volume_backup_details.rb +189 -0
  24. data/lib/oci/core/models/update_boot_volume_details.rb +41 -4
  25. data/lib/oci/core/models/update_service_gateway_details.rb +225 -0
  26. data/lib/oci/core/models/volume_group.rb +21 -7
  27. data/lib/oci/core/models/volume_group_backup.rb +39 -7
  28. data/lib/oci/core/models/volume_group_source_from_volumes_details.rb +1 -1
  29. data/lib/oci/core/virtual_network_client.rb +582 -1
  30. data/lib/oci/core/virtual_network_client_composite_operations.rb +119 -0
  31. data/lib/oci/version.rb +1 -1
  32. metadata +15 -2
@@ -6,17 +6,36 @@ require 'date'
6
6
  module OCI
7
7
  # UpdateBootVolumeDetails model.
8
8
  class Core::Models::UpdateBootVolumeDetails # rubocop:disable Metrics/LineLength
9
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
10
+ # For more information, see [Resource Tags](https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/resourcetags.htm).
11
+ #
12
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
13
+ #
14
+ # @return [Hash<String, Hash<String, Object>>]
15
+ attr_accessor :defined_tags
16
+
9
17
  # A user-friendly name. Does not have to be unique, and it's changeable.
10
18
  # Avoid entering confidential information.
11
19
  #
12
20
  # @return [String]
13
21
  attr_accessor :display_name
14
22
 
23
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no
24
+ # predefined name, type, or namespace. For more information, see
25
+ # [Resource Tags](https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/resourcetags.htm).
26
+ #
27
+ # Example: `{\"Department\": \"Finance\"}`
28
+ #
29
+ # @return [Hash<String, String>]
30
+ attr_accessor :freeform_tags
31
+
15
32
  # Attribute mapping from ruby-style variable name to JSON key.
16
33
  def self.attribute_map
17
34
  {
18
35
  # rubocop:disable Style/SymbolLiteral
19
- 'display_name': :'displayName'
36
+ 'defined_tags': :'definedTags',
37
+ 'display_name': :'displayName',
38
+ 'freeform_tags': :'freeformTags'
20
39
  # rubocop:enable Style/SymbolLiteral
21
40
  }
22
41
  end
@@ -25,7 +44,9 @@ module OCI
25
44
  def self.swagger_types
26
45
  {
27
46
  # rubocop:disable Style/SymbolLiteral
28
- 'display_name': :'String'
47
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
48
+ 'display_name': :'String',
49
+ 'freeform_tags': :'Hash<String, String>'
29
50
  # rubocop:enable Style/SymbolLiteral
30
51
  }
31
52
  end
@@ -36,18 +57,32 @@ module OCI
36
57
 
37
58
  # Initializes the object
38
59
  # @param [Hash] attributes Model attributes in the form of hash
60
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
39
61
  # @option attributes [String] :display_name The value to assign to the {#display_name} property
62
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
40
63
  def initialize(attributes = {})
41
64
  return unless attributes.is_a?(Hash)
42
65
 
43
66
  # convert string to symbol for hash key
44
67
  attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
45
68
 
69
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
70
+
71
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
72
+
73
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
74
+
46
75
  self.display_name = attributes[:'displayName'] if attributes[:'displayName']
47
76
 
48
77
  raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
49
78
 
50
79
  self.display_name = attributes[:'display_name'] if attributes[:'display_name']
80
+
81
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
82
+
83
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
84
+
85
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
51
86
  end
52
87
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
53
88
  # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
@@ -60,7 +95,9 @@ module OCI
60
95
  def ==(other)
61
96
  return true if equal?(other)
62
97
  self.class == other.class &&
63
- display_name == other.display_name
98
+ defined_tags == other.defined_tags &&
99
+ display_name == other.display_name &&
100
+ freeform_tags == other.freeform_tags
64
101
  end
65
102
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
66
103
 
@@ -76,7 +113,7 @@ module OCI
76
113
  # Calculates hash code according to all attributes.
77
114
  # @return [Fixnum] Hash code
78
115
  def hash
79
- [display_name].hash
116
+ [defined_tags, display_name, freeform_tags].hash
80
117
  end
81
118
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
82
119
 
@@ -0,0 +1,225 @@
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
+ # UpdateServiceGatewayDetails model.
8
+ class Core::Models::UpdateServiceGatewayDetails # rubocop:disable Metrics/LineLength
9
+ # Whether the service gateway blocks all traffic through it. The default is `false`. When
10
+ # this is `true`, traffic is not routed to any services, regardless of route rules.
11
+ #
12
+ # Example: `true`
13
+ #
14
+ # @return [BOOLEAN]
15
+ attr_accessor :block_traffic
16
+
17
+ # Usage of predefined tag keys. These predefined keys are scoped to namespaces.
18
+ # Example: `{\"foo-namespace\": {\"bar-key\": \"foo-value\"}}`
19
+ #
20
+ # @return [Hash<String, Hash<String, Object>>]
21
+ attr_accessor :defined_tags
22
+
23
+ # A user-friendly name. Does not have to be unique, and it's changeable.
24
+ # Avoid entering confidential information.
25
+ #
26
+ # @return [String]
27
+ attr_accessor :display_name
28
+
29
+ # Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.
30
+ # Example: `{\"bar-key\": \"value\"}`
31
+ #
32
+ # @return [Hash<String, String>]
33
+ attr_accessor :freeform_tags
34
+
35
+ # List of all the services you want enabled on this service gateway. Sending an empty list
36
+ # means you want to disable all services. Omitting this parameter entirely keeps the
37
+ # existing list of services intact.
38
+ #
39
+ # You can also enable or disable a particular service by using
40
+ # {#attach_service_id attach_service_id} and
41
+ # {#detach_service_id detach_service_id}.
42
+ #
43
+ # For each enabled service, make sure there's a route rule with the service's `cidrBlock`
44
+ # as the rule's destination CIDR and the service gateway as the rule's target. See
45
+ # {RouteTable}.
46
+ #
47
+ # @return [Array<OCI::Core::Models::ServiceIdRequestDetails>]
48
+ attr_accessor :services
49
+
50
+ # Attribute mapping from ruby-style variable name to JSON key.
51
+ def self.attribute_map
52
+ {
53
+ # rubocop:disable Style/SymbolLiteral
54
+ 'block_traffic': :'blockTraffic',
55
+ 'defined_tags': :'definedTags',
56
+ 'display_name': :'displayName',
57
+ 'freeform_tags': :'freeformTags',
58
+ 'services': :'services'
59
+ # rubocop:enable Style/SymbolLiteral
60
+ }
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.swagger_types
65
+ {
66
+ # rubocop:disable Style/SymbolLiteral
67
+ 'block_traffic': :'BOOLEAN',
68
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
69
+ 'display_name': :'String',
70
+ 'freeform_tags': :'Hash<String, String>',
71
+ 'services': :'Array<OCI::Core::Models::ServiceIdRequestDetails>'
72
+ # rubocop:enable Style/SymbolLiteral
73
+ }
74
+ end
75
+
76
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
77
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
78
+
79
+
80
+ # Initializes the object
81
+ # @param [Hash] attributes Model attributes in the form of hash
82
+ # @option attributes [BOOLEAN] :block_traffic The value to assign to the {#block_traffic} property
83
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
84
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
85
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
86
+ # @option attributes [Array<OCI::Core::Models::ServiceIdRequestDetails>] :services The value to assign to the {#services} property
87
+ def initialize(attributes = {})
88
+ return unless attributes.is_a?(Hash)
89
+
90
+ # convert string to symbol for hash key
91
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
92
+
93
+ self.block_traffic = attributes[:'blockTraffic'] unless attributes[:'blockTraffic'].nil?
94
+ self.block_traffic = true if block_traffic.nil? && !attributes.key?(:'blockTraffic') # rubocop:disable Style/StringLiterals
95
+
96
+ raise 'You cannot provide both :blockTraffic and :block_traffic' if attributes.key?(:'blockTraffic') && attributes.key?(:'block_traffic')
97
+
98
+ self.block_traffic = attributes[:'block_traffic'] unless attributes[:'block_traffic'].nil?
99
+ self.block_traffic = true if block_traffic.nil? && !attributes.key?(:'blockTraffic') && !attributes.key?(:'block_traffic') # rubocop:disable Style/StringLiterals
100
+
101
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
102
+
103
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
104
+
105
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
106
+
107
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
108
+
109
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
110
+
111
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
112
+
113
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
114
+
115
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
116
+
117
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
118
+
119
+ self.services = attributes[:'services'] if attributes[:'services']
120
+ end
121
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
122
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
123
+
124
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
125
+
126
+
127
+ # Checks equality by comparing each attribute.
128
+ # @param [Object] other the other object to be compared
129
+ def ==(other)
130
+ return true if equal?(other)
131
+ self.class == other.class &&
132
+ block_traffic == other.block_traffic &&
133
+ defined_tags == other.defined_tags &&
134
+ display_name == other.display_name &&
135
+ freeform_tags == other.freeform_tags &&
136
+ services == other.services
137
+ end
138
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
139
+
140
+ # @see the `==` method
141
+ # @param [Object] other the other object to be compared
142
+ def eql?(other)
143
+ self == other
144
+ end
145
+
146
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
147
+
148
+
149
+ # Calculates hash code according to all attributes.
150
+ # @return [Fixnum] Hash code
151
+ def hash
152
+ [block_traffic, defined_tags, display_name, freeform_tags, services].hash
153
+ end
154
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
155
+
156
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
157
+
158
+
159
+ # Builds the object from hash
160
+ # @param [Hash] attributes Model attributes in the form of hash
161
+ # @return [Object] Returns the model itself
162
+ def build_from_hash(attributes)
163
+ return nil unless attributes.is_a?(Hash)
164
+ self.class.swagger_types.each_pair do |key, type|
165
+ if type =~ /^Array<(.*)>/i
166
+ # check to ensure the input is an array given that the the attribute
167
+ # is documented as an array but the input is not
168
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
169
+ public_method("#{key}=").call(
170
+ attributes[self.class.attribute_map[key]]
171
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
172
+ )
173
+ end
174
+ elsif !attributes[self.class.attribute_map[key]].nil?
175
+ public_method("#{key}=").call(
176
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
177
+ )
178
+ end
179
+ # 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
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
185
+
186
+ # Returns the string representation of the object
187
+ # @return [String] String presentation of the object
188
+ def to_s
189
+ to_hash.to_s
190
+ end
191
+
192
+ # Returns the object in the form of hash
193
+ # @return [Hash] Returns the object in the form of hash
194
+ def to_hash
195
+ hash = {}
196
+ self.class.attribute_map.each_pair do |attr, param|
197
+ value = public_method(attr).call
198
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
199
+ hash[param] = _to_hash(value)
200
+ end
201
+ hash
202
+ end
203
+
204
+ private
205
+
206
+ # Outputs non-array value in the form of hash
207
+ # For object, use to_hash. Otherwise, just return the value
208
+ # @param [Object] value Any valid value
209
+ # @return [Hash] Returns the value in the form of hash
210
+ def _to_hash(value)
211
+ if value.is_a?(Array)
212
+ value.compact.map { |v| _to_hash(v) }
213
+ elsif value.is_a?(Hash)
214
+ {}.tap do |hash|
215
+ value.each { |k, v| hash[k] = _to_hash(v) }
216
+ end
217
+ elsif value.respond_to? :to_hash
218
+ value.to_hash
219
+ else
220
+ value
221
+ end
222
+ end
223
+ end
224
+ end
225
+ # rubocop:enable Lint/UnneededCopDisableDirective
@@ -5,7 +5,7 @@ require 'logger'
5
5
 
6
6
  # rubocop:disable Lint/UnneededCopDisableDirective
7
7
  module OCI
8
- # Specifies a volume group. A volume group is a collection of block volumes.
8
+ # Specifies a volume group which is a collection of volumes. For more information, see [Volume Groups](https://docs.us-phoenix-1.oraclecloud.com/Content/Block/Concepts/volumegroups.htm).
9
9
  class Core::Models::VolumeGroup # rubocop:disable Metrics/LineLength
10
10
  LIFECYCLE_STATE_ENUM = [
11
11
  LIFECYCLE_STATE_PROVISIONING = 'PROVISIONING'.freeze,
@@ -16,7 +16,7 @@ module OCI
16
16
  LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
17
17
  ].freeze
18
18
 
19
- # **[Required]** The Availability Domain of the volume group.
19
+ # **[Required]** The availability domain of the volume group.
20
20
  # @return [String]
21
21
  attr_accessor :availability_domain
22
22
 
@@ -32,7 +32,7 @@ module OCI
32
32
  # @return [Hash<String, Hash<String, Object>>]
33
33
  attr_accessor :defined_tags
34
34
 
35
- # **[Required]** A user-friendly name for the volume group. Does not have to be unique, and it's changeable.
35
+ # **[Required]** A user-friendly name for the volume group. Does not have to be unique, and it's changeable. Avoid entering confidential information.
36
36
  # @return [String]
37
37
  attr_accessor :display_name
38
38
 
@@ -45,7 +45,7 @@ module OCI
45
45
  # @return [Hash<String, String>]
46
46
  attr_accessor :freeform_tags
47
47
 
48
- # **[Required]** The Oracle Cloud ID (OCID) that uniquely identifies the volume group.
48
+ # **[Required]** The OCID for the volume group.
49
49
  # @return [String]
50
50
  attr_accessor :id
51
51
 
@@ -57,8 +57,12 @@ module OCI
57
57
  # @return [Integer]
58
58
  attr_accessor :size_in_mbs
59
59
 
60
- # The volume group source. The volume source is either another a list of
61
- # volume ids in the same Availability Domain, another volume group or a volume group backup.
60
+ # The aggregate size of the volume group in GBs.
61
+ # @return [Integer]
62
+ attr_accessor :size_in_gbs
63
+
64
+ # The volume group source. The source is either another a list of
65
+ # volume IDs in the same availability domain, another volume group, or a volume group backup.
62
66
  #
63
67
  # @return [OCI::Core::Models::VolumeGroupSourceDetails]
64
68
  attr_accessor :source_details
@@ -83,6 +87,7 @@ module OCI
83
87
  'id': :'id',
84
88
  'lifecycle_state': :'lifecycleState',
85
89
  'size_in_mbs': :'sizeInMBs',
90
+ 'size_in_gbs': :'sizeInGBs',
86
91
  'source_details': :'sourceDetails',
87
92
  'time_created': :'timeCreated',
88
93
  'volume_ids': :'volumeIds'
@@ -102,6 +107,7 @@ module OCI
102
107
  'id': :'String',
103
108
  'lifecycle_state': :'String',
104
109
  'size_in_mbs': :'Integer',
110
+ 'size_in_gbs': :'Integer',
105
111
  'source_details': :'OCI::Core::Models::VolumeGroupSourceDetails',
106
112
  'time_created': :'DateTime',
107
113
  'volume_ids': :'Array<String>'
@@ -123,6 +129,7 @@ module OCI
123
129
  # @option attributes [String] :id The value to assign to the {#id} property
124
130
  # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
125
131
  # @option attributes [Integer] :size_in_mbs The value to assign to the {#size_in_mbs} property
132
+ # @option attributes [Integer] :size_in_gbs The value to assign to the {#size_in_gbs} property
126
133
  # @option attributes [OCI::Core::Models::VolumeGroupSourceDetails] :source_details The value to assign to the {#source_details} property
127
134
  # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
128
135
  # @option attributes [Array<String>] :volume_ids The value to assign to the {#volume_ids} property
@@ -176,6 +183,12 @@ module OCI
176
183
 
177
184
  self.size_in_mbs = attributes[:'size_in_mbs'] if attributes[:'size_in_mbs']
178
185
 
186
+ self.size_in_gbs = attributes[:'sizeInGBs'] if attributes[:'sizeInGBs']
187
+
188
+ raise 'You cannot provide both :sizeInGBs and :size_in_gbs' if attributes.key?(:'sizeInGBs') && attributes.key?(:'size_in_gbs')
189
+
190
+ self.size_in_gbs = attributes[:'size_in_gbs'] if attributes[:'size_in_gbs']
191
+
179
192
  self.source_details = attributes[:'sourceDetails'] if attributes[:'sourceDetails']
180
193
 
181
194
  raise 'You cannot provide both :sourceDetails and :source_details' if attributes.key?(:'sourceDetails') && attributes.key?(:'source_details')
@@ -228,6 +241,7 @@ module OCI
228
241
  id == other.id &&
229
242
  lifecycle_state == other.lifecycle_state &&
230
243
  size_in_mbs == other.size_in_mbs &&
244
+ size_in_gbs == other.size_in_gbs &&
231
245
  source_details == other.source_details &&
232
246
  time_created == other.time_created &&
233
247
  volume_ids == other.volume_ids
@@ -246,7 +260,7 @@ module OCI
246
260
  # Calculates hash code according to all attributes.
247
261
  # @return [Fixnum] Hash code
248
262
  def hash
249
- [availability_domain, compartment_id, defined_tags, display_name, freeform_tags, id, lifecycle_state, size_in_mbs, source_details, time_created, volume_ids].hash
263
+ [availability_domain, compartment_id, defined_tags, display_name, freeform_tags, id, lifecycle_state, size_in_mbs, size_in_gbs, source_details, time_created, volume_ids].hash
250
264
  end
251
265
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
252
266
 
@@ -5,8 +5,8 @@ require 'logger'
5
5
 
6
6
  # rubocop:disable Lint/UnneededCopDisableDirective
7
7
  module OCI
8
- # A point-in-time copy of a volume group that can then be used to create a new block volume group
9
- # or recover a block volume group.
8
+ # A point-in-time copy of a volume group that can then be used to create a new volume group
9
+ # or restore a volume group. For more information, see [Volume Groups](https://docs.us-phoenix-1.oraclecloud.com/Content/Block/Concepts/volumegroups.htm).
10
10
  #
11
11
  # To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized,
12
12
  # talk to an administrator. If you're an administrator who needs to write policies to give users access, see
@@ -42,7 +42,7 @@ module OCI
42
42
  # @return [Hash<String, Hash<String, Object>>]
43
43
  attr_accessor :defined_tags
44
44
 
45
- # **[Required]** A user-friendly name for the volume group backup. Does not have to be unique and it's changeable.
45
+ # **[Required]** A user-friendly name for the volume group backup. Does not have to be unique and it's changeable. Avoid entering confidential information.
46
46
  # @return [String]
47
47
  attr_accessor :display_name
48
48
 
@@ -55,7 +55,7 @@ module OCI
55
55
  # @return [Hash<String, String>]
56
56
  attr_accessor :freeform_tags
57
57
 
58
- # **[Required]** The OCID of the volume group backup (unique).
58
+ # **[Required]** The OCID of the volume group backup.
59
59
  # @return [String]
60
60
  attr_accessor :id
61
61
 
@@ -68,6 +68,11 @@ module OCI
68
68
  # @return [Integer]
69
69
  attr_accessor :size_in_mbs
70
70
 
71
+ # The aggregate size of the volume group backup, in GBs.
72
+ #
73
+ # @return [Integer]
74
+ attr_accessor :size_in_gbs
75
+
71
76
  # **[Required]** The date and time the volume group backup was created. This is the time the actual point-in-time image
72
77
  # of the volume group data was taken. Format defined by RFC3339.
73
78
  #
@@ -85,12 +90,19 @@ module OCI
85
90
 
86
91
  # The aggregate size used by the volume group backup, in MBs.
87
92
  # It is typically smaller than sizeInMBs, depending on the space
88
- # consumed on the volume group and whether the backup is full or incremental.
93
+ # consumed on the volume group and whether the volume backup is full or incremental.
89
94
  #
90
95
  # @return [Integer]
91
96
  attr_accessor :unique_size_in_mbs
92
97
 
93
- # **[Required]** OCIDs for the backups in this volume group backup.
98
+ # The aggregate size used by the volume group backup, in GBs.
99
+ # It is typically smaller than sizeInGBs, depending on the space
100
+ # consumed on the volume group and whether the volume backup is full or incremental.
101
+ #
102
+ # @return [Integer]
103
+ attr_accessor :unique_size_in_gbs
104
+
105
+ # **[Required]** OCIDs for the volume backups in this volume group backup.
94
106
  # @return [Array<String>]
95
107
  attr_accessor :volume_backup_ids
96
108
 
@@ -109,10 +121,12 @@ module OCI
109
121
  'id': :'id',
110
122
  'lifecycle_state': :'lifecycleState',
111
123
  'size_in_mbs': :'sizeInMBs',
124
+ 'size_in_gbs': :'sizeInGBs',
112
125
  'time_created': :'timeCreated',
113
126
  'time_request_received': :'timeRequestReceived',
114
127
  'type': :'type',
115
128
  'unique_size_in_mbs': :'uniqueSizeInMbs',
129
+ 'unique_size_in_gbs': :'uniqueSizeInGbs',
116
130
  'volume_backup_ids': :'volumeBackupIds',
117
131
  'volume_group_id': :'volumeGroupId'
118
132
  # rubocop:enable Style/SymbolLiteral
@@ -130,10 +144,12 @@ module OCI
130
144
  'id': :'String',
131
145
  'lifecycle_state': :'String',
132
146
  'size_in_mbs': :'Integer',
147
+ 'size_in_gbs': :'Integer',
133
148
  'time_created': :'DateTime',
134
149
  'time_request_received': :'DateTime',
135
150
  'type': :'String',
136
151
  'unique_size_in_mbs': :'Integer',
152
+ 'unique_size_in_gbs': :'Integer',
137
153
  'volume_backup_ids': :'Array<String>',
138
154
  'volume_group_id': :'String'
139
155
  # rubocop:enable Style/SymbolLiteral
@@ -153,10 +169,12 @@ module OCI
153
169
  # @option attributes [String] :id The value to assign to the {#id} property
154
170
  # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
155
171
  # @option attributes [Integer] :size_in_mbs The value to assign to the {#size_in_mbs} property
172
+ # @option attributes [Integer] :size_in_gbs The value to assign to the {#size_in_gbs} property
156
173
  # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
157
174
  # @option attributes [DateTime] :time_request_received The value to assign to the {#time_request_received} property
158
175
  # @option attributes [String] :type The value to assign to the {#type} property
159
176
  # @option attributes [Integer] :unique_size_in_mbs The value to assign to the {#unique_size_in_mbs} property
177
+ # @option attributes [Integer] :unique_size_in_gbs The value to assign to the {#unique_size_in_gbs} property
160
178
  # @option attributes [Array<String>] :volume_backup_ids The value to assign to the {#volume_backup_ids} property
161
179
  # @option attributes [String] :volume_group_id The value to assign to the {#volume_group_id} property
162
180
  def initialize(attributes = {})
@@ -203,6 +221,12 @@ module OCI
203
221
 
204
222
  self.size_in_mbs = attributes[:'size_in_mbs'] if attributes[:'size_in_mbs']
205
223
 
224
+ self.size_in_gbs = attributes[:'sizeInGBs'] if attributes[:'sizeInGBs']
225
+
226
+ raise 'You cannot provide both :sizeInGBs and :size_in_gbs' if attributes.key?(:'sizeInGBs') && attributes.key?(:'size_in_gbs')
227
+
228
+ self.size_in_gbs = attributes[:'size_in_gbs'] if attributes[:'size_in_gbs']
229
+
206
230
  self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
207
231
 
208
232
  raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
@@ -223,6 +247,12 @@ module OCI
223
247
 
224
248
  self.unique_size_in_mbs = attributes[:'unique_size_in_mbs'] if attributes[:'unique_size_in_mbs']
225
249
 
250
+ self.unique_size_in_gbs = attributes[:'uniqueSizeInGbs'] if attributes[:'uniqueSizeInGbs']
251
+
252
+ raise 'You cannot provide both :uniqueSizeInGbs and :unique_size_in_gbs' if attributes.key?(:'uniqueSizeInGbs') && attributes.key?(:'unique_size_in_gbs')
253
+
254
+ self.unique_size_in_gbs = attributes[:'unique_size_in_gbs'] if attributes[:'unique_size_in_gbs']
255
+
226
256
  self.volume_backup_ids = attributes[:'volumeBackupIds'] if attributes[:'volumeBackupIds']
227
257
 
228
258
  raise 'You cannot provide both :volumeBackupIds and :volume_backup_ids' if attributes.key?(:'volumeBackupIds') && attributes.key?(:'volume_backup_ids')
@@ -283,10 +313,12 @@ module OCI
283
313
  id == other.id &&
284
314
  lifecycle_state == other.lifecycle_state &&
285
315
  size_in_mbs == other.size_in_mbs &&
316
+ size_in_gbs == other.size_in_gbs &&
286
317
  time_created == other.time_created &&
287
318
  time_request_received == other.time_request_received &&
288
319
  type == other.type &&
289
320
  unique_size_in_mbs == other.unique_size_in_mbs &&
321
+ unique_size_in_gbs == other.unique_size_in_gbs &&
290
322
  volume_backup_ids == other.volume_backup_ids &&
291
323
  volume_group_id == other.volume_group_id
292
324
  end
@@ -304,7 +336,7 @@ module OCI
304
336
  # Calculates hash code according to all attributes.
305
337
  # @return [Fixnum] Hash code
306
338
  def hash
307
- [compartment_id, defined_tags, display_name, freeform_tags, id, lifecycle_state, size_in_mbs, time_created, time_request_received, type, unique_size_in_mbs, volume_backup_ids, volume_group_id].hash
339
+ [compartment_id, defined_tags, display_name, freeform_tags, id, lifecycle_state, size_in_mbs, size_in_gbs, time_created, time_request_received, type, unique_size_in_mbs, unique_size_in_gbs, volume_backup_ids, volume_group_id].hash
308
340
  end
309
341
  # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
310
342