google-apis-cloudbilling_v1 0.40.0 → 0.41.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,415 @@ module Google
22
22
  module Apis
23
23
  module CloudbillingV1
24
24
 
25
+ #
26
+ class ApiKeySecurityScheme
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Description of this security scheme.
30
+ # Corresponds to the JSON property `description`
31
+ # @return [String]
32
+ attr_accessor :description
33
+
34
+ # Location of the API key, valid values are "query", "header", or "cookie"
35
+ # Corresponds to the JSON property `location`
36
+ # @return [String]
37
+ attr_accessor :location
38
+
39
+ # Name of the header, query or cookie parameter to be used.
40
+ # Corresponds to the JSON property `name`
41
+ # @return [String]
42
+ attr_accessor :name
43
+
44
+ def initialize(**args)
45
+ update!(**args)
46
+ end
47
+
48
+ # Update properties of this object
49
+ def update!(**args)
50
+ @description = args[:description] if args.key?(:description)
51
+ @location = args[:location] if args.key?(:location)
52
+ @name = args[:name] if args.key?(:name)
53
+ end
54
+ end
55
+
56
+ # Defines the A2A feature set supported by the agent
57
+ class AgentCapabilities
58
+ include Google::Apis::Core::Hashable
59
+
60
+ # Extensions supported by this agent.
61
+ # Corresponds to the JSON property `extensions`
62
+ # @return [Array<Google::Apis::CloudbillingV1::AgentExtension>]
63
+ attr_accessor :extensions
64
+
65
+ # If the agent can send push notifications to the clients webhook
66
+ # Corresponds to the JSON property `pushNotifications`
67
+ # @return [Boolean]
68
+ attr_accessor :push_notifications
69
+ alias_method :push_notifications?, :push_notifications
70
+
71
+ # If the agent will support streaming responses
72
+ # Corresponds to the JSON property `streaming`
73
+ # @return [Boolean]
74
+ attr_accessor :streaming
75
+ alias_method :streaming?, :streaming
76
+
77
+ def initialize(**args)
78
+ update!(**args)
79
+ end
80
+
81
+ # Update properties of this object
82
+ def update!(**args)
83
+ @extensions = args[:extensions] if args.key?(:extensions)
84
+ @push_notifications = args[:push_notifications] if args.key?(:push_notifications)
85
+ @streaming = args[:streaming] if args.key?(:streaming)
86
+ end
87
+ end
88
+
89
+ # AgentCard conveys key information: - Overall details (version, name,
90
+ # description, uses) - Skills; a set of actions/solutions the agent can perform -
91
+ # Default modalities/content types supported by the agent. - Authentication
92
+ # requirements Next ID: 19
93
+ class AgentCard
94
+ include Google::Apis::Core::Hashable
95
+
96
+ # Announcement of additional supported transports. Client can use any of the
97
+ # supported transports.
98
+ # Corresponds to the JSON property `additionalInterfaces`
99
+ # @return [Array<Google::Apis::CloudbillingV1::AgentInterface>]
100
+ attr_accessor :additional_interfaces
101
+
102
+ # Defines the A2A feature set supported by the agent
103
+ # Corresponds to the JSON property `capabilities`
104
+ # @return [Google::Apis::CloudbillingV1::AgentCapabilities]
105
+ attr_accessor :capabilities
106
+
107
+ # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED The set of interaction modes
108
+ # that the agent supports across all skills. This can be overridden per skill.
109
+ # Defined as mime types.
110
+ # Corresponds to the JSON property `defaultInputModes`
111
+ # @return [Array<String>]
112
+ attr_accessor :default_input_modes
113
+
114
+ # The mime types supported as outputs from this agent.
115
+ # Corresponds to the JSON property `defaultOutputModes`
116
+ # @return [Array<String>]
117
+ attr_accessor :default_output_modes
118
+
119
+ # A description of the agent's domain of action/solution space. Example: "Agent
120
+ # that helps users with recipes and cooking."
121
+ # Corresponds to the JSON property `description`
122
+ # @return [String]
123
+ attr_accessor :description
124
+
125
+ # A url to provide additional documentation about the agent.
126
+ # Corresponds to the JSON property `documentationUrl`
127
+ # @return [String]
128
+ attr_accessor :documentation_url
129
+
130
+ # An optional URL to an icon for the agent.
131
+ # Corresponds to the JSON property `iconUrl`
132
+ # @return [String]
133
+ attr_accessor :icon_url
134
+
135
+ # A human readable name for the agent. Example: "Recipe Agent"
136
+ # Corresponds to the JSON property `name`
137
+ # @return [String]
138
+ attr_accessor :name
139
+
140
+ # The transport of the preferred endpoint. If empty, defaults to JSONRPC.
141
+ # Corresponds to the JSON property `preferredTransport`
142
+ # @return [String]
143
+ attr_accessor :preferred_transport
144
+
145
+ # The version of the A2A protocol this agent supports.
146
+ # Corresponds to the JSON property `protocolVersion`
147
+ # @return [String]
148
+ attr_accessor :protocol_version
149
+
150
+ # Represents information about the service provider of an agent.
151
+ # Corresponds to the JSON property `provider`
152
+ # @return [Google::Apis::CloudbillingV1::AgentProvider]
153
+ attr_accessor :provider
154
+
155
+ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Security requirements for
156
+ # contacting the agent. This list can be seen as an OR of ANDs. Each object in
157
+ # the list describes one possible set of security requirements that must be
158
+ # present on a request. This allows specifying, for example, "callers must
159
+ # either use OAuth OR an API Key AND mTLS." Example: security ` schemes ` key: "
160
+ # oauth" value ` list: ["read"] ` ` ` security ` schemes ` key: "api-key" `
161
+ # schemes ` key: "mtls" ` `
162
+ # Corresponds to the JSON property `security`
163
+ # @return [Array<Google::Apis::CloudbillingV1::Security>]
164
+ attr_accessor :security
165
+
166
+ # The security scheme details used for authenticating with this agent.
167
+ # Corresponds to the JSON property `securitySchemes`
168
+ # @return [Hash<String,Google::Apis::CloudbillingV1::SecurityScheme>]
169
+ attr_accessor :security_schemes
170
+
171
+ # JSON Web Signatures computed for this AgentCard.
172
+ # Corresponds to the JSON property `signatures`
173
+ # @return [Array<Google::Apis::CloudbillingV1::AgentCardSignature>]
174
+ attr_accessor :signatures
175
+
176
+ # Skills represent a unit of ability an agent can perform. This may somewhat
177
+ # abstract but represents a more focused set of actions that the agent is highly
178
+ # likely to succeed at.
179
+ # Corresponds to the JSON property `skills`
180
+ # @return [Array<Google::Apis::CloudbillingV1::AgentSkill>]
181
+ attr_accessor :skills
182
+
183
+ # Whether the agent supports providing an extended agent card when the user is
184
+ # authenticated, i.e. is the card from .well-known different than the card from
185
+ # GetAgentCard.
186
+ # Corresponds to the JSON property `supportsAuthenticatedExtendedCard`
187
+ # @return [Boolean]
188
+ attr_accessor :supports_authenticated_extended_card
189
+ alias_method :supports_authenticated_extended_card?, :supports_authenticated_extended_card
190
+
191
+ # A URL to the address the agent is hosted at. This represents the preferred
192
+ # endpoint as declared by the agent.
193
+ # Corresponds to the JSON property `url`
194
+ # @return [String]
195
+ attr_accessor :url
196
+
197
+ # The version of the agent. Example: "1.0.0"
198
+ # Corresponds to the JSON property `version`
199
+ # @return [String]
200
+ attr_accessor :version
201
+
202
+ def initialize(**args)
203
+ update!(**args)
204
+ end
205
+
206
+ # Update properties of this object
207
+ def update!(**args)
208
+ @additional_interfaces = args[:additional_interfaces] if args.key?(:additional_interfaces)
209
+ @capabilities = args[:capabilities] if args.key?(:capabilities)
210
+ @default_input_modes = args[:default_input_modes] if args.key?(:default_input_modes)
211
+ @default_output_modes = args[:default_output_modes] if args.key?(:default_output_modes)
212
+ @description = args[:description] if args.key?(:description)
213
+ @documentation_url = args[:documentation_url] if args.key?(:documentation_url)
214
+ @icon_url = args[:icon_url] if args.key?(:icon_url)
215
+ @name = args[:name] if args.key?(:name)
216
+ @preferred_transport = args[:preferred_transport] if args.key?(:preferred_transport)
217
+ @protocol_version = args[:protocol_version] if args.key?(:protocol_version)
218
+ @provider = args[:provider] if args.key?(:provider)
219
+ @security = args[:security] if args.key?(:security)
220
+ @security_schemes = args[:security_schemes] if args.key?(:security_schemes)
221
+ @signatures = args[:signatures] if args.key?(:signatures)
222
+ @skills = args[:skills] if args.key?(:skills)
223
+ @supports_authenticated_extended_card = args[:supports_authenticated_extended_card] if args.key?(:supports_authenticated_extended_card)
224
+ @url = args[:url] if args.key?(:url)
225
+ @version = args[:version] if args.key?(:version)
226
+ end
227
+ end
228
+
229
+ # AgentCardSignature represents a JWS signature of an AgentCard. This follows
230
+ # the JSON format of an RFC 7515 JSON Web Signature (JWS).
231
+ class AgentCardSignature
232
+ include Google::Apis::Core::Hashable
233
+
234
+ # The unprotected JWS header values.
235
+ # Corresponds to the JSON property `header`
236
+ # @return [Hash<String,Object>]
237
+ attr_accessor :header
238
+
239
+ # Required. The protected JWS header for the signature. This is always a
240
+ # base64url-encoded JSON object. Required.
241
+ # Corresponds to the JSON property `protected`
242
+ # @return [String]
243
+ attr_accessor :protected
244
+
245
+ # Required. The computed signature, base64url-encoded. Required.
246
+ # Corresponds to the JSON property `signature`
247
+ # @return [String]
248
+ attr_accessor :signature
249
+
250
+ def initialize(**args)
251
+ update!(**args)
252
+ end
253
+
254
+ # Update properties of this object
255
+ def update!(**args)
256
+ @header = args[:header] if args.key?(:header)
257
+ @protected = args[:protected] if args.key?(:protected)
258
+ @signature = args[:signature] if args.key?(:signature)
259
+ end
260
+ end
261
+
262
+ # A declaration of an extension supported by an Agent.
263
+ class AgentExtension
264
+ include Google::Apis::Core::Hashable
265
+
266
+ # A description of how this agent uses this extension. Example: "Google OAuth 2.
267
+ # 0 authentication"
268
+ # Corresponds to the JSON property `description`
269
+ # @return [String]
270
+ attr_accessor :description
271
+
272
+ # Optional configuration for the extension.
273
+ # Corresponds to the JSON property `params`
274
+ # @return [Hash<String,Object>]
275
+ attr_accessor :params
276
+
277
+ # Whether the client must follow specific requirements of the extension. Example:
278
+ # false
279
+ # Corresponds to the JSON property `required`
280
+ # @return [Boolean]
281
+ attr_accessor :required
282
+ alias_method :required?, :required
283
+
284
+ # The URI of the extension. Example: "https://developers.google.com/identity/
285
+ # protocols/oauth2"
286
+ # Corresponds to the JSON property `uri`
287
+ # @return [String]
288
+ attr_accessor :uri
289
+
290
+ def initialize(**args)
291
+ update!(**args)
292
+ end
293
+
294
+ # Update properties of this object
295
+ def update!(**args)
296
+ @description = args[:description] if args.key?(:description)
297
+ @params = args[:params] if args.key?(:params)
298
+ @required = args[:required] if args.key?(:required)
299
+ @uri = args[:uri] if args.key?(:uri)
300
+ end
301
+ end
302
+
303
+ # Defines additional transport information for the agent.
304
+ class AgentInterface
305
+ include Google::Apis::Core::Hashable
306
+
307
+ # Tenant to be set in the request when calling the agent. Experimental, might
308
+ # still change for 1.0 release.
309
+ # Corresponds to the JSON property `tenant`
310
+ # @return [String]
311
+ attr_accessor :tenant
312
+
313
+ # The transport supported this url. This is an open form string, to be easily
314
+ # extended for many transport protocols. The core ones officially supported are
315
+ # JSONRPC, GRPC and HTTP+JSON.
316
+ # Corresponds to the JSON property `transport`
317
+ # @return [String]
318
+ attr_accessor :transport
319
+
320
+ # The url this interface is found at.
321
+ # Corresponds to the JSON property `url`
322
+ # @return [String]
323
+ attr_accessor :url
324
+
325
+ def initialize(**args)
326
+ update!(**args)
327
+ end
328
+
329
+ # Update properties of this object
330
+ def update!(**args)
331
+ @tenant = args[:tenant] if args.key?(:tenant)
332
+ @transport = args[:transport] if args.key?(:transport)
333
+ @url = args[:url] if args.key?(:url)
334
+ end
335
+ end
336
+
337
+ # Represents information about the service provider of an agent.
338
+ class AgentProvider
339
+ include Google::Apis::Core::Hashable
340
+
341
+ # The providers organization name Example: "Google"
342
+ # Corresponds to the JSON property `organization`
343
+ # @return [String]
344
+ attr_accessor :organization
345
+
346
+ # The providers reference url Example: "https://ai.google.dev"
347
+ # Corresponds to the JSON property `url`
348
+ # @return [String]
349
+ attr_accessor :url
350
+
351
+ def initialize(**args)
352
+ update!(**args)
353
+ end
354
+
355
+ # Update properties of this object
356
+ def update!(**args)
357
+ @organization = args[:organization] if args.key?(:organization)
358
+ @url = args[:url] if args.key?(:url)
359
+ end
360
+ end
361
+
362
+ # AgentSkill represents a unit of action/solution that the agent can perform.
363
+ # One can think of this as a type of highly reliable solution that an agent can
364
+ # be tasked to provide. Agents have the autonomy to choose how and when to use
365
+ # specific skills, but clients should have confidence that if the skill is
366
+ # defined that unit of action can be reliably performed.
367
+ class AgentSkill
368
+ include Google::Apis::Core::Hashable
369
+
370
+ # A human (or llm) readable description of the skill details and behaviors.
371
+ # Corresponds to the JSON property `description`
372
+ # @return [String]
373
+ attr_accessor :description
374
+
375
+ # A set of example queries that this skill is designed to address. These
376
+ # examples should help the caller to understand how to craft requests to the
377
+ # agent to achieve specific goals. Example: ["I need a recipe for bread"]
378
+ # Corresponds to the JSON property `examples`
379
+ # @return [Array<String>]
380
+ attr_accessor :examples
381
+
382
+ # Unique identifier of the skill within this agent.
383
+ # Corresponds to the JSON property `id`
384
+ # @return [String]
385
+ attr_accessor :id
386
+
387
+ # Possible input modalities supported.
388
+ # Corresponds to the JSON property `inputModes`
389
+ # @return [Array<String>]
390
+ attr_accessor :input_modes
391
+
392
+ # A human readable name for the skill.
393
+ # Corresponds to the JSON property `name`
394
+ # @return [String]
395
+ attr_accessor :name
396
+
397
+ # Possible output modalities produced
398
+ # Corresponds to the JSON property `outputModes`
399
+ # @return [Array<String>]
400
+ attr_accessor :output_modes
401
+
402
+ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Security schemes necessary
403
+ # for the agent to leverage this skill. As in the overall AgentCard.security,
404
+ # this list represents a logical OR of security requirement objects. Each object
405
+ # is a set of security schemes that must be used together (a logical AND).
406
+ # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
407
+ # Corresponds to the JSON property `security`
408
+ # @return [Array<Google::Apis::CloudbillingV1::Security>]
409
+ attr_accessor :security
410
+
411
+ # A set of tags for the skill to enhance categorization/utilization. Example: ["
412
+ # cooking", "customer support", "billing"]
413
+ # Corresponds to the JSON property `tags`
414
+ # @return [Array<String>]
415
+ attr_accessor :tags
416
+
417
+ def initialize(**args)
418
+ update!(**args)
419
+ end
420
+
421
+ # Update properties of this object
422
+ def update!(**args)
423
+ @description = args[:description] if args.key?(:description)
424
+ @examples = args[:examples] if args.key?(:examples)
425
+ @id = args[:id] if args.key?(:id)
426
+ @input_modes = args[:input_modes] if args.key?(:input_modes)
427
+ @name = args[:name] if args.key?(:name)
428
+ @output_modes = args[:output_modes] if args.key?(:output_modes)
429
+ @security = args[:security] if args.key?(:security)
430
+ @tags = args[:tags] if args.key?(:tags)
431
+ end
432
+ end
433
+
25
434
  # Represents the aggregation level and interval for pricing of a single SKU.
