google-apis-containeranalysis_v1alpha1 0.16.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -259,11 +259,19 @@ module Google
259
259
  class BuildDetails
260
260
  include Google::Apis::Core::Hashable
261
261
 
262
- # In-toto Provenance representation as defined in spec.
262
+ # Deprecated. See InTotoStatement for the replacement. In-toto Provenance
263
+ # representation as defined in spec.
263
264
  # Corresponds to the JSON property `intotoProvenance`
264
265
  # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoProvenance]
265
266
  attr_accessor :intoto_provenance
266
267
 
268
+ # Spec defined at https://github.com/in-toto/attestation/tree/main/spec#
269
+ # statement The serialized InTotoStatement will be stored as Envelope.payload.
270
+ # Envelope.payloadType is always "application/vnd.in-toto+json".
271
+ # Corresponds to the JSON property `intotoStatement`
272
+ # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoStatement]
273
+ attr_accessor :intoto_statement
274
+
267
275
  # Provenance of a build. Contains all information needed to verify the full
268
276
  # details about the build from source to completion.
269
277
  # Corresponds to the JSON property `provenance`
@@ -289,6 +297,7 @@ module Google
289
297
  # Update properties of this object
290
298
  def update!(**args)
291
299
  @intoto_provenance = args[:intoto_provenance] if args.key?(:intoto_provenance)
300
+ @intoto_statement = args[:intoto_statement] if args.key?(:intoto_statement)
292
301
  @provenance = args[:provenance] if args.key?(:provenance)
293
302
  @provenance_bytes = args[:provenance_bytes] if args.key?(:provenance_bytes)
294
303
  end
@@ -438,114 +447,197 @@ module Google
438
447
  end
439
448
  end
440
449
 
441
- # A step in the build pipeline.
442
- class BuildStep
450
+ # Note holding the version of the provider's builder and the signature of the
451
+ # provenance message in linked BuildDetails.
452
+ class BuildType
443
453
  include Google::Apis::Core::Hashable
444
454
 
445
- # A list of arguments that will be presented to the step when it is started. If
446
- # the image used to run the step's container has an entrypoint, the `args` are
447
- # used as arguments to that entrypoint. If the image does not define an
448
- # entrypoint, the first element in args is used as the entrypoint, and the
449
- # remainder will be used as arguments.
450
- # Corresponds to the JSON property `args`
451
- # @return [Array<String>]
452
- attr_accessor :args
453
-
454
- # Working directory to use when running this step's container. If this value is
455
- # a relative path, it is relative to the build's working directory. If this
456
- # value is absolute, it may be outside the build's working directory, in which
457
- # case the contents of the path may not be persisted across build step
458
- # executions, unless a `volume` for that path is specified. If the build
459
- # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
460
- # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
461
- # Corresponds to the JSON property `dir`
455
+ # Version of the builder which produced this Note.
456
+ # Corresponds to the JSON property `builderVersion`
462
457
  # @return [String]
463
- attr_accessor :dir
458
+ attr_accessor :builder_version
464
459
 
465
- # Entrypoint to be used instead of the build step image's default entrypoint. If
466
- # unset, the image's default entrypoint is used.
467
- # Corresponds to the JSON property `entrypoint`
468
- # @return [String]
469
- attr_accessor :entrypoint
460
+ # Message encapsulating the signature of the verified build.
461
+ # Corresponds to the JSON property `signature`
462
+ # @return [Google::Apis::ContaineranalysisV1alpha1::BuildSignature]
463
+ attr_accessor :signature
470
464
 
471
- # A list of environment variable definitions to be used when running a step. The
472
- # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
473
- # given the value "VALUE".
474
- # Corresponds to the JSON property `env`
475
- # @return [Array<String>]
476
- attr_accessor :env
465
+ def initialize(**args)
466
+ update!(**args)
467
+ end
477
468
 
478
- # Unique identifier for this build step, used in `wait_for` to reference this
479
- # build step as a dependency.
469
+ # Update properties of this object
470
+ def update!(**args)
471
+ @builder_version = args[:builder_version] if args.key?(:builder_version)
472
+ @signature = args[:signature] if args.key?(:signature)
473
+ end
474
+ end
475
+
476
+ #
477
+ class BuilderConfig
478
+ include Google::Apis::Core::Hashable
479
+
480
+ #
480
481
  # Corresponds to the JSON property `id`
481
482
  # @return [String]
482
483
  attr_accessor :id
483
484
 
484
- # Required. The name of the container image that will run this particular build
485
- # step. If the image is available in the host's Docker daemon's cache, it will
486
- # be run directly. If not, the host will attempt to pull the image first, using
487
- # the builder service account's credentials if necessary. The Docker daemon's
488
- # cache will already have the latest versions of all of the officially supported
489
- # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
490
- # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
491
- # have cached many of the layers for some popular images, like "ubuntu", "debian"
492
- # , but they will be refreshed at the time you attempt to use them. If you built
493
- # an image in a previous build step, it will be stored in the host's Docker
494
- # daemon's cache and is available to use as the name for a later build step.
495
- # Corresponds to the JSON property `name`
485
+ def initialize(**args)
486
+ update!(**args)
487
+ end
488
+
489
+ # Update properties of this object
490
+ def update!(**args)
491
+ @id = args[:id] if args.key?(:id)
492
+ end
493
+ end
494
+
495
+ # Common Vulnerability Scoring System. This is the storage level proto that is
496
+ # intended to store similar data as the CVSS proto in google3/third_party/
497
+ # grafeas/proto/v1/cvss.proto
498
+ class Cvss
499
+ include Google::Apis::Core::Hashable
500
+
501
+ #
502
+ # Corresponds to the JSON property `attackComplexity`
496
503
  # @return [String]
497
- attr_accessor :name
504
+ attr_accessor :attack_complexity
498
505
 
499
- # Start and end times for a build execution phase.
500
- # Corresponds to the JSON property `pullTiming`
501
- # @return [Google::Apis::ContaineranalysisV1alpha1::TimeSpan]
502
- attr_accessor :pull_timing
506
+ # Base Metrics Represents the intrinsic characteristics of a vulnerability that
507
+ # are constant over time and across user environments.
508
+ # Corresponds to the JSON property `attackVector`
509
+ # @return [String]
510
+ attr_accessor :attack_vector
503
511
 
504
- # A shell script to be executed in the step. When script is provided, the user
505
- # cannot specify the entrypoint or args.
506
- # Corresponds to the JSON property `script`
512
+ #
513
+ # Corresponds to the JSON property `authentication`
507
514
  # @return [String]
508
- attr_accessor :script
515
+ attr_accessor :authentication
509
516
 
510
- # A list of environment variables which are encrypted using a Cloud Key
511
- # Management Service crypto key. These values must be specified in the build's `
512
- # Secret`.
513
- # Corresponds to the JSON property `secretEnv`
514
- # @return [Array<String>]
515
- attr_accessor :secret_env
517
+ #
518
+ # Corresponds to the JSON property `availabilityImpact`
519
+ # @return [String]
520
+ attr_accessor :availability_impact
516
521
 
517
- # Output only. Status of the build step. At this time, build step status is only
518
- # updated on build completion; step status is not updated in real-time as the
519
- # build progresses.
520
- # Corresponds to the JSON property `status`
522
+ # The base score is a function of the base metric scores.
523
+ # Corresponds to the JSON property `baseScore`
524
+ # @return [Float]
525
+ attr_accessor :base_score
526
+
527
+ #
528
+ # Corresponds to the JSON property `confidentialityImpact`
521
529
  # @return [String]
522
- attr_accessor :status
530
+ attr_accessor :confidentiality_impact
523
531
 
524
- # Time limit for executing this build step. If not defined, the step has no time
525
- # limit and will be allowed to continue to run until either it completes or the
526
- # build itself times out.
527
- # Corresponds to the JSON property `timeout`
532
+ #
533
+ # Corresponds to the JSON property `exploitabilityScore`
534
+ # @return [Float]
535
+ attr_accessor :exploitability_score
536
+
537
+ #
538
+ # Corresponds to the JSON property `impactScore`
539
+ # @return [Float]
540
+ attr_accessor :impact_score
541
+
542
+ #
543
+ # Corresponds to the JSON property `integrityImpact`
528
544
  # @return [String]
529
- attr_accessor :timeout
545
+ attr_accessor :integrity_impact
530
546
 
531
- # Start and end times for a build execution phase.
532
- # Corresponds to the JSON property `timing`
533
- # @return [Google::Apis::ContaineranalysisV1alpha1::TimeSpan]
534
- attr_accessor :timing
547
+ #
548
+ # Corresponds to the JSON property `privilegesRequired`
549
+ # @return [String]
550
+ attr_accessor :privileges_required
535
551
 
536
- # List of volumes to mount into the build step. Each volume is created as an
537
- # empty volume prior to execution of the build step. Upon completion of the
538
- # build, volumes and their contents are discarded. Using a named volume in only
539
- # one step is not valid as it is indicative of a build request with an incorrect
540
- # configuration.
541
- # Corresponds to the JSON property `volumes`
542
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Volume>]
543
- attr_accessor :volumes
552
+ #
553
+ # Corresponds to the JSON property `scope`
554
+ # @return [String]
555
+ attr_accessor :scope
544
556
 
545
- # The ID(s) of the step(s) that this build step depends on. This build step will
546
- # not start until all the build steps in `wait_for` have completed successfully.
547
- # If `wait_for` is empty, this build step will start when all previous build
548
- # steps in the `Build.Steps` list have completed successfully.
557
+ #
558
+ # Corresponds to the JSON property `userInteraction`
559
+ # @return [String]
560
+ attr_accessor :user_interaction
561
+
562
+ def initialize(**args)
563
+ update!(**args)
564
+ end
565
+
566
+ # Update properties of this object
567
+ def update!(**args)
568
+ @attack_complexity = args[:attack_complexity] if args.key?(:attack_complexity)
569
+ @attack_vector = args[:attack_vector] if args.key?(:attack_vector)
570
+ @authentication = args[:authentication] if args.key?(:authentication)
571
+ @availability_impact = args[:availability_impact] if args.key?(:availability_impact)
572
+ @base_score = args[:base_score] if args.key?(:base_score)
573
+ @confidentiality_impact = args[:confidentiality_impact] if args.key?(:confidentiality_impact)
574
+ @exploitability_score = args[:exploitability_score] if args.key?(:exploitability_score)
575
+ @impact_score = args[:impact_score] if args.key?(:impact_score)
576
+ @integrity_impact = args[:integrity_impact] if args.key?(:integrity_impact)
577
+ @privileges_required = args[:privileges_required] if args.key?(:privileges_required)
578
+ @scope = args[:scope] if args.key?(:scope)
579
+ @user_interaction = args[:user_interaction] if args.key?(:user_interaction)
580
+ end
581
+ end
582
+
583
+ # A compliance check that is a CIS benchmark.
584
+ class CisBenchmark
585
+ include Google::Apis::Core::Hashable
586
+
587
+ # The profile level of this CIS benchmark check.
588
+ # Corresponds to the JSON property `profileLevel`
589
+ # @return [Fixnum]
590
+ attr_accessor :profile_level
591
+
592
+ # The severity level of this CIS benchmark check.
593
+ # Corresponds to the JSON property `severity`
594
+ # @return [String]
595
+ attr_accessor :severity
596
+
597
+ def initialize(**args)
598
+ update!(**args)
599
+ end
600
+
601
+ # Update properties of this object
602
+ def update!(**args)
603
+ @profile_level = args[:profile_level] if args.key?(:profile_level)
604
+ @severity = args[:severity] if args.key?(:severity)
605
+ end
606
+ end
607
+
608
+ # Command describes a step performed as part of the build pipeline.
609
+ class Command
610
+ include Google::Apis::Core::Hashable
611
+
612
+ # Command-line arguments used when executing this Command.
613
+ # Corresponds to the JSON property `args`
614
+ # @return [Array<String>]
615
+ attr_accessor :args
616
+
617
+ # Working directory (relative to project source root) used when running this
618
+ # Command.
619
+ # Corresponds to the JSON property `dir`
620
+ # @return [String]
621
+ attr_accessor :dir
622
+
623
+ # Environment variables set before running this Command.
624
+ # Corresponds to the JSON property `env`
625
+ # @return [Array<String>]
626
+ attr_accessor :env
627
+
628
+ # Optional unique identifier for this Command, used in wait_for to reference
629
+ # this Command as a dependency.
630
+ # Corresponds to the JSON property `id`
631
+ # @return [String]
632
+ attr_accessor :id
633
+
634
+ # Name of the command, as presented on the command line, or if the command is
635
+ # packaged as a Docker container, as presented to `docker pull`.
636
+ # Corresponds to the JSON property `name`
637
+ # @return [String]
638
+ attr_accessor :name
639
+
640
+ # The ID(s) of the Command(s) that this Command depends on.
549
641
  # Corresponds to the JSON property `waitFor`
