google-apis-containeranalysis_v1beta1 0.7.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -294,7 +294,7 @@ module Google
294
294
  end
295
295
  end
296
296
 
297
- # Associates `members` with a `role`.
297
+ # Associates `members`, or principals, with a `role`.
298
298
  class Binding
299
299
  include Google::Apis::Core::Hashable
300
300
 
@@ -317,7 +317,7 @@ module Google
317
317
  # @return [Google::Apis::ContaineranalysisV1beta1::Expr]
318
318
  attr_accessor :condition
319
319
 
320
- # Specifies the identities requesting access for a Cloud Platform resource. `
320
+ # Specifies the principals requesting access for a Cloud Platform resource. `
321
321
  # members` can have the following values: * `allUsers`: A special identifier
322
322
  # that represents anyone who is on the internet; with or without a Google
323
323
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -347,8 +347,8 @@ module Google
347
347
  # @return [Array<String>]
348
348
  attr_accessor :members
349
349
 
350
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
351
- # , or `roles/owner`.
350
+ # Role that is assigned to the list of `members`, or principals. For example, `
351
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
352
352
  # Corresponds to the JSON property `role`
353
353
  # @return [String]
354
354
  attr_accessor :role
@@ -537,6 +537,141 @@ module Google
537
537
  end
538
538
  end
539
539
 
540
+ # A step in the build pipeline.
541
+ class BuildStep
542
+ include Google::Apis::Core::Hashable
543
+
544
+ # A list of arguments that will be presented to the step when it is started. If
545
+ # the image used to run the step's container has an entrypoint, the `args` are
546
+ # used as arguments to that entrypoint. If the image does not define an
547
+ # entrypoint, the first element in args is used as the entrypoint, and the
548
+ # remainder will be used as arguments.
549
+ # Corresponds to the JSON property `args`
550
+ # @return [Array<String>]
551
+ attr_accessor :args
552
+
553
+ # Working directory to use when running this step's container. If this value is
554
+ # a relative path, it is relative to the build's working directory. If this
555
+ # value is absolute, it may be outside the build's working directory, in which
556
+ # case the contents of the path may not be persisted across build step
557
+ # executions, unless a `volume` for that path is specified. If the build
558
+ # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
559
+ # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
560
+ # Corresponds to the JSON property `dir`
561
+ # @return [String]
562
+ attr_accessor :dir
563
+
564
+ # Entrypoint to be used instead of the build step image's default entrypoint. If
565
+ # unset, the image's default entrypoint is used.
566
+ # Corresponds to the JSON property `entrypoint`
567
+ # @return [String]
568
+ attr_accessor :entrypoint
569
+
570
+ # A list of environment variable definitions to be used when running a step. The
571
+ # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
572
+ # given the value "VALUE".
573
+ # Corresponds to the JSON property `env`
574
+ # @return [Array<String>]
575
+ attr_accessor :env
576
+
577
+ # Unique identifier for this build step, used in `wait_for` to reference this
578
+ # build step as a dependency.
579
+ # Corresponds to the JSON property `id`
580
+ # @return [String]
581
+ attr_accessor :id
582
+
583
+ # Required. The name of the container image that will run this particular build
584
+ # step. If the image is available in the host's Docker daemon's cache, it will
585
+ # be run directly. If not, the host will attempt to pull the image first, using
586
+ # the builder service account's credentials if necessary. The Docker daemon's
587
+ # cache will already have the latest versions of all of the officially supported
588
+ # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
589
+ # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
590
+ # have cached many of the layers for some popular images, like "ubuntu", "debian"
591
+ # , but they will be refreshed at the time you attempt to use them. If you built
592
+ # an image in a previous build step, it will be stored in the host's Docker
593
+ # daemon's cache and is available to use as the name for a later build step.
594
+ # Corresponds to the JSON property `name`
595
+ # @return [String]
596
+ attr_accessor :name
597
+
598
+ # Start and end times for a build execution phase.
599
+ # Corresponds to the JSON property `pullTiming`
600
+ # @return [Google::Apis::ContaineranalysisV1beta1::TimeSpan]
601
+ attr_accessor :pull_timing
602
+
603
+ # A shell script to be executed in the step. When script is provided, the user
604
+ # cannot specify the entrypoint or args.
605
+ # Corresponds to the JSON property `script`
606
+ # @return [String]
607
+ attr_accessor :script
608
+
609
+ # A list of environment variables which are encrypted using a Cloud Key
610
+ # Management Service crypto key. These values must be specified in the build's `
611
+ # Secret`.
612
+ # Corresponds to the JSON property `secretEnv`
613
+ # @return [Array<String>]
614
+ attr_accessor :secret_env
615
+
616
+ # Output only. Status of the build step. At this time, build step status is only
617
+ # updated on build completion; step status is not updated in real-time as the
618
+ # build progresses.
619
+ # Corresponds to the JSON property `status`
620
+ # @return [String]
621
+ attr_accessor :status
622
+
623
+ # Time limit for executing this build step. If not defined, the step has no time
624
+ # limit and will be allowed to continue to run until either it completes or the
625
+ # build itself times out.
626
+ # Corresponds to the JSON property `timeout`
627
+ # @return [String]
628
+ attr_accessor :timeout
629
+
630
+ # Start and end times for a build execution phase.
631
+ # Corresponds to the JSON property `timing`
632
+ # @return [Google::Apis::ContaineranalysisV1beta1::TimeSpan]
633
+ attr_accessor :timing
634
+
635
+ # List of volumes to mount into the build step. Each volume is created as an
636
+ # empty volume prior to execution of the build step. Upon completion of the
637
+ # build, volumes and their contents are discarded. Using a named volume in only
638
+ # one step is not valid as it is indicative of a build request with an incorrect
639
+ # configuration.
640
+ # Corresponds to the JSON property `volumes`
641
+ # @return [Array<Google::Apis::ContaineranalysisV1beta1::Volume>]
642
+ attr_accessor :volumes
643
+
644
+ # The ID(s) of the step(s) that this build step depends on. This build step will
645
+ # not start until all the build steps in `wait_for` have completed successfully.
646
+ # If `wait_for` is empty, this build step will start when all previous build
647
+ # steps in the `Build.Steps` list have completed successfully.
648
+ # Corresponds to the JSON property `waitFor`
649
+ # @return [Array<String>]
650
+ attr_accessor :wait_for
651
+
652
+ def initialize(**args)
653
+ update!(**args)
654
+ end
655
+
656
+ # Update properties of this object
657
+ def update!(**args)
658
+ @args = args[:args] if args.key?(:args)
659
+ @dir = args[:dir] if args.key?(:dir)
660
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
661
+ @env = args[:env] if args.key?(:env)
662
+ @id = args[:id] if args.key?(:id)
663
+ @name = args[:name] if args.key?(:name)
664
+ @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
665
+ @script = args[:script] if args.key?(:script)
666
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
667
+ @status = args[:status] if args.key?(:status)
668
+ @timeout = args[:timeout] if args.key?(:timeout)
669
+ @timing = args[:timing] if args.key?(:timing)
670
+ @volumes = args[:volumes] if args.key?(:volumes)
671
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
672
+ end
673
+ end
674
+
540
675
  # Defines an object for the byproducts field in in-toto links. The suggested
