google-apis-containeranalysis_v1 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -333,11 +333,19 @@ module Google
333
333
  class BuildOccurrence
334
334
  include Google::Apis::Core::Hashable
335
335
 
336
- # In-toto Provenance representation as defined in spec.
336
+ # Deprecated. See InTotoStatement for the replacement. In-toto Provenance
337
+ # representation as defined in spec.
337
338
  # Corresponds to the JSON property `intotoProvenance`
338
339
  # @return [Google::Apis::ContaineranalysisV1::InTotoProvenance]
339
340
  attr_accessor :intoto_provenance
340
341
 
342
+ # Spec defined at https://github.com/in-toto/attestation/tree/main/spec#
343
+ # statement The serialized InTotoStatement will be stored as Envelope.payload.
344
+ # Envelope.payloadType is always "application/vnd.in-toto+json".
345
+ # Corresponds to the JSON property `intotoStatement`
346
+ # @return [Google::Apis::ContaineranalysisV1::InTotoStatement]
347
+ attr_accessor :intoto_statement
348
+
341
349
  # Provenance of a build. Contains all information needed to verify the full
342
350
  # details about the build from source to completion.
343
351
  # Corresponds to the JSON property `provenance`
@@ -363,6 +371,7 @@ module Google
363
371
  # Update properties of this object
364
372
  def update!(**args)
365
373
  @intoto_provenance = args[:intoto_provenance] if args.key?(:intoto_provenance)
374
+ @intoto_statement = args[:intoto_statement] if args.key?(:intoto_statement)
366
375
  @provenance = args[:provenance] if args.key?(:provenance)
367
376
  @provenance_bytes = args[:provenance_bytes] if args.key?(:provenance_bytes)
368
377
  end
@@ -463,141 +472,6 @@ module Google
463
472
  end
464
473
  end
465
474
 
466
- # A step in the build pipeline.
467
- class BuildStep
468
- include Google::Apis::Core::Hashable
469
-
470
- # A list of arguments that will be presented to the step when it is started. If
471
- # the image used to run the step's container has an entrypoint, the `args` are
472
- # used as arguments to that entrypoint. If the image does not define an
473
- # entrypoint, the first element in args is used as the entrypoint, and the
474
- # remainder will be used as arguments.
475
- # Corresponds to the JSON property `args`
476
- # @return [Array<String>]
477
- attr_accessor :args
478
-
479
- # Working directory to use when running this step's container. If this value is
480
- # a relative path, it is relative to the build's working directory. If this
481
- # value is absolute, it may be outside the build's working directory, in which
482
- # case the contents of the path may not be persisted across build step
483
- # executions, unless a `volume` for that path is specified. If the build
484
- # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
485
- # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
486
- # Corresponds to the JSON property `dir`
487
- # @return [String]
488
- attr_accessor :dir
489
-
490
- # Entrypoint to be used instead of the build step image's default entrypoint. If
491
- # unset, the image's default entrypoint is used.
492
- # Corresponds to the JSON property `entrypoint`
493
- # @return [String]
494
- attr_accessor :entrypoint
495
-
496
- # A list of environment variable definitions to be used when running a step. The
497
- # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
498
- # given the value "VALUE".
499
- # Corresponds to the JSON property `env`
500
- # @return [Array<String>]
501
- attr_accessor :env
502
-
503
- # Unique identifier for this build step, used in `wait_for` to reference this
504
- # build step as a dependency.
505
- # Corresponds to the JSON property `id`
506
- # @return [String]
507
- attr_accessor :id
508
-
509
- # Required. The name of the container image that will run this particular build
510
- # step. If the image is available in the host's Docker daemon's cache, it will
511
- # be run directly. If not, the host will attempt to pull the image first, using
512
- # the builder service account's credentials if necessary. The Docker daemon's
513
- # cache will already have the latest versions of all of the officially supported
514
- # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
515
- # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
516
- # have cached many of the layers for some popular images, like "ubuntu", "debian"
517
- # , but they will be refreshed at the time you attempt to use them. If you built
518
- # an image in a previous build step, it will be stored in the host's Docker
519
- # daemon's cache and is available to use as the name for a later build step.
520
- # Corresponds to the JSON property `name`
521
- # @return [String]
522
- attr_accessor :name
523
-
524
- # Start and end times for a build execution phase.
525
- # Corresponds to the JSON property `pullTiming`
526
- # @return [Google::Apis::ContaineranalysisV1::TimeSpan]
527
- attr_accessor :pull_timing
528
-
529
- # A shell script to be executed in the step. When script is provided, the user
530
- # cannot specify the entrypoint or args.
531
- # Corresponds to the JSON property `script`
532
- # @return [String]
533
- attr_accessor :script
534
-
535
- # A list of environment variables which are encrypted using a Cloud Key
536
- # Management Service crypto key. These values must be specified in the build's `
537
- # Secret`.
538
- # Corresponds to the JSON property `secretEnv`
539
- # @return [Array<String>]
540
- attr_accessor :secret_env
541
-
542
- # Output only. Status of the build step. At this time, build step status is only
543
- # updated on build completion; step status is not updated in real-time as the
544
- # build progresses.
545
- # Corresponds to the JSON property `status`
546
- # @return [String]
547
- attr_accessor :status
548
-
549
- # Time limit for executing this build step. If not defined, the step has no time
550
- # limit and will be allowed to continue to run until either it completes or the
551
- # build itself times out.
552
- # Corresponds to the JSON property `timeout`
553
- # @return [String]
554
- attr_accessor :timeout
555
-
556
- # Start and end times for a build execution phase.
557
- # Corresponds to the JSON property `timing`
558
- # @return [Google::Apis::ContaineranalysisV1::TimeSpan]
559
- attr_accessor :timing
560
-
561
- # List of volumes to mount into the build step. Each volume is created as an
562
- # empty volume prior to execution of the build step. Upon completion of the
563
- # build, volumes and their contents are discarded. Using a named volume in only
564
- # one step is not valid as it is indicative of a build request with an incorrect
565
- # configuration.
566
- # Corresponds to the JSON property `volumes`
567
- # @return [Array<Google::Apis::ContaineranalysisV1::Volume>]
568
- attr_accessor :volumes
569
-
570
- # The ID(s) of the step(s) that this build step depends on. This build step will
571
- # not start until all the build steps in `wait_for` have completed successfully.
572
- # If `wait_for` is empty, this build step will start when all previous build
573
- # steps in the `Build.Steps` list have completed successfully.
574
- # Corresponds to the JSON property `waitFor`
575
- # @return [Array<String>]
576
- attr_accessor :wait_for
577
-
578
- def initialize(**args)
579
- update!(**args)
580
- end
581
-
582
- # Update properties of this object
583
- def update!(**args)
584
- @args = args[:args] if args.key?(:args)
585
- @dir = args[:dir] if args.key?(:dir)
586
- @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
587
- @env = args[:env] if args.key?(:env)
588
- @id = args[:id] if args.key?(:id)
589
- @name = args[:name] if args.key?(:name)
590
- @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
591
- @script = args[:script] if args.key?(:script)
592
- @secret_env = args[:secret_env] if args.key?(:secret_env)
593
- @status = args[:status] if args.key?(:status)
594
- @timeout = args[:timeout] if args.key?(:timeout)
595
- @timing = args[:timing] if args.key?(:timing)
596
- @volumes = args[:volumes] if args.key?(:volumes)
597
- @wait_for = args[:wait_for] if args.key?(:wait_for)
598
- end
599
- end
600
-
601
475
  #
602
476
  class BuilderConfig
603
477
  include Google::Apis::Core::Hashable
@@ -698,32 +572,1292 @@ module Google
698
572
  end
699
573
  end
700
574
 
