google-apis-cloudbilling_v1beta 0.23.0 → 0.25.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,6 +22,217 @@ module Google
22
22
  module Apis
23
23
  module CloudbillingV1beta
24
24
 
25
+ # A local representation of the query used to fetch the data. This is used
26
+ # instead of the raw QueryBillingDataRequest to avoid pulling in Cloud Policy
27
+ # Enforcement (CPE) resource_type annotations into the response payload, which
28
+ # causes ESF validation failures.
29
+ class AgenticQueryInfo
30
+ include Google::Apis::Core::Hashable
31
+
32
+ # The columns queried.
33
+ # Corresponds to the JSON property `columns`
34
+ # @return [String]
35
+ attr_accessor :columns
36
+
37
+ # The filter applied to the query.
38
+ # Corresponds to the JSON property `filter`
39
+ # @return [String]
40
+ attr_accessor :filter
41
+
42
+ # The group-by clause applied to the query.
43
+ # Corresponds to the JSON property `groupBy`
44
+ # @return [String]
45
+ attr_accessor :group_by
46
+
47
+ # The row limit applied to the query.
48
+ # Corresponds to the JSON property `limit`
49
+ # @return [Fixnum]
50
+ attr_accessor :limit
51
+
52
+ # The order-by clause applied to the query.
53
+ # Corresponds to the JSON property `orderBy`
54
+ # @return [String]
55
+ attr_accessor :order_by
56
+
57
+ # The parents (e.g. projects, billing accounts) queried.
58
+ # Corresponds to the JSON property `parents`
59
+ # @return [Array<String>]
60
+ attr_accessor :parents
61
+
62
+ # The view queried.
63
+ # Corresponds to the JSON property `view`
64
+ # @return [String]
65
+ attr_accessor :view
66
+
67
+ def initialize(**args)
68
+ update!(**args)
69
+ end
70
+
71
+ # Update properties of this object
72
+ def update!(**args)
73
+ @columns = args[:columns] if args.key?(:columns)
74
+ @filter = args[:filter] if args.key?(:filter)
75
+ @group_by = args[:group_by] if args.key?(:group_by)
76
+ @limit = args[:limit] if args.key?(:limit)
77
+ @order_by = args[:order_by] if args.key?(:order_by)
78
+ @parents = args[:parents] if args.key?(:parents)
79
+ @view = args[:view] if args.key?(:view)
80
+ end
81
+ end
82
+
83
+ # An ordered collection of elements of arbitrary count.
84
+ class Array
85
+ include Google::Apis::Core::Hashable
86
+
87
+ # The elements of the array.
88
+ # Corresponds to the JSON property `element`
89
+ # @return [Array<Google::Apis::CloudbillingV1beta::ValueProto>]
90
+ attr_accessor :element
91
+
92
+ def initialize(**args)
93
+ update!(**args)
94
+ end
95
+
96
+ # Update properties of this object
97
+ def update!(**args)
98
+ @element = args[:element] if args.key?(:element)
99
+ end
100
+ end
101
+
102
+ # Encapsulates billing data.
103
+ class BillingData
104
+ include Google::Apis::Core::Hashable
105
+
106
+ # Information about columns.
107
+ # Corresponds to the JSON property `columnInfo`
108
+ # @return [Array<Google::Apis::CloudbillingV1beta::ColumnInfo>]
109
+ attr_accessor :column_info
110
+
111
+ # Rows.
112
+ # Corresponds to the JSON property `rows`
113
+ # @return [Array<Google::Apis::CloudbillingV1beta::Row>]
114
+ attr_accessor :rows
115
+
116
+ def initialize(**args)
117
+ update!(**args)
118
+ end
119
+
120
+ # Update properties of this object
121
+ def update!(**args)
122
+ @column_info = args[:column_info] if args.key?(:column_info)
123
+ @rows = args[:rows] if args.key?(:rows)
124
+ end
125
+ end
126
+
127
+ # Specifies a Billing data resource that can be used for authorization to access
128
+ # billing data.
129
+ class BillingDataResource
130
+ include Google::Apis::Core::Hashable
131
+
132
+ # Optional. If not provided the billing account currently associated with the
133
+ # resource will be used.
134
+ # Corresponds to the JSON property `billingAccount`
135
+ # @return [String]
136
+ attr_accessor :billing_account
137
+
138
+ # Required. Resource name for an entitity that can be used for authorization to
139
+ # access billing data such as `projects/`project`` or `billingAccounts/`
140
+ # billing_account``
141
+ # Corresponds to the JSON property `resource`
142
+ # @return [String]
143
+ attr_accessor :resource
144
+
145
+ def initialize(**args)
146
+ update!(**args)
147
+ end
148
+
149
+ # Update properties of this object
150
+ def update!(**args)
151
+ @billing_account = args[:billing_account] if args.key?(:billing_account)
152
+ @resource = args[:resource] if args.key?(:resource)
153
+ end
154
+ end
155
+
156
+ # Represents a column header.
157
+ class ColumnInfo
158
+ include Google::Apis::Core::Hashable
159
+
160
+ # Name of the column.
161
+ # Corresponds to the JSON property `column`
162
+ # @return [String]
163
+ attr_accessor :column
164
+
165
+ def initialize(**args)
166
+ update!(**args)
167
+ end
168
+
169
+ # Update properties of this object
170
+ def update!(**args)
171
+ @column = args[:column] if args.key?(:column)
172
+ end
173
+ end
174
+
175
+ # A dataset used to support an insight, suitable for UI rendering (tables/charts)
176
+ # .
177
+ class DataSet
178
+ include Google::Apis::Core::Hashable
179
+
180
+ # Encapsulates billing data.
181
+ # Corresponds to the JSON property `billingData`
182
+ # @return [Google::Apis::CloudbillingV1beta::BillingData]
183
+ attr_accessor :billing_data
184
+
185
+ # A local representation of the query used to fetch the data. This is used
186
+ # instead of the raw QueryBillingDataRequest to avoid pulling in Cloud Policy
187
+ # Enforcement (CPE) resource_type annotations into the response payload, which
188
+ # causes ESF validation failures.
189
+ # Corresponds to the JSON property `queryInfo`
190
+ # @return [Google::Apis::CloudbillingV1beta::AgenticQueryInfo]
191
+ attr_accessor :query_info
192
+
193
+ # A suggested chart for the data set, used for UI rendering.
194
+ # Corresponds to the JSON property `suggestedChart`
195
+ # @return [Google::Apis::CloudbillingV1beta::SuggestedChart]
196
+ attr_accessor :suggested_chart
197
+
198
+ def initialize(**args)
199
+ update!(**args)
200
+ end
201
+
202
+ # Update properties of this object
203
+ def update!(**args)
204
+ @billing_data = args[:billing_data] if args.key?(:billing_data)
205
+ @query_info = args[:query_info] if args.key?(:query_info)
206
+ @suggested_chart = args[:suggested_chart] if args.key?(:suggested_chart)
207
+ end
208
+ end
209
+
210
+ # A datetime value.
211
+ class Datetime
212
+ include Google::Apis::Core::Hashable
213
+
214
+ # Represents bit field encoding of year/month/day/hour/minute/second. See class
215
+ # DatetimeValue in civil_time.h for details of encoding.
216
+ # Corresponds to the JSON property `bitFieldDatetimeSeconds`
217
+ # @return [Fixnum]
218
+ attr_accessor :bit_field_datetime_seconds
219
+
220
+ # Non-negative fractions of a second at nanosecond resolution.
221
+ # Corresponds to the JSON property `nanos`
222
+ # @return [Fixnum]
223
+ attr_accessor :nanos
224
+
225
+ def initialize(**args)
226
+ update!(**args)
227
+ end
228
+
229
+ # Update properties of this object
230
+ def update!(**args)
231
+ @bit_field_datetime_seconds = args[:bit_field_datetime_seconds] if args.key?(:bit_field_datetime_seconds)
232
+ @nanos = args[:nanos] if args.key?(:nanos)
233
+ end
234
+ end
235
+
25
236
  # A representation of a decimal value, such as 2.5. Clients may convert values