541
676
  # fields are "stderr", "stdout", and "return-value".
542
677
  class ByProducts
@@ -1073,6 +1208,112 @@ module Google
1073
1208
  end
1074
1209
  end
1075
1210
 
1211
+ # DocumentNote represents an SPDX Document Creation Infromation section: https://
1212
+ # spdx.github.io/spdx-spec/2-document-creation-information/
1213
+ class DocumentNote
1214
+ include Google::Apis::Core::Hashable
1215
+
1216
+ # Compliance with the SPDX specification includes populating the SPDX fields
1217
+ # therein with data related to such fields ("SPDX-Metadata")
1218
+ # Corresponds to the JSON property `dataLicence`
1219
+ # @return [String]
1220
+ attr_accessor :data_licence
1221
+
1222
+ # Provide a reference number that can be used to understand how to parse and
1223
+ # interpret the rest of the file
1224
+ # Corresponds to the JSON property `spdxVersion`
1225
+ # @return [String]
1226
+ attr_accessor :spdx_version
1227
+
1228
+ def initialize(**args)
1229
+ update!(**args)
1230
+ end
1231
+
1232
+ # Update properties of this object
1233
+ def update!(**args)
1234
+ @data_licence = args[:data_licence] if args.key?(:data_licence)
1235
+ @spdx_version = args[:spdx_version] if args.key?(:spdx_version)
1236
+ end
1237
+ end
1238
+
1239
+ # DocumentOccurrence represents an SPDX Document Creation Information section:
1240
+ # https://spdx.github.io/spdx-spec/2-document-creation-information/
1241
+ class DocumentOccurrence
1242
+ include Google::Apis::Core::Hashable
1243
+
1244
+ # Identify when the SPDX file was originally created. The date is to be
1245
+ # specified according to combined date and time in UTC format as specified in
1246
+ # ISO 8601 standard
1247
+ # Corresponds to the JSON property `createTime`
1248
+ # @return [String]
1249
+ attr_accessor :create_time
1250
+
1251
+ # A field for creators of the SPDX file to provide general comments about the
1252
+ # creation of the SPDX file or any other relevant comment not included in the
1253
+ # other fields
1254
+ # Corresponds to the JSON property `creatorComment`
1255
+ # @return [String]
1256
+ attr_accessor :creator_comment
1257
+
1258
+ # Identify who (or what, in the case of a tool) created the SPDX file. If the
1259
+ # SPDX file was created by an individual, indicate the person's name
1260
+ # Corresponds to the JSON property `creators`
1261
+ # @return [Array<String>]
1262
+ attr_accessor :creators
1263
+
1264
+ # A field for creators of the SPDX file content to provide comments to the
1265
+ # consumers of the SPDX document
1266
+ # Corresponds to the JSON property `documentComment`
1267
+ # @return [String]
1268
+ attr_accessor :document_comment
1269
+
1270
+ # Identify any external SPDX documents referenced within this SPDX document
1271
+ # Corresponds to the JSON property `externalDocumentRefs`
1272
+ # @return [Array<String>]
1273
+ attr_accessor :external_document_refs
1274
+
1275
+ # Identify the current SPDX document which may be referenced in relationships by
1276
+ # other files, packages internally and documents externally
1277
+ # Corresponds to the JSON property `id`
1278
+ # @return [String]
1279
+ attr_accessor :id
1280
+
1281
+ # A field for creators of the SPDX file to provide the version of the SPDX
1282
+ # License List used when the SPDX file was created
1283
+ # Corresponds to the JSON property `licenseListVersion`
1284
+ # @return [String]
1285
+ attr_accessor :license_list_version
1286
+
1287
+ # Provide an SPDX document specific namespace as a unique absolute Uniform
1288
+ # Resource Identifier (URI) as specified in RFC-3986, with the exception of the ‘
1289
+ # #’ delimiter
1290
+ # Corresponds to the JSON property `namespace`
1291
+ # @return [String]
1292
+ attr_accessor :namespace
1293
+
1294
+ # Identify name of this document as designated by creator
1295
+ # Corresponds to the JSON property `title`
1296
+ # @return [String]
1297
+ attr_accessor :title
1298
+
1299
+ def initialize(**args)
1300
+ update!(**args)
1301
+ end
1302
+
1303
+ # Update properties of this object
1304
+ def update!(**args)
1305
+ @create_time = args[:create_time] if args.key?(:create_time)
1306
+ @creator_comment = args[:creator_comment] if args.key?(:creator_comment)
1307
+ @creators = args[:creators] if args.key?(:creators)
1308
+ @document_comment = args[:document_comment] if args.key?(:document_comment)
1309
+ @external_document_refs = args[:external_document_refs] if args.key?(:external_document_refs)
1310
+ @id = args[:id] if args.key?(:id)
1311
+ @license_list_version = args[:license_list_version] if args.key?(:license_list_version)
1312
+ @namespace = args[:namespace] if args.key?(:namespace)
1313
+ @title = args[:title] if args.key?(:title)
1314
+ end
1315
+ end
1316
+
1076
1317
  # A generic empty message that you can re-use to avoid defining duplicated empty
