google-apis-containeranalysis_v1alpha1 0.16.0 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -438,8 +438,832 @@ module Google
438
438
  end
439
439
  end
440
440
 
441
+ # Note holding the version of the provider's builder and the signature of the
442
+ # provenance message in linked BuildDetails.
443
+ class BuildType
444
+ include Google::Apis::Core::Hashable
445
+
446
+ # Version of the builder which produced this Note.
447
+ # Corresponds to the JSON property `builderVersion`
448
+ # @return [String]
449
+ attr_accessor :builder_version
450
+
451
+ # Message encapsulating the signature of the verified build.
452
+ # Corresponds to the JSON property `signature`
453
+ # @return [Google::Apis::ContaineranalysisV1alpha1::BuildSignature]
454
+ attr_accessor :signature
455
+
456
+ def initialize(**args)
457
+ update!(**args)
458
+ end
459
+
460
+ # Update properties of this object
461
+ def update!(**args)
462
+ @builder_version = args[:builder_version] if args.key?(:builder_version)
463
+ @signature = args[:signature] if args.key?(:signature)
464
+ end
465
+ end
466
+
467
+ #
468
+ class BuilderConfig
469
+ include Google::Apis::Core::Hashable
470
+
471
+ #
472
+ # Corresponds to the JSON property `id`
473
+ # @return [String]
474
+ attr_accessor :id
475
+
476
+ def initialize(**args)
477
+ update!(**args)
478
+ end
479
+
480
+ # Update properties of this object
481
+ def update!(**args)
482
+ @id = args[:id] if args.key?(:id)
483
+ end
484
+ end
485
+
486
+ # A compliance check that is a CIS benchmark.
487
+ class CisBenchmark
488
+ include Google::Apis::Core::Hashable
489
+
490
+ # The profile level of this CIS benchmark check.
491
+ # Corresponds to the JSON property `profileLevel`
492
+ # @return [Fixnum]
493
+ attr_accessor :profile_level
494
+
495
+ # The severity level of this CIS benchmark check.
496
+ # Corresponds to the JSON property `severity`
497
+ # @return [String]
498
+ attr_accessor :severity
499
+
500
+ def initialize(**args)
501
+ update!(**args)
502
+ end
503
+
504
+ # Update properties of this object
505
+ def update!(**args)
506
+ @profile_level = args[:profile_level] if args.key?(:profile_level)
507
+ @severity = args[:severity] if args.key?(:severity)
508
+ end
509
+ end
510
+
511
+ # Command describes a step performed as part of the build pipeline.
512
+ class Command
513
+ include Google::Apis::Core::Hashable
514
+
515
+ # Command-line arguments used when executing this Command.
516
+ # Corresponds to the JSON property `args`
517
+ # @return [Array<String>]
518
+ attr_accessor :args
519
+
520
+ # Working directory (relative to project source root) used when running this
521
+ # Command.
522
+ # Corresponds to the JSON property `dir`
523
+ # @return [String]
524
+ attr_accessor :dir
525
+
526
+ # Environment variables set before running this Command.
527
+ # Corresponds to the JSON property `env`
528
+ # @return [Array<String>]
529
+ attr_accessor :env
530
+
531
+ # Optional unique identifier for this Command, used in wait_for to reference
532
+ # this Command as a dependency.
533
+ # Corresponds to the JSON property `id`
534
+ # @return [String]
535
+ attr_accessor :id
536
+
537
+ # Name of the command, as presented on the command line, or if the command is
538
+ # packaged as a Docker container, as presented to `docker pull`.
539
+ # Corresponds to the JSON property `name`
540
+ # @return [String]
541
+ attr_accessor :name
542
+
543
+ # The ID(s) of the Command(s) that this Command depends on.
544
+ # Corresponds to the JSON property `waitFor`
545
+ # @return [Array<String>]
546
+ attr_accessor :wait_for
547
+
548
+ def initialize(**args)
549
+ update!(**args)
550
+ end
551
+
552
+ # Update properties of this object
553
+ def update!(**args)
554
+ @args = args[:args] if args.key?(:args)
555
+ @dir = args[:dir] if args.key?(:dir)
556
+ @env = args[:env] if args.key?(:env)
557
+ @id = args[:id] if args.key?(:id)
558
+ @name = args[:name] if args.key?(:name)
559
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
560
+ end
561
+ end
562
+
563
+ # Indicates that the builder claims certain fields in this message to be
564
+ # complete.
565
+ class Completeness
566
+ include Google::Apis::Core::Hashable
567
+
568
+ # If true, the builder claims that recipe.arguments is complete, meaning that
569
+ # all external inputs are properly captured in the recipe.
570
+ # Corresponds to the JSON property `arguments`
571
+ # @return [Boolean]
572
+ attr_accessor :arguments
573
+ alias_method :arguments?, :arguments
574
+
575
+ # If true, the builder claims that recipe.environment is claimed to be complete.
576
+ # Corresponds to the JSON property `environment`
577
+ # @return [Boolean]
578
+ attr_accessor :environment
579
+ alias_method :environment?, :environment
580
+
581
+ # If true, the builder claims that materials are complete, usually through some
582
+ # controls to prevent network access. Sometimes called "hermetic".
583
+ # Corresponds to the JSON property `materials`
584
+ # @return [Boolean]
585
+ attr_accessor :materials
586
+ alias_method :materials?, :materials
587
+
588
+ def initialize(**args)
589
+ update!(**args)
590
+ end
591
+
592
+ # Update properties of this object
593
+ def update!(**args)
594
+ @arguments = args[:arguments] if args.key?(:arguments)
595
+ @environment = args[:environment] if args.key?(:environment)
596
+ @materials = args[:materials] if args.key?(:materials)
597
+ end
598
+ end
599
+
600
+ # ComplianceNote encapsulates all information about a specific compliance check.
601
+ class ComplianceNote
602
+ include Google::Apis::Core::Hashable
603
+
604
+ # A compliance check that is a CIS benchmark.
605
+ # Corresponds to the JSON property `cisBenchmark`
606
+ # @return [Google::Apis::ContaineranalysisV1alpha1::CisBenchmark]
607
+ attr_accessor :cis_benchmark
608
+
609
+ # A description about this compliance check.
610
+ # Corresponds to the JSON property `description`
611
+ # @return [String]
612
+ attr_accessor :description
613
+
614
+ # A rationale for the existence of this compliance check.
615
+ # Corresponds to the JSON property `rationale`
616
+ # @return [String]
617
+ attr_accessor :rationale
618
+
619
+ # A description of remediation steps if the compliance check fails.
620
+ # Corresponds to the JSON property `remediation`
621
+ # @return [String]
622
+ attr_accessor :remediation
623
+
624
+ # Serialized scan instructions with a predefined format.
625
+ # Corresponds to the JSON property `scanInstructions`
626
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
627
+ # @return [String]
628
+ attr_accessor :scan_instructions
629
+
630
+ # The title that identifies this compliance check.
631
+ # Corresponds to the JSON property `title`
632
+ # @return [String]
633
+ attr_accessor :title
634
+
635
+ # The OS and config versions the benchmark applies to.
636
+ # Corresponds to the JSON property `version`
637
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ComplianceVersion>]
638
+ attr_accessor :version
639
+
640
+ def initialize(**args)
641
+ update!(**args)
642
+ end
643
+
644
+ # Update properties of this object
645
+ def update!(**args)
646
+ @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
647
+ @description = args[:description] if args.key?(:description)
648
+ @rationale = args[:rationale] if args.key?(:rationale)
649
+ @remediation = args[:remediation] if args.key?(:remediation)
650
+ @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
651
+ @title = args[:title] if args.key?(:title)
652
+ @version = args[:version] if args.key?(:version)
653
+ end
654
+ end
655
+
656
+ # An indication that the compliance checks in the associated ComplianceNote were
657
+ # not satisfied for particular resources or a specified reason.
658
+ class ComplianceOccurrence
659
+ include Google::Apis::Core::Hashable
660
+
661
+ # The reason for non compliance of these files.
662
+ # Corresponds to the JSON property `nonComplianceReason`
663
+ # @return [String]
664
+ attr_accessor :non_compliance_reason
665
+
666
+ # A list of files which are violating compliance checks.
667
+ # Corresponds to the JSON property `nonCompliantFiles`
668
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::NonCompliantFile>]
669
+ attr_accessor :non_compliant_files
670
+
671
+ def initialize(**args)
672
+ update!(**args)
673
+ end
674
+
675
+ # Update properties of this object
676
+ def update!(**args)
677
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
678
+ @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
679
+ end
680
+ end
681
+
682
+ # Describes the CIS benchmark version that is applicable to a given OS and os
683
+ # version.
684
+ class ComplianceVersion
685
+ include Google::Apis::Core::Hashable
686
+
687
+ # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
688
+ # applicable to.
689
+ # Corresponds to the JSON property `cpeUri`
690
+ # @return [String]
691
+ attr_accessor :cpe_uri
692
+
693
+ # The version of the benchmark. This is set to the version of the OS-specific
694
+ # CIS document the benchmark is defined in.
695
+ # Corresponds to the JSON property `version`
696
+ # @return [String]
697
+ attr_accessor :version
698
+
699
+ def initialize(**args)
700
+ update!(**args)
701
+ end
702
+
703
+ # Update properties of this object
704
+ def update!(**args)
705
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
706
+ @version = args[:version] if args.key?(:version)
707
+ end
708
+ end
709
+
710
+ # ApprovalConfig describes configuration for manual approval of a build.
711
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig
712
+ include Google::Apis::Core::Hashable
713
+
714
+ # Whether or not approval is needed. If this is set on a build, it will become
715
+ # pending when created, and will need to be explicitly approved to start.
716
+ # Corresponds to the JSON property `approvalRequired`
717
+ # @return [Boolean]
718
+ attr_accessor :approval_required
719
+ alias_method :approval_required?, :approval_required
720
+
721
+ def initialize(**args)
722
+ update!(**args)
723
+ end
724
+
725
+ # Update properties of this object
726
+ def update!(**args)
727
+ @approval_required = args[:approval_required] if args.key?(:approval_required)
728
+ end
729
+ end
730
+
731
+ # ApprovalResult describes the decision and associated metadata of a manual
732
+ # approval of a build.
733
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult
734
+ include Google::Apis::Core::Hashable
735
+
736
+ # Output only. The time when the approval decision was made.
737
+ # Corresponds to the JSON property `approvalTime`
738
+ # @return [String]
739
+ attr_accessor :approval_time
740
+
741
+ # Output only. Email of the user that called the ApproveBuild API to approve or
742
+ # reject a build at the time that the API was called.
743
+ # Corresponds to the JSON property `approverAccount`
744
+ # @return [String]
745
+ attr_accessor :approver_account
746
+
747
+ # Optional. An optional comment for this manual approval result.
748
+ # Corresponds to the JSON property `comment`
749
+ # @return [String]
750
+ attr_accessor :comment
751
+
752
+ # Required. The decision of this manual approval.
753
+ # Corresponds to the JSON property `decision`
754
+ # @return [String]
755
+ attr_accessor :decision
756
+
757
+ # Optional. An optional URL tied to this manual approval result. This field is
758
+ # essentially the same as comment, except that it will be rendered by the UI
759
+ # differently. An example use case is a link to an external job that approved
760
+ # this Build.
761
+ # Corresponds to the JSON property `url`
762
+ # @return [String]
763
+ attr_accessor :url
764
+
765
+ def initialize(**args)
766
+ update!(**args)
767
+ end
768
+
769
+ # Update properties of this object
770
+ def update!(**args)
771
+ @approval_time = args[:approval_time] if args.key?(:approval_time)
772
+ @approver_account = args[:approver_account] if args.key?(:approver_account)
773
+ @comment = args[:comment] if args.key?(:comment)
774
+ @decision = args[:decision] if args.key?(:decision)
775
+ @url = args[:url] if args.key?(:url)
776
+ end
777
+ end
778
+
779
+ # Artifacts produced by a build that should be uploaded upon successful
780
+ # completion of all build steps.
781
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts
782
+ include Google::Apis::Core::Hashable
783
+
784
+ # A list of images to be pushed upon the successful completion of all build
785
+ # steps. The images will be pushed using the builder service account's
786
+ # credentials. The digests of the pushed images will be stored in the Build
787
+ # resource's results field. If any of the images fail to be pushed, the build is
788
+ # marked FAILURE.
789
+ # Corresponds to the JSON property `images`
790
+ # @return [Array<String>]
791
+ attr_accessor :images
792
+
793
+ # Files in the workspace to upload to Cloud Storage upon successful completion
794
+ # of all build steps.
795
+ # Corresponds to the JSON property `objects`
796
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects]
797
+ attr_accessor :objects
798
+
799
+ def initialize(**args)
800
+ update!(**args)
801
+ end
802
+
803
+ # Update properties of this object
804
+ def update!(**args)
805
+ @images = args[:images] if args.key?(:images)
806
+ @objects = args[:objects] if args.key?(:objects)
807
+ end
808
+ end
809
+
810
+ # Files in the workspace to upload to Cloud Storage upon successful completion
811
+ # of all build steps.
812
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects
813
+ include Google::Apis::Core::Hashable
814
+
815
+ # Cloud Storage bucket and optional object path, in the form "gs://bucket/path/
816
+ # to/somewhere/". (see [Bucket Name Requirements](https://cloud.google.com/
817
+ # storage/docs/bucket-naming#requirements)). Files in the workspace matching any
818
+ # path pattern will be uploaded to Cloud Storage with this location as a prefix.
819
+ # Corresponds to the JSON property `location`
820
+ # @return [String]
821
+ attr_accessor :location
822
+
823
+ # Path globs used to match files in the build's workspace.
824
+ # Corresponds to the JSON property `paths`
825
+ # @return [Array<String>]
826
+ attr_accessor :paths
827
+
828
+ # Start and end times for a build execution phase.
829
+ # Corresponds to the JSON property `timing`
830
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
831
+ attr_accessor :timing
832
+
833
+ def initialize(**args)
834
+ update!(**args)
835
+ end
836
+
837
+ # Update properties of this object
838
+ def update!(**args)
839
+ @location = args[:location] if args.key?(:location)
840
+ @paths = args[:paths] if args.key?(:paths)
841
+ @timing = args[:timing] if args.key?(:timing)
842
+ end
843
+ end
844
+
845
+ # A build resource in the Cloud Build API. At a high level, a `Build` describes
846
+ # where to find source code, how to build it (for example, the builder image to
847
+ # run on the source), and where to store the built artifacts. Fields can include
848
+ # the following variables, which will be expanded when the build is created: - $
849
+ # PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number
850
+ # of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the
851
+ # autogenerated ID of the build. - $REPO_NAME: the source repository name
852
+ # specified by RepoSource. - $BRANCH_NAME: the branch name specified by
853
+ # RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID
854
+ # or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the
855
+ # specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $
856
+ # COMMIT_SHA.
857
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build
858
+ include Google::Apis::Core::Hashable
859
+
860
+ # BuildApproval describes a build's approval configuration, state, and result.
861
+ # Corresponds to the JSON property `approval`
862
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval]
863
+ attr_accessor :approval
864
+
865
+ # Artifacts produced by a build that should be uploaded upon successful
866
+ # completion of all build steps.
867
+ # Corresponds to the JSON property `artifacts`
868
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts]
869
+ attr_accessor :artifacts
870
+
871
+ # Secrets and secret environment variables.
872
+ # Corresponds to the JSON property `availableSecrets`
873
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets]
874
+ attr_accessor :available_secrets
875
+
876
+ # Output only. The ID of the `BuildTrigger` that triggered this build, if it was
877
+ # triggered automatically.
878
+ # Corresponds to the JSON property `buildTriggerId`
879
+ # @return [String]
880
+ attr_accessor :build_trigger_id
881
+
882
+ # Output only. Time at which the request to create the build was received.
883
+ # Corresponds to the JSON property `createTime`
884
+ # @return [String]
885
+ attr_accessor :create_time
886
+
887
+ # A fatal problem encountered during the execution of the build.
888
+ # Corresponds to the JSON property `failureInfo`
889
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo]
890
+ attr_accessor :failure_info
891
+
892
+ # Output only. Time at which execution of the build was finished. The difference
893
+ # between finish_time and start_time is the duration of the build's execution.
894
+ # Corresponds to the JSON property `finishTime`
895
+ # @return [String]
896
+ attr_accessor :finish_time
897
+
898
+ # Output only. Unique identifier of the build.
899
+ # Corresponds to the JSON property `id`
900
+ # @return [String]
901
+ attr_accessor :id
902
+
903
+ # A list of images to be pushed upon the successful completion of all build
904
+ # steps. The images are pushed using the builder service account's credentials.
905
+ # The digests of the pushed images will be stored in the `Build` resource's
906
+ # results field. If any of the images fail to be pushed, the build status is
907
+ # marked `FAILURE`.
908
+ # Corresponds to the JSON property `images`
909
+ # @return [Array<String>]
910
+ attr_accessor :images
911
+
912
+ # Output only. URL to logs for this build in Google Cloud Console.
913
+ # Corresponds to the JSON property `logUrl`
914
+ # @return [String]
915
+ attr_accessor :log_url
916
+
917
+ # Google Cloud Storage bucket where logs should be written (see [Bucket Name
918
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
919
+ # ). Logs file names will be of the format `$`logs_bucket`/log-$`build_id`.txt`.
920
+ # Corresponds to the JSON property `logsBucket`
921
+ # @return [String]
922
+ attr_accessor :logs_bucket
923
+
924
+ # Output only. The 'Build' name with format: `projects/`project`/locations/`
925
+ # location`/builds/`build``, where `build` is a unique identifier generated by
926
+ # the service.
927
+ # Corresponds to the JSON property `name`
928
+ # @return [String]
929
+ attr_accessor :name
930
+
931
+ # Optional arguments to enable specific features of builds.
932
+ # Corresponds to the JSON property `options`
933
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions]
934
+ attr_accessor :options
935
+
936
+ # Output only. ID of the project.
937
+ # Corresponds to the JSON property `projectId`
938
+ # @return [String]
939
+ attr_accessor :project_id
940
+
941
+ # TTL in queue for this build. If provided and the build is enqueued longer than
942
+ # this value, the build will expire and the build status will be `EXPIRED`. The
943
+ # TTL starts ticking from create_time.
944
+ # Corresponds to the JSON property `queueTtl`
945
+ # @return [String]
946
+ attr_accessor :queue_ttl
947
+
948
+ # Artifacts created by the build pipeline.
949
+ # Corresponds to the JSON property `results`
950
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Results]
951
+ attr_accessor :results
952
+
953
+ # Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is
954
+ # the recommended technique for managing sensitive data with Cloud Build. Use `
955
+ # available_secrets` to configure builds to access secrets from Secret Manager.
956
+ # For instructions, see: https://cloud.google.com/cloud-build/docs/securing-
957
+ # builds/use-secrets
958
+ # Corresponds to the JSON property `secrets`
959
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secret>]
960
+ attr_accessor :secrets
961
+
962
+ # IAM service account whose credentials will be used at build runtime. Must be
963
+ # of the format `projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT``. ACCOUNT can
964
+ # be email address or uniqueId of the service account.
965
+ # Corresponds to the JSON property `serviceAccount`
966
+ # @return [String]
967
+ attr_accessor :service_account
968
+
969
+ # Location of the source in a supported storage service.
970
+ # Corresponds to the JSON property `source`
971
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Source]
972
+ attr_accessor :source
973
+
974
+ # Provenance of the source. Ways to find the original source, or verify that
975
+ # some source was used for this build.
976
+ # Corresponds to the JSON property `sourceProvenance`
977
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance]
978
+ attr_accessor :source_provenance
979
+
980
+ # Output only. Time at which execution of the build was started.
981
+ # Corresponds to the JSON property `startTime`
982
+ # @return [String]
983
+ attr_accessor :start_time
984
+
985
+ # Output only. Status of the build.
986
+ # Corresponds to the JSON property `status`
987
+ # @return [String]
988
+ attr_accessor :status
989
+
990
+ # Output only. Customer-readable message about the current status.
991
+ # Corresponds to the JSON property `statusDetail`
992
+ # @return [String]
993
+ attr_accessor :status_detail
994
+
995
+ # Required. The operations to be performed on the workspace.
996
+ # Corresponds to the JSON property `steps`
997
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep>]
998
+ attr_accessor :steps
999
+
1000
+ # Substitutions data for `Build` resource.
1001
+ # Corresponds to the JSON property `substitutions`
1002
+ # @return [Hash<String,String>]
1003
+ attr_accessor :substitutions
1004
+
1005
+ # Tags for annotation of a `Build`. These are not docker tags.
1006
+ # Corresponds to the JSON property `tags`
1007
+ # @return [Array<String>]
1008
+ attr_accessor :tags
1009
+
1010
+ # Amount of time that this build should be allowed to run, to second granularity.
1011
+ # If this amount of time elapses, work on the build will cease and the build
1012
+ # status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default
1013
+ # time is ten minutes.
1014
+ # Corresponds to the JSON property `timeout`
1015
+ # @return [String]
1016
+ attr_accessor :timeout
1017
+
1018
+ # Output only. Stores timing information for phases of the build. Valid keys are:
1019
+ # * BUILD: time to execute all build steps. * PUSH: time to push all specified
1020
+ # images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up
1021
+ # build. If the build does not specify source or images, these keys will not be
1022
+ # included.
1023
+ # Corresponds to the JSON property `timing`
1024
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan>]
1025
+ attr_accessor :timing
1026
+
1027
+ # Output only. Non-fatal problems encountered during the execution of the build.
1028
+ # Corresponds to the JSON property `warnings`
1029
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning>]
1030
+ attr_accessor :warnings
1031
+
1032
+ def initialize(**args)
1033
+ update!(**args)
1034
+ end
1035
+
1036
+ # Update properties of this object
1037
+ def update!(**args)
1038
+ @approval = args[:approval] if args.key?(:approval)
1039
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1040
+ @available_secrets = args[:available_secrets] if args.key?(:available_secrets)
1041
+ @build_trigger_id = args[:build_trigger_id] if args.key?(:build_trigger_id)
1042
+ @create_time = args[:create_time] if args.key?(:create_time)
1043
+ @failure_info = args[:failure_info] if args.key?(:failure_info)
1044
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
1045
+ @id = args[:id] if args.key?(:id)
1046
+ @images = args[:images] if args.key?(:images)
1047
+ @log_url = args[:log_url] if args.key?(:log_url)
1048
+ @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket)
1049
+ @name = args[:name] if args.key?(:name)
1050
+ @options = args[:options] if args.key?(:options)
1051
+ @project_id = args[:project_id] if args.key?(:project_id)
1052
+ @queue_ttl = args[:queue_ttl] if args.key?(:queue_ttl)
1053
+ @results = args[:results] if args.key?(:results)
1054
+ @secrets = args[:secrets] if args.key?(:secrets)
1055
+ @service_account = args[:service_account] if args.key?(:service_account)
1056
+ @source = args[:source] if args.key?(:source)
1057
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
1058
+ @start_time = args[:start_time] if args.key?(:start_time)
1059
+ @status = args[:status] if args.key?(:status)
1060
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1061
+ @steps = args[:steps] if args.key?(:steps)
1062
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1063
+ @tags = args[:tags] if args.key?(:tags)
1064
+ @timeout = args[:timeout] if args.key?(:timeout)
1065
+ @timing = args[:timing] if args.key?(:timing)
1066
+ @warnings = args[:warnings] if args.key?(:warnings)
1067
+ end
1068
+ end
1069
+
1070
+ # BuildApproval describes a build's approval configuration, state, and result.
1071
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval
1072
+ include Google::Apis::Core::Hashable
1073
+
1074
+ # ApprovalConfig describes configuration for manual approval of a build.
1075
+ # Corresponds to the JSON property `config`
1076
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig]
1077
+ attr_accessor :config
1078
+
1079
+ # ApprovalResult describes the decision and associated metadata of a manual
1080
+ # approval of a build.
1081
+ # Corresponds to the JSON property `result`
1082
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult]
1083
+ attr_accessor :result
1084
+
1085
+ # Output only. The state of this build's approval.
1086
+ # Corresponds to the JSON property `state`
1087
+ # @return [String]
1088
+ attr_accessor :state
1089
+
1090
+ def initialize(**args)
1091
+ update!(**args)
1092
+ end
1093
+
1094
+ # Update properties of this object
1095
+ def update!(**args)
1096
+ @config = args[:config] if args.key?(:config)
1097
+ @result = args[:result] if args.key?(:result)
1098
+ @state = args[:state] if args.key?(:state)
1099
+ end
1100
+ end
1101
+
1102
+ # A fatal problem encountered during the execution of the build.
1103
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo
1104
+ include Google::Apis::Core::Hashable
1105
+
1106
+ # Explains the failure issue in more detail using hard-coded text.
1107
+ # Corresponds to the JSON property `detail`
1108
+ # @return [String]
1109
+ attr_accessor :detail
1110
+
1111
+ # The name of the failure.
1112
+ # Corresponds to the JSON property `type`
1113
+ # @return [String]
1114
+ attr_accessor :type
1115
+
1116
+ def initialize(**args)
1117
+ update!(**args)
1118
+ end
1119
+
1120
+ # Update properties of this object
1121
+ def update!(**args)
1122
+ @detail = args[:detail] if args.key?(:detail)
1123
+ @type = args[:type] if args.key?(:type)
1124
+ end
1125
+ end
1126
+
1127
+ # Optional arguments to enable specific features of builds.
1128
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions
1129
+ include Google::Apis::Core::Hashable
1130
+
1131
+ # Requested disk size for the VM that runs the build. Note that this is *NOT* "
1132
+ # disk free"; some of the space will be used by the operating system and build
1133
+ # utilities. Also note that this is the minimum disk size that will be allocated
1134
+ # for the build -- the build may run with a larger disk than requested. At
1135
+ # present, the maximum disk size is 1000GB; builds that request more than the
1136
+ # maximum are rejected with an error.
1137
+ # Corresponds to the JSON property `diskSizeGb`
1138
+ # @return [Fixnum]
1139
+ attr_accessor :disk_size_gb
1140
+
1141
+ # Option to specify whether or not to apply bash style string operations to the
1142
+ # substitutions. NOTE: this is always enabled for triggered builds and cannot be
1143
+ # overridden in the build configuration file.
1144
+ # Corresponds to the JSON property `dynamicSubstitutions`
1145
+ # @return [Boolean]
1146
+ attr_accessor :dynamic_substitutions
1147
+ alias_method :dynamic_substitutions?, :dynamic_substitutions
1148
+
1149
+ # A list of global environment variable definitions that will exist for all
1150
+ # build steps in this build. If a variable is defined in both globally and in a
1151
+ # build step, the variable will use the build step value. The elements are of
1152
+ # the form "KEY=VALUE" for the environment variable "KEY" being given the value "
1153
+ # VALUE".
1154
+ # Corresponds to the JSON property `env`
1155
+ # @return [Array<String>]
1156
+ attr_accessor :env
1157
+
1158
+ # Option to define build log streaming behavior to Google Cloud Storage.
1159
+ # Corresponds to the JSON property `logStreamingOption`
1160
+ # @return [String]
1161
+ attr_accessor :log_streaming_option
1162
+
1163
+ # Option to specify the logging mode, which determines if and where build logs
1164
+ # are stored.
1165
+ # Corresponds to the JSON property `logging`
1166
+ # @return [String]
1167
+ attr_accessor :logging
1168
+
1169
+ # Compute Engine machine type on which to run the build.
1170
+ # Corresponds to the JSON property `machineType`
1171
+ # @return [String]
1172
+ attr_accessor :machine_type
1173
+
1174
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1175
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1176
+ # run-builds-in-private-pool) for more information.
1177
+ # Corresponds to the JSON property `pool`
1178
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption]
1179
+ attr_accessor :pool
1180
+
1181
+ # Requested verifiability options.
1182
+ # Corresponds to the JSON property `requestedVerifyOption`
1183
+ # @return [String]
1184
+ attr_accessor :requested_verify_option
1185
+
1186
+ # A list of global environment variables, which are encrypted using a Cloud Key
1187
+ # Management Service crypto key. These values must be specified in the build's `
1188
+ # Secret`. These variables will be available to all build steps in this build.
1189
+ # Corresponds to the JSON property `secretEnv`
1190
+ # @return [Array<String>]
1191
+ attr_accessor :secret_env
1192
+
1193
+ # Requested hash for SourceProvenance.
1194
+ # Corresponds to the JSON property `sourceProvenanceHash`
1195
+ # @return [Array<String>]
1196
+ attr_accessor :source_provenance_hash
1197
+
1198
+ # Option to specify behavior when there is an error in the substitution checks.
1199
+ # NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be
1200
+ # overridden in the build configuration file.
1201
+ # Corresponds to the JSON property `substitutionOption`
1202
+ # @return [String]
1203
+ attr_accessor :substitution_option
1204
+
1205
+ # Global list of volumes to mount for ALL build steps Each volume is created as
1206
+ # an empty volume prior to starting the build process. Upon completion of the
1207
+ # build, volumes and their contents are discarded. Global volume names and paths
1208
+ # cannot conflict with the volumes defined a build step. Using a global volume
1209
+ # in a build with only one step is not valid as it is indicative of a build
1210
+ # request with an incorrect configuration.
1211
+ # Corresponds to the JSON property `volumes`
1212
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1213
+ attr_accessor :volumes
1214
+
1215
+ # This field deprecated; please use `pool.name` instead.
1216
+ # Corresponds to the JSON property `workerPool`
1217
+ # @return [String]
1218
+ attr_accessor :worker_pool
1219
+
1220
+ def initialize(**args)
1221
+ update!(**args)
1222
+ end
1223
+
1224
+ # Update properties of this object
1225
+ def update!(**args)
1226
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1227
+ @dynamic_substitutions = args[:dynamic_substitutions] if args.key?(:dynamic_substitutions)
1228
+ @env = args[:env] if args.key?(:env)
1229
+ @log_streaming_option = args[:log_streaming_option] if args.key?(:log_streaming_option)
1230
+ @logging = args[:logging] if args.key?(:logging)
1231
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1232
+ @pool = args[:pool] if args.key?(:pool)
1233
+ @requested_verify_option = args[:requested_verify_option] if args.key?(:requested_verify_option)
1234
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1235
+ @source_provenance_hash = args[:source_provenance_hash] if args.key?(:source_provenance_hash)
1236
+ @substitution_option = args[:substitution_option] if args.key?(:substitution_option)
1237
+ @volumes = args[:volumes] if args.key?(:volumes)
1238
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1239
+ end
1240
+ end
1241
+
1242
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1243
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1244
+ # run-builds-in-private-pool) for more information.
1245
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption
1246
+ include Google::Apis::Core::Hashable
1247
+
1248
+ # The `WorkerPool` resource to execute the build on. You must have `cloudbuild.
1249
+ # workerpools.use` on the project hosting the WorkerPool. Format projects/`
1250
+ # project`/locations/`location`/workerPools/`workerPoolId`
1251
+ # Corresponds to the JSON property `name`
1252
+ # @return [String]
1253
+ attr_accessor :name
1254
+
1255
+ def initialize(**args)
1256
+ update!(**args)
1257
+ end
1258
+
1259
+ # Update properties of this object
1260
+ def update!(**args)
1261
+ @name = args[:name] if args.key?(:name)
1262
+ end
1263
+ end
1264
+
441
1265
  # A step in the build pipeline.