701
- # The request message for Operations.CancelOperation.
702
- class CancelOperationRequest
575
+ # The request message for Operations.CancelOperation.
576
+ class CancelOperationRequest
577
+ include Google::Apis::Core::Hashable
578
+
579
+ def initialize(**args)
580
+ update!(**args)
581
+ end
582
+
583
+ # Update properties of this object
584
+ def update!(**args)
585
+ end
586
+ end
587
+
588
+ # The category to which the update belongs.
589
+ class Category
590
+ include Google::Apis::Core::Hashable
591
+
592
+ # The identifier of the category.
593
+ # Corresponds to the JSON property `categoryId`
594
+ # @return [String]
595
+ attr_accessor :category_id
596
+
597
+ # The localized name of the category.
598
+ # Corresponds to the JSON property `name`
599
+ # @return [String]
600
+ attr_accessor :name
601
+
602
+ def initialize(**args)
603
+ update!(**args)
604
+ end
605
+
606
+ # Update properties of this object
607
+ def update!(**args)
608
+ @category_id = args[:category_id] if args.key?(:category_id)
609
+ @name = args[:name] if args.key?(:name)
610
+ end
611
+ end
612
+
613
+ # A compliance check that is a CIS benchmark.
614
+ class CisBenchmark
615
+ include Google::Apis::Core::Hashable
616
+
617
+ #
618
+ # Corresponds to the JSON property `profileLevel`
619
+ # @return [Fixnum]
620
+ attr_accessor :profile_level
621
+
622
+ #
623
+ # Corresponds to the JSON property `severity`
624
+ # @return [String]
625
+ attr_accessor :severity
626
+
627
+ def initialize(**args)
628
+ update!(**args)
629
+ end
630
+
631
+ # Update properties of this object
632
+ def update!(**args)
633
+ @profile_level = args[:profile_level] if args.key?(:profile_level)
634
+ @severity = args[:severity] if args.key?(:severity)
635
+ end
636
+ end
637
+
638
+ # A CloudRepoSourceContext denotes a particular revision in a Google Cloud
639
+ # Source Repo.
640
+ class CloudRepoSourceContext
641
+ include Google::Apis::Core::Hashable
642
+
643
+ # An alias to a repo revision.
644
+ # Corresponds to the JSON property `aliasContext`
645
+ # @return [Google::Apis::ContaineranalysisV1::AliasContext]
646
+ attr_accessor :alias_context
647
+
648
+ # A unique identifier for a Cloud Repo.
649
+ # Corresponds to the JSON property `repoId`
650
+ # @return [Google::Apis::ContaineranalysisV1::RepoId]
651
+ attr_accessor :repo_id
652
+
653
+ # A revision ID.
654
+ # Corresponds to the JSON property `revisionId`
655
+ # @return [String]
656
+ attr_accessor :revision_id
657
+
658
+ def initialize(**args)
659
+ update!(**args)
660
+ end
661
+
662
+ # Update properties of this object
663
+ def update!(**args)
664
+ @alias_context = args[:alias_context] if args.key?(:alias_context)
665
+ @repo_id = args[:repo_id] if args.key?(:repo_id)
666
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
667
+ end
668
+ end
669
+
670
+ # Command describes a step performed as part of the build pipeline.
671
+ class Command
672
+ include Google::Apis::Core::Hashable
673
+
674
+ # Command-line arguments used when executing this command.
675
+ # Corresponds to the JSON property `args`
676
+ # @return [Array<String>]
677
+ attr_accessor :args
678
+
679
+ # Working directory (relative to project source root) used when running this
680
+ # command.
681
+ # Corresponds to the JSON property `dir`
682
+ # @return [String]
683
+ attr_accessor :dir
684
+
685
+ # Environment variables set before running this command.
686
+ # Corresponds to the JSON property `env`
687
+ # @return [Array<String>]
688
+ attr_accessor :env
689
+
690
+ # Optional unique identifier for this command, used in wait_for to reference
691
+ # this command as a dependency.
692
+ # Corresponds to the JSON property `id`
693
+ # @return [String]
694
+ attr_accessor :id
695
+
696
+ # Required. Name of the command, as presented on the command line, or if the
697
+ # command is packaged as a Docker container, as presented to `docker pull`.
698
+ # Corresponds to the JSON property `name`
699
+ # @return [String]
700
+ attr_accessor :name
701
+
702
+ # The ID(s) of the command(s) that this command depends on.
703
+ # Corresponds to the JSON property `waitFor`
704
+ # @return [Array<String>]
705
+ attr_accessor :wait_for
706
+
707
+ def initialize(**args)
708
+ update!(**args)
709
+ end
710
+
711
+ # Update properties of this object
712
+ def update!(**args)
713
+ @args = args[:args] if args.key?(:args)
714
+ @dir = args[:dir] if args.key?(:dir)
715
+ @env = args[:env] if args.key?(:env)
716
+ @id = args[:id] if args.key?(:id)
717
+ @name = args[:name] if args.key?(:name)
718
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
719
+ end
720
+ end
721
+
722
+ # Indicates that the builder claims certain fields in this message to be
723
+ # complete.
724
+ class Completeness
725
+ include Google::Apis::Core::Hashable
726
+
727
+ # If true, the builder claims that recipe.arguments is complete, meaning that
728
+ # all external inputs are properly captured in the recipe.
729
+ # Corresponds to the JSON property `arguments`
730
+ # @return [Boolean]
731
+ attr_accessor :arguments
732
+ alias_method :arguments?, :arguments
733
+
734
+ # If true, the builder claims that recipe.environment is claimed to be complete.
735
+ # Corresponds to the JSON property `environment`
736
+ # @return [Boolean]
737
+ attr_accessor :environment
738
+ alias_method :environment?, :environment
739
+
740
+ # If true, the builder claims that materials are complete, usually through some
741
+ # controls to prevent network access. Sometimes called "hermetic".
742
+ # Corresponds to the JSON property `materials`
743
+ # @return [Boolean]
744
+ attr_accessor :materials
745
+ alias_method :materials?, :materials
746
+
747
+ def initialize(**args)
748
+ update!(**args)
749
+ end
750
+
751
+ # Update properties of this object
752
+ def update!(**args)
753
+ @arguments = args[:arguments] if args.key?(:arguments)
754
+ @environment = args[:environment] if args.key?(:environment)
755
+ @materials = args[:materials] if args.key?(:materials)
756
+ end
757
+ end
758
+
759
+ #
760
+ class ComplianceNote
761
+ include Google::Apis::Core::Hashable
762
+
763
+ # A compliance check that is a CIS benchmark.
764
+ # Corresponds to the JSON property `cisBenchmark`
765
+ # @return [Google::Apis::ContaineranalysisV1::CisBenchmark]
766
+ attr_accessor :cis_benchmark
767
+
768
+ # A description about this compliance check.
769
+ # Corresponds to the JSON property `description`
770
+ # @return [String]
771
+ attr_accessor :description
772
+
773
+ # A rationale for the existence of this compliance check.
774
+ # Corresponds to the JSON property `rationale`
775
+ # @return [String]
776
+ attr_accessor :rationale
777
+
778
+ # A description of remediation steps if the compliance check fails.
779
+ # Corresponds to the JSON property `remediation`
780
+ # @return [String]
781
+ attr_accessor :remediation
782
+
783
+ # Serialized scan instructions with a predefined format.
784
+ # Corresponds to the JSON property `scanInstructions`
785
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
786
+ # @return [String]
787
+ attr_accessor :scan_instructions
788
+
789
+ # The title that identifies this compliance check.
790
+ # Corresponds to the JSON property `title`
791
+ # @return [String]
792
+ attr_accessor :title
793
+
794
+ # The OS and config versions the benchmark applies to.
795
+ # Corresponds to the JSON property `version`
796
+ # @return [Array<Google::Apis::ContaineranalysisV1::ComplianceVersion>]
797
+ attr_accessor :version
798
+
799
+ def initialize(**args)
800
+ update!(**args)
801
+ end
802
+
803
+ # Update properties of this object
804
+ def update!(**args)
805
+ @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
806
+ @description = args[:description] if args.key?(:description)
807
+ @rationale = args[:rationale] if args.key?(:rationale)
808
+ @remediation = args[:remediation] if args.key?(:remediation)
809
+ @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
810
+ @title = args[:title] if args.key?(:title)
811
+ @version = args[:version] if args.key?(:version)
812
+ end
813
+ end
814
+
815
+ # An indication that the compliance checks in the associated ComplianceNote were
816
+ # not satisfied for particular resources or a specified reason.
817
+ class ComplianceOccurrence
818
+ include Google::Apis::Core::Hashable
819
+
820
+ #
821
+ # Corresponds to the JSON property `nonComplianceReason`
822
+ # @return [String]
823
+ attr_accessor :non_compliance_reason
824
+
825
+ #
826
+ # Corresponds to the JSON property `nonCompliantFiles`
827
+ # @return [Array<Google::Apis::ContaineranalysisV1::NonCompliantFile>]
828
+ attr_accessor :non_compliant_files
829
+
830
+ def initialize(**args)
831
+ update!(**args)
832
+ end
833
+
834
+ # Update properties of this object
835
+ def update!(**args)
836
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
837
+ @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
838
+ end
839
+ end
840
+
841
+ # Describes the CIS benchmark version that is applicable to a given OS and os
842
+ # version.
843
+ class ComplianceVersion
844
+ include Google::Apis::Core::Hashable
845
+
846
+ # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
847
+ # applicable to.
848
+ # Corresponds to the JSON property `cpeUri`
849
+ # @return [String]
850
+ attr_accessor :cpe_uri
851
+
852
+ # The version of the benchmark. This is set to the version of the OS-specific
853
+ # CIS document the benchmark is defined in.
854
+ # Corresponds to the JSON property `version`
855
+ # @return [String]
856
+ attr_accessor :version
857
+
858
+ def initialize(**args)
859
+ update!(**args)
860
+ end
861
+
862
+ # Update properties of this object
863
+ def update!(**args)
864
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
865
+ @version = args[:version] if args.key?(:version)
866
+ end
867
+ end
868
+
869
+ # ApprovalConfig describes configuration for manual approval of a build.
870
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig
871
+ include Google::Apis::Core::Hashable
872
+
873
+ # Whether or not approval is needed. If this is set on a build, it will become
874
+ # pending when created, and will need to be explicitly approved to start.
875
+ # Corresponds to the JSON property `approvalRequired`
876
+ # @return [Boolean]
877
+ attr_accessor :approval_required
878
+ alias_method :approval_required?, :approval_required
879
+
880
+ def initialize(**args)
881
+ update!(**args)
882
+ end
883
+
884
+ # Update properties of this object
885
+ def update!(**args)
886
+ @approval_required = args[:approval_required] if args.key?(:approval_required)
887
+ end
888
+ end
889
+
890
+ # ApprovalResult describes the decision and associated metadata of a manual
891
+ # approval of a build.
892
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult
893
+ include Google::Apis::Core::Hashable
894
+
895
+ # Output only. The time when the approval decision was made.
896
+ # Corresponds to the JSON property `approvalTime`
897
+ # @return [String]
898
+ attr_accessor :approval_time
899
+
900
+ # Output only. Email of the user that called the ApproveBuild API to approve or
901
+ # reject a build at the time that the API was called.
902
+ # Corresponds to the JSON property `approverAccount`
903
+ # @return [String]
904
+ attr_accessor :approver_account
905
+
906
+ # Optional. An optional comment for this manual approval result.
907
+ # Corresponds to the JSON property `comment`
908
+ # @return [String]
909
+ attr_accessor :comment
910
+
911
+ # Required. The decision of this manual approval.
912
+ # Corresponds to the JSON property `decision`
913
+ # @return [String]
914
+ attr_accessor :decision
915
+
916
+ # Optional. An optional URL tied to this manual approval result. This field is
917
+ # essentially the same as comment, except that it will be rendered by the UI
918
+ # differently. An example use case is a link to an external job that approved
919
+ # this Build.
920
+ # Corresponds to the JSON property `url`
921
+ # @return [String]
922
+ attr_accessor :url
923
+
924
+ def initialize(**args)
925
+ update!(**args)
926
+ end
927
+
928
+ # Update properties of this object
929
+ def update!(**args)
930
+ @approval_time = args[:approval_time] if args.key?(:approval_time)
931
+ @approver_account = args[:approver_account] if args.key?(:approver_account)
932
+ @comment = args[:comment] if args.key?(:comment)
933
+ @decision = args[:decision] if args.key?(:decision)
934
+ @url = args[:url] if args.key?(:url)
935
+ end
936
+ end
937
+
938
+ # Artifacts produced by a build that should be uploaded upon successful
939
+ # completion of all build steps.
940
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts
941
+ include Google::Apis::Core::Hashable
942
+
943
+ # A list of images to be pushed upon the successful completion of all build
944
+ # steps. The images will be pushed using the builder service account's
945
+ # credentials. The digests of the pushed images will be stored in the Build
946
+ # resource's results field. If any of the images fail to be pushed, the build is
947
+ # marked FAILURE.
948
+ # Corresponds to the JSON property `images`
949
+ # @return [Array<String>]
950
+ attr_accessor :images
951
+
952
+ # Files in the workspace to upload to Cloud Storage upon successful completion
953
+ # of all build steps.
954
+ # Corresponds to the JSON property `objects`
955
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects]
956
+ attr_accessor :objects
957
+
958
+ def initialize(**args)
959
+ update!(**args)
960
+ end
961
+
962
+ # Update properties of this object
963
+ def update!(**args)
964
+ @images = args[:images] if args.key?(:images)
965
+ @objects = args[:objects] if args.key?(:objects)
966
+ end
967
+ end
968
+
969
+ # Files in the workspace to upload to Cloud Storage upon successful completion
970
+ # of all build steps.
971
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects
972
+ include Google::Apis::Core::Hashable
973
+
974
+ # Cloud Storage bucket and optional object path, in the form "gs://bucket/path/
975
+ # to/somewhere/". (see [Bucket Name Requirements](https://cloud.google.com/
976
+ # storage/docs/bucket-naming#requirements)). Files in the workspace matching any
977
+ # path pattern will be uploaded to Cloud Storage with this location as a prefix.
978
+ # Corresponds to the JSON property `location`
979
+ # @return [String]
980
+ attr_accessor :location
981
+
982
+ # Path globs used to match files in the build's workspace.
983
+ # Corresponds to the JSON property `paths`
984
+ # @return [Array<String>]
985
+ attr_accessor :paths
986
+
987
+ # Start and end times for a build execution phase.
988
+ # Corresponds to the JSON property `timing`
989
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
990
+ attr_accessor :timing
991
+
992
+ def initialize(**args)
993
+ update!(**args)
994
+ end
995
+
996
+ # Update properties of this object
997
+ def update!(**args)
998
+ @location = args[:location] if args.key?(:location)
999
+ @paths = args[:paths] if args.key?(:paths)
1000
+ @timing = args[:timing] if args.key?(:timing)
1001
+ end
1002
+ end
1003
+
1004
+ # A build resource in the Cloud Build API. At a high level, a `Build` describes
1005
+ # where to find source code, how to build it (for example, the builder image to
1006
+ # run on the source), and where to store the built artifacts. Fields can include
1007
+ # the following variables, which will be expanded when the build is created: - $
1008
+ # PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number
1009
+ # of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the
1010
+ # autogenerated ID of the build. - $REPO_NAME: the source repository name
1011
+ # specified by RepoSource. - $BRANCH_NAME: the branch name specified by
1012
+ # RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID
1013
+ # or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the
1014
+ # specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $
1015
+ # COMMIT_SHA.
1016
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build
1017
+ include Google::Apis::Core::Hashable
1018
+
1019
+ # BuildApproval describes a build's approval configuration, state, and result.
1020
+ # Corresponds to the JSON property `approval`
1021
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval]
1022
+ attr_accessor :approval
1023
+
1024
+ # Artifacts produced by a build that should be uploaded upon successful
1025
+ # completion of all build steps.
1026
+ # Corresponds to the JSON property `artifacts`
1027
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts]
1028
+ attr_accessor :artifacts
1029
+
1030
+ # Secrets and secret environment variables.
1031
+ # Corresponds to the JSON property `availableSecrets`
1032
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets]
1033
+ attr_accessor :available_secrets
1034
+
1035
+ # Output only. The ID of the `BuildTrigger` that triggered this build, if it was
1036
+ # triggered automatically.
1037
+ # Corresponds to the JSON property `buildTriggerId`
1038
+ # @return [String]
1039
+ attr_accessor :build_trigger_id
1040
+
1041
+ # Output only. Time at which the request to create the build was received.
1042
+ # Corresponds to the JSON property `createTime`
1043
+ # @return [String]
1044
+ attr_accessor :create_time
1045
+
1046
+ # A fatal problem encountered during the execution of the build.
1047
+ # Corresponds to the JSON property `failureInfo`
1048
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo]
1049
+ attr_accessor :failure_info
1050
+
1051
+ # Output only. Time at which execution of the build was finished. The difference
1052
+ # between finish_time and start_time is the duration of the build's execution.
1053
+ # Corresponds to the JSON property `finishTime`
1054
+ # @return [String]
1055
+ attr_accessor :finish_time
1056
+
1057
+ # Output only. Unique identifier of the build.
1058
+ # Corresponds to the JSON property `id`
1059
+ # @return [String]
1060
+ attr_accessor :id
1061
+
1062
+ # A list of images to be pushed upon the successful completion of all build
1063
+ # steps. The images are pushed using the builder service account's credentials.
1064
+ # The digests of the pushed images will be stored in the `Build` resource's
1065
+ # results field. If any of the images fail to be pushed, the build status is
1066
+ # marked `FAILURE`.
1067
+ # Corresponds to the JSON property `images`
1068
+ # @return [Array<String>]
1069
+ attr_accessor :images
1070
+
1071
+ # Output only. URL to logs for this build in Google Cloud Console.
1072
+ # Corresponds to the JSON property `logUrl`
1073
+ # @return [String]
1074
+ attr_accessor :log_url
1075
+
1076
+ # Google Cloud Storage bucket where logs should be written (see [Bucket Name
1077
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1078
+ # ). Logs file names will be of the format `$`logs_bucket`/log-$`build_id`.txt`.
1079
+ # Corresponds to the JSON property `logsBucket`
1080
+ # @return [String]
1081
+ attr_accessor :logs_bucket
1082
+
1083
+ # Output only. The 'Build' name with format: `projects/`project`/locations/`
1084
+ # location`/builds/`build``, where `build` is a unique identifier generated by
1085
+ # the service.
1086
+ # Corresponds to the JSON property `name`
1087
+ # @return [String]
1088
+ attr_accessor :name
1089
+
1090
+ # Optional arguments to enable specific features of builds.
1091
+ # Corresponds to the JSON property `options`
1092
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions]
1093
+ attr_accessor :options
1094
+
1095
+ # Output only. ID of the project.
1096
+ # Corresponds to the JSON property `projectId`
1097
+ # @return [String]
1098
+ attr_accessor :project_id
1099
+
1100
+ # TTL in queue for this build. If provided and the build is enqueued longer than
1101
+ # this value, the build will expire and the build status will be `EXPIRED`. The
1102
+ # TTL starts ticking from create_time.
1103
+ # Corresponds to the JSON property `queueTtl`
1104
+ # @return [String]
1105
+ attr_accessor :queue_ttl
1106
+
1107
+ # Artifacts created by the build pipeline.
1108
+ # Corresponds to the JSON property `results`
1109
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Results]
1110
+ attr_accessor :results
1111
+
1112
+ # Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is
1113
+ # the recommended technique for managing sensitive data with Cloud Build. Use `
1114
+ # available_secrets` to configure builds to access secrets from Secret Manager.
1115
+ # For instructions, see: https://cloud.google.com/cloud-build/docs/securing-
1116
+ # builds/use-secrets
1117
+ # Corresponds to the JSON property `secrets`
1118
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secret>]
1119
+ attr_accessor :secrets
1120
+
1121
+ # IAM service account whose credentials will be used at build runtime. Must be
1122
+ # of the format `projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT``. ACCOUNT can
1123
+ # be email address or uniqueId of the service account.
1124
+ # Corresponds to the JSON property `serviceAccount`
1125
+ # @return [String]
1126
+ attr_accessor :service_account
1127
+
1128
+ # Location of the source in a supported storage service.
1129
+ # Corresponds to the JSON property `source`
1130
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Source]
1131
+ attr_accessor :source
1132
+
1133
+ # Provenance of the source. Ways to find the original source, or verify that
1134
+ # some source was used for this build.
1135
+ # Corresponds to the JSON property `sourceProvenance`
1136
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance]
1137
+ attr_accessor :source_provenance
1138
+
1139
+ # Output only. Time at which execution of the build was started.
1140
+ # Corresponds to the JSON property `startTime`
1141
+ # @return [String]
1142
+ attr_accessor :start_time
1143
+
1144
+ # Output only. Status of the build.
1145
+ # Corresponds to the JSON property `status`
1146
+ # @return [String]
1147
+ attr_accessor :status
1148
+
1149
+ # Output only. Customer-readable message about the current status.
1150
+ # Corresponds to the JSON property `statusDetail`
1151
+ # @return [String]
1152
+ attr_accessor :status_detail
1153
+
1154
+ # Required. The operations to be performed on the workspace.
1155
+ # Corresponds to the JSON property `steps`
1156
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep>]
1157
+ attr_accessor :steps
1158
+
1159
+ # Substitutions data for `Build` resource.
1160
+ # Corresponds to the JSON property `substitutions`
1161
+ # @return [Hash<String,String>]
1162
+ attr_accessor :substitutions
1163
+
1164
+ # Tags for annotation of a `Build`. These are not docker tags.
1165
+ # Corresponds to the JSON property `tags`
1166
+ # @return [Array<String>]
1167
+ attr_accessor :tags
1168
+
1169
+ # Amount of time that this build should be allowed to run, to second granularity.
1170
+ # If this amount of time elapses, work on the build will cease and the build
1171
+ # status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default
1172
+ # time is ten minutes.
1173
+ # Corresponds to the JSON property `timeout`
1174
+ # @return [String]
1175
+ attr_accessor :timeout
1176
+
1177
+ # Output only. Stores timing information for phases of the build. Valid keys are:
1178
+ # * BUILD: time to execute all build steps. * PUSH: time to push all specified
1179
+ # images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up
1180
+ # build. If the build does not specify source or images, these keys will not be
1181
+ # included.
1182
+ # Corresponds to the JSON property `timing`
1183
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan>]
1184
+ attr_accessor :timing
1185
+
1186
+ # Output only. Non-fatal problems encountered during the execution of the build.
1187
+ # Corresponds to the JSON property `warnings`
1188
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning>]
1189
+ attr_accessor :warnings
1190
+
1191
+ def initialize(**args)
1192
+ update!(**args)
1193
+ end
1194
+
1195
+ # Update properties of this object
1196
+ def update!(**args)
1197
+ @approval = args[:approval] if args.key?(:approval)
1198
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1199
+ @available_secrets = args[:available_secrets] if args.key?(:available_secrets)
1200
+ @build_trigger_id = args[:build_trigger_id] if args.key?(:build_trigger_id)
1201
+ @create_time = args[:create_time] if args.key?(:create_time)
1202
+ @failure_info = args[:failure_info] if args.key?(:failure_info)
1203
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
1204
+ @id = args[:id] if args.key?(:id)
1205
+ @images = args[:images] if args.key?(:images)
1206
+ @log_url = args[:log_url] if args.key?(:log_url)
1207
+ @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket)
1208
+ @name = args[:name] if args.key?(:name)
1209
+ @options = args[:options] if args.key?(:options)
1210
+ @project_id = args[:project_id] if args.key?(:project_id)
1211
+ @queue_ttl = args[:queue_ttl] if args.key?(:queue_ttl)
1212
+ @results = args[:results] if args.key?(:results)
1213
+ @secrets = args[:secrets] if args.key?(:secrets)
1214
+ @service_account = args[:service_account] if args.key?(:service_account)
1215
+ @source = args[:source] if args.key?(:source)
1216
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
1217
+ @start_time = args[:start_time] if args.key?(:start_time)
1218
+ @status = args[:status] if args.key?(:status)
1219
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1220
+ @steps = args[:steps] if args.key?(:steps)
1221
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1222
+ @tags = args[:tags] if args.key?(:tags)
1223
+ @timeout = args[:timeout] if args.key?(:timeout)
1224
+ @timing = args[:timing] if args.key?(:timing)
1225
+ @warnings = args[:warnings] if args.key?(:warnings)
1226
+ end
1227
+ end
1228
+
1229
+ # BuildApproval describes a build's approval configuration, state, and result.
1230
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval
1231
+ include Google::Apis::Core::Hashable
1232
+
1233
+ # ApprovalConfig describes configuration for manual approval of a build.
1234
+ # Corresponds to the JSON property `config`
1235
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig]
1236
+ attr_accessor :config
1237
+
1238
+ # ApprovalResult describes the decision and associated metadata of a manual
1239
+ # approval of a build.
1240
+ # Corresponds to the JSON property `result`
1241
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult]
1242
+ attr_accessor :result
1243
+
1244
+ # Output only. The state of this build's approval.
1245
+ # Corresponds to the JSON property `state`
1246
+ # @return [String]
1247
+ attr_accessor :state
1248
+
1249
+ def initialize(**args)
1250
+ update!(**args)
1251
+ end
1252
+
1253
+ # Update properties of this object
1254
+ def update!(**args)
1255
+ @config = args[:config] if args.key?(:config)
1256
+ @result = args[:result] if args.key?(:result)
1257
+ @state = args[:state] if args.key?(:state)
1258
+ end
1259
+ end
1260
+
1261
+ # A fatal problem encountered during the execution of the build.
1262
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo
1263
+ include Google::Apis::Core::Hashable
1264
+
1265
+ # Explains the failure issue in more detail using hard-coded text.
1266
+ # Corresponds to the JSON property `detail`
1267
+ # @return [String]
1268
+ attr_accessor :detail
1269
+
1270
+ # The name of the failure.
1271
+ # Corresponds to the JSON property `type`
1272
+ # @return [String]
1273
+ attr_accessor :type
1274
+
1275
+ def initialize(**args)
1276
+ update!(**args)
1277
+ end
1278
+
1279
+ # Update properties of this object
1280
+ def update!(**args)
1281
+ @detail = args[:detail] if args.key?(:detail)
1282
+ @type = args[:type] if args.key?(:type)
1283
+ end
1284
+ end
1285
+
1286
+ # Optional arguments to enable specific features of builds.
1287
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions
1288
+ include Google::Apis::Core::Hashable
1289
+
1290
+ # Requested disk size for the VM that runs the build. Note that this is *NOT* "
1291
+ # disk free"; some of the space will be used by the operating system and build
1292
+ # utilities. Also note that this is the minimum disk size that will be allocated
1293
+ # for the build -- the build may run with a larger disk than requested. At
1294
+ # present, the maximum disk size is 1000GB; builds that request more than the
1295
+ # maximum are rejected with an error.
1296
+ # Corresponds to the JSON property `diskSizeGb`
1297
+ # @return [Fixnum]
1298
+ attr_accessor :disk_size_gb
1299
+
1300
+ # Option to specify whether or not to apply bash style string operations to the
1301
+ # substitutions. NOTE: this is always enabled for triggered builds and cannot be
1302
+ # overridden in the build configuration file.
1303
+ # Corresponds to the JSON property `dynamicSubstitutions`
1304
+ # @return [Boolean]
1305
+ attr_accessor :dynamic_substitutions
1306
+ alias_method :dynamic_substitutions?, :dynamic_substitutions
1307
+
1308
+ # A list of global environment variable definitions that will exist for all
1309
+ # build steps in this build. If a variable is defined in both globally and in a
1310
+ # build step, the variable will use the build step value. The elements are of
1311
+ # the form "KEY=VALUE" for the environment variable "KEY" being given the value "
1312
+ # VALUE".
1313
+ # Corresponds to the JSON property `env`
1314
+ # @return [Array<String>]
1315
+ attr_accessor :env
1316
+
1317
+ # Option to define build log streaming behavior to Google Cloud Storage.
1318
+ # Corresponds to the JSON property `logStreamingOption`
1319
+ # @return [String]
1320
+ attr_accessor :log_streaming_option
1321
+
1322
+ # Option to specify the logging mode, which determines if and where build logs
1323
+ # are stored.
1324
+ # Corresponds to the JSON property `logging`
1325
+ # @return [String]
1326
+ attr_accessor :logging
1327
+
1328
+ # Compute Engine machine type on which to run the build.
1329
+ # Corresponds to the JSON property `machineType`
1330
+ # @return [String]
1331
+ attr_accessor :machine_type
1332
+
1333
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1334
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1335
+ # run-builds-in-private-pool) for more information.
1336
+ # Corresponds to the JSON property `pool`
1337
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption]
1338
+ attr_accessor :pool
1339
+
1340
+ # Requested verifiability options.
1341
+ # Corresponds to the JSON property `requestedVerifyOption`
1342
+ # @return [String]
1343
+ attr_accessor :requested_verify_option
1344
+
1345
+ # A list of global environment variables, which are encrypted using a Cloud Key
1346
+ # Management Service crypto key. These values must be specified in the build's `
1347
+ # Secret`. These variables will be available to all build steps in this build.
1348
+ # Corresponds to the JSON property `secretEnv`
1349
+ # @return [Array<String>]
1350
+ attr_accessor :secret_env
1351
+
1352
+ # Requested hash for SourceProvenance.
1353
+ # Corresponds to the JSON property `sourceProvenanceHash`
1354
+ # @return [Array<String>]
1355
+ attr_accessor :source_provenance_hash
1356
+
1357
+ # Option to specify behavior when there is an error in the substitution checks.
1358
+ # NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be
1359
+ # overridden in the build configuration file.
1360
+ # Corresponds to the JSON property `substitutionOption`
1361
+ # @return [String]
1362
+ attr_accessor :substitution_option
1363
+
1364
+ # Global list of volumes to mount for ALL build steps Each volume is created as
1365
+ # an empty volume prior to starting the build process. Upon completion of the
1366
+ # build, volumes and their contents are discarded. Global volume names and paths
1367
+ # cannot conflict with the volumes defined a build step. Using a global volume
1368
+ # in a build with only one step is not valid as it is indicative of a build
1369
+ # request with an incorrect configuration.
1370
+ # Corresponds to the JSON property `volumes`
1371
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1372
+ attr_accessor :volumes
1373
+
1374
+ # This field deprecated; please use `pool.name` instead.
1375
+ # Corresponds to the JSON property `workerPool`
1376
+ # @return [String]
1377
+ attr_accessor :worker_pool
1378
+
1379
+ def initialize(**args)
1380
+ update!(**args)
1381
+ end
1382
+
1383
+ # Update properties of this object
1384
+ def update!(**args)
1385
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1386
+ @dynamic_substitutions = args[:dynamic_substitutions] if args.key?(:dynamic_substitutions)
1387
+ @env = args[:env] if args.key?(:env)
1388
+ @log_streaming_option = args[:log_streaming_option] if args.key?(:log_streaming_option)
1389
+ @logging = args[:logging] if args.key?(:logging)
1390
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1391
+ @pool = args[:pool] if args.key?(:pool)
1392
+ @requested_verify_option = args[:requested_verify_option] if args.key?(:requested_verify_option)
1393
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1394
+ @source_provenance_hash = args[:source_provenance_hash] if args.key?(:source_provenance_hash)
1395
+ @substitution_option = args[:substitution_option] if args.key?(:substitution_option)
1396
+ @volumes = args[:volumes] if args.key?(:volumes)
1397
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1398
+ end
1399
+ end
1400
+
1401
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1402
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1403
+ # run-builds-in-private-pool) for more information.
1404
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption
1405
+ include Google::Apis::Core::Hashable
1406
+
1407
+ # The `WorkerPool` resource to execute the build on. You must have `cloudbuild.
1408
+ # workerpools.use` on the project hosting the WorkerPool. Format projects/`
1409
+ # project`/locations/`location`/workerPools/`workerPoolId`
1410
+ # Corresponds to the JSON property `name`
1411
+ # @return [String]
1412
+ attr_accessor :name
1413
+
1414
+ def initialize(**args)
1415
+ update!(**args)
1416
+ end
1417
+
1418
+ # Update properties of this object
1419
+ def update!(**args)
1420
+ @name = args[:name] if args.key?(:name)
1421
+ end
1422
+ end
1423
+
1424
+ # A step in the build pipeline.
1425
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep
1426
+ include Google::Apis::Core::Hashable
1427
+
1428
+ # A list of arguments that will be presented to the step when it is started. If
1429
+ # the image used to run the step's container has an entrypoint, the `args` are
1430
+ # used as arguments to that entrypoint. If the image does not define an
1431
+ # entrypoint, the first element in args is used as the entrypoint, and the
1432
+ # remainder will be used as arguments.
1433
+ # Corresponds to the JSON property `args`
1434
+ # @return [Array<String>]
1435
+ attr_accessor :args
1436
+
1437
+ # Working directory to use when running this step's container. If this value is
1438
+ # a relative path, it is relative to the build's working directory. If this
1439
+ # value is absolute, it may be outside the build's working directory, in which
1440
+ # case the contents of the path may not be persisted across build step
1441
+ # executions, unless a `volume` for that path is specified. If the build
1442
+ # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
1443
+ # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
1444
+ # Corresponds to the JSON property `dir`
1445
+ # @return [String]
1446
+ attr_accessor :dir
1447
+
1448
+ # Entrypoint to be used instead of the build step image's default entrypoint. If
1449
+ # unset, the image's default entrypoint is used.
1450
+ # Corresponds to the JSON property `entrypoint`
1451
+ # @return [String]
1452
+ attr_accessor :entrypoint
1453
+
1454
+ # A list of environment variable definitions to be used when running a step. The
1455
+ # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
1456
+ # given the value "VALUE".
1457
+ # Corresponds to the JSON property `env`
1458
+ # @return [Array<String>]
1459
+ attr_accessor :env
1460
+
1461
+ # Unique identifier for this build step, used in `wait_for` to reference this
1462
+ # build step as a dependency.
1463
+ # Corresponds to the JSON property `id`
1464
+ # @return [String]
1465
+ attr_accessor :id
1466
+
1467
+ # Required. The name of the container image that will run this particular build
1468
+ # step. If the image is available in the host's Docker daemon's cache, it will
1469
+ # be run directly. If not, the host will attempt to pull the image first, using
1470
+ # the builder service account's credentials if necessary. The Docker daemon's
1471
+ # cache will already have the latest versions of all of the officially supported
1472
+ # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
1473
+ # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
1474
+ # have cached many of the layers for some popular images, like "ubuntu", "debian"
1475
+ # , but they will be refreshed at the time you attempt to use them. If you built
1476
+ # an image in a previous build step, it will be stored in the host's Docker
1477
+ # daemon's cache and is available to use as the name for a later build step.
1478
+ # Corresponds to the JSON property `name`
1479
+ # @return [String]
1480
+ attr_accessor :name
1481
+
1482
+ # Start and end times for a build execution phase.
1483
+ # Corresponds to the JSON property `pullTiming`
1484
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1485
+ attr_accessor :pull_timing
1486
+
1487
+ # A shell script to be executed in the step. When script is provided, the user
1488
+ # cannot specify the entrypoint or args.
1489
+ # Corresponds to the JSON property `script`
1490
+ # @return [String]
1491
+ attr_accessor :script
1492
+
1493
+ # A list of environment variables which are encrypted using a Cloud Key
1494
+ # Management Service crypto key. These values must be specified in the build's `
1495
+ # Secret`.
1496
+ # Corresponds to the JSON property `secretEnv`
1497
+ # @return [Array<String>]
1498
+ attr_accessor :secret_env
1499
+
1500
+ # Output only. Status of the build step. At this time, build step status is only
1501
+ # updated on build completion; step status is not updated in real-time as the
1502
+ # build progresses.
1503
+ # Corresponds to the JSON property `status`
1504
+ # @return [String]
1505
+ attr_accessor :status
1506
+
1507
+ # Time limit for executing this build step. If not defined, the step has no time
1508
+ # limit and will be allowed to continue to run until either it completes or the
1509
+ # build itself times out.
1510
+ # Corresponds to the JSON property `timeout`
1511
+ # @return [String]
1512
+ attr_accessor :timeout
1513
+
1514
+ # Start and end times for a build execution phase.
1515
+ # Corresponds to the JSON property `timing`
1516
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1517
+ attr_accessor :timing
1518
+
1519
+ # List of volumes to mount into the build step. Each volume is created as an
1520
+ # empty volume prior to execution of the build step. Upon completion of the
1521
+ # build, volumes and their contents are discarded. Using a named volume in only
1522
+ # one step is not valid as it is indicative of a build request with an incorrect
1523
+ # configuration.
1524
+ # Corresponds to the JSON property `volumes`
1525
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1526
+ attr_accessor :volumes
1527
+
1528
+ # The ID(s) of the step(s) that this build step depends on. This build step will
1529
+ # not start until all the build steps in `wait_for` have completed successfully.
1530
+ # If `wait_for` is empty, this build step will start when all previous build
1531
+ # steps in the `Build.Steps` list have completed successfully.
1532
+ # Corresponds to the JSON property `waitFor`
1533
+ # @return [Array<String>]
1534
+ attr_accessor :wait_for
1535
+
1536
+ def initialize(**args)
1537
+ update!(**args)
1538
+ end
1539
+
1540
+ # Update properties of this object
1541
+ def update!(**args)
1542
+ @args = args[:args] if args.key?(:args)
1543
+ @dir = args[:dir] if args.key?(:dir)
1544
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
1545
+ @env = args[:env] if args.key?(:env)
1546
+ @id = args[:id] if args.key?(:id)
1547
+ @name = args[:name] if args.key?(:name)
1548
+ @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
1549
+ @script = args[:script] if args.key?(:script)
1550
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1551
+ @status = args[:status] if args.key?(:status)
1552
+ @timeout = args[:timeout] if args.key?(:timeout)
1553
+ @timing = args[:timing] if args.key?(:timing)
1554
+ @volumes = args[:volumes] if args.key?(:volumes)
1555
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
1556
+ end
1557
+ end
1558
+
1559
+ # A non-fatal problem encountered during the execution of the build.
1560
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning
1561
+ include Google::Apis::Core::Hashable
1562
+
1563
+ # The priority for this warning.
1564
+ # Corresponds to the JSON property `priority`
1565
+ # @return [String]
1566
+ attr_accessor :priority
1567
+
1568
+ # Explanation of the warning generated.
1569
+ # Corresponds to the JSON property `text`
1570
+ # @return [String]
1571
+ attr_accessor :text
1572
+
1573
+ def initialize(**args)
1574
+ update!(**args)
1575
+ end
1576
+
1577
+ # Update properties of this object
1578
+ def update!(**args)
1579
+ @priority = args[:priority] if args.key?(:priority)
1580
+ @text = args[:text] if args.key?(:text)
1581
+ end
1582
+ end
1583
+
1584
+ # An image built by the pipeline.
1585
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage
1586
+ include Google::Apis::Core::Hashable
1587
+
1588
+ # Docker Registry 2.0 digest.
1589
+ # Corresponds to the JSON property `digest`
1590
+ # @return [String]
1591
+ attr_accessor :digest
1592
+
1593
+ # Name used to push the container image to Google Container Registry, as
1594
+ # presented to `docker push`.
1595
+ # Corresponds to the JSON property `name`
1596
+ # @return [String]
1597
+ attr_accessor :name
1598
+
1599
+ # Start and end times for a build execution phase.
1600
+ # Corresponds to the JSON property `pushTiming`
1601
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1602
+ attr_accessor :push_timing
1603
+
1604
+ def initialize(**args)
1605
+ update!(**args)
1606
+ end
1607
+
1608
+ # Update properties of this object
1609
+ def update!(**args)
1610
+ @digest = args[:digest] if args.key?(:digest)
1611
+ @name = args[:name] if args.key?(:name)
1612
+ @push_timing = args[:push_timing] if args.key?(:push_timing)
1613
+ end
1614
+ end
1615
+
1616
+ # Container message for hashes of byte content of files, used in
1617
+ # SourceProvenance messages to verify integrity of source input to the build.
1618
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes
1619
+ include Google::Apis::Core::Hashable
1620
+
1621
+ # Collection of file hashes.
1622
+ # Corresponds to the JSON property `fileHash`
1623
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Hash>]
1624
+ attr_accessor :file_hash
1625
+
1626
+ def initialize(**args)
1627
+ update!(**args)
1628
+ end
1629
+
1630
+ # Update properties of this object
1631
+ def update!(**args)
1632
+ @file_hash = args[:file_hash] if args.key?(:file_hash)
1633
+ end
1634
+ end
1635
+
1636
+ # Container message for hash values.
1637
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Hash
1638
+ include Google::Apis::Core::Hashable
1639
+
1640
+ # The type of hash that was performed.
1641
+ # Corresponds to the JSON property `type`
1642
+ # @return [String]
1643
+ attr_accessor :type
1644
+
1645
+ # The hash value.
1646
+ # Corresponds to the JSON property `value`
1647
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1648
+ # @return [String]
1649
+ attr_accessor :value
1650
+
1651
+ def initialize(**args)
1652
+ update!(**args)
1653
+ end
1654
+
1655
+ # Update properties of this object
1656
+ def update!(**args)
1657
+ @type = args[:type] if args.key?(:type)
1658
+ @value = args[:value] if args.key?(:value)
1659
+ end
1660
+ end
1661
+
1662
+ # Pairs a set of secret environment variables mapped to encrypted values with
1663
+ # the Cloud KMS key to use to decrypt the value.
1664
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret
1665
+ include Google::Apis::Core::Hashable
1666
+
1667
+ # Map of environment variable name to its encrypted value. Secret environment
1668
+ # variables must be unique across all of a build's secrets, and must be used by
1669
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1670
+ # most 100 secret values across all of a build's secrets.
1671
+ # Corresponds to the JSON property `envMap`
1672
+ # @return [Hash<String,String>]
1673
+ attr_accessor :env_map
1674
+
1675
+ # Resource name of Cloud KMS crypto key to decrypt the encrypted value. In
1676
+ # format: projects/*/locations/*/keyRings/*/cryptoKeys/*
1677
+ # Corresponds to the JSON property `kmsKeyName`
1678
+ # @return [String]
1679
+ attr_accessor :kms_key_name
1680
+
1681
+ def initialize(**args)
1682
+ update!(**args)
1683
+ end
1684
+
1685
+ # Update properties of this object
1686
+ def update!(**args)
1687
+ @env_map = args[:env_map] if args.key?(:env_map)
1688
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1689
+ end
1690
+ end
1691
+
1692
+ # Location of the source in a Google Cloud Source Repository.
1693
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource
1694
+ include Google::Apis::Core::Hashable
1695
+
1696
+ # Regex matching branches to build. The syntax of the regular expressions
1697
+ # accepted is the syntax accepted by RE2 and described at https://github.com/
1698
+ # google/re2/wiki/Syntax
1699
+ # Corresponds to the JSON property `branchName`
1700
+ # @return [String]
1701
+ attr_accessor :branch_name
1702
+
1703
+ # Explicit commit SHA to build.
1704
+ # Corresponds to the JSON property `commitSha`
1705
+ # @return [String]
1706
+ attr_accessor :commit_sha
1707
+
1708
+ # Directory, relative to the source root, in which to run the build. This must
1709
+ # be a relative path. If a step's `dir` is specified and is an absolute path,
1710
+ # this value is ignored for that step's execution.
1711
+ # Corresponds to the JSON property `dir`
1712
+ # @return [String]
1713
+ attr_accessor :dir
1714
+
1715
+ # Only trigger a build if the revision regex does NOT match the revision regex.
1716
+ # Corresponds to the JSON property `invertRegex`
1717
+ # @return [Boolean]
1718
+ attr_accessor :invert_regex
1719
+ alias_method :invert_regex?, :invert_regex
1720
+
1721
+ # ID of the project that owns the Cloud Source Repository. If omitted, the
1722
+ # project ID requesting the build is assumed.
1723
+ # Corresponds to the JSON property `projectId`
1724
+ # @return [String]
1725
+ attr_accessor :project_id
1726
+
1727
+ # Name of the Cloud Source Repository.
1728
+ # Corresponds to the JSON property `repoName`
1729
+ # @return [String]
1730
+ attr_accessor :repo_name
1731
+
1732
+ # Substitutions to use in a triggered build. Should only be used with
1733
+ # RunBuildTrigger
1734
+ # Corresponds to the JSON property `substitutions`
1735
+ # @return [Hash<String,String>]
1736
+ attr_accessor :substitutions
1737
+
1738
+ # Regex matching tags to build. The syntax of the regular expressions accepted
1739
+ # is the syntax accepted by RE2 and described at https://github.com/google/re2/
1740
+ # wiki/Syntax
1741
+ # Corresponds to the JSON property `tagName`
1742
+ # @return [String]
1743
+ attr_accessor :tag_name
1744
+
1745
+ def initialize(**args)
1746
+ update!(**args)
1747
+ end
1748
+
1749
+ # Update properties of this object
1750
+ def update!(**args)
1751
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
1752
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
1753
+ @dir = args[:dir] if args.key?(:dir)
1754
+ @invert_regex = args[:invert_regex] if args.key?(:invert_regex)
1755
+ @project_id = args[:project_id] if args.key?(:project_id)
1756
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1757
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1758
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
1759
+ end
1760
+ end
1761
+
1762
+ # Artifacts created by the build pipeline.
1763
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Results
1764
+ include Google::Apis::Core::Hashable
1765
+
1766
+ # Path to the artifact manifest. Only populated when artifacts are uploaded.
1767
+ # Corresponds to the JSON property `artifactManifest`
1768
+ # @return [String]
1769
+ attr_accessor :artifact_manifest
1770
+
1771
+ # Start and end times for a build execution phase.
1772
+ # Corresponds to the JSON property `artifactTiming`
1773
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1774
+ attr_accessor :artifact_timing
1775
+
1776
+ # List of build step digests, in the order corresponding to build step indices.
1777
+ # Corresponds to the JSON property `buildStepImages`
1778
+ # @return [Array<String>]
1779
+ attr_accessor :build_step_images
1780
+
1781
+ # List of build step outputs, produced by builder images, in the order
1782
+ # corresponding to build step indices. [Cloud Builders](https://cloud.google.com/
1783
+ # cloud-build/docs/cloud-builders) can produce this output by writing to `$
1784
+ # BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.
1785
+ # Corresponds to the JSON property `buildStepOutputs`
1786
+ # @return [Array<String>]
1787
+ attr_accessor :build_step_outputs
1788
+
1789
+ # Container images that were built as a part of the build.
1790
+ # Corresponds to the JSON property `images`
1791
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage>]
1792
+ attr_accessor :images
1793
+
1794
+ # Number of artifacts uploaded. Only populated when artifacts are uploaded.
1795
+ # Corresponds to the JSON property `numArtifacts`
1796
+ # @return [Fixnum]
1797
+ attr_accessor :num_artifacts
1798
+
1799
+ def initialize(**args)
1800
+ update!(**args)
1801
+ end
1802
+
1803
+ # Update properties of this object
1804
+ def update!(**args)
1805
+ @artifact_manifest = args[:artifact_manifest] if args.key?(:artifact_manifest)
1806
+ @artifact_timing = args[:artifact_timing] if args.key?(:artifact_timing)
1807
+ @build_step_images = args[:build_step_images] if args.key?(:build_step_images)
1808
+ @build_step_outputs = args[:build_step_outputs] if args.key?(:build_step_outputs)
1809
+ @images = args[:images] if args.key?(:images)
1810
+ @num_artifacts = args[:num_artifacts] if args.key?(:num_artifacts)
1811
+ end
1812
+ end
1813
+
1814
+ # Pairs a set of secret environment variables containing encrypted values with
1815
+ # the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `
1816
+ # available_secrets` instead of using `kmsKeyName` with `secret`. For
1817
+ # instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/
1818
+ # use-encrypted-credentials.
1819
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secret
703
1820
  include Google::Apis::Core::Hashable
