google-apis-cloudbilling_v1beta 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,19 +22,51 @@ module Google
22
22
  module Apis
23
23
  module CloudbillingV1beta
24
24
 
25
- # Specifies the regions for Cache Fill.
26
- class CacheFillRegions
25
+ # A representation of a decimal value, such as 2.5. Clients may convert values
26
+ # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
27
+ # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
28
+ # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
29
+ class Decimal
27
30
  include Google::Apis::Core::Hashable
28
31
 
29
- # The destination region for cache fill.
30
- # Corresponds to the JSON property `destinationRegion`
31
- # @return [String]
32
- attr_accessor :destination_region
33
-
34
- # The source region for cache fill.
35
- # Corresponds to the JSON property `sourceRegion`
32
+ # The decimal value, as a string. The string representation consists of an
33
+ # optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence of
34
+ # zero or more decimal digits ("the integer"), optionally followed by a fraction,
35
+ # optionally followed by an exponent. An empty string **should** be interpreted
36
+ # as `0`. The fraction consists of a decimal point followed by zero or more
37
+ # decimal digits. The string must contain at least one digit in either the
38
+ # integer or the fraction. The number formed by the sign, the integer and the
39
+ # fraction is referred to as the significand. The exponent consists of the
40
+ # character `e` (`U+0065`) or `E` (`U+0045`) followed by one or more decimal
41
+ # digits. Services **should** normalize decimal values before storing them by: -
42
+ # Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). - Replacing a zero-
43
+ # length integer value with `0` (`.5` -> `0.5`). - Coercing the exponent
44
+ # character to upper-case, with explicit sign (`2.5e8` -> `2.5E+8`). - Removing
45
+ # an explicitly-provided zero exponent (`2.5E0` -> `2.5`). Services **may**
46
+ # perform additional normalization based on its own needs and the internal
47
+ # decimal implementation selected, such as shifting the decimal point and
48
+ # exponent value together (example: `2.5E-1` <-> `0.25`). Additionally, services
49
+ # **may** preserve trailing zeroes in the fraction to indicate increased
50
+ # precision, but are not required to do so. Note that only the `.` character is
51
+ # supported to divide the integer and the fraction; `,` **should not** be
52
+ # supported regardless of locale. Additionally, thousand separators **should not*
53
+ # * be supported. If a service does support them, values **must** be normalized.
54
+ # The ENBF grammar is: DecimalString = '' | [Sign] Significand [Exponent]; Sign =
55
+ # '+' | '-'; Significand = Digits '.' | [Digits] '.' Digits; Exponent = ('e' | '
56
+ # E') [Sign] Digits; Digits = ` '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '
57
+ # 8' | '9' `; Services **should** clearly document the range of supported values,
58
+ # the maximum supported precision (total number of digits), and, if applicable,
59
+ # the scale (number of digits after the decimal point), as well as how it
60
+ # behaves when receiving out-of-bounds values. Services **may** choose to accept
61
+ # values passed as input even when the value has a higher precision or scale
62
+ # than the service supports, and **should** round the value to fit the supported
63
+ # scale. Alternatively, the service **may** error with `400 Bad Request` (`
64
+ # INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should**
65
+ # error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service
66
+ # receives a value outside of the supported range.
67
+ # Corresponds to the JSON property `value`
36
68
  # @return [String]
37
- attr_accessor :source_region
69
+ attr_accessor :value
38
70
 
39
71
  def initialize(**args)
40
72
  update!(**args)
@@ -42,24 +74,26 @@ module Google
42
74
 
43
75
  # Update properties of this object
44
76
  def update!(**args)
45
- @destination_region = args[:destination_region] if args.key?(:destination_region)
46
- @source_region = args[:source_region] if args.key?(:source_region)
77
+ @value = args[:value] if args.key?(:value)
47
78
  end
48
79
  end
49
80
 
50
- # Specifies usage for Cloud CDN Data Transfer.
51
- class CloudCdnEgressWorkload
81
+ # Encapsulates the aggregation information such as aggregation level and
82
+ # interval for a billing account price.
83
+ class GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo
52
84
  include Google::Apis::Core::Hashable
53
85
 
54
- # The destination for the cache data transfer.
55
- # Corresponds to the JSON property `cacheEgressDestination`
86
+ # Interval at which usage is aggregated to compute cost. Example: "MONTHLY"
87
+ # interval indicates that usage is aggregated every month.
88
+ # Corresponds to the JSON property `interval`
56
89
  # @return [String]
57
- attr_accessor :cache_egress_destination
90
+ attr_accessor :interval
58
91
 
59
- # An amount of usage over a time frame.
60
- # Corresponds to the JSON property `cacheEgressRate`
61
- # @return [Google::Apis::CloudbillingV1beta::Usage]
62
- attr_accessor :cache_egress_rate
92
+ # Level at which usage is aggregated to compute cost. Example: "ACCOUNT" level
93
+ # indicates that usage is aggregated across all projects in a single account.
94
+ # Corresponds to the JSON property `level`
95
+ # @return [String]
96
+ attr_accessor :level
63
97
 
64
98
  def initialize(**args)
65
99
  update!(**args)
@@ -67,65 +101,41 @@ module Google
67
101
 
68
102
  # Update properties of this object
69
103
  def update!(**args)
70
- @cache_egress_destination = args[:cache_egress_destination] if args.key?(:cache_egress_destination)
71
- @cache_egress_rate = args[:cache_egress_rate] if args.key?(:cache_egress_rate)
104
+ @interval = args[:interval] if args.key?(:interval)
105
+ @level = args[:level] if args.key?(:level)
72
106
  end
73
107
  end
74
108
 
75
- # Specifies usage for Cloud CDN resources.
76
- class CloudCdnWorkload
109
+ # Encapsulates the latest price for a billing account SKU.
110
+ class GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice
77
111
  include Google::Apis::Core::Hashable
78
112
 
79
- # The source service for the cache fill.
80
- # Corresponds to the JSON property `cacheFillOriginService`
113
+ # ISO-4217 currency code for the price.
114
+ # Corresponds to the JSON property `currencyCode`
81
115
  # @return [String]
82
- attr_accessor :cache_fill_origin_service
83
-
84
- # An amount of usage over a time frame.
85
- # Corresponds to the JSON property `cacheFillRate`
86
- # @return [Google::Apis::CloudbillingV1beta::Usage]
87
- attr_accessor :cache_fill_rate
88
-
89
- # Specifies the regions for Cache Fill.
90
- # Corresponds to the JSON property `cacheFillRegions`
91
- # @return [Google::Apis::CloudbillingV1beta::CacheFillRegions]
92
- attr_accessor :cache_fill_regions
93
-
94
- # An amount of usage over a time frame.
95
- # Corresponds to the JSON property `cacheLookUpRate`
96
- # @return [Google::Apis::CloudbillingV1beta::Usage]
97
- attr_accessor :cache_look_up_rate
98
-
99
- def initialize(**args)
100
- update!(**args)
101
- end
116
+ attr_accessor :currency_code
102
117
 
103
- # Update properties of this object
104
- def update!(**args)
105
- @cache_fill_origin_service = args[:cache_fill_origin_service] if args.key?(:cache_fill_origin_service)
106
- @cache_fill_rate = args[:cache_fill_rate] if args.key?(:cache_fill_rate)
107
- @cache_fill_regions = args[:cache_fill_regions] if args.key?(:cache_fill_regions)
108
- @cache_look_up_rate = args[:cache_look_up_rate] if args.key?(:cache_look_up_rate)
109
- end
110
- end
118
+ # Resource name for the latest billing account price.
119
+ # Corresponds to the JSON property `name`
120
+ # @return [String]
121
+ attr_accessor :name
111
122
 
112
- # Includes the estimate for Interconnect Data Transfer only. To specify usage
113
- # for data transfer between VMs and internet end-points, use the Standard Tier
114
- # Internet Data Transfer interface.
115
- class CloudInterconnectEgressWorkload
116
- include Google::Apis::Core::Hashable
123
+ # Encapsulates a price reason which contains background information about the
124
+ # origin of the price.
125
+ # Corresponds to the JSON property `priceReason`
126
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaPriceReason]
127
+ attr_accessor :price_reason
117
128
 
118
- # An amount of usage over a time frame.
119
- # Corresponds to the JSON property `egressRate`
120
- # @return [Google::Apis::CloudbillingV1beta::Usage]
121
- attr_accessor :egress_rate
129
+ # Encapsulates a `Rate` price. Billing account SKUs with `Rate` price are
130
+ # offered by pricing tiers. The price have 1 or more rate pricing tiers.
131
+ # Corresponds to the JSON property `rate`
132
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaRate]
133
+ attr_accessor :rate
122
134
 
123
- # Locations in the [Interconnect connection location table](https://cloud.google.
124
- # com/vpc/network-pricing#interconnect-pricing). These are the Interconnect Data
125
- # Transfer charges.
126
- # Corresponds to the JSON property `interconnectConnectionLocation`
135
+ # Type of the price. The possible values are: ["unspecified", "rate"].
136
+ # Corresponds to the JSON property `valueType`
127
137
  # @return [String]
128
- attr_accessor :interconnect_connection_location
138
+ attr_accessor :value_type
129
139
 
130
140
  def initialize(**args)
131
141
  update!(**args)
@@ -133,141 +143,55 @@ module Google
133
143
 
134
144
  # Update properties of this object
135
145
  def update!(**args)
136
- @egress_rate = args[:egress_rate] if args.key?(:egress_rate)
137
- @interconnect_connection_location = args[:interconnect_connection_location] if args.key?(:interconnect_connection_location)
146
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
147
+ @name = args[:name] if args.key?(:name)
148
+ @price_reason = args[:price_reason] if args.key?(:price_reason)
149
+ @rate = args[:rate] if args.key?(:rate)
150
+ @value_type = args[:value_type] if args.key?(:value_type)
138
151
  end
139
152
  end
140
153
 
141
- # Specifies usage for Cloud Interconnect resources.
142
- class CloudInterconnectWorkload
154
+ # Encapsulates a default price which is the current list price.
155
+ class GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice
143
156
  include Google::Apis::Core::Hashable
144
157
 
145
- # VLAN attachment used for interconnect.
146
- # Corresponds to the JSON property `interconnectAttachments`
147
- # @return [Array<Google::Apis::CloudbillingV1beta::VlanAttachment>]
148
- attr_accessor :interconnect_attachments
149
-
150
- # VLAN attachment type
151
- # Corresponds to the JSON property `interconnectType`
152
- # @return [String]
153
- attr_accessor :interconnect_type
154
-
155
- # Interconnect circuit link type.
156
- # Corresponds to the JSON property `linkType`
157
- # @return [String]
158
- attr_accessor :link_type
159
-
160
- # An amount of usage over a time frame.
161
- # Corresponds to the JSON property `provisionedLinkCount`
162
- # @return [Google::Apis::CloudbillingV1beta::Usage]
163
- attr_accessor :provisioned_link_count
164
-
165
158
  def initialize(**args)
166
159
  update!(**args)
167
160
  end
168
161
 
169
162
  # Update properties of this object
170
163
  def update!(**args)
171
- @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
172
- @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
173
- @link_type = args[:link_type] if args.key?(:link_type)
174
- @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
175
164
  end
176
165
  end
177
166
 
178
- # Specification of a network type. Network data transfer within Google Cloud
179
- # applies when you move or copy data from one Cloud Storage bucket to another or
180
- # when another Google Cloud service accesses data in your Cloud Storage bucket.
181
- # This includes the network data transfer within Google Cloud and the general
182
- # network usage. * If transferring data between two regions, the source and
183
- # destination fields are set to different values. For example: `source_continent`
184
- # = "SOURCE_CONTINENT_ASIA_PACIFIC", `destination_continent` = "
185
- # SOURCE_CONTINENT_SOUTH_AMERICA". * If transferring data within one region, the
186
- # source and destination fields are set to the same value. For example: `
187
- # source_continent` = "SOURCE_CONTINENT_ASIA_PACIFIC", `destination_continent` =
188
- # "SOURCE_CONTINENT_ASIA_PACIFIC". Some examples for the Network data transfer
189
- # traffic type on the pricing page. * Data moves between different locations on
190
- # the same continent. `source_continent` = "SOURCE_CONTINENT_ASIA_PACIFIC", `
191
- # destination_continent` = "SOURCE_CONTINENT_ASIA_PACIFIC". * Data moves between
192
- # different continents and neither is Australia. `source_continent` = "
193
- # SOURCE_CONTINENT_NORTH_AMERICA", `destination_continent` = "
194
- # SOURCE_CONTINENT_ASIA_PACIFIC". * Data moves between different continents and
195
- # one is Australia. `source_continent` = "SOURCE_CONTINENT_NORTH_AMERICA", `
196
- # destination_continent` = "SOURCE_CONTINENT_AUSTRALIA".
197
- class CloudStorageEgressWorkload
167
+ # Encapsulates a discount off the list price, anchored to the list price as of a
168
+ # fixed time.
169
+ class GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount
198
170
  include Google::Apis::Core::Hashable
199
171
 
200
- # Where the data is sent to.
201
- # Corresponds to the JSON property `destinationContinent`
202
- # @return [String]
203
- attr_accessor :destination_continent
204
-
205
- # An amount of usage over a time frame.
206
- # Corresponds to the JSON property `egressRate`
207
- # @return [Google::Apis::CloudbillingV1beta::Usage]
208
- attr_accessor :egress_rate
172
+ # A representation of a decimal value, such as 2.5. Clients may convert values
173
+ # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
174
+ # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
175
+ # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
176
+ # Corresponds to the JSON property `discountPercent`
177
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
178
+ attr_accessor :discount_percent
209
179
 
210
- # Where the data comes from.
211
- # Corresponds to the JSON property `sourceContinent`
180
+ # Type of the fixed discount scope which indicates the source of the discount.
181
+ # It can have values such as 'unspecified' and 'sku-group'.
182
+ # Corresponds to the JSON property `discountScopeType`
212
183
  # @return [String]
213
- attr_accessor :source_continent
214
-
215
- def initialize(**args)
216
- update!(**args)
217
- end
218
-
219
- # Update properties of this object
220
- def update!(**args)
221
- @destination_continent = args[:destination_continent] if args.key?(:destination_continent)
222
- @egress_rate = args[:egress_rate] if args.key?(:egress_rate)
223
- @source_continent = args[:source_continent] if args.key?(:source_continent)
224
- end
225
- end
226
-
227
- # Specifies usage of Cloud Storage resources.
228
- class CloudStorageWorkload
229
- include Google::Apis::Core::Hashable
184
+ attr_accessor :discount_scope_type
230
185
 
231
- # An amount of usage over a time frame.
232
- # Corresponds to the JSON property `dataRetrieval`
233
- # @return [Google::Apis::CloudbillingV1beta::Usage]
234
- attr_accessor :data_retrieval
235
-
236
- # An amount of usage over a time frame.
237
- # Corresponds to the JSON property `dataStored`
238
- # @return [Google::Apis::CloudbillingV1beta::Usage]
239
- attr_accessor :data_stored
240
-
241
- # Area contains dual locations.
242
- # Corresponds to the JSON property `dualRegion`
243
- # @return [Google::Apis::CloudbillingV1beta::DualRegional]
244
- attr_accessor :dual_region
245
-
246
- # Area contains multiple locations.
247
- # Corresponds to the JSON property `multiRegion`
248
- # @return [Google::Apis::CloudbillingV1beta::MultiRegional]
249
- attr_accessor :multi_region
250
-
251
- # An amount of usage over a time frame.
252
- # Corresponds to the JSON property `operationA`
253
- # @return [Google::Apis::CloudbillingV1beta::Usage]
254
- attr_accessor :operation_a
255
-
256
- # An amount of usage over a time frame.
257
- # Corresponds to the JSON property `operationB`
258
- # @return [Google::Apis::CloudbillingV1beta::Usage]
259
- attr_accessor :operation_b
260
-
261
- # Area contains only one location.
262
- # Corresponds to the JSON property `region`
263
- # @return [Google::Apis::CloudbillingV1beta::Regional]
264
- attr_accessor :region
186
+ # Time that the fixed discount is anchored to.
187
+ # Corresponds to the JSON property `fixTime`
188
+ # @return [String]
189
+ attr_accessor :fix_time
265
190
 
266
- # The [storage class](https://cloud.google.com/storage/docs/storage-classes#
267
- # classes) of the data and operation. For example: "standard" and "nearline".
268
- # Corresponds to the JSON property `storageClass`
191
+ # SKU group where the fixed discount comes from.
192
+ # Corresponds to the JSON property `skuGroup`
269
193
  # @return [String]
270
- attr_accessor :storage_class
194
+ attr_accessor :sku_group
271
195
 
272
196
  def initialize(**args)
273
197
  update!(**args)
@@ -275,124 +199,50 @@ module Google
275
199
 
276
200
  # Update properties of this object
277
201
  def update!(**args)
278
- @data_retrieval = args[:data_retrieval] if args.key?(:data_retrieval)
279
- @data_stored = args[:data_stored] if args.key?(:data_stored)
280
- @dual_region = args[:dual_region] if args.key?(:dual_region)
281
- @multi_region = args[:multi_region] if args.key?(:multi_region)
282
- @operation_a = args[:operation_a] if args.key?(:operation_a)
283
- @operation_b = args[:operation_b] if args.key?(:operation_b)
284
- @region = args[:region] if args.key?(:region)
285
- @storage_class = args[:storage_class] if args.key?(:storage_class)
202
+ @discount_percent = args[:discount_percent] if args.key?(:discount_percent)
203
+ @discount_scope_type = args[:discount_scope_type] if args.key?(:discount_scope_type)
204
+ @fix_time = args[:fix_time] if args.key?(:fix_time)
205
+ @sku_group = args[:sku_group] if args.key?(:sku_group)
286
206
  end
287
207
  end
288
208
 
289
- # Commitments give you the ability to pay a recurring fee in exchange for a
290
- # benefit, such as a discount for your use. For example, this object might
291
- # contain details of a [spend-based committed use discount (CUD)](https://cloud.
292
- # google.com/docs/cuds#spend_based_commitments). Within a CostScenario, adding a
293
- # commitment includes the cost of the commitment and any discounts.
294
- class Commitment
209
+ # Encapsulates a set fixed price applicable during the terms of a contract
210
+ # agreement.
211
+ class GoogleCloudBillingBillingaccountpricesV1betaFixedPrice
295
212
  include Google::Apis::Core::Hashable
296
213
 
297
- # Required. A name for this commitment. All commitments in a CostScenario must
298
- # have unique names. Each name may be at most 128 characters long.
299
- # Corresponds to the JSON property `name`
300
- # @return [String]
301
- attr_accessor :name
302
-
303
- # Specifies a resource-based committed use discount (CUD).
304
- # Corresponds to the JSON property `vmResourceBasedCud`
305
- # @return [Google::Apis::CloudbillingV1beta::VmResourceBasedCud]
306
- attr_accessor :vm_resource_based_cud
307
-
308
214
  def initialize(**args)
309
215
  update!(**args)
310
216
  end
311
217
 
312
218
  # Update properties of this object
313
219
  def update!(**args)
314
- @name = args[:name] if args.key?(:name)
315
- @vm_resource_based_cud = args[:vm_resource_based_cud] if args.key?(:vm_resource_based_cud)
316
220
  end
317
221
  end
318
222
 
319
- # Estimated cost for a commitment.
320
- class CommitmentCostEstimate
223
+ # Encapsulates a discount off the current list price, not anchored to any list
224
+ # price as of a fixed time.
225
+ class GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount
321
226
  include Google::Apis::Core::Hashable
322
227
 
323
- # An estimated cost.
324
- # Corresponds to the JSON property `commitmentTotalCostEstimate`
325
- # @return [Google::Apis::CloudbillingV1beta::CostEstimate]
326
- attr_accessor :commitment_total_cost_estimate
228
+ # A representation of a decimal value, such as 2.5. Clients may convert values
229
+ # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
230
+ # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
231
+ # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
232
+ # Corresponds to the JSON property `discountPercent`
233
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
234
+ attr_accessor :discount_percent
327
235
 