550
642
  # @return [Array<String>]
551
643
  attr_accessor :wait_for
@@ -558,35 +650,1125 @@ module Google
558
650
  def update!(**args)
559
651
  @args = args[:args] if args.key?(:args)
560
652
  @dir = args[:dir] if args.key?(:dir)
561
- @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
562
653
  @env = args[:env] if args.key?(:env)
563
654
  @id = args[:id] if args.key?(:id)
564
655
  @name = args[:name] if args.key?(:name)
565
- @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
566
- @script = args[:script] if args.key?(:script)
567
- @secret_env = args[:secret_env] if args.key?(:secret_env)
568
- @status = args[:status] if args.key?(:status)
569
- @timeout = args[:timeout] if args.key?(:timeout)
570
- @timing = args[:timing] if args.key?(:timing)
571
- @volumes = args[:volumes] if args.key?(:volumes)
572
656
  @wait_for = args[:wait_for] if args.key?(:wait_for)
573
657
  end
574
658
  end
575
659
 
576
- # Note holding the version of the provider's builder and the signature of the
577
- # provenance message in linked BuildDetails.
578
- class BuildType
660
+ # Indicates that the builder claims certain fields in this message to be
661
+ # complete.
662
+ class Completeness
579
663
  include Google::Apis::Core::Hashable
580
664
 
581
- # Version of the builder which produced this Note.
582
- # Corresponds to the JSON property `builderVersion`
583
- # @return [String]
584
- attr_accessor :builder_version
665
+ # If true, the builder claims that recipe.arguments is complete, meaning that
666
+ # all external inputs are properly captured in the recipe.
667
+ # Corresponds to the JSON property `arguments`
668
+ # @return [Boolean]
669
+ attr_accessor :arguments
670
+ alias_method :arguments?, :arguments
585
671
 