26
435
  class AggregationInfo
27
436
  include Google::Apis::Core::Hashable
@@ -54,6 +463,58 @@ module Google
54
463
  end
55
464
  end
56
465
 
466
+ # Artifacts are the container for task completed results. These are similar to
467
+ # Messages but are intended to be the product of a task, as opposed to point-to-
468
+ # point communication.
469
+ class Artifact
470
+ include Google::Apis::Core::Hashable
471
+
472
+ # Unique identifier (e.g. UUID) for the artifact. It must be at least unique
473
+ # within a task.
474
+ # Corresponds to the JSON property `artifactId`
475
+ # @return [String]
476
+ attr_accessor :artifact_id
477
+
478
+ # A human readable description of the artifact, optional.
479
+ # Corresponds to the JSON property `description`
480
+ # @return [String]
481
+ attr_accessor :description
482
+
483
+ # The URIs of extensions that are present or contributed to this Artifact.
484
+ # Corresponds to the JSON property `extensions`
485
+ # @return [Array<String>]
486
+ attr_accessor :extensions
487
+
488
+ # Optional metadata included with the artifact.
489
+ # Corresponds to the JSON property `metadata`
490
+ # @return [Hash<String,Object>]
491
+ attr_accessor :metadata
492
+
493
+ # A human readable name for the artifact.
494
+ # Corresponds to the JSON property `name`
495
+ # @return [String]
496
+ attr_accessor :name
497
+
498
+ # The content of the artifact.
499
+ # Corresponds to the JSON property `parts`
500
+ # @return [Array<Google::Apis::CloudbillingV1::Part>]
501
+ attr_accessor :parts
502
+
503
+ def initialize(**args)
504
+ update!(**args)
505
+ end
506
+
507
+ # Update properties of this object
508
+ def update!(**args)
509
+ @artifact_id = args[:artifact_id] if args.key?(:artifact_id)
510
+ @description = args[:description] if args.key?(:description)
511
+ @extensions = args[:extensions] if args.key?(:extensions)
512
+ @metadata = args[:metadata] if args.key?(:metadata)
513
+ @name = args[:name] if args.key?(:name)
514
+ @parts = args[:parts] if args.key?(:parts)
515
+ end
516
+ end
517
+
57
518
  # Specifies the audit configuration for a service. The configuration determines