704
1821
 
1822
+ # Cloud KMS key name to use to decrypt these envs.
1823
+ # Corresponds to the JSON property `kmsKeyName`
1824
+ # @return [String]
1825
+ attr_accessor :kms_key_name
1826
+
1827
+ # Map of environment variable name to its encrypted value. Secret environment
1828
+ # variables must be unique across all of a build's secrets, and must be used by
1829
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1830
+ # most 100 secret values across all of a build's secrets.
1831
+ # Corresponds to the JSON property `secretEnv`
1832
+ # @return [Hash<String,String>]
1833
+ attr_accessor :secret_env
1834
+
705
1835
  def initialize(**args)
706
1836
  update!(**args)
707
1837
  end
708
1838
 
709
1839
  # Update properties of this object
710
1840
  def update!(**args)
1841
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1842
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
711
1843
  end
712
1844
  end
713
1845
 
714
- # The category to which the update belongs.
715
- class Category
1846
+ # Pairs a secret environment variable with a SecretVersion in Secret Manager.
1847
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret
716
1848
  include Google::Apis::Core::Hashable
717
1849
 
718
- # The identifier of the category.
719
- # Corresponds to the JSON property `categoryId`
1850
+ # Environment variable name to associate with the secret. Secret environment
1851
+ # variables must be unique across all of a build's secrets, and must be used by
1852
+ # at least one build step.
1853
+ # Corresponds to the JSON property `env`
720
1854
  # @return [String]