586
- # Message encapsulating the signature of the verified build.
587
- # Corresponds to the JSON property `signature`
588
- # @return [Google::Apis::ContaineranalysisV1alpha1::BuildSignature]
589
- attr_accessor :signature
672
+ # If true, the builder claims that recipe.environment is claimed to be complete.
673
+ # Corresponds to the JSON property `environment`
674
+ # @return [Boolean]
675
+ attr_accessor :environment
676
+ alias_method :environment?, :environment
677
+
678
+ # If true, the builder claims that materials are complete, usually through some
679
+ # controls to prevent network access. Sometimes called "hermetic".
680
+ # Corresponds to the JSON property `materials`
681
+ # @return [Boolean]
682
+ attr_accessor :materials
683
+ alias_method :materials?, :materials
684
+
685
+ def initialize(**args)
686
+ update!(**args)
687
+ end
688
+
689
+ # Update properties of this object
690
+ def update!(**args)
691
+ @arguments = args[:arguments] if args.key?(:arguments)
692
+ @environment = args[:environment] if args.key?(:environment)
693
+ @materials = args[:materials] if args.key?(:materials)
694
+ end
695
+ end
696
+
697
+ # ComplianceNote encapsulates all information about a specific compliance check.
698
+ class ComplianceNote
699
+ include Google::Apis::Core::Hashable
700
+
701
+ # A compliance check that is a CIS benchmark.
702
+ # Corresponds to the JSON property `cisBenchmark`
703
+ # @return [Google::Apis::ContaineranalysisV1alpha1::CisBenchmark]
704
+ attr_accessor :cis_benchmark
705
+
706
+ # A description about this compliance check.
707
+ # Corresponds to the JSON property `description`
708
+ # @return [String]
709
+ attr_accessor :description
710
+
711
+ # A rationale for the existence of this compliance check.
712
+ # Corresponds to the JSON property `rationale`
713
+ # @return [String]
714
+ attr_accessor :rationale
715
+
716
+ # A description of remediation steps if the compliance check fails.
717
+ # Corresponds to the JSON property `remediation`
718
+ # @return [String]
719
+ attr_accessor :remediation
720
+
721
+ # Serialized scan instructions with a predefined format.
722
+ # Corresponds to the JSON property `scanInstructions`
723
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
724
+ # @return [String]
725
+ attr_accessor :scan_instructions
726
+
727
+ # The title that identifies this compliance check.
728
+ # Corresponds to the JSON property `title`
729
+ # @return [String]
730
+ attr_accessor :title
731
+
732
+ # The OS and config versions the benchmark applies to.
733
+ # Corresponds to the JSON property `version`
734
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ComplianceVersion>]
735
+ attr_accessor :version
736
+
737
+ def initialize(**args)
738
+ update!(**args)
739
+ end
740
+
741
+ # Update properties of this object
742
+ def update!(**args)
743
+ @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
744
+ @description = args[:description] if args.key?(:description)
745
+ @rationale = args[:rationale] if args.key?(:rationale)
746
+ @remediation = args[:remediation] if args.key?(:remediation)
747
+ @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
748
+ @title = args[:title] if args.key?(:title)
749
+ @version = args[:version] if args.key?(:version)
750
+ end
751
+ end
752
+
753
+ # An indication that the compliance checks in the associated ComplianceNote were
754
+ # not satisfied for particular resources or a specified reason.
755
+ class ComplianceOccurrence
756
+ include Google::Apis::Core::Hashable
757
+
758
+ # The reason for non compliance of these files.
759
+ # Corresponds to the JSON property `nonComplianceReason`
760
+ # @return [String]
761
+ attr_accessor :non_compliance_reason
762
+
763
+ # A list of files which are violating compliance checks.
764
+ # Corresponds to the JSON property `nonCompliantFiles`
765
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::NonCompliantFile>]
766
+ attr_accessor :non_compliant_files
767
+
768
+ def initialize(**args)
769
+ update!(**args)
770
+ end
771
+
772
+ # Update properties of this object
773
+ def update!(**args)
774
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
775
+ @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
776
+ end
777
+ end
778
+
779
+ # Describes the CIS benchmark version that is applicable to a given OS and os
780
+ # version.
781
+ class ComplianceVersion
782
+ include Google::Apis::Core::Hashable
783
+
784
+ # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
785
+ # applicable to.
786
+ # Corresponds to the JSON property `cpeUri`
787
+ # @return [String]
788
+ attr_accessor :cpe_uri
789
+
790
+ # The version of the benchmark. This is set to the version of the OS-specific
791
+ # CIS document the benchmark is defined in.
792
+ # Corresponds to the JSON property `version`
793
+ # @return [String]
794
+ attr_accessor :version
795
+
796
+ def initialize(**args)
797
+ update!(**args)
798
+ end
799
+
800
+ # Update properties of this object
801
+ def update!(**args)
802
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
803
+ @version = args[:version] if args.key?(:version)
804
+ end
805
+ end
806
+
807
+ # ApprovalConfig describes configuration for manual approval of a build.
808
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig
809
+ include Google::Apis::Core::Hashable
810
+
811
+ # Whether or not approval is needed. If this is set on a build, it will become
812
+ # pending when created, and will need to be explicitly approved to start.
813
+ # Corresponds to the JSON property `approvalRequired`
814
+ # @return [Boolean]
815
+ attr_accessor :approval_required
816
+ alias_method :approval_required?, :approval_required
817
+
818
+ def initialize(**args)
819
+ update!(**args)
820
+ end
821
+
822
+ # Update properties of this object
823
+ def update!(**args)
824
+ @approval_required = args[:approval_required] if args.key?(:approval_required)
825
+ end
826
+ end
827
+
828
+ # ApprovalResult describes the decision and associated metadata of a manual
829
+ # approval of a build.
830
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult
831
+ include Google::Apis::Core::Hashable
832
+
833
+ # Output only. The time when the approval decision was made.
834
+ # Corresponds to the JSON property `approvalTime`
835
+ # @return [String]
836
+ attr_accessor :approval_time
837
+
838
+ # Output only. Email of the user that called the ApproveBuild API to approve or
839
+ # reject a build at the time that the API was called.
840
+ # Corresponds to the JSON property `approverAccount`
841
+ # @return [String]
842
+ attr_accessor :approver_account
843
+
844
+ # Optional. An optional comment for this manual approval result.
845
+ # Corresponds to the JSON property `comment`
846
+ # @return [String]
847
+ attr_accessor :comment
848
+
849
+ # Required. The decision of this manual approval.
850
+ # Corresponds to the JSON property `decision`
851
+ # @return [String]
852
+ attr_accessor :decision
853
+
854
+ # Optional. An optional URL tied to this manual approval result. This field is
855
+ # essentially the same as comment, except that it will be rendered by the UI
856
+ # differently. An example use case is a link to an external job that approved
857
+ # this Build.
858
+ # Corresponds to the JSON property `url`
859
+ # @return [String]
860
+ attr_accessor :url
861
+
862
+ def initialize(**args)
863
+ update!(**args)
864
+ end
865
+
866
+ # Update properties of this object
867
+ def update!(**args)
868
+ @approval_time = args[:approval_time] if args.key?(:approval_time)
869
+ @approver_account = args[:approver_account] if args.key?(:approver_account)
870
+ @comment = args[:comment] if args.key?(:comment)
871
+ @decision = args[:decision] if args.key?(:decision)
872
+ @url = args[:url] if args.key?(:url)
873
+ end
874
+ end
875
+
876
+ # Artifacts produced by a build that should be uploaded upon successful
877
+ # completion of all build steps.
878
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts
879
+ include Google::Apis::Core::Hashable
880
+
881
+ # A list of images to be pushed upon the successful completion of all build
882
+ # steps. The images will be pushed using the builder service account's
883
+ # credentials. The digests of the pushed images will be stored in the Build
884
+ # resource's results field. If any of the images fail to be pushed, the build is
885
+ # marked FAILURE.
886
+ # Corresponds to the JSON property `images`
887
+ # @return [Array<String>]
888
+ attr_accessor :images
889
+
890
+ # Files in the workspace to upload to Cloud Storage upon successful completion
891
+ # of all build steps.
892
+ # Corresponds to the JSON property `objects`
893
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects]
894
+ attr_accessor :objects
895
+
896
+ def initialize(**args)
897
+ update!(**args)
898
+ end
899
+
900
+ # Update properties of this object
901
+ def update!(**args)
902
+ @images = args[:images] if args.key?(:images)
903
+ @objects = args[:objects] if args.key?(:objects)
904
+ end
905
+ end
906
+
907
+ # Files in the workspace to upload to Cloud Storage upon successful completion
908
+ # of all build steps.
909
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects
910
+ include Google::Apis::Core::Hashable
911
+
912
+ # Cloud Storage bucket and optional object path, in the form "gs://bucket/path/
913
+ # to/somewhere/". (see [Bucket Name Requirements](https://cloud.google.com/
914
+ # storage/docs/bucket-naming#requirements)). Files in the workspace matching any
915
+ # path pattern will be uploaded to Cloud Storage with this location as a prefix.
916
+ # Corresponds to the JSON property `location`
917
+ # @return [String]
918
+ attr_accessor :location
919
+
920
+ # Path globs used to match files in the build's workspace.
921
+ # Corresponds to the JSON property `paths`
922
+ # @return [Array<String>]
923
+ attr_accessor :paths
924
+
925
+ # Start and end times for a build execution phase.
926
+ # Corresponds to the JSON property `timing`
927
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
928
+ attr_accessor :timing
929
+
930
+ def initialize(**args)
931
+ update!(**args)
932
+ end
933
+
934
+ # Update properties of this object
935
+ def update!(**args)
936
+ @location = args[:location] if args.key?(:location)
937
+ @paths = args[:paths] if args.key?(:paths)
938
+ @timing = args[:timing] if args.key?(:timing)
939
+ end
940
+ end
941
+
942
+ # A build resource in the Cloud Build API. At a high level, a `Build` describes
943
+ # where to find source code, how to build it (for example, the builder image to
944
+ # run on the source), and where to store the built artifacts. Fields can include
945
+ # the following variables, which will be expanded when the build is created: - $
946
+ # PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number
947
+ # of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the
948
+ # autogenerated ID of the build. - $REPO_NAME: the source repository name
949
+ # specified by RepoSource. - $BRANCH_NAME: the branch name specified by
950
+ # RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID
951
+ # or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the
952
+ # specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $
953
+ # COMMIT_SHA.
954
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build
955
+ include Google::Apis::Core::Hashable
956
+
957
+ # BuildApproval describes a build's approval configuration, state, and result.
958
+ # Corresponds to the JSON property `approval`
959
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval]
960
+ attr_accessor :approval
961
+
962
+ # Artifacts produced by a build that should be uploaded upon successful
963
+ # completion of all build steps.
964
+ # Corresponds to the JSON property `artifacts`
965
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts]
966
+ attr_accessor :artifacts
967
+
968
+ # Secrets and secret environment variables.
969
+ # Corresponds to the JSON property `availableSecrets`
970
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets]
971
+ attr_accessor :available_secrets
972
+
973
+ # Output only. The ID of the `BuildTrigger` that triggered this build, if it was
974
+ # triggered automatically.
975
+ # Corresponds to the JSON property `buildTriggerId`
976
+ # @return [String]
977
+ attr_accessor :build_trigger_id
978
+
979
+ # Output only. Time at which the request to create the build was received.
980
+ # Corresponds to the JSON property `createTime`
981
+ # @return [String]
982
+ attr_accessor :create_time
983
+
984
+ # A fatal problem encountered during the execution of the build.
985
+ # Corresponds to the JSON property `failureInfo`
986
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo]
987
+ attr_accessor :failure_info
988
+
989
+ # Output only. Time at which execution of the build was finished. The difference
990
+ # between finish_time and start_time is the duration of the build's execution.
991
+ # Corresponds to the JSON property `finishTime`
992
+ # @return [String]
993
+ attr_accessor :finish_time
994
+
995
+ # Output only. Unique identifier of the build.
996
+ # Corresponds to the JSON property `id`
997
+ # @return [String]
998
+ attr_accessor :id
999
+
1000
+ # A list of images to be pushed upon the successful completion of all build
1001
+ # steps. The images are pushed using the builder service account's credentials.
1002
+ # The digests of the pushed images will be stored in the `Build` resource's
1003
+ # results field. If any of the images fail to be pushed, the build status is
1004
+ # marked `FAILURE`.
1005
+ # Corresponds to the JSON property `images`
1006
+ # @return [Array<String>]
1007
+ attr_accessor :images
1008
+
1009
+ # Output only. URL to logs for this build in Google Cloud Console.
1010
+ # Corresponds to the JSON property `logUrl`
1011
+ # @return [String]
1012
+ attr_accessor :log_url
1013
+
1014
+ # Google Cloud Storage bucket where logs should be written (see [Bucket Name
1015
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1016
+ # ). Logs file names will be of the format `$`logs_bucket`/log-$`build_id`.txt`.
1017
+ # Corresponds to the JSON property `logsBucket`
1018
+ # @return [String]
1019
+ attr_accessor :logs_bucket
1020
+
1021
+ # Output only. The 'Build' name with format: `projects/`project`/locations/`
1022
+ # location`/builds/`build``, where `build` is a unique identifier generated by
1023
+ # the service.
1024
+ # Corresponds to the JSON property `name`
1025
+ # @return [String]
1026
+ attr_accessor :name
1027
+
1028
+ # Optional arguments to enable specific features of builds.
1029
+ # Corresponds to the JSON property `options`
1030
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions]
1031
+ attr_accessor :options
1032
+
1033
+ # Output only. ID of the project.
1034
+ # Corresponds to the JSON property `projectId`
1035
+ # @return [String]
1036
+ attr_accessor :project_id
1037
+
1038
+ # TTL in queue for this build. If provided and the build is enqueued longer than
1039
+ # this value, the build will expire and the build status will be `EXPIRED`. The
1040
+ # TTL starts ticking from create_time.
1041
+ # Corresponds to the JSON property `queueTtl`
1042
+ # @return [String]
1043
+ attr_accessor :queue_ttl
1044
+
1045
+ # Artifacts created by the build pipeline.
1046
+ # Corresponds to the JSON property `results`
1047
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Results]
1048
+ attr_accessor :results
1049
+
1050
+ # Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is
1051
+ # the recommended technique for managing sensitive data with Cloud Build. Use `
1052
+ # available_secrets` to configure builds to access secrets from Secret Manager.
1053
+ # For instructions, see: https://cloud.google.com/cloud-build/docs/securing-
1054
+ # builds/use-secrets
1055
+ # Corresponds to the JSON property `secrets`
1056
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secret>]
1057
+ attr_accessor :secrets
1058
+
1059
+ # IAM service account whose credentials will be used at build runtime. Must be
1060
+ # of the format `projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT``. ACCOUNT can
1061
+ # be email address or uniqueId of the service account.
1062
+ # Corresponds to the JSON property `serviceAccount`
1063
+ # @return [String]
1064
+ attr_accessor :service_account
1065
+
1066
+ # Location of the source in a supported storage service.
1067
+ # Corresponds to the JSON property `source`
1068
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Source]
1069
+ attr_accessor :source
1070
+
1071
+ # Provenance of the source. Ways to find the original source, or verify that
1072
+ # some source was used for this build.
1073
+ # Corresponds to the JSON property `sourceProvenance`
1074
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance]
1075
+ attr_accessor :source_provenance
1076
+
1077
+ # Output only. Time at which execution of the build was started.
1078
+ # Corresponds to the JSON property `startTime`
1079
+ # @return [String]
1080
+ attr_accessor :start_time
1081
+
1082
+ # Output only. Status of the build.
1083
+ # Corresponds to the JSON property `status`
1084
+ # @return [String]
1085
+ attr_accessor :status
1086
+
1087
+ # Output only. Customer-readable message about the current status.
1088
+ # Corresponds to the JSON property `statusDetail`
1089
+ # @return [String]
1090
+ attr_accessor :status_detail
1091
+
1092
+ # Required. The operations to be performed on the workspace.
1093
+ # Corresponds to the JSON property `steps`
1094
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep>]
1095
+ attr_accessor :steps
1096
+
1097
+ # Substitutions data for `Build` resource.
1098
+ # Corresponds to the JSON property `substitutions`
1099
+ # @return [Hash<String,String>]
1100
+ attr_accessor :substitutions
1101
+
1102
+ # Tags for annotation of a `Build`. These are not docker tags.
1103
+ # Corresponds to the JSON property `tags`
1104
+ # @return [Array<String>]
1105
+ attr_accessor :tags
1106
+
1107
+ # Amount of time that this build should be allowed to run, to second granularity.
1108
+ # If this amount of time elapses, work on the build will cease and the build
1109
+ # status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default
1110
+ # time is ten minutes.
1111
+ # Corresponds to the JSON property `timeout`
1112
+ # @return [String]
1113
+ attr_accessor :timeout
1114
+
1115
+ # Output only. Stores timing information for phases of the build. Valid keys are:
1116
+ # * BUILD: time to execute all build steps. * PUSH: time to push all specified
1117
+ # images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up
1118
+ # build. If the build does not specify source or images, these keys will not be
1119
+ # included.
1120
+ # Corresponds to the JSON property `timing`
1121
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan>]
1122
+ attr_accessor :timing
1123
+
1124
+ # Output only. Non-fatal problems encountered during the execution of the build.
1125
+ # Corresponds to the JSON property `warnings`
1126
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning>]
1127
+ attr_accessor :warnings
1128
+
1129
+ def initialize(**args)
1130
+ update!(**args)
1131
+ end
1132
+
1133
+ # Update properties of this object
1134
+ def update!(**args)
1135
+ @approval = args[:approval] if args.key?(:approval)
1136
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1137
+ @available_secrets = args[:available_secrets] if args.key?(:available_secrets)
1138
+ @build_trigger_id = args[:build_trigger_id] if args.key?(:build_trigger_id)
1139
+ @create_time = args[:create_time] if args.key?(:create_time)
1140
+ @failure_info = args[:failure_info] if args.key?(:failure_info)
1141
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
1142
+ @id = args[:id] if args.key?(:id)
1143
+ @images = args[:images] if args.key?(:images)
1144
+ @log_url = args[:log_url] if args.key?(:log_url)
1145
+ @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket)
1146
+ @name = args[:name] if args.key?(:name)
1147
+ @options = args[:options] if args.key?(:options)
1148
+ @project_id = args[:project_id] if args.key?(:project_id)
1149
+ @queue_ttl = args[:queue_ttl] if args.key?(:queue_ttl)
1150
+ @results = args[:results] if args.key?(:results)
1151
+ @secrets = args[:secrets] if args.key?(:secrets)
1152
+ @service_account = args[:service_account] if args.key?(:service_account)
1153
+ @source = args[:source] if args.key?(:source)
1154
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
1155
+ @start_time = args[:start_time] if args.key?(:start_time)
1156
+ @status = args[:status] if args.key?(:status)
1157
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1158
+ @steps = args[:steps] if args.key?(:steps)
1159
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1160
+ @tags = args[:tags] if args.key?(:tags)
1161
+ @timeout = args[:timeout] if args.key?(:timeout)
1162
+ @timing = args[:timing] if args.key?(:timing)
1163
+ @warnings = args[:warnings] if args.key?(:warnings)
1164
+ end
1165
+ end
1166
+
1167
+ # BuildApproval describes a build's approval configuration, state, and result.
1168
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval
1169
+ include Google::Apis::Core::Hashable
1170
+
1171
+ # ApprovalConfig describes configuration for manual approval of a build.
1172
+ # Corresponds to the JSON property `config`
1173
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig]
1174
+ attr_accessor :config
1175
+
1176
+ # ApprovalResult describes the decision and associated metadata of a manual
1177
+ # approval of a build.
1178
+ # Corresponds to the JSON property `result`
1179
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult]
1180
+ attr_accessor :result
1181
+
1182
+ # Output only. The state of this build's approval.
1183
+ # Corresponds to the JSON property `state`
1184
+ # @return [String]
1185
+ attr_accessor :state
1186
+
1187
+ def initialize(**args)
1188
+ update!(**args)
1189
+ end
1190
+
1191
+ # Update properties of this object
1192
+ def update!(**args)
1193
+ @config = args[:config] if args.key?(:config)
1194
+ @result = args[:result] if args.key?(:result)
1195
+ @state = args[:state] if args.key?(:state)
1196
+ end
1197
+ end
1198
+
1199
+ # A fatal problem encountered during the execution of the build.
1200
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo
1201
+ include Google::Apis::Core::Hashable
1202
+
1203
+ # Explains the failure issue in more detail using hard-coded text.
1204
+ # Corresponds to the JSON property `detail`
1205
+ # @return [String]
1206
+ attr_accessor :detail
1207
+
1208
+ # The name of the failure.
1209
+ # Corresponds to the JSON property `type`
1210
+ # @return [String]
1211
+ attr_accessor :type
1212
+
1213
+ def initialize(**args)
1214
+ update!(**args)
1215
+ end
1216
+
1217
+ # Update properties of this object
1218
+ def update!(**args)
1219
+ @detail = args[:detail] if args.key?(:detail)
1220
+ @type = args[:type] if args.key?(:type)
1221
+ end
1222
+ end
1223
+
1224
+ # Optional arguments to enable specific features of builds.
1225
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions
1226
+ include Google::Apis::Core::Hashable
1227
+
1228
+ # Requested disk size for the VM that runs the build. Note that this is *NOT* "
1229
+ # disk free"; some of the space will be used by the operating system and build
1230
+ # utilities. Also note that this is the minimum disk size that will be allocated
1231
+ # for the build -- the build may run with a larger disk than requested. At
1232
+ # present, the maximum disk size is 1000GB; builds that request more than the
1233
+ # maximum are rejected with an error.
1234
+ # Corresponds to the JSON property `diskSizeGb`
1235
+ # @return [Fixnum]
1236
+ attr_accessor :disk_size_gb
1237
+
1238
+ # Option to specify whether or not to apply bash style string operations to the
1239
+ # substitutions. NOTE: this is always enabled for triggered builds and cannot be
1240
+ # overridden in the build configuration file.
1241
+ # Corresponds to the JSON property `dynamicSubstitutions`
1242
+ # @return [Boolean]
1243
+ attr_accessor :dynamic_substitutions
1244
+ alias_method :dynamic_substitutions?, :dynamic_substitutions
1245
+
1246
+ # A list of global environment variable definitions that will exist for all
1247
+ # build steps in this build. If a variable is defined in both globally and in a
1248
+ # build step, the variable will use the build step value. The elements are of
1249
+ # the form "KEY=VALUE" for the environment variable "KEY" being given the value "
1250
+ # VALUE".
1251
+ # Corresponds to the JSON property `env`
1252
+ # @return [Array<String>]
1253
+ attr_accessor :env
1254
+
1255
+ # Option to define build log streaming behavior to Google Cloud Storage.
1256
+ # Corresponds to the JSON property `logStreamingOption`
1257
+ # @return [String]
1258
+ attr_accessor :log_streaming_option
1259
+
1260
+ # Option to specify the logging mode, which determines if and where build logs
1261
+ # are stored.
1262
+ # Corresponds to the JSON property `logging`
1263
+ # @return [String]
1264
+ attr_accessor :logging
1265
+
1266
+ # Compute Engine machine type on which to run the build.
1267
+ # Corresponds to the JSON property `machineType`
1268
+ # @return [String]
1269
+ attr_accessor :machine_type
1270
+
1271
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1272
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1273
+ # run-builds-in-private-pool) for more information.
1274
+ # Corresponds to the JSON property `pool`
1275
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption]
1276
+ attr_accessor :pool
1277
+
1278
+ # Requested verifiability options.
1279
+ # Corresponds to the JSON property `requestedVerifyOption`
1280
+ # @return [String]
1281
+ attr_accessor :requested_verify_option
1282
+
1283
+ # A list of global environment variables, which are encrypted using a Cloud Key
1284
+ # Management Service crypto key. These values must be specified in the build's `
1285
+ # Secret`. These variables will be available to all build steps in this build.
1286
+ # Corresponds to the JSON property `secretEnv`
1287
+ # @return [Array<String>]
1288
+ attr_accessor :secret_env
1289
+
1290
+ # Requested hash for SourceProvenance.
1291
+ # Corresponds to the JSON property `sourceProvenanceHash`
1292
+ # @return [Array<String>]
1293
+ attr_accessor :source_provenance_hash
1294
+
1295
+ # Option to specify behavior when there is an error in the substitution checks.
1296
+ # NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be
1297
+ # overridden in the build configuration file.
1298
+ # Corresponds to the JSON property `substitutionOption`
1299
+ # @return [String]
1300
+ attr_accessor :substitution_option
1301
+
1302
+ # Global list of volumes to mount for ALL build steps Each volume is created as
1303
+ # an empty volume prior to starting the build process. Upon completion of the
1304
+ # build, volumes and their contents are discarded. Global volume names and paths
1305
+ # cannot conflict with the volumes defined a build step. Using a global volume
1306
+ # in a build with only one step is not valid as it is indicative of a build
1307
+ # request with an incorrect configuration.
1308
+ # Corresponds to the JSON property `volumes`
1309
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1310
+ attr_accessor :volumes
1311
+
1312
+ # This field deprecated; please use `pool.name` instead.
1313
+ # Corresponds to the JSON property `workerPool`
1314
+ # @return [String]
1315
+ attr_accessor :worker_pool
1316
+
1317
+ def initialize(**args)
1318
+ update!(**args)
1319
+ end
1320
+
1321
+ # Update properties of this object
1322
+ def update!(**args)
1323
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1324
+ @dynamic_substitutions = args[:dynamic_substitutions] if args.key?(:dynamic_substitutions)
1325
+ @env = args[:env] if args.key?(:env)
1326
+ @log_streaming_option = args[:log_streaming_option] if args.key?(:log_streaming_option)
1327
+ @logging = args[:logging] if args.key?(:logging)
1328
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1329
+ @pool = args[:pool] if args.key?(:pool)
1330
+ @requested_verify_option = args[:requested_verify_option] if args.key?(:requested_verify_option)
1331
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1332
+ @source_provenance_hash = args[:source_provenance_hash] if args.key?(:source_provenance_hash)
1333
+ @substitution_option = args[:substitution_option] if args.key?(:substitution_option)
1334
+ @volumes = args[:volumes] if args.key?(:volumes)
1335
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1336
+ end
1337
+ end
1338
+
1339
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1340
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1341
+ # run-builds-in-private-pool) for more information.
1342
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption
1343
+ include Google::Apis::Core::Hashable
1344
+
1345
+ # The `WorkerPool` resource to execute the build on. You must have `cloudbuild.
1346
+ # workerpools.use` on the project hosting the WorkerPool. Format projects/`
1347
+ # project`/locations/`location`/workerPools/`workerPoolId`
1348
+ # Corresponds to the JSON property `name`
1349
+ # @return [String]
1350
+ attr_accessor :name
1351
+
1352
+ def initialize(**args)
1353
+ update!(**args)
1354
+ end
1355
+
1356
+ # Update properties of this object
1357
+ def update!(**args)
1358
+ @name = args[:name] if args.key?(:name)
1359
+ end
1360
+ end
1361
+
1362
+ # A step in the build pipeline.
1363
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep
1364
+ include Google::Apis::Core::Hashable
1365
+
1366
+ # A list of arguments that will be presented to the step when it is started. If
1367
+ # the image used to run the step's container has an entrypoint, the `args` are
1368
+ # used as arguments to that entrypoint. If the image does not define an
1369
+ # entrypoint, the first element in args is used as the entrypoint, and the
1370
+ # remainder will be used as arguments.
1371
+ # Corresponds to the JSON property `args`
1372
+ # @return [Array<String>]
1373
+ attr_accessor :args
1374
+
1375
+ # Working directory to use when running this step's container. If this value is
1376
+ # a relative path, it is relative to the build's working directory. If this
1377
+ # value is absolute, it may be outside the build's working directory, in which
1378
+ # case the contents of the path may not be persisted across build step
1379
+ # executions, unless a `volume` for that path is specified. If the build
1380
+ # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
1381
+ # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
1382
+ # Corresponds to the JSON property `dir`
1383
+ # @return [String]
1384
+ attr_accessor :dir
1385
+
1386
+ # Entrypoint to be used instead of the build step image's default entrypoint. If
1387
+ # unset, the image's default entrypoint is used.
1388
+ # Corresponds to the JSON property `entrypoint`
1389
+ # @return [String]
1390
+ attr_accessor :entrypoint
1391
+
1392
+ # A list of environment variable definitions to be used when running a step. The
1393
+ # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
1394
+ # given the value "VALUE".
1395
+ # Corresponds to the JSON property `env`
1396
+ # @return [Array<String>]
1397
+ attr_accessor :env
1398
+
1399
+ # Unique identifier for this build step, used in `wait_for` to reference this
1400
+ # build step as a dependency.
1401
+ # Corresponds to the JSON property `id`
1402
+ # @return [String]
1403
+ attr_accessor :id
1404
+
1405
+ # Required. The name of the container image that will run this particular build
1406
+ # step. If the image is available in the host's Docker daemon's cache, it will
1407
+ # be run directly. If not, the host will attempt to pull the image first, using
1408
+ # the builder service account's credentials if necessary. The Docker daemon's
1409
+ # cache will already have the latest versions of all of the officially supported
1410
+ # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
1411
+ # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
1412
+ # have cached many of the layers for some popular images, like "ubuntu", "debian"
1413
+ # , but they will be refreshed at the time you attempt to use them. If you built
1414
+ # an image in a previous build step, it will be stored in the host's Docker
1415
+ # daemon's cache and is available to use as the name for a later build step.
1416
+ # Corresponds to the JSON property `name`
1417
+ # @return [String]
1418
+ attr_accessor :name
1419
+
1420
+ # Start and end times for a build execution phase.
1421
+ # Corresponds to the JSON property `pullTiming`
1422
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1423
+ attr_accessor :pull_timing
1424
+
1425
+ # A shell script to be executed in the step. When script is provided, the user
1426
+ # cannot specify the entrypoint or args.
1427
+ # Corresponds to the JSON property `script`
1428
+ # @return [String]
1429
+ attr_accessor :script
1430
+
1431
+ # A list of environment variables which are encrypted using a Cloud Key
1432
+ # Management Service crypto key. These values must be specified in the build's `
1433
+ # Secret`.
1434
+ # Corresponds to the JSON property `secretEnv`
1435
+ # @return [Array<String>]
1436
+ attr_accessor :secret_env
1437
+
1438
+ # Output only. Status of the build step. At this time, build step status is only
1439
+ # updated on build completion; step status is not updated in real-time as the
1440
+ # build progresses.
1441
+ # Corresponds to the JSON property `status`
1442
+ # @return [String]
1443
+ attr_accessor :status
1444
+
1445
+ # Time limit for executing this build step. If not defined, the step has no time
1446
+ # limit and will be allowed to continue to run until either it completes or the
1447
+ # build itself times out.
1448
+ # Corresponds to the JSON property `timeout`
1449
+ # @return [String]
1450
+ attr_accessor :timeout
1451
+
1452
+ # Start and end times for a build execution phase.
1453
+ # Corresponds to the JSON property `timing`
1454
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1455
+ attr_accessor :timing
1456
+
1457
+ # List of volumes to mount into the build step. Each volume is created as an
1458
+ # empty volume prior to execution of the build step. Upon completion of the
1459
+ # build, volumes and their contents are discarded. Using a named volume in only
1460
+ # one step is not valid as it is indicative of a build request with an incorrect
1461
+ # configuration.
1462
+ # Corresponds to the JSON property `volumes`
1463
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1464
+ attr_accessor :volumes
1465
+
1466
+ # The ID(s) of the step(s) that this build step depends on. This build step will
1467
+ # not start until all the build steps in `wait_for` have completed successfully.
1468
+ # If `wait_for` is empty, this build step will start when all previous build
1469
+ # steps in the `Build.Steps` list have completed successfully.
1470
+ # Corresponds to the JSON property `waitFor`
1471
+ # @return [Array<String>]
1472
+ attr_accessor :wait_for
1473
+
1474
+ def initialize(**args)
1475
+ update!(**args)
1476
+ end
1477
+
1478
+ # Update properties of this object
1479
+ def update!(**args)
1480
+ @args = args[:args] if args.key?(:args)
1481
+ @dir = args[:dir] if args.key?(:dir)
1482
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
1483
+ @env = args[:env] if args.key?(:env)
1484
+ @id = args[:id] if args.key?(:id)
1485
+ @name = args[:name] if args.key?(:name)
1486
+ @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
1487
+ @script = args[:script] if args.key?(:script)
1488
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1489
+ @status = args[:status] if args.key?(:status)
1490
+ @timeout = args[:timeout] if args.key?(:timeout)
1491
+ @timing = args[:timing] if args.key?(:timing)
1492
+ @volumes = args[:volumes] if args.key?(:volumes)
1493
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
1494
+ end
1495
+ end
1496
+
1497
+ # A non-fatal problem encountered during the execution of the build.
1498
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning
1499
+ include Google::Apis::Core::Hashable
1500
+
1501
+ # The priority for this warning.
1502
+ # Corresponds to the JSON property `priority`
1503
+ # @return [String]
1504
+ attr_accessor :priority
1505
+
1506
+ # Explanation of the warning generated.
1507
+ # Corresponds to the JSON property `text`
1508
+ # @return [String]
1509
+ attr_accessor :text
1510
+
1511
+ def initialize(**args)
1512
+ update!(**args)
1513
+ end
1514
+
1515
+ # Update properties of this object
1516
+ def update!(**args)
1517
+ @priority = args[:priority] if args.key?(:priority)
1518
+ @text = args[:text] if args.key?(:text)
1519
+ end
1520
+ end
1521
+
1522
+ # An image built by the pipeline.
1523
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage
1524
+ include Google::Apis::Core::Hashable
1525
+
1526
+ # Docker Registry 2.0 digest.
1527
+ # Corresponds to the JSON property `digest`
1528
+ # @return [String]
1529
+ attr_accessor :digest
1530
+
1531
+ # Name used to push the container image to Google Container Registry, as
1532
+ # presented to `docker push`.
1533
+ # Corresponds to the JSON property `name`
1534
+ # @return [String]
1535
+ attr_accessor :name
1536
+
1537
+ # Start and end times for a build execution phase.
1538
+ # Corresponds to the JSON property `pushTiming`
1539
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1540
+ attr_accessor :push_timing
1541
+
1542
+ def initialize(**args)
1543
+ update!(**args)
1544
+ end
1545
+
1546
+ # Update properties of this object
1547
+ def update!(**args)
1548
+ @digest = args[:digest] if args.key?(:digest)
1549
+ @name = args[:name] if args.key?(:name)
1550
+ @push_timing = args[:push_timing] if args.key?(:push_timing)
1551
+ end
1552
+ end
1553
+
1554
+ # Container message for hashes of byte content of files, used in
1555
+ # SourceProvenance messages to verify integrity of source input to the build.
1556
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes
1557
+ include Google::Apis::Core::Hashable
1558
+
1559
+ # Collection of file hashes.
1560
+ # Corresponds to the JSON property `fileHash`
1561
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Hash>]
1562
+ attr_accessor :file_hash
1563
+
1564
+ def initialize(**args)
1565
+ update!(**args)
1566
+ end
1567
+
1568
+ # Update properties of this object
1569
+ def update!(**args)
1570
+ @file_hash = args[:file_hash] if args.key?(:file_hash)
1571
+ end
1572
+ end
1573
+
1574
+ # Container message for hash values.
1575
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Hash
1576
+ include Google::Apis::Core::Hashable
1577
+
1578
+ # The type of hash that was performed.
1579
+ # Corresponds to the JSON property `type`
1580
+ # @return [String]
1581
+ attr_accessor :type
1582
+
1583
+ # The hash value.
1584
+ # Corresponds to the JSON property `value`
1585
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1586
+ # @return [String]
1587
+ attr_accessor :value
1588
+
1589
+ def initialize(**args)
1590
+ update!(**args)
1591
+ end
1592
+
1593
+ # Update properties of this object
1594
+ def update!(**args)
1595
+ @type = args[:type] if args.key?(:type)
1596
+ @value = args[:value] if args.key?(:value)
1597
+ end
1598
+ end
1599
+
1600
+ # Pairs a set of secret environment variables mapped to encrypted values with
1601
+ # the Cloud KMS key to use to decrypt the value.
1602
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret
1603
+ include Google::Apis::Core::Hashable
1604
+
1605
+ # Map of environment variable name to its encrypted value. Secret environment
1606
+ # variables must be unique across all of a build's secrets, and must be used by
1607
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1608
+ # most 100 secret values across all of a build's secrets.
1609
+ # Corresponds to the JSON property `envMap`
1610
+ # @return [Hash<String,String>]
1611
+ attr_accessor :env_map
1612
+
1613
+ # Resource name of Cloud KMS crypto key to decrypt the encrypted value. In
1614
+ # format: projects/*/locations/*/keyRings/*/cryptoKeys/*
1615
+ # Corresponds to the JSON property `kmsKeyName`
1616
+ # @return [String]
1617
+ attr_accessor :kms_key_name
1618
+
1619
+ def initialize(**args)
1620
+ update!(**args)
1621
+ end
1622
+
1623
+ # Update properties of this object
1624
+ def update!(**args)
1625
+ @env_map = args[:env_map] if args.key?(:env_map)
1626
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1627
+ end
1628
+ end
1629
+
1630
+ # Location of the source in a Google Cloud Source Repository.
1631
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource
1632
+ include Google::Apis::Core::Hashable
1633
+
1634
+ # Regex matching branches to build. The syntax of the regular expressions
1635
+ # accepted is the syntax accepted by RE2 and described at https://github.com/
1636
+ # google/re2/wiki/Syntax
1637
+ # Corresponds to the JSON property `branchName`
1638
+ # @return [String]
1639
+ attr_accessor :branch_name
1640
+
1641
+ # Explicit commit SHA to build.
1642
+ # Corresponds to the JSON property `commitSha`
1643
+ # @return [String]
1644
+ attr_accessor :commit_sha
1645
+
1646
+ # Directory, relative to the source root, in which to run the build. This must
1647
+ # be a relative path. If a step's `dir` is specified and is an absolute path,
1648
+ # this value is ignored for that step's execution.
1649
+ # Corresponds to the JSON property `dir`
1650
+ # @return [String]
1651
+ attr_accessor :dir
1652
+
1653
+ # Only trigger a build if the revision regex does NOT match the revision regex.
1654
+ # Corresponds to the JSON property `invertRegex`
1655
+ # @return [Boolean]
1656
+ attr_accessor :invert_regex
1657
+ alias_method :invert_regex?, :invert_regex
1658
+
1659
+ # ID of the project that owns the Cloud Source Repository. If omitted, the
1660
+ # project ID requesting the build is assumed.
1661
+ # Corresponds to the JSON property `projectId`
1662
+ # @return [String]
1663
+ attr_accessor :project_id
1664
+
1665
+ # Name of the Cloud Source Repository.
1666
+ # Corresponds to the JSON property `repoName`
1667
+ # @return [String]
1668
+ attr_accessor :repo_name
1669
+
1670
+ # Substitutions to use in a triggered build. Should only be used with
1671
+ # RunBuildTrigger
1672
+ # Corresponds to the JSON property `substitutions`
1673
+ # @return [Hash<String,String>]
1674
+ attr_accessor :substitutions
1675
+
1676
+ # Regex matching tags to build. The syntax of the regular expressions accepted
1677
+ # is the syntax accepted by RE2 and described at https://github.com/google/re2/
1678
+ # wiki/Syntax
1679
+ # Corresponds to the JSON property `tagName`
1680
+ # @return [String]
1681
+ attr_accessor :tag_name
1682
+
1683
+ def initialize(**args)
1684
+ update!(**args)
1685
+ end
1686
+
1687
+ # Update properties of this object
1688
+ def update!(**args)
1689
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
1690
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
1691
+ @dir = args[:dir] if args.key?(:dir)
1692
+ @invert_regex = args[:invert_regex] if args.key?(:invert_regex)
1693
+ @project_id = args[:project_id] if args.key?(:project_id)
1694
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1695
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1696
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
1697
+ end
1698
+ end
1699
+
1700
+ # Artifacts created by the build pipeline.
1701
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Results
1702
+ include Google::Apis::Core::Hashable
1703
+
1704
+ # Path to the artifact manifest. Only populated when artifacts are uploaded.
1705
+ # Corresponds to the JSON property `artifactManifest`
1706
+ # @return [String]
1707
+ attr_accessor :artifact_manifest
1708
+
1709
+ # Start and end times for a build execution phase.
1710
+ # Corresponds to the JSON property `artifactTiming`
1711
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1712
+ attr_accessor :artifact_timing
1713
+
1714
+ # List of build step digests, in the order corresponding to build step indices.
1715
+ # Corresponds to the JSON property `buildStepImages`
1716
+ # @return [Array<String>]
1717
+ attr_accessor :build_step_images
1718
+
1719
+ # List of build step outputs, produced by builder images, in the order
1720
+ # corresponding to build step indices. [Cloud Builders](https://cloud.google.com/
1721
+ # cloud-build/docs/cloud-builders) can produce this output by writing to `$
1722
+ # BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.
1723
+ # Corresponds to the JSON property `buildStepOutputs`
1724
+ # @return [Array<String>]
1725
+ attr_accessor :build_step_outputs
1726
+
1727
+ # Container images that were built as a part of the build.
1728
+ # Corresponds to the JSON property `images`
1729
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage>]
1730
+ attr_accessor :images
1731
+
1732
+ # Number of artifacts uploaded. Only populated when artifacts are uploaded.
1733
+ # Corresponds to the JSON property `numArtifacts`
1734
+ # @return [Fixnum]
1735
+ attr_accessor :num_artifacts
1736
+
1737
+ def initialize(**args)
1738
+ update!(**args)
1739
+ end
1740
+
1741
+ # Update properties of this object
1742
+ def update!(**args)
1743
+ @artifact_manifest = args[:artifact_manifest] if args.key?(:artifact_manifest)
1744
+ @artifact_timing = args[:artifact_timing] if args.key?(:artifact_timing)
1745
+ @build_step_images = args[:build_step_images] if args.key?(:build_step_images)
1746
+ @build_step_outputs = args[:build_step_outputs] if args.key?(:build_step_outputs)
1747
+ @images = args[:images] if args.key?(:images)
1748
+ @num_artifacts = args[:num_artifacts] if args.key?(:num_artifacts)
1749
+ end
1750
+ end
1751
+
1752
+ # Pairs a set of secret environment variables containing encrypted values with
1753
+ # the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `
1754
+ # available_secrets` instead of using `kmsKeyName` with `secret`. For
1755
+ # instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/
1756
+ # use-encrypted-credentials.
1757
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secret
1758
+ include Google::Apis::Core::Hashable
1759
+
1760
+ # Cloud KMS key name to use to decrypt these envs.
1761
+ # Corresponds to the JSON property `kmsKeyName`
1762
+ # @return [String]
1763
+ attr_accessor :kms_key_name
1764
+
1765
+ # Map of environment variable name to its encrypted value. Secret environment
1766
+ # variables must be unique across all of a build's secrets, and must be used by
1767
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1768
+ # most 100 secret values across all of a build's secrets.
1769
+ # Corresponds to the JSON property `secretEnv`
1770
+ # @return [Hash<String,String>]
1771
+ attr_accessor :secret_env
590
1772
 