58
519
  # which permission types are logged, and what identities, if any, are exempted
59
520
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -125,6 +586,72 @@ module Google
125
586
  end
126
587
  end
127
588
 
589
+ # Defines authentication details, used for push notifications.
590
+ class AuthenticationInfo
591
+ include Google::Apis::Core::Hashable
592
+
593
+ # Optional credentials
594
+ # Corresponds to the JSON property `credentials`
595
+ # @return [String]
596
+ attr_accessor :credentials
597
+
598
+ # Supported authentication schemes - e.g. Basic, Bearer, etc
599
+ # Corresponds to the JSON property `schemes`
600
+ # @return [Array<String>]
601
+ attr_accessor :schemes
602
+
603
+ def initialize(**args)
604
+ update!(**args)
605
+ end
606
+
607
+ # Update properties of this object
608
+ def update!(**args)
609
+ @credentials = args[:credentials] if args.key?(:credentials)
610
+ @schemes = args[:schemes] if args.key?(:schemes)
611
+ end
612
+ end
613
+
614
+ #
615
+ class AuthorizationCodeOAuthFlow
616
+ include Google::Apis::Core::Hashable
617
+
618
+ # The authorization URL to be used for this flow. This MUST be in the form of a
619
+ # URL. The OAuth2 standard requires the use of TLS
620
+ # Corresponds to the JSON property `authorizationUrl`
621
+ # @return [String]
622
+ attr_accessor :authorization_url
623
+
624
+ # The URL to be used for obtaining refresh tokens. This MUST be in the form of a
625
+ # URL. The OAuth2 standard requires the use of TLS.
626
+ # Corresponds to the JSON property `refreshUrl`
627
+ # @return [String]
628
+ attr_accessor :refresh_url
629
+
630
+ # The available scopes for the OAuth2 security scheme. A map between the scope
631
+ # name and a short description for it. The map MAY be empty.
632
+ # Corresponds to the JSON property `scopes`
633
+ # @return [Hash<String,String>]
634
+ attr_accessor :scopes
635
+
636
+ # The token URL to be used for this flow. This MUST be in the form of a URL. The
637
+ # OAuth2 standard requires the use of TLS.
638
+ # Corresponds to the JSON property `tokenUrl`
639
+ # @return [String]
640
+ attr_accessor :token_url
641
+
642
+ def initialize(**args)
643
+ update!(**args)
644
+ end
645
+
646
+ # Update properties of this object
647
+ def update!(**args)
648
+ @authorization_url = args[:authorization_url] if args.key?(:authorization_url)
649
+ @refresh_url = args[:refresh_url] if args.key?(:refresh_url)
650
+ @scopes = args[:scopes] if args.key?(:scopes)
651
+ @token_url = args[:token_url] if args.key?(:token_url)
652
+ end
653
+ end
654
+
128
655
  # A billing account in the [Google Cloud Console](https://console.cloud.google.
129
656
  # com/). You can assign a billing account to one or more projects.
130
657
  class BillingAccount
@@ -296,6 +823,26 @@ module Google
296
823
  end
297
824
  end
298
825
 
826
+ #
827
+ class CancelTaskRequest
828
+ include Google::Apis::Core::Hashable
829
+
830
+ # Optional tenant, provided as a path parameter. Experimental, might still
831
+ # change for 1.0 release.
832
+ # Corresponds to the JSON property `tenant`
833
+ # @return [String]
834
+ attr_accessor :tenant
835
+
836
+ def initialize(**args)
837
+ update!(**args)
838
+ end
839
+
840
+ # Update properties of this object
841
+ def update!(**args)
842
+ @tenant = args[:tenant] if args.key?(:tenant)
843
+ end
844
+ end
845
+
299
846
  # Represents the category hierarchy of a SKU.
300
847
  class Category
301
848
  include Google::Apis::Core::Hashable
@@ -336,7 +883,76 @@ module Google
336
883
  end
337
884
  end
338
885
 
339
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
886
+ #
887
+ class ClientCredentialsOAuthFlow
888
+ include Google::Apis::Core::Hashable
889
+
890
+ # The URL to be used for obtaining refresh tokens. This MUST be in the form of a
891
+ # URL. The OAuth2 standard requires the use of TLS.
892
+ # Corresponds to the JSON property `refreshUrl`
893
+ # @return [String]
894
+ attr_accessor :refresh_url
895
+
896
+ # The available scopes for the OAuth2 security scheme. A map between the scope
897
+ # name and a short description for it. The map MAY be empty.
898
+ # Corresponds to the JSON property `scopes`
899
+ # @return [Hash<String,String>]
900
+ attr_accessor :scopes
901
+
902
+ # The token URL to be used for this flow. This MUST be in the form of a URL. The
903
+ # OAuth2 standard requires the use of TLS.
904
+ # Corresponds to the JSON property `tokenUrl`
905
+ # @return [String]
906
+ attr_accessor :token_url
907
+
908
+ def initialize(**args)
909
+ update!(**args)
910
+ end
911
+
912
+ # Update properties of this object
913
+ def update!(**args)
914
+ @refresh_url = args[:refresh_url] if args.key?(:refresh_url)
915
+ @scopes = args[:scopes] if args.key?(:scopes)
916
+ @token_url = args[:token_url] if args.key?(:token_url)
917
+ end
918
+ end
919
+
920
+ # DataPart represents a structured blob. This is most commonly a JSON payload.
921
+ class DataPart
922
+ include Google::Apis::Core::Hashable
923
+
924
+ #
925
+ # Corresponds to the JSON property `data`
926
+ # @return [Hash<String,Object>]
927
+ attr_accessor :data
928
+
929
+ def initialize(**args)
930
+ update!(**args)
931
+ end
932
+
933
+ # Update properties of this object
934
+ def update!(**args)
935
+ @data = args[:data] if args.key?(:data)
936
+ end
937
+ end
938
+
939
+ # A generic empty message that you can re-use to avoid defining duplicated empty
940
+ # messages in your APIs. A typical example is to use it as the request or the
941
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
942
+ # protobuf.Empty) returns (google.protobuf.Empty); `
943
+ class Empty
944
+ include Google::Apis::Core::Hashable
945
+
946
+ def initialize(**args)
947
+ update!(**args)
948
+ end
949
+
950
+ # Update properties of this object
951
+ def update!(**args)
952
+ end
953
+ end
954
+
955
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
340
956
  # CEL is a C-like expression language. The syntax and semantics of CEL are