1077
1318
  # messages in your APIs. A typical example is to use it as the request or the
1078
1319
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1164,6 +1405,48 @@ module Google
1164
1405
  end
1165
1406
  end
1166
1407
 
1408
+ # An External Reference allows a Package to reference an external source of
1409
+ # additional information, metadata, enumerations, asset identifiers, or
1410
+ # downloadable content believed to be relevant to the Package
1411
+ class ExternalRef
1412
+ include Google::Apis::Core::Hashable
1413
+
1414
+ # An External Reference allows a Package to reference an external source of
1415
+ # additional information, metadata, enumerations, asset identifiers, or
1416
+ # downloadable content believed to be relevant to the Package
1417
+ # Corresponds to the JSON property `category`
1418
+ # @return [String]
1419
+ attr_accessor :category
1420
+
1421
+ # Human-readable information about the purpose and target of the reference
1422
+ # Corresponds to the JSON property `comment`
1423
+ # @return [String]
1424
+ attr_accessor :comment
1425
+
1426
+ # The unique string with no spaces necessary to access the package-specific
1427
+ # information, metadata, or content within the target location
1428
+ # Corresponds to the JSON property `locator`
1429
+ # @return [String]
1430
+ attr_accessor :locator
1431
+
1432
+ # Type of category (e.g. 'npm' for the PACKAGE_MANAGER category)
1433
+ # Corresponds to the JSON property `type`
1434
+ # @return [String]
1435
+ attr_accessor :type
1436
+
1437
+ def initialize(**args)
1438
+ update!(**args)
1439
+ end
1440
+
1441
+ # Update properties of this object
1442
+ def update!(**args)
1443
+ @category = args[:category] if args.key?(:category)
1444
+ @comment = args[:comment] if args.key?(:comment)
1445
+ @locator = args[:locator] if args.key?(:locator)
1446
+ @type = args[:type] if args.key?(:type)
1447
+ end
1448
+ end
1449
+
1167
1450
  # Container message for hashes of byte content of files, used in source messages
1168
1451
  # to verify integrity of source input to the build.
1169
1452
  class FileHashes
@@ -1184,6 +1467,108 @@ module Google
1184
1467
  end
1185
1468
  end
1186
1469
 
1470
+ # FileNote represents an SPDX File Information section: https://spdx.github.io/
1471
+ # spdx-spec/4-file-information/
1472
+ class FileNote
1473
+ include Google::Apis::Core::Hashable
1474
+
1475
+ # Provide a unique identifier to match analysis information on each specific
1476
+ # file in a package
1477
+ # Corresponds to the JSON property `checksum`
1478
+ # @return [Array<String>]
1479
+ attr_accessor :checksum
1480
+
1481
+ # This field provides information about the type of file identified
1482
+ # Corresponds to the JSON property `fileType`
1483
+ # @return [String]
1484
+ attr_accessor :file_type
1485
+
1486
+ # Identify the full path and filename that corresponds to the file information
1487
+ # in this section
1488
+ # Corresponds to the JSON property `title`
1489
+ # @return [String]
1490
+ attr_accessor :title
1491
+
1492
+ def initialize(**args)
1493
+ update!(**args)
1494
+ end
1495
+
1496
+ # Update properties of this object
1497
+ def update!(**args)
1498
+ @checksum = args[:checksum] if args.key?(:checksum)
1499
+ @file_type = args[:file_type] if args.key?(:file_type)
1500
+ @title = args[:title] if args.key?(:title)
1501
+ end
1502
+ end
1503
+
1504
+ # FileOccurrence represents an SPDX File Information section: https://spdx.
1505
+ # github.io/spdx-spec/4-file-information/
1506
+ class FileOccurrence
1507
+ include Google::Apis::Core::Hashable
1508
+
1509
+ # This field provides a place for the SPDX data creator to record, at the file
1510
+ # level, acknowledgements that may be needed to be communicated in some contexts
1511
+ # Corresponds to the JSON property `attributions`
1512
+ # @return [Array<String>]
1513
+ attr_accessor :attributions
1514
+
1515
+ # This field provides a place for the SPDX file creator to record any general
1516
+ # comments about the file
1517
+ # Corresponds to the JSON property `comment`
1518
+ # @return [String]
1519
+ attr_accessor :comment
1520
+
1521
+ # This field provides a place for the SPDX file creator to record file
1522
+ # contributors
1523
+ # Corresponds to the JSON property `contributors`
1524
+ # @return [Array<String>]
1525
+ attr_accessor :contributors
1526
+
1527
+ # Identify the copyright holder of the file, as well as any dates present
1528
+ # Corresponds to the JSON property `copyright`
1529
+ # @return [String]
1530
+ attr_accessor :copyright
1531
+
1532
+ # This field contains the license information actually found in the file, if any
1533
+ # Corresponds to the JSON property `filesLicenseInfo`
1534
+ # @return [Array<String>]
1535
+ attr_accessor :files_license_info
1536
+
1537
+ # Uniquely identify any element in an SPDX document which may be referenced by
1538
+ # other elements
1539
+ # Corresponds to the JSON property `id`
1540
+ # @return [String]
1541
+ attr_accessor :id
1542
+
1543
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
1544
+ # 315-declared-license
1545
+ # Corresponds to the JSON property `licenseConcluded`
1546
+ # @return [Google::Apis::ContaineranalysisV1beta1::License]
1547
+ attr_accessor :license_concluded
1548
+
1549
+ # This field provides a place for the SPDX file creator to record license
1550
+ # notices or other such related notices found in the file
1551
+ # Corresponds to the JSON property `notice`
1552
+ # @return [String]
1553
+ attr_accessor :notice
1554
+
1555
+ def initialize(**args)
1556
+ update!(**args)
1557
+ end
1558
+
1559
+ # Update properties of this object
1560
+ def update!(**args)
1561
+ @attributions = args[:attributions] if args.key?(:attributions)
1562
+ @comment = args[:comment] if args.key?(:comment)
1563
+ @contributors = args[:contributors] if args.key?(:contributors)
1564
+ @copyright = args[:copyright] if args.key?(:copyright)
1565
+ @files_license_info = args[:files_license_info] if args.key?(:files_license_info)
1566
+ @id = args[:id] if args.key?(:id)
1567
+ @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
1568
+ @notice = args[:notice] if args.key?(:notice)
1569
+ end
1570
+ end
1571
+
1187
1572
  # A set of properties that uniquely identify a given Docker image.