328
- # The name of the commitment, as specified in the `CostScenario`.
329
- # Corresponds to the JSON property `name`
236
+ # Type of the floating discount scope which indicates the source of the discount.
237
+ # It can have values such as 'unspecified' and 'sku-group'.
238
+ # Corresponds to the JSON property `discountScopeType`
330
239
  # @return [String]
331
- attr_accessor :name
332
-
333
- # Estimated costs for each SKU in the commitment.
334
- # Corresponds to the JSON property `skuCostEstimates`
335
- # @return [Array<Google::Apis::CloudbillingV1beta::SkuCostEstimate>]
336
- attr_accessor :sku_cost_estimates
337
-
338
- def initialize(**args)
339
- update!(**args)
340
- end
341
-
342
- # Update properties of this object
343
- def update!(**args)
344
- @commitment_total_cost_estimate = args[:commitment_total_cost_estimate] if args.key?(:commitment_total_cost_estimate)
345
- @name = args[:name] if args.key?(:name)
346
- @sku_cost_estimates = args[:sku_cost_estimates] if args.key?(:sku_cost_estimates)
347
- end
348
- end
349
-
350
- # Specificies usage of a set of identical compute VM instances.
351
- class ComputeVmWorkload
352
- include Google::Apis::Core::Hashable
240
+ attr_accessor :discount_scope_type
353
241
 
354
- # Defines whether each instance has confidential compute enabled.
355
- # Corresponds to the JSON property `enableConfidentialCompute`
356
- # @return [Boolean]
357
- attr_accessor :enable_confidential_compute
358
- alias_method :enable_confidential_compute?, :enable_confidential_compute
359
-
360
- # Specification of a set of guest accelerators attached to a machine.
361
- # Corresponds to the JSON property `guestAccelerator`
362
- # @return [Google::Apis::CloudbillingV1beta::GuestAccelerator]
363
- attr_accessor :guest_accelerator
364
-
365
- # An amount of usage over a time frame.
366
- # Corresponds to the JSON property `instancesRunning`
367
- # @return [Google::Apis::CloudbillingV1beta::Usage]
368
- attr_accessor :instances_running
369
-
370
- # Premium image licenses used by each instance.
371
- # Corresponds to the JSON property `licenses`
372
- # @return [Array<String>]
373
- attr_accessor :licenses
374
-
375
- # Specification of machine series, memory, and number of vCPUs.
376
- # Corresponds to the JSON property `machineType`
377
- # @return [Google::Apis::CloudbillingV1beta::MachineType]
378
- attr_accessor :machine_type
379
-
380
- # Persistent disks attached to each instance. Must include a boot disk.
381
- # Corresponds to the JSON property `persistentDisks`
382
- # @return [Array<Google::Apis::CloudbillingV1beta::PersistentDisk>]
383
- attr_accessor :persistent_disks
384
-
385
- # Defines whether each instance is preemptible.
386
- # Corresponds to the JSON property `preemptible`
387
- # @return [Boolean]
388
- attr_accessor :preemptible
389
- alias_method :preemptible?, :preemptible
390
-
391
- # The [region](https://cloud.google.com/compute/docs/regions-zones) where the
392
- # VMs run. For example: "us-central1".
393
- # Corresponds to the JSON property `region`
242
+ # SKU group where the floating discount comes from.
243
+ # Corresponds to the JSON property `skuGroup`
394
244
  # @return [String]
395
- attr_accessor :region
245
+ attr_accessor :sku_group
396
246
 
397
247
  def initialize(**args)
398
248
  update!(**args)
@@ -400,35 +250,26 @@ module Google
400
250
 
401
251
  # Update properties of this object
402
252
  def update!(**args)
403
- @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
404
- @guest_accelerator = args[:guest_accelerator] if args.key?(:guest_accelerator)
405
- @instances_running = args[:instances_running] if args.key?(:instances_running)
406
- @licenses = args[:licenses] if args.key?(:licenses)
407
- @machine_type = args[:machine_type] if args.key?(:machine_type)
408
- @persistent_disks = args[:persistent_disks] if args.key?(:persistent_disks)
409
- @preemptible = args[:preemptible] if args.key?(:preemptible)
410
- @region = args[:region] if args.key?(:region)
253
+ @discount_percent = args[:discount_percent] if args.key?(:discount_percent)
254
+ @discount_scope_type = args[:discount_scope_type] if args.key?(:discount_scope_type)
255
+ @sku_group = args[:sku_group] if args.key?(:sku_group)
411
256
  end
412
257
  end
413
258
 
414
- # An estimated cost.
415
- class CostEstimate
259
+ # Response message for ListBillingAccountPrices.
260
+ class GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse
416
261
  include Google::Apis::Core::Hashable
417
262
 
418
- # The estimated credits applied.
419
- # Corresponds to the JSON property `creditEstimates`
420
- # @return [Array<Google::Apis::CloudbillingV1beta::CreditEstimate>]
421
- attr_accessor :credit_estimates
422
-
423
- # Represents an amount of money with its currency type.
424
- # Corresponds to the JSON property `netCostEstimate`
425
- # @return [Google::Apis::CloudbillingV1beta::Money]
426
- attr_accessor :net_cost_estimate
263
+ # The returned billing account prices.
264
+ # Corresponds to the JSON property `billingAccountPrices`
265
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice>]
266
+ attr_accessor :billing_account_prices
427
267
 
428
- # Represents an amount of money with its currency type.
429
- # Corresponds to the JSON property `preCreditCostEstimate`
430
- # @return [Google::Apis::CloudbillingV1beta::Money]
431
- attr_accessor :pre_credit_cost_estimate
268
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
269
+ # the next page. If this field is empty, there are no subsequent pages.
270
+ # Corresponds to the JSON property `nextPageToken`
271
+ # @return [String]
272
+ attr_accessor :next_page_token
432
273
 
433
274
  def initialize(**args)
434
275
  update!(**args)
@@ -436,98 +277,52 @@ module Google
436
277
 
437
278
  # Update properties of this object
438
279
  def update!(**args)
439
- @credit_estimates = args[:credit_estimates] if args.key?(:credit_estimates)
440
- @net_cost_estimate = args[:net_cost_estimate] if args.key?(:net_cost_estimate)
441
- @pre_credit_cost_estimate = args[:pre_credit_cost_estimate] if args.key?(:pre_credit_cost_estimate)
280
+ @billing_account_prices = args[:billing_account_prices] if args.key?(:billing_account_prices)
281
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
442
282
  end
443
283
  end
444
284
 
445
- # The result of a estimating the costs of a `CostScenario`.
446
- class CostEstimationResult
285
+ # Encapsulates a contract feature that the list price (DefaultPrice) will be
286
+ # used for the price if the current list price drops lower than the custom fixed
287
+ # price. Available to new contracts after March 21, 2022. Applies to all fixed
288
+ # price SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice,
289
+ # and MergedPrice.
290
+ class GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling
447
291
  include Google::Apis::Core::Hashable
448
292
 
449
- # Required. The ISO 4217 currency code for the cost estimate.
450
- # Corresponds to the JSON property `currencyCode`
451
- # @return [String]
452
- attr_accessor :currency_code
453
-
454
- # Required. Estimated costs for each idealized month of a `CostScenario`.
455
- # Corresponds to the JSON property `segmentCostEstimates`
456
- # @return [Array<Google::Apis::CloudbillingV1beta::SegmentCostEstimate>]
457
- attr_accessor :segment_cost_estimates
458
-
459
- # Required. Information about SKUs used in the estimate.
460
- # Corresponds to the JSON property `skus`
461
- # @return [Array<Google::Apis::CloudbillingV1beta::Sku>]
462
- attr_accessor :skus
463
-
464
293
  def initialize(**args)
465
294
  update!(**args)
466
295
  end
467
296
 
468
297
  # Update properties of this object
469
298
  def update!(**args)
470
- @currency_code = args[:currency_code] if args.key?(:currency_code)
471
- @segment_cost_estimates = args[:segment_cost_estimates] if args.key?(:segment_cost_estimates)
472
- @skus = args[:skus] if args.key?(:skus)
473
299
  end
474
300
  end
475
301
 
476
- # Encapsulates all the information needed to perform a cost estimate. It
477
- # includes a specification of the Google Cloud usage whose costs are estimated,
478
- # and configuration options.
479
- class CostScenario
302
+ # Encapsulates a price after merging from multiple sources. With merged tiers,
303
+ # each individual tier can be from a different source with different discount
304
+ # types.
305
+ class GoogleCloudBillingBillingaccountpricesV1betaMergedPrice
480
306
  include Google::Apis::Core::Hashable
481
307
 
482
- # New commitments to estimate the costs for. The cost of the commitments will be
483
- # included in the estimate result and discounts the commitment entitles will be
484
- # included in the workload cost estimates. A maximum of 100 workloads can be
485
- # provided.
486
- # Corresponds to the JSON property `commitments`
487
- # @return [Array<Google::Apis::CloudbillingV1beta::Commitment>]
488
- attr_accessor :commitments
489
-
490
- # Configuration for a CostScenario. Specifies how costs are calculated.
491
- # Corresponds to the JSON property `scenarioConfig`
492
- # @return [Google::Apis::CloudbillingV1beta::ScenarioConfig]
493
- attr_accessor :scenario_config
494
-
495
- # The Google Cloud usage whose costs are estimated. A maximum of 100 workloads
496
- # can be provided.
497
- # Corresponds to the JSON property `workloads`
498
- # @return [Array<Google::Apis::CloudbillingV1beta::Workload>]
499
- attr_accessor :workloads
500
-
501
308
  def initialize(**args)
502
309
  update!(**args)
503
310
  end
504
311
 
505
312
  # Update properties of this object
506
313
  def update!(**args)
507
- @commitments = args[:commitments] if args.key?(:commitments)
508
- @scenario_config = args[:scenario_config] if args.key?(:scenario_config)
509
- @workloads = args[:workloads] if args.key?(:workloads)
510
314
  end
511
315
  end
512
316
 
513
- # An estimated credit applied to the costs on a SKU.
514
- class CreditEstimate
317
+ # Encapsulates a price migrated from other SKUs.
318
+ class GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice
515
319
  include Google::Apis::Core::Hashable
516
320
 
517
- # Represents an amount of money with its currency type.
518
- # Corresponds to the JSON property `creditAmount`
519
- # @return [Google::Apis::CloudbillingV1beta::Money]
520
- attr_accessor :credit_amount
521
-
522
- # The credit description.
523
- # Corresponds to the JSON property `creditDescription`
524
- # @return [String]
525
- attr_accessor :credit_description
526
-
527
- # The credit type.
528
- # Corresponds to the JSON property `creditType`
321
+ # Source SKU where the discount is migrated from. Format: billingAccounts/`
322
+ # billing_account`/skus/`sku`
323
+ # Corresponds to the JSON property `sourceSku`
529
324
  # @return [String]
530
- attr_accessor :credit_type
325
+ attr_accessor :source_sku
531
326
 
532
327
  def initialize(**args)
533
328
  update!(**args)
@@ -535,1315 +330,65 @@ module Google
535
330
 
536
331
  # Update properties of this object
537
332
  def update!(**args)
538
- @credit_amount = args[:credit_amount] if args.key?(:credit_amount)
539
- @credit_description = args[:credit_description] if args.key?(:credit_description)
540
- @credit_type = args[:credit_type] if args.key?(:credit_type)
333
+ @source_sku = args[:source_sku] if args.key?(:source_sku)
541
334
  end
542
335
  end
543
336
 
544
- # Specification of a custom machine type.
545
- class CustomMachineType
337
+ # Encapsulates a price reason which contains background information about the
338
+ # origin of the price.
339
+ class GoogleCloudBillingBillingaccountpricesV1betaPriceReason
546
340
  include Google::Apis::Core::Hashable
547
341
 
548
- # Required. The machine series. Only certain [machine series](https://cloud.
549
- # google.com/compute/docs/general-purpose-machines#custom_machine_types) support
550
- # custom configurations. For example: "n1".
551
- # Corresponds to the JSON property `machineSeries`
552
- # @return [String]
553
- attr_accessor :machine_series
554
-
555
- # Required. Memory size of the VM in GB (2^30 bytes). Must be an increment of 0.
556
- # 25 (256 MB). Each [machine series](https://cloud.google.com/compute/docs/
557
- # machine-types#machine_type_comparison) has limitations on allowed values for
558
- # the ratio of memory-to-vCPU count.
559
- # Corresponds to the JSON property `memorySizeGb`
560
- # @return [Float]
561
- attr_accessor :memory_size_gb
562
-
563
- # Required. The number of vCPUs. The allowed values depend on the [machine
564
- # series](https://cloud.google.com/compute/docs/machine-types#
565
- # machine_type_comparison).
566
- # Corresponds to the JSON property `virtualCpuCount`
567
- # @return [Fixnum]
568
- attr_accessor :virtual_cpu_count
569
-
570
- def initialize(**args)
571
- update!(**args)
572
- end
342
+ # Encapsulates a default price which is the current list price.
343
+ # Corresponds to the JSON property `defaultPrice`
344
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice]
345
+ attr_accessor :default_price
573
346
 