591
1773
  def initialize(**args)
592
1774
  update!(**args)
@@ -594,19 +1776,26 @@ module Google
594
1776
 
595
1777
  # Update properties of this object
596
1778
  def update!(**args)
597
- @builder_version = args[:builder_version] if args.key?(:builder_version)
598
- @signature = args[:signature] if args.key?(:signature)
1779
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1780
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
599
1781
  end
600
1782
  end
601
1783
 
602
- #
603
- class BuilderConfig
1784
+ # Pairs a secret environment variable with a SecretVersion in Secret Manager.
1785
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret
604
1786
  include Google::Apis::Core::Hashable
605
1787
 
606
- #
607
- # Corresponds to the JSON property `id`
1788
+ # Environment variable name to associate with the secret. Secret environment
1789
+ # variables must be unique across all of a build's secrets, and must be used by
1790
+ # at least one build step.
1791
+ # Corresponds to the JSON property `env`
608
1792
  # @return [String]
609
- attr_accessor :id
1793
+ attr_accessor :env
1794
+
1795
+ # Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*
1796
+ # Corresponds to the JSON property `versionName`
1797
+ # @return [String]
1798
+ attr_accessor :version_name
610
1799
 
611
1800
  def initialize(**args)
612
1801
  update!(**args)
@@ -614,23 +1803,24 @@ module Google
614
1803
 