442
- class BuildStep
1266
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep
443
1267
  include Google::Apis::Core::Hashable
444
1268
 
445
1269
  # A list of arguments that will be presented to the step when it is started. If
@@ -498,7 +1322,7 @@ module Google
498
1322
 
499
1323
  # Start and end times for a build execution phase.
500
1324
  # Corresponds to the JSON property `pullTiming`
501
- # @return [Google::Apis::ContaineranalysisV1alpha1::TimeSpan]
1325
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
502
1326
  attr_accessor :pull_timing
503
1327
 
504
1328
  # A shell script to be executed in the step. When script is provided, the user
@@ -530,7 +1354,7 @@ module Google
530
1354
 
531
1355
  # Start and end times for a build execution phase.
532
1356
  # Corresponds to the JSON property `timing`
533
- # @return [Google::Apis::ContaineranalysisV1alpha1::TimeSpan]
1357
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
534
1358
  attr_accessor :timing
535
1359
 
536
1360
  # List of volumes to mount into the build step. Each volume is created as an
@@ -539,7 +1363,7 @@ module Google
539
1363
  # one step is not valid as it is indicative of a build request with an incorrect
540
1364
  # configuration.
541
1365
  # Corresponds to the JSON property `volumes`
542
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Volume>]
1366
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
543
1367
  attr_accessor :volumes