574
- # Update properties of this object
575
- def update!(**args)
576
- @machine_series = args[:machine_series] if args.key?(:machine_series)
577
- @memory_size_gb = args[:memory_size_gb] if args.key?(:memory_size_gb)
578
- @virtual_cpu_count = args[:virtual_cpu_count] if args.key?(:virtual_cpu_count)
579
- end
580
- end
581
-
582
- # A representation of a decimal value, such as 2.5. Clients may convert values
583
- # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
584
- # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
585
- # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
586
- class Decimal
587
- include Google::Apis::Core::Hashable
588
-
589
- # The decimal value, as a string. The string representation consists of an
590
- # optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence of
591
- # zero or more decimal digits ("the integer"), optionally followed by a fraction,
592
- # optionally followed by an exponent. An empty string **should** be interpreted
593
- # as `0`. The fraction consists of a decimal point followed by zero or more
594
- # decimal digits. The string must contain at least one digit in either the
595
- # integer or the fraction. The number formed by the sign, the integer and the
596
- # fraction is referred to as the significand. The exponent consists of the
597
- # character `e` (`U+0065`) or `E` (`U+0045`) followed by one or more decimal
598
- # digits. Services **should** normalize decimal values before storing them by: -
599
- # Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). - Replacing a zero-
600
- # length integer value with `0` (`.5` -> `0.5`). - Coercing the exponent
601
- # character to upper-case, with explicit sign (`2.5e8` -> `2.5E+8`). - Removing
602
- # an explicitly-provided zero exponent (`2.5E0` -> `2.5`). Services **may**
603
- # perform additional normalization based on its own needs and the internal
604
- # decimal implementation selected, such as shifting the decimal point and
605
- # exponent value together (example: `2.5E-1` <-> `0.25`). Additionally, services
606
- # **may** preserve trailing zeroes in the fraction to indicate increased
607
- # precision, but are not required to do so. Note that only the `.` character is
608
- # supported to divide the integer and the fraction; `,` **should not** be
609
- # supported regardless of locale. Additionally, thousand separators **should not*
610
- # * be supported. If a service does support them, values **must** be normalized.
611
- # The ENBF grammar is: DecimalString = '' | [Sign] Significand [Exponent]; Sign =
612
- # '+' | '-'; Significand = Digits '.' | [Digits] '.' Digits; Exponent = ('e' | '
613
- # E') [Sign] Digits; Digits = ` '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '
614
- # 8' | '9' `; Services **should** clearly document the range of supported values,
615
- # the maximum supported precision (total number of digits), and, if applicable,
616
- # the scale (number of digits after the decimal point), as well as how it
617
- # behaves when receiving out-of-bounds values. Services **may** choose to accept
618
- # values passed as input even when the value has a higher precision or scale
619
- # than the service supports, and **should** round the value to fit the supported
620
- # scale. Alternatively, the service **may** error with `400 Bad Request` (`
621
- # INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should**
622
- # error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service
623
- # receives a value outside of the supported range.
624
- # Corresponds to the JSON property `value`
625
- # @return [String]
626
- attr_accessor :value
627
-
628
- def initialize(**args)
629
- update!(**args)
630
- end
631
-
632
- # Update properties of this object
633
- def update!(**args)
634
- @value = args[:value] if args.key?(:value)
635
- end
636
- end
637
-
638
- # Area contains dual locations.
639
- class DualRegional
640
- include Google::Apis::Core::Hashable
641
-
642
- # The [location name](https://cloud.google.com/storage/docs/locations#available-
643
- # locations) where the data is stored. For example: "asia1" for dual region.
644
- # Corresponds to the JSON property `name`
645
- # @return [String]
646
- attr_accessor :name
647
-
648
- def initialize(**args)
649
- update!(**args)
650
- end
651
-
652
- # Update properties of this object
653
- def update!(**args)
654
- @name = args[:name] if args.key?(:name)
655
- end
656
- end
657
-
658
- # Request for EstimateCostScenarioForBillingAccount.
659
- class EstimateCostScenarioForBillingAccountRequest
660
- include Google::Apis::Core::Hashable
661
-
662
- # Encapsulates all the information needed to perform a cost estimate. It
663
- # includes a specification of the Google Cloud usage whose costs are estimated,
664
- # and configuration options.
665
- # Corresponds to the JSON property `costScenario`
666
- # @return [Google::Apis::CloudbillingV1beta::CostScenario]
667
- attr_accessor :cost_scenario
668
-
669
- def initialize(**args)
670
- update!(**args)
671
- end
672
-
673
- # Update properties of this object
674
- def update!(**args)
675
- @cost_scenario = args[:cost_scenario] if args.key?(:cost_scenario)
676
- end
677
- end
678
-
679
- # Response for EstimateCostScenarioForBillingAccount
680
- class EstimateCostScenarioForBillingAccountResponse
681
- include Google::Apis::Core::Hashable
682
-
683
- # The result of a estimating the costs of a `CostScenario`.
684
- # Corresponds to the JSON property `costEstimationResult`
685
- # @return [Google::Apis::CloudbillingV1beta::CostEstimationResult]
686
- attr_accessor :cost_estimation_result
687
-
688
- def initialize(**args)
689
- update!(**args)
690
- end
691
-
692
- # Update properties of this object
693
- def update!(**args)
694
- @cost_estimation_result = args[:cost_estimation_result] if args.key?(:cost_estimation_result)
695
- end
696
- end
697
-
698
- # Request for EstimateCostScenarioWithListPrice.
699
- class EstimateCostScenarioWithListPriceRequest
700
- include Google::Apis::Core::Hashable
701
-
702
- # Encapsulates all the information needed to perform a cost estimate. It
703
- # includes a specification of the Google Cloud usage whose costs are estimated,
704
- # and configuration options.
705
- # Corresponds to the JSON property `costScenario`
706
- # @return [Google::Apis::CloudbillingV1beta::CostScenario]
707
- attr_accessor :cost_scenario
708
-
709
- def initialize(**args)
710
- update!(**args)
711
- end
712
-
713
- # Update properties of this object
714
- def update!(**args)
715
- @cost_scenario = args[:cost_scenario] if args.key?(:cost_scenario)
716
- end
717
- end
718
-
719
- # Response for EstimateCostScenarioWithListPrice
720
- class EstimateCostScenarioWithListPriceResponse
721
- include Google::Apis::Core::Hashable
722
-
723
- # The result of a estimating the costs of a `CostScenario`.
724
- # Corresponds to the JSON property `costEstimationResult`
725
- # @return [Google::Apis::CloudbillingV1beta::CostEstimationResult]
726
- attr_accessor :cost_estimation_result
727
-
728
- def initialize(**args)
729
- update!(**args)
730
- end
731
-
732
- # Update properties of this object
733
- def update!(**args)
734
- @cost_estimation_result = args[:cost_estimation_result] if args.key?(:cost_estimation_result)
735
- end
736
- end
737
-
738
- # Represents a point in time.
739
- class EstimationTimePoint
740
- include Google::Apis::Core::Hashable
741
-
742
- # The point in time, relative to the start of the time frame covered by the cost
743
- # estimate.
744
- # Corresponds to the JSON property `estimationTimeFrameOffset`
745
- # @return [String]
746
- attr_accessor :estimation_time_frame_offset
747
-
748
- def initialize(**args)
749
- update!(**args)
750
- end
751
-
752
- # Update properties of this object
753
- def update!(**args)
754
- @estimation_time_frame_offset = args[:estimation_time_frame_offset] if args.key?(:estimation_time_frame_offset)
755
- end
756
- end
757
-
758
- # Encapsulates the aggregation information such as aggregation level and
759
- # interval for a billing account price.
760
- class GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo
761
- include Google::Apis::Core::Hashable
762
-
763
- # Interval at which usage is aggregated to compute cost. Example: "MONTHLY"
764
- # interval indicates that usage is aggregated every month.
765
- # Corresponds to the JSON property `interval`
766
- # @return [String]
767
- attr_accessor :interval
768
-
769
- # Level at which usage is aggregated to compute cost. Example: "ACCOUNT" level
770
- # indicates that usage is aggregated across all projects in a single account.
771
- # Corresponds to the JSON property `level`
772
- # @return [String]
773
- attr_accessor :level
774
-
775
- def initialize(**args)
776
- update!(**args)
777
- end
778
-
779
- # Update properties of this object
780
- def update!(**args)
781
- @interval = args[:interval] if args.key?(:interval)
782
- @level = args[:level] if args.key?(:level)
783
- end
784
- end
785
-
786
- # Encapsulates the latest price for a billing account SKU.
787
- class GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice
788
- include Google::Apis::Core::Hashable
789
-
790
- # ISO-4217 currency code for the price.
791
- # Corresponds to the JSON property `currencyCode`
792
- # @return [String]
793
- attr_accessor :currency_code
794
-
795
- # Resource name for the latest billing account price.
796
- # Corresponds to the JSON property `name`
797
- # @return [String]
798
- attr_accessor :name
799
-
800
- # Encapsulates a price reason which contains background information about the
801
- # origin of the price.
802
- # Corresponds to the JSON property `priceReason`
803
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaPriceReason]
804
- attr_accessor :price_reason
805
-
806
- # Encapsulates a `Rate` price. Billing account SKUs with `Rate` price are
807
- # offered by pricing tiers. The price have 1 or more rate pricing tiers.
808
- # Corresponds to the JSON property `rate`
809
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaRate]
810
- attr_accessor :rate
811
-
812
- # Type of the price. The possible values are: ["unspecified", "rate"].
813
- # Corresponds to the JSON property `valueType`
814
- # @return [String]
815
- attr_accessor :value_type
816
-
817
- def initialize(**args)
818
- update!(**args)
819
- end
820
-
821
- # Update properties of this object
822
- def update!(**args)
823
- @currency_code = args[:currency_code] if args.key?(:currency_code)
824
- @name = args[:name] if args.key?(:name)
825
- @price_reason = args[:price_reason] if args.key?(:price_reason)
826
- @rate = args[:rate] if args.key?(:rate)
827
- @value_type = args[:value_type] if args.key?(:value_type)
828
- end
829
- end
830
-
831
- # Encapsulates a default price which is the current list price.
832
- class GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice
833
- include Google::Apis::Core::Hashable
834
-
835
- def initialize(**args)
836
- update!(**args)
837
- end
838
-
839
- # Update properties of this object
840
- def update!(**args)
841
- end
842
- end
843
-
844
- # Encapsulates a discount off the list price, anchored to the list price as of a
845
- # fixed time.
846
- class GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount
847
- include Google::Apis::Core::Hashable
848
-
849
- # A representation of a decimal value, such as 2.5. Clients may convert values
850
- # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
851
- # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
852
- # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
853
- # Corresponds to the JSON property `discountPercent`
854
- # @return [Google::Apis::CloudbillingV1beta::Decimal]
855
- attr_accessor :discount_percent
856
-
857
- # Type of the fixed discount scope which indicates the source of the discount.
858
- # It can have values such as 'unspecified' and 'sku-group'.
859
- # Corresponds to the JSON property `discountScopeType`
860
- # @return [String]
861
- attr_accessor :discount_scope_type
862
-
863
- # Time that the fixed discount is anchored to.
864
- # Corresponds to the JSON property `fixTime`
865
- # @return [String]
866
- attr_accessor :fix_time
867
-
868
- # SKU group where the fixed discount comes from.
869
- # Corresponds to the JSON property `skuGroup`
870
- # @return [String]
871
- attr_accessor :sku_group
872
-
873
- def initialize(**args)
874
- update!(**args)
875
- end
876
-
877
- # Update properties of this object
878
- def update!(**args)
879
- @discount_percent = args[:discount_percent] if args.key?(:discount_percent)
880
- @discount_scope_type = args[:discount_scope_type] if args.key?(:discount_scope_type)
881
- @fix_time = args[:fix_time] if args.key?(:fix_time)
882
- @sku_group = args[:sku_group] if args.key?(:sku_group)
883
- end
884
- end
885
-
886
- # Encapsulates a set fixed price applicable during the terms of a contract
887
- # agreement.
888
- class GoogleCloudBillingBillingaccountpricesV1betaFixedPrice
889
- include Google::Apis::Core::Hashable
890
-
891
- def initialize(**args)
892
- update!(**args)
893
- end
894
-
895
- # Update properties of this object
896
- def update!(**args)
897
- end
898
- end
899
-
900
- # Encapsulates a discount off the current list price, not anchored to any list
901
- # price as of a fixed time.
902
- class GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount
903
- include Google::Apis::Core::Hashable
904
-
905
- # A representation of a decimal value, such as 2.5. Clients may convert values
906
- # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
907
- # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
908
- # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
909
- # Corresponds to the JSON property `discountPercent`
910
- # @return [Google::Apis::CloudbillingV1beta::Decimal]
911
- attr_accessor :discount_percent
912
-
913
- # Type of the floating discount scope which indicates the source of the discount.
914
- # It can have values such as 'unspecified' and 'sku-group'.
915
- # Corresponds to the JSON property `discountScopeType`
916
- # @return [String]
917
- attr_accessor :discount_scope_type
918
-
919
- # SKU group where the floating discount comes from.
920
- # Corresponds to the JSON property `skuGroup`
921
- # @return [String]
922
- attr_accessor :sku_group
923
-
924
- def initialize(**args)
925
- update!(**args)
926
- end
927
-
928
- # Update properties of this object
929
- def update!(**args)
930
- @discount_percent = args[:discount_percent] if args.key?(:discount_percent)
931
- @discount_scope_type = args[:discount_scope_type] if args.key?(:discount_scope_type)
932
- @sku_group = args[:sku_group] if args.key?(:sku_group)
933
- end
934
- end
935
-
936
- # Response message for ListBillingAccountPrices.
937
- class GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse
938
- include Google::Apis::Core::Hashable
939
-
940
- # The returned billing account prices.
941
- # Corresponds to the JSON property `billingAccountPrices`
942
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice>]
943
- attr_accessor :billing_account_prices
944
-
945
- # Token that can be sent as `page_token` in the subsequent request to retrieve
946
- # the next page. If this field is empty, there are no subsequent pages.
947
- # Corresponds to the JSON property `nextPageToken`
948
- # @return [String]
949
- attr_accessor :next_page_token
950
-
951
- def initialize(**args)
952
- update!(**args)
953
- end
954
-
955
- # Update properties of this object
956
- def update!(**args)
957
- @billing_account_prices = args[:billing_account_prices] if args.key?(:billing_account_prices)
958
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
959
- end
960
- end
961
-
962
- # Encapsulates a contract feature that the list price (DefaultPrice) will be
963
- # used for the price if the current list price drops lower than the custom fixed
964
- # price. Available to new contracts after March 21, 2022. Applies to all fixed
965
- # price SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice,
966
- # and MergedPrice.
967
- class GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling
968
- include Google::Apis::Core::Hashable
969
-
970
- def initialize(**args)
971
- update!(**args)
972
- end
973
-
974
- # Update properties of this object
975
- def update!(**args)
976
- end
977
- end
978
-
979
- # Encapsulates a price after merging from multiple sources. With merged tiers,
980
- # each individual tier can be from a different source with different discount
981
- # types.
982
- class GoogleCloudBillingBillingaccountpricesV1betaMergedPrice
983
- include Google::Apis::Core::Hashable
984
-
985
- def initialize(**args)
986
- update!(**args)
987
- end
988
-
989
- # Update properties of this object
990
- def update!(**args)
991
- end
992
- end
993
-
994
- # Encapsulates a price migrated from other SKUs.
995
- class GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice
996
- include Google::Apis::Core::Hashable
997
-
998
- # Source SKU where the discount is migrated from. Format: billingAccounts/`
999
- # billing_account`/skus/`sku`
1000
- # Corresponds to the JSON property `sourceSku`
1001
- # @return [String]
1002
- attr_accessor :source_sku
1003
-
1004
- def initialize(**args)
1005
- update!(**args)
1006
- end
1007
-
1008
- # Update properties of this object
1009
- def update!(**args)
1010
- @source_sku = args[:source_sku] if args.key?(:source_sku)
1011
- end
1012
- end
1013
-
1014
- # Encapsulates a price reason which contains background information about the
1015
- # origin of the price.
1016
- class GoogleCloudBillingBillingaccountpricesV1betaPriceReason
1017
- include Google::Apis::Core::Hashable
1018
-
1019
- # Encapsulates a default price which is the current list price.
1020
- # Corresponds to the JSON property `defaultPrice`
1021
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice]
1022
- attr_accessor :default_price
1023
-
1024
- # Encapsulates a discount off the list price, anchored to the list price as of a
1025
- # fixed time.
1026
- # Corresponds to the JSON property `fixedDiscount`
1027
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount]
1028
- attr_accessor :fixed_discount
1029
-
1030
- # Encapsulates a set fixed price applicable during the terms of a contract
1031
- # agreement.
1032
- # Corresponds to the JSON property `fixedPrice`
1033
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFixedPrice]
1034
- attr_accessor :fixed_price
1035
-
1036
- # Encapsulates a discount off the current list price, not anchored to any list
1037
- # price as of a fixed time.
1038
- # Corresponds to the JSON property `floatingDiscount`
1039
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount]
1040
- attr_accessor :floating_discount
1041
-
1042
- # Encapsulates a contract feature that the list price (DefaultPrice) will be
1043
- # used for the price if the current list price drops lower than the custom fixed
1044
- # price. Available to new contracts after March 21, 2022. Applies to all fixed
1045
- # price SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice,
1046
- # and MergedPrice.
1047
- # Corresponds to the JSON property `listPriceAsCeiling`
1048
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling]
1049
- attr_accessor :list_price_as_ceiling
1050
-
1051
- # Encapsulates a price after merging from multiple sources. With merged tiers,
1052
- # each individual tier can be from a different source with different discount
1053
- # types.
1054
- # Corresponds to the JSON property `mergedPrice`
1055
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaMergedPrice]
1056
- attr_accessor :merged_price
1057
-
1058
- # Encapsulates a price migrated from other SKUs.
1059
- # Corresponds to the JSON property `migratedPrice`
1060
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice]
1061
- attr_accessor :migrated_price
1062
-
1063
- # Type of the price reason. It can have values such as 'unspecified', 'default-
1064
- # price', 'fixed-price', 'fixed-discount', 'floating-discount', 'migrated-price',
1065
- # 'merged-price', 'list-price-as-ceiling'.
1066
- # Corresponds to the JSON property `type`
1067
- # @return [String]
1068
- attr_accessor :type
1069
-
1070
- def initialize(**args)
1071
- update!(**args)
1072
- end
1073
-
1074
- # Update properties of this object
1075
- def update!(**args)
1076
- @default_price = args[:default_price] if args.key?(:default_price)
1077
- @fixed_discount = args[:fixed_discount] if args.key?(:fixed_discount)
1078
- @fixed_price = args[:fixed_price] if args.key?(:fixed_price)
1079
- @floating_discount = args[:floating_discount] if args.key?(:floating_discount)
1080
- @list_price_as_ceiling = args[:list_price_as_ceiling] if args.key?(:list_price_as_ceiling)
1081
- @merged_price = args[:merged_price] if args.key?(:merged_price)
1082
- @migrated_price = args[:migrated_price] if args.key?(:migrated_price)
1083
- @type = args[:type] if args.key?(:type)
1084
- end
1085
- end
1086
-
1087
- # Encapsulates a `Rate` price. Billing account SKUs with `Rate` price are
1088
- # offered by pricing tiers. The price have 1 or more rate pricing tiers.
1089
- class GoogleCloudBillingBillingaccountpricesV1betaRate
1090
- include Google::Apis::Core::Hashable
1091
-
1092
- # Encapsulates the aggregation information such as aggregation level and
1093
- # interval for a billing account price.
1094
- # Corresponds to the JSON property `aggregationInfo`
1095
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo]
1096
- attr_accessor :aggregation_info
1097
-
1098
- # All tiers associated with the `Rate` price.
1099
- # Corresponds to the JSON property `tiers`
1100
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaRateTier>]
1101
- attr_accessor :tiers
1102
-
1103
- # Encapsulates the unit information for a Rate
1104
- # Corresponds to the JSON property `unitInfo`
1105
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaUnitInfo]
1106
- attr_accessor :unit_info
1107
-
1108
- def initialize(**args)
1109
- update!(**args)
1110
- end
1111
-
1112
- # Update properties of this object
1113
- def update!(**args)
1114
- @aggregation_info = args[:aggregation_info] if args.key?(:aggregation_info)
1115
- @tiers = args[:tiers] if args.key?(:tiers)
1116
- @unit_info = args[:unit_info] if args.key?(:unit_info)
1117
- end
1118
- end
1119
-
1120
- # Encapsulates a rate price tier.
1121
- class GoogleCloudBillingBillingaccountpricesV1betaRateTier
1122
- include Google::Apis::Core::Hashable
1123
-
1124
- # Represents an amount of money with its currency type.
1125
- # Corresponds to the JSON property `contractPrice`
1126
- # @return [Google::Apis::CloudbillingV1beta::Money]
1127
- attr_accessor :contract_price
1128
-
1129
- # A representation of a decimal value, such as 2.5. Clients may convert values
1130
- # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
1131
- # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
1132
- # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
1133
- # Corresponds to the JSON property `effectiveDiscountPercent`
1134
- # @return [Google::Apis::CloudbillingV1beta::Decimal]
1135
- attr_accessor :effective_discount_percent
1136
-
1137
- # Represents an amount of money with its currency type.
1138
- # Corresponds to the JSON property `listPrice`
1139
- # @return [Google::Apis::CloudbillingV1beta::Money]
1140
- attr_accessor :list_price
1141
-
1142
- # A representation of a decimal value, such as 2.5. Clients may convert values
1143
- # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
1144
- # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
1145
- # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
1146
- # Corresponds to the JSON property `startAmount`
1147
- # @return [Google::Apis::CloudbillingV1beta::Decimal]
1148
- attr_accessor :start_amount
1149
-
1150
- def initialize(**args)
1151
- update!(**args)
1152
- end
1153
-
1154
- # Update properties of this object
1155
- def update!(**args)
1156
- @contract_price = args[:contract_price] if args.key?(:contract_price)
1157
- @effective_discount_percent = args[:effective_discount_percent] if args.key?(:effective_discount_percent)
1158
- @list_price = args[:list_price] if args.key?(:list_price)
1159
- @start_amount = args[:start_amount] if args.key?(:start_amount)
1160
- end
1161
- end
1162
-
1163
- # Encapsulates the unit information for a Rate
1164
- class GoogleCloudBillingBillingaccountpricesV1betaUnitInfo
1165
- include Google::Apis::Core::Hashable
1166
-
1167
- # Shorthand for the unit. Example: GiBy.mo.
1168
- # Corresponds to the JSON property `unit`
1169
- # @return [String]
1170
- attr_accessor :unit
1171
-
1172
- # Human-readable description of the unit. Example: gibibyte month.
1173
- # Corresponds to the JSON property `unitDescription`
1174
- # @return [String]
1175
- attr_accessor :unit_description
1176
-
1177
- # A representation of a decimal value, such as 2.5. Clients may convert values
1178
- # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
1179
- # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
1180
- # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
1181
- # Corresponds to the JSON property `unitQuantity`
1182
- # @return [Google::Apis::CloudbillingV1beta::Decimal]
1183
- attr_accessor :unit_quantity
1184
-
1185
- def initialize(**args)
1186
- update!(**args)
1187
- end
1188
-
1189
- # Update properties of this object
1190
- def update!(**args)
1191
- @unit = args[:unit] if args.key?(:unit)
1192
- @unit_description = args[:unit_description] if args.key?(:unit_description)
1193
- @unit_quantity = args[:unit_quantity] if args.key?(:unit_quantity)
1194
- end
1195
- end
1196
-
1197
- # Encapsulates a Google Cloud service visible to a billing account.
1198
- class GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService
1199
- include Google::Apis::Core::Hashable
1200
-
1201
- # Description of the BillingAccountService. Example: "BigQuery", "Compute Engine"
1202
- # .
1203
- # Corresponds to the JSON property `displayName`
1204
- # @return [String]
1205
- attr_accessor :display_name
1206
-
1207
- # Resource name for the BillingAccountService. Example: "billingAccounts/012345-
1208
- # 567890-ABCDEF/services/DA34-426B-A397".
1209
- # Corresponds to the JSON property `name`
1210
- # @return [String]
1211
- attr_accessor :name
1212
-
1213
- # Identifier for the service. It is the string after the collection identifier "
1214
- # services/". Example: "DA34-426B-A397".
1215
- # Corresponds to the JSON property `serviceId`
1216
- # @return [String]
1217
- attr_accessor :service_id
1218
-
1219
- def initialize(**args)
1220
- update!(**args)
1221
- end
1222
-
1223
- # Update properties of this object
1224
- def update!(**args)
1225
- @display_name = args[:display_name] if args.key?(:display_name)
1226
- @name = args[:name] if args.key?(:name)
1227
- @service_id = args[:service_id] if args.key?(:service_id)
1228
- end
1229
- end
1230
-
1231
- # Response message for ListBillingAccountServices.
1232
- class GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse
1233
- include Google::Apis::Core::Hashable
1234
-
1235
- # The returned billing account services.
1236
- # Corresponds to the JSON property `billingAccountServices`
1237
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService>]
1238
- attr_accessor :billing_account_services
1239
-
1240
- # Token that can be sent as `page_token` in the subsequent request to retrieve
1241
- # the next page. If this field is empty, there are no subsequent pages.
1242
- # Corresponds to the JSON property `nextPageToken`
1243
- # @return [String]
1244
- attr_accessor :next_page_token
1245
-
1246
- def initialize(**args)
1247
- update!(**args)
1248
- end
1249
-
1250
- # Update properties of this object
1251
- def update!(**args)
1252
- @billing_account_services = args[:billing_account_services] if args.key?(:billing_account_services)
1253
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1254
- end
1255
- end
1256
-
1257
- # Encapsulates a stock keeping (SKU) group visible to a billing account. A SKU
1258
- # group represents a collection of SKUs that are related to each other. For
1259
- # example, the `AI Platform APIs` SKU group includes SKUs from the Cloud
1260
- # Dialogflow API, the Cloud Text-to-Speech API, and additional related APIs.
1261
- class GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup
1262
- include Google::Apis::Core::Hashable
1263
-
1264
- # Description of the BillingAccountSkuGroup. Example: "A2 VMs (1 Year CUD)".
1265
- # Corresponds to the JSON property `displayName`
1266
- # @return [String]
1267
- attr_accessor :display_name
1268
-
1269
- # Resource name for the BillingAccountSkuGroup. Example: "billingAccounts/012345-
1270
- # 567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301".
1271
- # Corresponds to the JSON property `name`
1272
- # @return [String]
1273
- attr_accessor :name
1274
-
1275
- def initialize(**args)
1276
- update!(**args)
1277
- end
1278
-
1279
- # Update properties of this object
1280
- def update!(**args)
1281
- @display_name = args[:display_name] if args.key?(:display_name)
1282
- @name = args[:name] if args.key?(:name)
1283
- end
1284
- end
1285
-
1286
- # Response message for ListBillingAccountSkuGroups.
1287
- class GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse
1288
- include Google::Apis::Core::Hashable
1289
-
1290
- # The returned publicly listed billing account SKU groups.
1291
- # Corresponds to the JSON property `billingAccountSkuGroups`
1292
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup>]
1293
- attr_accessor :billing_account_sku_groups
1294
-
1295
- # Token that can be sent as `page_token` in the subsequent request to retrieve
1296
- # the next page. If this field is empty, there are no subsequent pages.
1297
- # Corresponds to the JSON property `nextPageToken`
1298
- # @return [String]
1299
- attr_accessor :next_page_token
1300
-
1301
- def initialize(**args)
1302
- update!(**args)
1303
- end
1304
-
1305
- # Update properties of this object
1306
- def update!(**args)
1307
- @billing_account_sku_groups = args[:billing_account_sku_groups] if args.key?(:billing_account_sku_groups)
1308
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1309
- end
1310
- end
1311
-
1312
- # Encapsulates a SKU that is part of a billing account SKU group.
1313
- class GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku
1314
- include Google::Apis::Core::Hashable
1315
-
1316
- # BillingAccountService that the BillingAccountSkuGroupSku belongs to.
1317
- # Corresponds to the JSON property `billingAccountService`
1318
- # @return [String]
1319
- attr_accessor :billing_account_service
1320
-
1321
- # Description of the BillingAccountSkuGroupSku. Example: "A2 Instance Core
1322
- # running in Hong Kong".
1323
- # Corresponds to the JSON property `displayName`
1324
- # @return [String]
1325
- attr_accessor :display_name
1326
-
1327
- # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1328
- # east4` or `European Union`.
1329
- # Corresponds to the JSON property `geoTaxonomy`
1330
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy]
1331
- attr_accessor :geo_taxonomy
1332
-
1333
- # Resource name for the BillingAccountSkuGroupSku. Example: "billingAccounts/
1334
- # 012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301/skus/AA95-
1335
- # CD31-42FE".
1336
- # Corresponds to the JSON property `name`
1337
- # @return [String]
1338
- attr_accessor :name
1339
-
1340
- # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1341
- # , and others.
1342
- # Corresponds to the JSON property `productTaxonomy`
1343
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy]
1344
- attr_accessor :product_taxonomy
1345
-
1346
- # Unique identifier for the SKU. It is the string after the collection
1347
- # identifier "skus/" Example: "AA95-CD31-42FE".
1348
- # Corresponds to the JSON property `skuId`
1349
- # @return [String]
1350
- attr_accessor :sku_id
1351
-
1352
- def initialize(**args)
1353
- update!(**args)
1354
- end
1355
-
1356
- # Update properties of this object
1357
- def update!(**args)
1358
- @billing_account_service = args[:billing_account_service] if args.key?(:billing_account_service)
1359
- @display_name = args[:display_name] if args.key?(:display_name)
1360
- @geo_taxonomy = args[:geo_taxonomy] if args.key?(:geo_taxonomy)
1361
- @name = args[:name] if args.key?(:name)
1362
- @product_taxonomy = args[:product_taxonomy] if args.key?(:product_taxonomy)
1363
- @sku_id = args[:sku_id] if args.key?(:sku_id)
1364
- end
1365
- end
1366
-
1367
- # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1368
- # east4` or `European Union`.
1369
- class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy
1370
- include Google::Apis::Core::Hashable
1371
-
1372
- # Encapsulates a global geographic taxonomy.
1373
- # Corresponds to the JSON property `globalMetadata`
1374
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal]
1375
- attr_accessor :global_metadata
1376
-
1377
- # Encapsulates a multi-regional geographic taxonomy.
1378
- # Corresponds to the JSON property `multiRegionalMetadata`
1379
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional]
1380
- attr_accessor :multi_regional_metadata
1381
-
1382
- # Encapsulates a regional geographic taxonomy.
1383
- # Corresponds to the JSON property `regionalMetadata`
1384
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional]
1385
- attr_accessor :regional_metadata
1386
-
1387
- # Type of geographic taxonomy associated with the billing account SKU group SKU.
1388
- # Corresponds to the JSON property `type`
1389
- # @return [String]
1390
- attr_accessor :type
1391
-
1392
- def initialize(**args)
1393
- update!(**args)
1394
- end
1395
-
1396
- # Update properties of this object
1397
- def update!(**args)
1398
- @global_metadata = args[:global_metadata] if args.key?(:global_metadata)
1399
- @multi_regional_metadata = args[:multi_regional_metadata] if args.key?(:multi_regional_metadata)
1400
- @regional_metadata = args[:regional_metadata] if args.key?(:regional_metadata)
1401
- @type = args[:type] if args.key?(:type)
1402
- end
1403
- end
1404
-
1405
- # Encapsulates a global geographic taxonomy.
1406
- class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal
1407
- include Google::Apis::Core::Hashable
1408
-
1409
- def initialize(**args)
1410
- update!(**args)
1411
- end
1412
-
1413
- # Update properties of this object
1414
- def update!(**args)
1415
- end
1416
- end
1417
-
1418
- # Encapsulates a multi-regional geographic taxonomy.
1419
- class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional
1420
- include Google::Apis::Core::Hashable
1421
-
1422
- # Google Cloud regions associated with the multi-regional geographic taxonomy.
1423
- # Corresponds to the JSON property `regions`
1424
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion>]
1425
- attr_accessor :regions
1426
-
1427
- def initialize(**args)
1428
- update!(**args)
1429
- end
1430
-
1431
- # Update properties of this object
1432
- def update!(**args)
1433
- @regions = args[:regions] if args.key?(:regions)
1434
- end
1435
- end
1436
-
1437
- # Encapsulates a Google Cloud region.
1438
- class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion
1439
- include Google::Apis::Core::Hashable
1440
-
1441
- # Description of a Google Cloud region. Example: "us-west2".
1442
- # Corresponds to the JSON property `region`
1443
- # @return [String]
1444
- attr_accessor :region
1445
-
1446
- def initialize(**args)
1447
- update!(**args)
1448
- end
1449
-
1450
- # Update properties of this object
1451
- def update!(**args)
1452
- @region = args[:region] if args.key?(:region)
1453
- end
1454
- end
1455
-
1456
- # Encapsulates a regional geographic taxonomy.
1457
- class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional
1458
- include Google::Apis::Core::Hashable
1459
-
1460
- # Encapsulates a Google Cloud region.
1461
- # Corresponds to the JSON property `region`
1462
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion]
1463
- attr_accessor :region
1464
-
1465
- def initialize(**args)
1466
- update!(**args)
1467
- end
1468
-
1469
- # Update properties of this object
1470
- def update!(**args)
1471
- @region = args[:region] if args.key?(:region)
1472
- end
1473
- end
1474
-
1475
- # Response message for ListBillingAccountSkuGroupSkus.
1476
- class GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse
1477
- include Google::Apis::Core::Hashable
1478
-
1479
- # The returned billing account SKU group SKUs.
1480
- # Corresponds to the JSON property `billingAccountSkuGroupSkus`
1481
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku>]
1482
- attr_accessor :billing_account_sku_group_skus
1483
-
1484
- # Token that can be sent as `page_token` in the subsequent request to retrieve
1485
- # the next page. If this field is empty, there are no subsequent pages.
1486
- # Corresponds to the JSON property `nextPageToken`
1487
- # @return [String]
1488
- attr_accessor :next_page_token
1489
-
1490
- def initialize(**args)
1491
- update!(**args)
1492
- end
1493
-
1494
- # Update properties of this object
1495
- def update!(**args)
1496
- @billing_account_sku_group_skus = args[:billing_account_sku_group_skus] if args.key?(:billing_account_sku_group_skus)
1497
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1498
- end
1499
- end
1500
-
1501
- # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1502
- # , and others.
1503
- class GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy
1504
- include Google::Apis::Core::Hashable
1505
-
1506
- # All product categories that the billing account SKU group SKU belong to.
1507
- # Corresponds to the JSON property `taxonomyCategories`
1508
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory>]
1509
- attr_accessor :taxonomy_categories
1510
-
1511
- def initialize(**args)
1512
- update!(**args)
1513
- end
1514
-
1515
- # Update properties of this object
1516
- def update!(**args)
1517
- @taxonomy_categories = args[:taxonomy_categories] if args.key?(:taxonomy_categories)
1518
- end
1519
- end
1520
-
1521
- # Encapsulates a product category.
1522
- class GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory
1523
- include Google::Apis::Core::Hashable
1524
-
1525
- # Name of the product category.
1526
- # Corresponds to the JSON property `category`
1527
- # @return [String]
1528
- attr_accessor :category
1529
-
1530
- def initialize(**args)
1531
- update!(**args)
1532
- end
1533
-
1534
- # Update properties of this object
1535
- def update!(**args)
1536
- @category = args[:category] if args.key?(:category)
1537
- end
1538
- end
1539
-
1540
- # Encapsulates a stock keeping unit (SKU) visible to a billing account. A SKU
1541
- # distinctly identifies a resource that you can purchase. For a list of
1542
- # available SKUs, see [SKUs](https://cloud.google.com/skus).
1543
- class GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku
1544
- include Google::Apis::Core::Hashable
1545
-
1546
- # BillingAccountService that the BillingAccountSku belongs to.
1547
- # Corresponds to the JSON property `billingAccountService`
1548
- # @return [String]
1549
- attr_accessor :billing_account_service
1550
-
1551
- # Description of the BillingAccountSku. Example: "A2 Instance Core running in
1552
- # Hong Kong".
1553
- # Corresponds to the JSON property `displayName`
1554
- # @return [String]
1555
- attr_accessor :display_name
1556
-
1557
- # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1558
- # east4` or `European Union`.
1559
- # Corresponds to the JSON property `geoTaxonomy`
1560
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy]
1561
- attr_accessor :geo_taxonomy
1562
-
1563
- # Resource name for the BillingAccountSku. Example: "billingAccounts/012345-
1564
- # 567890-ABCDEF/skus/AA95-CD31-42FE".
1565
- # Corresponds to the JSON property `name`
1566
- # @return [String]
1567
- attr_accessor :name
1568
-
1569
- # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1570
- # , and others.
1571
- # Corresponds to the JSON property `productTaxonomy`
1572
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy]
1573
- attr_accessor :product_taxonomy
1574
-
1575
- # Unique identifier for the SKU. It is the string after the collection
1576
- # identifier "skus/" Example: "AA95-CD31-42FE".
1577
- # Corresponds to the JSON property `skuId`
1578
- # @return [String]
1579
- attr_accessor :sku_id
1580
-
1581
- def initialize(**args)
1582
- update!(**args)
1583
- end
1584
-
1585
- # Update properties of this object
1586
- def update!(**args)
1587
- @billing_account_service = args[:billing_account_service] if args.key?(:billing_account_service)
1588
- @display_name = args[:display_name] if args.key?(:display_name)
1589
- @geo_taxonomy = args[:geo_taxonomy] if args.key?(:geo_taxonomy)
1590
- @name = args[:name] if args.key?(:name)
1591
- @product_taxonomy = args[:product_taxonomy] if args.key?(:product_taxonomy)
1592
- @sku_id = args[:sku_id] if args.key?(:sku_id)
1593
- end
1594
- end
1595
-
1596
- # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1597
- # east4` or `European Union`.
1598
- class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy
1599
- include Google::Apis::Core::Hashable
1600
-
1601
- # Encapsulates a global geographic taxonomy.
1602
- # Corresponds to the JSON property `globalMetadata`
1603
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal]
1604
- attr_accessor :global_metadata
1605
-
1606
- # Encapsulates a multi-regional geographic taxonomy.
1607
- # Corresponds to the JSON property `multiRegionalMetadata`
1608
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional]
1609
- attr_accessor :multi_regional_metadata
1610
-
1611
- # Encapsulates a regional geographic taxonomy.
1612
- # Corresponds to the JSON property `regionalMetadata`
1613
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional]
1614
- attr_accessor :regional_metadata
1615
-
1616
- # Type of geographic taxonomy associated with the billing account SKU.
1617
- # Corresponds to the JSON property `type`
1618
- # @return [String]
1619
- attr_accessor :type
1620
-
1621
- def initialize(**args)
1622
- update!(**args)
1623
- end
1624
-
1625
- # Update properties of this object
1626
- def update!(**args)
1627
- @global_metadata = args[:global_metadata] if args.key?(:global_metadata)
1628
- @multi_regional_metadata = args[:multi_regional_metadata] if args.key?(:multi_regional_metadata)
1629
- @regional_metadata = args[:regional_metadata] if args.key?(:regional_metadata)
1630
- @type = args[:type] if args.key?(:type)
1631
- end
1632
- end
1633
-
1634
- # Encapsulates a global geographic taxonomy.
1635
- class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal
1636
- include Google::Apis::Core::Hashable
1637
-
1638
- def initialize(**args)
1639
- update!(**args)
1640
- end
1641
-
1642
- # Update properties of this object
1643
- def update!(**args)
1644
- end
1645
- end
1646
-
1647
- # Encapsulates a multi-regional geographic taxonomy.
1648
- class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional
1649
- include Google::Apis::Core::Hashable
1650
-
1651
- # Google Cloud regions associated with the multi-regional geographic taxonomy.
1652
- # Corresponds to the JSON property `regions`
1653
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion>]
1654
- attr_accessor :regions
1655
-
1656
- def initialize(**args)
1657
- update!(**args)
1658
- end
1659
-
1660
- # Update properties of this object
1661
- def update!(**args)
1662
- @regions = args[:regions] if args.key?(:regions)
1663
- end
1664
- end
1665
-
1666
- # Encapsulates a Google Cloud region.
1667
- class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion
1668
- include Google::Apis::Core::Hashable
1669
-
1670
- # Description of a Google Cloud region. Example: "us-west2".
1671
- # Corresponds to the JSON property `region`
1672
- # @return [String]
1673
- attr_accessor :region
1674
-
1675
- def initialize(**args)
1676
- update!(**args)
1677
- end
1678
-
1679
- # Update properties of this object
1680
- def update!(**args)
1681
- @region = args[:region] if args.key?(:region)
1682
- end
1683
- end
1684
-
1685
- # Encapsulates a regional geographic taxonomy.
1686
- class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional
1687
- include Google::Apis::Core::Hashable
1688
-
1689
- # Encapsulates a Google Cloud region.
1690
- # Corresponds to the JSON property `region`
1691
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion]
1692
- attr_accessor :region
1693
-
1694
- def initialize(**args)
1695
- update!(**args)
1696
- end
1697
-
1698
- # Update properties of this object
1699
- def update!(**args)
1700
- @region = args[:region] if args.key?(:region)
1701
- end
1702
- end
1703
-
1704
- # Response message for ListBillingAccountSkus.
1705
- class GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse
1706
- include Google::Apis::Core::Hashable
1707
-
1708
- # The returned billing account SKUs.
1709
- # Corresponds to the JSON property `billingAccountSkus`
1710
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku>]
1711
- attr_accessor :billing_account_skus
1712
-
1713
- # Token that can be sent as `page_token` in the subsequent request to retrieve
1714
- # the next page. If this field is empty, there are no subsequent pages.
1715
- # Corresponds to the JSON property `nextPageToken`
1716
- # @return [String]
1717
- attr_accessor :next_page_token
1718
-
1719
- def initialize(**args)
1720
- update!(**args)
1721
- end
1722
-
1723
- # Update properties of this object
1724
- def update!(**args)
1725
- @billing_account_skus = args[:billing_account_skus] if args.key?(:billing_account_skus)
1726
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1727
- end
1728
- end
1729
-
1730
- # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1731
- # , and others.
1732
- class GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy
1733
- include Google::Apis::Core::Hashable
1734
-
1735
- # All product categories that the billing account SKU belong to.
1736
- # Corresponds to the JSON property `taxonomyCategories`
1737
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory>]
1738
- attr_accessor :taxonomy_categories
1739
-
1740
- def initialize(**args)
1741
- update!(**args)
1742
- end
1743
-
1744
- # Update properties of this object
1745
- def update!(**args)
1746
- @taxonomy_categories = args[:taxonomy_categories] if args.key?(:taxonomy_categories)
1747
- end
1748
- end
1749
-
1750
- # Encapsulates a product category.
1751
- class GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory
1752
- include Google::Apis::Core::Hashable
1753
-
1754
- # Name of the product category.
1755
- # Corresponds to the JSON property `category`
1756
- # @return [String]
1757
- attr_accessor :category
1758
-
1759
- def initialize(**args)
1760
- update!(**args)
1761
- end
1762
-
1763
- # Update properties of this object
1764
- def update!(**args)
1765
- @category = args[:category] if args.key?(:category)
1766
- end
1767
- end
1768
-
1769
- # Encapsulates the aggregation information such as aggregation level and
1770
- # interval for a price.
1771
- class GoogleCloudBillingPricesV1betaAggregationInfo
1772
- include Google::Apis::Core::Hashable
1773
-
1774
- # Interval at which usage is aggregated to compute cost. Example: "MONTHLY"
1775
- # interval indicates that usage is aggregated every month.
1776
- # Corresponds to the JSON property `interval`
1777
- # @return [String]
1778
- attr_accessor :interval
1779
-
1780
- # Level at which usage is aggregated to compute cost. Example: "ACCOUNT" level
1781
- # indicates that usage is aggregated across all projects in a single account.
1782
- # Corresponds to the JSON property `level`
1783
- # @return [String]
1784
- attr_accessor :level
1785
-
1786
- def initialize(**args)
1787
- update!(**args)
1788
- end
1789
-
1790
- # Update properties of this object
1791
- def update!(**args)
1792
- @interval = args[:interval] if args.key?(:interval)
1793
- @level = args[:level] if args.key?(:level)
1794
- end
1795
- end
1796
-
1797
- # Response message for ListPrices.
1798
- class GoogleCloudBillingPricesV1betaListPricesResponse
1799
- include Google::Apis::Core::Hashable
1800
-
1801
- # Token that can be sent as `page_token` in the subsequent request to retrieve
1802
- # the next page. If this field is empty, there are no subsequent pages.
1803
- # Corresponds to the JSON property `nextPageToken`
1804
- # @return [String]
1805
- attr_accessor :next_page_token
1806
-
1807
- # The returned publicly listed prices.
1808
- # Corresponds to the JSON property `prices`
1809
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaPrice>]
1810
- attr_accessor :prices
1811
-
1812
- def initialize(**args)
1813
- update!(**args)
1814
- end
347
+ # Encapsulates a discount off the list price, anchored to the list price as of a
348
+ # fixed time.
349
+ # Corresponds to the JSON property `fixedDiscount`
350
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount]
351
+ attr_accessor :fixed_discount
1815
352
 