721
- attr_accessor :category_id
1855
+ attr_accessor :env
722
1856
 
723
- # The localized name of the category.
724
- # Corresponds to the JSON property `name`
1857
+ # Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*
1858
+ # Corresponds to the JSON property `versionName`
725
1859
  # @return [String]
726
- attr_accessor :name
1860
+ attr_accessor :version_name
727
1861
 
728
1862
  def initialize(**args)
729
1863
  update!(**args)
@@ -731,24 +1865,24 @@ module Google
731
1865
 
732
1866
  # Update properties of this object
733
1867
  def update!(**args)
734
- @category_id = args[:category_id] if args.key?(:category_id)
735
- @name = args[:name] if args.key?(:name)
1868
+ @env = args[:env] if args.key?(:env)
1869
+ @version_name = args[:version_name] if args.key?(:version_name)
736
1870
  end
737
1871
  end
738
1872
 
739
- # A compliance check that is a CIS benchmark.
740
- class CisBenchmark
1873
+ # Secrets and secret environment variables.
1874
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets
741
1875
  include Google::Apis::Core::Hashable
742
1876
 
743
- #
744
- # Corresponds to the JSON property `profileLevel`
745
- # @return [Fixnum]
746
- attr_accessor :profile_level
1877
+ # Secrets encrypted with KMS key and the associated secret environment variable.
1878
+ # Corresponds to the JSON property `inline`
1879
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret>]
1880
+ attr_accessor :inline
747
1881
 