544
1368
 
545
1369
  # The ID(s) of the step(s) that this build step depends on. This build step will
@@ -573,20 +1397,308 @@ module Google
573
1397
  end
574
1398
  end
575
1399
 
576
- # Note holding the version of the provider's builder and the signature of the
577
- # provenance message in linked BuildDetails.
578
- class BuildType
1400
+ # A non-fatal problem encountered during the execution of the build.
1401
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning
1402
+ include Google::Apis::Core::Hashable
1403
+
1404
+ # The priority for this warning.
1405
+ # Corresponds to the JSON property `priority`
1406
+ # @return [String]
1407
+ attr_accessor :priority
1408
+
1409
+ # Explanation of the warning generated.
1410
+ # Corresponds to the JSON property `text`
1411
+ # @return [String]
1412
+ attr_accessor :text
1413
+
1414
+ def initialize(**args)
1415
+ update!(**args)
1416
+ end
1417
+
1418
+ # Update properties of this object
1419
+ def update!(**args)
1420
+ @priority = args[:priority] if args.key?(:priority)
1421
+ @text = args[:text] if args.key?(:text)
1422
+ end
1423
+ end
1424
+
1425
+ # An image built by the pipeline.
1426
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage
1427
+ include Google::Apis::Core::Hashable
1428
+
1429
+ # Docker Registry 2.0 digest.
1430
+ # Corresponds to the JSON property `digest`
1431
+ # @return [String]
1432
+ attr_accessor :digest
1433
+
1434
+ # Name used to push the container image to Google Container Registry, as
1435
+ # presented to `docker push`.
1436
+ # Corresponds to the JSON property `name`
1437
+ # @return [String]
1438
+ attr_accessor :name
1439
+
1440
+ # Start and end times for a build execution phase.
1441
+ # Corresponds to the JSON property `pushTiming`
1442
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1443
+ attr_accessor :push_timing
1444
+
1445
+ def initialize(**args)
1446
+ update!(**args)
1447
+ end
1448
+
1449
+ # Update properties of this object
1450
+ def update!(**args)
1451
+ @digest = args[:digest] if args.key?(:digest)
1452
+ @name = args[:name] if args.key?(:name)
1453
+ @push_timing = args[:push_timing] if args.key?(:push_timing)
1454
+ end
1455
+ end
1456
+
1457
+ # Container message for hashes of byte content of files, used in
1458
+ # SourceProvenance messages to verify integrity of source input to the build.
1459
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes
1460
+ include Google::Apis::Core::Hashable
1461
+
1462
+ # Collection of file hashes.
1463
+ # Corresponds to the JSON property `fileHash`
1464
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Hash>]
1465
+ attr_accessor :file_hash
1466
+
1467
+ def initialize(**args)
1468
+ update!(**args)
1469
+ end
1470
+
1471
+ # Update properties of this object
1472
+ def update!(**args)
1473
+ @file_hash = args[:file_hash] if args.key?(:file_hash)
1474
+ end
1475
+ end
1476
+
1477
+ # Container message for hash values.
1478
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Hash
1479
+ include Google::Apis::Core::Hashable
1480
+
1481
+ # The type of hash that was performed.
1482
+ # Corresponds to the JSON property `type`
1483
+ # @return [String]
1484
+ attr_accessor :type
1485
+
1486
+ # The hash value.
1487
+ # Corresponds to the JSON property `value`
1488
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1489
+ # @return [String]
1490
+ attr_accessor :value
1491
+
1492
+ def initialize(**args)
1493
+ update!(**args)
1494
+ end
1495
+
1496
+ # Update properties of this object
1497
+ def update!(**args)
1498
+ @type = args[:type] if args.key?(:type)
1499
+ @value = args[:value] if args.key?(:value)
1500
+ end
1501
+ end
1502
+
1503
+ # Pairs a set of secret environment variables mapped to encrypted values with
1504
+ # the Cloud KMS key to use to decrypt the value.
1505
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret
1506
+ include Google::Apis::Core::Hashable
1507
+
1508
+ # Map of environment variable name to its encrypted value. Secret environment
1509
+ # variables must be unique across all of a build's secrets, and must be used by
1510
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1511
+ # most 100 secret values across all of a build's secrets.
1512
+ # Corresponds to the JSON property `envMap`
1513
+ # @return [Hash<String,String>]
1514
+ attr_accessor :env_map
1515
+
1516
+ # Resource name of Cloud KMS crypto key to decrypt the encrypted value. In
1517
+ # format: projects/*/locations/*/keyRings/*/cryptoKeys/*
1518
+ # Corresponds to the JSON property `kmsKeyName`
1519
+ # @return [String]
1520
+ attr_accessor :kms_key_name
1521
+
1522
+ def initialize(**args)
1523
+ update!(**args)
1524
+ end
1525
+
1526
+ # Update properties of this object
1527
+ def update!(**args)
1528
+ @env_map = args[:env_map] if args.key?(:env_map)
1529
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1530
+ end
1531
+ end
1532
+
1533
+ # Location of the source in a Google Cloud Source Repository.
1534
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource
1535
+ include Google::Apis::Core::Hashable
1536
+
1537
+ # Regex matching branches to build. The syntax of the regular expressions
1538
+ # accepted is the syntax accepted by RE2 and described at https://github.com/
1539
+ # google/re2/wiki/Syntax
1540
+ # Corresponds to the JSON property `branchName`
1541
+ # @return [String]
1542
+ attr_accessor :branch_name
1543
+
1544
+ # Explicit commit SHA to build.
1545
+ # Corresponds to the JSON property `commitSha`
1546
+ # @return [String]
1547
+ attr_accessor :commit_sha
1548
+
1549
+ # Directory, relative to the source root, in which to run the build. This must
1550
+ # be a relative path. If a step's `dir` is specified and is an absolute path,
1551
+ # this value is ignored for that step's execution.
1552
+ # Corresponds to the JSON property `dir`
1553
+ # @return [String]
1554
+ attr_accessor :dir
1555
+
1556
+ # Only trigger a build if the revision regex does NOT match the revision regex.
1557
+ # Corresponds to the JSON property `invertRegex`
1558
+ # @return [Boolean]
1559
+ attr_accessor :invert_regex
1560
+ alias_method :invert_regex?, :invert_regex
1561
+
1562
+ # ID of the project that owns the Cloud Source Repository. If omitted, the
1563
+ # project ID requesting the build is assumed.
1564
+ # Corresponds to the JSON property `projectId`
1565
+ # @return [String]
1566
+ attr_accessor :project_id
1567
+
1568
+ # Name of the Cloud Source Repository.
1569
+ # Corresponds to the JSON property `repoName`
1570
+ # @return [String]
1571
+ attr_accessor :repo_name
1572
+
1573
+ # Substitutions to use in a triggered build. Should only be used with
1574
+ # RunBuildTrigger
1575
+ # Corresponds to the JSON property `substitutions`
1576
+ # @return [Hash<String,String>]
1577
+ attr_accessor :substitutions
1578
+
1579
+ # Regex matching tags to build. The syntax of the regular expressions accepted
1580
+ # is the syntax accepted by RE2 and described at https://github.com/google/re2/
1581
+ # wiki/Syntax
1582
+ # Corresponds to the JSON property `tagName`
1583
+ # @return [String]
1584
+ attr_accessor :tag_name
1585
+
1586
+ def initialize(**args)
1587
+ update!(**args)
1588
+ end
1589
+
1590
+ # Update properties of this object
1591
+ def update!(**args)
1592
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
1593
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
1594
+ @dir = args[:dir] if args.key?(:dir)
1595
+ @invert_regex = args[:invert_regex] if args.key?(:invert_regex)
1596
+ @project_id = args[:project_id] if args.key?(:project_id)
1597
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1598
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1599
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
1600
+ end
1601
+ end
1602
+
1603
+ # Artifacts created by the build pipeline.
1604
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Results
1605
+ include Google::Apis::Core::Hashable
1606
+
1607
+ # Path to the artifact manifest. Only populated when artifacts are uploaded.
1608
+ # Corresponds to the JSON property `artifactManifest`
1609
+ # @return [String]
1610
+ attr_accessor :artifact_manifest
1611
+
1612
+ # Start and end times for a build execution phase.
1613
+ # Corresponds to the JSON property `artifactTiming`
1614
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1615
+ attr_accessor :artifact_timing
1616
+
1617
+ # List of build step digests, in the order corresponding to build step indices.
1618
+ # Corresponds to the JSON property `buildStepImages`
1619
+ # @return [Array<String>]
1620
+ attr_accessor :build_step_images
1621
+
1622
+ # List of build step outputs, produced by builder images, in the order
1623
+ # corresponding to build step indices. [Cloud Builders](https://cloud.google.com/
1624
+ # cloud-build/docs/cloud-builders) can produce this output by writing to `$
1625
+ # BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.
1626
+ # Corresponds to the JSON property `buildStepOutputs`
1627
+ # @return [Array<String>]
1628
+ attr_accessor :build_step_outputs
1629
+
1630
+ # Container images that were built as a part of the build.
1631
+ # Corresponds to the JSON property `images`
1632
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage>]
1633
+ attr_accessor :images
1634
+
1635
+ # Number of artifacts uploaded. Only populated when artifacts are uploaded.
1636
+ # Corresponds to the JSON property `numArtifacts`
1637
+ # @return [Fixnum]
1638
+ attr_accessor :num_artifacts
1639
+
1640
+ def initialize(**args)
1641
+ update!(**args)
1642
+ end
1643
+
1644
+ # Update properties of this object
1645
+ def update!(**args)
1646
+ @artifact_manifest = args[:artifact_manifest] if args.key?(:artifact_manifest)
1647
+ @artifact_timing = args[:artifact_timing] if args.key?(:artifact_timing)
1648
+ @build_step_images = args[:build_step_images] if args.key?(:build_step_images)
1649
+ @build_step_outputs = args[:build_step_outputs] if args.key?(:build_step_outputs)
1650
+ @images = args[:images] if args.key?(:images)
1651
+ @num_artifacts = args[:num_artifacts] if args.key?(:num_artifacts)
1652
+ end
1653
+ end
1654
+
1655
+ # Pairs a set of secret environment variables containing encrypted values with
1656
+ # the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `
1657
+ # available_secrets` instead of using `kmsKeyName` with `secret`. For
1658
+ # instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/
1659
+ # use-encrypted-credentials.
1660
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secret
1661
+ include Google::Apis::Core::Hashable
1662
+
1663
+ # Cloud KMS key name to use to decrypt these envs.
1664
+ # Corresponds to the JSON property `kmsKeyName`
1665
+ # @return [String]
1666
+ attr_accessor :kms_key_name
1667
+
1668
+ # Map of environment variable name to its encrypted value. Secret environment
1669
+ # variables must be unique across all of a build's secrets, and must be used by
1670
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1671
+ # most 100 secret values across all of a build's secrets.
1672
+ # Corresponds to the JSON property `secretEnv`
1673
+ # @return [Hash<String,String>]
1674
+ attr_accessor :secret_env
1675
+
1676
+ def initialize(**args)
1677
+ update!(**args)
1678
+ end
1679
+
1680
+ # Update properties of this object
1681
+ def update!(**args)
1682
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1683
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1684
+ end
1685
+ end
1686
+
1687
+ # Pairs a secret environment variable with a SecretVersion in Secret Manager.
1688
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret
579
1689
  include Google::Apis::Core::Hashable