615
1804
  # Update properties of this object
616
1805
  def update!(**args)
617
- @id = args[:id] if args.key?(:id)
1806
+ @env = args[:env] if args.key?(:env)
1807
+ @version_name = args[:version_name] if args.key?(:version_name)
618
1808
  end
619
1809
  end
620
1810
 
621
- # A compliance check that is a CIS benchmark.
622
- class CisBenchmark
1811
+ # Secrets and secret environment variables.
1812
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets
623
1813
  include Google::Apis::Core::Hashable
624
1814
 
625
- # The profile level of this CIS benchmark check.
626
- # Corresponds to the JSON property `profileLevel`
627
- # @return [Fixnum]
628
- attr_accessor :profile_level
1815
+ # Secrets encrypted with KMS key and the associated secret environment variable.
1816
+ # Corresponds to the JSON property `inline`
1817
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret>]
1818
+ attr_accessor :inline
629
1819
 
630
- # The severity level of this CIS benchmark check.
631
- # Corresponds to the JSON property `severity`
632
- # @return [String]
633
- attr_accessor :severity
1820
+ # Secrets in Secret Manager and associated secret environment variable.
1821
+ # Corresponds to the JSON property `secretManager`
1822
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret>]
1823
+ attr_accessor :secret_manager
634
1824
 