748
- #
749
- # Corresponds to the JSON property `severity`
750
- # @return [String]
751
- attr_accessor :severity
1882
+ # Secrets in Secret Manager and associated secret environment variable.
1883
+ # Corresponds to the JSON property `secretManager`
1884
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret>]
1885
+ attr_accessor :secret_manager
752
1886
 
753
1887
  def initialize(**args)
754
1888
  update!(**args)
@@ -756,30 +1890,31 @@ module Google
756
1890
 
757
1891
  # Update properties of this object
758
1892
  def update!(**args)
759
- @profile_level = args[:profile_level] if args.key?(:profile_level)
760
- @severity = args[:severity] if args.key?(:severity)
1893
+ @inline = args[:inline] if args.key?(:inline)
1894
+ @secret_manager = args[:secret_manager] if args.key?(:secret_manager)
761
1895
  end
762
1896
  end
763
1897
 
764
- # A CloudRepoSourceContext denotes a particular revision in a Google Cloud
765
- # Source Repo.
766
- class CloudRepoSourceContext
1898
+ # Location of the source in a supported storage service.
1899
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source
767
1900
  include Google::Apis::Core::Hashable
768
1901
 
769
- # An alias to a repo revision.
770
- # Corresponds to the JSON property `aliasContext`
771
- # @return [Google::Apis::ContaineranalysisV1::AliasContext]
772
- attr_accessor :alias_context
1902
+ # Location of the source in a Google Cloud Source Repository.
1903
+ # Corresponds to the JSON property `repoSource`
1904
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1905
+ attr_accessor :repo_source
773
1906
 