580
1690
 
581
- # Version of the builder which produced this Note.
582
- # Corresponds to the JSON property `builderVersion`
1691
+ # Environment variable name to associate with the secret. Secret environment
1692
+ # variables must be unique across all of a build's secrets, and must be used by
1693
+ # at least one build step.
1694
+ # Corresponds to the JSON property `env`
583
1695
  # @return [String]
584
- attr_accessor :builder_version
1696
+ attr_accessor :env
585
1697
 
586
- # Message encapsulating the signature of the verified build.
587
- # Corresponds to the JSON property `signature`
588
- # @return [Google::Apis::ContaineranalysisV1alpha1::BuildSignature]
589
- attr_accessor :signature
1698
+ # Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*
1699
+ # Corresponds to the JSON property `versionName`
1700
+ # @return [String]
1701
+ attr_accessor :version_name
590
1702
 
591
1703
  def initialize(**args)
592
1704
  update!(**args)
@@ -594,19 +1706,24 @@ module Google
594
1706
 
595
1707
  # Update properties of this object
596
1708
  def update!(**args)
597
- @builder_version = args[:builder_version] if args.key?(:builder_version)
598
- @signature = args[:signature] if args.key?(:signature)
1709
+ @env = args[:env] if args.key?(:env)
1710
+ @version_name = args[:version_name] if args.key?(:version_name)
599
1711
  end