635
1825
  def initialize(**args)
636
1826
  update!(**args)
@@ -638,47 +1828,31 @@ module Google
638
1828
 
639
1829
  # Update properties of this object
640
1830
  def update!(**args)
641
- @profile_level = args[:profile_level] if args.key?(:profile_level)
642
- @severity = args[:severity] if args.key?(:severity)
1831
+ @inline = args[:inline] if args.key?(:inline)
1832
+ @secret_manager = args[:secret_manager] if args.key?(:secret_manager)
643
1833
  end
644
1834
  end
645
1835
 
646
- # Command describes a step performed as part of the build pipeline.
647
- class Command
1836
+ # Location of the source in a supported storage service.
1837
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source
648
1838
  include Google::Apis::Core::Hashable
649
1839
 
650
- # Command-line arguments used when executing this Command.
651
- # Corresponds to the JSON property `args`
652
- # @return [Array<String>]
653
- attr_accessor :args
654
-
655
- # Working directory (relative to project source root) used when running this
656
- # Command.
657
- # Corresponds to the JSON property `dir`
658
- # @return [String]
659
- attr_accessor :dir
660
-
661
- # Environment variables set before running this Command.
662
- # Corresponds to the JSON property `env`
663
- # @return [Array<String>]
664
- attr_accessor :env
665
-
666
- # Optional unique identifier for this Command, used in wait_for to reference
667
- # this Command as a dependency.
668
- # Corresponds to the JSON property `id`
669
- # @return [String]
670
- attr_accessor :id
1840
+ # Location of the source in a Google Cloud Source Repository.
1841
+ # Corresponds to the JSON property `repoSource`
1842
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1843
+ attr_accessor :repo_source
671
1844
 
672
- # Name of the command, as presented on the command line, or if the command is
673
- # packaged as a Docker container, as presented to `docker pull`.
674
- # Corresponds to the JSON property `name`
675
- # @return [String]
676
- attr_accessor :name
1845
+ # Location of the source in an archive file in Google Cloud Storage.
1846
+ # Corresponds to the JSON property `storageSource`
1847
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1848
+ attr_accessor :storage_source
677
1849
 
678
- # The ID(s) of the Command(s) that this Command depends on.
679
- # Corresponds to the JSON property `waitFor`
680
- # @return [Array<String>]
681
- attr_accessor :wait_for
1850
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1851
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1852
+ # builders/tree/master/gcs-fetcher).
1853
+ # Corresponds to the JSON property `storageSourceManifest`
1854
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1855
+ attr_accessor :storage_source_manifest
682
1856
 
683
1857
  def initialize(**args)
684
1858
  update!(**args)
@@ -686,39 +1860,44 @@ module Google
686
1860
 
687
1861
  # Update properties of this object
688
1862
  def update!(**args)
689
- @args = args[:args] if args.key?(:args)
690
- @dir = args[:dir] if args.key?(:dir)
691
- @env = args[:env] if args.key?(:env)
692
- @id = args[:id] if args.key?(:id)
693
- @name = args[:name] if args.key?(:name)
694
- @wait_for = args[:wait_for] if args.key?(:wait_for)
1863
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
1864
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
1865
+ @storage_source_manifest = args[:storage_source_manifest] if args.key?(:storage_source_manifest)
695
1866
  end
696
1867
  end
697
1868
 
698
- # Indicates that the builder claims certain fields in this message to be
699
- # complete.
700
- class Completeness
1869
+ # Provenance of the source. Ways to find the original source, or verify that
1870
+ # some source was used for this build.
1871
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance
701
1872
  include Google::Apis::Core::Hashable
702
1873
 
703
- # If true, the builder claims that recipe.arguments is complete, meaning that
704
- # all external inputs are properly captured in the recipe.
705
- # Corresponds to the JSON property `arguments`
706
- # @return [Boolean]
707
- attr_accessor :arguments
708
- alias_method :arguments?, :arguments
1874
+ # Output only. Hash(es) of the build source, which can be used to verify that
1875
+ # the original source integrity was maintained in the build. Note that `
1876
+ # FileHashes` will only be populated if `BuildOptions` has requested a `
1877
+ # SourceProvenanceHash`. The keys to this map are file paths used as build
1878
+ # source and the values contain the hash values for those files. If the build
1879
+ # source came in a single package such as a gzipped tarfile (`.tar.gz`), the `
1880
+ # FileHash` will be for the single path to that file.
1881
+ # Corresponds to the JSON property `fileHashes`
1882
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes>]
1883
+ attr_accessor :file_hashes
709
1884
 
710
- # If true, the builder claims that recipe.environment is claimed to be complete.
711
- # Corresponds to the JSON property `environment`
712
- # @return [Boolean]
713
- attr_accessor :environment
714
- alias_method :environment?, :environment
1885
+ # Location of the source in a Google Cloud Source Repository.
1886
+ # Corresponds to the JSON property `resolvedRepoSource`
1887
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1888
+ attr_accessor :resolved_repo_source
715
1889
 
716
- # If true, the builder claims that materials are complete, usually through some
717
- # controls to prevent network access. Sometimes called "hermetic".
718
- # Corresponds to the JSON property `materials`
719
- # @return [Boolean]
720
- attr_accessor :materials
721
- alias_method :materials?, :materials
1890
+ # Location of the source in an archive file in Google Cloud Storage.
1891
+ # Corresponds to the JSON property `resolvedStorageSource`
1892
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1893
+ attr_accessor :resolved_storage_source
1894
+
1895
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1896
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1897
+ # builders/tree/master/gcs-fetcher).
1898
+ # Corresponds to the JSON property `resolvedStorageSourceManifest`
1899
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1900
+ attr_accessor :resolved_storage_source_manifest
722
1901
 
723
1902
  def initialize(**args)
724
1903
  update!(**args)
@@ -726,51 +1905,72 @@ module Google
726
1905
 
727
1906
  # Update properties of this object
728
1907
  def update!(**args)
729
- @arguments = args[:arguments] if args.key?(:arguments)
730
- @environment = args[:environment] if args.key?(:environment)
731
- @materials = args[:materials] if args.key?(:materials)
1908
+ @file_hashes = args[:file_hashes] if args.key?(:file_hashes)
1909
+ @resolved_repo_source = args[:resolved_repo_source] if args.key?(:resolved_repo_source)
1910
+ @resolved_storage_source = args[:resolved_storage_source] if args.key?(:resolved_storage_source)
1911
+ @resolved_storage_source_manifest = args[:resolved_storage_source_manifest] if args.key?(:resolved_storage_source_manifest)
732
1912
  end
733
1913
  end
734
1914
 
735
- # ComplianceNote encapsulates all information about a specific compliance check.
736
- class ComplianceNote
1915
+ # Location of the source in an archive file in Google Cloud Storage.
1916
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource
737
1917
  include Google::Apis::Core::Hashable
738
1918
 
739
- # A compliance check that is a CIS benchmark.
740
- # Corresponds to the JSON property `cisBenchmark`
741
- # @return [Google::Apis::ContaineranalysisV1alpha1::CisBenchmark]
742
- attr_accessor :cis_benchmark
743
-
744
- # A description about this compliance check.
745
- # Corresponds to the JSON property `description`
1919
+ # Google Cloud Storage bucket containing the source (see [Bucket Name
1920
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1921
+ # ).
1922
+ # Corresponds to the JSON property `bucket`
746
1923
  # @return [String]
747
- attr_accessor :description
1924
+ attr_accessor :bucket
748
1925
 
749
- # A rationale for the existence of this compliance check.
750
- # Corresponds to the JSON property `rationale`
751
- # @return [String]
752
- attr_accessor :rationale
1926
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1927
+ # the latest generation will be used.
1928
+ # Corresponds to the JSON property `generation`
1929
+ # @return [Fixnum]
1930
+ attr_accessor :generation
753
1931
 
754
- # A description of remediation steps if the compliance check fails.
755
- # Corresponds to the JSON property `remediation`
1932
+ # Google Cloud Storage object containing the source. This object must be a
1933
+ # zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.
1934
+ # Corresponds to the JSON property `object`
756
1935
  # @return [String]
757
- attr_accessor :remediation
1936
+ attr_accessor :object
758
1937
 
759
- # Serialized scan instructions with a predefined format.
760
- # Corresponds to the JSON property `scanInstructions`
761
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
762
- # @return [String]
763
- attr_accessor :scan_instructions
1938
+ def initialize(**args)
1939
+ update!(**args)
1940
+ end
764
1941
 
765
- # The title that identifies this compliance check.
766
- # Corresponds to the JSON property `title`
1942
+ # Update properties of this object
1943
+ def update!(**args)
1944
+ @bucket = args[:bucket] if args.key?(:bucket)
1945
+ @generation = args[:generation] if args.key?(:generation)
1946
+ @object = args[:object] if args.key?(:object)
1947
+ end
1948
+ end
1949
+
1950
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1951
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1952
+ # builders/tree/master/gcs-fetcher).
1953
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest
1954
+ include Google::Apis::Core::Hashable
1955
+
1956
+ # Google Cloud Storage bucket containing the source manifest (see [Bucket Name
1957
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1958
+ # ).
1959
+ # Corresponds to the JSON property `bucket`
767
1960
  # @return [String]
768
- attr_accessor :title
1961
+ attr_accessor :bucket
769
1962
 
770
- # The OS and config versions the benchmark applies to.
771
- # Corresponds to the JSON property `version`
772
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ComplianceVersion>]
773
- attr_accessor :version
1963
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1964
+ # the latest generation will be used.
1965
+ # Corresponds to the JSON property `generation`
1966
+ # @return [Fixnum]
1967
+ attr_accessor :generation
1968
+
1969
+ # Google Cloud Storage object containing the source manifest. This object must
1970
+ # be a JSON file.
1971
+ # Corresponds to the JSON property `object`
1972
+ # @return [String]
1973
+ attr_accessor :object
774
1974
 
775
1975
  def initialize(**args)
776
1976
  update!(**args)
@@ -778,30 +1978,25 @@ module Google
778
1978
 
779
1979
  # Update properties of this object
780
1980
  def update!(**args)
781
- @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
782
- @description = args[:description] if args.key?(:description)
783
- @rationale = args[:rationale] if args.key?(:rationale)
784
- @remediation = args[:remediation] if args.key?(:remediation)
785
- @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
786
- @title = args[:title] if args.key?(:title)
787
- @version = args[:version] if args.key?(:version)
1981
+ @bucket = args[:bucket] if args.key?(:bucket)
1982
+ @generation = args[:generation] if args.key?(:generation)
1983
+ @object = args[:object] if args.key?(:object)
788
1984
  end
789
1985
  end
790
1986
 