1816
- # Update properties of this object
1817
- def update!(**args)
1818
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1819
- @prices = args[:prices] if args.key?(:prices)
1820
- end
1821
- end
353
+ # Encapsulates a set fixed price applicable during the terms of a contract
354
+ # agreement.
355
+ # Corresponds to the JSON property `fixedPrice`
356
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFixedPrice]
357
+ attr_accessor :fixed_price
1822
358
 
1823
- # Encapsulates the latest price for a SKU.
1824
- class GoogleCloudBillingPricesV1betaPrice
1825
- include Google::Apis::Core::Hashable
359
+ # Encapsulates a discount off the current list price, not anchored to any list
360
+ # price as of a fixed time.
361
+ # Corresponds to the JSON property `floatingDiscount`
362
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount]
363
+ attr_accessor :floating_discount
1826
364
 
1827
- # ISO-4217 currency code for the price.
1828
- # Corresponds to the JSON property `currencyCode`
1829
- # @return [String]
1830
- attr_accessor :currency_code
365
+ # Encapsulates a contract feature that the list price (DefaultPrice) will be
366
+ # used for the price if the current list price drops lower than the custom fixed
367
+ # price. Available to new contracts after March 21, 2022. Applies to all fixed
368
+ # price SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice,
369
+ # and MergedPrice.
370
+ # Corresponds to the JSON property `listPriceAsCeiling`
371
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling]
372
+ attr_accessor :list_price_as_ceiling
1831
373
 
1832
- # Resource name for the latest price.
1833
- # Corresponds to the JSON property `name`
1834
- # @return [String]
1835
- attr_accessor :name
374
+ # Encapsulates a price after merging from multiple sources. With merged tiers,
375
+ # each individual tier can be from a different source with different discount
376
+ # types.
377
+ # Corresponds to the JSON property `mergedPrice`
378
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaMergedPrice]
379
+ attr_accessor :merged_price
1836
380
 