774
- # A unique identifier for a Cloud Repo.
775
- # Corresponds to the JSON property `repoId`
776
- # @return [Google::Apis::ContaineranalysisV1::RepoId]
777
- attr_accessor :repo_id
1907
+ # Location of the source in an archive file in Google Cloud Storage.
1908
+ # Corresponds to the JSON property `storageSource`
1909
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1910
+ attr_accessor :storage_source
778
1911
 
779
- # A revision ID.
780
- # Corresponds to the JSON property `revisionId`
781
- # @return [String]
782
- attr_accessor :revision_id
1912
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1913
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1914
+ # builders/tree/master/gcs-fetcher).
1915
+ # Corresponds to the JSON property `storageSourceManifest`
1916
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1917
+ attr_accessor :storage_source_manifest
783
1918
 
784
1919
  def initialize(**args)
785
1920
  update!(**args)
@@ -787,48 +1922,44 @@ module Google
787
1922
 
788
1923
  # Update properties of this object
789
1924
  def update!(**args)
790
- @alias_context = args[:alias_context] if args.key?(:alias_context)
791
- @repo_id = args[:repo_id] if args.key?(:repo_id)
792
- @revision_id = args[:revision_id] if args.key?(:revision_id)
1925
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
1926
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
1927
+ @storage_source_manifest = args[:storage_source_manifest] if args.key?(:storage_source_manifest)
793
1928
  end
794
1929
  end
795
1930
 
796
- # Command describes a step performed as part of the build pipeline.
797
- class Command
1931
+ # Provenance of the source. Ways to find the original source, or verify that
1932
+ # some source was used for this build.
1933
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance
798
1934
  include Google::Apis::Core::Hashable
799
1935
 
800
- # Command-line arguments used when executing this command.
801
- # Corresponds to the JSON property `args`
802
- # @return [Array<String>]
803
- attr_accessor :args
804
-
805
- # Working directory (relative to project source root) used when running this
806
- # command.
807
- # Corresponds to the JSON property `dir`
808
- # @return [String]
809
- attr_accessor :dir
810
-
811
- # Environment variables set before running this command.
812
- # Corresponds to the JSON property `env`
813
- # @return [Array<String>]
814
- attr_accessor :env
1936
+ # Output only. Hash(es) of the build source, which can be used to verify that
1937
+ # the original source integrity was maintained in the build. Note that `
1938
+ # FileHashes` will only be populated if `BuildOptions` has requested a `
1939
+ # SourceProvenanceHash`. The keys to this map are file paths used as build
1940
+ # source and the values contain the hash values for those files. If the build
1941
+ # source came in a single package such as a gzipped tarfile (`.tar.gz`), the `
1942
+ # FileHash` will be for the single path to that file.
1943
+ # Corresponds to the JSON property `fileHashes`
1944
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes>]
1945
+ attr_accessor :file_hashes
815
1946
 
816
- # Optional unique identifier for this command, used in wait_for to reference
817
- # this command as a dependency.
818
- # Corresponds to the JSON property `id`
819
- # @return [String]
820
- attr_accessor :id
1947
+ # Location of the source in a Google Cloud Source Repository.
1948
+ # Corresponds to the JSON property `resolvedRepoSource`
1949
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1950
+ attr_accessor :resolved_repo_source
821
1951
 
822
- # Required. Name of the command, as presented on the command line, or if the
823
- # command is packaged as a Docker container, as presented to `docker pull`.
824
- # Corresponds to the JSON property `name`
825
- # @return [String]
826
- attr_accessor :name
1952
+ # Location of the source in an archive file in Google Cloud Storage.
1953
+ # Corresponds to the JSON property `resolvedStorageSource`
1954
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1955
+ attr_accessor :resolved_storage_source
827
1956
 
828
- # The ID(s) of the command(s) that this command depends on.
829
- # Corresponds to the JSON property `waitFor`
830
- # @return [Array<String>]
831
- attr_accessor :wait_for
1957
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1958
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1959
+ # builders/tree/master/gcs-fetcher).
1960
+ # Corresponds to the JSON property `resolvedStorageSourceManifest`
1961
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1962
+ attr_accessor :resolved_storage_source_manifest
832
1963
 
833
1964
  def initialize(**args)
834
1965
  update!(**args)
@@ -836,39 +1967,35 @@ module Google
836
1967
 
837
1968
  # Update properties of this object
838
1969
  def update!(**args)
839
- @args = args[:args] if args.key?(:args)
840
- @dir = args[:dir] if args.key?(:dir)
841
- @env = args[:env] if args.key?(:env)
842
- @id = args[:id] if args.key?(:id)
843
- @name = args[:name] if args.key?(:name)
844
- @wait_for = args[:wait_for] if args.key?(:wait_for)
1970
+ @file_hashes = args[:file_hashes] if args.key?(:file_hashes)
1971
+ @resolved_repo_source = args[:resolved_repo_source] if args.key?(:resolved_repo_source)
1972
+ @resolved_storage_source = args[:resolved_storage_source] if args.key?(:resolved_storage_source)
1973
+ @resolved_storage_source_manifest = args[:resolved_storage_source_manifest] if args.key?(:resolved_storage_source_manifest)
845
1974
  end
846
1975
  end
847
1976
 
848
- # Indicates that the builder claims certain fields in this message to be
849
- # complete.
850
- class Completeness
1977
+ # Location of the source in an archive file in Google Cloud Storage.
1978
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource
851
1979
  include Google::Apis::Core::Hashable
852
1980
 
853
- # If true, the builder claims that recipe.arguments is complete, meaning that
854
- # all external inputs are properly captured in the recipe.
855
- # Corresponds to the JSON property `arguments`
856
- # @return [Boolean]
857
- attr_accessor :arguments
858
- alias_method :arguments?, :arguments
1981
+ # Google Cloud Storage bucket containing the source (see [Bucket Name
1982
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1983
+ # ).
1984
+ # Corresponds to the JSON property `bucket`
1985
+ # @return [String]
1986
+ attr_accessor :bucket
859
1987
 
860
- # If true, the builder claims that recipe.environment is claimed to be complete.
861
- # Corresponds to the JSON property `environment`
862
- # @return [Boolean]
863
- attr_accessor :environment
864
- alias_method :environment?, :environment
1988
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1989
+ # the latest generation will be used.
1990
+ # Corresponds to the JSON property `generation`
1991
+ # @return [Fixnum]
1992
+ attr_accessor :generation
865
1993
 
866
- # If true, the builder claims that materials are complete, usually through some
867
- # controls to prevent network access. Sometimes called "hermetic".
868
- # Corresponds to the JSON property `materials`
869
- # @return [Boolean]
870
- attr_accessor :materials
871
- alias_method :materials?, :materials
1994
+ # Google Cloud Storage object containing the source. This object must be a
1995
+ # zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.
1996
+ # Corresponds to the JSON property `object`
1997
+ # @return [String]
1998
+ attr_accessor :object
872
1999
 
873
2000
  def initialize(**args)
874
2001
  update!(**args)
@@ -876,51 +2003,36 @@ module Google
876
2003
 
877
2004
  # Update properties of this object
878
2005
  def update!(**args)
879
- @arguments = args[:arguments] if args.key?(:arguments)
880
- @environment = args[:environment] if args.key?(:environment)
881
- @materials = args[:materials] if args.key?(:materials)
2006
+ @bucket = args[:bucket] if args.key?(:bucket)
2007
+ @generation = args[:generation] if args.key?(:generation)
2008
+ @object = args[:object] if args.key?(:object)
882
2009
  end
883
2010
  end
884
2011
 
885
- #
886
- class ComplianceNote
2012
+ # Location of the source manifest in Google Cloud Storage. This feature is in
2013
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
2014
+ # builders/tree/master/gcs-fetcher).
2015
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest
887
2016
  include Google::Apis::Core::Hashable
888
2017
 
889
- # A compliance check that is a CIS benchmark.
890
- # Corresponds to the JSON property `cisBenchmark`
891
- # @return [Google::Apis::ContaineranalysisV1::CisBenchmark]
892
- attr_accessor :cis_benchmark
893
-
894
- # A description about this compliance check.
895
- # Corresponds to the JSON property `description`
896
- # @return [String]
897
- attr_accessor :description
898
-
899
- # A rationale for the existence of this compliance check.
900
- # Corresponds to the JSON property `rationale`
901
- # @return [String]
902
- attr_accessor :rationale
903
-
904
- # A description of remediation steps if the compliance check fails.
905
- # Corresponds to the JSON property `remediation`
2018
+ # Google Cloud Storage bucket containing the source manifest (see [Bucket Name
2019
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
2020
+ # ).
2021
+ # Corresponds to the JSON property `bucket`
906
2022
  # @return [String]
907
- attr_accessor :remediation
2023
+ attr_accessor :bucket
908
2024
 
909
- # Serialized scan instructions with a predefined format.
910
- # Corresponds to the JSON property `scanInstructions`
911
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
912
- # @return [String]
913
- attr_accessor :scan_instructions
2025
+ # Google Cloud Storage generation for the object. If the generation is omitted,
2026
+ # the latest generation will be used.
2027
+ # Corresponds to the JSON property `generation`
2028
+ # @return [Fixnum]
2029
+ attr_accessor :generation
914
2030
 