26
237
  # into language-native decimal formats, such as Java's [BigDecimal](https://docs.
27
238
  # oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or
@@ -78,6 +289,141 @@ module Google
78
289
  end
79
290
  end
80
291
 
292
+ # Encapsulates all structured data and the completed summary.
293
+ class FinalResult
294
+ include Google::Apis::Core::Hashable
295
+
296
+ # Output only. Data sets used to support the insights, suitable for UI rendering
297
+ # (tables/charts).
298
+ # Corresponds to the JSON property `dataSets`
299
+ # @return [Array<Google::Apis::CloudbillingV1beta::DataSet>]
300
+ attr_accessor :data_sets
301
+
302
+ # Output only. Contains the full natural language analysis, including thoughts,
303
+ # reasoning, and references.
304
+ # Corresponds to the JSON property `fullAnalysis`
305
+ # @return [String]
306
+ attr_accessor :full_analysis
307
+
308
+ # Output only. A list of discrete insights gleaned from the data.
309
+ # Corresponds to the JSON property `insights`
310
+ # @return [Array<Google::Apis::CloudbillingV1beta::Insight>]
311
+ attr_accessor :insights
312
+
313
+ # Output only. Links to interoperable tools (e.g., pre-filtered Cost Reports or
314
+ # BQE queries).
315
+ # Corresponds to the JSON property `interopLinks`
316
+ # @return [Array<Google::Apis::CloudbillingV1beta::InteropLink>]
317
+ attr_accessor :interop_links
318
+
319
+ # Output only. A list of suggested follow-up queries for the user.
320
+ # Corresponds to the JSON property `suggestedQueries`
321
+ # @return [Array<Google::Apis::CloudbillingV1beta::SuggestedQuery>]
322
+ attr_accessor :suggested_queries
323
+
324
+ # Output only. The full natural language summary (re-sent for consistency).
325
+ # Corresponds to the JSON property `summary`
326
+ # @return [String]
327
+ attr_accessor :summary
328
+
329
+ def initialize(**args)
330
+ update!(**args)
331
+ end
332
+
333
+ # Update properties of this object
334
+ def update!(**args)
335
+ @data_sets = args[:data_sets] if args.key?(:data_sets)
336
+ @full_analysis = args[:full_analysis] if args.key?(:full_analysis)
337
+ @insights = args[:insights] if args.key?(:insights)
338
+ @interop_links = args[:interop_links] if args.key?(:interop_links)
339
+ @suggested_queries = args[:suggested_queries] if args.key?(:suggested_queries)
340
+ @summary = args[:summary] if args.key?(:summary)
341
+ end
342
+ end
343
+
344
+ # Request for GenerateInsights.
345
+ class GenerateInsightsRequest
346
+ include Google::Apis::Core::Hashable
347
+
348
+ # Optional. Filters cost data by service id. Follows https://google.aip.dev/160
349
+ # for the filter syntax. eg. filter: "service = 'C7E2-9256-1C43'"
350
+ # Corresponds to the JSON property `filter`
351
+ # @return [String]
352
+ attr_accessor :filter
353
+
354
+ # Optional. Overrides the maximum iterations for any selected strategy.
355
+ # Corresponds to the JSON property `overriddenMaxIterationCounts`
356
+ # @return [Fixnum]
357
+ attr_accessor :overridden_max_iteration_counts
358
+
359
+ # Optional. The billing account or projects to analyze.
360
+ # Corresponds to the JSON property `parents`
361
+ # @return [Array<Google::Apis::CloudbillingV1beta::BillingDataResource>]
362
+ attr_accessor :parents
363
+
364
+ # Required. The natural language prompt from the user.
365
+ # Corresponds to the JSON property `prompt`
366
+ # @return [String]
367
+ attr_accessor :prompt
368
+
369
+ # Additional context for personalization (e.g., user persona, role).
370
+ # Corresponds to the JSON property `userContext`
371
+ # @return [Google::Apis::CloudbillingV1beta::UserContext]
372
+ attr_accessor :user_context
373
+
374
+ def initialize(**args)
375
+ update!(**args)
376
+ end
377
+
378
+ # Update properties of this object
379
+ def update!(**args)
380
+ @filter = args[:filter] if args.key?(:filter)
381
+ @overridden_max_iteration_counts = args[:overridden_max_iteration_counts] if args.key?(:overridden_max_iteration_counts)
382
+ @parents = args[:parents] if args.key?(:parents)
383
+ @prompt = args[:prompt] if args.key?(:prompt)
384
+ @user_context = args[:user_context] if args.key?(:user_context)
385
+ end
386
+ end
387
+
388
+ # Response for GenerateInsights.
389
+ class GenerateInsightsResponse
390
+ include Google::Apis::Core::Hashable
391
+
392
+ # Encapsulates all structured data and the completed summary.
393
+ # Corresponds to the JSON property `finalResult`
394
+ # @return [Google::Apis::CloudbillingV1beta::FinalResult]
395
+ attr_accessor :final_result
396
+
397
+ # Encapsulates details about why a request was rejected.
398
+ # Corresponds to the JSON property `rejection`
399
+ # @return [Google::Apis::CloudbillingV1beta::Rejection]
400
+ attr_accessor :rejection
401
+
402
+ # Output only. A chunk of the natural language summary (customer-facing). The UI
403
+ # can append these chunks to provide a real-time "typing" effect.
404
+ # Corresponds to the JSON property `summaryChunk`
405
+ # @return [String]
406
+ attr_accessor :summary_chunk
407
+
408
+ # Output only. A chunk of the agent's internal reasoning process. The UI can use
409
+ # this to render a "Thinking..." log or status.
410
+ # Corresponds to the JSON property `thoughtChunk`
411
+ # @return [String]
412
+ attr_accessor :thought_chunk
413
+
414
+ def initialize(**args)
415
+ update!(**args)
416
+ end
417
+
418
+ # Update properties of this object
419
+ def update!(**args)
420
+ @final_result = args[:final_result] if args.key?(:final_result)
421
+ @rejection = args[:rejection] if args.key?(:rejection)
422
+ @summary_chunk = args[:summary_chunk] if args.key?(:summary_chunk)
423
+ @thought_chunk = args[:thought_chunk] if args.key?(:thought_chunk)
424
+ end
425
+ end
426
+
81
427
  # Encapsulates the aggregation information such as aggregation level and