341
957
  # documented at https://github.com/google/cel-spec. Example (Comparison): title:
342
958
  # "Summary size limit" description: "Determines if a summary is less than 100
@@ -390,6 +1006,47 @@ module Google
390
1006
  end
391
1007
  end
392
1008
 
1009
+ # FilePart represents the different ways files can be provided. If files are
1010
+ # small, directly feeding the bytes is supported via file_with_bytes. If the
1011
+ # file is large, the agent should read the content as appropriate directly from
1012
+ # the file_with_uri source.
1013
+ class FilePart
1014
+ include Google::Apis::Core::Hashable
1015
+
1016
+ #
1017
+ # Corresponds to the JSON property `fileWithBytes`
1018
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1019
+ # @return [String]
1020
+ attr_accessor :file_with_bytes
1021
+
1022
+ #
1023
+ # Corresponds to the JSON property `fileWithUri`
1024
+ # @return [String]
1025
+ attr_accessor :file_with_uri
1026
+
1027
+ #
1028
+ # Corresponds to the JSON property `mimeType`
1029
+ # @return [String]
1030
+ attr_accessor :mime_type
1031
+
1032
+ #
1033
+ # Corresponds to the JSON property `name`
1034
+ # @return [String]
1035
+ attr_accessor :name
1036
+
1037
+ def initialize(**args)
1038
+ update!(**args)
1039
+ end
1040
+
1041
+ # Update properties of this object
1042
+ def update!(**args)
1043
+ @file_with_bytes = args[:file_with_bytes] if args.key?(:file_with_bytes)
1044
+ @file_with_uri = args[:file_with_uri] if args.key?(:file_with_uri)
1045
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
1046
+ @name = args[:name] if args.key?(:name)
1047
+ end
1048
+ end
1049
+
393
1050
  # Encapsulates the geographic taxonomy data for a sku.
394
1051
  class GeoTaxonomy
395
1052
  include Google::Apis::Core::Hashable
@@ -416,6 +1073,76 @@ module Google
416
1073
  end
417
1074
  end
418
1075
 
1076
+ #
1077
+ class HttpAuthSecurityScheme
1078
+ include Google::Apis::Core::Hashable
1079
+
1080
+ # A hint to the client to identify how the bearer token is formatted. Bearer
1081
+ # tokens are usually generated by an authorization server, so this information
1082
+ # is primarily for documentation purposes.
1083
+ # Corresponds to the JSON property `bearerFormat`
1084
+ # @return [String]
1085
+ attr_accessor :bearer_format
1086
+
1087
+ # Description of this security scheme.
1088
+ # Corresponds to the JSON property `description`
1089
+ # @return [String]
1090
+ attr_accessor :description
1091
+
1092
+ # The name of the HTTP Authentication scheme to be used in the Authorization
1093
+ # header as defined in RFC7235. The values used SHOULD be registered in the IANA
1094
+ # Authentication Scheme registry. The value is case-insensitive, as defined in
1095
+ # RFC7235.
1096
+ # Corresponds to the JSON property `scheme`
1097
+ # @return [String]
1098
+ attr_accessor :scheme
1099
+
1100
+ def initialize(**args)
1101
+ update!(**args)
1102
+ end
1103
+
1104
+ # Update properties of this object
1105
+ def update!(**args)
1106
+ @bearer_format = args[:bearer_format] if args.key?(:bearer_format)
1107
+ @description = args[:description] if args.key?(:description)
1108
+ @scheme = args[:scheme] if args.key?(:scheme)
1109
+ end
1110
+ end
1111
+
1112
+ #
1113
+ class ImplicitOAuthFlow
1114
+ include Google::Apis::Core::Hashable
1115
+
1116
+ # The authorization URL to be used for this flow. This MUST be in the form of a
1117
+ # URL. The OAuth2 standard requires the use of TLS
1118
+ # Corresponds to the JSON property `authorizationUrl`
1119
+ # @return [String]
1120
+ attr_accessor :authorization_url
1121
+
1122
+ # The URL to be used for obtaining refresh tokens. This MUST be in the form of a
1123
+ # URL. The OAuth2 standard requires the use of TLS.
1124
+ # Corresponds to the JSON property `refreshUrl`
1125
+ # @return [String]
1126
+ attr_accessor :refresh_url
1127
+
1128
+ # The available scopes for the OAuth2 security scheme. A map between the scope
1129
+ # name and a short description for it. The map MAY be empty.
1130
+ # Corresponds to the JSON property `scopes`
1131
+ # @return [Hash<String,String>]
1132
+ attr_accessor :scopes
1133
+
1134
+ def initialize(**args)
1135
+ update!(**args)
1136
+ end
1137
+
1138
+ # Update properties of this object
1139
+ def update!(**args)
1140
+ @authorization_url = args[:authorization_url] if args.key?(:authorization_url)
1141
+ @refresh_url = args[:refresh_url] if args.key?(:refresh_url)
1142
+ @scopes = args[:scopes] if args.key?(:scopes)
1143
+ end
1144
+ end
1145
+
419
1146
  # Response message for `ListBillingAccounts`.
420
1147
  class ListBillingAccountsResponse
421
1148
  include Google::Apis::Core::Hashable
@@ -507,12 +1234,272 @@ module Google
507
1234
  # empty if there are no more results to retrieve.
508
1235
  # Corresponds to the JSON property `nextPageToken`
509
1236
  # @return [String]