791
- # An indication that the compliance checks in the associated ComplianceNote were
792
- # not satisfied for particular resources or a specified reason.
793
- class ComplianceOccurrence
1987
+ # Start and end times for a build execution phase.
1988
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan
794
1989
  include Google::Apis::Core::Hashable
795
1990
 
796
- # The reason for non compliance of these files.
797
- # Corresponds to the JSON property `nonComplianceReason`
1991
+ # End of time span.
1992
+ # Corresponds to the JSON property `endTime`
798
1993
  # @return [String]
799
- attr_accessor :non_compliance_reason
1994
+ attr_accessor :end_time
800
1995
 
801
- # A list of files which are violating compliance checks.
802
- # Corresponds to the JSON property `nonCompliantFiles`
803
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::NonCompliantFile>]
804
- attr_accessor :non_compliant_files
1996
+ # Start of time span.
1997
+ # Corresponds to the JSON property `startTime`
1998
+ # @return [String]
1999
+ attr_accessor :start_time
805
2000
 
806
2001
  def initialize(**args)
807
2002
  update!(**args)
@@ -809,27 +2004,29 @@ module Google
809
2004
 
810
2005
  # Update properties of this object
811
2006
  def update!(**args)
812
- @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
813
- @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
2007
+ @end_time = args[:end_time] if args.key?(:end_time)
2008
+ @start_time = args[:start_time] if args.key?(:start_time)
814
2009
  end
815
2010
  end
816
2011
 
817
- # Describes the CIS benchmark version that is applicable to a given OS and os
818
- # version.
819
- class ComplianceVersion
2012
+ # Volume describes a Docker container volume which is mounted into build steps
2013
+ # in order to persist files across build step execution.
2014
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Volume
820
2015
  include Google::Apis::Core::Hashable
821
2016
 
822
- # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
823
- # applicable to.
824
- # Corresponds to the JSON property `cpeUri`
2017
+ # Name of the volume to mount. Volume names must be unique per build step and
2018
+ # must be valid names for Docker volumes. Each named volume must be used by at
2019
+ # least two build steps.
2020
+ # Corresponds to the JSON property `name`
825
2021
  # @return [String]
826
- attr_accessor :cpe_uri
2022
+ attr_accessor :name
827
2023
 
828
- # The version of the benchmark. This is set to the version of the OS-specific
829
- # CIS document the benchmark is defined in.
830
- # Corresponds to the JSON property `version`
2024
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
2025
+ # with other volume paths on the same build step or with certain reserved volume
2026
+ # paths.
2027
+ # Corresponds to the JSON property `path`
831
2028
  # @return [String]
832
- attr_accessor :version
2029
+ attr_accessor :path
833
2030
 
834
2031
  def initialize(**args)
835
2032
  update!(**args)
@@ -837,8 +2034,8 @@ module Google
837
2034
 
838
2035
  # Update properties of this object
839
2036
  def update!(**args)
840
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
841
- @version = args[:version] if args.key?(:version)
2037
+ @name = args[:name] if args.key?(:name)
2038
+ @path = args[:path] if args.key?(:path)
842
2039
  end
843
2040
  end
844
2041
 
@@ -1173,6 +2370,11 @@ module Google
1173
2370
  # @return [Google::Apis::ContaineranalysisV1alpha1::Status]
1174
2371
  attr_accessor :analysis_status_error
1175
2372
 
2373
+ # The time occurrences related to this discovery occurrence were archived.
2374
+ # Corresponds to the JSON property `archiveTime`
2375
+ # @return [String]
2376
+ attr_accessor :archive_time
2377
+
1176
2378
  # Whether the resource is continuously analyzed.
1177
2379
  # Corresponds to the JSON property `continuousAnalysis`
1178
2380
  # @return [String]
@@ -1183,6 +2385,11 @@ module Google
1183
2385
  # @return [String]
1184
2386
  attr_accessor :cpe
1185
2387
 
2388
+ # The last time this resource was scanned.
2389
+ # Corresponds to the JSON property `lastScanTime`
2390
+ # @return [String]
2391
+ attr_accessor :last_scan_time
2392
+
1186
2393
  # This resource represents a long-running operation that is the result of a
1187
2394
  # network API call.
1188
2395
  # Corresponds to the JSON property `operation`
@@ -1197,8 +2404,10 @@ module Google
1197
2404
  def update!(**args)
1198
2405
  @analysis_status = args[:analysis_status] if args.key?(:analysis_status)
1199
2406
  @analysis_status_error = args[:analysis_status_error] if args.key?(:analysis_status_error)
2407
+ @archive_time = args[:archive_time] if args.key?(:archive_time)
1200
2408
  @continuous_analysis = args[:continuous_analysis] if args.key?(:continuous_analysis)
1201
2409
  @cpe = args[:cpe] if args.key?(:cpe)
2410
+ @last_scan_time = args[:last_scan_time] if args.key?(:last_scan_time)
1202
2411
  @operation = args[:operation] if args.key?(:operation)
1203
2412
  end
1204
2413
  end
@@ -1738,13 +2947,16 @@ module Google
1738
2947
  class GetPolicyOptions
1739
2948
  include Google::Apis::Core::Hashable
1740
2949
 
1741
- # Optional. The policy format version to be returned. Valid values are 0, 1, and
1742
- # 3. Requests specifying an invalid value will be rejected. Requests for
1743
- # policies with any conditional bindings must specify version 3. Policies
1744
- # without any conditional bindings may specify any valid value or leave the
1745
- # field unset. To learn which resources support conditions in their IAM policies,
1746
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1747
- # resource-policies).
2950
+ # Optional. The maximum policy version that will be used to format the policy.
2951
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2952
+ # rejected. Requests for policies with any conditional role bindings must
2953
+ # specify version 3. Policies with no conditional role bindings may specify any
2954
+ # valid value or leave the field unset. The policy in the response might use the
2955
+ # policy version that you specified, or it might use a lower policy version. For
2956
+ # example, if you specify version 3, but the policy has no conditional role
2957
+ # bindings, the response uses version 1. To learn which resources support
2958
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2959
+ # google.com/iam/help/conditions/resource-policies).
1748
2960
  # Corresponds to the JSON property `requestedPolicyVersion`
1749
2961
  # @return [Fixnum]
1750
2962
  attr_accessor :requested_policy_version
@@ -2091,36 +3303,42 @@ module Google
2091
3303
  class InTotoStatement
2092
3304
  include Google::Apis::Core::Hashable
2093
3305
 
2094
- # "https://in-toto.io/Provenance/v0.1" for InTotoProvenance.
3306
+ # Always "https://in-toto.io/Statement/v0.1".
3307
+ # Corresponds to the JSON property `_type`
3308
+ # @return [String]
3309
+ attr_accessor :_type
3310
+
3311
+ # "https://slsa.dev/provenance/v0.1" for SlsaProvenance.
2095
3312
  # Corresponds to the JSON property `predicateType`
2096
3313
  # @return [String]
2097
3314
  attr_accessor :predicate_type
2098
3315
 
2099
- #
3316
+ # provenance is a predicate of type intotoprovenance
2100
3317
  # Corresponds to the JSON property `provenance`
2101
3318
  # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoProvenance]
2102
3319
  attr_accessor :provenance
2103
3320
 
2104
- #
3321
+ # SlsaProvenance is the slsa provenance as defined by the slsa spec.
3322
+ # Corresponds to the JSON property `slsaProvenance`
3323
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaProvenance]
3324
+ attr_accessor :slsa_provenance
3325
+
3326
+ # subject is the subjects of the intoto statement
2105
3327
  # Corresponds to the JSON property `subject`
2106
3328
  # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Subject>]
2107
3329
  attr_accessor :subject
2108
3330
 
2109
- # Always "https://in-toto.io/Statement/v0.1".
2110
- # Corresponds to the JSON property `type`
2111
- # @return [String]
2112
- attr_accessor :type
2113
-
2114
3331
  def initialize(**args)
2115
3332
  update!(**args)
2116
3333
  end
2117
3334
 
2118
3335
  # Update properties of this object
2119
3336
  def update!(**args)
3337
+ @_type = args[:_type] if args.key?(:_type)
2120
3338
  @predicate_type = args[:predicate_type] if args.key?(:predicate_type)
2121
3339
  @provenance = args[:provenance] if args.key?(:provenance)
3340
+ @slsa_provenance = args[:slsa_provenance] if args.key?(:slsa_provenance)
2122
3341
  @subject = args[:subject] if args.key?(:subject)
2123
- @type = args[:type] if args.key?(:type)
2124
3342
  end
2125
3343
  end
2126
3344
 
@@ -2320,13 +3538,40 @@ module Google
2320
3538
  # @return [String]
2321
3539
  attr_accessor :path
2322
3540
 
2323
- # Version contains structured information about the version of the package. For
2324
- # a discussion of this in Debian/Ubuntu: http://serverfault.com/questions/604541/
2325
- # debian-packages-version-convention For a discussion of this in Redhat/Fedora/
2326
- # Centos: http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
2327
- # Corresponds to the JSON property `version`
2328
- # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
2329
- attr_accessor :version
3541
+ # Version contains structured information about the version of the package. For
3542
+ # a discussion of this in Debian/Ubuntu: http://serverfault.com/questions/604541/
3543
+ # debian-packages-version-convention For a discussion of this in Redhat/Fedora/
3544
+ # Centos: http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
3545
+ # Corresponds to the JSON property `version`
3546
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
3547
+ attr_accessor :version
3548
+
3549
+ def initialize(**args)
3550
+ update!(**args)
3551
+ end
3552
+
3553
+ # Update properties of this object
3554
+ def update!(**args)
3555
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
3556
+ @path = args[:path] if args.key?(:path)
3557
+ @version = args[:version] if args.key?(:version)
3558
+ end
3559
+ end
3560
+
3561
+ # Material is a material used in the generation of the provenance
3562
+ class Material
3563
+ include Google::Apis::Core::Hashable
3564
+
3565
+ # digest is a map from a hash algorithm (e.g. sha256) to the value in the
3566
+ # material
3567
+ # Corresponds to the JSON property `digest`
3568
+ # @return [Hash<String,String>]
3569
+ attr_accessor :digest
3570
+
3571
+ # uri is the uri of the material
3572
+ # Corresponds to the JSON property `uri`
3573
+ # @return [String]
3574
+ attr_accessor :uri
2330
3575
 
2331
3576
  def initialize(**args)
2332
3577
  update!(**args)
@@ -2334,9 +3579,8 @@ module Google
2334
3579
 
2335
3580
  # Update properties of this object
2336
3581
  def update!(**args)
2337
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
2338
- @path = args[:path] if args.key?(:path)
2339
- @version = args[:version] if args.key?(:version)
3582
+ @digest = args[:digest] if args.key?(:digest)
3583
+ @uri = args[:uri] if args.key?(:uri)
2340
3584
  end
2341
3585
  end
2342
3586
 
@@ -3595,6 +4839,210 @@ module Google
3595
4839
  end
3596
4840
  end
3597
4841
 