1837
- # Encapsulates a `Rate` price. SKUs with `Rate` price are offered by pricing
1838
- # tiers. The price have 1 or more rate pricing tiers.
1839
- # Corresponds to the JSON property `rate`
1840
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaRate]
1841
- attr_accessor :rate
381
+ # Encapsulates a price migrated from other SKUs.
382
+ # Corresponds to the JSON property `migratedPrice`
383
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice]
384
+ attr_accessor :migrated_price
1842
385
 
1843
- # Type of the price. It can have values: ["unspecified", "rate"].
1844
- # Corresponds to the JSON property `valueType`
386
+ # Type of the price reason. It can have values such as 'unspecified', 'default-
387
+ # price', 'fixed-price', 'fixed-discount', 'floating-discount', 'migrated-price',
388
+ # 'merged-price', 'list-price-as-ceiling'.
389
+ # Corresponds to the JSON property `type`
1845
390
  # @return [String]
1846
- attr_accessor :value_type
391
+ attr_accessor :type
1847
392
 
1848
393
  def initialize(**args)
1849
394
  update!(**args)
@@ -1851,32 +396,36 @@ module Google
1851
396
 
1852
397
  # Update properties of this object
1853
398
  def update!(**args)
1854
- @currency_code = args[:currency_code] if args.key?(:currency_code)
1855
- @name = args[:name] if args.key?(:name)
1856
- @rate = args[:rate] if args.key?(:rate)
1857
- @value_type = args[:value_type] if args.key?(:value_type)
399
+ @default_price = args[:default_price] if args.key?(:default_price)
400
+ @fixed_discount = args[:fixed_discount] if args.key?(:fixed_discount)
401
+ @fixed_price = args[:fixed_price] if args.key?(:fixed_price)
402
+ @floating_discount = args[:floating_discount] if args.key?(:floating_discount)
403
+ @list_price_as_ceiling = args[:list_price_as_ceiling] if args.key?(:list_price_as_ceiling)
404
+ @merged_price = args[:merged_price] if args.key?(:merged_price)
405
+ @migrated_price = args[:migrated_price] if args.key?(:migrated_price)
406
+ @type = args[:type] if args.key?(:type)
1858
407
  end
1859
408
  end
1860
409
 
1861
- # Encapsulates a `Rate` price. SKUs with `Rate` price are offered by pricing
1862
- # tiers. The price have 1 or more rate pricing tiers.
1863
- class GoogleCloudBillingPricesV1betaRate
410
+ # Encapsulates a `Rate` price. Billing account SKUs with `Rate` price are
411
+ # offered by pricing tiers. The price have 1 or more rate pricing tiers.
412
+ class GoogleCloudBillingBillingaccountpricesV1betaRate
1864
413
  include Google::Apis::Core::Hashable
1865
414
 
1866
415
  # Encapsulates the aggregation information such as aggregation level and
1867
- # interval for a price.
416
+ # interval for a billing account price.
1868
417
  # Corresponds to the JSON property `aggregationInfo`
1869
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaAggregationInfo]
418
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo]
1870
419
  attr_accessor :aggregation_info
1871
420
 
1872
421
  # All tiers associated with the `Rate` price.
1873
422
  # Corresponds to the JSON property `tiers`
1874
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaRateTier>]
423
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaRateTier>]
1875
424
  attr_accessor :tiers
1876
425
 
1877
426
  # Encapsulates the unit information for a Rate
1878
427
  # Corresponds to the JSON property `unitInfo`
1879
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaUnitInfo]
428
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaUnitInfo]
1880
429
  attr_accessor :unit_info
1881
430
 
1882
431
  def initialize(**args)
@@ -1892,9 +441,22 @@ module Google
1892
441
  end
1893
442
 
1894
443
  # Encapsulates a rate price tier.
1895
- class GoogleCloudBillingPricesV1betaRateTier
444
+ class GoogleCloudBillingBillingaccountpricesV1betaRateTier
1896
445
  include Google::Apis::Core::Hashable
1897
446
 
447
+ # Represents an amount of money with its currency type.
448
+ # Corresponds to the JSON property `contractPrice`
449
+ # @return [Google::Apis::CloudbillingV1beta::Money]
450
+ attr_accessor :contract_price
451
+
452
+ # A representation of a decimal value, such as 2.5. Clients may convert values
453
+ # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
454
+ # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
455
+ # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
456
+ # Corresponds to the JSON property `effectiveDiscountPercent`
457
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
458
+ attr_accessor :effective_discount_percent
459
+
1898
460
  # Represents an amount of money with its currency type.
1899
461
  # Corresponds to the JSON property `listPrice`
1900
462
  # @return [Google::Apis::CloudbillingV1beta::Money]
@@ -1914,13 +476,15 @@ module Google
1914
476
 
1915
477
  # Update properties of this object
1916
478
  def update!(**args)
479
+ @contract_price = args[:contract_price] if args.key?(:contract_price)
480
+ @effective_discount_percent = args[:effective_discount_percent] if args.key?(:effective_discount_percent)
1917
481
  @list_price = args[:list_price] if args.key?(:list_price)
1918
482
  @start_amount = args[:start_amount] if args.key?(:start_amount)
1919
483
  end
1920
484
  end
1921
485
 
1922
486
  # Encapsulates the unit information for a Rate
1923
- class GoogleCloudBillingPricesV1betaUnitInfo
487
+ class GoogleCloudBillingBillingaccountpricesV1betaUnitInfo
1924
488
  include Google::Apis::Core::Hashable
1925
489
 
1926
490
  # Shorthand for the unit. Example: GiBy.mo.
@@ -1953,20 +517,109 @@ module Google
1953
517
  end
1954
518
  end
1955
519
 
1956
- # Response message for ListSkuGroups.
1957
- class GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse
520
+ # Encapsulates a Google Cloud service visible to a billing account.
521
+ class GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService
522
+ include Google::Apis::Core::Hashable
523
+
524
+ # Description of the BillingAccountService. Example: "BigQuery", "Compute Engine"
525
+ # .
526
+ # Corresponds to the JSON property `displayName`
527
+ # @return [String]
528
+ attr_accessor :display_name
529
+
530
+ # Resource name for the BillingAccountService. Example: "billingAccounts/012345-
531
+ # 567890-ABCDEF/services/DA34-426B-A397".
532
+ # Corresponds to the JSON property `name`
533
+ # @return [String]
534
+ attr_accessor :name
535
+
536
+ # Identifier for the service. It is the string after the collection identifier "
537
+ # services/". Example: "DA34-426B-A397".
538
+ # Corresponds to the JSON property `serviceId`
539
+ # @return [String]
540
+ attr_accessor :service_id
541
+
542
+ def initialize(**args)
543
+ update!(**args)
544
+ end
545
+
546
+ # Update properties of this object
547
+ def update!(**args)
548
+ @display_name = args[:display_name] if args.key?(:display_name)
549
+ @name = args[:name] if args.key?(:name)
550
+ @service_id = args[:service_id] if args.key?(:service_id)
551
+ end
552
+ end
553
+
554
+ # Response message for ListBillingAccountServices.
555
+ class GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse
1958
556
  include Google::Apis::Core::Hashable
1959
557
 
558
+ # The returned billing account services.
559
+ # Corresponds to the JSON property `billingAccountServices`
560
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService>]
561
+ attr_accessor :billing_account_services
562
+
1960
563
  # Token that can be sent as `page_token` in the subsequent request to retrieve
1961
564
  # the next page. If this field is empty, there are no subsequent pages.
1962
565
  # Corresponds to the JSON property `nextPageToken`
1963
566
  # @return [String]
1964
567
  attr_accessor :next_page_token
1965
568
 
1966
- # The returned publicly listed SKU groups.
1967
- # Corresponds to the JSON property `skuGroups`
1968
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupsV1betaSkuGroup>]
1969
- attr_accessor :sku_groups
569
+ def initialize(**args)
570
+ update!(**args)
571
+ end
572
+
573
+ # Update properties of this object
574
+ def update!(**args)
575
+ @billing_account_services = args[:billing_account_services] if args.key?(:billing_account_services)
576
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
577
+ end
578
+ end
579
+
580
+ # Encapsulates a stock keeping (SKU) group visible to a billing account. A SKU
581
+ # group represents a collection of SKUs that are related to each other. For
582
+ # example, the `AI Platform APIs` SKU group includes SKUs from the Cloud
583
+ # Dialogflow API, the Cloud Text-to-Speech API, and additional related APIs.
584
+ class GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup
585
+ include Google::Apis::Core::Hashable
586
+
587
+ # Description of the BillingAccountSkuGroup. Example: "A2 VMs (1 Year CUD)".
588
+ # Corresponds to the JSON property `displayName`
589
+ # @return [String]
590
+ attr_accessor :display_name
591
+
592
+ # Resource name for the BillingAccountSkuGroup. Example: "billingAccounts/012345-
593
+ # 567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301".
594
+ # Corresponds to the JSON property `name`
595
+ # @return [String]
596
+ attr_accessor :name
597
+
598
+ def initialize(**args)
599
+ update!(**args)
600
+ end
601
+
602
+ # Update properties of this object
603
+ def update!(**args)
604
+ @display_name = args[:display_name] if args.key?(:display_name)
605
+ @name = args[:name] if args.key?(:name)
606
+ end
607
+ end
608
+
609
+ # Response message for ListBillingAccountSkuGroups.
610
+ class GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse
611
+ include Google::Apis::Core::Hashable
612
+
613
+ # The returned publicly listed billing account SKU groups.
614
+ # Corresponds to the JSON property `billingAccountSkuGroups`
615
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup>]
616
+ attr_accessor :billing_account_sku_groups
617
+
618
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
619
+ # the next page. If this field is empty, there are no subsequent pages.
620
+ # Corresponds to the JSON property `nextPageToken`
621
+ # @return [String]
622
+ attr_accessor :next_page_token
1970
623
 
1971
624
  def initialize(**args)
1972
625
  update!(**args)
@@ -1974,61 +627,87 @@ module Google
1974
627
 
1975
628
  # Update properties of this object
1976
629
  def update!(**args)
630
+ @billing_account_sku_groups = args[:billing_account_sku_groups] if args.key?(:billing_account_sku_groups)
1977
631
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1978
- @sku_groups = args[:sku_groups] if args.key?(:sku_groups)
1979
632
  end
1980
633
  end
1981
634
 
1982
- # Encapsulates a publicly listed stock keeping unit (SKU) group. A SKU group
1983
- # represents a collection of SKUs that are related to each other. For example,
1984
- # the `AI Platform APIs` SKU group includes SKUs from the Cloud Dialogflow API,
1985
- # the Cloud Text-to-Speech API, and additional related APIs.
1986
- class GoogleCloudBillingSkugroupsV1betaSkuGroup
635
+ # Encapsulates a SKU that is part of a billing account SKU group.
636
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku
1987
637
  include Google::Apis::Core::Hashable
1988
638
 
1989
- # Description of the SKU group. Example: "A2 VMs (1 Year CUD)".
639
+ # BillingAccountService that the BillingAccountSkuGroupSku belongs to.
640
+ # Corresponds to the JSON property `billingAccountService`
641
+ # @return [String]
642
+ attr_accessor :billing_account_service
643
+
644
+ # Description of the BillingAccountSkuGroupSku. Example: "A2 Instance Core
645
+ # running in Hong Kong".
1990
646
  # Corresponds to the JSON property `displayName`
1991
647
  # @return [String]
1992
648
  attr_accessor :display_name
1993
649
 
1994
- # Resource name for the SKU group. Example: "skuGroups/0e6403d1-4694-44d2-a696-
1995
- # 7a78b1a69301".
650
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
651
+ # east4` or `European Union`.
652
+ # Corresponds to the JSON property `geoTaxonomy`
653
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy]
654
+ attr_accessor :geo_taxonomy
655
+
656
+ # Resource name for the BillingAccountSkuGroupSku. Example: "billingAccounts/
657
+ # 012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301/skus/AA95-
658
+ # CD31-42FE".
1996
659
  # Corresponds to the JSON property `name`
1997
660
  # @return [String]
1998
661
  attr_accessor :name
1999
662
 
663
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
664
+ # , and others.
665
+ # Corresponds to the JSON property `productTaxonomy`
666
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy]
667
+ attr_accessor :product_taxonomy
668
+
669
+ # Unique identifier for the SKU. It is the string after the collection
670
+ # identifier "skus/" Example: "AA95-CD31-42FE".
671
+ # Corresponds to the JSON property `skuId`
672
+ # @return [String]
673
+ attr_accessor :sku_id
674
+
2000
675
  def initialize(**args)
2001
676
  update!(**args)
2002
677
  end
2003
678
 
2004
679
  # Update properties of this object
2005
680
  def update!(**args)
681
+ @billing_account_service = args[:billing_account_service] if args.key?(:billing_account_service)
2006
682
  @display_name = args[:display_name] if args.key?(:display_name)
683
+ @geo_taxonomy = args[:geo_taxonomy] if args.key?(:geo_taxonomy)
2007
684
  @name = args[:name] if args.key?(:name)
685
+ @product_taxonomy = args[:product_taxonomy] if args.key?(:product_taxonomy)
686
+ @sku_id = args[:sku_id] if args.key?(:sku_id)
2008
687
  end
2009
688
  end
2010
689
 
2011
690
  # Encapsulates geographic metadata, such as regions and multi-regions like `us-
2012
691
  # east4` or `European Union`.
2013
- class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy
692
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy
2014
693
  include Google::Apis::Core::Hashable
2015
694
 
2016
695
  # Encapsulates a global geographic taxonomy.
2017
696
  # Corresponds to the JSON property `globalMetadata`
2018
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal]
697
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal]
2019
698
  attr_accessor :global_metadata
2020
699
 
2021
700
  # Encapsulates a multi-regional geographic taxonomy.
2022
701
  # Corresponds to the JSON property `multiRegionalMetadata`
2023
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional]
702
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional]
2024
703
  attr_accessor :multi_regional_metadata
2025
704
 
2026
705
  # Encapsulates a regional geographic taxonomy.
2027
706
  # Corresponds to the JSON property `regionalMetadata`
2028
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional]
707
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional]
2029
708
  attr_accessor :regional_metadata
2030
709
 
2031
- # Type of geographic taxonomy associated with the SKU group SKU.
710
+ # Type of geographic taxonomy associated with the billing account SKU group SKU.
2032
711
  # Corresponds to the JSON property `type`
2033
712
  # @return [String]
2034
713
  attr_accessor :type
@@ -2047,7 +726,7 @@ module Google
2047
726
  end
2048
727
 
2049
728
  # Encapsulates a global geographic taxonomy.
2050
- class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal
729
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal
2051
730
  include Google::Apis::Core::Hashable
2052
731
 
2053
732
  def initialize(**args)
@@ -2060,12 +739,12 @@ module Google
2060
739
  end
2061
740
 
2062
741
  # Encapsulates a multi-regional geographic taxonomy.
2063
- class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional
742
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional
2064
743
  include Google::Apis::Core::Hashable
2065
744
 
2066
745
  # Google Cloud regions associated with the multi-regional geographic taxonomy.
2067
746
  # Corresponds to the JSON property `regions`
2068
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion>]
747
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion>]
2069
748
  attr_accessor :regions
2070
749
 
2071
750
  def initialize(**args)
@@ -2079,7 +758,7 @@ module Google
2079
758
  end
2080
759
 
2081
760
  # Encapsulates a Google Cloud region.
2082
- class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion
761
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion
2083
762
  include Google::Apis::Core::Hashable
2084
763
 
2085
764
  # Description of a Google Cloud region. Example: "us-west2".
@@ -2098,12 +777,12 @@ module Google
2098
777
  end
2099
778
 
2100
779
  # Encapsulates a regional geographic taxonomy.
2101
- class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional
780
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional
2102
781
  include Google::Apis::Core::Hashable
2103
782
 
2104
783
  # Encapsulates a Google Cloud region.
2105
784
  # Corresponds to the JSON property `region`
2106
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion]
785
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion]
2107
786
  attr_accessor :region
2108
787
 
2109
788
  def initialize(**args)
@@ -2116,40 +795,40 @@ module Google
2116
795
  end
2117
796
  end
2118
797
 
2119
- # Response message for ListSkuGroupSkus.
2120
- class GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse
798
+ # Response message for ListBillingAccountSkuGroupSkus.
799
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse
2121
800
  include Google::Apis::Core::Hashable
2122
801
 
802
+ # The returned billing account SKU group SKUs.
803
+ # Corresponds to the JSON property `billingAccountSkuGroupSkus`
804
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku>]
805
+ attr_accessor :billing_account_sku_group_skus
806
+
2123
807
  # Token that can be sent as `page_token` in the subsequent request to retrieve
2124
808
  # the next page. If this field is empty, there are no subsequent pages.
2125
809
  # Corresponds to the JSON property `nextPageToken`
2126
810
  # @return [String]
2127
811
  attr_accessor :next_page_token
2128
812
 
2129
- # The returned SKU group SKUs.
2130
- # Corresponds to the JSON property `skuGroupSkus`
2131
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaSkuGroupSku>]
2132
- attr_accessor :sku_group_skus
2133
-
2134
813
  def initialize(**args)
2135
814
  update!(**args)
2136
815
  end
2137
816
 
2138
817
  # Update properties of this object
2139
818
  def update!(**args)
819
+ @billing_account_sku_group_skus = args[:billing_account_sku_group_skus] if args.key?(:billing_account_sku_group_skus)
2140
820
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2141
- @sku_group_skus = args[:sku_group_skus] if args.key?(:sku_group_skus)
2142
821
  end
2143
822
  end
2144
823
 
2145
824
  # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
2146
825
  # , and others.
2147
- class GoogleCloudBillingSkugroupskusV1betaProductTaxonomy
826
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy
2148
827
  include Google::Apis::Core::Hashable
2149
828
 
2150
- # All product categories that the SKU group SKU belongs to.
829
+ # All product categories that the billing account SKU group SKU belong to.
2151
830
  # Corresponds to the JSON property `taxonomyCategories`
2152
- # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory>]
831
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory>]
2153
832
  attr_accessor :taxonomy_categories
2154
833
 
2155
834
  def initialize(**args)
@@ -2162,16 +841,38 @@ module Google
2162
841
  end
2163
842
  end
2164
843
 
2165
- # Encapsulates a publicly listed stock keeping unit (SKU) that is part of a
2166
- # publicly listed SKU group. A SKU group represents a collection of SKUs that
2167
- # are related to each other. For example, the `AI Platform APIs` SKU group
2168
- # includes SKUs from the Cloud Dialogflow API, the Cloud Text-to-Speech API, and
2169
- # additional related APIs.
2170
- class GoogleCloudBillingSkugroupskusV1betaSkuGroupSku
844
+ # Encapsulates a product category.
845
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory
2171
846
  include Google::Apis::Core::Hashable
2172
847
 
2173
- # Description of the SkuGroupSku. Example: "A2 Instance Core running in Hong
2174
- # Kong".
848
+ # Name of the product category.
849
+ # Corresponds to the JSON property `category`
850
+ # @return [String]
851
+ attr_accessor :category
852
+
853
+ def initialize(**args)
854
+ update!(**args)
855
+ end
856
+
857
+ # Update properties of this object
858
+ def update!(**args)
859
+ @category = args[:category] if args.key?(:category)
860
+ end
861
+ end
862
+
863
+ # Encapsulates a stock keeping unit (SKU) visible to a billing account. A SKU
864
+ # distinctly identifies a resource that you can purchase. For a list of
865
+ # available SKUs, see [SKUs](https://cloud.google.com/skus).
866
+ class GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku
867
+ include Google::Apis::Core::Hashable
868
+
869
+ # BillingAccountService that the BillingAccountSku belongs to.
870
+ # Corresponds to the JSON property `billingAccountService`
871
+ # @return [String]
872
+ attr_accessor :billing_account_service
873
+
874
+ # Description of the BillingAccountSku. Example: "A2 Instance Core running in
875
+ # Hong Kong".
2175
876
  # Corresponds to the JSON property `displayName`
2176
877
  # @return [String]
2177
878
  attr_accessor :display_name