600
1712
  end
601
1713
 
602
- #
603
- class BuilderConfig
1714
+ # Secrets and secret environment variables.
1715
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets
604
1716
  include Google::Apis::Core::Hashable
605
1717
 
606
- #
607
- # Corresponds to the JSON property `id`
608
- # @return [String]
609
- attr_accessor :id
1718
+ # Secrets encrypted with KMS key and the associated secret environment variable.
1719
+ # Corresponds to the JSON property `inline`
1720
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret>]
1721
+ attr_accessor :inline
1722
+
1723
+ # Secrets in Secret Manager and associated secret environment variable.
1724
+ # Corresponds to the JSON property `secretManager`
1725
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret>]
1726
+ attr_accessor :secret_manager
610
1727
 
611
1728
  def initialize(**args)
612
1729
  update!(**args)
@@ -614,23 +1731,31 @@ module Google
614
1731
 
615
1732
  # Update properties of this object
616
1733
  def update!(**args)
617
- @id = args[:id] if args.key?(:id)
1734
+ @inline = args[:inline] if args.key?(:inline)
1735
+ @secret_manager = args[:secret_manager] if args.key?(:secret_manager)
618
1736
  end
619
1737
  end
620
1738
 
621
- # A compliance check that is a CIS benchmark.
622
- class CisBenchmark
1739
+ # Location of the source in a supported storage service.
1740
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source
623
1741
  include Google::Apis::Core::Hashable
624
1742
 
625
- # The profile level of this CIS benchmark check.
626
- # Corresponds to the JSON property `profileLevel`
627
- # @return [Fixnum]
628
- attr_accessor :profile_level
1743
+ # Location of the source in a Google Cloud Source Repository.
1744
+ # Corresponds to the JSON property `repoSource`
1745
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1746
+ attr_accessor :repo_source
629
1747
 
630
- # The severity level of this CIS benchmark check.
631
- # Corresponds to the JSON property `severity`
632
- # @return [String]
633
- attr_accessor :severity
1748
+ # Location of the source in an archive file in Google Cloud Storage.
1749
+ # Corresponds to the JSON property `storageSource`
1750
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1751
+ attr_accessor :storage_source
1752
+
1753
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1754
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1755
+ # builders/tree/master/gcs-fetcher).
1756
+ # Corresponds to the JSON property `storageSourceManifest`
1757
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1758
+ attr_accessor :storage_source_manifest
634
1759
 
635
1760
  def initialize(**args)
636
1761
  update!(**args)
@@ -638,47 +1763,44 @@ module Google
638
1763
 
639
1764
  # Update properties of this object
640
1765
  def update!(**args)
641
- @profile_level = args[:profile_level] if args.key?(:profile_level)
642
- @severity = args[:severity] if args.key?(:severity)
1766
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
1767
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
1768
+ @storage_source_manifest = args[:storage_source_manifest] if args.key?(:storage_source_manifest)
643
1769
  end
644
1770
  end
645
1771
 
646
- # Command describes a step performed as part of the build pipeline.
647
- class Command
1772
+ # Provenance of the source. Ways to find the original source, or verify that
1773
+ # some source was used for this build.
1774
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance
648
1775
  include Google::Apis::Core::Hashable
649
1776
 