510
- attr_accessor :next_page_token
1237
+ attr_accessor :next_page_token
1238
+
1239
+ # The list of public SKUs of the given service.
1240
+ # Corresponds to the JSON property `skus`
1241
+ # @return [Array<Google::Apis::CloudbillingV1::Sku>]
1242
+ attr_accessor :skus
1243
+
1244
+ def initialize(**args)
1245
+ update!(**args)
1246
+ end
1247
+
1248
+ # Update properties of this object
1249
+ def update!(**args)
1250
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1251
+ @skus = args[:skus] if args.key?(:skus)
1252
+ end
1253
+ end
1254
+
1255
+ #
1256
+ class ListTaskPushNotificationConfigResponse
1257
+ include Google::Apis::Core::Hashable
1258
+
1259
+ # The list of push notification configurations.
1260
+ # Corresponds to the JSON property `configs`
1261
+ # @return [Array<Google::Apis::CloudbillingV1::TaskPushNotificationConfig>]
1262
+ attr_accessor :configs
1263
+
1264
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1265
+ # field is omitted, there are no subsequent pages.
1266
+ # Corresponds to the JSON property `nextPageToken`
1267
+ # @return [String]
1268
+ attr_accessor :next_page_token
1269
+
1270
+ def initialize(**args)
1271
+ update!(**args)
1272
+ end
1273
+
1274
+ # Update properties of this object
1275
+ def update!(**args)
1276
+ @configs = args[:configs] if args.key?(:configs)
1277
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1278
+ end
1279
+ end
1280
+
1281
+ # Message is one unit of communication between client and server. It is
1282
+ # associated with a context and optionally a task. Since the server is
1283
+ # responsible for the context definition, it must always provide a context_id in
1284
+ # its messages. The client can optionally provide the context_id if it knows the
1285
+ # context to associate the message to. Similarly for task_id, except the server
1286
+ # decides if a task is created and whether to include the task_id.
1287
+ class Message
1288
+ include Google::Apis::Core::Hashable
1289
+
1290
+ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of
1291
+ # the message content.
1292
+ # Corresponds to the JSON property `content`
1293
+ # @return [Array<Google::Apis::CloudbillingV1::Part>]
1294
+ attr_accessor :content
1295
+
1296
+ # The context id of the message. This is optional and if set, the message will
1297
+ # be associated with the given context.
1298
+ # Corresponds to the JSON property `contextId`
1299
+ # @return [String]
1300
+ attr_accessor :context_id
1301
+
1302
+ # The URIs of extensions that are present or contributed to this Message.
1303
+ # Corresponds to the JSON property `extensions`
1304
+ # @return [Array<String>]
1305
+ attr_accessor :extensions
1306
+
1307
+ # The unique identifier (e.g. UUID)of the message. This is required and created
1308
+ # by the message creator.
1309
+ # Corresponds to the JSON property `messageId`
1310
+ # @return [String]
1311
+ attr_accessor :message_id
1312
+
1313
+ # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to
1314
+ # provide along with the message.
1315
+ # Corresponds to the JSON property `metadata`
1316
+ # @return [Hash<String,Object>]
1317
+ attr_accessor :metadata
1318
+
1319
+ # A role for the message.
1320
+ # Corresponds to the JSON property `role`
1321
+ # @return [String]
1322
+ attr_accessor :role
1323
+
1324
+ # The task id of the message. This is optional and if set, the message will be
1325
+ # associated with the given task.
1326
+ # Corresponds to the JSON property `taskId`
1327
+ # @return [String]
1328
+ attr_accessor :task_id
1329
+
1330
+ def initialize(**args)
1331
+ update!(**args)
1332
+ end
1333
+
1334
+ # Update properties of this object
1335
+ def update!(**args)
1336
+ @content = args[:content] if args.key?(:content)
1337
+ @context_id = args[:context_id] if args.key?(:context_id)
1338
+ @extensions = args[:extensions] if args.key?(:extensions)
1339
+ @message_id = args[:message_id] if args.key?(:message_id)
1340
+ @metadata = args[:metadata] if args.key?(:metadata)
1341
+ @role = args[:role] if args.key?(:role)
1342
+ @task_id = args[:task_id] if args.key?(:task_id)
1343
+ end
1344
+ end
1345
+
1346
+ # Represents an amount of money with its currency type.
1347
+ class Money
1348
+ include Google::Apis::Core::Hashable
1349
+
1350
+ # The three-letter currency code defined in ISO 4217.
1351
+ # Corresponds to the JSON property `currencyCode`
1352
+ # @return [String]
1353
+ attr_accessor :currency_code
1354
+
1355
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
1356
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
1357
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
1358
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
1359
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
1360
+ # Corresponds to the JSON property `nanos`
1361
+ # @return [Fixnum]
1362
+ attr_accessor :nanos
1363
+
1364
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
1365
+ # 1 unit is one US dollar.
1366
+ # Corresponds to the JSON property `units`
1367
+ # @return [Fixnum]
1368
+ attr_accessor :units
1369
+
1370
+ def initialize(**args)
1371
+ update!(**args)
1372
+ end
1373
+
1374
+ # Update properties of this object
1375
+ def update!(**args)
1376
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
1377
+ @nanos = args[:nanos] if args.key?(:nanos)
1378
+ @units = args[:units] if args.key?(:units)
1379
+ end
1380
+ end
1381
+
1382
+ # Request message for `MoveBillingAccount` RPC.
1383
+ class MoveBillingAccountRequest
1384
+ include Google::Apis::Core::Hashable
1385
+
1386
+ # Required. The resource name of the Organization to move the billing account
1387
+ # under. Must be of the form `organizations/`organization_id``.
1388
+ # Corresponds to the JSON property `destinationParent`
1389
+ # @return [String]
1390
+ attr_accessor :destination_parent
1391
+
1392
+ def initialize(**args)
1393
+ update!(**args)
1394
+ end
1395
+
1396
+ # Update properties of this object
1397
+ def update!(**args)
1398
+ @destination_parent = args[:destination_parent] if args.key?(:destination_parent)
1399
+ end
1400
+ end
1401
+
1402
+ #
1403
+ class MutualTlsSecurityScheme
1404
+ include Google::Apis::Core::Hashable
1405
+
1406
+ # Description of this security scheme.
1407
+ # Corresponds to the JSON property `description`
1408
+ # @return [String]
1409
+ attr_accessor :description
1410
+
1411
+ def initialize(**args)
1412
+ update!(**args)
1413
+ end
1414
+
1415
+ # Update properties of this object
1416
+ def update!(**args)
1417
+ @description = args[:description] if args.key?(:description)
1418
+ end
1419
+ end
1420
+
1421
+ #
1422
+ class OAuth2SecurityScheme
1423
+ include Google::Apis::Core::Hashable
1424
+
1425
+ # Description of this security scheme.
1426
+ # Corresponds to the JSON property `description`
1427
+ # @return [String]
1428
+ attr_accessor :description
1429
+
1430
+ # An object containing configuration information for the flow types supported
1431
+ # Corresponds to the JSON property `flows`
1432
+ # @return [Google::Apis::CloudbillingV1::OAuthFlows]
1433
+ attr_accessor :flows
1434
+
1435
+ # URL to the oauth2 authorization server metadata [RFC8414](https://datatracker.
1436
+ # ietf.org/doc/html/rfc8414). TLS is required.
1437
+ # Corresponds to the JSON property `oauth2MetadataUrl`
1438
+ # @return [String]
1439
+ attr_accessor :oauth2_metadata_url
1440
+
1441
+ def initialize(**args)
1442
+ update!(**args)
1443
+ end
1444
+
1445
+ # Update properties of this object
1446
+ def update!(**args)
1447
+ @description = args[:description] if args.key?(:description)
1448
+ @flows = args[:flows] if args.key?(:flows)
1449
+ @oauth2_metadata_url = args[:oauth2_metadata_url] if args.key?(:oauth2_metadata_url)
1450
+ end
1451
+ end
1452
+
1453
+ #
1454
+ class OAuthFlows
1455
+ include Google::Apis::Core::Hashable
1456
+
1457
+ #
1458
+ # Corresponds to the JSON property `authorizationCode`
1459
+ # @return [Google::Apis::CloudbillingV1::AuthorizationCodeOAuthFlow]
1460
+ attr_accessor :authorization_code
1461
+
1462
+ #
1463
+ # Corresponds to the JSON property `clientCredentials`
1464
+ # @return [Google::Apis::CloudbillingV1::ClientCredentialsOAuthFlow]
1465
+ attr_accessor :client_credentials
1466
+
1467
+ #
1468
+ # Corresponds to the JSON property `implicit`
1469
+ # @return [Google::Apis::CloudbillingV1::ImplicitOAuthFlow]
1470
+ attr_accessor :implicit
1471
+
1472
+ #
1473
+ # Corresponds to the JSON property `password`
1474
+ # @return [Google::Apis::CloudbillingV1::PasswordOAuthFlow]
1475
+ attr_accessor :password
1476
+
1477
+ def initialize(**args)
1478
+ update!(**args)
1479
+ end
1480
+
1481
+ # Update properties of this object
1482
+ def update!(**args)
1483
+ @authorization_code = args[:authorization_code] if args.key?(:authorization_code)
1484
+ @client_credentials = args[:client_credentials] if args.key?(:client_credentials)
1485
+ @implicit = args[:implicit] if args.key?(:implicit)
1486
+ @password = args[:password] if args.key?(:password)
1487
+ end
1488
+ end
1489
+
1490
+ #
1491
+ class OpenIdConnectSecurityScheme
1492
+ include Google::Apis::Core::Hashable
1493
+
1494
+ # Description of this security scheme.
1495
+ # Corresponds to the JSON property `description`
1496
+ # @return [String]
1497
+ attr_accessor :description
511
1498
 
512
- # The list of public SKUs of the given service.
513
- # Corresponds to the JSON property `skus`
514
- # @return [Array<Google::Apis::CloudbillingV1::Sku>]
515
- attr_accessor :skus
1499
+ # Well-known URL to discover the [[OpenID-Connect-Discovery]] provider metadata.
1500
+ # Corresponds to the JSON property `openIdConnectUrl`
1501
+ # @return [String]
1502
+ attr_accessor :open_id_connect_url
516
1503
 
517
1504
  def initialize(**args)
518
1505
  update!(**args)
@@ -520,34 +1507,39 @@ module Google
520
1507
 
521
1508
  # Update properties of this object
522
1509
  def update!(**args)
523
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
524
- @skus = args[:skus] if args.key?(:skus)
1510
+ @description = args[:description] if args.key?(:description)
1511
+ @open_id_connect_url = args[:open_id_connect_url] if args.key?(:open_id_connect_url)
525
1512
  end
526
1513
  end
527
1514
 
528
- # Represents an amount of money with its currency type.
529
- class Money
1515
+ # Part represents a container for a section of communication content. Parts can
1516
+ # be purely textual, some sort of file (image, video, etc) or a structured data
1517
+ # blob (i.e. JSON).
1518
+ class Part
530
1519
  include Google::Apis::Core::Hashable
531
1520
 
532
- # The three-letter currency code defined in ISO 4217.
533
- # Corresponds to the JSON property `currencyCode`
534
- # @return [String]
535
- attr_accessor :currency_code
1521
+ # DataPart represents a structured blob. This is most commonly a JSON payload.
1522
+ # Corresponds to the JSON property `data`
1523
+ # @return [Google::Apis::CloudbillingV1::DataPart]
1524
+ attr_accessor :data
536
1525
 
