google-apis-securesourcemanager_v1 0.1.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.
@@ -0,0 +1,2336 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module SecuresourcemanagerV1
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
39
+ # from DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example, `
49
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # The request to batch create pull request comments.
97
+ class BatchCreatePullRequestCommentsRequest
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # Required. The request message specifying the resources to create. There should
101
+ # be exactly one CreatePullRequestCommentRequest with CommentDetail being REVIEW
102
+ # in the list, and no more than 100 CreatePullRequestCommentRequests with
103
+ # CommentDetail being CODE in the list
104
+ # Corresponds to the JSON property `requests`
105
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::CreatePullRequestCommentRequest>]
106
+ attr_accessor :requests
107
+
108
+ def initialize(**args)
109
+ update!(**args)
110
+ end
111
+
112
+ # Update properties of this object
113
+ def update!(**args)
114
+ @requests = args[:requests] if args.key?(:requests)
115
+ end
116
+ end
117
+
118
+ # Associates `members`, or principals, with a `role`.
119
+ class Binding
120
+ include Google::Apis::Core::Hashable
121
+
122
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
123
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
124
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
125
+ # "Summary size limit" description: "Determines if a summary is less than 100
126
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
127
+ # Requestor is owner" description: "Determines if requestor is the document
128
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
129
+ # Logic): title: "Public documents" description: "Determine whether the document
130
+ # should be publicly visible" expression: "document.type != 'private' &&
131
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
132
+ # string" description: "Create a notification string with a timestamp."
133
+ # expression: "'New message received at ' + string(document.create_time)" The
134
+ # exact variables and functions that may be referenced within an expression are
135
+ # determined by the service that evaluates it. See the service documentation for
136
+ # additional information.
137
+ # Corresponds to the JSON property `condition`
138
+ # @return [Google::Apis::SecuresourcemanagerV1::Expr]
139
+ attr_accessor :condition
140
+
141
+ # Specifies the principals requesting access for a Google Cloud resource. `
142
+ # members` can have the following values: * `allUsers`: A special identifier
143
+ # that represents anyone who is on the internet; with or without a Google
144
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
145
+ # anyone who is authenticated with a Google account or a service account. Does
146
+ # not include identities that come from external identity providers (IdPs)
147
+ # through identity federation. * `user:`emailid``: An email address that
148
+ # represents a specific Google account. For example, `alice@example.com` . * `
149
+ # serviceAccount:`emailid``: An email address that represents a Google service
150
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
151
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
152
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
153
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
154
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
155
+ # email address that represents a Google group. For example, `admins@example.com`
156
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
157
+ # users of that domain. For example, `google.com` or `example.com`. * `principal:
158
+ # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
159
+ # subject_attribute_value``: A single identity in a workforce identity pool. * `
160
+ # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
161
+ # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
162
+ # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
163
+ # attribute_name`/`attribute_value``: All workforce identities with a specific
164
+ # attribute value. * `principalSet://iam.googleapis.com/locations/global/
165
+ # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
166
+ # principal://iam.googleapis.com/projects/`project_number`/locations/global/
167
+ # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
168
+ # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
169
+ # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
170
+ # group/`group_id``: A workload identity pool group. * `principalSet://iam.
171
+ # googleapis.com/projects/`project_number`/locations/global/
172
+ # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
173
+ # All identities in a workload identity pool with a certain attribute. * `
174
+ # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
175
+ # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
176
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
177
+ # identifier) representing a user that has been recently deleted. For example, `
178
+ # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
179
+ # value reverts to `user:`emailid`` and the recovered user retains the role in
180
+ # the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
181
+ # address (plus unique identifier) representing a service account that has been
182
+ # recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
183
+ # 123456789012345678901`. If the service account is undeleted, this value
184
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
185
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
186
+ # An email address (plus unique identifier) representing a Google group that has
187
+ # been recently deleted. For example, `admins@example.com?uid=
188
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
189
+ # group:`emailid`` and the recovered group retains the role in the binding. * `
190
+ # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
191
+ # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
192
+ # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
193
+ # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
194
+ # Corresponds to the JSON property `members`
195
+ # @return [Array<String>]
196
+ attr_accessor :members
197
+
198
+ # Role that is assigned to the list of `members`, or principals. For example, `
199
+ # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
200
+ # roles and permissions, see the [IAM documentation](https://cloud.google.com/
201
+ # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
202
+ # here](https://cloud.google.com/iam/docs/understanding-roles).
203
+ # Corresponds to the JSON property `role`
204
+ # @return [String]
205
+ attr_accessor :role
206
+
207
+ def initialize(**args)
208
+ update!(**args)
209
+ end
210
+
211
+ # Update properties of this object
212
+ def update!(**args)
213
+ @condition = args[:condition] if args.key?(:condition)
214
+ @members = args[:members] if args.key?(:members)
215
+ @role = args[:role] if args.key?(:role)
216
+ end
217
+ end
218
+
219
+ # Branch represents a branch involved in a pull request.
220
+ class Branch
221
+ include Google::Apis::Core::Hashable
222
+
223
+ # Required. Name of the branch.
224
+ # Corresponds to the JSON property `ref`
225
+ # @return [String]
226
+ attr_accessor :ref
227
+
228
+ # Output only. The commit at the tip of the branch.
229
+ # Corresponds to the JSON property `sha`
230
+ # @return [String]
231
+ attr_accessor :sha
232
+
233
+ def initialize(**args)
234
+ update!(**args)
235
+ end
236
+
237
+ # Update properties of this object
238
+ def update!(**args)
239
+ @ref = args[:ref] if args.key?(:ref)
240
+ @sha = args[:sha] if args.key?(:sha)
241
+ end
242
+ end
243
+
244
+ # Metadata of a BranchRule. BranchRule is the protection rule to enforce pre-
245
+ # defined rules on designated branches within a repository.
246
+ class BranchRule
247
+ include Google::Apis::Core::Hashable
248
+
249
+ # Optional. Determines if allow stale reviews or approvals before merging to the
250
+ # branch.
251
+ # Corresponds to the JSON property `allowStaleReviews`
252
+ # @return [Boolean]
253
+ attr_accessor :allow_stale_reviews
254
+ alias_method :allow_stale_reviews?, :allow_stale_reviews
255
+
256
+ # Optional. User annotations. These attributes can only be set and used by the
257
+ # user. See https://google.aip.dev/128#annotations for more details such as
258
+ # format and size limitations.
259
+ # Corresponds to the JSON property `annotations`
260
+ # @return [Hash<String,String>]
261
+ attr_accessor :annotations
262
+
263
+ # Output only. Create timestamp.
264
+ # Corresponds to the JSON property `createTime`
265
+ # @return [String]
266
+ attr_accessor :create_time
267
+
268
+ # Optional. Determines if the branch rule is disabled or not.
269
+ # Corresponds to the JSON property `disabled`
270
+ # @return [Boolean]
271
+ attr_accessor :disabled
272
+ alias_method :disabled?, :disabled
273
+
274
+ # Optional. This checksum is computed by the server based on the value of other
275
+ # fields, and may be sent on update and delete requests to ensure the client has
276
+ # an up-to-date value before proceeding.
277
+ # Corresponds to the JSON property `etag`
278
+ # @return [String]
279
+ attr_accessor :etag
280
+
281
+ # Optional. The pattern of the branch that can match to this BranchRule.
282
+ # Specified as regex. .* for all branches. Examples: main, (main|release.*).
283
+ # Current MVP phase only support `.*` for wildcard.
284
+ # Corresponds to the JSON property `includePattern`
285
+ # @return [String]
286
+ attr_accessor :include_pattern
287
+
288
+ # Optional. The minimum number of approvals required for the branch rule to be
289
+ # matched.
290
+ # Corresponds to the JSON property `minimumApprovalsCount`
291
+ # @return [Fixnum]
292
+ attr_accessor :minimum_approvals_count
293
+
294
+ # Optional. The minimum number of reviews required for the branch rule to be
295
+ # matched.
296
+ # Corresponds to the JSON property `minimumReviewsCount`
297
+ # @return [Fixnum]
298
+ attr_accessor :minimum_reviews_count
299
+
300
+ # Optional. A unique identifier for a BranchRule. The name should be of the
301
+ # format: `projects/`project`/locations/`location`/repositories/`repository`/
302
+ # branchRules/`branch_rule``
303
+ # Corresponds to the JSON property `name`
304
+ # @return [String]
305
+ attr_accessor :name
306
+
307
+ # Optional. Determines if require comments resolved before merging to the branch.
308
+ # Corresponds to the JSON property `requireCommentsResolved`
309
+ # @return [Boolean]
310
+ attr_accessor :require_comments_resolved
311
+ alias_method :require_comments_resolved?, :require_comments_resolved
312
+
313
+ # Optional. Determines if require linear history before merging to the branch.
314
+ # Corresponds to the JSON property `requireLinearHistory`
315
+ # @return [Boolean]
316
+ attr_accessor :require_linear_history
317
+ alias_method :require_linear_history?, :require_linear_history
318
+
319
+ # Optional. Determines if the branch rule requires a pull request or not.
320
+ # Corresponds to the JSON property `requirePullRequest`
321
+ # @return [Boolean]
322
+ attr_accessor :require_pull_request
323
+ alias_method :require_pull_request?, :require_pull_request
324
+
325
+ # Optional. List of required status checks before merging to the branch.
326
+ # Corresponds to the JSON property `requiredStatusChecks`
327
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::Check>]
328
+ attr_accessor :required_status_checks
329
+
330
+ # Output only. Unique identifier of the repository.
331
+ # Corresponds to the JSON property `uid`
332
+ # @return [String]
333
+ attr_accessor :uid
334
+
335
+ # Output only. Update timestamp.
336
+ # Corresponds to the JSON property `updateTime`
337
+ # @return [String]
338
+ attr_accessor :update_time
339
+
340
+ def initialize(**args)
341
+ update!(**args)
342
+ end
343
+
344
+ # Update properties of this object
345
+ def update!(**args)
346
+ @allow_stale_reviews = args[:allow_stale_reviews] if args.key?(:allow_stale_reviews)
347
+ @annotations = args[:annotations] if args.key?(:annotations)
348
+ @create_time = args[:create_time] if args.key?(:create_time)
349
+ @disabled = args[:disabled] if args.key?(:disabled)
350
+ @etag = args[:etag] if args.key?(:etag)
351
+ @include_pattern = args[:include_pattern] if args.key?(:include_pattern)
352
+ @minimum_approvals_count = args[:minimum_approvals_count] if args.key?(:minimum_approvals_count)
353
+ @minimum_reviews_count = args[:minimum_reviews_count] if args.key?(:minimum_reviews_count)
354
+ @name = args[:name] if args.key?(:name)
355
+ @require_comments_resolved = args[:require_comments_resolved] if args.key?(:require_comments_resolved)
356
+ @require_linear_history = args[:require_linear_history] if args.key?(:require_linear_history)
357
+ @require_pull_request = args[:require_pull_request] if args.key?(:require_pull_request)
358
+ @required_status_checks = args[:required_status_checks] if args.key?(:required_status_checks)
359
+ @uid = args[:uid] if args.key?(:uid)
360
+ @update_time = args[:update_time] if args.key?(:update_time)
361
+ end
362
+ end
363
+
364
+ # The request message for Operations.CancelOperation.
365
+ class CancelOperationRequest
366
+ include Google::Apis::Core::Hashable
367
+
368
+ def initialize(**args)
369
+ update!(**args)
370
+ end
371
+
372
+ # Update properties of this object
373
+ def update!(**args)
374
+ end
375
+ end
376
+
377
+ # Check is a type for status check.
378
+ class Check
379
+ include Google::Apis::Core::Hashable
380
+
381
+ # Required. The context of the check.
382
+ # Corresponds to the JSON property `context`
383
+ # @return [String]
384
+ attr_accessor :context
385
+
386
+ def initialize(**args)
387
+ update!(**args)
388
+ end
389
+
390
+ # Update properties of this object
391
+ def update!(**args)
392
+ @context = args[:context] if args.key?(:context)
393
+ end
394
+ end
395
+
396
+ # The request to close an issue.
397
+ class CloseIssueRequest
398
+ include Google::Apis::Core::Hashable
399
+
400
+ # Optional. The current etag of the issue. If the etag is provided and does not
401
+ # match the current etag of the issue, closing will be blocked and an ABORTED
402
+ # error will be returned.
403
+ # Corresponds to the JSON property `etag`
404
+ # @return [String]
405
+ attr_accessor :etag
406
+
407
+ def initialize(**args)
408
+ update!(**args)
409
+ end
410
+
411
+ # Update properties of this object
412
+ def update!(**args)
413
+ @etag = args[:etag] if args.key?(:etag)
414
+ end
415
+ end
416
+
417
+ # ClosePullRequestRequest is the request to close a pull request.
418
+ class ClosePullRequestRequest
419
+ include Google::Apis::Core::Hashable
420
+
421
+ def initialize(**args)
422
+ update!(**args)
423
+ end
424
+
425
+ # Update properties of this object
426
+ def update!(**args)
427
+ end
428
+ end
429
+
430
+ # The comment on a code line.
431
+ class Code
432
+ include Google::Apis::Core::Hashable
433
+
434
+ # Required. The comment body.
435
+ # Corresponds to the JSON property `body`
436
+ # @return [String]
437
+ attr_accessor :body
438
+
439
+ # Output only. The effective commit sha this code comment is pointing to.
440
+ # Corresponds to the JSON property `effectiveCommitSha`
441
+ # @return [String]
442
+ attr_accessor :effective_commit_sha
443
+
444
+ # Output only. The root comment of the conversation, derived from the reply
445
+ # field.
446
+ # Corresponds to the JSON property `effectiveRootComment`
447
+ # @return [String]
448
+ attr_accessor :effective_root_comment
449
+
450
+ # The position of the code comment.
451
+ # Corresponds to the JSON property `position`
452
+ # @return [Google::Apis::SecuresourcemanagerV1::Position]
453
+ attr_accessor :position
454
+
455
+ # Optional. Input only. The PullRequestComment resource name that this comment
456
+ # is replying to.
457
+ # Corresponds to the JSON property `reply`
458
+ # @return [String]
459
+ attr_accessor :reply
460
+
461
+ # Output only. Boolean indicator if the comment is resolved.
462
+ # Corresponds to the JSON property `resolved`
463
+ # @return [Boolean]
464
+ attr_accessor :resolved
465
+ alias_method :resolved?, :resolved
466
+
467
+ def initialize(**args)
468
+ update!(**args)
469
+ end
470
+
471
+ # Update properties of this object
472
+ def update!(**args)
473
+ @body = args[:body] if args.key?(:body)
474
+ @effective_commit_sha = args[:effective_commit_sha] if args.key?(:effective_commit_sha)
475
+ @effective_root_comment = args[:effective_root_comment] if args.key?(:effective_root_comment)
476
+ @position = args[:position] if args.key?(:position)
477
+ @reply = args[:reply] if args.key?(:reply)
478
+ @resolved = args[:resolved] if args.key?(:resolved)
479
+ end
480
+ end
481
+
482
+ # The general pull request comment.
483
+ class Comment
484
+ include Google::Apis::Core::Hashable
485
+
486
+ # Required. The comment body.
487
+ # Corresponds to the JSON property `body`
488
+ # @return [String]
489
+ attr_accessor :body
490
+
491
+ def initialize(**args)
492
+ update!(**args)
493
+ end
494
+
495
+ # Update properties of this object
496
+ def update!(**args)
497
+ @body = args[:body] if args.key?(:body)
498
+ end
499
+ end
500
+
501
+ # The request to create a pull request comment.
502
+ class CreatePullRequestCommentRequest
503
+ include Google::Apis::Core::Hashable
504
+
505
+ # Required. The pull request in which to create the pull request comment. Format:
506
+ # `projects/`project_number`/locations/`location_id`/repositories/`
507
+ # repository_id`/pullRequests/`pull_request_id``
508
+ # Corresponds to the JSON property `parent`
509
+ # @return [String]
510
+ attr_accessor :parent
511
+
512
+ # PullRequestComment represents a comment on a pull request.
513
+ # Corresponds to the JSON property `pullRequestComment`
514
+ # @return [Google::Apis::SecuresourcemanagerV1::PullRequestComment]
515
+ attr_accessor :pull_request_comment
516
+
517
+ def initialize(**args)
518
+ update!(**args)
519
+ end
520
+
521
+ # Update properties of this object
522
+ def update!(**args)
523
+ @parent = args[:parent] if args.key?(:parent)
524
+ @pull_request_comment = args[:pull_request_comment] if args.key?(:pull_request_comment)
525
+ end
526
+ end
527
+
528
+ # A generic empty message that you can re-use to avoid defining duplicated empty
529
+ # messages in your APIs. A typical example is to use it as the request or the
530
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
531
+ # protobuf.Empty) returns (google.protobuf.Empty); `
532
+ class Empty
533
+ include Google::Apis::Core::Hashable
534
+
535
+ def initialize(**args)
536
+ update!(**args)
537
+ end
538
+
539
+ # Update properties of this object
540
+ def update!(**args)
541
+ end
542
+ end
543
+
544
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
545
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
546
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
547
+ # "Summary size limit" description: "Determines if a summary is less than 100
548
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
549
+ # Requestor is owner" description: "Determines if requestor is the document
550
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
551
+ # Logic): title: "Public documents" description: "Determine whether the document
552
+ # should be publicly visible" expression: "document.type != 'private' &&
553
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
554
+ # string" description: "Create a notification string with a timestamp."
555
+ # expression: "'New message received at ' + string(document.create_time)" The
556
+ # exact variables and functions that may be referenced within an expression are
557
+ # determined by the service that evaluates it. See the service documentation for
558
+ # additional information.
559
+ class Expr
560
+ include Google::Apis::Core::Hashable
561
+
562
+ # Optional. Description of the expression. This is a longer text which describes
563
+ # the expression, e.g. when hovered over it in a UI.
564
+ # Corresponds to the JSON property `description`
565
+ # @return [String]
566
+ attr_accessor :description
567
+
568
+ # Textual representation of an expression in Common Expression Language syntax.
569
+ # Corresponds to the JSON property `expression`
570
+ # @return [String]
571
+ attr_accessor :expression
572
+
573
+ # Optional. String indicating the location of the expression for error reporting,
574
+ # e.g. a file name and a position in the file.
575
+ # Corresponds to the JSON property `location`
576
+ # @return [String]
577
+ attr_accessor :location
578
+
579
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
580
+ # This can be used e.g. in UIs which allow to enter the expression.
581
+ # Corresponds to the JSON property `title`
582
+ # @return [String]
583
+ attr_accessor :title
584
+
585
+ def initialize(**args)
586
+ update!(**args)
587
+ end
588
+
589
+ # Update properties of this object
590
+ def update!(**args)
591
+ @description = args[:description] if args.key?(:description)
592
+ @expression = args[:expression] if args.key?(:expression)
593
+ @location = args[:location] if args.key?(:location)
594
+ @title = args[:title] if args.key?(:title)
595
+ end
596
+ end
597
+
598
+ # Response message containing the content of a blob.
599
+ class FetchBlobResponse
600
+ include Google::Apis::Core::Hashable
601
+
602
+ # The content of the blob, encoded as base64.
603
+ # Corresponds to the JSON property `content`
604
+ # @return [String]
605
+ attr_accessor :content
606
+
607
+ # The SHA-1 hash of the blob.
608
+ # Corresponds to the JSON property `sha`
609
+ # @return [String]
610
+ attr_accessor :sha
611
+
612
+ def initialize(**args)
613
+ update!(**args)
614
+ end
615
+
616
+ # Update properties of this object
617
+ def update!(**args)
618
+ @content = args[:content] if args.key?(:content)
619
+ @sha = args[:sha] if args.key?(:sha)
620
+ end
621
+ end
622
+
623
+ # Response message containing a list of TreeEntry objects.
624
+ class FetchTreeResponse
625
+ include Google::Apis::Core::Hashable
626
+
627
+ # A token identifying a page of results the server should return.
628
+ # Corresponds to the JSON property `nextPageToken`
629
+ # @return [String]
630
+ attr_accessor :next_page_token
631
+
632
+ # The list of TreeEntry objects.
633
+ # Corresponds to the JSON property `treeEntries`
634
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::TreeEntry>]
635
+ attr_accessor :tree_entries
636
+
637
+ def initialize(**args)
638
+ update!(**args)
639
+ end
640
+
641
+ # Update properties of this object
642
+ def update!(**args)
643
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
644
+ @tree_entries = args[:tree_entries] if args.key?(:tree_entries)
645
+ end
646
+ end
647
+
648
+ # Metadata of a FileDiff. FileDiff represents a single file diff in a pull
649
+ # request.
650
+ class FileDiff
651
+ include Google::Apis::Core::Hashable
652
+
653
+ # Output only. The action taken on the file (eg. added, modified, deleted).
654
+ # Corresponds to the JSON property `action`
655
+ # @return [String]
656
+ attr_accessor :action
657
+
658
+ # Output only. The name of the file.
659
+ # Corresponds to the JSON property `name`
660
+ # @return [String]
661
+ attr_accessor :name
662
+
663
+ # Output only. The git patch containing the file changes.
664
+ # Corresponds to the JSON property `patch`
665
+ # @return [String]
666
+ attr_accessor :patch
667
+
668
+ # Output only. The commit pointing to the file changes.
669
+ # Corresponds to the JSON property `sha`
670
+ # @return [String]
671
+ attr_accessor :sha
672
+
673
+ def initialize(**args)
674
+ update!(**args)
675
+ end
676
+
677
+ # Update properties of this object
678
+ def update!(**args)
679
+ @action = args[:action] if args.key?(:action)
680
+ @name = args[:name] if args.key?(:name)
681
+ @patch = args[:patch] if args.key?(:patch)
682
+ @sha = args[:sha] if args.key?(:sha)
683
+ end
684
+ end
685
+
686
+ # Metadata of a Secure Source Manager Hook.
687
+ class Hook
688
+ include Google::Apis::Core::Hashable
689
+
690
+ # Output only. Create timestamp.
691
+ # Corresponds to the JSON property `createTime`
692
+ # @return [String]
693
+ attr_accessor :create_time
694
+
695
+ # Optional. Determines if the hook disabled or not. Set to true to stop sending
696
+ # traffic.
697
+ # Corresponds to the JSON property `disabled`
698
+ # @return [Boolean]
699
+ attr_accessor :disabled
700
+ alias_method :disabled?, :disabled
701
+
702
+ # Optional. The events that trigger hook on.
703
+ # Corresponds to the JSON property `events`
704
+ # @return [Array<String>]
705
+ attr_accessor :events
706
+
707
+ # Identifier. A unique identifier for a Hook. The name should be of the format: `
708
+ # projects/`project`/locations/`location_id`/repositories/`repository_id`/hooks/`
709
+ # hook_id``
710
+ # Corresponds to the JSON property `name`
711
+ # @return [String]
712
+ attr_accessor :name
713
+
714
+ # Optional. The trigger option for push events.
715
+ # Corresponds to the JSON property `pushOption`
716
+ # @return [Google::Apis::SecuresourcemanagerV1::PushOption]
717
+ attr_accessor :push_option
718
+
719
+ # Optional. The sensitive query string to be appended to the target URI.
720
+ # Corresponds to the JSON property `sensitiveQueryString`
721
+ # @return [String]
722
+ attr_accessor :sensitive_query_string
723
+
724
+ # Required. The target URI to which the payloads will be delivered.
725
+ # Corresponds to the JSON property `targetUri`
726
+ # @return [String]
727
+ attr_accessor :target_uri
728
+
729
+ # Output only. Unique identifier of the hook.
730
+ # Corresponds to the JSON property `uid`
731
+ # @return [String]
732
+ attr_accessor :uid
733
+
734
+ # Output only. Update timestamp.
735
+ # Corresponds to the JSON property `updateTime`
736
+ # @return [String]
737
+ attr_accessor :update_time
738
+
739
+ def initialize(**args)
740
+ update!(**args)
741
+ end
742
+
743
+ # Update properties of this object
744
+ def update!(**args)
745
+ @create_time = args[:create_time] if args.key?(:create_time)
746
+ @disabled = args[:disabled] if args.key?(:disabled)
747
+ @events = args[:events] if args.key?(:events)
748
+ @name = args[:name] if args.key?(:name)
749
+ @push_option = args[:push_option] if args.key?(:push_option)
750
+ @sensitive_query_string = args[:sensitive_query_string] if args.key?(:sensitive_query_string)
751
+ @target_uri = args[:target_uri] if args.key?(:target_uri)
752
+ @uid = args[:uid] if args.key?(:uid)
753
+ @update_time = args[:update_time] if args.key?(:update_time)
754
+ end
755
+ end
756
+
757
+ # HostConfig has different instance endpoints.
758
+ class HostConfig
759
+ include Google::Apis::Core::Hashable
760
+
761
+ # Output only. API hostname.
762
+ # Corresponds to the JSON property `api`
763
+ # @return [String]
764
+ attr_accessor :api
765
+
766
+ # Output only. Git HTTP hostname.
767
+ # Corresponds to the JSON property `gitHttp`
768
+ # @return [String]
769
+ attr_accessor :git_http
770
+
771
+ # Output only. Git SSH hostname.
772
+ # Corresponds to the JSON property `gitSsh`
773
+ # @return [String]
774
+ attr_accessor :git_ssh
775
+
776
+ # Output only. HTML hostname.
777
+ # Corresponds to the JSON property `html`
778
+ # @return [String]
779
+ attr_accessor :html
780
+
781
+ def initialize(**args)
782
+ update!(**args)
783
+ end
784
+
785
+ # Update properties of this object
786
+ def update!(**args)
787
+ @api = args[:api] if args.key?(:api)
788
+ @git_http = args[:git_http] if args.key?(:git_http)
789
+ @git_ssh = args[:git_ssh] if args.key?(:git_ssh)
790
+ @html = args[:html] if args.key?(:html)
791
+ end
792
+ end
793
+
794
+ # Repository initialization configuration.
795
+ class InitialConfig
796
+ include Google::Apis::Core::Hashable
797
+
798
+ # Default branch name of the repository.
799
+ # Corresponds to the JSON property `defaultBranch`
800
+ # @return [String]
801
+ attr_accessor :default_branch
802
+
803
+ # List of gitignore template names user can choose from. Valid values:
804
+ # actionscript, ada, agda, android, anjuta, ansible, appcelerator-titanium, app-
805
+ # engine, archives, arch-linux-packages, atmel-studio, autotools, backup, bazaar,
806
+ # bazel, bitrix, bricx-cc, c, cake-php, calabash, cf-wheels, chef-cookbook,
807
+ # clojure, cloud9, c-make, code-igniter, code-kit, code-sniffer, common-lisp,
808
+ # composer, concrete5, coq, cordova, cpp, craft-cms, cuda, cvs, d, dart, dart-
809
+ # editor, delphi, diff, dm, dreamweaver, dropbox, drupal, drupal-7, eagle,
810
+ # eclipse, eiffel-studio, elisp, elixir, elm, emacs, ensime, epi-server, erlang,
811
+ # esp-idf, espresso, exercism, expression-engine, ext-js, fancy, finale, flex-
812
+ # builder, force-dot-com, fortran, fuel-php, gcov, git-book, gnome-shell-
813
+ # extension, go, godot, gpg, gradle, grails, gwt, haskell, hugo, iar-ewarm,
814
+ # idris, igor-pro, images, infor-cms, java, jboss, jboss-4, jboss-6, jdeveloper,
815
+ # jekyll, jenkins-home, jenv, jet-brains, jigsaw, joomla, julia, jupyter-
816
+ # notebooks, kate, kdevelop4, kentico, ki-cad, kohana, kotlin, lab-view, laravel,
817
+ # lazarus, leiningen, lemon-stand, libre-office, lilypond, linux, lithium,
818
+ # logtalk, lua, lyx, mac-os, magento, magento-1, magento-2, matlab, maven,
819
+ # mercurial, mercury, metals, meta-programming-system, meteor, microsoft-office,
820
+ # model-sim, momentics, mono-develop, nanoc, net-beans, nikola, nim, ninja, node,
821
+ # notepad-pp, nwjs, objective--c, ocaml, octave, opa, open-cart, openssl,
822
+ # oracle-forms, otto, packer, patch, perl, perl6, phalcon, phoenix, pimcore,
823
+ # play-framework, plone, prestashop, processing, psoc-creator, puppet, pure-
824
+ # script, putty, python, qooxdoo, qt, r, racket, rails, raku, red, redcar, redis,
825
+ # rhodes-rhomobile, ros, ruby, rust, sam, sass, sbt, scala, scheme, scons,
826
+ # scrivener, sdcc, seam-gen, sketch-up, slick-edit, smalltalk, snap, splunk,
827
+ # stata, stella, sublime-text, sugar-crm, svn, swift, symfony, symphony-cms,
828
+ # synopsys-vcs, tags, terraform, tex, text-mate, textpattern, think-php,
829
+ # tortoise-git, turbo-gears-2, typo3, umbraco, unity, unreal-engine, vagrant,
830
+ # vim, virtual-env, virtuoso, visual-studio, visual-studio-code, vue, vvvv, waf,
831
+ # web-methods, windows, word-press, xcode, xilinx, xilinx-ise, xojo, yeoman, yii,
832
+ # zend-framework, zephir.
833
+ # Corresponds to the JSON property `gitignores`
834
+ # @return [Array<String>]
835
+ attr_accessor :gitignores
836
+
837
+ # License template name user can choose from. Valid values: license-0bsd,
838
+ # license-389-exception, aal, abstyles, adobe-2006, adobe-glyph, adsl, afl-1-1,
839
+ # afl-1-2, afl-2-0, afl-2-1, afl-3-0, afmparse, agpl-1-0, agpl-1-0-only, agpl-1-
840
+ # 0-or-later, agpl-3-0-only, agpl-3-0-or-later, aladdin, amdplpa, aml, ampas,
841
+ # antlr-pd, antlr-pd-fallback, apache-1-0, apache-1-1, apache-2-0, apafml, apl-1-
842
+ # 0, apsl-1-0, apsl-1-1, apsl-1-2, apsl-2-0, artistic-1-0, artistic-1-0-cl8,
843
+ # artistic-1-0-perl, artistic-2-0, autoconf-exception-2-0, autoconf-exception-3-
844
+ # 0, bahyph, barr, beerware, bison-exception-2-2, bittorrent-1-0, bittorrent-1-1,
845
+ # blessing, blueoak-1-0-0, bootloader-exception, borceux, bsd-1-clause, bsd-2-
846
+ # clause, bsd-2-clause-freebsd, bsd-2-clause-netbsd, bsd-2-clause-patent, bsd-2-
847
+ # clause-views, bsd-3-clause, bsd-3-clause-attribution, bsd-3-clause-clear, bsd-
848
+ # 3-clause-lbnl, bsd-3-clause-modification, bsd-3-clause-no-nuclear-license, bsd-
849
+ # 3-clause-no-nuclear-license-2014, bsd-3-clause-no-nuclear-warranty, bsd-3-
850
+ # clause-open-mpi, bsd-4-clause, bsd-4-clause-shortened, bsd-4-clause-uc, bsd-
851
+ # protection, bsd-source-code, bsl-1-0, busl-1-1, cal-1-0, cal-1-0-combined-work-
852
+ # exception, caldera, catosl-1-1, cc0-1-0, cc-by-1-0, cc-by-2-0, cc-by-3-0, cc-
853
+ # by-3-0-at, cc-by-3-0-us, cc-by-4-0, cc-by-nc-1-0, cc-by-nc-2-0, cc-by-nc-3-0,
854
+ # cc-by-nc-4-0, cc-by-nc-nd-1-0, cc-by-nc-nd-2-0, cc-by-nc-nd-3-0, cc-by-nc-nd-3-
855
+ # 0-igo, cc-by-nc-nd-4-0, cc-by-nc-sa-1-0, cc-by-nc-sa-2-0, cc-by-nc-sa-3-0, cc-
856
+ # by-nc-sa-4-0, cc-by-nd-1-0, cc-by-nd-2-0, cc-by-nd-3-0, cc-by-nd-4-0, cc-by-sa-
857
+ # 1-0, cc-by-sa-2-0, cc-by-sa-2-0-uk, cc-by-sa-2-1-jp, cc-by-sa-3-0, cc-by-sa-3-
858
+ # 0-at, cc-by-sa-4-0, cc-pddc, cddl-1-0, cddl-1-1, cdla-permissive-1-0, cdla-
859
+ # sharing-1-0, cecill-1-0, cecill-1-1, cecill-2-0, cecill-2-1, cecill-b, cecill-
860
+ # c, cern-ohl-1-1, cern-ohl-1-2, cern-ohl-p-2-0, cern-ohl-s-2-0, cern-ohl-w-2-0,
861
+ # clartistic, classpath-exception-2-0, clisp-exception-2-0, cnri-jython, cnri-
862
+ # python, cnri-python-gpl-compatible, condor-1-1, copyleft-next-0-3-0, copyleft-
863
+ # next-0-3-1, cpal-1-0, cpl-1-0, cpol-1-02, crossword, crystal-stacker, cua-opl-
864
+ # 1-0, cube, c-uda-1-0, curl, d-fsl-1-0, diffmark, digirule-foss-exception, doc,
865
+ # dotseqn, drl-1-0, dsdp, dvipdfm, ecl-1-0, ecl-2-0, ecos-exception-2-0, efl-1-0,
866
+ # efl-2-0, egenix, entessa, epics, epl-1-0, epl-2-0, erlpl-1-1, etalab-2-0, eu-
867
+ # datagrid, eupl-1-0, eupl-1-1, eupl-1-2, eurosym, fair, fawkes-runtime-
868
+ # exception, fltk-exception, font-exception-2-0, frameworx-1-0, freebsd-doc,
869
+ # freeimage, freertos-exception-2-0, fsfap, fsful, fsfullr, ftl, gcc-exception-2-
870
+ # 0, gcc-exception-3-1, gd, gfdl-1-1-invariants-only, gfdl-1-1-invariants-or-
871
+ # later, gfdl-1-1-no-invariants-only, gfdl-1-1-no-invariants-or-later, gfdl-1-1-
872
+ # only, gfdl-1-1-or-later, gfdl-1-2-invariants-only, gfdl-1-2-invariants-or-
873
+ # later, gfdl-1-2-no-invariants-only, gfdl-1-2-no-invariants-or-later, gfdl-1-2-
874
+ # only, gfdl-1-2-or-later, gfdl-1-3-invariants-only, gfdl-1-3-invariants-or-
875
+ # later, gfdl-1-3-no-invariants-only, gfdl-1-3-no-invariants-or-later, gfdl-1-3-
876
+ # only, gfdl-1-3-or-later, giftware, gl2ps, glide, glulxe, glwtpl, gnu-javamail-
877
+ # exception, gnuplot, gpl-1-0-only, gpl-1-0-or-later, gpl-2-0-only, gpl-2-0-or-
878
+ # later, gpl-3-0-linking-exception, gpl-3-0-linking-source-exception, gpl-3-0-
879
+ # only, gpl-3-0-or-later, gpl-cc-1-0, gsoap-1-3b, haskell-report, hippocratic-2-
880
+ # 1, hpnd, hpnd-sell-variant, htmltidy, i2p-gpl-java-exception, ibm-pibs, icu,
881
+ # ijg, image-magick, imatix, imlib2, info-zip, intel, intel-acpi, interbase-1-0,
882
+ # ipa, ipl-1-0, isc, jasper-2-0, jpnic, json, lal-1-2, lal-1-3, latex2e,
883
+ # leptonica, lgpl-2-0-only, lgpl-2-0-or-later, lgpl-2-1-only, lgpl-2-1-or-later,
884
+ # lgpl-3-0-linking-exception, lgpl-3-0-only, lgpl-3-0-or-later, lgpllr, libpng,
885
+ # libpng-2-0, libselinux-1-0, libtiff, libtool-exception, liliq-p-1-1, liliq-r-1-
886
+ # 1, liliq-rplus-1-1, linux-openib, linux-syscall-note, llvm-exception, lpl-1-0,
887
+ # lpl-1-02, lppl-1-0, lppl-1-1, lppl-1-2, lppl-1-3a, lppl-1-3c, lzma-exception,
888
+ # make-index, mif-exception, miros, mit, mit-0, mit-advertising, mit-cmu, mit-
889
+ # enna, mit-feh, mit-modern-variant, mitnfa, mit-open-group, motosoto, mpich2,
890
+ # mpl-1-0, mpl-1-1, mpl-2-0, mpl-2-0-no-copyleft-exception, ms-pl, ms-rl, mtll,
891
+ # mulanpsl-1-0, mulanpsl-2-0, multics, mup, naist-2003, nasa-1-3, naumen, nbpl-1-
892
+ # 0, ncgl-uk-2-0, ncsa, netcdf, net-snmp, newsletr, ngpl, nist-pd, nist-pd-
893
+ # fallback, nlod-1-0, nlpl, nokia, nokia-qt-exception-1-1, nosl, noweb, npl-1-0,
894
+ # npl-1-1, nposl-3-0, nrl, ntp, ntp-0, ocaml-lgpl-linking-exception, occt-
895
+ # exception-1-0, occt-pl, oclc-2-0, odbl-1-0, odc-by-1-0, ofl-1-0, ofl-1-0-no-
896
+ # rfn, ofl-1-0-rfn, ofl-1-1, ofl-1-1-no-rfn, ofl-1-1-rfn, ogc-1-0, ogdl-taiwan-1-
897
+ # 0, ogl-canada-2-0, ogl-uk-1-0, ogl-uk-2-0, ogl-uk-3-0, ogtsl, oldap-1-1, oldap-
898
+ # 1-2, oldap-1-3, oldap-1-4, oldap-2-0, oldap-2-0-1, oldap-2-1, oldap-2-2, oldap-
899
+ # 2-2-1, oldap-2-2-2, oldap-2-3, oldap-2-4, oldap-2-7, oml, openjdk-assembly-
900
+ # exception-1-0, openssl, openvpn-openssl-exception, opl-1-0, oset-pl-2-1, osl-1-
901
+ # 0, osl-1-1, osl-2-0, osl-2-1, osl-3-0, o-uda-1-0, parity-6-0-0, parity-7-0-0,
902
+ # pddl-1-0, php-3-0, php-3-01, plexus, polyform-noncommercial-1-0-0, polyform-
903
+ # small-business-1-0-0, postgresql, psf-2-0, psfrag, ps-or-pdf-font-exception-
904
+ # 20170817, psutils, python-2-0, qhull, qpl-1-0, qt-gpl-exception-1-0, qt-lgpl-
905
+ # exception-1-1, qwt-exception-1-0, rdisc, rhecos-1-1, rpl-1-1, rpsl-1-0, rsa-md,
906
+ # rscpl, ruby, saxpath, sax-pd, scea, sendmail, sendmail-8-23, sgi-b-1-0, sgi-b-
907
+ # 1-1, sgi-b-2-0, shl-0-51, shl-2-0, shl-2-1, simpl-2-0, sissl, sissl-1-2,
908
+ # sleepycat, smlnj, smppl, snia, spencer-86, spencer-94, spencer-99, spl-1-0,
909
+ # ssh-openssh, ssh-short, sspl-1-0, sugarcrm-1-1-3, swift-exception, swl, tapr-
910
+ # ohl-1-0, tcl, tcp-wrappers, tmate, torque-1-1, tosl, tu-berlin-1-0, tu-berlin-
911
+ # 2-0, u-boot-exception-2-0, ucl-1-0, unicode-dfs-2015, unicode-dfs-2016,
912
+ # unicode-tou, universal-foss-exception-1-0, unlicense, upl-1-0, vim, vostrom,
913
+ # vsl-1-0, w3c, w3c-19980720, w3c-20150513, watcom-1-0, wsuipa, wtfpl, wxwindows-
914
+ # exception-3-1, x11, xerox, xfree86-1-1, xinetd, xnet, xpp, xskat, ypl-1-0, ypl-
915
+ # 1-1, zed, zend-2-0, zimbra-1-3, zimbra-1-4, zlib, zlib-acknowledgement, zpl-1-
916
+ # 1, zpl-2-0, zpl-2-1.
917
+ # Corresponds to the JSON property `license`
918
+ # @return [String]
919
+ attr_accessor :license
920
+
921
+ # README template name. Valid template name(s) are: default.
922
+ # Corresponds to the JSON property `readme`
923
+ # @return [String]
924
+ attr_accessor :readme
925
+
926
+ def initialize(**args)
927
+ update!(**args)
928
+ end
929
+
930
+ # Update properties of this object
931
+ def update!(**args)
932
+ @default_branch = args[:default_branch] if args.key?(:default_branch)
933
+ @gitignores = args[:gitignores] if args.key?(:gitignores)
934
+ @license = args[:license] if args.key?(:license)
935
+ @readme = args[:readme] if args.key?(:readme)
936
+ end
937
+ end
938
+
939
+ # A resource that represents a Secure Source Manager instance.
940
+ class Instance
941
+ include Google::Apis::Core::Hashable
942
+
943
+ # Output only. Create timestamp.
944
+ # Corresponds to the JSON property `createTime`
945
+ # @return [String]
946
+ attr_accessor :create_time
947
+
948
+ # HostConfig has different instance endpoints.
949
+ # Corresponds to the JSON property `hostConfig`
950
+ # @return [Google::Apis::SecuresourcemanagerV1::HostConfig]
951
+ attr_accessor :host_config
952
+
953
+ # Optional. Immutable. Customer-managed encryption key name, in the format
954
+ # projects/*/locations/*/keyRings/*/cryptoKeys/*.
955
+ # Corresponds to the JSON property `kmsKey`
956
+ # @return [String]
957
+ attr_accessor :kms_key
958
+
959
+ # Optional. Labels as key value pairs.
960
+ # Corresponds to the JSON property `labels`
961
+ # @return [Hash<String,String>]
962
+ attr_accessor :labels
963
+
964
+ # Optional. A unique identifier for an instance. The name should be of the
965
+ # format: `projects/`project_number`/locations/`location_id`/instances/`
966
+ # instance_id`` `project_number`: Maps to a unique int64 id assigned to each
967
+ # project. `location_id`: Refers to the region where the instance will be
968
+ # deployed. Since Secure Source Manager is a regional service, it must be one of
969
+ # the valid GCP regions. `instance_id`: User provided name for the instance,
970
+ # must be unique for a project_number and location_id combination.
971
+ # Corresponds to the JSON property `name`
972
+ # @return [String]
973
+ attr_accessor :name
974
+
975
+ # PrivateConfig includes settings for private instance.
976
+ # Corresponds to the JSON property `privateConfig`
977
+ # @return [Google::Apis::SecuresourcemanagerV1::PrivateConfig]
978
+ attr_accessor :private_config
979
+
980
+ # Output only. Current state of the instance.
981
+ # Corresponds to the JSON property `state`
982
+ # @return [String]
983
+ attr_accessor :state
984
+
985
+ # Output only. An optional field providing information about the current
986
+ # instance state.
987
+ # Corresponds to the JSON property `stateNote`
988
+ # @return [String]
989
+ attr_accessor :state_note
990
+
991
+ # Output only. Update timestamp.
992
+ # Corresponds to the JSON property `updateTime`
993
+ # @return [String]
994
+ attr_accessor :update_time
995
+
996
+ # WorkforceIdentityFederationConfig allows this instance to support users from
997
+ # external identity providers.
998
+ # Corresponds to the JSON property `workforceIdentityFederationConfig`
999
+ # @return [Google::Apis::SecuresourcemanagerV1::WorkforceIdentityFederationConfig]
1000
+ attr_accessor :workforce_identity_federation_config
1001
+
1002
+ def initialize(**args)
1003
+ update!(**args)
1004
+ end
1005
+
1006
+ # Update properties of this object
1007
+ def update!(**args)
1008
+ @create_time = args[:create_time] if args.key?(:create_time)
1009
+ @host_config = args[:host_config] if args.key?(:host_config)
1010
+ @kms_key = args[:kms_key] if args.key?(:kms_key)
1011
+ @labels = args[:labels] if args.key?(:labels)
1012
+ @name = args[:name] if args.key?(:name)
1013
+ @private_config = args[:private_config] if args.key?(:private_config)
1014
+ @state = args[:state] if args.key?(:state)
1015
+ @state_note = args[:state_note] if args.key?(:state_note)
1016
+ @update_time = args[:update_time] if args.key?(:update_time)
1017
+ @workforce_identity_federation_config = args[:workforce_identity_federation_config] if args.key?(:workforce_identity_federation_config)
1018
+ end
1019
+ end
1020
+
1021
+ # Metadata of an Issue.
1022
+ class Issue
1023
+ include Google::Apis::Core::Hashable
1024
+
1025
+ # Optional. Issue body. Provides a detailed description of the issue.
1026
+ # Corresponds to the JSON property `body`
1027
+ # @return [String]
1028
+ attr_accessor :body
1029
+
1030
+ # Output only. Close timestamp (if closed). Cleared when is re-opened.
1031
+ # Corresponds to the JSON property `closeTime`
1032
+ # @return [String]
1033
+ attr_accessor :close_time
1034
+
1035
+ # Output only. Creation timestamp.
1036
+ # Corresponds to the JSON property `createTime`
1037
+ # @return [String]
1038
+ attr_accessor :create_time
1039
+
1040
+ # Optional. This checksum is computed by the server based on the value of other
1041
+ # fields, and may be sent on update and delete requests to ensure the client has
1042
+ # an up-to-date value before proceeding.
1043
+ # Corresponds to the JSON property `etag`
1044
+ # @return [String]
1045
+ attr_accessor :etag
1046
+
1047
+ # Identifier. Unique identifier for an issue. The issue id is generated by the
1048
+ # server. Format: `projects/`project`/locations/`location`/repositories/`
1049
+ # repository`/issues/`issue_id``
1050
+ # Corresponds to the JSON property `name`
1051
+ # @return [String]
1052
+ attr_accessor :name
1053
+
1054
+ # Output only. State of the issue.
1055
+ # Corresponds to the JSON property `state`
1056
+ # @return [String]
1057
+ attr_accessor :state
1058
+
1059
+ # Required. Issue title.
1060
+ # Corresponds to the JSON property `title`
1061
+ # @return [String]
1062
+ attr_accessor :title
1063
+
1064
+ # Output only. Last updated timestamp.
1065
+ # Corresponds to the JSON property `updateTime`
1066
+ # @return [String]
1067
+ attr_accessor :update_time
1068
+
1069
+ def initialize(**args)
1070
+ update!(**args)
1071
+ end
1072
+
1073
+ # Update properties of this object
1074
+ def update!(**args)
1075
+ @body = args[:body] if args.key?(:body)
1076
+ @close_time = args[:close_time] if args.key?(:close_time)
1077
+ @create_time = args[:create_time] if args.key?(:create_time)
1078
+ @etag = args[:etag] if args.key?(:etag)
1079
+ @name = args[:name] if args.key?(:name)
1080
+ @state = args[:state] if args.key?(:state)
1081
+ @title = args[:title] if args.key?(:title)
1082
+ @update_time = args[:update_time] if args.key?(:update_time)
1083
+ end
1084
+ end
1085
+
1086
+ # IssueComment represents a comment on an issue.
1087
+ class IssueComment
1088
+ include Google::Apis::Core::Hashable
1089
+
1090
+ # Required. The comment body.
1091
+ # Corresponds to the JSON property `body`
1092
+ # @return [String]
1093
+ attr_accessor :body
1094
+
1095
+ # Output only. Creation timestamp.
1096
+ # Corresponds to the JSON property `createTime`
1097
+ # @return [String]
1098
+ attr_accessor :create_time
1099
+
1100
+ # Identifier. Unique identifier for an issue comment. The comment id is
1101
+ # generated by the server. Format: `projects/`project`/locations/`location`/
1102
+ # repositories/`repository`/issues/`issue`/issueComments/`comment_id``
1103
+ # Corresponds to the JSON property `name`
1104
+ # @return [String]
1105
+ attr_accessor :name
1106
+
1107
+ # Output only. Last updated timestamp.
1108
+ # Corresponds to the JSON property `updateTime`
1109
+ # @return [String]
1110
+ attr_accessor :update_time
1111
+
1112
+ def initialize(**args)
1113
+ update!(**args)
1114
+ end
1115
+
1116
+ # Update properties of this object
1117
+ def update!(**args)
1118
+ @body = args[:body] if args.key?(:body)
1119
+ @create_time = args[:create_time] if args.key?(:create_time)
1120
+ @name = args[:name] if args.key?(:name)
1121
+ @update_time = args[:update_time] if args.key?(:update_time)
1122
+ end
1123
+ end
1124
+
1125
+ # ListBranchRulesResponse is the response to listing branchRules.
1126
+ class ListBranchRulesResponse
1127
+ include Google::Apis::Core::Hashable
1128
+
1129
+ # The list of branch rules.
1130
+ # Corresponds to the JSON property `branchRules`
1131
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::BranchRule>]
1132
+ attr_accessor :branch_rules
1133
+
1134
+ # A token identifying a page of results the server should return.
1135
+ # Corresponds to the JSON property `nextPageToken`
1136
+ # @return [String]
1137
+ attr_accessor :next_page_token
1138
+
1139
+ def initialize(**args)
1140
+ update!(**args)
1141
+ end
1142
+
1143
+ # Update properties of this object
1144
+ def update!(**args)
1145
+ @branch_rules = args[:branch_rules] if args.key?(:branch_rules)
1146
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1147
+ end
1148
+ end
1149
+
1150
+ # ListHooksResponse is response to list hooks.
1151
+ class ListHooksResponse
1152
+ include Google::Apis::Core::Hashable
1153
+
1154
+ # The list of hooks.
1155
+ # Corresponds to the JSON property `hooks`
1156
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::Hook>]
1157
+ attr_accessor :hooks
1158
+
1159
+ # A token identifying a page of results the server should return.
1160
+ # Corresponds to the JSON property `nextPageToken`
1161
+ # @return [String]
1162
+ attr_accessor :next_page_token
1163
+
1164
+ def initialize(**args)
1165
+ update!(**args)
1166
+ end
1167
+
1168
+ # Update properties of this object
1169
+ def update!(**args)
1170
+ @hooks = args[:hooks] if args.key?(:hooks)
1171
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1172
+ end
1173
+ end
1174
+
1175
+ #
1176
+ class ListInstancesResponse
1177
+ include Google::Apis::Core::Hashable
1178
+
1179
+ # The list of instances.
1180
+ # Corresponds to the JSON property `instances`
1181
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::Instance>]
1182
+ attr_accessor :instances
1183
+
1184
+ # A token identifying a page of results the server should return.
1185
+ # Corresponds to the JSON property `nextPageToken`
1186
+ # @return [String]
1187
+ attr_accessor :next_page_token
1188
+
1189
+ # Locations that could not be reached.
1190
+ # Corresponds to the JSON property `unreachable`
1191
+ # @return [Array<String>]
1192
+ attr_accessor :unreachable
1193
+
1194
+ def initialize(**args)
1195
+ update!(**args)
1196
+ end
1197
+
1198
+ # Update properties of this object
1199
+ def update!(**args)
1200
+ @instances = args[:instances] if args.key?(:instances)
1201
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1202
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1203
+ end
1204
+ end
1205
+
1206
+ # The response to list issue comments.
1207
+ class ListIssueCommentsResponse
1208
+ include Google::Apis::Core::Hashable
1209
+
1210
+ # The list of issue comments.
1211
+ # Corresponds to the JSON property `issueComments`
1212
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::IssueComment>]
1213
+ attr_accessor :issue_comments
1214
+
1215
+ # A token identifying a page of results the server should return.
1216
+ # Corresponds to the JSON property `nextPageToken`
1217
+ # @return [String]
1218
+ attr_accessor :next_page_token
1219
+
1220
+ def initialize(**args)
1221
+ update!(**args)
1222
+ end
1223
+
1224
+ # Update properties of this object
1225
+ def update!(**args)
1226
+ @issue_comments = args[:issue_comments] if args.key?(:issue_comments)
1227
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1228
+ end
1229
+ end
1230
+
1231
+ # The response to list issues.
1232
+ class ListIssuesResponse
1233
+ include Google::Apis::Core::Hashable
1234
+
1235
+ # The list of issues.
1236
+ # Corresponds to the JSON property `issues`
1237
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::Issue>]
1238
+ attr_accessor :issues
1239
+
1240
+ # A token identifying a page of results the server should return.
1241
+ # Corresponds to the JSON property `nextPageToken`
1242
+ # @return [String]
1243
+ attr_accessor :next_page_token
1244
+
1245
+ def initialize(**args)
1246
+ update!(**args)
1247
+ end
1248
+
1249
+ # Update properties of this object
1250
+ def update!(**args)
1251
+ @issues = args[:issues] if args.key?(:issues)
1252
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1253
+ end
1254
+ end
1255
+
1256
+ # The response message for Locations.ListLocations.
1257
+ class ListLocationsResponse
1258
+ include Google::Apis::Core::Hashable
1259
+
1260
+ # A list of locations that matches the specified filter in the request.
1261
+ # Corresponds to the JSON property `locations`
1262
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::Location>]
1263
+ attr_accessor :locations
1264
+
1265
+ # The standard List next-page token.
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
+ @locations = args[:locations] if args.key?(:locations)
1277
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1278
+ end
1279
+ end
1280
+
1281
+ # The response message for Operations.ListOperations.
1282
+ class ListOperationsResponse
1283
+ include Google::Apis::Core::Hashable
1284
+
1285
+ # The standard List next-page token.
1286
+ # Corresponds to the JSON property `nextPageToken`
1287
+ # @return [String]
1288
+ attr_accessor :next_page_token
1289
+
1290
+ # A list of operations that matches the specified filter in the request.
1291
+ # Corresponds to the JSON property `operations`
1292
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::Operation>]
1293
+ attr_accessor :operations
1294
+
1295
+ def initialize(**args)
1296
+ update!(**args)
1297
+ end
1298
+
1299
+ # Update properties of this object
1300
+ def update!(**args)
1301
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1302
+ @operations = args[:operations] if args.key?(:operations)
1303
+ end
1304
+ end
1305
+
1306
+ # The response to list pull request comments.
1307
+ class ListPullRequestCommentsResponse
1308
+ include Google::Apis::Core::Hashable
1309
+
1310
+ # A token to set as page_token to retrieve the next page. If this field is
1311
+ # omitted, there are no subsequent pages.
1312
+ # Corresponds to the JSON property `nextPageToken`
1313
+ # @return [String]
1314
+ attr_accessor :next_page_token
1315
+
1316
+ # The list of pull request comments.
1317
+ # Corresponds to the JSON property `pullRequestComments`
1318
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::PullRequestComment>]
1319
+ attr_accessor :pull_request_comments
1320
+
1321
+ def initialize(**args)
1322
+ update!(**args)
1323
+ end
1324
+
1325
+ # Update properties of this object
1326
+ def update!(**args)
1327
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1328
+ @pull_request_comments = args[:pull_request_comments] if args.key?(:pull_request_comments)
1329
+ end
1330
+ end
1331
+
1332
+ # ListPullRequestFileDiffsResponse is the response containing file diffs
1333
+ # returned from ListPullRequestFileDiffs.
1334
+ class ListPullRequestFileDiffsResponse
1335
+ include Google::Apis::Core::Hashable
1336
+
1337
+ # The list of pull request file diffs.
1338
+ # Corresponds to the JSON property `fileDiffs`
1339
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::FileDiff>]
1340
+ attr_accessor :file_diffs
1341
+
1342
+ # A token identifying a page of results the server should return.
1343
+ # Corresponds to the JSON property `nextPageToken`
1344
+ # @return [String]
1345
+ attr_accessor :next_page_token
1346
+
1347
+ def initialize(**args)
1348
+ update!(**args)
1349
+ end
1350
+
1351
+ # Update properties of this object
1352
+ def update!(**args)
1353
+ @file_diffs = args[:file_diffs] if args.key?(:file_diffs)
1354
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1355
+ end
1356
+ end
1357
+
1358
+ # ListPullRequestsResponse is the response to list pull requests.
1359
+ class ListPullRequestsResponse
1360
+ include Google::Apis::Core::Hashable
1361
+
1362
+ # A token identifying a page of results the server should return.
1363
+ # Corresponds to the JSON property `nextPageToken`
1364
+ # @return [String]
1365
+ attr_accessor :next_page_token
1366
+
1367
+ # The list of pull requests.
1368
+ # Corresponds to the JSON property `pullRequests`
1369
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::PullRequest>]
1370
+ attr_accessor :pull_requests
1371
+
1372
+ def initialize(**args)
1373
+ update!(**args)
1374
+ end
1375
+
1376
+ # Update properties of this object
1377
+ def update!(**args)
1378
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1379
+ @pull_requests = args[:pull_requests] if args.key?(:pull_requests)
1380
+ end
1381
+ end
1382
+
1383
+ #
1384
+ class ListRepositoriesResponse
1385
+ include Google::Apis::Core::Hashable
1386
+
1387
+ # A token identifying a page of results the server should return.
1388
+ # Corresponds to the JSON property `nextPageToken`
1389
+ # @return [String]
1390
+ attr_accessor :next_page_token
1391
+
1392
+ # The list of repositories.
1393
+ # Corresponds to the JSON property `repositories`
1394
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::Repository>]
1395
+ attr_accessor :repositories
1396
+
1397
+ def initialize(**args)
1398
+ update!(**args)
1399
+ end
1400
+
1401
+ # Update properties of this object
1402
+ def update!(**args)
1403
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1404
+ @repositories = args[:repositories] if args.key?(:repositories)
1405
+ end
1406
+ end
1407
+
1408
+ # A resource that represents a Google Cloud location.
1409
+ class Location
1410
+ include Google::Apis::Core::Hashable
1411
+
1412
+ # The friendly name for this location, typically a nearby city name. For example,
1413
+ # "Tokyo".
1414
+ # Corresponds to the JSON property `displayName`
1415
+ # @return [String]
1416
+ attr_accessor :display_name
1417
+
1418
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1419
+ # region": "us-east1"`
1420
+ # Corresponds to the JSON property `labels`
1421
+ # @return [Hash<String,String>]
1422
+ attr_accessor :labels
1423
+
1424
+ # The canonical id for this location. For example: `"us-east1"`.
1425
+ # Corresponds to the JSON property `locationId`
1426
+ # @return [String]
1427
+ attr_accessor :location_id
1428
+
1429
+ # Service-specific metadata. For example the available capacity at the given
1430
+ # location.
1431
+ # Corresponds to the JSON property `metadata`
1432
+ # @return [Hash<String,Object>]
1433
+ attr_accessor :metadata
1434
+
1435
+ # Resource name for the location, which may vary between implementations. For
1436
+ # example: `"projects/example-project/locations/us-east1"`
1437
+ # Corresponds to the JSON property `name`
1438
+ # @return [String]
1439
+ attr_accessor :name
1440
+
1441
+ def initialize(**args)
1442
+ update!(**args)
1443
+ end
1444
+
1445
+ # Update properties of this object
1446
+ def update!(**args)
1447
+ @display_name = args[:display_name] if args.key?(:display_name)
1448
+ @labels = args[:labels] if args.key?(:labels)
1449
+ @location_id = args[:location_id] if args.key?(:location_id)
1450
+ @metadata = args[:metadata] if args.key?(:metadata)
1451
+ @name = args[:name] if args.key?(:name)
1452
+ end
1453
+ end
1454
+
1455
+ # MergePullRequestRequest is the request to merge a pull request.
1456
+ class MergePullRequestRequest
1457
+ include Google::Apis::Core::Hashable
1458
+
1459
+ def initialize(**args)
1460
+ update!(**args)
1461
+ end
1462
+
1463
+ # Update properties of this object
1464
+ def update!(**args)
1465
+ end
1466
+ end
1467
+
1468
+ # The request to open an issue.
1469
+ class OpenIssueRequest
1470
+ include Google::Apis::Core::Hashable
1471
+
1472
+ # Optional. The current etag of the issue. If the etag is provided and does not
1473
+ # match the current etag of the issue, opening will be blocked and an ABORTED
1474
+ # error will be returned.
1475
+ # Corresponds to the JSON property `etag`
1476
+ # @return [String]
1477
+ attr_accessor :etag
1478
+
1479
+ def initialize(**args)
1480
+ update!(**args)
1481
+ end
1482
+
1483
+ # Update properties of this object
1484
+ def update!(**args)
1485
+ @etag = args[:etag] if args.key?(:etag)
1486
+ end
1487
+ end
1488
+
1489
+ # OpenPullRequestRequest is the request to open a pull request.
1490
+ class OpenPullRequestRequest
1491
+ include Google::Apis::Core::Hashable
1492
+
1493
+ def initialize(**args)
1494
+ update!(**args)
1495
+ end
1496
+
1497
+ # Update properties of this object
1498
+ def update!(**args)
1499
+ end
1500
+ end
1501
+
1502
+ # This resource represents a long-running operation that is the result of a
1503
+ # network API call.
1504
+ class Operation
1505
+ include Google::Apis::Core::Hashable
1506
+
1507
+ # If the value is `false`, it means the operation is still in progress. If `true`
1508
+ # , the operation is completed, and either `error` or `response` is available.
1509
+ # Corresponds to the JSON property `done`
1510
+ # @return [Boolean]
1511
+ attr_accessor :done
1512
+ alias_method :done?, :done
1513
+
1514
+ # The `Status` type defines a logical error model that is suitable for different
1515
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1516
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1517
+ # data: error code, error message, and error details. You can find out more
1518
+ # about this error model and how to work with it in the [API Design Guide](https:
1519
+ # //cloud.google.com/apis/design/errors).
1520
+ # Corresponds to the JSON property `error`
1521
+ # @return [Google::Apis::SecuresourcemanagerV1::Status]
1522
+ attr_accessor :error
1523
+
1524
+ # Service-specific metadata associated with the operation. It typically contains
1525
+ # progress information and common metadata such as create time. Some services
1526
+ # might not provide such metadata. Any method that returns a long-running
1527
+ # operation should document the metadata type, if any.
1528
+ # Corresponds to the JSON property `metadata`
1529
+ # @return [Hash<String,Object>]
1530
+ attr_accessor :metadata
1531
+
1532
+ # The server-assigned name, which is only unique within the same service that
1533
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1534
+ # be a resource name ending with `operations/`unique_id``.
1535
+ # Corresponds to the JSON property `name`
1536
+ # @return [String]
1537
+ attr_accessor :name
1538
+
1539
+ # The normal, successful response of the operation. If the original method
1540
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
1541
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
1542
+ # response should be the resource. For other methods, the response should have
1543
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
1544
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
1545
+ # `TakeSnapshotResponse`.
1546
+ # Corresponds to the JSON property `response`
1547
+ # @return [Hash<String,Object>]
1548
+ attr_accessor :response
1549
+
1550
+ def initialize(**args)
1551
+ update!(**args)
1552
+ end
1553
+
1554
+ # Update properties of this object
1555
+ def update!(**args)
1556
+ @done = args[:done] if args.key?(:done)
1557
+ @error = args[:error] if args.key?(:error)
1558
+ @metadata = args[:metadata] if args.key?(:metadata)
1559
+ @name = args[:name] if args.key?(:name)
1560
+ @response = args[:response] if args.key?(:response)
1561
+ end
1562
+ end
1563
+
1564
+ # Represents the metadata of the long-running operation.
1565
+ class OperationMetadata
1566
+ include Google::Apis::Core::Hashable
1567
+
1568
+ # Output only. API version used to start the operation.
1569
+ # Corresponds to the JSON property `apiVersion`
1570
+ # @return [String]
1571
+ attr_accessor :api_version
1572
+
1573
+ # Output only. The time the operation was created.
1574
+ # Corresponds to the JSON property `createTime`
1575
+ # @return [String]
1576
+ attr_accessor :create_time
1577
+
1578
+ # Output only. The time the operation finished running.
1579
+ # Corresponds to the JSON property `endTime`
1580
+ # @return [String]
1581
+ attr_accessor :end_time
1582
+
1583
+ # Output only. Identifies whether the user has requested cancellation of the
1584
+ # operation. Operations that have successfully been cancelled have Operation.
1585
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1586
+ # CANCELLED`.
1587
+ # Corresponds to the JSON property `requestedCancellation`
1588
+ # @return [Boolean]
1589
+ attr_accessor :requested_cancellation
1590
+ alias_method :requested_cancellation?, :requested_cancellation
1591
+
1592
+ # Output only. Human-readable status of the operation, if any.
1593
+ # Corresponds to the JSON property `statusMessage`
1594
+ # @return [String]
1595
+ attr_accessor :status_message
1596
+
1597
+ # Output only. Server-defined resource path for the target of the operation.
1598
+ # Corresponds to the JSON property `target`
1599
+ # @return [String]
1600
+ attr_accessor :target
1601
+
1602
+ # Output only. Name of the verb executed by the operation.
1603
+ # Corresponds to the JSON property `verb`
1604
+ # @return [String]
1605
+ attr_accessor :verb
1606
+
1607
+ def initialize(**args)
1608
+ update!(**args)
1609
+ end
1610
+
1611
+ # Update properties of this object
1612
+ def update!(**args)
1613
+ @api_version = args[:api_version] if args.key?(:api_version)
1614
+ @create_time = args[:create_time] if args.key?(:create_time)
1615
+ @end_time = args[:end_time] if args.key?(:end_time)
1616
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1617
+ @status_message = args[:status_message] if args.key?(:status_message)
1618
+ @target = args[:target] if args.key?(:target)
1619
+ @verb = args[:verb] if args.key?(:verb)
1620
+ end
1621
+ end
1622
+
1623
+ # An Identity and Access Management (IAM) policy, which specifies access
1624
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1625
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1626
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1627
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1628
+ # an IAM predefined role or a user-created custom role. For some types of Google
1629
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1630
+ # logical expression that allows access to a resource only if the expression
1631
+ # evaluates to `true`. A condition can add constraints based on attributes of
1632
+ # the request, the resource, or both. To learn which resources support
1633
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1634
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1635
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1636
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1637
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1638
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1639
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1640
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1641
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1642
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1643
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1644
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1645
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1646
+ # title: expirable access description: Does not grant access after Sep 2020
1647
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1648
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1649
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1650
+ class Policy
1651
+ include Google::Apis::Core::Hashable
1652
+
1653
+ # Specifies cloud audit logging configuration for this policy.
1654
+ # Corresponds to the JSON property `auditConfigs`
1655
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::AuditConfig>]
1656
+ attr_accessor :audit_configs
1657
+
1658
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
1659
+ # specify a `condition` that determines how and when the `bindings` are applied.
1660
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
1661
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
1662
+ # can be Google groups. Each occurrence of a principal counts towards these
1663
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
1664
+ # example.com`, and not to any other principal, then you can add another 1,450
1665
+ # principals to the `bindings` in the `Policy`.
1666
+ # Corresponds to the JSON property `bindings`
1667
+ # @return [Array<Google::Apis::SecuresourcemanagerV1::Binding>]
1668
+ attr_accessor :bindings
1669
+
1670
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1671
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1672
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1673
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1674
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1675
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1676
+ # applied to the same version of the policy. **Important:** If you use IAM
1677
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1678
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1679
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1680
+ # are lost.
1681
+ # Corresponds to the JSON property `etag`
1682
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1683
+ # @return [String]
1684
+ attr_accessor :etag
1685
+
1686
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1687
+ # Requests that specify an invalid value are rejected. Any operation that
1688
+ # affects conditional role bindings must specify version `3`. This requirement
1689
+ # applies to the following operations: * Getting a policy that includes a
1690
+ # conditional role binding * Adding a conditional role binding to a policy *
1691
+ # Changing a conditional role binding in a policy * Removing any role binding,
1692
+ # with or without a condition, from a policy that includes conditions **
1693
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1694
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1695
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1696
+ # conditions in the version `3` policy are lost. If a policy does not include
1697
+ # any conditions, operations on that policy may specify any valid version or
1698
+ # leave the field unset. To learn which resources support conditions in their
1699
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1700
+ # conditions/resource-policies).
1701
+ # Corresponds to the JSON property `version`
1702
+ # @return [Fixnum]
1703
+ attr_accessor :version
1704
+
1705
+ def initialize(**args)
1706
+ update!(**args)
1707
+ end
1708
+
1709
+ # Update properties of this object
1710
+ def update!(**args)
1711
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1712
+ @bindings = args[:bindings] if args.key?(:bindings)
1713
+ @etag = args[:etag] if args.key?(:etag)
1714
+ @version = args[:version] if args.key?(:version)
1715
+ end
1716
+ end
1717
+
1718
+ # The position of the code comment.
1719
+ class Position
1720
+ include Google::Apis::Core::Hashable
1721
+
1722
+ # Required. The line number of the comment. Positive value means it's on the new
1723
+ # side of the diff, negative value means it's on the old side.
1724
+ # Corresponds to the JSON property `line`
1725
+ # @return [Fixnum]
1726
+ attr_accessor :line
1727
+
1728
+ # Required. The path of the file.
1729
+ # Corresponds to the JSON property `path`
1730
+ # @return [String]
1731
+ attr_accessor :path
1732
+
1733
+ def initialize(**args)
1734
+ update!(**args)
1735
+ end
1736
+
1737
+ # Update properties of this object
1738
+ def update!(**args)
1739
+ @line = args[:line] if args.key?(:line)
1740
+ @path = args[:path] if args.key?(:path)
1741
+ end
1742
+ end
1743
+
1744
+ # PrivateConfig includes settings for private instance.
1745
+ class PrivateConfig
1746
+ include Google::Apis::Core::Hashable
1747
+
1748
+ # Optional. Immutable. CA pool resource, resource must in the format of `
1749
+ # projects/`project`/locations/`location`/caPools/`ca_pool``.
1750
+ # Corresponds to the JSON property `caPool`
1751
+ # @return [String]
1752
+ attr_accessor :ca_pool
1753
+
1754
+ # Output only. Service Attachment for HTTP, resource is in the format of `
1755
+ # projects/`project`/regions/`region`/serviceAttachments/`service_attachment``.
1756
+ # Corresponds to the JSON property `httpServiceAttachment`
1757
+ # @return [String]
1758
+ attr_accessor :http_service_attachment
1759
+
1760
+ # Required. Immutable. Indicate if it's private instance.
1761
+ # Corresponds to the JSON property `isPrivate`
1762
+ # @return [Boolean]
1763
+ attr_accessor :is_private
1764
+ alias_method :is_private?, :is_private
1765
+
1766
+ # Optional. Additional allowed projects for setting up PSC connections. Instance
1767
+ # host project is automatically allowed and does not need to be included in this
1768
+ # list.
1769
+ # Corresponds to the JSON property `pscAllowedProjects`
1770
+ # @return [Array<String>]
1771
+ attr_accessor :psc_allowed_projects
1772
+
1773
+ # Output only. Service Attachment for SSH, resource is in the format of `
1774
+ # projects/`project`/regions/`region`/serviceAttachments/`service_attachment``.
1775
+ # Corresponds to the JSON property `sshServiceAttachment`
1776
+ # @return [String]
1777
+ attr_accessor :ssh_service_attachment
1778
+
1779
+ def initialize(**args)
1780
+ update!(**args)
1781
+ end
1782
+
1783
+ # Update properties of this object
1784
+ def update!(**args)
1785
+ @ca_pool = args[:ca_pool] if args.key?(:ca_pool)
1786
+ @http_service_attachment = args[:http_service_attachment] if args.key?(:http_service_attachment)
1787
+ @is_private = args[:is_private] if args.key?(:is_private)
1788
+ @psc_allowed_projects = args[:psc_allowed_projects] if args.key?(:psc_allowed_projects)
1789
+ @ssh_service_attachment = args[:ssh_service_attachment] if args.key?(:ssh_service_attachment)
1790
+ end
1791
+ end
1792
+
1793
+ # Metadata of a PullRequest. PullRequest is the request from a user to merge a
1794
+ # branch (head) into another branch (base).
1795
+ class PullRequest
1796
+ include Google::Apis::Core::Hashable
1797
+
1798
+ # Branch represents a branch involved in a pull request.
1799
+ # Corresponds to the JSON property `base`
1800
+ # @return [Google::Apis::SecuresourcemanagerV1::Branch]
1801
+ attr_accessor :base
1802
+
1803
+ # Optional. The pull request body. Provides a detailed description of the
1804
+ # changes.
1805
+ # Corresponds to the JSON property `body`
1806
+ # @return [String]
1807
+ attr_accessor :body
1808
+
1809
+ # Output only. Close timestamp (if closed or merged). Cleared when pull request
1810
+ # is re-opened.
1811
+ # Corresponds to the JSON property `closeTime`
1812
+ # @return [String]
1813
+ attr_accessor :close_time
1814
+
1815
+ # Output only. Creation timestamp.
1816
+ # Corresponds to the JSON property `createTime`
1817
+ # @return [String]
1818
+ attr_accessor :create_time
1819
+
1820
+ # Branch represents a branch involved in a pull request.
1821
+ # Corresponds to the JSON property `head`
1822
+ # @return [Google::Apis::SecuresourcemanagerV1::Branch]
1823
+ attr_accessor :head
1824
+
1825
+ # Output only. A unique identifier for a PullRequest. The number appended at the
1826
+ # end is generated by the server. Format: `projects/`project`/locations/`
1827
+ # location`/repositories/`repository`/pullRequests/`pull_request_id``
1828
+ # Corresponds to the JSON property `name`
1829
+ # @return [String]
1830
+ attr_accessor :name
1831
+
1832
+ # Output only. State of the pull request (open, closed or merged).
1833
+ # Corresponds to the JSON property `state`
1834
+ # @return [String]
1835
+ attr_accessor :state
1836
+
1837
+ # Required. The pull request title.
1838
+ # Corresponds to the JSON property `title`
1839
+ # @return [String]
1840
+ attr_accessor :title
1841
+
1842
+ # Output only. Last updated timestamp.
1843
+ # Corresponds to the JSON property `updateTime`
1844
+ # @return [String]
1845
+ attr_accessor :update_time
1846
+
1847
+ def initialize(**args)
1848
+ update!(**args)
1849
+ end
1850
+
1851
+ # Update properties of this object
1852
+ def update!(**args)
1853
+ @base = args[:base] if args.key?(:base)
1854
+ @body = args[:body] if args.key?(:body)
1855
+ @close_time = args[:close_time] if args.key?(:close_time)
1856
+ @create_time = args[:create_time] if args.key?(:create_time)
1857
+ @head = args[:head] if args.key?(:head)
1858
+ @name = args[:name] if args.key?(:name)
1859
+ @state = args[:state] if args.key?(:state)
1860
+ @title = args[:title] if args.key?(:title)
1861
+ @update_time = args[:update_time] if args.key?(:update_time)
1862
+ end
1863
+ end
1864
+
1865
+ # PullRequestComment represents a comment on a pull request.
1866
+ class PullRequestComment
1867
+ include Google::Apis::Core::Hashable
1868
+
1869
+ # The comment on a code line.
1870
+ # Corresponds to the JSON property `code`
1871
+ # @return [Google::Apis::SecuresourcemanagerV1::Code]
1872
+ attr_accessor :code
1873
+
1874
+ # The general pull request comment.
1875
+ # Corresponds to the JSON property `comment`
1876
+ # @return [Google::Apis::SecuresourcemanagerV1::Comment]
1877
+ attr_accessor :comment
1878
+
1879
+ # Output only. Creation timestamp.
1880
+ # Corresponds to the JSON property `createTime`
1881
+ # @return [String]
1882
+ attr_accessor :create_time
1883
+
1884
+ # Identifier. Unique identifier for the pull request comment. The comment id is
1885
+ # generated by the server. Format: `projects/`project`/locations/`location`/
1886
+ # repositories/`repository`/pullRequests/`pull_request`/pullRequestComments/`
1887
+ # comment_id``
1888
+ # Corresponds to the JSON property `name`
1889
+ # @return [String]
1890
+ attr_accessor :name
1891
+
1892
+ # The review summary comment.
1893
+ # Corresponds to the JSON property `review`
1894
+ # @return [Google::Apis::SecuresourcemanagerV1::Review]
1895
+ attr_accessor :review
1896
+
1897
+ # Output only. Last updated timestamp.
1898
+ # Corresponds to the JSON property `updateTime`
1899
+ # @return [String]
1900
+ attr_accessor :update_time
1901
+
1902
+ def initialize(**args)
1903
+ update!(**args)
1904
+ end
1905
+
1906
+ # Update properties of this object
1907
+ def update!(**args)
1908
+ @code = args[:code] if args.key?(:code)
1909
+ @comment = args[:comment] if args.key?(:comment)
1910
+ @create_time = args[:create_time] if args.key?(:create_time)
1911
+ @name = args[:name] if args.key?(:name)
1912
+ @review = args[:review] if args.key?(:review)
1913
+ @update_time = args[:update_time] if args.key?(:update_time)
1914
+ end
1915
+ end
1916
+
1917
+ #
1918
+ class PushOption
1919
+ include Google::Apis::Core::Hashable
1920
+
1921
+ # Optional. Trigger hook for matching branches only. Specified as glob pattern.
1922
+ # If empty or *, events for all branches are reported. Examples: main, `main,
1923
+ # release*`. See https://pkg.go.dev/github.com/gobwas/glob documentation.
1924
+ # Corresponds to the JSON property `branchFilter`
1925
+ # @return [String]
1926
+ attr_accessor :branch_filter
1927
+
1928
+ def initialize(**args)
1929
+ update!(**args)
1930
+ end
1931
+
1932
+ # Update properties of this object
1933
+ def update!(**args)
1934
+ @branch_filter = args[:branch_filter] if args.key?(:branch_filter)
1935
+ end
1936
+ end
1937
+
1938
+ # Metadata of a Secure Source Manager repository.
1939
+ class Repository
1940
+ include Google::Apis::Core::Hashable
1941
+
1942
+ # Output only. Create timestamp.
1943
+ # Corresponds to the JSON property `createTime`
1944
+ # @return [String]
1945
+ attr_accessor :create_time
1946
+
1947
+ # Optional. Description of the repository, which cannot exceed 500 characters.
1948
+ # Corresponds to the JSON property `description`
1949
+ # @return [String]
1950
+ attr_accessor :description
1951
+
1952
+ # Optional. This checksum is computed by the server based on the value of other
1953
+ # fields, and may be sent on update and delete requests to ensure the client has
1954
+ # an up-to-date value before proceeding.
1955
+ # Corresponds to the JSON property `etag`
1956
+ # @return [String]
1957
+ attr_accessor :etag
1958
+
1959
+ # Repository initialization configuration.
1960
+ # Corresponds to the JSON property `initialConfig`
1961
+ # @return [Google::Apis::SecuresourcemanagerV1::InitialConfig]
1962
+ attr_accessor :initial_config
1963
+
1964
+ # Optional. The name of the instance in which the repository is hosted,
1965
+ # formatted as `projects/`project_number`/locations/`location_id`/instances/`
1966
+ # instance_id`` When creating repository via securesourcemanager.googleapis.com,
1967
+ # this field is used as input. When creating repository via *.sourcemanager.dev,
1968
+ # this field is output only.
1969
+ # Corresponds to the JSON property `instance`
1970
+ # @return [String]
1971
+ attr_accessor :instance
1972
+
1973
+ # Optional. A unique identifier for a repository. The name should be of the
1974
+ # format: `projects/`project`/locations/`location_id`/repositories/`
1975
+ # repository_id``
1976
+ # Corresponds to the JSON property `name`
1977
+ # @return [String]
1978
+ attr_accessor :name
1979
+
1980
+ # Output only. Unique identifier of the repository.
1981
+ # Corresponds to the JSON property `uid`
1982
+ # @return [String]
1983
+ attr_accessor :uid
1984
+
1985
+ # Output only. Update timestamp.
1986
+ # Corresponds to the JSON property `updateTime`
1987
+ # @return [String]
1988
+ attr_accessor :update_time
1989
+
1990
+ # URIs for the repository.
1991
+ # Corresponds to the JSON property `uris`
1992
+ # @return [Google::Apis::SecuresourcemanagerV1::UrIs]
1993
+ attr_accessor :uris
1994
+
1995
+ def initialize(**args)
1996
+ update!(**args)
1997
+ end
1998
+
1999
+ # Update properties of this object
2000
+ def update!(**args)
2001
+ @create_time = args[:create_time] if args.key?(:create_time)
2002
+ @description = args[:description] if args.key?(:description)
2003
+ @etag = args[:etag] if args.key?(:etag)
2004
+ @initial_config = args[:initial_config] if args.key?(:initial_config)
2005
+ @instance = args[:instance] if args.key?(:instance)
2006
+ @name = args[:name] if args.key?(:name)
2007
+ @uid = args[:uid] if args.key?(:uid)
2008
+ @update_time = args[:update_time] if args.key?(:update_time)
2009
+ @uris = args[:uris] if args.key?(:uris)
2010
+ end
2011
+ end
2012
+
2013
+ # The request to resolve multiple pull request comments.
2014
+ class ResolvePullRequestCommentsRequest
2015
+ include Google::Apis::Core::Hashable
2016
+
2017
+ # Optional. If set, at least one comment in a thread is required, rest of the
2018
+ # comments in the same thread will be automatically updated to resolved. If
2019
+ # unset, all comments in the same thread need be present.
2020
+ # Corresponds to the JSON property `autoFill`
2021
+ # @return [Boolean]
2022
+ attr_accessor :auto_fill
2023
+ alias_method :auto_fill?, :auto_fill
2024
+
2025
+ # Required. The names of the pull request comments to resolve. Format: `projects/
2026
+ # `project_number`/locations/`location_id`/repositories/`repository_id`/
2027
+ # pullRequests/`pull_request_id`/pullRequestComments/`comment_id`` Only comments
2028
+ # from the same threads are allowed in the same request.
2029
+ # Corresponds to the JSON property `names`
2030
+ # @return [Array<String>]
2031
+ attr_accessor :names
2032
+
2033
+ def initialize(**args)
2034
+ update!(**args)
2035
+ end
2036
+
2037
+ # Update properties of this object
2038
+ def update!(**args)
2039
+ @auto_fill = args[:auto_fill] if args.key?(:auto_fill)
2040
+ @names = args[:names] if args.key?(:names)
2041
+ end
2042
+ end
2043
+
2044
+ # The review summary comment.
2045
+ class Review
2046
+ include Google::Apis::Core::Hashable
2047
+
2048
+ # Required. The review action type.
2049
+ # Corresponds to the JSON property `actionType`
2050
+ # @return [String]
2051
+ attr_accessor :action_type
2052
+
2053
+ # Optional. The comment body.
2054
+ # Corresponds to the JSON property `body`
2055
+ # @return [String]
2056
+ attr_accessor :body
2057
+
2058
+ # Output only. The effective commit sha this review is pointing to.
2059
+ # Corresponds to the JSON property `effectiveCommitSha`
2060
+ # @return [String]
2061
+ attr_accessor :effective_commit_sha
2062
+
2063
+ def initialize(**args)
2064
+ update!(**args)
2065
+ end
2066
+
2067
+ # Update properties of this object
2068
+ def update!(**args)
2069
+ @action_type = args[:action_type] if args.key?(:action_type)
2070
+ @body = args[:body] if args.key?(:body)
2071
+ @effective_commit_sha = args[:effective_commit_sha] if args.key?(:effective_commit_sha)
2072
+ end
2073
+ end
2074
+
2075
+ # Request message for `SetIamPolicy` method.
2076
+ class SetIamPolicyRequest
2077
+ include Google::Apis::Core::Hashable
2078
+
2079
+ # An Identity and Access Management (IAM) policy, which specifies access
2080
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2081
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2082
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2083
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2084
+ # an IAM predefined role or a user-created custom role. For some types of Google
2085
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2086
+ # logical expression that allows access to a resource only if the expression
2087
+ # evaluates to `true`. A condition can add constraints based on attributes of
2088
+ # the request, the resource, or both. To learn which resources support
2089
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2090
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
2091
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2092
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2093
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2094
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2095
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2096
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2097
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
2098
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
2099
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
2100
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
2101
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
2102
+ # title: expirable access description: Does not grant access after Sep 2020
2103
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
2104
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
2105
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
2106
+ # Corresponds to the JSON property `policy`
2107
+ # @return [Google::Apis::SecuresourcemanagerV1::Policy]
2108
+ attr_accessor :policy
2109
+
2110
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
2111
+ # the fields in the mask will be modified. If no mask is provided, the following
2112
+ # default mask is used: `paths: "bindings, etag"`
2113
+ # Corresponds to the JSON property `updateMask`
2114
+ # @return [String]
2115
+ attr_accessor :update_mask
2116
+
2117
+ def initialize(**args)
2118
+ update!(**args)
2119
+ end
2120
+
2121
+ # Update properties of this object
2122
+ def update!(**args)
2123
+ @policy = args[:policy] if args.key?(:policy)
2124
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2125
+ end
2126
+ end
2127
+
2128
+ # The `Status` type defines a logical error model that is suitable for different
2129
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2130
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2131
+ # data: error code, error message, and error details. You can find out more
2132
+ # about this error model and how to work with it in the [API Design Guide](https:
2133
+ # //cloud.google.com/apis/design/errors).
2134
+ class Status
2135
+ include Google::Apis::Core::Hashable
2136
+
2137
+ # The status code, which should be an enum value of google.rpc.Code.
2138
+ # Corresponds to the JSON property `code`
2139
+ # @return [Fixnum]
2140
+ attr_accessor :code
2141
+
2142
+ # A list of messages that carry the error details. There is a common set of
2143
+ # message types for APIs to use.
2144
+ # Corresponds to the JSON property `details`
2145
+ # @return [Array<Hash<String,Object>>]
2146
+ attr_accessor :details
2147
+
2148
+ # A developer-facing error message, which should be in English. Any user-facing
2149
+ # error message should be localized and sent in the google.rpc.Status.details
2150
+ # field, or localized by the client.
2151
+ # Corresponds to the JSON property `message`
2152
+ # @return [String]
2153
+ attr_accessor :message
2154
+
2155
+ def initialize(**args)
2156
+ update!(**args)
2157
+ end
2158
+
2159
+ # Update properties of this object
2160
+ def update!(**args)
2161
+ @code = args[:code] if args.key?(:code)
2162
+ @details = args[:details] if args.key?(:details)
2163
+ @message = args[:message] if args.key?(:message)
2164
+ end
2165
+ end
2166
+
2167
+ # Request message for `TestIamPermissions` method.
2168
+ class TestIamPermissionsRequest
2169
+ include Google::Apis::Core::Hashable
2170
+
2171
+ # The set of permissions to check for the `resource`. Permissions with wildcards
2172
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
2173
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
2174
+ # Corresponds to the JSON property `permissions`
2175
+ # @return [Array<String>]
2176
+ attr_accessor :permissions
2177
+
2178
+ def initialize(**args)
2179
+ update!(**args)
2180
+ end
2181
+
2182
+ # Update properties of this object
2183
+ def update!(**args)
2184
+ @permissions = args[:permissions] if args.key?(:permissions)
2185
+ end
2186
+ end
2187
+
2188
+ # Response message for `TestIamPermissions` method.
2189
+ class TestIamPermissionsResponse
2190
+ include Google::Apis::Core::Hashable
2191
+
2192
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2193
+ # Corresponds to the JSON property `permissions`
2194
+ # @return [Array<String>]
2195
+ attr_accessor :permissions
2196
+
2197
+ def initialize(**args)
2198
+ update!(**args)
2199
+ end
2200
+
2201
+ # Update properties of this object
2202
+ def update!(**args)
2203
+ @permissions = args[:permissions] if args.key?(:permissions)
2204
+ end
2205
+ end
2206
+
2207
+ # Represents an entry within a tree structure (like a Git tree).
2208
+ class TreeEntry
2209
+ include Google::Apis::Core::Hashable
2210
+
2211
+ # Output only. The file mode as a string (e.g., "100644"). Indicates file type.
2212
+ # Output-only.
2213
+ # Corresponds to the JSON property `mode`
2214
+ # @return [String]
2215
+ attr_accessor :mode
2216
+
2217
+ # Output only. The path of the file or directory within the tree (e.g., "src/
2218
+ # main/java/MyClass.java"). Output-only.
2219
+ # Corresponds to the JSON property `path`
2220
+ # @return [String]
2221
+ attr_accessor :path
2222
+
2223
+ # Output only. The SHA-1 hash of the object (unique identifier). Output-only.
2224
+ # Corresponds to the JSON property `sha`
2225
+ # @return [String]
2226
+ attr_accessor :sha
2227
+
2228
+ # Output only. The size of the object in bytes (only for blobs). Output-only.
2229
+ # Corresponds to the JSON property `size`
2230
+ # @return [Fixnum]
2231
+ attr_accessor :size
2232
+
2233
+ # Output only. The type of the object (TREE, BLOB, COMMIT). Output-only.
2234
+ # Corresponds to the JSON property `type`
2235
+ # @return [String]
2236
+ attr_accessor :type
2237
+
2238
+ def initialize(**args)
2239
+ update!(**args)
2240
+ end
2241
+
2242
+ # Update properties of this object
2243
+ def update!(**args)
2244
+ @mode = args[:mode] if args.key?(:mode)
2245
+ @path = args[:path] if args.key?(:path)
2246
+ @sha = args[:sha] if args.key?(:sha)
2247
+ @size = args[:size] if args.key?(:size)
2248
+ @type = args[:type] if args.key?(:type)
2249
+ end
2250
+ end
2251
+
2252
+ # URIs for the repository.
2253
+ class UrIs
2254
+ include Google::Apis::Core::Hashable
2255
+
2256
+ # Output only. API is the URI for API access.
2257
+ # Corresponds to the JSON property `api`
2258
+ # @return [String]
2259
+ attr_accessor :api
2260
+
2261
+ # Output only. git_https is the git HTTPS URI for git operations.
2262
+ # Corresponds to the JSON property `gitHttps`
2263
+ # @return [String]
2264
+ attr_accessor :git_https
2265
+
2266
+ # Output only. HTML is the URI for user to view the repository in a browser.
2267
+ # Corresponds to the JSON property `html`
2268
+ # @return [String]
2269
+ attr_accessor :html
2270
+
2271
+ def initialize(**args)
2272
+ update!(**args)
2273
+ end
2274
+
2275
+ # Update properties of this object
2276
+ def update!(**args)
2277
+ @api = args[:api] if args.key?(:api)
2278
+ @git_https = args[:git_https] if args.key?(:git_https)
2279
+ @html = args[:html] if args.key?(:html)
2280
+ end
2281
+ end
2282
+
2283
+ # The request to unresolve multiple pull request comments.
2284
+ class UnresolvePullRequestCommentsRequest
2285
+ include Google::Apis::Core::Hashable
2286
+
2287
+ # Optional. If set, at least one comment in a thread is required, rest of the
2288
+ # comments in the same thread will be automatically updated to unresolved. If
2289
+ # unset, all comments in the same thread need be present.
2290
+ # Corresponds to the JSON property `autoFill`
2291
+ # @return [Boolean]
2292
+ attr_accessor :auto_fill
2293
+ alias_method :auto_fill?, :auto_fill
2294
+
2295
+ # Required. The names of the pull request comments to unresolve. Format: `
2296
+ # projects/`project_number`/locations/`location_id`/repositories/`repository_id`/
2297
+ # pullRequests/`pull_request_id`/pullRequestComments/`comment_id`` Only comments
2298
+ # from the same threads are allowed in the same request.
2299
+ # Corresponds to the JSON property `names`
2300
+ # @return [Array<String>]
2301
+ attr_accessor :names
2302
+
2303
+ def initialize(**args)
2304
+ update!(**args)
2305
+ end
2306
+
2307
+ # Update properties of this object
2308
+ def update!(**args)
2309
+ @auto_fill = args[:auto_fill] if args.key?(:auto_fill)
2310
+ @names = args[:names] if args.key?(:names)
2311
+ end
2312
+ end
2313
+
2314
+ # WorkforceIdentityFederationConfig allows this instance to support users from
2315
+ # external identity providers.
2316
+ class WorkforceIdentityFederationConfig
2317
+ include Google::Apis::Core::Hashable
2318
+
2319
+ # Optional. Immutable. Whether Workforce Identity Federation is enabled.
2320
+ # Corresponds to the JSON property `enabled`
2321
+ # @return [Boolean]
2322
+ attr_accessor :enabled
2323
+ alias_method :enabled?, :enabled
2324
+
2325
+ def initialize(**args)
2326
+ update!(**args)
2327
+ end
2328
+
2329
+ # Update properties of this object
2330
+ def update!(**args)
2331
+ @enabled = args[:enabled] if args.key?(:enabled)
2332
+ end
2333
+ end
2334
+ end
2335
+ end
2336
+ end