1188
1573
  class Fingerprint
1189
1574
  include Google::Apis::Core::Hashable
@@ -1632,7 +2017,13 @@ module Google
1632
2017
 
1633
2018
  # The distro assigned severity for this vulnerability when it is available, and
1634
2019
  # note provider assigned severity when distro has not yet assigned a severity
1635
- # for this vulnerability.
2020
+ # for this vulnerability. When there are multiple PackageIssues for this
2021
+ # vulnerability, they can have different effective severities because some might
2022
+ # be provided by the distro while others are provided by the language ecosystem
2023
+ # for a language pack. For this reason, it is advised to use the effective
2024
+ # severity on the PackageIssue level. In the case where multiple PackageIssues
2025
+ # have differing effective severities, this field should be the highest severity
2026
+ # for any of the PackageIssues.
1636
2027
  # Corresponds to the JSON property `effectiveSeverity`
1637
2028
  # @return [String]
1638
2029
  attr_accessor :effective_severity
@@ -1868,6 +2259,33 @@ module Google
1868
2259
  end
1869
2260
  end
1870
2261
 
2262
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
2263
+ # 315-declared-license
2264
+ class License
2265
+ include Google::Apis::Core::Hashable
2266
+
2267
+ # Comments
2268
+ # Corresponds to the JSON property `comments`
2269
+ # @return [String]
2270
+ attr_accessor :comments
2271
+
2272
+ # Expression: https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-
2273
+ # expressions/
2274
+ # Corresponds to the JSON property `expression`
2275
+ # @return [String]
2276
+ attr_accessor :expression
2277
+
2278
+ def initialize(**args)
2279
+ update!(**args)
2280
+ end
2281
+
2282
+ # Update properties of this object
2283
+ def update!(**args)
2284
+ @comments = args[:comments] if args.key?(:comments)
2285
+ @expression = args[:expression] if args.key?(:expression)
2286
+ end
2287
+ end
2288
+
1871
2289
  # This corresponds to an in-toto link.
1872
2290
  class Link
1873
2291
  include Google::Apis::Core::Hashable
@@ -2149,11 +2567,35 @@ module Google
2149
2567
  # @return [Array<Google::Apis::ContaineranalysisV1beta1::RelatedUrl>]
2150
2568
  attr_accessor :related_url
2151
2569
 
2570
+ # DocumentNote represents an SPDX Document Creation Infromation section: https://
2571
+ # spdx.github.io/spdx-spec/2-document-creation-information/
2572
+ # Corresponds to the JSON property `sbom`
2573
+ # @return [Google::Apis::ContaineranalysisV1beta1::DocumentNote]
2574
+ attr_accessor :sbom
2575
+
2152
2576
  # A one sentence description of this note.
2153
2577
  # Corresponds to the JSON property `shortDescription`
2154
2578
  # @return [String]
2155
2579
  attr_accessor :short_description
2156
2580
 
2581
+ # FileNote represents an SPDX File Information section: https://spdx.github.io/
2582
+ # spdx-spec/4-file-information/
2583
+ # Corresponds to the JSON property `spdxFile`
2584
+ # @return [Google::Apis::ContaineranalysisV1beta1::FileNote]
2585
+ attr_accessor :spdx_file
2586
+
2587
+ # PackageInfoNote represents an SPDX Package Information section: https://spdx.
2588
+ # github.io/spdx-spec/3-package-information/
2589
+ # Corresponds to the JSON property `spdxPackage`
2590
+ # @return [Google::Apis::ContaineranalysisV1beta1::PackageInfoNote]
2591
+ attr_accessor :spdx_package
2592
+
2593
+ # RelationshipNote represents an SPDX Relationship section: https://spdx.github.
2594
+ # io/spdx-spec/7-relationships-between-SPDX-elements/
2595
+ # Corresponds to the JSON property `spdxRelationship`
2596
+ # @return [Google::Apis::ContaineranalysisV1beta1::RelationshipNote]
2597
+ attr_accessor :spdx_relationship
2598
+
2157
2599
  # Output only. The time this note was last updated. This field can be used as a
2158
2600
  # filter in list requests.
2159
2601
  # Corresponds to the JSON property `updateTime`
@@ -2185,7 +2627,11 @@ module Google
2185
2627
  @package = args[:package] if args.key?(:package)
2186
2628
  @related_note_names = args[:related_note_names] if args.key?(:related_note_names)
2187
2629
  @related_url = args[:related_url] if args.key?(:related_url)
2630
+ @sbom = args[:sbom] if args.key?(:sbom)
2188
2631
  @short_description = args[:short_description] if args.key?(:short_description)
2632
+ @spdx_file = args[:spdx_file] if args.key?(:spdx_file)
2633
+ @spdx_package = args[:spdx_package] if args.key?(:spdx_package)
2634
+ @spdx_relationship = args[:spdx_relationship] if args.key?(:spdx_relationship)
2189
2635
  @update_time = args[:update_time] if args.key?(:update_time)
2190
2636
  @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
2191
2637
  end