650
- # Command-line arguments used when executing this Command.
651
- # Corresponds to the JSON property `args`
652
- # @return [Array<String>]
653
- attr_accessor :args
654
-
655
- # Working directory (relative to project source root) used when running this
656
- # Command.
657
- # Corresponds to the JSON property `dir`
658
- # @return [String]
659
- attr_accessor :dir
660
-
661
- # Environment variables set before running this Command.
662
- # Corresponds to the JSON property `env`
663
- # @return [Array<String>]
664
- attr_accessor :env
1777
+ # Output only. Hash(es) of the build source, which can be used to verify that
1778
+ # the original source integrity was maintained in the build. Note that `
1779
+ # FileHashes` will only be populated if `BuildOptions` has requested a `
1780
+ # SourceProvenanceHash`. The keys to this map are file paths used as build
1781
+ # source and the values contain the hash values for those files. If the build
1782
+ # source came in a single package such as a gzipped tarfile (`.tar.gz`), the `
1783
+ # FileHash` will be for the single path to that file.
1784
+ # Corresponds to the JSON property `fileHashes`
1785
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes>]
1786
+ attr_accessor :file_hashes
665
1787
 
666
- # Optional unique identifier for this Command, used in wait_for to reference
667
- # this Command as a dependency.
668
- # Corresponds to the JSON property `id`
669
- # @return [String]
670
- attr_accessor :id
1788
+ # Location of the source in a Google Cloud Source Repository.
1789
+ # Corresponds to the JSON property `resolvedRepoSource`
1790
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1791
+ attr_accessor :resolved_repo_source
671
1792
 
672
- # Name of the command, as presented on the command line, or if the command is
673
- # packaged as a Docker container, as presented to `docker pull`.
674
- # Corresponds to the JSON property `name`
675
- # @return [String]
676
- attr_accessor :name
1793
+ # Location of the source in an archive file in Google Cloud Storage.
1794
+ # Corresponds to the JSON property `resolvedStorageSource`
1795
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1796
+ attr_accessor :resolved_storage_source
677
1797
 
678
- # The ID(s) of the Command(s) that this Command depends on.
679
- # Corresponds to the JSON property `waitFor`
680
- # @return [Array<String>]
681
- attr_accessor :wait_for
1798
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1799
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1800
+ # builders/tree/master/gcs-fetcher).
1801
+ # Corresponds to the JSON property `resolvedStorageSourceManifest`
1802
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1803
+ attr_accessor :resolved_storage_source_manifest
682
1804
 
683
1805
  def initialize(**args)
684
1806
  update!(**args)
@@ -686,39 +1808,35 @@ module Google
686
1808
 
687
1809
  # Update properties of this object
688
1810
  def update!(**args)
689
- @args = args[:args] if args.key?(:args)
690
- @dir = args[:dir] if args.key?(:dir)
691
- @env = args[:env] if args.key?(:env)
692
- @id = args[:id] if args.key?(:id)
693
- @name = args[:name] if args.key?(:name)
694
- @wait_for = args[:wait_for] if args.key?(:wait_for)
1811
+ @file_hashes = args[:file_hashes] if args.key?(:file_hashes)
1812
+ @resolved_repo_source = args[:resolved_repo_source] if args.key?(:resolved_repo_source)
1813
+ @resolved_storage_source = args[:resolved_storage_source] if args.key?(:resolved_storage_source)
1814
+ @resolved_storage_source_manifest = args[:resolved_storage_source_manifest] if args.key?(:resolved_storage_source_manifest)
695
1815
  end
696
1816
  end
697
1817
 
698
- # Indicates that the builder claims certain fields in this message to be
699
- # complete.
700
- class Completeness
1818
+ # Location of the source in an archive file in Google Cloud Storage.
1819
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource
701
1820
  include Google::Apis::Core::Hashable
702
1821
 
703
- # If true, the builder claims that recipe.arguments is complete, meaning that
704
- # all external inputs are properly captured in the recipe.
705
- # Corresponds to the JSON property `arguments`
706
- # @return [Boolean]
707
- attr_accessor :arguments
708
- alias_method :arguments?, :arguments
1822
+ # Google Cloud Storage bucket containing the source (see [Bucket Name
1823
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1824
+ # ).
1825
+ # Corresponds to the JSON property `bucket`
1826
+ # @return [String]
1827
+ attr_accessor :bucket
709
1828
 
710
- # If true, the builder claims that recipe.environment is claimed to be complete.
711
- # Corresponds to the JSON property `environment`
712
- # @return [Boolean]
713
- attr_accessor :environment
714
- alias_method :environment?, :environment
1829
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1830
+ # the latest generation will be used.
1831
+ # Corresponds to the JSON property `generation`
1832
+ # @return [Fixnum]
1833
+ attr_accessor :generation
715
1834
 
716
- # If true, the builder claims that materials are complete, usually through some
717
- # controls to prevent network access. Sometimes called "hermetic".
718
- # Corresponds to the JSON property `materials`
719
- # @return [Boolean]
720
- attr_accessor :materials
721
- alias_method :materials?, :materials
1835
+ # Google Cloud Storage object containing the source. This object must be a
1836
+ # zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.
1837
+ # Corresponds to the JSON property `object`
1838
+ # @return [String]
1839
+ attr_accessor :object
722
1840
 
723
1841
  def initialize(**args)
724
1842
  update!(**args)
@@ -726,51 +1844,36 @@ module Google
726
1844
 
727
1845
  # Update properties of this object
728
1846
  def update!(**args)
729
- @arguments = args[:arguments] if args.key?(:arguments)
730
- @environment = args[:environment] if args.key?(:environment)
731
- @materials = args[:materials] if args.key?(:materials)
1847
+ @bucket = args[:bucket] if args.key?(:bucket)
1848
+ @generation = args[:generation] if args.key?(:generation)
1849
+ @object = args[:object] if args.key?(:object)
732
1850
  end
733
1851
  end
734
1852
 
735
- # ComplianceNote encapsulates all information about a specific compliance check.
736
- class ComplianceNote
1853
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1854
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1855
+ # builders/tree/master/gcs-fetcher).
1856
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest
737
1857
  include Google::Apis::Core::Hashable
738
1858
 
739
- # A compliance check that is a CIS benchmark.
740
- # Corresponds to the JSON property `cisBenchmark`
741
- # @return [Google::Apis::ContaineranalysisV1alpha1::CisBenchmark]
742
- attr_accessor :cis_benchmark
743
-
744
- # A description about this compliance check.
745
- # Corresponds to the JSON property `description`
746
- # @return [String]
747
- attr_accessor :description
748
-
749
- # A rationale for the existence of this compliance check.
750
- # Corresponds to the JSON property `rationale`
751
- # @return [String]
752
- attr_accessor :rationale
753
-
754
- # A description of remediation steps if the compliance check fails.
755
- # Corresponds to the JSON property `remediation`
1859
+ # Google Cloud Storage bucket containing the source manifest (see [Bucket Name
1860
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1861
+ # ).
1862
+ # Corresponds to the JSON property `bucket`
756
1863
  # @return [String]
757
- attr_accessor :remediation
1864
+ attr_accessor :bucket
758
1865
 
759
- # Serialized scan instructions with a predefined format.
760
- # Corresponds to the JSON property `scanInstructions`
761
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
762
- # @return [String]
763
- attr_accessor :scan_instructions
1866
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1867
+ # the latest generation will be used.
1868
+ # Corresponds to the JSON property `generation`
1869
+ # @return [Fixnum]
1870
+ attr_accessor :generation
764
1871
 
765
- # The title that identifies this compliance check.
766
- # Corresponds to the JSON property `title`
1872
+ # Google Cloud Storage object containing the source manifest. This object must
1873
+ # be a JSON file.
1874
+ # Corresponds to the JSON property `object`
767
1875
  # @return [String]
768
- attr_accessor :title
769
-
770
- # The OS and config versions the benchmark applies to.
771
- # Corresponds to the JSON property `version`
772
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ComplianceVersion>]
773
- attr_accessor :version
1876
+ attr_accessor :object
774
1877
 
775
1878
  def initialize(**args)
776
1879
  update!(**args)
@@ -778,30 +1881,25 @@ module Google
778
1881
 
779
1882
  # Update properties of this object
780
1883
  def update!(**args)
781
- @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
782
- @description = args[:description] if args.key?(:description)
783
- @rationale = args[:rationale] if args.key?(:rationale)
784
- @remediation = args[:remediation] if args.key?(:remediation)
785
- @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
786
- @title = args[:title] if args.key?(:title)
787
- @version = args[:version] if args.key?(:version)
1884
+ @bucket = args[:bucket] if args.key?(:bucket)
1885
+ @generation = args[:generation] if args.key?(:generation)
1886
+ @object = args[:object] if args.key?(:object)
788
1887
  end
789
1888
  end
790
1889
 
791
- # An indication that the compliance checks in the associated ComplianceNote were
792
- # not satisfied for particular resources or a specified reason.
793
- class ComplianceOccurrence
1890
+ # Start and end times for a build execution phase.
1891
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan
794
1892
  include Google::Apis::Core::Hashable
795
1893
 
796
- # The reason for non compliance of these files.
797
- # Corresponds to the JSON property `nonComplianceReason`
1894
+ # End of time span.
1895
+ # Corresponds to the JSON property `endTime`
798
1896
  # @return [String]
799
- attr_accessor :non_compliance_reason
1897
+ attr_accessor :end_time
800
1898
 
801
- # A list of files which are violating compliance checks.
802
- # Corresponds to the JSON property `nonCompliantFiles`
803
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::NonCompliantFile>]
804
- attr_accessor :non_compliant_files
1899
+ # Start of time span.
1900
+ # Corresponds to the JSON property `startTime`
1901
+ # @return [String]
1902
+ attr_accessor :start_time
805
1903
 
806
1904
  def initialize(**args)
807
1905
  update!(**args)
@@ -809,27 +1907,29 @@ module Google
809
1907
 
810
1908
  # Update properties of this object
811
1909
  def update!(**args)
812
- @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
813
- @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
1910
+ @end_time = args[:end_time] if args.key?(:end_time)
1911
+ @start_time = args[:start_time] if args.key?(:start_time)
814
1912
  end