@@ -2179,11 +880,11 @@ module Google
2179
880
  # Encapsulates geographic metadata, such as regions and multi-regions like `us-
2180
881
  # east4` or `European Union`.
2181
882
  # Corresponds to the JSON property `geoTaxonomy`
2182
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy]
883
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy]
2183
884
  attr_accessor :geo_taxonomy
2184
885
 
2185
- # Resource name for the SkuGroupSku. Example: "skuGroups/0e6403d1-4694-44d2-a696-
2186
- # 7a78b1a69301/skus/AA95-CD31-42FE".
886
+ # Resource name for the BillingAccountSku. Example: "billingAccounts/012345-
887
+ # 567890-ABCDEF/skus/AA95-CD31-42FE".
2187
888
  # Corresponds to the JSON property `name`
2188
889
  # @return [String]
2189
890
  attr_accessor :name
@@ -2191,14 +892,9 @@ module Google
2191
892
  # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
2192
893
  # , and others.
2193
894
  # Corresponds to the JSON property `productTaxonomy`
2194
- # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaProductTaxonomy]
895
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy]
2195
896
  attr_accessor :product_taxonomy
2196
897
 
2197
- # Service that the SkuGroupSku belongs to.
2198
- # Corresponds to the JSON property `service`
2199
- # @return [String]
2200
- attr_accessor :service
2201
-
2202
898
  # Unique identifier for the SKU. It is the string after the collection
2203
899
  # identifier "skus/" Example: "AA95-CD31-42FE".
2204
900
  # Corresponds to the JSON property `skuId`
@@ -2211,23 +907,39 @@ module Google
2211
907
 
2212
908
  # Update properties of this object
2213
909
  def update!(**args)
910
+ @billing_account_service = args[:billing_account_service] if args.key?(:billing_account_service)
2214
911
  @display_name = args[:display_name] if args.key?(:display_name)
2215
912
  @geo_taxonomy = args[:geo_taxonomy] if args.key?(:geo_taxonomy)
2216
913
  @name = args[:name] if args.key?(:name)
2217
914
  @product_taxonomy = args[:product_taxonomy] if args.key?(:product_taxonomy)
2218
- @service = args[:service] if args.key?(:service)
2219
915
  @sku_id = args[:sku_id] if args.key?(:sku_id)
2220
916
  end
2221
917
  end
2222
918
 
2223
- # Encapsulates a product category.
2224
- class GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory
919
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
920
+ # east4` or `European Union`.
921
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy
2225
922
  include Google::Apis::Core::Hashable
2226
923
 
2227
- # Name of the product category.
2228
- # Corresponds to the JSON property `category`
924
+ # Encapsulates a global geographic taxonomy.
925
+ # Corresponds to the JSON property `globalMetadata`
926
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal]
927
+ attr_accessor :global_metadata
928
+
929
+ # Encapsulates a multi-regional geographic taxonomy.
930
+ # Corresponds to the JSON property `multiRegionalMetadata`
931
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional]
932
+ attr_accessor :multi_regional_metadata
933
+
934
+ # Encapsulates a regional geographic taxonomy.
935
+ # Corresponds to the JSON property `regionalMetadata`
936
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional]
937
+ attr_accessor :regional_metadata
938
+
939
+ # Type of geographic taxonomy associated with the billing account SKU.
940
+ # Corresponds to the JSON property `type`
2229
941
  # @return [String]
2230
- attr_accessor :category
942
+ attr_accessor :type
2231
943
 
2232
944
  def initialize(**args)
2233
945
  update!(**args)
@@ -2235,55 +947,34 @@ module Google
2235
947
 
2236
948
  # Update properties of this object
2237
949
  def update!(**args)
2238
- @category = args[:category] if args.key?(:category)
950
+ @global_metadata = args[:global_metadata] if args.key?(:global_metadata)
951
+ @multi_regional_metadata = args[:multi_regional_metadata] if args.key?(:multi_regional_metadata)
952
+ @regional_metadata = args[:regional_metadata] if args.key?(:regional_metadata)
953
+ @type = args[:type] if args.key?(:type)
2239
954
  end
2240
955
  end
2241
956
 
2242
- # Specification of a set of guest accelerators attached to a machine.
2243
- class GuestAccelerator
957
+ # Encapsulates a global geographic taxonomy.
958
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal
2244
959
  include Google::Apis::Core::Hashable
2245
960
 
2246
- # The number of the guest accelerator cards exposed to each instance.
2247
- # Corresponds to the JSON property `acceleratorCount`
2248
- # @return [Fixnum]
2249
- attr_accessor :accelerator_count
2250
-
2251
- # The type of the guest accelerator cards. For example: "nvidia-tesla-t4".
2252
- # Corresponds to the JSON property `acceleratorType`
2253
- # @return [String]
2254
- attr_accessor :accelerator_type
2255
-
2256
961
  def initialize(**args)
2257
962
  update!(**args)
2258
963
  end
2259
964
 
2260
965
  # Update properties of this object
2261
966
  def update!(**args)
2262
- @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
2263
- @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type)
2264
967
  end
2265
968
  end
2266
969
 
2267
- # Data transfer between two regions.
2268
- class InterRegionEgress
970
+ # Encapsulates a multi-regional geographic taxonomy.
971
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional
2269
972
  include Google::Apis::Core::Hashable
2270
973
 
2271
- # Which [region](https://cloud.google.com/compute/docs/regions-zones) the data
2272
- # is transferred to.
2273
- # Corresponds to the JSON property `destinationRegion`
2274
- # @return [String]
2275
- attr_accessor :destination_region
2276
-
2277
- # An amount of usage over a time frame.
2278
- # Corresponds to the JSON property `egressRate`
2279
- # @return [Google::Apis::CloudbillingV1beta::Usage]
2280
- attr_accessor :egress_rate
2281
-
2282
- # Which [region](https://cloud.google.com/compute/docs/regions-zones) the data
2283
- # is transferred from.
2284
- # Corresponds to the JSON property `sourceRegion`
2285
- # @return [String]
2286
- attr_accessor :source_region
974
+ # Google Cloud regions associated with the multi-regional geographic taxonomy.
975
+ # Corresponds to the JSON property `regions`
976
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion>]
977
+ attr_accessor :regions
2287
978
 
2288
979
  def initialize(**args)
2289
980
  update!(**args)
@@ -2291,22 +982,18 @@ module Google
2291
982
 
2292
983
  # Update properties of this object
2293
984
  def update!(**args)
2294
- @destination_region = args[:destination_region] if args.key?(:destination_region)
2295
- @egress_rate = args[:egress_rate] if args.key?(:egress_rate)
2296
- @source_region = args[:source_region] if args.key?(:source_region)
985
+ @regions = args[:regions] if args.key?(:regions)
2297
986
  end
2298
987
  end
2299
988
 
2300
- # Data transfer within the same region. When the source region and destination
2301
- # region are in the same zone, using internal IP addresses, there isn't any
2302
- # charge for data transfer.
2303
- class IntraRegionEgress
989
+ # Encapsulates a Google Cloud region.
990
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion
2304
991
  include Google::Apis::Core::Hashable
2305
992
 
2306
- # An amount of usage over a time frame.
2307
- # Corresponds to the JSON property `egressRate`
2308
- # @return [Google::Apis::CloudbillingV1beta::Usage]
2309
- attr_accessor :egress_rate
993
+ # Description of a Google Cloud region. Example: "us-west2".
994
+ # Corresponds to the JSON property `region`
995
+ # @return [String]
996
+ attr_accessor :region
2310
997
 
2311
998
  def initialize(**args)
2312
999
  update!(**args)
@@ -2314,23 +1001,18 @@ module Google
2314
1001
 
2315
1002
  # Update properties of this object
2316
1003
  def update!(**args)
2317
- @egress_rate = args[:egress_rate] if args.key?(:egress_rate)
1004
+ @region = args[:region] if args.key?(:region)
2318
1005
  end
2319
1006
  end
2320
1007
 
2321
- # Specification of machine series, memory, and number of vCPUs.
2322
- class MachineType
1008
+ # Encapsulates a regional geographic taxonomy.
1009
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional
2323
1010
  include Google::Apis::Core::Hashable
2324
1011
 
2325
- # Specification of a custom machine type.
2326
- # Corresponds to the JSON property `customMachineType`
2327
- # @return [Google::Apis::CloudbillingV1beta::CustomMachineType]
2328
- attr_accessor :custom_machine_type
2329
-
2330
- # Specification of a predefined machine type.
2331
- # Corresponds to the JSON property `predefinedMachineType`
2332
- # @return [Google::Apis::CloudbillingV1beta::PredefinedMachineType]
2333
- attr_accessor :predefined_machine_type
1012
+ # Encapsulates a Google Cloud region.
1013
+ # Corresponds to the JSON property `region`
1014
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion]
1015
+ attr_accessor :region
2334
1016
 
2335
1017
  def initialize(**args)
2336
1018
  update!(**args)
@@ -2338,34 +1020,24 @@ module Google
2338
1020
 
2339
1021
  # Update properties of this object
2340
1022
  def update!(**args)
2341
- @custom_machine_type = args[:custom_machine_type] if args.key?(:custom_machine_type)
2342
- @predefined_machine_type = args[:predefined_machine_type] if args.key?(:predefined_machine_type)
1023
+ @region = args[:region] if args.key?(:region)
2343
1024
  end
2344
1025
  end
2345
1026
 
2346
- # Represents an amount of money with its currency type.
2347
- class Money
1027
+ # Response message for ListBillingAccountSkus.
1028
+ class GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse
2348
1029
  include Google::Apis::Core::Hashable
2349
1030
 
2350
- # The three-letter currency code defined in ISO 4217.
2351
- # Corresponds to the JSON property `currencyCode`
2352
- # @return [String]
2353
- attr_accessor :currency_code
2354
-
2355
- # Number of nano (10^-9) units of the amount. The value must be between -999,999,
2356
- # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
2357
- # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
2358
- # negative. If `units` is negative, `nanos` must be negative or zero. For
2359
- # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
2360
- # Corresponds to the JSON property `nanos`
2361
- # @return [Fixnum]
2362
- attr_accessor :nanos
1031
+ # The returned billing account SKUs.
1032
+ # Corresponds to the JSON property `billingAccountSkus`
1033
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku>]
1034
+ attr_accessor :billing_account_skus
2363
1035
 
2364
- # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
2365
- # 1 unit is one US dollar.
2366
- # Corresponds to the JSON property `units`
2367
- # @return [Fixnum]
2368
- attr_accessor :units
1036
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1037
+ # the next page. If this field is empty, there are no subsequent pages.
1038
+ # Corresponds to the JSON property `nextPageToken`
1039
+ # @return [String]
1040
+ attr_accessor :next_page_token
2369
1041
 
2370
1042
  def initialize(**args)
2371
1043
  update!(**args)
@@ -2373,21 +1045,20 @@ module Google
2373
1045
 
2374
1046
  # Update properties of this object
2375
1047
  def update!(**args)
2376
- @currency_code = args[:currency_code] if args.key?(:currency_code)
2377
- @nanos = args[:nanos] if args.key?(:nanos)
2378
- @units = args[:units] if args.key?(:units)
1048
+ @billing_account_skus = args[:billing_account_skus] if args.key?(:billing_account_skus)
1049
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2379
1050
  end
2380
1051
  end
2381
1052
 
2382
- # Area contains multiple locations.
2383
- class MultiRegional
1053
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1054
+ # , and others.
1055
+ class GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy
2384
1056
  include Google::Apis::Core::Hashable
2385
1057
 
2386
- # The [location name](https://cloud.google.com/storage/docs/locations#available-
2387
- # locations) where the data is stored. For example: "us" for multi-region.
2388
- # Corresponds to the JSON property `name`
2389
- # @return [String]
2390
- attr_accessor :name
1058
+ # All product categories that the billing account SKU belong to.
1059
+ # Corresponds to the JSON property `taxonomyCategories`
1060
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory>]
1061
+ attr_accessor :taxonomy_categories
2391
1062
 
2392
1063
  def initialize(**args)
2393
1064
  update!(**args)
@@ -2395,34 +1066,18 @@ module Google
2395
1066
 
2396
1067
  # Update properties of this object
2397
1068
  def update!(**args)
2398
- @name = args[:name] if args.key?(:name)
1069
+ @taxonomy_categories = args[:taxonomy_categories] if args.key?(:taxonomy_categories)
2399
1070
  end
2400
1071
  end
2401
1072
 
2402
- # Specification of a persistent disk attached to a VM.
2403
- class PersistentDisk
1073
+ # Encapsulates a product category.
1074
+ class GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory
2404
1075
  include Google::Apis::Core::Hashable
2405
1076
 
2406
- # An amount of usage over a time frame.
2407
- # Corresponds to the JSON property `diskSize`
2408
- # @return [Google::Apis::CloudbillingV1beta::Usage]
2409
- attr_accessor :disk_size
2410
-
2411
- # The [disk type](https://cloud.google.com/compute/docs/disks#disk-types). For
2412
- # example: "pd-standard".
2413
- # Corresponds to the JSON property `diskType`
2414
- # @return [String]
2415
- attr_accessor :disk_type
2416
-
2417
- # An amount of usage over a time frame.
2418
- # Corresponds to the JSON property `provisionedIops`
2419
- # @return [Google::Apis::CloudbillingV1beta::Usage]
2420
- attr_accessor :provisioned_iops
2421
-
2422
- # The geographic scope of the disk. Defaults to `SCOPE_ZONAL` if not specified.
2423
- # Corresponds to the JSON property `scope`
1077
+ # Name of the product category.
1078
+ # Corresponds to the JSON property `category`
2424
1079
  # @return [String]
2425
- attr_accessor :scope
1080
+ attr_accessor :category
2426
1081
 
2427
1082
  def initialize(**args)
2428
1083
  update!(**args)
@@ -2430,22 +1085,26 @@ module Google
2430
1085
 
2431
1086
  # Update properties of this object
2432
1087
  def update!(**args)
2433
- @disk_size = args[:disk_size] if args.key?(:disk_size)
2434
- @disk_type = args[:disk_type] if args.key?(:disk_type)
2435
- @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
2436
- @scope = args[:scope] if args.key?(:scope)
1088
+ @category = args[:category] if args.key?(:category)
2437
1089
  end
2438
1090
  end
2439
1091
 
2440
- # Specification of a predefined machine type.
2441
- class PredefinedMachineType
1092
+ # Encapsulates the aggregation information such as aggregation level and
1093
+ # interval for a price.
1094
+ class GoogleCloudBillingPricesV1betaAggregationInfo
2442
1095
  include Google::Apis::Core::Hashable
2443
1096
 
2444
- # The [machine type](https://cloud.google.com/compute/docs/machine-types). For
2445
- # example: "n1-standard1".
2446
- # Corresponds to the JSON property `machineType`
1097
+ # Interval at which usage is aggregated to compute cost. Example: "MONTHLY"
1098
+ # interval indicates that usage is aggregated every month.
1099
+ # Corresponds to the JSON property `interval`
1100
+ # @return [String]
1101
+ attr_accessor :interval
1102
+
1103
+ # Level at which usage is aggregated to compute cost. Example: "ACCOUNT" level
1104
+ # indicates that usage is aggregated across all projects in a single account.
1105
+ # Corresponds to the JSON property `level`
2447
1106
  # @return [String]
2448
- attr_accessor :machine_type
1107
+ attr_accessor :level
2449
1108
 
2450
1109
  def initialize(**args)
2451
1110
  update!(**args)
@@ -2453,29 +1112,25 @@ module Google
2453
1112
 
2454
1113
  # Update properties of this object
2455
1114
  def update!(**args)
2456
- @machine_type = args[:machine_type] if args.key?(:machine_type)
1115
+ @interval = args[:interval] if args.key?(:interval)
1116
+ @level = args[:level] if args.key?(:level)
2457
1117
  end
2458
1118
  end
2459
1119
 
2460
- # Specify a Premium Tier Internet Data Transfer networking workload.
2461
- class PremiumTierEgressWorkload
1120
+ # Response message for ListPrices.
1121
+ class GoogleCloudBillingPricesV1betaListPricesResponse
2462
1122
  include Google::Apis::Core::Hashable
2463
1123
 
2464
- # Where the data is sent to.
2465
- # Corresponds to the JSON property `destinationContinent`
1124
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1125
+ # the next page. If this field is empty, there are no subsequent pages.
1126
+ # Corresponds to the JSON property `nextPageToken`
2466
1127
  # @return [String]
2467
- attr_accessor :destination_continent
2468
-
2469
- # An amount of usage over a time frame.
2470
- # Corresponds to the JSON property `egressRate`
2471
- # @return [Google::Apis::CloudbillingV1beta::Usage]
2472
- attr_accessor :egress_rate
1128
+ attr_accessor :next_page_token
2473
1129
 
2474
- # Which [region](https://cloud.google.com/compute/docs/regions-zones) the data
2475
- # comes from.
2476
- # Corresponds to the JSON property `sourceRegion`
2477
- # @return [String]
2478
- attr_accessor :source_region
1130
+ # The returned publicly listed prices.
1131
+ # Corresponds to the JSON property `prices`
1132
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaPrice>]
1133
+ attr_accessor :prices
2479
1134
 
2480
1135
  def initialize(**args)
2481
1136
  update!(**args)
@@ -2483,64 +1138,69 @@ module Google
2483
1138
 
2484
1139
  # Update properties of this object
2485
1140
  def update!(**args)
2486
- @destination_continent = args[:destination_continent] if args.key?(:destination_continent)
2487
- @egress_rate = args[:egress_rate] if args.key?(:egress_rate)
2488
- @source_region = args[:source_region] if args.key?(:source_region)
1141
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1142
+ @prices = args[:prices] if args.key?(:prices)
2489
1143
  end
2490
1144
  end
2491
1145
 
2492
- # The price of a SKU at a point int time.
2493
- class Price
1146
+ # Encapsulates the latest price for a SKU.
1147
+ class GoogleCloudBillingPricesV1betaPrice
2494
1148
  include Google::Apis::Core::Hashable
2495
1149
 
2496
- # Represents a point in time.
2497
- # Corresponds to the JSON property `effectiveTime`
2498
- # @return [Google::Apis::CloudbillingV1beta::EstimationTimePoint]
2499
- attr_accessor :effective_time
1150
+ # ISO-4217 currency code for the price.
1151
+ # Corresponds to the JSON property `currencyCode`
1152
+ # @return [String]
1153
+ attr_accessor :currency_code
2500
1154
 
2501
- # The type of price. Possible values: "RATE"
2502
- # Corresponds to the JSON property `priceType`
1155
+ # Resource name for the latest price.
1156
+ # Corresponds to the JSON property `name`
2503
1157
  # @return [String]
2504
- attr_accessor :price_type
1158
+ attr_accessor :name
2505
1159
 
2506
- # A SKU price consisting of tiered rates.
1160
+ # Encapsulates a `Rate` price. SKUs with `Rate` price are offered by pricing
1161
+ # tiers. The price have 1 or more rate pricing tiers.
2507
1162
  # Corresponds to the JSON property `rate`
2508
- # @return [Google::Apis::CloudbillingV1beta::Rate]
1163
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaRate]
2509
1164
  attr_accessor :rate
2510
1165
 
1166
+ # Type of the price. It can have values: ["unspecified", "rate"].
1167
+ # Corresponds to the JSON property `valueType`
1168
+ # @return [String]
1169
+ attr_accessor :value_type
1170
+
2511
1171
  def initialize(**args)
2512
1172
  update!(**args)
2513
1173
  end
2514
1174
 
2515
1175
  # Update properties of this object
2516
1176
  def update!(**args)
2517
- @effective_time = args[:effective_time] if args.key?(:effective_time)
2518
- @price_type = args[:price_type] if args.key?(:price_type)
1177
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
1178
+ @name = args[:name] if args.key?(:name)
2519
1179
  @rate = args[:rate] if args.key?(:rate)
1180
+ @value_type = args[:value_type] if args.key?(:value_type)
2520
1181
  end
2521
1182
  end
2522
1183
 