537
- # Number of nano (10^-9) units of the amount. The value must be between -999,999,
538
- # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
539
- # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
540
- # negative. If `units` is negative, `nanos` must be negative or zero. For
541
- # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
542
- # Corresponds to the JSON property `nanos`
543
- # @return [Fixnum]
544
- attr_accessor :nanos
1526
+ # FilePart represents the different ways files can be provided. If files are
1527
+ # small, directly feeding the bytes is supported via file_with_bytes. If the
1528
+ # file is large, the agent should read the content as appropriate directly from
1529
+ # the file_with_uri source.
1530
+ # Corresponds to the JSON property `file`
1531
+ # @return [Google::Apis::CloudbillingV1::FilePart]
1532
+ attr_accessor :file
545
1533
 
546
- # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
547
- # 1 unit is one US dollar.
548
- # Corresponds to the JSON property `units`
549
- # @return [Fixnum]
550
- attr_accessor :units
1534
+ # Optional metadata associated with this part.
1535
+ # Corresponds to the JSON property `metadata`
1536
+ # @return [Hash<String,Object>]
1537
+ attr_accessor :metadata
1538
+
1539
+ #
1540
+ # Corresponds to the JSON property `text`
1541
+ # @return [String]
1542
+ attr_accessor :text
551
1543
 
552
1544
  def initialize(**args)
553
1545
  update!(**args)
@@ -555,21 +1547,34 @@ module Google
555
1547
 
556
1548
  # Update properties of this object
557
1549
  def update!(**args)
558
- @currency_code = args[:currency_code] if args.key?(:currency_code)
559
- @nanos = args[:nanos] if args.key?(:nanos)
560
- @units = args[:units] if args.key?(:units)
1550
+ @data = args[:data] if args.key?(:data)
1551
+ @file = args[:file] if args.key?(:file)
1552
+ @metadata = args[:metadata] if args.key?(:metadata)
1553
+ @text = args[:text] if args.key?(:text)
561
1554
  end
562
1555
  end
563
1556
 
564
- # Request message for `MoveBillingAccount` RPC.
565
- class MoveBillingAccountRequest
1557
+ #
1558
+ class PasswordOAuthFlow
566
1559
  include Google::Apis::Core::Hashable
567
1560
 
568
- # Required. The resource name of the Organization to move the billing account
569
- # under. Must be of the form `organizations/`organization_id``.
570
- # Corresponds to the JSON property `destinationParent`
1561
+ # The URL to be used for obtaining refresh tokens. This MUST be in the form of a
1562
+ # URL. The OAuth2 standard requires the use of TLS.
1563
+ # Corresponds to the JSON property `refreshUrl`
571
1564
  # @return [String]
572
- attr_accessor :destination_parent
1565
+ attr_accessor :refresh_url
1566
+
1567
+ # The available scopes for the OAuth2 security scheme. A map between the scope
1568
+ # name and a short description for it. The map MAY be empty.
1569
+ # Corresponds to the JSON property `scopes`
1570
+ # @return [Hash<String,String>]
1571
+ attr_accessor :scopes
1572
+
1573
+ # The token URL to be used for this flow. This MUST be in the form of a URL. The
1574
+ # OAuth2 standard requires the use of TLS.
1575
+ # Corresponds to the JSON property `tokenUrl`
1576
+ # @return [String]
1577
+ attr_accessor :token_url
573
1578
 
574
1579
  def initialize(**args)
575
1580
  update!(**args)
@@ -577,7 +1582,9 @@ module Google
577
1582
 
578
1583
  # Update properties of this object
579
1584
  def update!(**args)
580
- @destination_parent = args[:destination_parent] if args.key?(:destination_parent)
1585
+ @refresh_url = args[:refresh_url] if args.key?(:refresh_url)
1586
+ @scopes = args[:scopes] if args.key?(:scopes)
1587
+ @token_url = args[:token_url] if args.key?(:token_url)
581
1588
  end
582
1589
  end
583
1590
 
@@ -852,6 +1859,221 @@ module Google
852
1859
  end
853
1860
  end
854
1861
 