82
428
  # interval for a billing account price.
83
429
  class GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo
@@ -1562,6 +1908,131 @@ module Google
1562
1908
  end
1563
1909
  end
1564
1910
 
1911
+ # e.g. insight: title: "Cost Increase (The Explanation)" description: "Your cost
1912
+ # increase was driven by Vertex AI Online Prediction in us-central1..." severity:
1913
+ # INFO
1914
+ class Insight
1915
+ include Google::Apis::Core::Hashable
1916
+
1917
+ # Output only. The description of the insight.
1918
+ # Corresponds to the JSON property `description`
1919
+ # @return [String]
1920
+ attr_accessor :description
1921
+
1922
+ # Output only. The severity of the insight, used for UI rendering (e.g., color-
1923
+ # coding).
1924
+ # Corresponds to the JSON property `severity`
1925
+ # @return [String]
1926
+ attr_accessor :severity
1927
+
1928
+ # Output only. The title of the insight.
1929
+ # Corresponds to the JSON property `title`
1930
+ # @return [String]
1931
+ attr_accessor :title
1932
+
1933
+ def initialize(**args)
1934
+ update!(**args)
1935
+ end
1936
+
1937
+ # Update properties of this object
1938
+ def update!(**args)
1939
+ @description = args[:description] if args.key?(:description)
1940
+ @severity = args[:severity] if args.key?(:severity)
1941
+ @title = args[:title] if args.key?(:title)
1942
+ end
1943
+ end
1944
+
1945
+ # A link to interoperable tools (e.g., pre-filtered Cost Reports, BQE queries).
1946
+ class InteropLink
1947
+ include Google::Apis::Core::Hashable
1948
+
1949
+ # Output only. The label of the link, suitable for UI rendering.
1950
+ # Corresponds to the JSON property `label`
1951
+ # @return [String]
1952
+ attr_accessor :label
1953
+
1954
+ # Output only. The type of the interop link, e.g., "COST_REPORT", "BQE_QUERY",
1955
+ # etc.
1956
+ # Corresponds to the JSON property `linkType`
1957
+ # @return [String]
1958
+ attr_accessor :link_type
1959
+
1960
+ # Output only. The URL of the link.
1961
+ # Corresponds to the JSON property `url`
1962
+ # @return [String]
1963
+ attr_accessor :url
1964
+
1965
+ def initialize(**args)
1966
+ update!(**args)
1967
+ end
1968
+
1969
+ # Update properties of this object
1970
+ def update!(**args)
1971
+ @label = args[:label] if args.key?(:label)
1972
+ @link_type = args[:link_type] if args.key?(:link_type)
1973
+ @url = args[:url] if args.key?(:url)
1974
+ end
1975
+ end
1976
+
1977
+ # An unordered mapping from key to value, represented as a collection of map
1978
+ # entries.
1979
+ class Map
1980
+ include Google::Apis::Core::Hashable
1981
+
1982
+ # Represents the map entries in the map.
1983
+ # Corresponds to the JSON property `entry`
1984
+ # @return [Array<Google::Apis::CloudbillingV1beta::MapEntry>]
1985
+ attr_accessor :entry
1986
+
1987
+ def initialize(**args)
1988
+ update!(**args)
1989
+ end
1990
+
1991
+ # Update properties of this object
1992
+ def update!(**args)
1993
+ @entry = args[:entry] if args.key?(:entry)
1994
+ end
1995
+ end
1996
+
1997
+ # A single entry in a Map, representing the mapping between `key` and `value`.
1998
+ class MapEntry
1999
+ include Google::Apis::Core::Hashable
2000
+
2001
+ # This is a copy of storage/googlesql/public/value.proto. ValueProto represents
2002
+ # the serialized form of the googlesql::Value. The intention is to support
2003
+ # multiple languages including Java and C++, so we must be sensitive to the
2004
+ # distinction between Java Strings and byte arrays or ByteStrings. We also want
2005
+ # to support use-cases which do not want to serialize a copy of the GoogleSQL
2006
+ # type for every instance (which might be very repetitive). Therefore, unlike
2007
+ # googlesql::Value, ValueProto does not carry full type information with every
2008
+ # instance, and can only be fully interpreted with an associated TypeProto.
2009
+ # Corresponds to the JSON property `key`
2010
+ # @return [Google::Apis::CloudbillingV1beta::ValueProto]
2011
+ attr_accessor :key
2012
+
2013
+ # This is a copy of storage/googlesql/public/value.proto. ValueProto represents
2014
+ # the serialized form of the googlesql::Value. The intention is to support
2015
+ # multiple languages including Java and C++, so we must be sensitive to the
2016
+ # distinction between Java Strings and byte arrays or ByteStrings. We also want
2017
+ # to support use-cases which do not want to serialize a copy of the GoogleSQL
2018
+ # type for every instance (which might be very repetitive). Therefore, unlike
2019
+ # googlesql::Value, ValueProto does not carry full type information with every
2020
+ # instance, and can only be fully interpreted with an associated TypeProto.
2021
+ # Corresponds to the JSON property `value`
2022
+ # @return [Google::Apis::CloudbillingV1beta::ValueProto]
2023
+ attr_accessor :value
2024
+
2025
+ def initialize(**args)
2026
+ update!(**args)
2027
+ end
2028
+
2029
+ # Update properties of this object
2030
+ def update!(**args)
2031
+ @key = args[:key] if args.key?(:key)
2032
+ @value = args[:value] if args.key?(:value)
2033
+ end
2034
+ end
2035
+
1565
2036
  # Represents an amount of money with its currency type.