@@ -2266,6 +2712,30 @@ module Google
2266
2712
  # @return [Google::Apis::ContaineranalysisV1beta1::Resource]
2267
2713
  attr_accessor :resource
2268
2714
 
2715
+ # DocumentOccurrence represents an SPDX Document Creation Information section:
2716
+ # https://spdx.github.io/spdx-spec/2-document-creation-information/
2717
+ # Corresponds to the JSON property `sbom`
2718
+ # @return [Google::Apis::ContaineranalysisV1beta1::DocumentOccurrence]
2719
+ attr_accessor :sbom
2720
+
2721
+ # FileOccurrence represents an SPDX File Information section: https://spdx.
2722
+ # github.io/spdx-spec/4-file-information/
2723
+ # Corresponds to the JSON property `spdxFile`
2724
+ # @return [Google::Apis::ContaineranalysisV1beta1::FileOccurrence]
2725
+ attr_accessor :spdx_file
2726
+
2727
+ # PackageInfoOccurrence represents an SPDX Package Information section: https://
2728
+ # spdx.github.io/spdx-spec/3-package-information/
2729
+ # Corresponds to the JSON property `spdxPackage`
2730
+ # @return [Google::Apis::ContaineranalysisV1beta1::PackageInfoOccurrence]
2731
+ attr_accessor :spdx_package
2732
+
2733
+ # RelationshipOccurrence represents an SPDX Relationship section: https://spdx.
2734
+ # github.io/spdx-spec/7-relationships-between-SPDX-elements/
2735
+ # Corresponds to the JSON property `spdxRelationship`
2736
+ # @return [Google::Apis::ContaineranalysisV1beta1::RelationshipOccurrence]
2737
+ attr_accessor :spdx_relationship
2738
+
2269
2739
  # Output only. The time this occurrence was last updated.
2270
2740
  # Corresponds to the JSON property `updateTime`
2271
2741
  # @return [String]
@@ -2295,6 +2765,10 @@ module Google
2295
2765
  @note_name = args[:note_name] if args.key?(:note_name)
2296
2766
  @remediation = args[:remediation] if args.key?(:remediation)
2297
2767
  @resource = args[:resource] if args.key?(:resource)
2768
+ @sbom = args[:sbom] if args.key?(:sbom)
2769
+ @spdx_file = args[:spdx_file] if args.key?(:spdx_file)
2770
+ @spdx_package = args[:spdx_package] if args.key?(:spdx_package)
2771
+ @spdx_relationship = args[:spdx_relationship] if args.key?(:spdx_relationship)
2298
2772
  @update_time = args[:update_time] if args.key?(:update_time)
2299
2773
  @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
2300
2774
  end
@@ -2326,6 +2800,221 @@ module Google
2326
2800
  end
2327
2801
  end
2328
2802
 