815
1913
  end
816
1914
 
817
- # Describes the CIS benchmark version that is applicable to a given OS and os
818
- # version.
819
- class ComplianceVersion
1915
+ # Volume describes a Docker container volume which is mounted into build steps
1916
+ # in order to persist files across build step execution.
1917
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Volume
820
1918
  include Google::Apis::Core::Hashable
821
1919
 
822
- # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
823
- # applicable to.
824
- # Corresponds to the JSON property `cpeUri`
1920
+ # Name of the volume to mount. Volume names must be unique per build step and
1921
+ # must be valid names for Docker volumes. Each named volume must be used by at
1922
+ # least two build steps.
1923
+ # Corresponds to the JSON property `name`
825
1924
  # @return [String]
826
- attr_accessor :cpe_uri
1925
+ attr_accessor :name
827
1926
 
828
- # The version of the benchmark. This is set to the version of the OS-specific
829
- # CIS document the benchmark is defined in.
830
- # Corresponds to the JSON property `version`
1927
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
1928
+ # with other volume paths on the same build step or with certain reserved volume
1929
+ # paths.
1930
+ # Corresponds to the JSON property `path`
831
1931
  # @return [String]
832
- attr_accessor :version
1932
+ attr_accessor :path
833
1933
 
834
1934
  def initialize(**args)
835
1935
  update!(**args)
@@ -837,8 +1937,8 @@ module Google
837
1937
 
838
1938
  # Update properties of this object
839
1939
  def update!(**args)
840
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
841
- @version = args[:version] if args.key?(:version)
1940
+ @name = args[:name] if args.key?(:name)
1941
+ @path = args[:path] if args.key?(:path)
842
1942
  end
843
1943
  end
844
1944
 
@@ -1738,13 +2838,16 @@ module Google
1738
2838
  class GetPolicyOptions
1739
2839
  include Google::Apis::Core::Hashable
1740
2840
 
1741
- # Optional. The policy format version to be returned. Valid values are 0, 1, and
1742
- # 3. Requests specifying an invalid value will be rejected. Requests for
1743
- # policies with any conditional bindings must specify version 3. Policies
1744
- # without any conditional bindings may specify any valid value or leave the
1745
- # field unset. To learn which resources support conditions in their IAM policies,
1746
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1747
- # resource-policies).
2841
+ # Optional. The maximum policy version that will be used to format the policy.
2842
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2843
+ # rejected. Requests for policies with any conditional role bindings must
2844
+ # specify version 3. Policies with no conditional role bindings may specify any
2845
+ # valid value or leave the field unset. The policy in the response might use the
2846
+ # policy version that you specified, or it might use a lower policy version. For
2847
+ # example, if you specify version 3, but the policy has no conditional role
2848
+ # bindings, the response uses version 1. To learn which resources support
2849
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2850
+ # google.com/iam/help/conditions/resource-policies).
1748
2851
  # Corresponds to the JSON property `requestedPolicyVersion`
1749
2852
  # @return [Fixnum]
1750
2853
  attr_accessor :requested_policy_version
@@ -2091,36 +3194,42 @@ module Google
2091
3194
  class InTotoStatement
2092
3195
  include Google::Apis::Core::Hashable
2093
3196
 
2094
- # "https://in-toto.io/Provenance/v0.1" for InTotoProvenance.
3197
+ # Always "https://in-toto.io/Statement/v0.1".
3198
+ # Corresponds to the JSON property `_type`
3199
+ # @return [String]
3200
+ attr_accessor :_type
3201
+
3202
+ # "https://slsa.dev/provenance/v0.1" for SlsaProvenance.
2095
3203
  # Corresponds to the JSON property `predicateType`
2096
3204
  # @return [String]
2097
3205
  attr_accessor :predicate_type
2098
3206
 
2099
- #
3207
+ # provenance is a predicate of type intotoprovenance
2100
3208
  # Corresponds to the JSON property `provenance`
2101
3209
  # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoProvenance]
2102
3210
  attr_accessor :provenance
2103
3211
 
2104
- #
3212
+ # SlsaProvenance is the slsa provenance as defined by the slsa spec.
3213
+ # Corresponds to the JSON property `slsaProvenance`
3214
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaProvenance]
3215
+ attr_accessor :slsa_provenance
3216
+
3217
+ # subject is the subjects of the intoto statement
2105
3218
  # Corresponds to the JSON property `subject`
2106
3219
  # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Subject>]
2107
3220
  attr_accessor :subject
2108
3221
 
2109
- # Always "https://in-toto.io/Statement/v0.1".
2110
- # Corresponds to the JSON property `type`
2111
- # @return [String]
2112
- attr_accessor :type
2113
-
2114
3222
  def initialize(**args)
2115
3223
  update!(**args)
2116
3224
  end
2117
3225
 
2118
3226
  # Update properties of this object
2119
3227
  def update!(**args)
3228
+ @_type = args[:_type] if args.key?(:_type)
2120
3229
  @predicate_type = args[:predicate_type] if args.key?(:predicate_type)
2121
3230
  @provenance = args[:provenance] if args.key?(:provenance)
3231
+ @slsa_provenance = args[:slsa_provenance] if args.key?(:slsa_provenance)
2122
3232
  @subject = args[:subject] if args.key?(:subject)
2123
- @type = args[:type] if args.key?(:type)
2124
3233
  end
2125
3234
  end
2126
3235
 
@@ -2320,13 +3429,40 @@ module Google
2320
3429
  # @return [String]
2321
3430
  attr_accessor :path
2322
3431
 
2323
- # Version contains structured information about the version of the package. For
2324
- # a discussion of this in Debian/Ubuntu: http://serverfault.com/questions/604541/
2325
- # debian-packages-version-convention For a discussion of this in Redhat/Fedora/
2326
- # Centos: http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
2327
- # Corresponds to the JSON property `version`
2328
- # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
2329
- attr_accessor :version
3432
+ # Version contains structured information about the version of the package. For
3433
+ # a discussion of this in Debian/Ubuntu: http://serverfault.com/questions/604541/
3434
+ # debian-packages-version-convention For a discussion of this in Redhat/Fedora/
3435
+ # Centos: http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
3436
+ # Corresponds to the JSON property `version`
3437
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
3438
+ attr_accessor :version
3439
+
3440
+ def initialize(**args)
3441
+ update!(**args)
3442
+ end
3443
+
3444
+ # Update properties of this object
3445
+ def update!(**args)
3446
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
3447
+ @path = args[:path] if args.key?(:path)
3448
+ @version = args[:version] if args.key?(:version)
3449
+ end
3450
+ end
3451
+
3452
+ # Material is a material used in the generation of the provenance
3453
+ class Material
3454
+ include Google::Apis::Core::Hashable
3455
+
3456
+ # digest is a map from a hash algorithm (e.g. sha256) to the value in the
3457
+ # material
3458
+ # Corresponds to the JSON property `digest`
3459
+ # @return [Hash<String,String>]
3460
+ attr_accessor :digest
3461
+
3462
+ # uri is the uri of the material
3463
+ # Corresponds to the JSON property `uri`
3464
+ # @return [String]
3465
+ attr_accessor :uri
2330
3466
 
2331
3467
  def initialize(**args)
2332
3468
  update!(**args)
@@ -2334,9 +3470,8 @@ module Google
2334
3470
 
2335
3471
  # Update properties of this object
2336
3472
  def update!(**args)
2337
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
2338
- @path = args[:path] if args.key?(:path)
2339
- @version = args[:version] if args.key?(:version)
3473
+ @digest = args[:digest] if args.key?(:digest)
3474
+ @uri = args[:uri] if args.key?(:uri)
2340
3475
  end
2341
3476
  end
2342
3477
 
@@ -3595,6 +4730,210 @@ module Google
3595
4730
  end
3596
4731
  end
3597
4732
 