1566
2037
  class Money
1567
2038
  include Google::Apis::Core::Hashable
@@ -1597,6 +2068,429 @@ module Google
1597
2068
  @units = args[:units] if args.key?(:units)
1598
2069
  end
1599
2070
  end
2071
+
2072
+ # A range of values, bounded by the values 'start' (inclusive) and 'end' (
2073
+ # exclusive). A range has an element type, and values must be of this element
2074
+ # type. A range is contiguous, ie it contains all values of the given element
2075
+ # type starting at 'start' and ending before 'end'. A "null" value on start or
2076
+ # end represents an unbounded start or end value respectively. Start and end
2077
+ # values must always be present.
2078
+ class Range
2079
+ include Google::Apis::Core::Hashable
2080
+
2081
+ # This is a copy of storage/googlesql/public/value.proto. ValueProto represents
2082
+ # the serialized form of the googlesql::Value. The intention is to support
2083
+ # multiple languages including Java and C++, so we must be sensitive to the
2084
+ # distinction between Java Strings and byte arrays or ByteStrings. We also want
2085
+ # to support use-cases which do not want to serialize a copy of the GoogleSQL
2086
+ # type for every instance (which might be very repetitive). Therefore, unlike
2087
+ # googlesql::Value, ValueProto does not carry full type information with every
2088
+ # instance, and can only be fully interpreted with an associated TypeProto.
2089
+ # Corresponds to the JSON property `end`
2090
+ # @return [Google::Apis::CloudbillingV1beta::ValueProto]
2091
+ attr_accessor :end
2092
+
2093
+ # This is a copy of storage/googlesql/public/value.proto. ValueProto represents
2094
+ # the serialized form of the googlesql::Value. The intention is to support
2095
+ # multiple languages including Java and C++, so we must be sensitive to the
2096
+ # distinction between Java Strings and byte arrays or ByteStrings. We also want
2097
+ # to support use-cases which do not want to serialize a copy of the GoogleSQL
2098
+ # type for every instance (which might be very repetitive). Therefore, unlike
2099
+ # googlesql::Value, ValueProto does not carry full type information with every
2100
+ # instance, and can only be fully interpreted with an associated TypeProto.
2101
+ # Corresponds to the JSON property `start`
2102
+ # @return [Google::Apis::CloudbillingV1beta::ValueProto]
2103
+ attr_accessor :start
2104
+
2105
+ def initialize(**args)
2106
+ update!(**args)
2107
+ end
2108
+
2109
+ # Update properties of this object
2110
+ def update!(**args)
2111
+ @end = args[:end] if args.key?(:end)
2112
+ @start = args[:start] if args.key?(:start)
2113
+ end
2114
+ end
2115
+
2116
+ # Encapsulates details about why a request was rejected.
2117
+ class Rejection
2118
+ include Google::Apis::Core::Hashable
2119
+
2120
+ # Output only. A user-facing message explaining the rejection.
2121
+ # Corresponds to the JSON property `displayMessage`
2122
+ # @return [String]
2123
+ attr_accessor :display_message
2124
+
2125
+ # Output only. The reason for the rejection.
2126
+ # Corresponds to the JSON property `reason`
2127
+ # @return [String]
2128
+ attr_accessor :reason
2129
+
2130
+ def initialize(**args)
2131
+ update!(**args)
2132
+ end
2133
+
2134
+ # Update properties of this object
2135
+ def update!(**args)
2136
+ @display_message = args[:display_message] if args.key?(:display_message)
2137
+ @reason = args[:reason] if args.key?(:reason)
2138
+ end
2139
+ end
2140
+
2141
+ # Represents a row in the query result.
2142
+ class Row
2143
+ include Google::Apis::Core::Hashable
2144
+
2145
+ # Values for a row in the column order.
2146
+ # Corresponds to the JSON property `values`
2147
+ # @return [Array<Google::Apis::CloudbillingV1beta::ValueProto>]
2148
+ attr_accessor :values
2149
+
2150
+ def initialize(**args)
2151
+ update!(**args)
2152
+ end
2153
+
2154
+ # Update properties of this object
2155
+ def update!(**args)
2156
+ @values = args[:values] if args.key?(:values)
2157
+ end
2158
+ end
2159
+
2160
+ # A collection of fields. The count, order, and type of the fields is determined
2161
+ # by the type associated with this value.
2162
+ class Struct
2163
+ include Google::Apis::Core::Hashable
2164
+
2165
+ # The fields in the struct
2166
+ # Corresponds to the JSON property `field`
2167
+ # @return [Array<Google::Apis::CloudbillingV1beta::ValueProto>]
2168
+ attr_accessor :field
2169
+
2170
+ def initialize(**args)
2171
+ update!(**args)
2172
+ end
2173
+
2174
+ # Update properties of this object
2175
+ def update!(**args)
2176
+ @field = args[:field] if args.key?(:field)
2177
+ end
2178
+ end
2179
+
2180
+ # A suggested chart for the data set, used for UI rendering.
2181
+ class SuggestedChart
2182
+ include Google::Apis::Core::Hashable
2183
+
2184
+ # The title of the chart.
2185
+ # Corresponds to the JSON property `chartTitle`
2186
+ # @return [String]
2187
+ attr_accessor :chart_title
2188
+
2189
+ # The type of the chart.
2190
+ # Corresponds to the JSON property `chartType`
2191
+ # @return [String]
2192
+ attr_accessor :chart_type
2193
+
2194
+ # The field used for the series (e.g., color-coding). Optional, but recommended
2195
+ # for time-series data.
2196
+ # Corresponds to the JSON property `seriesField`
2197
+ # @return [String]
2198
+ attr_accessor :series_field
2199
+
2200
+ # The field used for the x-axis.
2201
+ # Corresponds to the JSON property `xAxisField`
2202
+ # @return [String]
2203
+ attr_accessor :x_axis_field
2204
+
2205
+ # The label of the x-axis.
2206
+ # Corresponds to the JSON property `xAxisLabel`
2207
+ # @return [String]
2208
+ attr_accessor :x_axis_label
2209
+
2210
+ # The field used for the y-axis.
2211
+ # Corresponds to the JSON property `yAxisField`
2212
+ # @return [String]
2213
+ attr_accessor :y_axis_field
2214
+
2215
+ # The label of the y-axis.
2216
+ # Corresponds to the JSON property `yAxisLabel`
2217
+ # @return [String]
2218
+ attr_accessor :y_axis_label
2219
+
2220
+ def initialize(**args)
2221
+ update!(**args)
2222
+ end
2223
+
2224
+ # Update properties of this object
2225
+ def update!(**args)
2226
+ @chart_title = args[:chart_title] if args.key?(:chart_title)
2227
+ @chart_type = args[:chart_type] if args.key?(:chart_type)
2228
+ @series_field = args[:series_field] if args.key?(:series_field)
2229
+ @x_axis_field = args[:x_axis_field] if args.key?(:x_axis_field)
2230
+ @x_axis_label = args[:x_axis_label] if args.key?(:x_axis_label)
2231
+ @y_axis_field = args[:y_axis_field] if args.key?(:y_axis_field)
2232
+ @y_axis_label = args[:y_axis_label] if args.key?(:y_axis_label)
2233
+ end
2234
+ end
2235
+
2236
+ # A suggested follow-up query for the user.
2237
+ class SuggestedQuery
2238
+ include Google::Apis::Core::Hashable
2239
+
2240
+ # The natural language query.
2241
+ # Corresponds to the JSON property `query`
2242
+ # @return [String]
2243
+ attr_accessor :query
2244
+
2245
+ def initialize(**args)
2246
+ update!(**args)
2247
+ end
2248
+
2249
+ # Update properties of this object
2250
+ def update!(**args)
2251
+ @query = args[:query] if args.key?(:query)
2252
+ end
2253
+ end
2254
+
2255
+ # Additional context for personalization (e.g., user persona, role).
2256
+ class UserContext
2257
+ include Google::Apis::Core::Hashable
2258
+
2259
+ # Optional. The user's persona (e.g., FinOps Manager, Developer).
2260
+ # Corresponds to the JSON property `persona`
2261
+ # @return [String]
2262
+ attr_accessor :persona
2263
+
2264
+ # Optional. The user's role (e.g., Billing Admin, Project Owner, etc.).
2265
+ # Corresponds to the JSON property `role`
2266
+ # @return [String]
2267
+ attr_accessor :role
2268
+
2269
+ def initialize(**args)
2270
+ update!(**args)
2271
+ end
2272
+
2273
+ # Update properties of this object
2274
+ def update!(**args)
2275
+ @persona = args[:persona] if args.key?(:persona)
2276
+ @role = args[:role] if args.key?(:role)
2277
+ end
2278
+ end
2279
+
2280
+ # This is a copy of storage/googlesql/public/value.proto. ValueProto represents
2281
+ # the serialized form of the googlesql::Value. The intention is to support
2282
+ # multiple languages including Java and C++, so we must be sensitive to the
2283
+ # distinction between Java Strings and byte arrays or ByteStrings. We also want
2284
+ # to support use-cases which do not want to serialize a copy of the GoogleSQL
2285
+ # type for every instance (which might be very repetitive). Therefore, unlike
2286
+ # googlesql::Value, ValueProto does not carry full type information with every
2287
+ # instance, and can only be fully interpreted with an associated TypeProto.
2288
+ class ValueProto
2289
+ include Google::Apis::Core::Hashable
2290
+
2291
+ # User code that switches on this oneoff enum must have a default case so builds
2292
+ # won't break when new fields are added.
2293
+ # Corresponds to the JSON property `ValueProtoSwitchMustHaveADefault`
2294
+ # @return [Boolean]
2295
+ attr_accessor :value_proto_switch_must_have_a_default
2296
+ alias_method :value_proto_switch_must_have_a_default?, :value_proto_switch_must_have_a_default
2297
+
2298
+ # An ordered collection of elements of arbitrary count.
2299
+ # Corresponds to the JSON property `arrayValue`
2300
+ # @return [Google::Apis::CloudbillingV1beta::Array]
2301
+ attr_accessor :array_value
2302
+
2303
+ # Encoded bignumeric value. For the encoding format see documentation for
2304
+ # BigNumericValue::SerializeAsProtoBytes().
2305
+ # Corresponds to the JSON property `bignumericValue`
2306
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2307
+ # @return [String]
2308
+ attr_accessor :bignumeric_value
2309
+
2310
+ # Primitive for bool.
2311
+ # Corresponds to the JSON property `boolValue`
2312
+ # @return [Boolean]
2313
+ attr_accessor :bool_value
2314
+ alias_method :bool_value?, :bool_value
2315
+
2316
+ # Primitive for bytes.
2317
+ # Corresponds to the JSON property `bytesValue`
2318
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2319
+ # @return [String]
2320
+ attr_accessor :bytes_value
2321
+
2322
+ # Primitive for date.
2323
+ # Corresponds to the JSON property `dateValue`
2324
+ # @return [Fixnum]
2325
+ attr_accessor :date_value
2326
+
2327
+ # A datetime value.
2328
+ # Corresponds to the JSON property `datetimeValue`
2329
+ # @return [Google::Apis::CloudbillingV1beta::Datetime]
2330
+ attr_accessor :datetime_value
2331
+
2332
+ # Primitive for double.
2333
+ # Corresponds to the JSON property `doubleValue`
2334
+ # @return [Float]
2335
+ attr_accessor :double_value
2336
+
2337
+ # Tag 11 was used for specifying micros timestamps as int64, now obsolete.
2338
+ # Corresponds to the JSON property `enumValue`
2339
+ # @return [Fixnum]
2340
+ attr_accessor :enum_value
2341
+
2342
+ # Primitive for float.
2343
+ # Corresponds to the JSON property `floatValue`
2344
+ # @return [Float]
2345
+ attr_accessor :float_value
2346
+
2347
+ # Geography encoded using ::stlib::STGeographyEncoder
2348
+ # Corresponds to the JSON property `geographyValue`
2349
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2350
+ # @return [String]
2351
+ attr_accessor :geography_value
2352
+
2353
+ # Primitive value for int32.
2354
+ # Corresponds to the JSON property `int32Value`
2355
+ # @return [Fixnum]
2356
+ attr_accessor :int32_value
2357
+
2358
+ # Primitive for int64.
2359
+ # Corresponds to the JSON property `int64Value`
2360
+ # @return [Fixnum]
2361
+ attr_accessor :int64_value
2362
+
2363
+ # Encoded interval value. For the encoding format see documentation for
2364
+ # IntervalValue::SerializeAsBytes().
2365
+ # Corresponds to the JSON property `intervalValue`
2366
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2367
+ # @return [String]
2368
+ attr_accessor :interval_value
2369
+
2370
+ # Tag 22 was used for json value as bytes, now obsolete. Json value represented
2371
+ # as a string document.
2372
+ # Corresponds to the JSON property `jsonValue`
2373
+ # @return [String]
2374
+ attr_accessor :json_value
2375
+
2376
+ # An unordered mapping from key to value, represented as a collection of map
2377
+ # entries.
2378
+ # Corresponds to the JSON property `mapValue`
2379
+ # @return [Google::Apis::CloudbillingV1beta::Map]
2380
+ attr_accessor :map_value
2381
+
2382
+ # Encoded numeric value. For the encoding format see documentation for
2383
+ # NumericValue::SerializeAsProtoBytes().
2384
+ # Corresponds to the JSON property `numericValue`
2385
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2386
+ # @return [String]
2387
+ attr_accessor :numeric_value
2388
+
2389
+ # Stores a serialized protocol message.
2390
+ # Corresponds to the JSON property `protoValue`
2391
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2392
+ # @return [String]
2393
+ attr_accessor :proto_value
2394
+
2395
+ # A range of values, bounded by the values 'start' (inclusive) and 'end' (
2396
+ # exclusive). A range has an element type, and values must be of this element
2397
+ # type. A range is contiguous, ie it contains all values of the given element
2398
+ # type starting at 'start' and ending before 'end'. A "null" value on start or
2399
+ # end represents an unbounded start or end value respectively. Start and end
2400
+ # values must always be present.
2401
+ # Corresponds to the JSON property `rangeValue`
2402
+ # @return [Google::Apis::CloudbillingV1beta::Range]
2403
+ attr_accessor :range_value
2404
+
2405
+ # Primitive for string.
2406
+ # Corresponds to the JSON property `stringValue`
2407
+ # @return [String]
2408
+ attr_accessor :string_value
2409
+
2410
+ # A collection of fields. The count, order, and type of the fields is determined
2411
+ # by the type associated with this value.
2412
+ # Corresponds to the JSON property `structValue`
2413
+ # @return [Google::Apis::CloudbillingV1beta::Struct]
2414
+ attr_accessor :struct_value
2415
+
2416
+ # Bit field encoding of hour/minute/second/nanos. See TimeValue class for
2417
+ # details.
2418
+ # Corresponds to the JSON property `timeValue`
2419
+ # @return [Fixnum]
2420
+ attr_accessor :time_value
2421
+
2422
+ # Encoded timestamp_pico value. For the encoding format see documentation for
2423
+ # googlesql::TimestampPico::SerializeAsBytes().
2424
+ # Corresponds to the JSON property `timestampPicoValue`
2425
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2426
+ # @return [String]
2427
+ attr_accessor :timestamp_pico_value
2428
+
2429
+ # primitive for timestamp
2430
+ # Corresponds to the JSON property `timestampValue`
2431
+ # @return [String]
2432
+ attr_accessor :timestamp_value
2433
+
2434
+ # Encoded tokenlist value. copybara:strip_begin(internal-comment) See //search/
2435
+ # tokens:token_list. copybara:strip_end
2436
+ # Corresponds to the JSON property `tokenlistValue`
2437
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2438
+ # @return [String]
2439
+ attr_accessor :tokenlist_value
2440
+
2441
+ # Primitive for uint32.
2442
+ # Corresponds to the JSON property `uint32Value`
2443
+ # @return [Fixnum]
2444
+ attr_accessor :uint32_value
2445
+
2446
+ # Primitive for uint64.
2447
+ # Corresponds to the JSON property `uint64Value`
2448
+ # @return [Fixnum]
2449
+ attr_accessor :uint64_value
2450
+
2451
+ # Encoded uuid value. For the encoding format see documentation for UuidValue::
2452
+ # SerializeAsBytes().
2453
+ # Corresponds to the JSON property `uuidValue`
2454
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2455
+ # @return [String]
2456
+ attr_accessor :uuid_value
2457
+
2458
+ def initialize(**args)
2459
+ update!(**args)
2460
+ end
2461
+
2462
+ # Update properties of this object
2463
+ def update!(**args)
2464
+ @value_proto_switch_must_have_a_default = args[:value_proto_switch_must_have_a_default] if args.key?(:value_proto_switch_must_have_a_default)
2465
+ @array_value = args[:array_value] if args.key?(:array_value)
2466
+ @bignumeric_value = args[:bignumeric_value] if args.key?(:bignumeric_value)
2467
+ @bool_value = args[:bool_value] if args.key?(:bool_value)
2468
+ @bytes_value = args[:bytes_value] if args.key?(:bytes_value)
2469
+ @date_value = args[:date_value] if args.key?(:date_value)
2470
+ @datetime_value = args[:datetime_value] if args.key?(:datetime_value)
2471
+ @double_value = args[:double_value] if args.key?(:double_value)
2472
+ @enum_value = args[:enum_value] if args.key?(:enum_value)
2473
+ @float_value = args[:float_value] if args.key?(:float_value)
2474
+ @geography_value = args[:geography_value] if args.key?(:geography_value)
2475
+ @int32_value = args[:int32_value] if args.key?(:int32_value)
2476
+ @int64_value = args[:int64_value] if args.key?(:int64_value)
2477
+ @interval_value = args[:interval_value] if args.key?(:interval_value)
2478
+ @json_value = args[:json_value] if args.key?(:json_value)
2479
+ @map_value = args[:map_value] if args.key?(:map_value)
2480
+ @numeric_value = args[:numeric_value] if args.key?(:numeric_value)
2481
+ @proto_value = args[:proto_value] if args.key?(:proto_value)
2482
+ @range_value = args[:range_value] if args.key?(:range_value)
2483
+ @string_value = args[:string_value] if args.key?(:string_value)
2484
+ @struct_value = args[:struct_value] if args.key?(:struct_value)
2485
+ @time_value = args[:time_value] if args.key?(:time_value)
2486
+ @timestamp_pico_value = args[:timestamp_pico_value] if args.key?(:timestamp_pico_value)
2487
+ @timestamp_value = args[:timestamp_value] if args.key?(:timestamp_value)
2488
+ @tokenlist_value = args[:tokenlist_value] if args.key?(:tokenlist_value)
2489
+ @uint32_value = args[:uint32_value] if args.key?(:uint32_value)
2490
+ @uint64_value = args[:uint64_value] if args.key?(:uint64_value)
2491
+ @uuid_value = args[:uuid_value] if args.key?(:uuid_value)
2492
+ end
2493
+ end
1600
2494
  end
1601
2495
  end
1602
2496
  end