2803
+ # PackageInfoNote represents an SPDX Package Information section: https://spdx.
2804
+ # github.io/spdx-spec/3-package-information/
2805
+ class PackageInfoNote
2806
+ include Google::Apis::Core::Hashable
2807
+
2808
+ # Indicates whether the file content of this package has been available for or
2809
+ # subjected to analysis when creating the SPDX document
2810
+ # Corresponds to the JSON property `analyzed`
2811
+ # @return [Boolean]
2812
+ attr_accessor :analyzed
2813
+ alias_method :analyzed?, :analyzed
2814
+
2815
+ # A place for the SPDX data creator to record, at the package level,
2816
+ # acknowledgements that may be needed to be communicated in some contexts
2817
+ # Corresponds to the JSON property `attribution`
2818
+ # @return [String]
2819
+ attr_accessor :attribution
2820
+
2821
+ # Provide an independently reproducible mechanism that permits unique
2822
+ # identification of a specific package that correlates to the data in this SPDX
2823
+ # file
2824
+ # Corresponds to the JSON property `checksum`
2825
+ # @return [String]
2826
+ attr_accessor :checksum
2827
+
2828
+ # Identify the copyright holders of the package, as well as any dates present
2829
+ # Corresponds to the JSON property `copyright`
2830
+ # @return [String]
2831
+ attr_accessor :copyright
2832
+
2833
+ # A more detailed description of the package
2834
+ # Corresponds to the JSON property `detailedDescription`
2835
+ # @return [String]
2836
+ attr_accessor :detailed_description
2837
+
2838
+ # This section identifies the download Universal Resource Locator (URL), or a
2839
+ # specific location within a version control system (VCS) for the package at the
2840
+ # time that the SPDX file was created
2841
+ # Corresponds to the JSON property `downloadLocation`
2842
+ # @return [String]
2843
+ attr_accessor :download_location
2844
+
2845
+ # ExternalRef
2846
+ # Corresponds to the JSON property `externalRefs`
2847
+ # @return [Array<Google::Apis::ContaineranalysisV1beta1::ExternalRef>]
2848
+ attr_accessor :external_refs
2849
+
2850
+ # Contain the license the SPDX file creator has concluded as governing the This
2851
+ # field is to contain a list of all licenses found in the package. The
2852
+ # relationship between licenses (i.e., conjunctive, disjunctive) is not
2853
+ # specified in this field – it is simply a listing of all licenses found
2854
+ # Corresponds to the JSON property `filesLicenseInfo`
2855
+ # @return [Array<String>]
2856
+ attr_accessor :files_license_info
2857
+
2858
+ # Provide a place for the SPDX file creator to record a web site that serves as
2859
+ # the package's home page
2860
+ # Corresponds to the JSON property `homePage`
2861
+ # @return [String]
2862
+ attr_accessor :home_page
2863
+
2864
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
2865
+ # 315-declared-license
2866
+ # Corresponds to the JSON property `licenseDeclared`
2867
+ # @return [Google::Apis::ContaineranalysisV1beta1::License]
2868
+ attr_accessor :license_declared
2869
+
2870
+ # If the package identified in the SPDX file originated from a different person
2871
+ # or organization than identified as Package Supplier, this field identifies
2872
+ # from where or whom the package originally came
2873
+ # Corresponds to the JSON property `originator`
2874
+ # @return [String]
2875
+ attr_accessor :originator
2876
+
2877
+ # The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
2878
+ # Corresponds to the JSON property `packageType`
2879
+ # @return [String]
2880
+ attr_accessor :package_type
2881
+
2882
+ # A short description of the package
2883
+ # Corresponds to the JSON property `summaryDescription`
2884
+ # @return [String]
2885
+ attr_accessor :summary_description
2886
+
2887
+ # Identify the actual distribution source for the package/directory identified
2888
+ # in the SPDX file
2889
+ # Corresponds to the JSON property `supplier`
2890
+ # @return [String]
2891
+ attr_accessor :supplier
2892
+
2893
+ # Identify the full name of the package as given by the Package Originator
2894
+ # Corresponds to the JSON property `title`
2895
+ # @return [String]
2896
+ attr_accessor :title
2897
+
2898
+ # This field provides an independently reproducible mechanism identifying
2899
+ # specific contents of a package based on the actual files (except the SPDX file
2900
+ # itself, if it is included in the package) that make up each package and that
2901
+ # correlates to the data in this SPDX file
2902
+ # Corresponds to the JSON property `verificationCode`
2903
+ # @return [String]
2904
+ attr_accessor :verification_code
2905
+
2906
+ # Identify the version of the package
2907
+ # Corresponds to the JSON property `version`
2908
+ # @return [String]
2909
+ attr_accessor :version
2910
+
2911
+ def initialize(**args)
2912
+ update!(**args)
2913
+ end
2914
+
2915
+ # Update properties of this object
2916
+ def update!(**args)
2917
+ @analyzed = args[:analyzed] if args.key?(:analyzed)
2918
+ @attribution = args[:attribution] if args.key?(:attribution)
2919
+ @checksum = args[:checksum] if args.key?(:checksum)
2920
+ @copyright = args[:copyright] if args.key?(:copyright)
2921
+ @detailed_description = args[:detailed_description] if args.key?(:detailed_description)
2922
+ @download_location = args[:download_location] if args.key?(:download_location)
2923
+ @external_refs = args[:external_refs] if args.key?(:external_refs)
2924
+ @files_license_info = args[:files_license_info] if args.key?(:files_license_info)
2925
+ @home_page = args[:home_page] if args.key?(:home_page)
2926
+ @license_declared = args[:license_declared] if args.key?(:license_declared)
2927
+ @originator = args[:originator] if args.key?(:originator)
2928
+ @package_type = args[:package_type] if args.key?(:package_type)
2929
+ @summary_description = args[:summary_description] if args.key?(:summary_description)
2930
+ @supplier = args[:supplier] if args.key?(:supplier)
2931
+ @title = args[:title] if args.key?(:title)
2932
+ @verification_code = args[:verification_code] if args.key?(:verification_code)
2933
+ @version = args[:version] if args.key?(:version)
2934
+ end
2935
+ end
2936
+
2937
+ # PackageInfoOccurrence represents an SPDX Package Information section: https://
2938
+ # spdx.github.io/spdx-spec/3-package-information/
2939
+ class PackageInfoOccurrence
2940
+ include Google::Apis::Core::Hashable
2941
+
2942
+ # A place for the SPDX file creator to record any general comments about the
2943
+ # package being described
2944
+ # Corresponds to the JSON property `comment`
2945
+ # @return [String]
2946
+ attr_accessor :comment
2947
+
2948
+ # Provide the actual file name of the package, or path of the directory being
2949
+ # treated as a package
2950
+ # Corresponds to the JSON property `filename`
2951
+ # @return [String]
2952
+ attr_accessor :filename
2953
+
2954
+ # Output only. Provide a place for the SPDX file creator to record a web site
2955
+ # that serves as the package's home page
2956
+ # Corresponds to the JSON property `homePage`
2957
+ # @return [String]
2958
+ attr_accessor :home_page
2959
+
2960
+ # Uniquely identify any element in an SPDX document which may be referenced by
2961
+ # other elements
2962
+ # Corresponds to the JSON property `id`
2963
+ # @return [String]
2964
+ attr_accessor :id
2965
+
2966
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
2967
+ # 315-declared-license
2968
+ # Corresponds to the JSON property `licenseConcluded`
2969
+ # @return [Google::Apis::ContaineranalysisV1beta1::License]
2970
+ attr_accessor :license_concluded
2971
+
2972
+ # Output only. The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
2973
+ # Corresponds to the JSON property `packageType`
2974
+ # @return [String]
2975
+ attr_accessor :package_type
2976
+
2977
+ # Provide a place for the SPDX file creator to record any relevant background
2978
+ # information or additional comments about the origin of the package
2979
+ # Corresponds to the JSON property `sourceInfo`
2980
+ # @return [String]
2981
+ attr_accessor :source_info
2982
+
2983
+ # Output only. A short description of the package
2984
+ # Corresponds to the JSON property `summaryDescription`
2985
+ # @return [String]
2986
+ attr_accessor :summary_description
2987
+
2988
+ # Output only. Identify the full name of the package as given by the Package
2989
+ # Originator
2990
+ # Corresponds to the JSON property `title`
2991
+ # @return [String]
2992
+ attr_accessor :title
2993
+
2994
+ # Output only. Identify the version of the package
2995
+ # Corresponds to the JSON property `version`
2996
+ # @return [String]
2997
+ attr_accessor :version
2998
+
2999
+ def initialize(**args)
3000
+ update!(**args)
3001
+ end
3002
+
3003
+ # Update properties of this object
3004
+ def update!(**args)
3005
+ @comment = args[:comment] if args.key?(:comment)
3006
+ @filename = args[:filename] if args.key?(:filename)
3007
+ @home_page = args[:home_page] if args.key?(:home_page)
3008
+ @id = args[:id] if args.key?(:id)
3009
+ @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
3010
+ @package_type = args[:package_type] if args.key?(:package_type)
3011
+ @source_info = args[:source_info] if args.key?(:source_info)
3012
+ @summary_description = args[:summary_description] if args.key?(:summary_description)
3013
+ @title = args[:title] if args.key?(:title)
3014
+ @version = args[:version] if args.key?(:version)
3015
+ end
3016
+ end
3017
+
2329
3018
  # This message wraps a location affected by a vulnerability and its associated