4842
+ # SlsaBuilder encapsulates the identity of the builder of this provenance.
4843
+ class SlsaBuilder
4844
+ include Google::Apis::Core::Hashable
4845
+
4846
+ # id is the id of the slsa provenance builder
4847
+ # Corresponds to the JSON property `id`
4848
+ # @return [String]
4849
+ attr_accessor :id
4850
+
4851
+ def initialize(**args)
4852
+ update!(**args)
4853
+ end
4854
+
4855
+ # Update properties of this object
4856
+ def update!(**args)
4857
+ @id = args[:id] if args.key?(:id)
4858
+ end
4859
+ end
4860
+
4861
+ # Indicates that the builder claims certain fields in this message to be
4862
+ # complete.
4863
+ class SlsaCompleteness
4864
+ include Google::Apis::Core::Hashable
4865
+
4866
+ # If true, the builder claims that recipe.arguments is complete, meaning that
4867
+ # all external inputs are properly captured in the recipe.
4868
+ # Corresponds to the JSON property `arguments`
4869
+ # @return [Boolean]
4870
+ attr_accessor :arguments
4871
+ alias_method :arguments?, :arguments
4872
+
4873
+ # If true, the builder claims that recipe.environment is claimed to be complete.
4874
+ # Corresponds to the JSON property `environment`
4875
+ # @return [Boolean]
4876
+ attr_accessor :environment
4877
+ alias_method :environment?, :environment
4878
+
4879
+ # If true, the builder claims that materials are complete, usually through some
4880
+ # controls to prevent network access. Sometimes called "hermetic".
4881
+ # Corresponds to the JSON property `materials`
4882
+ # @return [Boolean]
4883
+ attr_accessor :materials
4884
+ alias_method :materials?, :materials
4885
+
4886
+ def initialize(**args)
4887
+ update!(**args)
4888
+ end
4889
+
4890
+ # Update properties of this object
4891
+ def update!(**args)
4892
+ @arguments = args[:arguments] if args.key?(:arguments)
4893
+ @environment = args[:environment] if args.key?(:environment)
4894
+ @materials = args[:materials] if args.key?(:materials)
4895
+ end
4896
+ end
4897
+
4898
+ # Other properties of the build.
4899
+ class SlsaMetadata
4900
+ include Google::Apis::Core::Hashable
4901
+
4902
+ # The timestamp of when the build completed.
4903
+ # Corresponds to the JSON property `buildFinishedOn`
4904
+ # @return [String]
4905
+ attr_accessor :build_finished_on
4906
+
4907
+ # Identifies the particular build invocation, which can be useful for finding
4908
+ # associated logs or other ad-hoc analysis. The value SHOULD be globally unique,
4909
+ # per in-toto Provenance spec.
4910
+ # Corresponds to the JSON property `buildInvocationId`
4911
+ # @return [String]
4912
+ attr_accessor :build_invocation_id
4913
+
4914
+ # The timestamp of when the build started.
4915
+ # Corresponds to the JSON property `buildStartedOn`
4916
+ # @return [String]
4917
+ attr_accessor :build_started_on
4918
+
4919
+ # Indicates that the builder claims certain fields in this message to be
4920
+ # complete.
4921
+ # Corresponds to the JSON property `completeness`
4922
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaCompleteness]
4923
+ attr_accessor :completeness
4924
+
4925
+ # If true, the builder claims that running the recipe on materials will produce
4926
+ # bit-for-bit identical output.
4927
+ # Corresponds to the JSON property `reproducible`
4928
+ # @return [Boolean]
4929
+ attr_accessor :reproducible
4930
+ alias_method :reproducible?, :reproducible
4931
+
4932
+ def initialize(**args)
4933
+ update!(**args)
4934
+ end
4935
+
4936
+ # Update properties of this object
4937
+ def update!(**args)
4938
+ @build_finished_on = args[:build_finished_on] if args.key?(:build_finished_on)
4939
+ @build_invocation_id = args[:build_invocation_id] if args.key?(:build_invocation_id)
4940
+ @build_started_on = args[:build_started_on] if args.key?(:build_started_on)
4941
+ @completeness = args[:completeness] if args.key?(:completeness)
4942
+ @reproducible = args[:reproducible] if args.key?(:reproducible)
4943
+ end
4944
+ end
4945
+
4946
+ # SlsaProvenance is the slsa provenance as defined by the slsa spec.
4947
+ class SlsaProvenance
4948
+ include Google::Apis::Core::Hashable
4949
+
4950
+ # SlsaBuilder encapsulates the identity of the builder of this provenance.
4951
+ # Corresponds to the JSON property `builder`
4952
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaBuilder]
4953
+ attr_accessor :builder
4954
+
4955
+ # The collection of artifacts that influenced the build including sources,
4956
+ # dependencies, build tools, base images, and so on. This is considered to be
4957
+ # incomplete unless metadata.completeness.materials is true. Unset or null is
4958
+ # equivalent to empty.
4959
+ # Corresponds to the JSON property `materials`
4960
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Material>]
4961
+ attr_accessor :materials
4962
+
4963
+ # Other properties of the build.
4964
+ # Corresponds to the JSON property `metadata`
4965
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaMetadata]
4966
+ attr_accessor :metadata
4967
+
4968
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4969
+ # corresponds to one step in the recipe.
4970
+ # Corresponds to the JSON property `recipe`
4971
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaRecipe]
4972
+ attr_accessor :recipe
4973
+
4974
+ def initialize(**args)
4975
+ update!(**args)
4976
+ end
4977
+
4978
+ # Update properties of this object
4979
+ def update!(**args)
4980
+ @builder = args[:builder] if args.key?(:builder)
4981
+ @materials = args[:materials] if args.key?(:materials)
4982
+ @metadata = args[:metadata] if args.key?(:metadata)
4983
+ @recipe = args[:recipe] if args.key?(:recipe)
4984
+ end
4985
+ end
4986
+
4987
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4988
+ # corresponds to one step in the recipe.
4989
+ class SlsaRecipe
4990
+ include Google::Apis::Core::Hashable
4991
+
4992
+ # Collection of all external inputs that influenced the build on top of recipe.
4993
+ # definedInMaterial and recipe.entryPoint. For example, if the recipe type were "
4994
+ # make", then this might be the flags passed to make aside from the target,
4995
+ # which is captured in recipe.entryPoint. Depending on the recipe Type, the
4996
+ # structure may be different.
4997
+ # Corresponds to the JSON property `arguments`
4998
+ # @return [Hash<String,Object>]
4999
+ attr_accessor :arguments
5000
+
5001
+ # Index in materials containing the recipe steps that are not implied by recipe.
5002
+ # type. For example, if the recipe type were "make", then this would point to
5003
+ # the source containing the Makefile, not the make program itself. Set to -1 if
5004
+ # the recipe doesn't come from a material, as zero is default unset value for
5005
+ # int64.
5006
+ # Corresponds to the JSON property `definedInMaterial`
5007
+ # @return [Fixnum]
5008
+ attr_accessor :defined_in_material
5009
+
5010
+ # String identifying the entry point into the build. This is often a path to a
5011
+ # configuration file and/or a target label within that file. The syntax and
5012
+ # meaning are defined by recipe.type. For example, if the recipe type were "make"
5013
+ # , then this would reference the directory in which to run make as well as
5014
+ # which target to use.
5015
+ # Corresponds to the JSON property `entryPoint`
5016
+ # @return [String]
5017
+ attr_accessor :entry_point
5018
+
5019
+ # Any other builder-controlled inputs necessary for correctly evaluating the
5020
+ # recipe. Usually only needed for reproducing the build but not evaluated as
5021
+ # part of policy. Depending on the recipe Type, the structure may be different.
5022
+ # Corresponds to the JSON property `environment`
5023
+ # @return [Hash<String,Object>]
5024
+ attr_accessor :environment
5025
+
5026
+ # URI indicating what type of recipe was performed. It determines the meaning of
5027
+ # recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
5028
+ # Corresponds to the JSON property `type`
5029
+ # @return [String]
5030
+ attr_accessor :type
5031
+
5032
+ def initialize(**args)
5033
+ update!(**args)
5034
+ end
5035
+
5036
+ # Update properties of this object
5037
+ def update!(**args)
5038
+ @arguments = args[:arguments] if args.key?(:arguments)
5039
+ @defined_in_material = args[:defined_in_material] if args.key?(:defined_in_material)
5040
+ @entry_point = args[:entry_point] if args.key?(:entry_point)
5041
+ @environment = args[:environment] if args.key?(:environment)
5042
+ @type = args[:type] if args.key?(:type)
5043
+ end
5044
+ end
5045
+
3598
5046
  # Source describes the location of the source used for the build.
3599
5047
  class Source
3600
5048
  include Google::Apis::Core::Hashable
@@ -3727,16 +5175,17 @@ module Google
3727
5175
  end
3728
5176
  end
3729
5177
 
3730
- #
5178
+ # Subject refers to the subject of the intoto statement
3731
5179
  class Subject
3732
5180
  include Google::Apis::Core::Hashable
3733
5181
 
3734
- # "": ""
5182
+ # "": "" Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/
5183
+ # attestation/blob/main/spec/field_types.md#DigestSet
3735
5184
  # Corresponds to the JSON property `digest`
3736
5185
  # @return [Hash<String,String>]
3737
5186
  attr_accessor :digest
3738
5187
 
3739
- #
5188
+ # name is the name of the Subject used here
3740
5189
  # Corresponds to the JSON property `name`
3741
5190
  # @return [String]
3742
5191
  attr_accessor :name
@@ -3792,31 +5241,6 @@ module Google
3792
5241
  end
3793
5242
  end
3794
5243
 
3795
- # Start and end times for a build execution phase.
3796
- class TimeSpan
3797
- include Google::Apis::Core::Hashable
3798
-
3799
- # End of time span.
3800
- # Corresponds to the JSON property `endTime`
3801
- # @return [String]
3802
- attr_accessor :end_time
3803
-
3804
- # Start of time span.
3805
- # Corresponds to the JSON property `startTime`
3806
- # @return [String]
3807
- attr_accessor :start_time
3808
-
3809
- def initialize(**args)
3810
- update!(**args)
3811
- end
3812
-
3813
- # Update properties of this object
3814
- def update!(**args)
3815
- @end_time = args[:end_time] if args.key?(:end_time)
3816
- @start_time = args[:start_time] if args.key?(:start_time)
3817
- end
3818
- end
3819
-
3820
5244
  # Request for updating an existing operation
3821
5245
  class UpdateOperationRequest
3822
5246
  include Google::Apis::Core::Hashable
@@ -4008,36 +5432,6 @@ module Google
4008
5432
  end
4009
5433
  end
4010
5434
 
4011
- # Volume describes a Docker container volume which is mounted into build steps
4012
- # in order to persist files across build step execution.
4013
- class Volume
4014
- include Google::Apis::Core::Hashable
4015
-
4016
- # Name of the volume to mount. Volume names must be unique per build step and
4017
- # must be valid names for Docker volumes. Each named volume must be used by at
4018
- # least two build steps.
4019
- # Corresponds to the JSON property `name`
4020
- # @return [String]
4021
- attr_accessor :name
4022
-
4023
- # Path at which to mount the volume. Paths must be absolute and cannot conflict
4024
- # with other volume paths on the same build step or with certain reserved volume
4025
- # paths.
4026
- # Corresponds to the JSON property `path`
4027
- # @return [String]
4028
- attr_accessor :path
4029
-
4030
- def initialize(**args)
4031
- update!(**args)
4032
- end
4033
-
4034
- # Update properties of this object
4035
- def update!(**args)
4036
- @name = args[:name] if args.key?(:name)
4037
- @path = args[:path] if args.key?(:path)
4038
- end
4039
- end
4040
-
4041
5435
  # Used by Occurrence to point to where the vulnerability exists and how to fix
4042
5436
  # it.
4043
5437
  class VulnerabilityDetails
@@ -4049,6 +5443,13 @@ module Google
4049
5443
  # @return [Float]
4050
5444
  attr_accessor :cvss_score
4051
5445
 
5446
+ # Common Vulnerability Scoring System. This is the storage level proto that is
5447
+ # intended to store similar data as the CVSS proto in google3/third_party/
5448
+ # grafeas/proto/v1/cvss.proto
5449
+ # Corresponds to the JSON property `cvssV3`
5450
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Cvss]
5451
+ attr_accessor :cvss_v3
5452
+
4052
5453
  # The distro assigned severity for this vulnerability when that is available and
4053
5454
  # note provider assigned severity when distro has not yet assigned a severity
4054
5455
  # for this vulnerability. When there are multiple package issues for this
@@ -4088,6 +5489,7 @@ module Google
4088
5489
  # Update properties of this object
4089
5490
  def update!(**args)
4090
5491
  @cvss_score = args[:cvss_score] if args.key?(:cvss_score)
5492
+ @cvss_v3 = args[:cvss_v3] if args.key?(:cvss_v3)
4091
5493
  @effective_severity = args[:effective_severity] if args.key?(:effective_severity)
4092
5494
  @package_issue = args[:package_issue] if args.key?(:package_issue)
4093
5495
  @severity = args[:severity] if args.key?(:severity)