1862
+ # Configuration for setting up push notifications for task updates.
1863
+ class PushNotificationConfig
1864
+ include Google::Apis::Core::Hashable
1865
+
1866
+ # Defines authentication details, used for push notifications.
1867
+ # Corresponds to the JSON property `authentication`
1868
+ # @return [Google::Apis::CloudbillingV1::AuthenticationInfo]
1869
+ attr_accessor :authentication
1870
+
1871
+ # A unique identifier (e.g. UUID) for this push notification.
1872
+ # Corresponds to the JSON property `id`
1873
+ # @return [String]
1874
+ attr_accessor :id
1875
+
1876
+ # Token unique for this task/session
1877
+ # Corresponds to the JSON property `token`
1878
+ # @return [String]
1879
+ attr_accessor :token
1880
+
1881
+ # Url to send the notification too
1882
+ # Corresponds to the JSON property `url`
1883
+ # @return [String]
1884
+ attr_accessor :url
1885
+
1886
+ def initialize(**args)
1887
+ update!(**args)
1888
+ end
1889
+
1890
+ # Update properties of this object
1891
+ def update!(**args)
1892
+ @authentication = args[:authentication] if args.key?(:authentication)
1893
+ @id = args[:id] if args.key?(:id)
1894
+ @token = args[:token] if args.key?(:token)
1895
+ @url = args[:url] if args.key?(:url)
1896
+ end
1897
+ end
1898
+
1899
+ #
1900
+ class Security
1901
+ include Google::Apis::Core::Hashable
1902
+
1903
+ #
1904
+ # Corresponds to the JSON property `schemes`
1905
+ # @return [Hash<String,Google::Apis::CloudbillingV1::StringList>]
1906
+ attr_accessor :schemes
1907
+
1908
+ def initialize(**args)
1909
+ update!(**args)
1910
+ end
1911
+
1912
+ # Update properties of this object
1913
+ def update!(**args)
1914
+ @schemes = args[:schemes] if args.key?(:schemes)
1915
+ end
1916
+ end
1917
+
1918
+ #
1919
+ class SecurityScheme
1920
+ include Google::Apis::Core::Hashable
1921
+
1922
+ #
1923
+ # Corresponds to the JSON property `apiKeySecurityScheme`
1924
+ # @return [Google::Apis::CloudbillingV1::ApiKeySecurityScheme]
1925
+ attr_accessor :api_key_security_scheme
1926
+
1927
+ #
1928
+ # Corresponds to the JSON property `httpAuthSecurityScheme`
1929
+ # @return [Google::Apis::CloudbillingV1::HttpAuthSecurityScheme]
1930
+ attr_accessor :http_auth_security_scheme
1931
+
1932
+ #
1933
+ # Corresponds to the JSON property `mtlsSecurityScheme`
1934
+ # @return [Google::Apis::CloudbillingV1::MutualTlsSecurityScheme]
1935
+ attr_accessor :mtls_security_scheme
1936
+
1937
+ #
1938
+ # Corresponds to the JSON property `oauth2SecurityScheme`
1939
+ # @return [Google::Apis::CloudbillingV1::OAuth2SecurityScheme]
1940
+ attr_accessor :oauth2_security_scheme
1941
+
1942
+ #
1943
+ # Corresponds to the JSON property `openIdConnectSecurityScheme`
1944
+ # @return [Google::Apis::CloudbillingV1::OpenIdConnectSecurityScheme]
1945
+ attr_accessor :open_id_connect_security_scheme
1946
+
1947
+ def initialize(**args)
1948
+ update!(**args)
1949
+ end
1950
+
1951
+ # Update properties of this object
1952
+ def update!(**args)
1953
+ @api_key_security_scheme = args[:api_key_security_scheme] if args.key?(:api_key_security_scheme)
1954
+ @http_auth_security_scheme = args[:http_auth_security_scheme] if args.key?(:http_auth_security_scheme)
1955
+ @mtls_security_scheme = args[:mtls_security_scheme] if args.key?(:mtls_security_scheme)
1956
+ @oauth2_security_scheme = args[:oauth2_security_scheme] if args.key?(:oauth2_security_scheme)
1957
+ @open_id_connect_security_scheme = args[:open_id_connect_security_scheme] if args.key?(:open_id_connect_security_scheme)
1958
+ end
1959
+ end
1960
+
1961
+ # Configuration of a send message request.
1962
+ class SendMessageConfiguration
1963
+ include Google::Apis::Core::Hashable
1964
+
1965
+ # The output modes that the agent is expected to respond with.
1966
+ # Corresponds to the JSON property `acceptedOutputModes`
1967
+ # @return [Array<String>]
1968
+ attr_accessor :accepted_output_modes
1969
+
1970
+ # If true, the message will be blocking until the task is completed. If false,
1971
+ # the message will be non-blocking and the task will be returned immediately. It
1972
+ # is the caller's responsibility to check for any task updates.
1973
+ # Corresponds to the JSON property `blocking`
1974
+ # @return [Boolean]
1975
+ attr_accessor :blocking
1976
+ alias_method :blocking?, :blocking
1977
+
1978
+ # The maximum number of messages to include in the history. if 0, the history
1979
+ # will be unlimited.
1980
+ # Corresponds to the JSON property `historyLength`
1981
+ # @return [Fixnum]
1982
+ attr_accessor :history_length
1983
+
1984
+ # Configuration for setting up push notifications for task updates.
1985
+ # Corresponds to the JSON property `pushNotification`
1986
+ # @return [Google::Apis::CloudbillingV1::PushNotificationConfig]
1987
+ attr_accessor :push_notification
1988
+
1989
+ def initialize(**args)
1990
+ update!(**args)
1991
+ end
1992
+
1993
+ # Update properties of this object
1994
+ def update!(**args)
1995
+ @accepted_output_modes = args[:accepted_output_modes] if args.key?(:accepted_output_modes)
1996
+ @blocking = args[:blocking] if args.key?(:blocking)
1997
+ @history_length = args[:history_length] if args.key?(:history_length)
1998
+ @push_notification = args[:push_notification] if args.key?(:push_notification)
1999
+ end
2000
+ end
2001
+
2002
+ # /////////// Request Messages ///////////
2003
+ class SendMessageRequest
2004
+ include Google::Apis::Core::Hashable
2005
+
2006
+ # Configuration of a send message request.
2007
+ # Corresponds to the JSON property `configuration`
2008
+ # @return [Google::Apis::CloudbillingV1::SendMessageConfiguration]
2009
+ attr_accessor :configuration
2010
+
2011
+ # Message is one unit of communication between client and server. It is
2012
+ # associated with a context and optionally a task. Since the server is
2013
+ # responsible for the context definition, it must always provide a context_id in
2014
+ # its messages. The client can optionally provide the context_id if it knows the
2015
+ # context to associate the message to. Similarly for task_id, except the server
2016
+ # decides if a task is created and whether to include the task_id.
2017
+ # Corresponds to the JSON property `message`
2018
+ # @return [Google::Apis::CloudbillingV1::Message]
2019
+ attr_accessor :message
2020
+
2021
+ # Optional metadata for the request.
2022
+ # Corresponds to the JSON property `metadata`
2023
+ # @return [Hash<String,Object>]
2024
+ attr_accessor :metadata
2025
+
2026
+ # Optional tenant, provided as a path parameter. Experimental, might still
2027
+ # change for 1.0 release.
2028
+ # Corresponds to the JSON property `tenant`
2029
+ # @return [String]
2030
+ attr_accessor :tenant
2031
+
2032
+ def initialize(**args)
2033
+ update!(**args)
2034
+ end
2035
+
2036
+ # Update properties of this object
2037
+ def update!(**args)
2038
+ @configuration = args[:configuration] if args.key?(:configuration)
2039
+ @message = args[:message] if args.key?(:message)
2040
+ @metadata = args[:metadata] if args.key?(:metadata)
2041
+ @tenant = args[:tenant] if args.key?(:tenant)
2042
+ end
2043
+ end
2044
+
2045
+ # ////// Response Messages ///////////
2046
+ class SendMessageResponse
2047
+ include Google::Apis::Core::Hashable
2048
+
2049
+ # Message is one unit of communication between client and server. It is
2050
+ # associated with a context and optionally a task. Since the server is
2051
+ # responsible for the context definition, it must always provide a context_id in
2052
+ # its messages. The client can optionally provide the context_id if it knows the
2053
+ # context to associate the message to. Similarly for task_id, except the server
2054
+ # decides if a task is created and whether to include the task_id.
2055
+ # Corresponds to the JSON property `message`
2056
+ # @return [Google::Apis::CloudbillingV1::Message]
2057
+ attr_accessor :message
2058
+
2059
+ # Task is the core unit of action for A2A. It has a current status and when
2060
+ # results are created for the task they are stored in the artifact. If there are
2061
+ # multiple turns for a task, these are stored in history.
2062
+ # Corresponds to the JSON property `task`
2063
+ # @return [Google::Apis::CloudbillingV1::Task]
2064
+ attr_accessor :task
2065
+
2066
+ def initialize(**args)
2067
+ update!(**args)
2068
+ end
2069
+
2070
+ # Update properties of this object
2071
+ def update!(**args)
2072
+ @message = args[:message] if args.key?(:message)
2073
+ @task = args[:task] if args.key?(:task)
2074
+ end
2075
+ end
2076
+
855
2077
  # Encapsulates a single service in Google Cloud Platform.
856
2078
  class Service
857
2079
  include Google::Apis::Core::Hashable
@@ -1008,6 +2230,293 @@ module Google
1008
2230
  end
1009
2231
  end
1010
2232
 