915
- # The title that identifies this compliance check.
916
- # Corresponds to the JSON property `title`
2031
+ # Google Cloud Storage object containing the source manifest. This object must
2032
+ # be a JSON file.
2033
+ # Corresponds to the JSON property `object`
917
2034
  # @return [String]
918
- attr_accessor :title
919
-
920
- # The OS and config versions the benchmark applies to.
921
- # Corresponds to the JSON property `version`
922
- # @return [Array<Google::Apis::ContaineranalysisV1::ComplianceVersion>]
923
- attr_accessor :version
2035
+ attr_accessor :object
924
2036
 
925
2037
  def initialize(**args)
926
2038
  update!(**args)
@@ -928,30 +2040,25 @@ module Google
928
2040
 
929
2041
  # Update properties of this object
930
2042
  def update!(**args)
931
- @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
932
- @description = args[:description] if args.key?(:description)
933
- @rationale = args[:rationale] if args.key?(:rationale)
934
- @remediation = args[:remediation] if args.key?(:remediation)
935
- @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
936
- @title = args[:title] if args.key?(:title)
937
- @version = args[:version] if args.key?(:version)
2043
+ @bucket = args[:bucket] if args.key?(:bucket)
2044
+ @generation = args[:generation] if args.key?(:generation)
2045
+ @object = args[:object] if args.key?(:object)
938
2046
  end
939
2047
  end
940
2048
 
941
- # An indication that the compliance checks in the associated ComplianceNote were
942
- # not satisfied for particular resources or a specified reason.
943
- class ComplianceOccurrence
2049
+ # Start and end times for a build execution phase.
2050
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan
944
2051
  include Google::Apis::Core::Hashable
945
2052
 
946
- #
947
- # Corresponds to the JSON property `nonComplianceReason`
2053
+ # End of time span.
2054
+ # Corresponds to the JSON property `endTime`
948
2055
  # @return [String]
949
- attr_accessor :non_compliance_reason
2056
+ attr_accessor :end_time
950
2057
 
951
- #
952
- # Corresponds to the JSON property `nonCompliantFiles`
953
- # @return [Array<Google::Apis::ContaineranalysisV1::NonCompliantFile>]
954
- attr_accessor :non_compliant_files
2058
+ # Start of time span.
2059
+ # Corresponds to the JSON property `startTime`
2060
+ # @return [String]
2061
+ attr_accessor :start_time
955
2062
 
956
2063
  def initialize(**args)
957
2064
  update!(**args)
@@ -959,27 +2066,29 @@ module Google
959
2066
 
960
2067
  # Update properties of this object
961
2068
  def update!(**args)
962
- @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
963
- @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
2069
+ @end_time = args[:end_time] if args.key?(:end_time)
2070
+ @start_time = args[:start_time] if args.key?(:start_time)
964
2071
  end
965
2072
  end
966
2073
 
967
- # Describes the CIS benchmark version that is applicable to a given OS and os
968
- # version.
969
- class ComplianceVersion
2074
+ # Volume describes a Docker container volume which is mounted into build steps
2075
+ # in order to persist files across build step execution.
2076
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Volume
970
2077
  include Google::Apis::Core::Hashable
971
2078
 
972
- # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
973
- # applicable to.
974
- # Corresponds to the JSON property `cpeUri`
2079
+ # Name of the volume to mount. Volume names must be unique per build step and
2080
+ # must be valid names for Docker volumes. Each named volume must be used by at
2081
+ # least two build steps.
2082
+ # Corresponds to the JSON property `name`
975
2083
  # @return [String]
976
- attr_accessor :cpe_uri
2084
+ attr_accessor :name
977
2085
 
978
- # The version of the benchmark. This is set to the version of the OS-specific
979
- # CIS document the benchmark is defined in.
980
- # Corresponds to the JSON property `version`
2086
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
2087
+ # with other volume paths on the same build step or with certain reserved volume
2088
+ # paths.
2089
+ # Corresponds to the JSON property `path`
981
2090
  # @return [String]
982
- attr_accessor :version
2091
+ attr_accessor :path
983
2092
 
984
2093
  def initialize(**args)
985
2094
  update!(**args)
@@ -987,8 +2096,8 @@ module Google
987
2096
 
988
2097
  # Update properties of this object
989
2098
  def update!(**args)
990
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
991
- @version = args[:version] if args.key?(:version)
2099
+ @name = args[:name] if args.key?(:name)
2100
+ @path = args[:path] if args.key?(:path)
992
2101
  end
993
2102
  end
994
2103
 
@@ -1016,7 +2125,8 @@ module Google
1016
2125
  end
1017
2126
  end
1018
2127
 
1019
- #
2128
+ # Deprecated. Prefer to use a regular Occurrence, and populate the Envelope at
2129
+ # the top level of the Occurrence.
1020
2130
  class DsseAttestationOccurrence
1021
2131
  include Google::Apis::Core::Hashable
1022
2132
 
@@ -1656,13 +2766,16 @@ module Google
1656
2766
  class GetPolicyOptions
1657
2767
  include Google::Apis::Core::Hashable
1658
2768
 
1659
- # Optional. The policy format version to be returned. Valid values are 0, 1, and
1660
- # 3. Requests specifying an invalid value will be rejected. Requests for
1661
- # policies with any conditional bindings must specify version 3. Policies
1662
- # without any conditional bindings may specify any valid value or leave the
1663
- # field unset. To learn which resources support conditions in their IAM policies,
1664
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1665
- # resource-policies).
2769
+ # Optional. The maximum policy version that will be used to format the policy.
2770
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2771
+ # rejected. Requests for policies with any conditional role bindings must
2772
+ # specify version 3. Policies with no conditional role bindings may specify any
2773
+ # valid value or leave the field unset. The policy in the response might use the
2774
+ # policy version that you specified, or it might use a lower policy version. For
2775
+ # example, if you specify version 3, but the policy has no conditional role
2776
+ # bindings, the response uses version 1. To learn which resources support
2777
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2778
+ # google.com/iam/help/conditions/resource-policies).
1666
2779
  # Corresponds to the JSON property `requestedPolicyVersion`
1667
2780
  # @return [Fixnum]
1668
2781
  attr_accessor :requested_policy_version
@@ -1921,7 +3034,12 @@ module Google
1921
3034
  class InTotoStatement
1922
3035
  include Google::Apis::Core::Hashable
1923
3036
 
1924
- # "https://in-toto.io/Provenance/v0.1" for InTotoProvenance.
3037
+ # Always "https://in-toto.io/Statement/v0.1".
3038
+ # Corresponds to the JSON property `_type`
3039
+ # @return [String]
3040
+ attr_accessor :_type
3041
+
3042
+ # "https://slsa.dev/provenance/v0.1" for SlsaProvenance.
1925
3043
  # Corresponds to the JSON property `predicateType`
1926
3044
  # @return [String]
1927
3045
  attr_accessor :predicate_type
@@ -1931,26 +3049,27 @@ module Google
1931
3049
  # @return [Google::Apis::ContaineranalysisV1::InTotoProvenance]
1932
3050
  attr_accessor :provenance
1933
3051
 
3052
+ #
3053
+ # Corresponds to the JSON property `slsaProvenance`
3054
+ # @return [Google::Apis::ContaineranalysisV1::SlsaProvenance]
3055
+ attr_accessor :slsa_provenance
3056
+
1934
3057
  #
1935
3058
  # Corresponds to the JSON property `subject`
1936
3059
  # @return [Array<Google::Apis::ContaineranalysisV1::Subject>]
1937
3060
  attr_accessor :subject
1938
3061
 
1939
- # Always "https://in-toto.io/Statement/v0.1".
1940
- # Corresponds to the JSON property `type`
1941
- # @return [String]
1942
- attr_accessor :type
1943
-
1944
3062
  def initialize(**args)
1945
3063
  update!(**args)
1946
3064
  end
1947
3065
 
1948
3066
  # Update properties of this object
1949
3067
  def update!(**args)
3068
+ @_type = args[:_type] if args.key?(:_type)
1950
3069
  @predicate_type = args[:predicate_type] if args.key?(:predicate_type)
1951
3070
  @provenance = args[:provenance] if args.key?(:provenance)
3071
+ @slsa_provenance = args[:slsa_provenance] if args.key?(:slsa_provenance)
1952
3072
  @subject = args[:subject] if args.key?(:subject)
1953
- @type = args[:type] if args.key?(:type)
1954
3073
  end
1955
3074
  end
1956
3075
 
@@ -2140,15 +3259,41 @@ module Google
2140
3259
  # @return [String]
2141
3260
  attr_accessor :cpe_uri
2142
3261
 
2143
- # The path from which we gathered that this package/version is installed.
2144
- # Corresponds to the JSON property `path`
3262
+ # The path from which we gathered that this package/version is installed.
3263
+ # Corresponds to the JSON property `path`
3264
+ # @return [String]
3265
+ attr_accessor :path
3266
+
3267
+ # Version contains structured information about the version of a package.
3268
+ # Corresponds to the JSON property `version`
3269
+ # @return [Google::Apis::ContaineranalysisV1::Version]
3270
+ attr_accessor :version
3271
+
3272
+ def initialize(**args)
3273
+ update!(**args)
3274
+ end
3275
+
3276
+ # Update properties of this object
3277
+ def update!(**args)
3278
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
3279
+ @path = args[:path] if args.key?(:path)
3280
+ @version = args[:version] if args.key?(:version)
3281
+ end
3282
+ end
3283
+
3284
+ #
3285
+ class Material
3286
+ include Google::Apis::Core::Hashable
3287
+
3288
+ #
3289
+ # Corresponds to the JSON property `digest`
3290
+ # @return [Hash<String,String>]
3291
+ attr_accessor :digest
3292
+
3293
+ #
3294
+ # Corresponds to the JSON property `uri`
2145
3295
  # @return [String]
2146
- attr_accessor :path
2147
-
2148
- # Version contains structured information about the version of a package.
2149
- # Corresponds to the JSON property `version`
2150
- # @return [Google::Apis::ContaineranalysisV1::Version]
2151
- attr_accessor :version
3296
+ attr_accessor :uri
2152
3297
 
2153
3298
  def initialize(**args)
2154
3299
  update!(**args)
@@ -2156,9 +3301,8 @@ module Google
2156
3301
 
2157
3302
  # Update properties of this object
2158
3303
  def update!(**args)
2159
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
2160
- @path = args[:path] if args.key?(:path)
2161
- @version = args[:version] if args.key?(:version)
3304
+ @digest = args[:digest] if args.key?(:digest)
3305
+ @uri = args[:uri] if args.key?(:uri)
2162
3306
  end
2163
3307
  end
2164
3308
 
@@ -2431,7 +3575,8 @@ module Google
2431
3575
  # @return [Google::Apis::ContaineranalysisV1::DiscoveryOccurrence]
2432
3576
  attr_accessor :discovery
2433
3577
 
2434
- # Describes an attestation of an artifact using dsse.
3578
+ # Deprecated. Prefer to use a regular Occurrence, and populate the Envelope at
3579
+ # the top level of the Occurrence.
2435
3580
  # Corresponds to the JSON property `dsseAttestation`
2436
3581
  # @return [Google::Apis::ContaineranalysisV1::DsseAttestationOccurrence]
2437
3582
  attr_accessor :dsse_attestation
@@ -3045,6 +4190,210 @@ module Google
3045
4190
  end
3046
4191
  end
3047
4192
 