2523
- # A SKU price consisting of tiered rates.
2524
- class Rate
1184
+ # Encapsulates a `Rate` price. SKUs with `Rate` price are offered by pricing
1185
+ # tiers. The price have 1 or more rate pricing tiers.
1186
+ class GoogleCloudBillingPricesV1betaRate
2525
1187
  include Google::Apis::Core::Hashable
2526
1188
 
2527
- # The service tiers.
1189
+ # Encapsulates the aggregation information such as aggregation level and
1190
+ # interval for a price.
1191
+ # Corresponds to the JSON property `aggregationInfo`
1192
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaAggregationInfo]
1193
+ attr_accessor :aggregation_info
1194
+
1195
+ # All tiers associated with the `Rate` price.
2528
1196
  # Corresponds to the JSON property `tiers`
2529
- # @return [Array<Google::Apis::CloudbillingV1beta::RateTier>]
1197
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaRateTier>]
2530
1198
  attr_accessor :tiers
2531
1199
 
2532
- # The SKU's pricing unit. For example, if the tier price is $1 per 1000000 Bytes,
2533
- # then this field will show 'By'. The `start_amount` field in each tier will be
2534
- # in this unit.
2535
- # Corresponds to the JSON property `unit`
2536
- # @return [String]
2537
- attr_accessor :unit
2538
-
2539
- # The SKU's count for the pricing unit. For example, if the tier price is $1 per
2540
- # 1000000 Bytes, then this column will show 1000000.
2541
- # Corresponds to the JSON property `unitCount`
2542
- # @return [Float]
2543
- attr_accessor :unit_count
1200
+ # Encapsulates the unit information for a Rate
1201
+ # Corresponds to the JSON property `unitInfo`
1202
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaUnitInfo]
1203
+ attr_accessor :unit_info
2544
1204
 
2545
1205
  def initialize(**args)
2546
1206
  update!(**args)
@@ -2548,25 +1208,27 @@ module Google
2548
1208
 
2549
1209
  # Update properties of this object
2550
1210
  def update!(**args)
1211
+ @aggregation_info = args[:aggregation_info] if args.key?(:aggregation_info)
2551
1212
  @tiers = args[:tiers] if args.key?(:tiers)
2552
- @unit = args[:unit] if args.key?(:unit)
2553
- @unit_count = args[:unit_count] if args.key?(:unit_count)
1213
+ @unit_info = args[:unit_info] if args.key?(:unit_info)
2554
1214
  end
2555
1215
  end
2556
1216
 
2557
- # Pricing details for a service tier.
2558
- class RateTier
1217
+ # Encapsulates a rate price tier.
1218
+ class GoogleCloudBillingPricesV1betaRateTier
2559
1219
  include Google::Apis::Core::Hashable
2560
1220
 
2561
1221
  # Represents an amount of money with its currency type.
2562
- # Corresponds to the JSON property `price`
1222
+ # Corresponds to the JSON property `listPrice`
2563
1223
  # @return [Google::Apis::CloudbillingV1beta::Money]
2564
- attr_accessor :price
1224
+ attr_accessor :list_price
2565
1225
 
2566
- # The magnitude of usage in which the tier interval begins. Example: "From 100
2567
- # GiBi the price is $1 per byte" implies `start_amount` = 100
1226
+ # A representation of a decimal value, such as 2.5. Clients may convert values
1227
+ # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
1228
+ # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
1229
+ # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
2568
1230
  # Corresponds to the JSON property `startAmount`
2569
- # @return [Float]
1231
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
2570
1232
  attr_accessor :start_amount
2571
1233
 
2572
1234
  def initialize(**args)
@@ -2575,45 +1237,32 @@ module Google
2575
1237
 
2576
1238
  # Update properties of this object
2577
1239
  def update!(**args)
2578
- @price = args[:price] if args.key?(:price)
1240
+ @list_price = args[:list_price] if args.key?(:list_price)
2579
1241
  @start_amount = args[:start_amount] if args.key?(:start_amount)
2580
1242
  end
2581
1243
  end
2582
1244
 
2583
- # Area contains only one location.
2584
- class Regional
1245
+ # Encapsulates the unit information for a Rate
1246
+ class GoogleCloudBillingPricesV1betaUnitInfo
2585
1247
  include Google::Apis::Core::Hashable
2586
1248
 
2587
- # The [location name](https://cloud.google.com/storage/docs/locations#available-
2588
- # locations). For example: "us-central1" for region.
2589
- # Corresponds to the JSON property `name`
1249
+ # Shorthand for the unit. Example: GiBy.mo.
1250
+ # Corresponds to the JSON property `unit`
2590
1251
  # @return [String]
2591
- attr_accessor :name
2592
-
2593
- def initialize(**args)
2594
- update!(**args)
2595
- end
2596
-
2597
- # Update properties of this object
2598
- def update!(**args)
2599
- @name = args[:name] if args.key?(:name)
2600
- end
2601
- end
2602
-
2603
- # Configuration for a CostScenario. Specifies how costs are calculated.
2604
- class ScenarioConfig
2605
- include Google::Apis::Core::Hashable
1252
+ attr_accessor :unit
2606
1253
 
2607
- # Time frame for the estimate. Workloads must specify usage for this duration.
2608
- # Duration must be at least 1 hour (3,600 seconds) and at most 10 years (315,360,
2609
- # 000 seconds). The calculations for years and months are based on a 730-hour (2,
2610
- # 628,000-second) month. For durations longer than one month (2,628,000 seconds),
2611
- # the duration is rounded up to the next month, so the estimate shows you the
2612
- # costs for full months. For example, a duration of 3,232,800 seconds (roughly 5
2613
- # weeks) is rounded up to 2 months.
2614
- # Corresponds to the JSON property `estimateDuration`
1254
+ # Human-readable description of the unit. Example: gibibyte month.
1255
+ # Corresponds to the JSON property `unitDescription`
2615
1256
  # @return [String]
2616
- attr_accessor :estimate_duration
1257
+ attr_accessor :unit_description
1258
+
1259
+ # A representation of a decimal value, such as 2.5. Clients may convert values
1260
+ # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
1261
+ # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
1262
+ # Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).
1263
+ # Corresponds to the JSON property `unitQuantity`
1264
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
1265
+ attr_accessor :unit_quantity
2617
1266
 
2618
1267
  def initialize(**args)
2619
1268
  update!(**args)
@@ -2621,33 +1270,26 @@ module Google
2621
1270
 
2622
1271
  # Update properties of this object
2623
1272
  def update!(**args)
2624
- @estimate_duration = args[:estimate_duration] if args.key?(:estimate_duration)
1273
+ @unit = args[:unit] if args.key?(:unit)
1274
+ @unit_description = args[:unit_description] if args.key?(:unit_description)
1275
+ @unit_quantity = args[:unit_quantity] if args.key?(:unit_quantity)
2625
1276
  end
2626
1277
  end
2627
1278
 
2628
- # Workload cost estimates for a single time segment.
2629
- class SegmentCostEstimate
1279
+ # Response message for ListSkuGroups.
1280
+ class GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse
2630
1281
  include Google::Apis::Core::Hashable
2631
1282
 
2632
- # Estimated costs for each commitment.
2633
- # Corresponds to the JSON property `commitmentCostEstimates`
2634
- # @return [Array<Google::Apis::CloudbillingV1beta::CommitmentCostEstimate>]
2635
- attr_accessor :commitment_cost_estimates
2636
-
2637
- # Represents a point in time.
2638
- # Corresponds to the JSON property `segmentStartTime`
2639
- # @return [Google::Apis::CloudbillingV1beta::EstimationTimePoint]
2640
- attr_accessor :segment_start_time
2641
-
2642
- # An estimated cost.
2643
- # Corresponds to the JSON property `segmentTotalCostEstimate`
2644
- # @return [Google::Apis::CloudbillingV1beta::CostEstimate]
2645
- attr_accessor :segment_total_cost_estimate
1283
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1284
+ # the next page. If this field is empty, there are no subsequent pages.
1285
+ # Corresponds to the JSON property `nextPageToken`
1286
+ # @return [String]
1287
+ attr_accessor :next_page_token
2646
1288
 
2647
- # Estimated costs for each workload.
2648
- # Corresponds to the JSON property `workloadCostEstimates`
2649
- # @return [Array<Google::Apis::CloudbillingV1beta::WorkloadCostEstimate>]
2650
- attr_accessor :workload_cost_estimates
1289
+ # The returned publicly listed SKU groups.
1290
+ # Corresponds to the JSON property `skuGroups`
1291
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupsV1betaSkuGroup>]
1292
+ attr_accessor :sku_groups
2651
1293
 
2652
1294
  def initialize(**args)
2653
1295
  update!(**args)
@@ -2655,34 +1297,28 @@ module Google
2655
1297
 
2656
1298
  # Update properties of this object
2657
1299
  def update!(**args)
2658
- @commitment_cost_estimates = args[:commitment_cost_estimates] if args.key?(:commitment_cost_estimates)
2659
- @segment_start_time = args[:segment_start_time] if args.key?(:segment_start_time)
2660
- @segment_total_cost_estimate = args[:segment_total_cost_estimate] if args.key?(:segment_total_cost_estimate)
2661
- @workload_cost_estimates = args[:workload_cost_estimates] if args.key?(:workload_cost_estimates)
1300
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1301
+ @sku_groups = args[:sku_groups] if args.key?(:sku_groups)
2662
1302
  end
2663
1303
  end
2664
1304
 
2665
- # Information about SKUs appearing in the cost estimate.
2666
- class Sku
1305
+ # Encapsulates a publicly listed stock keeping unit (SKU) group. A SKU group
1306
+ # represents a collection of SKUs that are related to each other. For example,
1307
+ # the `AI Platform APIs` SKU group includes SKUs from the Cloud Dialogflow API,
1308
+ # the Cloud Text-to-Speech API, and additional related APIs.
1309
+ class GoogleCloudBillingSkugroupsV1betaSkuGroup
2667
1310
  include Google::Apis::Core::Hashable
2668
1311
 
2669
- # The display name for the SKU. Example: A2 Instance Core running in Americas
1312
+ # Description of the SKU group. Example: "A2 VMs (1 Year CUD)".
2670
1313
  # Corresponds to the JSON property `displayName`
2671
1314
  # @return [String]
2672
1315
  attr_accessor :display_name
2673
1316
 
2674
- # A timeline of prices for a SKU in chronological order. Note: The API currently
2675
- # only supports using a constant price for the entire estimation time frame so
2676
- # this list will contain a single value.
2677
- # Corresponds to the JSON property `prices`
2678
- # @return [Array<Google::Apis::CloudbillingV1beta::Price>]
2679
- attr_accessor :prices
2680
-
2681
- # The resource name for the SKU. Example: "services/DA34-426B-A397/skus/AA95-
2682
- # CD31-42FE"
2683
- # Corresponds to the JSON property `sku`
1317
+ # Resource name for the SKU group. Example: "skuGroups/0e6403d1-4694-44d2-a696-
1318
+ # 7a78b1a69301".
1319
+ # Corresponds to the JSON property `name`
2684
1320
  # @return [String]
2685
- attr_accessor :sku
1321
+ attr_accessor :name
2686
1322
 
2687
1323
  def initialize(**args)
2688
1324
  update!(**args)
@@ -2691,36 +1327,34 @@ module Google
2691
1327
  # Update properties of this object
2692
1328
  def update!(**args)
2693
1329
  @display_name = args[:display_name] if args.key?(:display_name)
2694
- @prices = args[:prices] if args.key?(:prices)
2695
- @sku = args[:sku] if args.key?(:sku)
1330
+ @name = args[:name] if args.key?(:name)
2696
1331
  end
2697
1332
  end
2698
1333
 
2699
- # Estimated cost for usage on a SKU.
2700
- class SkuCostEstimate
1334
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1335
+ # east4` or `European Union`.
1336
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy
2701
1337
  include Google::Apis::Core::Hashable
2702
1338
 
2703
- # An estimated cost.
2704
- # Corresponds to the JSON property `costEstimate`
2705
- # @return [Google::Apis::CloudbillingV1beta::CostEstimate]
2706
- attr_accessor :cost_estimate
1339
+ # Encapsulates a global geographic taxonomy.
1340
+ # Corresponds to the JSON property `globalMetadata`
1341
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal]
1342
+ attr_accessor :global_metadata
2707
1343
 
2708
- # The resource name for the SKU. Example: "services/DA34-426B-A397/skus/AA95-
2709
- # CD31-42FE" More information about the SKU can be found in the `skus` field of
2710
- # the `CostEstimationResult`.
2711
- # Corresponds to the JSON property `sku`
2712
- # @return [String]
2713
- attr_accessor :sku
1344
+ # Encapsulates a multi-regional geographic taxonomy.
1345
+ # Corresponds to the JSON property `multiRegionalMetadata`
1346
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional]
1347
+ attr_accessor :multi_regional_metadata
2714
1348
 
2715
- # The amount of usage on this SKU.
2716
- # Corresponds to the JSON property `usageAmount`
2717
- # @return [Float]
2718
- attr_accessor :usage_amount
1349
+ # Encapsulates a regional geographic taxonomy.
1350
+ # Corresponds to the JSON property `regionalMetadata`
1351
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional]
1352
+ attr_accessor :regional_metadata
2719
1353
 
2720
- # The unit for the usage on this SKU.
2721
- # Corresponds to the JSON property `usageUnit`
1354
+ # Type of geographic taxonomy associated with the SKU group SKU.
1355
+ # Corresponds to the JSON property `type`
2722
1356
  # @return [String]
2723
- attr_accessor :usage_unit
1357
+ attr_accessor :type
2724
1358
 
2725
1359
  def initialize(**args)
2726
1360
  update!(**args)
@@ -2728,55 +1362,34 @@ module Google
2728
1362
 
2729
1363
  # Update properties of this object
2730
1364
  def update!(**args)
2731
- @cost_estimate = args[:cost_estimate] if args.key?(:cost_estimate)
2732
- @sku = args[:sku] if args.key?(:sku)
2733
- @usage_amount = args[:usage_amount] if args.key?(:usage_amount)
2734
- @usage_unit = args[:usage_unit] if args.key?(:usage_unit)
1365
+ @global_metadata = args[:global_metadata] if args.key?(:global_metadata)
1366
+ @multi_regional_metadata = args[:multi_regional_metadata] if args.key?(:multi_regional_metadata)
1367
+ @regional_metadata = args[:regional_metadata] if args.key?(:regional_metadata)
1368
+ @type = args[:type] if args.key?(:type)
2735
1369
  end
2736
1370
  end
2737
1371
 
2738
- # Specify Standard Tier Internet Data Transfer.
2739
- class StandardTierEgressWorkload
1372
+ # Encapsulates a global geographic taxonomy.
1373
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal
2740
1374
  include Google::Apis::Core::Hashable
2741
1375
 
2742
- # An amount of usage over a time frame.
2743
- # Corresponds to the JSON property `egressRate`
2744
- # @return [Google::Apis::CloudbillingV1beta::Usage]
2745
- attr_accessor :egress_rate
2746
-
2747
- # Which [region](https://cloud.google.com/compute/docs/regions-zones) the data
2748
- # is transferred from.
2749
- # Corresponds to the JSON property `sourceRegion`
2750
- # @return [String]
2751
- attr_accessor :source_region
2752
-
2753
1376
  def initialize(**args)
2754
1377
  update!(**args)
2755
1378
  end
2756
1379
 
2757
1380
  # Update properties of this object
2758
1381
  def update!(**args)
2759
- @egress_rate = args[:egress_rate] if args.key?(:egress_rate)
2760
- @source_region = args[:source_region] if args.key?(:source_region)
2761
1382
  end
2762
1383
  end
2763
1384
 
2764
- # An amount of usage over a time frame.
2765
- class Usage
1385
+ # Encapsulates a multi-regional geographic taxonomy.
1386
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional
2766
1387
  include Google::Apis::Core::Hashable
2767
1388
 
2768
- # A timeline of usage rates. Consists of a series of entries, each of which
2769
- # specifies a constant rate of usage during a time interval. Each entry contains
2770
- # an effective time. The usage rate is in effect from that time until the
2771
- # effective time of the subsequent entry, or, for the last entry, for the
2772
- # remaining portion of estimation time frame. Effective times are specified as
2773
- # an offset into the estimation time frame. Usage is considered to be zero until
2774
- # the `effective_time` of the first entry. All subsequent entries must have an
2775
- # effective time greater than the previous entry and less than the estimate time
2776
- # frame. The effective time on all entries must be an integer number of hours.
2777
- # Corresponds to the JSON property `usageRateTimeline`
2778
- # @return [Google::Apis::CloudbillingV1beta::UsageRateTimeline]
2779
- attr_accessor :usage_rate_timeline
1389
+ # Google Cloud regions associated with the multi-regional geographic taxonomy.
1390
+ # Corresponds to the JSON property `regions`
1391
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion>]
1392
+ attr_accessor :regions
2780
1393
 
2781
1394
  def initialize(**args)
2782
1395
  update!(**args)
@@ -2784,50 +1397,18 @@ module Google
2784
1397
 
2785
1398
  # Update properties of this object
2786
1399
  def update!(**args)
2787
- @usage_rate_timeline = args[:usage_rate_timeline] if args.key?(:usage_rate_timeline)
1400
+ @regions = args[:regions] if args.key?(:regions)
2788
1401
  end
2789
1402
  end
2790
1403
 
2791
- # A timeline of usage rates. Consists of a series of entries, each of which
2792
- # specifies a constant rate of usage during a time interval. Each entry contains
2793
- # an effective time. The usage rate is in effect from that time until the
2794
- # effective time of the subsequent entry, or, for the last entry, for the
2795
- # remaining portion of estimation time frame. Effective times are specified as
2796
- # an offset into the estimation time frame. Usage is considered to be zero until
2797
- # the `effective_time` of the first entry. All subsequent entries must have an
2798
- # effective time greater than the previous entry and less than the estimate time
2799
- # frame. The effective time on all entries must be an integer number of hours.
2800
- class UsageRateTimeline
1404
+ # Encapsulates a Google Cloud region.
1405
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion
2801
1406
  include Google::Apis::Core::Hashable
2802
1407
 
2803
- # The unit for the usage rate in each timeline entry. If you provide an
2804
- # incorrect unit for an instance, the correct unit is provided in the error
2805
- # message. The supported units are a subset of [The Unified Code for Units of
2806
- # Measure](https://ucum.org/ucum.html) standard: * **Time units (TIME-UNIT)** * `
2807
- # s` second * `min` minute * `h` hour * `d` day * `wk` week * `mo` month * `yr`
2808
- # year * `ms` millisecond * `us` microsecond * `ns` nanosecond * **Basic storage
2809
- # units (BASIC-STORAGE-UNIT)** * `bit` bit * `By` byte * **Count units (COUNT-
2810
- # UNIT)** * `count` count * **Prefixes (PREFIX)** * `k` kilo (10^3) * `M` mega (
2811
- # 10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` peta (10^15) * `Ki` kibi (2^
2812
- # 10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50)
2813
- # **Grammar** The grammar also includes these connectors: * `/` division or
2814
- # ratio (as an infix operator). For example: `kBy/`email`` or `MiBy/10ms`. * `.`
2815
- # multiplication or composition (as an infix operator). For example: `GBy.d` or `
2816
- # k`watt`.h`. The grammar for a unit is as follows: ``` Expression = Component `
2817
- # "." Component ` ` "/" Component ` ; Component = ( [ PREFIX ] UNIT | "%" ) [
2818
- # Annotation ] | Annotation | "1" ; UNIT = TIME-UNIT | STORAGE-UNIT | DATA-UNIT |
2819
- # COUNT-UNIT Annotation = "`" NAME "`" ; ``` Examples: * Request per second: `1/
2820
- # s` or ``requests`/s` * GibiBytes: `GiBy` * GibiBytes * seconds: `GiBy.s`
2821
- # Corresponds to the JSON property `unit`
1408
+ # Description of a Google Cloud region. Example: "us-west2".
1409
+ # Corresponds to the JSON property `region`
2822
1410
  # @return [String]
2823
- attr_accessor :unit
2824
-
2825
- # The timeline entries. Each entry has a start time and usage rate. The start
2826
- # time specifies the effective time of the usage rate. The entries must be
2827
- # sorted by start time in an increasing order.
2828
- # Corresponds to the JSON property `usageRateTimelineEntries`
2829
- # @return [Array<Google::Apis::CloudbillingV1beta::UsageRateTimelineEntry>]
2830
- attr_accessor :usage_rate_timeline_entries
1411
+ attr_accessor :region
2831
1412
 