2233
+ # The stream response for a message. The stream should be one of the following
2234
+ # sequences: If the response is a message, the stream should contain one, and
2235
+ # only one, message and then close If the response is a task lifecycle, the
2236
+ # first response should be a Task object followed by zero or more
2237
+ # TaskStatusUpdateEvents and TaskArtifactUpdateEvents. The stream should
2238
+ # complete when the Task if in an interrupted or terminal state. A stream that
2239
+ # ends before these conditions are met are
2240
+ class StreamResponse
2241
+ include Google::Apis::Core::Hashable
2242
+
2243
+ # TaskArtifactUpdateEvent represents a task delta where an artifact has been
2244
+ # generated.
2245
+ # Corresponds to the JSON property `artifactUpdate`
2246
+ # @return [Google::Apis::CloudbillingV1::TaskArtifactUpdateEvent]
2247
+ attr_accessor :artifact_update
2248
+
2249
+ # Message is one unit of communication between client and server. It is
2250
+ # associated with a context and optionally a task. Since the server is
2251
+ # responsible for the context definition, it must always provide a context_id in
2252
+ # its messages. The client can optionally provide the context_id if it knows the
2253
+ # context to associate the message to. Similarly for task_id, except the server
2254
+ # decides if a task is created and whether to include the task_id.
2255
+ # Corresponds to the JSON property `message`
2256
+ # @return [Google::Apis::CloudbillingV1::Message]
2257
+ attr_accessor :message
2258
+
2259
+ # TaskStatusUpdateEvent is a delta even on a task indicating that a task has
2260
+ # changed.
2261
+ # Corresponds to the JSON property `statusUpdate`
2262
+ # @return [Google::Apis::CloudbillingV1::TaskStatusUpdateEvent]
2263
+ attr_accessor :status_update
2264
+
2265
+ # Task is the core unit of action for A2A. It has a current status and when
2266
+ # results are created for the task they are stored in the artifact. If there are
2267
+ # multiple turns for a task, these are stored in history.
2268
+ # Corresponds to the JSON property `task`
2269
+ # @return [Google::Apis::CloudbillingV1::Task]
2270
+ attr_accessor :task
2271
+
2272
+ def initialize(**args)
2273
+ update!(**args)
2274
+ end
2275
+
2276
+ # Update properties of this object
2277
+ def update!(**args)
2278
+ @artifact_update = args[:artifact_update] if args.key?(:artifact_update)
2279
+ @message = args[:message] if args.key?(:message)
2280
+ @status_update = args[:status_update] if args.key?(:status_update)
2281
+ @task = args[:task] if args.key?(:task)
2282
+ end
2283
+ end
2284
+
2285
+ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
2286
+ class StringList
2287
+ include Google::Apis::Core::Hashable
2288
+
2289
+ #
2290
+ # Corresponds to the JSON property `list`
2291
+ # @return [Array<String>]
2292
+ attr_accessor :list
2293
+
2294
+ def initialize(**args)
2295
+ update!(**args)
2296
+ end
2297
+
2298
+ # Update properties of this object
2299
+ def update!(**args)
2300
+ @list = args[:list] if args.key?(:list)
2301
+ end
2302
+ end
2303
+
2304
+ # Task is the core unit of action for A2A. It has a current status and when
2305
+ # results are created for the task they are stored in the artifact. If there are
2306
+ # multiple turns for a task, these are stored in history.
2307
+ class Task
2308
+ include Google::Apis::Core::Hashable
2309
+
2310
+ # A set of output artifacts for a Task.
2311
+ # Corresponds to the JSON property `artifacts`
2312
+ # @return [Array<Google::Apis::CloudbillingV1::Artifact>]
2313
+ attr_accessor :artifacts
2314
+
2315
+ # Unique identifier (e.g. UUID) for the contextual collection of interactions (
2316
+ # tasks and messages). Created by the A2A server.
2317
+ # Corresponds to the JSON property `contextId`
2318
+ # @return [String]
2319
+ attr_accessor :context_id
2320
+
2321
+ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED The history of interactions
2322
+ # from a task.
2323
+ # Corresponds to the JSON property `history`
2324
+ # @return [Array<Google::Apis::CloudbillingV1::Message>]
2325
+ attr_accessor :history
2326
+
2327
+ # Unique identifier (e.g. UUID) for the task, generated by the server for a new
2328
+ # task.
2329
+ # Corresponds to the JSON property `id`
2330
+ # @return [String]
2331
+ attr_accessor :id
2332
+
2333
+ # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED A key/value object to store
2334
+ # custom metadata about a task.
2335
+ # Corresponds to the JSON property `metadata`
2336
+ # @return [Hash<String,Object>]
2337
+ attr_accessor :metadata
2338
+
2339
+ # A container for the status of a task
2340
+ # Corresponds to the JSON property `status`
2341
+ # @return [Google::Apis::CloudbillingV1::TaskStatus]
2342
+ attr_accessor :status
2343
+
2344
+ def initialize(**args)
2345
+ update!(**args)
2346
+ end
2347
+
2348
+ # Update properties of this object
2349
+ def update!(**args)
2350
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
2351
+ @context_id = args[:context_id] if args.key?(:context_id)
2352
+ @history = args[:history] if args.key?(:history)
2353
+ @id = args[:id] if args.key?(:id)
2354
+ @metadata = args[:metadata] if args.key?(:metadata)
2355
+ @status = args[:status] if args.key?(:status)
2356
+ end
2357
+ end
2358
+
2359
+ # TaskArtifactUpdateEvent represents a task delta where an artifact has been
2360
+ # generated.
2361
+ class TaskArtifactUpdateEvent
2362
+ include Google::Apis::Core::Hashable
2363
+
2364
+ # Whether this should be appended to a prior one produced
2365
+ # Corresponds to the JSON property `append`
2366
+ # @return [Boolean]
2367
+ attr_accessor :append
2368
+ alias_method :append?, :append
2369
+
2370
+ # Artifacts are the container for task completed results. These are similar to
2371
+ # Messages but are intended to be the product of a task, as opposed to point-to-
2372
+ # point communication.
2373
+ # Corresponds to the JSON property `artifact`
2374
+ # @return [Google::Apis::CloudbillingV1::Artifact]
2375
+ attr_accessor :artifact
2376
+
2377
+ # The id of the context that this task belongs too
2378
+ # Corresponds to the JSON property `contextId`
2379
+ # @return [String]
2380
+ attr_accessor :context_id
2381
+
2382
+ # Whether this represents the last part of an artifact
2383
+ # Corresponds to the JSON property `lastChunk`
2384
+ # @return [Boolean]
2385
+ attr_accessor :last_chunk
2386
+ alias_method :last_chunk?, :last_chunk
2387
+
2388
+ # Optional metadata associated with the artifact update.
2389
+ # Corresponds to the JSON property `metadata`
2390
+ # @return [Hash<String,Object>]
2391
+ attr_accessor :metadata
2392
+
2393
+ # The id of the task for this artifact
2394
+ # Corresponds to the JSON property `taskId`
2395
+ # @return [String]
2396
+ attr_accessor :task_id
2397
+
2398
+ def initialize(**args)
2399
+ update!(**args)
2400
+ end
2401
+
2402
+ # Update properties of this object
2403
+ def update!(**args)
2404
+ @append = args[:append] if args.key?(:append)
2405
+ @artifact = args[:artifact] if args.key?(:artifact)
2406
+ @context_id = args[:context_id] if args.key?(:context_id)
2407
+ @last_chunk = args[:last_chunk] if args.key?(:last_chunk)
2408
+ @metadata = args[:metadata] if args.key?(:metadata)
2409
+ @task_id = args[:task_id] if args.key?(:task_id)
2410
+ end
2411
+ end
2412
+
2413
+ #
2414
+ class TaskPushNotificationConfig
2415
+ include Google::Apis::Core::Hashable
2416
+
2417
+ # The resource name of the config. Format: tasks/`task_id`/
2418
+ # pushNotificationConfigs/`config_id`
2419
+ # Corresponds to the JSON property `name`
2420
+ # @return [String]
2421
+ attr_accessor :name
2422
+
2423
+ # Configuration for setting up push notifications for task updates.
2424
+ # Corresponds to the JSON property `pushNotificationConfig`
2425
+ # @return [Google::Apis::CloudbillingV1::PushNotificationConfig]
2426
+ attr_accessor :push_notification_config
2427
+
2428
+ def initialize(**args)
2429
+ update!(**args)
2430
+ end
2431
+
2432
+ # Update properties of this object
2433
+ def update!(**args)
2434
+ @name = args[:name] if args.key?(:name)
2435
+ @push_notification_config = args[:push_notification_config] if args.key?(:push_notification_config)
2436
+ end
2437
+ end
2438
+
2439
+ # A container for the status of a task
2440
+ class TaskStatus
2441
+ include Google::Apis::Core::Hashable
2442
+
2443
+ # Message is one unit of communication between client and server. It is
2444
+ # associated with a context and optionally a task. Since the server is
2445
+ # responsible for the context definition, it must always provide a context_id in
2446
+ # its messages. The client can optionally provide the context_id if it knows the
2447
+ # context to associate the message to. Similarly for task_id, except the server
2448
+ # decides if a task is created and whether to include the task_id.
2449
+ # Corresponds to the JSON property `message`
2450
+ # @return [Google::Apis::CloudbillingV1::Message]
2451
+ attr_accessor :message
2452
+
2453
+ # The current state of this task
2454
+ # Corresponds to the JSON property `state`
2455
+ # @return [String]
2456
+ attr_accessor :state
2457
+
2458
+ # Timestamp when the status was recorded. Example: "2023-10-27T10:00:00Z"
2459
+ # Corresponds to the JSON property `timestamp`
2460
+ # @return [String]
2461
+ attr_accessor :timestamp
2462
+
2463
+ def initialize(**args)
2464
+ update!(**args)
2465
+ end
2466
+
2467
+ # Update properties of this object
2468
+ def update!(**args)
2469
+ @message = args[:message] if args.key?(:message)
2470
+ @state = args[:state] if args.key?(:state)
2471
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
2472
+ end
2473
+ end
2474
+
2475
+ # TaskStatusUpdateEvent is a delta even on a task indicating that a task has
2476
+ # changed.
2477
+ class TaskStatusUpdateEvent
2478
+ include Google::Apis::Core::Hashable
2479
+
2480
+ # The id of the context that the task belongs to
2481
+ # Corresponds to the JSON property `contextId`
2482
+ # @return [String]
2483
+ attr_accessor :context_id
2484
+
2485
+ # Whether this is the last status update expected for this task.
2486
+ # Corresponds to the JSON property `final`
2487
+ # @return [Boolean]
2488
+ attr_accessor :final
2489
+ alias_method :final?, :final
2490
+
2491
+ # Optional metadata to associate with the task update.
2492
+ # Corresponds to the JSON property `metadata`
2493
+ # @return [Hash<String,Object>]
2494
+ attr_accessor :metadata
2495
+
2496
+ # A container for the status of a task
2497
+ # Corresponds to the JSON property `status`
2498
+ # @return [Google::Apis::CloudbillingV1::TaskStatus]
2499
+ attr_accessor :status
2500
+
2501
+ # The id of the task that is changed
2502
+ # Corresponds to the JSON property `taskId`
2503
+ # @return [String]
2504
+ attr_accessor :task_id
2505
+
2506
+ def initialize(**args)
2507
+ update!(**args)
2508
+ end
2509
+
2510
+ # Update properties of this object
2511
+ def update!(**args)
2512
+ @context_id = args[:context_id] if args.key?(:context_id)
2513
+ @final = args[:final] if args.key?(:final)
2514
+ @metadata = args[:metadata] if args.key?(:metadata)
2515
+ @status = args[:status] if args.key?(:status)
2516
+ @task_id = args[:task_id] if args.key?(:task_id)
2517
+ end
2518
+ end
2519
+
1011
2520
  # Request message for `TestIamPermissions` method.
1012
2521
  class TestIamPermissionsRequest
1013
2522
  include Google::Apis::Core::Hashable