4193
+ #
4194
+ class SlsaBuilder
4195
+ include Google::Apis::Core::Hashable
4196
+
4197
+ #
4198
+ # Corresponds to the JSON property `id`
4199
+ # @return [String]
4200
+ attr_accessor :id
4201
+
4202
+ def initialize(**args)
4203
+ update!(**args)
4204
+ end
4205
+
4206
+ # Update properties of this object
4207
+ def update!(**args)
4208
+ @id = args[:id] if args.key?(:id)
4209
+ end
4210
+ end
4211
+
4212
+ # Indicates that the builder claims certain fields in this message to be
4213
+ # complete.
4214
+ class SlsaCompleteness
4215
+ include Google::Apis::Core::Hashable
4216
+
4217
+ # If true, the builder claims that recipe.arguments is complete, meaning that
4218
+ # all external inputs are properly captured in the recipe.
4219
+ # Corresponds to the JSON property `arguments`
4220
+ # @return [Boolean]
4221
+ attr_accessor :arguments
4222
+ alias_method :arguments?, :arguments
4223
+
4224
+ # If true, the builder claims that recipe.environment is claimed to be complete.
4225
+ # Corresponds to the JSON property `environment`
4226
+ # @return [Boolean]
4227
+ attr_accessor :environment
4228
+ alias_method :environment?, :environment
4229
+
4230
+ # If true, the builder claims that materials are complete, usually through some
4231
+ # controls to prevent network access. Sometimes called "hermetic".
4232
+ # Corresponds to the JSON property `materials`
4233
+ # @return [Boolean]
4234
+ attr_accessor :materials
4235
+ alias_method :materials?, :materials
4236
+
4237
+ def initialize(**args)
4238
+ update!(**args)
4239
+ end
4240
+
4241
+ # Update properties of this object
4242
+ def update!(**args)
4243
+ @arguments = args[:arguments] if args.key?(:arguments)
4244
+ @environment = args[:environment] if args.key?(:environment)
4245
+ @materials = args[:materials] if args.key?(:materials)
4246
+ end
4247
+ end
4248
+
4249
+ # Other properties of the build.
4250
+ class SlsaMetadata
4251
+ include Google::Apis::Core::Hashable
4252
+
4253
+ # The timestamp of when the build completed.
4254
+ # Corresponds to the JSON property `buildFinishedOn`
4255
+ # @return [String]
4256
+ attr_accessor :build_finished_on
4257
+
4258
+ # Identifies the particular build invocation, which can be useful for finding
4259
+ # associated logs or other ad-hoc analysis. The value SHOULD be globally unique,
4260
+ # per in-toto Provenance spec.
4261
+ # Corresponds to the JSON property `buildInvocationId`
4262
+ # @return [String]
4263
+ attr_accessor :build_invocation_id
4264
+
4265
+ # The timestamp of when the build started.
4266
+ # Corresponds to the JSON property `buildStartedOn`
4267
+ # @return [String]
4268
+ attr_accessor :build_started_on
4269
+
4270
+ # Indicates that the builder claims certain fields in this message to be
4271
+ # complete.
4272
+ # Corresponds to the JSON property `completeness`
4273
+ # @return [Google::Apis::ContaineranalysisV1::SlsaCompleteness]
4274
+ attr_accessor :completeness
4275
+
4276
+ # If true, the builder claims that running the recipe on materials will produce
4277
+ # bit-for-bit identical output.
4278
+ # Corresponds to the JSON property `reproducible`
4279
+ # @return [Boolean]
4280
+ attr_accessor :reproducible
4281
+ alias_method :reproducible?, :reproducible
4282
+
4283
+ def initialize(**args)
4284
+ update!(**args)
4285
+ end
4286
+
4287
+ # Update properties of this object
4288
+ def update!(**args)
4289
+ @build_finished_on = args[:build_finished_on] if args.key?(:build_finished_on)
4290
+ @build_invocation_id = args[:build_invocation_id] if args.key?(:build_invocation_id)
4291
+ @build_started_on = args[:build_started_on] if args.key?(:build_started_on)
4292
+ @completeness = args[:completeness] if args.key?(:completeness)
4293
+ @reproducible = args[:reproducible] if args.key?(:reproducible)
4294
+ end
4295
+ end
4296
+
4297
+ #
4298
+ class SlsaProvenance
4299
+ include Google::Apis::Core::Hashable
4300
+
4301
+ # required
4302
+ # Corresponds to the JSON property `builder`
4303
+ # @return [Google::Apis::ContaineranalysisV1::SlsaBuilder]
4304
+ attr_accessor :builder
4305
+
4306
+ # The collection of artifacts that influenced the build including sources,
4307
+ # dependencies, build tools, base images, and so on. This is considered to be
4308
+ # incomplete unless metadata.completeness.materials is true. Unset or null is
4309
+ # equivalent to empty.
4310
+ # Corresponds to the JSON property `materials`
4311
+ # @return [Array<Google::Apis::ContaineranalysisV1::Material>]
4312
+ attr_accessor :materials
4313
+
4314
+ # Other properties of the build.
4315
+ # Corresponds to the JSON property `metadata`
4316
+ # @return [Google::Apis::ContaineranalysisV1::SlsaMetadata]
4317
+ attr_accessor :metadata
4318
+
4319
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4320
+ # corresponds to one step in the recipe.
4321
+ # Corresponds to the JSON property `recipe`
4322
+ # @return [Google::Apis::ContaineranalysisV1::SlsaRecipe]
4323
+ attr_accessor :recipe
4324
+
4325
+ def initialize(**args)
4326
+ update!(**args)
4327
+ end
4328
+
4329
+ # Update properties of this object
4330
+ def update!(**args)
4331
+ @builder = args[:builder] if args.key?(:builder)
4332
+ @materials = args[:materials] if args.key?(:materials)
4333
+ @metadata = args[:metadata] if args.key?(:metadata)
4334
+ @recipe = args[:recipe] if args.key?(:recipe)
4335
+ end
4336
+ end
4337
+
4338
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4339
+ # corresponds to one step in the recipe.
4340
+ class SlsaRecipe
4341
+ include Google::Apis::Core::Hashable
4342
+
4343
+ # Collection of all external inputs that influenced the build on top of recipe.
4344
+ # definedInMaterial and recipe.entryPoint. For example, if the recipe type were "
4345
+ # make", then this might be the flags passed to make aside from the target,
4346
+ # which is captured in recipe.entryPoint. Depending on the recipe Type, the
4347
+ # structure may be different.
4348
+ # Corresponds to the JSON property `arguments`
4349
+ # @return [Hash<String,Object>]
4350
+ attr_accessor :arguments
4351
+
4352
+ # Index in materials containing the recipe steps that are not implied by recipe.
4353
+ # type. For example, if the recipe type were "make", then this would point to
4354
+ # the source containing the Makefile, not the make program itself. Set to -1 if
4355
+ # the recipe doesn't come from a material, as zero is default unset value for
4356
+ # int64.
4357
+ # Corresponds to the JSON property `definedInMaterial`
4358
+ # @return [Fixnum]
4359
+ attr_accessor :defined_in_material
4360
+
4361
+ # String identifying the entry point into the build. This is often a path to a
4362
+ # configuration file and/or a target label within that file. The syntax and
4363
+ # meaning are defined by recipe.type. For example, if the recipe type were "make"
4364
+ # , then this would reference the directory in which to run make as well as
4365
+ # which target to use.
4366
+ # Corresponds to the JSON property `entryPoint`
4367
+ # @return [String]
4368
+ attr_accessor :entry_point
4369
+
4370
+ # Any other builder-controlled inputs necessary for correctly evaluating the
4371
+ # recipe. Usually only needed for reproducing the build but not evaluated as
4372
+ # part of policy. Depending on the recipe Type, the structure may be different.
4373
+ # Corresponds to the JSON property `environment`
4374
+ # @return [Hash<String,Object>]
4375
+ attr_accessor :environment
4376
+
4377
+ # URI indicating what type of recipe was performed. It determines the meaning of
4378
+ # recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
4379
+ # Corresponds to the JSON property `type`
4380
+ # @return [String]
4381
+ attr_accessor :type
4382
+
4383
+ def initialize(**args)
4384
+ update!(**args)
4385
+ end
4386
+
4387
+ # Update properties of this object
4388
+ def update!(**args)
4389
+ @arguments = args[:arguments] if args.key?(:arguments)
4390
+ @defined_in_material = args[:defined_in_material] if args.key?(:defined_in_material)
4391
+ @entry_point = args[:entry_point] if args.key?(:entry_point)
4392
+ @environment = args[:environment] if args.key?(:environment)
4393
+ @type = args[:type] if args.key?(:type)
4394
+ end
4395
+ end
4396
+
3048
4397
  # Source describes the location of the source used for the build.
3049
4398
  class Source
3050
4399
  include Google::Apis::Core::Hashable
@@ -3173,7 +4522,8 @@ module Google
3173
4522
  class Subject
3174
4523
  include Google::Apis::Core::Hashable
3175
4524
 
3176
- # "": ""
4525
+ # "": "" Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/
4526
+ # attestation/blob/main/spec/field_types.md#DigestSet
3177
4527
  # Corresponds to the JSON property `digest`
3178
4528
  # @return [Hash<String,String>]
3179
4529
  attr_accessor :digest
@@ -3234,31 +4584,6 @@ module Google
3234
4584
  end
3235
4585
  end
3236
4586
 
3237
- # Start and end times for a build execution phase.
3238
- class TimeSpan
3239
- include Google::Apis::Core::Hashable
3240
-
3241
- # End of time span.
3242
- # Corresponds to the JSON property `endTime`
3243
- # @return [String]
3244
- attr_accessor :end_time
3245
-
3246
- # Start of time span.
3247
- # Corresponds to the JSON property `startTime`
3248
- # @return [String]
3249
- attr_accessor :start_time
3250
-
3251
- def initialize(**args)
3252
- update!(**args)
3253
- end
3254
-
3255
- # Update properties of this object
3256
- def update!(**args)
3257
- @end_time = args[:end_time] if args.key?(:end_time)
3258
- @start_time = args[:start_time] if args.key?(:start_time)
3259
- end
3260
- end
3261
-
3262
4587
  # The Upgrade Distribution represents metadata about the Upgrade for each
3263
4588
  # operating system (CPE). Some distributions have additional metadata around
3264
4589
  # updates, classifying them into various categories and severities.
@@ -3447,36 +4772,6 @@ module Google
3447
4772
  end
3448
4773
  end
3449
4774
 
3450
- # Volume describes a Docker container volume which is mounted into build steps
3451
- # in order to persist files across build step execution.
3452
- class Volume
3453
- include Google::Apis::Core::Hashable
3454
-
3455
- # Name of the volume to mount. Volume names must be unique per build step and
3456
- # must be valid names for Docker volumes. Each named volume must be used by at
3457
- # least two build steps.
3458
- # Corresponds to the JSON property `name`
3459
- # @return [String]
3460
- attr_accessor :name
3461
-
3462
- # Path at which to mount the volume. Paths must be absolute and cannot conflict
3463
- # with other volume paths on the same build step or with certain reserved volume
3464
- # paths.
3465
- # Corresponds to the JSON property `path`
3466
- # @return [String]
3467
- attr_accessor :path
3468
-
3469
- def initialize(**args)
3470
- update!(**args)
3471
- end
3472
-
3473
- # Update properties of this object
3474
- def update!(**args)
3475
- @name = args[:name] if args.key?(:name)
3476
- @path = args[:path] if args.key?(:path)
3477
- end
3478
- end
3479
-
3480
4775
  # A security vulnerability that can be found in resources.
3481
4776
  class VulnerabilityNote
3482
4777
  include Google::Apis::Core::Hashable