4733
+ # SlsaBuilder encapsulates the identity of the builder of this provenance.
4734
+ class SlsaBuilder
4735
+ include Google::Apis::Core::Hashable
4736
+
4737
+ # id is the id of the slsa provenance builder
4738
+ # Corresponds to the JSON property `id`
4739
+ # @return [String]
4740
+ attr_accessor :id
4741
+
4742
+ def initialize(**args)
4743
+ update!(**args)
4744
+ end
4745
+
4746
+ # Update properties of this object
4747
+ def update!(**args)
4748
+ @id = args[:id] if args.key?(:id)
4749
+ end
4750
+ end
4751
+
4752
+ # Indicates that the builder claims certain fields in this message to be
4753
+ # complete.
4754
+ class SlsaCompleteness
4755
+ include Google::Apis::Core::Hashable
4756
+
4757
+ # If true, the builder claims that recipe.arguments is complete, meaning that
4758
+ # all external inputs are properly captured in the recipe.
4759
+ # Corresponds to the JSON property `arguments`
4760
+ # @return [Boolean]
4761
+ attr_accessor :arguments
4762
+ alias_method :arguments?, :arguments
4763
+
4764
+ # If true, the builder claims that recipe.environment is claimed to be complete.
4765
+ # Corresponds to the JSON property `environment`
4766
+ # @return [Boolean]
4767
+ attr_accessor :environment
4768
+ alias_method :environment?, :environment
4769
+
4770
+ # If true, the builder claims that materials are complete, usually through some
4771
+ # controls to prevent network access. Sometimes called "hermetic".
4772
+ # Corresponds to the JSON property `materials`
4773
+ # @return [Boolean]
4774
+ attr_accessor :materials
4775
+ alias_method :materials?, :materials
4776
+
4777
+ def initialize(**args)
4778
+ update!(**args)
4779
+ end
4780
+
4781
+ # Update properties of this object
4782
+ def update!(**args)
4783
+ @arguments = args[:arguments] if args.key?(:arguments)
4784
+ @environment = args[:environment] if args.key?(:environment)
4785
+ @materials = args[:materials] if args.key?(:materials)
4786
+ end
4787
+ end
4788
+
4789
+ # Other properties of the build.
4790
+ class SlsaMetadata
4791
+ include Google::Apis::Core::Hashable
4792
+
4793
+ # The timestamp of when the build completed.
4794
+ # Corresponds to the JSON property `buildFinishedOn`
4795
+ # @return [String]
4796
+ attr_accessor :build_finished_on
4797
+
4798
+ # Identifies the particular build invocation, which can be useful for finding
4799
+ # associated logs or other ad-hoc analysis. The value SHOULD be globally unique,
4800
+ # per in-toto Provenance spec.
4801
+ # Corresponds to the JSON property `buildInvocationId`
4802
+ # @return [String]
4803
+ attr_accessor :build_invocation_id
4804
+
4805
+ # The timestamp of when the build started.
4806
+ # Corresponds to the JSON property `buildStartedOn`
4807
+ # @return [String]
4808
+ attr_accessor :build_started_on
4809
+
4810
+ # Indicates that the builder claims certain fields in this message to be
4811
+ # complete.
4812
+ # Corresponds to the JSON property `completeness`
4813
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaCompleteness]
4814
+ attr_accessor :completeness
4815
+
4816
+ # If true, the builder claims that running the recipe on materials will produce
4817
+ # bit-for-bit identical output.
4818
+ # Corresponds to the JSON property `reproducible`
4819
+ # @return [Boolean]
4820
+ attr_accessor :reproducible
4821
+ alias_method :reproducible?, :reproducible
4822
+
4823
+ def initialize(**args)
4824
+ update!(**args)
4825
+ end
4826
+
4827
+ # Update properties of this object
4828
+ def update!(**args)
4829
+ @build_finished_on = args[:build_finished_on] if args.key?(:build_finished_on)
4830
+ @build_invocation_id = args[:build_invocation_id] if args.key?(:build_invocation_id)
4831
+ @build_started_on = args[:build_started_on] if args.key?(:build_started_on)
4832
+ @completeness = args[:completeness] if args.key?(:completeness)
4833
+ @reproducible = args[:reproducible] if args.key?(:reproducible)
4834
+ end
4835
+ end
4836
+
4837
+ # SlsaProvenance is the slsa provenance as defined by the slsa spec.
4838
+ class SlsaProvenance
4839
+ include Google::Apis::Core::Hashable
4840
+
4841
+ # SlsaBuilder encapsulates the identity of the builder of this provenance.
4842
+ # Corresponds to the JSON property `builder`
4843
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaBuilder]
4844
+ attr_accessor :builder
4845
+
4846
+ # The collection of artifacts that influenced the build including sources,
4847
+ # dependencies, build tools, base images, and so on. This is considered to be
4848
+ # incomplete unless metadata.completeness.materials is true. Unset or null is
4849
+ # equivalent to empty.
4850
+ # Corresponds to the JSON property `materials`
4851
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Material>]
4852
+ attr_accessor :materials
4853
+
4854
+ # Other properties of the build.
4855
+ # Corresponds to the JSON property `metadata`
4856
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaMetadata]
4857
+ attr_accessor :metadata
4858
+
4859
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4860
+ # corresponds to one step in the recipe.
4861
+ # Corresponds to the JSON property `recipe`
4862
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaRecipe]
4863
+ attr_accessor :recipe
4864
+
4865
+ def initialize(**args)
4866
+ update!(**args)
4867
+ end
4868
+
4869
+ # Update properties of this object
4870
+ def update!(**args)
4871
+ @builder = args[:builder] if args.key?(:builder)
4872
+ @materials = args[:materials] if args.key?(:materials)
4873
+ @metadata = args[:metadata] if args.key?(:metadata)
4874
+ @recipe = args[:recipe] if args.key?(:recipe)
4875
+ end
4876
+ end
4877
+
4878
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4879
+ # corresponds to one step in the recipe.
4880
+ class SlsaRecipe
4881
+ include Google::Apis::Core::Hashable
4882
+
4883
+ # Collection of all external inputs that influenced the build on top of recipe.
4884
+ # definedInMaterial and recipe.entryPoint. For example, if the recipe type were "
4885
+ # make", then this might be the flags passed to make aside from the target,
4886
+ # which is captured in recipe.entryPoint. Depending on the recipe Type, the
4887
+ # structure may be different.
4888
+ # Corresponds to the JSON property `arguments`
4889
+ # @return [Hash<String,Object>]
4890
+ attr_accessor :arguments
4891
+
4892
+ # Index in materials containing the recipe steps that are not implied by recipe.
4893
+ # type. For example, if the recipe type were "make", then this would point to
4894
+ # the source containing the Makefile, not the make program itself. Set to -1 if
4895
+ # the recipe doesn't come from a material, as zero is default unset value for
4896
+ # int64.
4897
+ # Corresponds to the JSON property `definedInMaterial`
4898
+ # @return [Fixnum]
4899
+ attr_accessor :defined_in_material
4900
+
4901
+ # String identifying the entry point into the build. This is often a path to a
4902
+ # configuration file and/or a target label within that file. The syntax and
4903
+ # meaning are defined by recipe.type. For example, if the recipe type were "make"
4904
+ # , then this would reference the directory in which to run make as well as
4905
+ # which target to use.
4906
+ # Corresponds to the JSON property `entryPoint`
4907
+ # @return [String]
4908
+ attr_accessor :entry_point
4909
+
4910
+ # Any other builder-controlled inputs necessary for correctly evaluating the
4911
+ # recipe. Usually only needed for reproducing the build but not evaluated as
4912
+ # part of policy. Depending on the recipe Type, the structure may be different.
4913
+ # Corresponds to the JSON property `environment`
4914
+ # @return [Hash<String,Object>]
4915
+ attr_accessor :environment
4916
+
4917
+ # URI indicating what type of recipe was performed. It determines the meaning of
4918
+ # recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
4919
+ # Corresponds to the JSON property `type`
4920
+ # @return [String]
4921
+ attr_accessor :type
4922
+
4923
+ def initialize(**args)
4924
+ update!(**args)
4925
+ end
4926
+
4927
+ # Update properties of this object
4928
+ def update!(**args)
4929
+ @arguments = args[:arguments] if args.key?(:arguments)
4930
+ @defined_in_material = args[:defined_in_material] if args.key?(:defined_in_material)
4931
+ @entry_point = args[:entry_point] if args.key?(:entry_point)
4932
+ @environment = args[:environment] if args.key?(:environment)
4933
+ @type = args[:type] if args.key?(:type)
4934
+ end
4935
+ end
4936
+
3598
4937
  # Source describes the location of the source used for the build.
3599
4938
  class Source
3600
4939
  include Google::Apis::Core::Hashable
@@ -3727,16 +5066,17 @@ module Google
3727
5066
  end
3728
5067
  end
3729
5068
 
3730
- #
5069
+ # Subject refers to the subject of the intoto statement
3731
5070
  class Subject
3732
5071
  include Google::Apis::Core::Hashable
3733
5072
 
3734
- # "": ""
5073
+ # "": "" Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/
5074
+ # attestation/blob/main/spec/field_types.md#DigestSet
3735
5075
  # Corresponds to the JSON property `digest`
3736
5076
  # @return [Hash<String,String>]
3737
5077
  attr_accessor :digest
3738
5078
 
3739
- #
5079
+ # name is the name of the Subject used here
3740
5080
  # Corresponds to the JSON property `name`
3741
5081
  # @return [String]
3742
5082
  attr_accessor :name
@@ -3792,31 +5132,6 @@ module Google
3792
5132
  end
3793
5133
  end
3794
5134
 
3795
- # Start and end times for a build execution phase.
3796
- class TimeSpan
3797
- include Google::Apis::Core::Hashable
3798
-
3799
- # End of time span.
3800
- # Corresponds to the JSON property `endTime`
3801
- # @return [String]
3802
- attr_accessor :end_time
3803
-
3804
- # Start of time span.
3805
- # Corresponds to the JSON property `startTime`
3806
- # @return [String]
3807
- attr_accessor :start_time
3808
-
3809
- def initialize(**args)
3810
- update!(**args)
3811
- end
3812
-
3813
- # Update properties of this object
3814
- def update!(**args)
3815
- @end_time = args[:end_time] if args.key?(:end_time)
3816
- @start_time = args[:start_time] if args.key?(:start_time)
3817
- end
3818
- end
3819
-
3820
5135
  # Request for updating an existing operation
3821
5136
  class UpdateOperationRequest
3822
5137
  include Google::Apis::Core::Hashable
@@ -4008,36 +5323,6 @@ module Google
4008
5323
  end
4009
5324
  end
4010
5325
 
4011
- # Volume describes a Docker container volume which is mounted into build steps
4012
- # in order to persist files across build step execution.
4013
- class Volume
4014
- include Google::Apis::Core::Hashable
4015
-
4016
- # Name of the volume to mount. Volume names must be unique per build step and
4017
- # must be valid names for Docker volumes. Each named volume must be used by at
4018
- # least two build steps.
4019
- # Corresponds to the JSON property `name`
4020
- # @return [String]
4021
- attr_accessor :name
4022
-
4023
- # Path at which to mount the volume. Paths must be absolute and cannot conflict
4024
- # with other volume paths on the same build step or with certain reserved volume
4025
- # paths.
4026
- # Corresponds to the JSON property `path`
4027
- # @return [String]
4028
- attr_accessor :path
4029
-
4030
- def initialize(**args)
4031
- update!(**args)
4032
- end
4033
-
4034
- # Update properties of this object
4035
- def update!(**args)
4036
- @name = args[:name] if args.key?(:name)
4037
- @path = args[:path] if args.key?(:path)
4038
- end
4039
- end
4040
-
4041
5326
  # Used by Occurrence to point to where the vulnerability exists and how to fix
4042
5327
  # it.
4043
5328
  class VulnerabilityDetails