2832
1413
  def initialize(**args)
2833
1414
  update!(**args)
@@ -2835,25 +1416,18 @@ module Google
2835
1416
 
2836
1417
  # Update properties of this object
2837
1418
  def update!(**args)
2838
- @unit = args[:unit] if args.key?(:unit)
2839
- @usage_rate_timeline_entries = args[:usage_rate_timeline_entries] if args.key?(:usage_rate_timeline_entries)
1419
+ @region = args[:region] if args.key?(:region)
2840
1420
  end
2841
1421
  end
2842
1422
 
2843
- # A usage rate timeline entry. Each entry specifies a constant usage rate during
2844
- # a time interval.
2845
- class UsageRateTimelineEntry
1423
+ # Encapsulates a regional geographic taxonomy.
1424
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional
2846
1425
  include Google::Apis::Core::Hashable
2847
1426
 
2848
- # Represents a point in time.
2849
- # Corresponds to the JSON property `effectiveTime`
2850
- # @return [Google::Apis::CloudbillingV1beta::EstimationTimePoint]
2851
- attr_accessor :effective_time
2852
-
2853
- # The usage rate.
2854
- # Corresponds to the JSON property `usageRate`
2855
- # @return [Float]
2856
- attr_accessor :usage_rate
1427
+ # Encapsulates a Google Cloud region.
1428
+ # Corresponds to the JSON property `region`
1429
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion]
1430
+ attr_accessor :region
2857
1431
 
2858
1432
  def initialize(**args)
2859
1433
  update!(**args)
@@ -2861,26 +1435,24 @@ module Google
2861
1435
 
2862
1436
  # Update properties of this object
2863
1437
  def update!(**args)
2864
- @effective_time = args[:effective_time] if args.key?(:effective_time)
2865
- @usage_rate = args[:usage_rate] if args.key?(:usage_rate)
1438
+ @region = args[:region] if args.key?(:region)
2866
1439
  end
2867
1440
  end
2868
1441
 
2869
- # VLAN attachment for Cloud Interconnect.
2870
- class VlanAttachment
1442
+ # Response message for ListSkuGroupSkus.
1443
+ class GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse
2871
1444
  include Google::Apis::Core::Hashable
2872
1445
 
2873
- # Capacities in the [pricing table](https://cloud.google.com/vpc/network-pricing#
2874
- # interconnect-pricing) Examples of capacity are: 50/100/200/300/400/500-Mbps, 1/
2875
- # 2/5/10/20/50-Gbps.
2876
- # Corresponds to the JSON property `bandwidth`
1446
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1447
+ # the next page. If this field is empty, there are no subsequent pages.
1448
+ # Corresponds to the JSON property `nextPageToken`
2877
1449
  # @return [String]
2878
- attr_accessor :bandwidth
1450
+ attr_accessor :next_page_token
2879
1451
 
2880
- # An amount of usage over a time frame.
2881
- # Corresponds to the JSON property `vlanCount`
2882
- # @return [Google::Apis::CloudbillingV1beta::Usage]
2883
- attr_accessor :vlan_count
1452
+ # The returned SKU group SKUs.
1453
+ # Corresponds to the JSON property `skuGroupSkus`
1454
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaSkuGroupSku>]
1455
+ attr_accessor :sku_group_skus
2884
1456
 
2885
1457
  def initialize(**args)
2886
1458
  update!(**args)
@@ -2888,51 +1460,20 @@ module Google
2888
1460
 
2889
1461
  # Update properties of this object
2890
1462
  def update!(**args)
2891
- @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
2892
- @vlan_count = args[:vlan_count] if args.key?(:vlan_count)
1463
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1464
+ @sku_group_skus = args[:sku_group_skus] if args.key?(:sku_group_skus)
2893
1465
  end
2894
1466
  end
2895
1467
 
2896
- # Specifies a resource-based committed use discount (CUD).
2897
- class VmResourceBasedCud
1468
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1469
+ # , and others.
1470
+ class GoogleCloudBillingSkugroupskusV1betaProductTaxonomy
2898
1471
  include Google::Apis::Core::Hashable
2899
1472
 
2900
- # Specification of a set of guest accelerators attached to a machine.
2901
- # Corresponds to the JSON property `guestAccelerator`
2902
- # @return [Google::Apis::CloudbillingV1beta::GuestAccelerator]
2903
- attr_accessor :guest_accelerator
2904
-
2905
- # The machine series for CUD. For example: "n1" for general purpose N1 machine
2906
- # type commitments. "n2" for general purpose N2 machine type commitments. "e2"
2907
- # for general purpose E2 machine type commitments. "n2d" for general purpose N2D
2908
- # machine type commitments. "t2d" for general purpose T2D machine type
2909
- # commitments. "c2"/"c2d" for compute-optimized commitments. "m1"/"m2" for the
2910
- # memory-optimized commitments. "a2' for the accelerator-optimized commitments.
2911
- # Corresponds to the JSON property `machineSeries`
2912
- # @return [String]
2913
- attr_accessor :machine_series
2914
-
2915
- # Memory size of the VM in GB (2^30 bytes). Must be an increment of 0.25 (256 MB)
2916
- # .
2917
- # Corresponds to the JSON property `memorySizeGb`
2918
- # @return [Float]
2919
- attr_accessor :memory_size_gb
2920
-
2921
- # Commitment usage plan.
2922
- # Corresponds to the JSON property `plan`
2923
- # @return [String]
2924
- attr_accessor :plan
2925
-
2926
- # The region where the VM runs. For example: "us-central1"
2927
- # Corresponds to the JSON property `region`
2928
- # @return [String]
2929
- attr_accessor :region
2930
-
2931
- # The number of vCPUs. The number of vCPUs must be an integer of 0 or more and
2932
- # can be even or odd.
2933
- # Corresponds to the JSON property `virtualCpuCount`
2934
- # @return [Fixnum]
2935
- attr_accessor :virtual_cpu_count
1473
+ # All product categories that the SKU group SKU belongs to.
1474
+ # Corresponds to the JSON property `taxonomyCategories`
1475
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory>]
1476
+ attr_accessor :taxonomy_categories
2936
1477
 
2937
1478
  def initialize(**args)
2938
1479
  update!(**args)
@@ -2940,30 +1481,52 @@ module Google
2940
1481
 
2941
1482
  # Update properties of this object
2942
1483
  def update!(**args)
2943
- @guest_accelerator = args[:guest_accelerator] if args.key?(:guest_accelerator)
2944
- @machine_series = args[:machine_series] if args.key?(:machine_series)
2945
- @memory_size_gb = args[:memory_size_gb] if args.key?(:memory_size_gb)
2946
- @plan = args[:plan] if args.key?(:plan)
2947
- @region = args[:region] if args.key?(:region)
2948
- @virtual_cpu_count = args[:virtual_cpu_count] if args.key?(:virtual_cpu_count)
1484
+ @taxonomy_categories = args[:taxonomy_categories] if args.key?(:taxonomy_categories)
2949
1485
  end
2950
1486
  end
2951
1487
 
2952
- # Specify VM to VM data transfer.
2953
- class VmToVmEgressWorkload
1488
+ # Encapsulates a publicly listed stock keeping unit (SKU) that is part of a
1489
+ # publicly listed SKU group. A SKU group represents a collection of SKUs that
1490
+ # are related to each other. For example, the `AI Platform APIs` SKU group
1491
+ # includes SKUs from the Cloud Dialogflow API, the Cloud Text-to-Speech API, and
1492
+ # additional related APIs.
1493
+ class GoogleCloudBillingSkugroupskusV1betaSkuGroupSku
2954
1494
  include Google::Apis::Core::Hashable
2955
1495
 
2956
- # Data transfer between two regions.
2957
- # Corresponds to the JSON property `interRegionEgress`
2958
- # @return [Google::Apis::CloudbillingV1beta::InterRegionEgress]
2959
- attr_accessor :inter_region_egress
1496
+ # Description of the SkuGroupSku. Example: "A2 Instance Core running in Hong
1497
+ # Kong".
1498
+ # Corresponds to the JSON property `displayName`
1499
+ # @return [String]
1500
+ attr_accessor :display_name
1501
+
1502
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1503
+ # east4` or `European Union`.
1504
+ # Corresponds to the JSON property `geoTaxonomy`
1505
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy]
1506
+ attr_accessor :geo_taxonomy
1507
+
1508
+ # Resource name for the SkuGroupSku. Example: "skuGroups/0e6403d1-4694-44d2-a696-
1509
+ # 7a78b1a69301/skus/AA95-CD31-42FE".
1510
+ # Corresponds to the JSON property `name`
1511
+ # @return [String]
1512
+ attr_accessor :name
1513
+
1514
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1515
+ # , and others.
1516
+ # Corresponds to the JSON property `productTaxonomy`
1517
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaProductTaxonomy]
1518
+ attr_accessor :product_taxonomy
1519
+
1520
+ # Service that the SkuGroupSku belongs to.
1521
+ # Corresponds to the JSON property `service`
1522
+ # @return [String]
1523
+ attr_accessor :service
2960
1524
 
2961
- # Data transfer within the same region. When the source region and destination
2962
- # region are in the same zone, using internal IP addresses, there isn't any
2963
- # charge for data transfer.
2964
- # Corresponds to the JSON property `intraRegionEgress`
2965
- # @return [Google::Apis::CloudbillingV1beta::IntraRegionEgress]
2966
- attr_accessor :intra_region_egress
1525
+ # Unique identifier for the SKU. It is the string after the collection
1526
+ # identifier "skus/" Example: "AA95-CD31-42FE".
1527
+ # Corresponds to the JSON property `skuId`
1528
+ # @return [String]
1529
+ attr_accessor :sku_id
2967
1530
 
2968
1531
  def initialize(**args)
2969
1532
  update!(**args)
@@ -2971,93 +1534,23 @@ module Google
2971
1534
 
2972
1535
  # Update properties of this object
2973
1536
  def update!(**args)
2974
- @inter_region_egress = args[:inter_region_egress] if args.key?(:inter_region_egress)
2975
- @intra_region_egress = args[:intra_region_egress] if args.key?(:intra_region_egress)
1537
+ @display_name = args[:display_name] if args.key?(:display_name)
1538
+ @geo_taxonomy = args[:geo_taxonomy] if args.key?(:geo_taxonomy)
1539
+ @name = args[:name] if args.key?(:name)
1540
+ @product_taxonomy = args[:product_taxonomy] if args.key?(:product_taxonomy)
1541
+ @service = args[:service] if args.key?(:service)
1542
+ @sku_id = args[:sku_id] if args.key?(:sku_id)
2976
1543
  end
2977
1544
  end
2978
1545
 
2979
- # Specifies usage on a single Google Cloud product over a time frame. Each
2980
- # Google Cloud product has its own message, containing specific product
2981
- # configuration parameters of the product usage amounts along each dimension in
2982
- # which the product is billed.
2983
- class Workload
1546
+ # Encapsulates a product category.
1547
+ class GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory
2984
1548
  include Google::Apis::Core::Hashable
2985
1549
 
2986
- # Specifies usage for Cloud CDN Data Transfer.
2987
- # Corresponds to the JSON property `cloudCdnEgressWorkload`
2988
- # @return [Google::Apis::CloudbillingV1beta::CloudCdnEgressWorkload]
2989
- attr_accessor :cloud_cdn_egress_workload
2990
-
2991
- # Specifies usage for Cloud CDN resources.
2992
- # Corresponds to the JSON property `cloudCdnWorkload`
2993
- # @return [Google::Apis::CloudbillingV1beta::CloudCdnWorkload]
2994
- attr_accessor :cloud_cdn_workload
2995
-
2996
- # Includes the estimate for Interconnect Data Transfer only. To specify usage
2997
- # for data transfer between VMs and internet end-points, use the Standard Tier
2998
- # Internet Data Transfer interface.
2999
- # Corresponds to the JSON property `cloudInterconnectEgressWorkload`
3000
- # @return [Google::Apis::CloudbillingV1beta::CloudInterconnectEgressWorkload]
3001
- attr_accessor :cloud_interconnect_egress_workload
3002
-
3003
- # Specifies usage for Cloud Interconnect resources.
3004
- # Corresponds to the JSON property `cloudInterconnectWorkload`
3005
- # @return [Google::Apis::CloudbillingV1beta::CloudInterconnectWorkload]
3006
- attr_accessor :cloud_interconnect_workload
3007
-
3008
- # Specification of a network type. Network data transfer within Google Cloud
3009
- # applies when you move or copy data from one Cloud Storage bucket to another or
3010
- # when another Google Cloud service accesses data in your Cloud Storage bucket.
3011
- # This includes the network data transfer within Google Cloud and the general
3012
- # network usage. * If transferring data between two regions, the source and
3013
- # destination fields are set to different values. For example: `source_continent`
3014
- # = "SOURCE_CONTINENT_ASIA_PACIFIC", `destination_continent` = "
3015
- # SOURCE_CONTINENT_SOUTH_AMERICA". * If transferring data within one region, the
3016
- # source and destination fields are set to the same value. For example: `
3017
- # source_continent` = "SOURCE_CONTINENT_ASIA_PACIFIC", `destination_continent` =
3018
- # "SOURCE_CONTINENT_ASIA_PACIFIC". Some examples for the Network data transfer
3019
- # traffic type on the pricing page. * Data moves between different locations on
3020
- # the same continent. `source_continent` = "SOURCE_CONTINENT_ASIA_PACIFIC", `
3021
- # destination_continent` = "SOURCE_CONTINENT_ASIA_PACIFIC". * Data moves between
3022
- # different continents and neither is Australia. `source_continent` = "
3023
- # SOURCE_CONTINENT_NORTH_AMERICA", `destination_continent` = "
3024
- # SOURCE_CONTINENT_ASIA_PACIFIC". * Data moves between different continents and
3025
- # one is Australia. `source_continent` = "SOURCE_CONTINENT_NORTH_AMERICA", `
3026
- # destination_continent` = "SOURCE_CONTINENT_AUSTRALIA".
3027
- # Corresponds to the JSON property `cloudStorageEgressWorkload`
3028
- # @return [Google::Apis::CloudbillingV1beta::CloudStorageEgressWorkload]
3029
- attr_accessor :cloud_storage_egress_workload
3030
-
3031
- # Specifies usage of Cloud Storage resources.
3032
- # Corresponds to the JSON property `cloudStorageWorkload`
3033
- # @return [Google::Apis::CloudbillingV1beta::CloudStorageWorkload]
3034
- attr_accessor :cloud_storage_workload
3035
-
3036
- # Specificies usage of a set of identical compute VM instances.
3037
- # Corresponds to the JSON property `computeVmWorkload`
3038
- # @return [Google::Apis::CloudbillingV1beta::ComputeVmWorkload]
3039
- attr_accessor :compute_vm_workload
3040
-
3041
- # Required. A name for this workload. All workloads in a `CostScenario` must
3042
- # have a unique `name`. Each `name` may be at most 128 characters long.
3043
- # Corresponds to the JSON property `name`
1550
+ # Name of the product category.
1551
+ # Corresponds to the JSON property `category`
3044
1552
  # @return [String]
3045
- attr_accessor :name
3046
-
3047
- # Specify a Premium Tier Internet Data Transfer networking workload.
3048
- # Corresponds to the JSON property `premiumTierEgressWorkload`
3049
- # @return [Google::Apis::CloudbillingV1beta::PremiumTierEgressWorkload]
3050
- attr_accessor :premium_tier_egress_workload
3051
-
3052
- # Specify Standard Tier Internet Data Transfer.
3053
- # Corresponds to the JSON property `standardTierEgressWorkload`
3054
- # @return [Google::Apis::CloudbillingV1beta::StandardTierEgressWorkload]
3055
- attr_accessor :standard_tier_egress_workload
3056
-
3057
- # Specify VM to VM data transfer.
3058
- # Corresponds to the JSON property `vmToVmEgressWorkload`
3059
- # @return [Google::Apis::CloudbillingV1beta::VmToVmEgressWorkload]
3060
- attr_accessor :vm_to_vm_egress_workload
1553
+ attr_accessor :category
3061
1554
 
3062
1555
  def initialize(**args)
3063
1556
  update!(**args)
@@ -3065,38 +1558,33 @@ module Google
3065
1558
 
3066
1559
  # Update properties of this object
3067
1560
  def update!(**args)
3068
- @cloud_cdn_egress_workload = args[:cloud_cdn_egress_workload] if args.key?(:cloud_cdn_egress_workload)
3069
- @cloud_cdn_workload = args[:cloud_cdn_workload] if args.key?(:cloud_cdn_workload)
3070
- @cloud_interconnect_egress_workload = args[:cloud_interconnect_egress_workload] if args.key?(:cloud_interconnect_egress_workload)
3071
- @cloud_interconnect_workload = args[:cloud_interconnect_workload] if args.key?(:cloud_interconnect_workload)
3072
- @cloud_storage_egress_workload = args[:cloud_storage_egress_workload] if args.key?(:cloud_storage_egress_workload)
3073
- @cloud_storage_workload = args[:cloud_storage_workload] if args.key?(:cloud_storage_workload)
3074
- @compute_vm_workload = args[:compute_vm_workload] if args.key?(:compute_vm_workload)
3075
- @name = args[:name] if args.key?(:name)
3076
- @premium_tier_egress_workload = args[:premium_tier_egress_workload] if args.key?(:premium_tier_egress_workload)
3077
- @standard_tier_egress_workload = args[:standard_tier_egress_workload] if args.key?(:standard_tier_egress_workload)
3078
- @vm_to_vm_egress_workload = args[:vm_to_vm_egress_workload] if args.key?(:vm_to_vm_egress_workload)
1561
+ @category = args[:category] if args.key?(:category)
3079
1562
  end
3080
1563
  end
3081
1564
 
3082
- # Estimated cost for a workload.
3083
- class WorkloadCostEstimate
1565
+ # Represents an amount of money with its currency type.
1566
+ class Money
3084
1567
  include Google::Apis::Core::Hashable
3085
1568
 
3086
- # The name of the workload, as specified in the `CostScenario`.
3087
- # Corresponds to the JSON property `name`
1569
+ # The three-letter currency code defined in ISO 4217.
1570
+ # Corresponds to the JSON property `currencyCode`
3088
1571
  # @return [String]
3089
- attr_accessor :name
1572
+ attr_accessor :currency_code
3090
1573
 
3091
- # Estimated costs for each SKU in the workload.
3092
- # Corresponds to the JSON property `skuCostEstimates`
3093
- # @return [Array<Google::Apis::CloudbillingV1beta::SkuCostEstimate>]
3094
- attr_accessor :sku_cost_estimates
1574
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
1575
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
1576
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
1577
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
1578
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
1579
+ # Corresponds to the JSON property `nanos`
1580
+ # @return [Fixnum]
1581
+ attr_accessor :nanos
3095
1582
 
3096
- # An estimated cost.
3097
- # Corresponds to the JSON property `workloadTotalCostEstimate`
3098
- # @return [Google::Apis::CloudbillingV1beta::CostEstimate]
3099
- attr_accessor :workload_total_cost_estimate
1583
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
1584
+ # 1 unit is one US dollar.
1585
+ # Corresponds to the JSON property `units`
1586
+ # @return [Fixnum]
1587
+ attr_accessor :units
3100
1588
 
3101
1589
  def initialize(**args)
3102
1590
  update!(**args)
@@ -3104,9 +1592,9 @@ module Google
3104
1592
 
3105
1593
  # Update properties of this object
3106
1594
  def update!(**args)
3107
- @name = args[:name] if args.key?(:name)
3108
- @sku_cost_estimates = args[:sku_cost_estimates] if args.key?(:sku_cost_estimates)
3109
- @workload_total_cost_estimate = args[:workload_total_cost_estimate] if args.key?(:workload_total_cost_estimate)
1595
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
1596
+ @nanos = args[:nanos] if args.key?(:nanos)
1597
+ @units = args[:units] if args.key?(:units)
3110
1598
  end
3111
1599
  end
3112
1600
  end