2330
3019
  # fix (if one is available).
2331
3020
  class PackageIssue
@@ -2336,11 +3025,23 @@ module Google
2336
3025
  # @return [Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation]
2337
3026
  attr_accessor :affected_location
2338
3027
 
3028
+ # Output only. The distro or language system assigned severity for this
3029
+ # vulnerability when that is available and note provider assigned severity when
3030
+ # it is not available.
3031
+ # Corresponds to the JSON property `effectiveSeverity`
3032
+ # @return [String]
3033
+ attr_accessor :effective_severity
3034
+
2339
3035
  # The location of the vulnerability.
2340
3036
  # Corresponds to the JSON property `fixedLocation`
2341
3037
  # @return [Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation]
2342
3038
  attr_accessor :fixed_location
2343
3039
 
3040
+ # The type of package (e.g. OS, MAVEN, GO).
3041
+ # Corresponds to the JSON property `packageType`
3042
+ # @return [String]
3043
+ attr_accessor :package_type
3044
+
2344
3045
  # Deprecated, use Details.effective_severity instead The severity (e.g., distro
2345
3046
  # assigned severity) for this vulnerability.
2346
3047
  # Corresponds to the JSON property `severityName`
@@ -2354,7 +3055,9 @@ module Google
2354
3055
  # Update properties of this object
2355
3056
  def update!(**args)
2356
3057
  @affected_location = args[:affected_location] if args.key?(:affected_location)
3058
+ @effective_severity = args[:effective_severity] if args.key?(:effective_severity)
2357
3059
  @fixed_location = args[:fixed_location] if args.key?(:fixed_location)
3060
+ @package_type = args[:package_type] if args.key?(:package_type)
2358
3061
  @severity_name = args[:severity_name] if args.key?(:severity_name)
2359
3062
  end
2360
3063
  end
@@ -2414,37 +3117,42 @@ module Google
2414
3117
 
2415
3118
  # An Identity and Access Management (IAM) policy, which specifies access
2416
3119
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2417
- # A `binding` binds one or more `members` to a single `role`. Members can be
2418
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2419
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2420
- # role or a user-created custom role. For some types of Google Cloud resources,
2421
- # a `binding` can also specify a `condition`, which is a logical expression that
2422
- # allows access to a resource only if the expression evaluates to `true`. A
2423
- # condition can add constraints based on attributes of the request, the resource,
2424
- # or both. To learn which resources support conditions in their IAM policies,
2425
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2426
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2427
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2428
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2429
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2430
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2431
- # title": "expirable access", "description": "Does not grant access after Sep
2432
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2433
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2434
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2435
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2436
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2437
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2438
- # description: Does not grant access after Sep 2020 expression: request.time <
2439
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
2440
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2441
- # google.com/iam/docs/).
3120
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
3121
+ # Principals can be user accounts, service accounts, Google groups, and domains (
3122
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
3123
+ # an IAM predefined role or a user-created custom role. For some types of Google
3124
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
3125
+ # logical expression that allows access to a resource only if the expression
3126
+ # evaluates to `true`. A condition can add constraints based on attributes of
3127
+ # the request, the resource, or both. To learn which resources support
3128
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
3129
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
3130
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
3131
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
3132
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
3133
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
3134
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
3135
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
3136
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
3137
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
3138
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
3139
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
3140
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
3141
+ # access description: Does not grant access after Sep 2020 expression: request.
3142
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
3143
+ # a description of IAM and its features, see the [IAM documentation](https://
3144
+ # cloud.google.com/iam/docs/).
2442
3145
  class Policy
2443
3146
  include Google::Apis::Core::Hashable
2444
3147
 
2445
- # Associates a list of `members` to a `role`. Optionally, may specify a `
2446
- # condition` that determines how and when the `bindings` are applied. Each of
2447
- # the `bindings` must contain at least one member.
3148
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
3149
+ # specify a `condition` that determines how and when the `bindings` are applied.
3150
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
3151
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
3152
+ # can be Google groups. Each occurrence of a principal counts towards these
3153
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
3154
+ # example.com`, and not to any other principal, then you can add another 1,450
3155
+ # principals to the `bindings` in the `Policy`.
2448
3156
  # Corresponds to the JSON property `bindings`
2449
3157
  # @return [Array<Google::Apis::ContaineranalysisV1beta1::Binding>]
2450
3158
  attr_accessor :bindings
@@ -2547,6 +3255,70 @@ module Google
2547
3255
  end
2548
3256
  end
2549
3257
 
3258
+ # RelationshipNote represents an SPDX Relationship section: https://spdx.github.
3259
+ # io/spdx-spec/7-relationships-between-SPDX-elements/
3260
+ class RelationshipNote
3261
+ include Google::Apis::Core::Hashable
3262
+
3263
+ # The type of relationship between the source and target SPDX elements
3264
+ # Corresponds to the JSON property `type`
3265
+ # @return [String]
3266
+ attr_accessor :type
3267
+
3268
+ def initialize(**args)
3269
+ update!(**args)
3270
+ end
3271
+
3272
+ # Update properties of this object
3273
+ def update!(**args)
3274
+ @type = args[:type] if args.key?(:type)
3275
+ end
3276
+ end
3277
+
3278
+ # RelationshipOccurrence represents an SPDX Relationship section: https://spdx.
3279
+ # github.io/spdx-spec/7-relationships-between-SPDX-elements/
3280
+ class RelationshipOccurrence
3281
+ include Google::Apis::Core::Hashable
3282
+
3283
+ # A place for the SPDX file creator to record any general comments about the
3284
+ # relationship
3285
+ # Corresponds to the JSON property `comment`
3286
+ # @return [String]
3287
+ attr_accessor :comment
3288
+
3289
+ # Also referred to as SPDXRef-A The source SPDX element (file, package, etc)
3290
+ # Corresponds to the JSON property `source`
3291
+ # @return [String]
3292
+ attr_accessor :source
3293
+
3294
+ # Also referred to as SPDXRef-B The target SPDC element (file, package, etc) In
3295
+ # cases where there are "known unknowns", the use of the keyword NOASSERTION can
3296
+ # be used The keywords NONE can be used to indicate that an SPDX element (
3297
+ # package/file/snippet) has no other elements connected by some relationship to
3298
+ # it
3299
+ # Corresponds to the JSON property `target`
3300
+ # @return [String]
3301
+ attr_accessor :target
3302
+
3303
+ # Output only. The type of relationship between the source and target SPDX
3304
+ # elements
3305
+ # Corresponds to the JSON property `type`
3306
+ # @return [String]
3307
+ attr_accessor :type
3308
+
3309
+ def initialize(**args)
3310
+ update!(**args)
3311
+ end
3312
+
3313
+ # Update properties of this object
3314
+ def update!(**args)
3315
+ @comment = args[:comment] if args.key?(:comment)
3316
+ @source = args[:source] if args.key?(:source)
3317
+ @target = args[:target] if args.key?(:target)
3318
+ @type = args[:type] if args.key?(:type)
3319
+ end
3320
+ end
3321
+
2550
3322
  # A unique identifier for a Cloud Repo.
2551
3323
  class RepoId
2552
3324
  include Google::Apis::Core::Hashable
@@ -2659,31 +3431,31 @@ module Google
2659
3431
 
2660
3432
  # An Identity and Access Management (IAM) policy, which specifies access
2661
3433
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2662
- # A `binding` binds one or more `members` to a single `role`. Members can be
2663
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2664
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2665
- # role or a user-created custom role. For some types of Google Cloud resources,
2666
- # a `binding` can also specify a `condition`, which is a logical expression that
2667
- # allows access to a resource only if the expression evaluates to `true`. A
2668
- # condition can add constraints based on attributes of the request, the resource,
2669
- # or both. To learn which resources support conditions in their IAM policies,
2670
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2671
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2672
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2673
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2674
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2675
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2676
- # title": "expirable access", "description": "Does not grant access after Sep
2677
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2678
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2679
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2680
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2681
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2682
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2683
- # description: Does not grant access after Sep 2020 expression: request.time <
2684
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
2685
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2686
- # google.com/iam/docs/).
3434
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
3435
+ # Principals can be user accounts, service accounts, Google groups, and domains (
3436
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
3437
+ # an IAM predefined role or a user-created custom role. For some types of Google
3438
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
3439
+ # logical expression that allows access to a resource only if the expression
3440
+ # evaluates to `true`. A condition can add constraints based on attributes of
3441
+ # the request, the resource, or both. To learn which resources support
3442
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
3443
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
3444
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
3445
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
3446
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
3447
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
3448
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
3449
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
3450
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
3451
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
3452
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
3453
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
3454
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
3455
+ # access description: Does not grant access after Sep 2020 expression: request.
3456
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
3457
+ # a description of IAM and its features, see the [IAM documentation](https://
3458
+ # cloud.google.com/iam/docs/).
2687
3459
  # Corresponds to the JSON property `policy`
2688
3460
  # @return [Google::Apis::ContaineranalysisV1beta1::Policy]
2689
3461
  attr_accessor :policy
@@ -2962,6 +3734,31 @@ module Google
2962
3734
  end
2963
3735
  end
2964
3736
 
3737
+ # Start and end times for a build execution phase.
3738
+ class TimeSpan
3739
+ include Google::Apis::Core::Hashable
3740
+
3741
+ # End of time span.
3742
+ # Corresponds to the JSON property `endTime`
3743
+ # @return [String]
3744
+ attr_accessor :end_time
3745
+
3746
+ # Start of time span.
3747
+ # Corresponds to the JSON property `startTime`
3748
+ # @return [String]
3749
+ attr_accessor :start_time
3750
+
3751
+ def initialize(**args)
3752
+ update!(**args)
3753
+ end
3754
+
3755
+ # Update properties of this object
3756
+ def update!(**args)
3757
+ @end_time = args[:end_time] if args.key?(:end_time)
3758
+ @start_time = args[:start_time] if args.key?(:start_time)
3759
+ end
3760
+ end
3761
+
2965
3762
  # Version contains structured information about the version of a package.
2966
3763
  class Version
2967
3764
  include Google::Apis::Core::Hashable
@@ -3011,6 +3808,36 @@ module Google
3011
3808
  end
3012
3809
  end
3013
3810
 
3811
+ # Volume describes a Docker container volume which is mounted into build steps
3812
+ # in order to persist files across build step execution.
3813
+ class Volume
3814
+ include Google::Apis::Core::Hashable
3815
+
3816
+ # Name of the volume to mount. Volume names must be unique per build step and
3817
+ # must be valid names for Docker volumes. Each named volume must be used by at
3818
+ # least two build steps.
3819
+ # Corresponds to the JSON property `name`
3820
+ # @return [String]
3821
+ attr_accessor :name
3822
+
3823
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
3824
+ # with other volume paths on the same build step or with certain reserved volume
3825
+ # paths.
3826
+ # Corresponds to the JSON property `path`
3827
+ # @return [String]
3828
+ attr_accessor :path
3829
+
3830
+ def initialize(**args)
3831
+ update!(**args)
3832
+ end
3833
+
3834
+ # Update properties of this object
3835
+ def update!(**args)
3836
+ @name = args[:name] if args.key?(:name)
3837
+ @path = args[:path] if args.key?(:path)
3838
+ end
3839
+ end
3840
+
3014
3841
  # Vulnerability provides metadata about a security vulnerability in a Note.
3015
3842
  class Vulnerability
3016
3843
  include Google::Apis::Core::Hashable