google-apis-containeranalysis_v1alpha1 0.14.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -184,7 +184,7 @@ module Google
184
184
  end
185
185
  end
186
186
 
187
- # Associates `members` with a `role`.
187
+ # Associates `members`, or principals, with a `role`.
188
188
  class Binding
189
189
  include Google::Apis::Core::Hashable
190
190
 
@@ -207,7 +207,7 @@ module Google
207
207
  # @return [Google::Apis::ContaineranalysisV1alpha1::Expr]
208
208
  attr_accessor :condition
209
209
 
210
- # Specifies the identities requesting access for a Cloud Platform resource. `
210
+ # Specifies the principals requesting access for a Cloud Platform resource. `
211
211
  # members` can have the following values: * `allUsers`: A special identifier
212
212
  # that represents anyone who is on the internet; with or without a Google
213
213
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -237,8 +237,8 @@ module Google
237
237
  # @return [Array<String>]
238
238
  attr_accessor :members
239
239
 
240
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
241
- # , or `roles/owner`.
240
+ # Role that is assigned to the list of `members`, or principals. For example, `
241
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
242
242
  # Corresponds to the JSON property `role`
243
243
  # @return [String]
244
244
  attr_accessor :role
@@ -259,11 +259,19 @@ module Google
259
259
  class BuildDetails
260
260
  include Google::Apis::Core::Hashable
261
261
 
262
- # In-toto Provenance representation as defined in spec.
262
+ # Deprecated. See InTotoStatement for the replacement. In-toto Provenance
263
+ # representation as defined in spec.
263
264
  # Corresponds to the JSON property `intotoProvenance`
264
265
  # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoProvenance]
265
266
  attr_accessor :intoto_provenance
266
267
 
268
+ # Spec defined at https://github.com/in-toto/attestation/tree/main/spec#
269
+ # statement The serialized InTotoStatement will be stored as Envelope.payload.
270
+ # Envelope.payloadType is always "application/vnd.in-toto+json".
271
+ # Corresponds to the JSON property `intotoStatement`
272
+ # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoStatement]
273
+ attr_accessor :intoto_statement
274
+
267
275
  # Provenance of a build. Contains all information needed to verify the full
268
276
  # details about the build from source to completion.
269
277
  # Corresponds to the JSON property `provenance`
@@ -289,6 +297,7 @@ module Google
289
297
  # Update properties of this object
290
298
  def update!(**args)
291
299
  @intoto_provenance = args[:intoto_provenance] if args.key?(:intoto_provenance)
300
+ @intoto_statement = args[:intoto_statement] if args.key?(:intoto_statement)
292
301
  @provenance = args[:provenance] if args.key?(:provenance)
293
302
  @provenance_bytes = args[:provenance_bytes] if args.key?(:provenance_bytes)
294
303
  end
@@ -611,31 +620,1269 @@ module Google
611
620
  # @return [String]
612
621
  attr_accessor :description
613
622
 
614
- # A rationale for the existence of this compliance check.
615
- # Corresponds to the JSON property `rationale`
616
- # @return [String]
617
- attr_accessor :rationale
623
+ # A rationale for the existence of this compliance check.
624
+ # Corresponds to the JSON property `rationale`
625
+ # @return [String]
626
+ attr_accessor :rationale
627
+
628
+ # A description of remediation steps if the compliance check fails.
629
+ # Corresponds to the JSON property `remediation`
630
+ # @return [String]
631
+ attr_accessor :remediation
632
+
633
+ # Serialized scan instructions with a predefined format.
634
+ # Corresponds to the JSON property `scanInstructions`
635
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
636
+ # @return [String]
637
+ attr_accessor :scan_instructions
638
+
639
+ # The title that identifies this compliance check.
640
+ # Corresponds to the JSON property `title`
641
+ # @return [String]
642
+ attr_accessor :title
643
+
644
+ # The OS and config versions the benchmark applies to.
645
+ # Corresponds to the JSON property `version`
646
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ComplianceVersion>]
647
+ attr_accessor :version
648
+
649
+ def initialize(**args)
650
+ update!(**args)
651
+ end
652
+
653
+ # Update properties of this object
654
+ def update!(**args)
655
+ @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
656
+ @description = args[:description] if args.key?(:description)
657
+ @rationale = args[:rationale] if args.key?(:rationale)
658
+ @remediation = args[:remediation] if args.key?(:remediation)
659
+ @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
660
+ @title = args[:title] if args.key?(:title)
661
+ @version = args[:version] if args.key?(:version)
662
+ end
663
+ end
664
+
665
+ # An indication that the compliance checks in the associated ComplianceNote were
666
+ # not satisfied for particular resources or a specified reason.
667
+ class ComplianceOccurrence
668
+ include Google::Apis::Core::Hashable
669
+
670
+ # The reason for non compliance of these files.
671
+ # Corresponds to the JSON property `nonComplianceReason`
672
+ # @return [String]
673
+ attr_accessor :non_compliance_reason
674
+
675
+ # A list of files which are violating compliance checks.
676
+ # Corresponds to the JSON property `nonCompliantFiles`
677
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::NonCompliantFile>]
678
+ attr_accessor :non_compliant_files
679
+
680
+ def initialize(**args)
681
+ update!(**args)
682
+ end
683
+
684
+ # Update properties of this object
685
+ def update!(**args)
686
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
687
+ @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
688
+ end
689
+ end
690
+
691
+ # Describes the CIS benchmark version that is applicable to a given OS and os
692
+ # version.
693
+ class ComplianceVersion
694
+ include Google::Apis::Core::Hashable
695
+
696
+ # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
697
+ # applicable to.
698
+ # Corresponds to the JSON property `cpeUri`
699
+ # @return [String]
700
+ attr_accessor :cpe_uri
701
+
702
+ # The version of the benchmark. This is set to the version of the OS-specific
703
+ # CIS document the benchmark is defined in.
704
+ # Corresponds to the JSON property `version`
705
+ # @return [String]
706
+ attr_accessor :version
707
+
708
+ def initialize(**args)
709
+ update!(**args)
710
+ end
711
+
712
+ # Update properties of this object
713
+ def update!(**args)
714
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
715
+ @version = args[:version] if args.key?(:version)
716
+ end
717
+ end
718
+
719
+ # ApprovalConfig describes configuration for manual approval of a build.
720
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig
721
+ include Google::Apis::Core::Hashable
722
+
723
+ # Whether or not approval is needed. If this is set on a build, it will become
724
+ # pending when created, and will need to be explicitly approved to start.
725
+ # Corresponds to the JSON property `approvalRequired`
726
+ # @return [Boolean]
727
+ attr_accessor :approval_required
728
+ alias_method :approval_required?, :approval_required
729
+
730
+ def initialize(**args)
731
+ update!(**args)
732
+ end
733
+
734
+ # Update properties of this object
735
+ def update!(**args)
736
+ @approval_required = args[:approval_required] if args.key?(:approval_required)
737
+ end
738
+ end
739
+
740
+ # ApprovalResult describes the decision and associated metadata of a manual
741
+ # approval of a build.
742
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult
743
+ include Google::Apis::Core::Hashable
744
+
745
+ # Output only. The time when the approval decision was made.
746
+ # Corresponds to the JSON property `approvalTime`
747
+ # @return [String]
748
+ attr_accessor :approval_time
749
+
750
+ # Output only. Email of the user that called the ApproveBuild API to approve or
751
+ # reject a build at the time that the API was called.
752
+ # Corresponds to the JSON property `approverAccount`
753
+ # @return [String]
754
+ attr_accessor :approver_account
755
+
756
+ # Optional. An optional comment for this manual approval result.
757
+ # Corresponds to the JSON property `comment`
758
+ # @return [String]
759
+ attr_accessor :comment
760
+
761
+ # Required. The decision of this manual approval.
762
+ # Corresponds to the JSON property `decision`
763
+ # @return [String]
764
+ attr_accessor :decision
765
+
766
+ # Optional. An optional URL tied to this manual approval result. This field is
767
+ # essentially the same as comment, except that it will be rendered by the UI
768
+ # differently. An example use case is a link to an external job that approved
769
+ # this Build.
770
+ # Corresponds to the JSON property `url`
771
+ # @return [String]
772
+ attr_accessor :url
773
+
774
+ def initialize(**args)
775
+ update!(**args)
776
+ end
777
+
778
+ # Update properties of this object
779
+ def update!(**args)
780
+ @approval_time = args[:approval_time] if args.key?(:approval_time)
781
+ @approver_account = args[:approver_account] if args.key?(:approver_account)
782
+ @comment = args[:comment] if args.key?(:comment)
783
+ @decision = args[:decision] if args.key?(:decision)
784
+ @url = args[:url] if args.key?(:url)
785
+ end
786
+ end
787
+
788
+ # Artifacts produced by a build that should be uploaded upon successful
789
+ # completion of all build steps.
790
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts
791
+ include Google::Apis::Core::Hashable
792
+
793
+ # A list of images to be pushed upon the successful completion of all build
794
+ # steps. The images will be pushed using the builder service account's
795
+ # credentials. The digests of the pushed images will be stored in the Build
796
+ # resource's results field. If any of the images fail to be pushed, the build is
797
+ # marked FAILURE.
798
+ # Corresponds to the JSON property `images`
799
+ # @return [Array<String>]
800
+ attr_accessor :images
801
+
802
+ # Files in the workspace to upload to Cloud Storage upon successful completion
803
+ # of all build steps.
804
+ # Corresponds to the JSON property `objects`
805
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects]
806
+ attr_accessor :objects
807
+
808
+ def initialize(**args)
809
+ update!(**args)
810
+ end
811
+
812
+ # Update properties of this object
813
+ def update!(**args)
814
+ @images = args[:images] if args.key?(:images)
815
+ @objects = args[:objects] if args.key?(:objects)
816
+ end
817
+ end
818
+
819
+ # Files in the workspace to upload to Cloud Storage upon successful completion
820
+ # of all build steps.
821
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects
822
+ include Google::Apis::Core::Hashable
823
+
824
+ # Cloud Storage bucket and optional object path, in the form "gs://bucket/path/
825
+ # to/somewhere/". (see [Bucket Name Requirements](https://cloud.google.com/
826
+ # storage/docs/bucket-naming#requirements)). Files in the workspace matching any
827
+ # path pattern will be uploaded to Cloud Storage with this location as a prefix.
828
+ # Corresponds to the JSON property `location`
829
+ # @return [String]
830
+ attr_accessor :location
831
+
832
+ # Path globs used to match files in the build's workspace.
833
+ # Corresponds to the JSON property `paths`
834
+ # @return [Array<String>]
835
+ attr_accessor :paths
836
+
837
+ # Start and end times for a build execution phase.
838
+ # Corresponds to the JSON property `timing`
839
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
840
+ attr_accessor :timing
841
+
842
+ def initialize(**args)
843
+ update!(**args)
844
+ end
845
+
846
+ # Update properties of this object
847
+ def update!(**args)
848
+ @location = args[:location] if args.key?(:location)
849
+ @paths = args[:paths] if args.key?(:paths)
850
+ @timing = args[:timing] if args.key?(:timing)
851
+ end
852
+ end
853
+
854
+ # A build resource in the Cloud Build API. At a high level, a `Build` describes
855
+ # where to find source code, how to build it (for example, the builder image to
856
+ # run on the source), and where to store the built artifacts. Fields can include
857
+ # the following variables, which will be expanded when the build is created: - $
858
+ # PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number
859
+ # of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the
860
+ # autogenerated ID of the build. - $REPO_NAME: the source repository name
861
+ # specified by RepoSource. - $BRANCH_NAME: the branch name specified by
862
+ # RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID
863
+ # or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the
864
+ # specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $
865
+ # COMMIT_SHA.
866
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build
867
+ include Google::Apis::Core::Hashable
868
+
869
+ # BuildApproval describes a build's approval configuration, state, and result.
870
+ # Corresponds to the JSON property `approval`
871
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval]
872
+ attr_accessor :approval
873
+
874
+ # Artifacts produced by a build that should be uploaded upon successful
875
+ # completion of all build steps.
876
+ # Corresponds to the JSON property `artifacts`
877
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts]
878
+ attr_accessor :artifacts
879
+
880
+ # Secrets and secret environment variables.
881
+ # Corresponds to the JSON property `availableSecrets`
882
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets]
883
+ attr_accessor :available_secrets
884
+
885
+ # Output only. The ID of the `BuildTrigger` that triggered this build, if it was
886
+ # triggered automatically.
887
+ # Corresponds to the JSON property `buildTriggerId`
888
+ # @return [String]
889
+ attr_accessor :build_trigger_id
890
+
891
+ # Output only. Time at which the request to create the build was received.
892
+ # Corresponds to the JSON property `createTime`
893
+ # @return [String]
894
+ attr_accessor :create_time
895
+
896
+ # A fatal problem encountered during the execution of the build.
897
+ # Corresponds to the JSON property `failureInfo`
898
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo]
899
+ attr_accessor :failure_info
900
+
901
+ # Output only. Time at which execution of the build was finished. The difference
902
+ # between finish_time and start_time is the duration of the build's execution.
903
+ # Corresponds to the JSON property `finishTime`
904
+ # @return [String]
905
+ attr_accessor :finish_time
906
+
907
+ # Output only. Unique identifier of the build.
908
+ # Corresponds to the JSON property `id`
909
+ # @return [String]
910
+ attr_accessor :id
911
+
912
+ # A list of images to be pushed upon the successful completion of all build
913
+ # steps. The images are pushed using the builder service account's credentials.
914
+ # The digests of the pushed images will be stored in the `Build` resource's
915
+ # results field. If any of the images fail to be pushed, the build status is
916
+ # marked `FAILURE`.
917
+ # Corresponds to the JSON property `images`
918
+ # @return [Array<String>]
919
+ attr_accessor :images
920
+
921
+ # Output only. URL to logs for this build in Google Cloud Console.
922
+ # Corresponds to the JSON property `logUrl`
923
+ # @return [String]
924
+ attr_accessor :log_url
925
+
926
+ # Google Cloud Storage bucket where logs should be written (see [Bucket Name
927
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
928
+ # ). Logs file names will be of the format `$`logs_bucket`/log-$`build_id`.txt`.
929
+ # Corresponds to the JSON property `logsBucket`
930
+ # @return [String]
931
+ attr_accessor :logs_bucket
932
+
933
+ # Output only. The 'Build' name with format: `projects/`project`/locations/`
934
+ # location`/builds/`build``, where `build` is a unique identifier generated by
935
+ # the service.
936
+ # Corresponds to the JSON property `name`
937
+ # @return [String]
938
+ attr_accessor :name
939
+
940
+ # Optional arguments to enable specific features of builds.
941
+ # Corresponds to the JSON property `options`
942
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions]
943
+ attr_accessor :options
944
+
945
+ # Output only. ID of the project.
946
+ # Corresponds to the JSON property `projectId`
947
+ # @return [String]
948
+ attr_accessor :project_id
949
+
950
+ # TTL in queue for this build. If provided and the build is enqueued longer than
951
+ # this value, the build will expire and the build status will be `EXPIRED`. The
952
+ # TTL starts ticking from create_time.
953
+ # Corresponds to the JSON property `queueTtl`
954
+ # @return [String]
955
+ attr_accessor :queue_ttl
956
+
957
+ # Artifacts created by the build pipeline.
958
+ # Corresponds to the JSON property `results`
959
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Results]
960
+ attr_accessor :results
961
+
962
+ # Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is
963
+ # the recommended technique for managing sensitive data with Cloud Build. Use `
964
+ # available_secrets` to configure builds to access secrets from Secret Manager.
965
+ # For instructions, see: https://cloud.google.com/cloud-build/docs/securing-
966
+ # builds/use-secrets
967
+ # Corresponds to the JSON property `secrets`
968
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secret>]
969
+ attr_accessor :secrets
970
+
971
+ # IAM service account whose credentials will be used at build runtime. Must be
972
+ # of the format `projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT``. ACCOUNT can
973
+ # be email address or uniqueId of the service account.
974
+ # Corresponds to the JSON property `serviceAccount`
975
+ # @return [String]
976
+ attr_accessor :service_account
977
+
978
+ # Location of the source in a supported storage service.
979
+ # Corresponds to the JSON property `source`
980
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Source]
981
+ attr_accessor :source
982
+
983
+ # Provenance of the source. Ways to find the original source, or verify that
984
+ # some source was used for this build.
985
+ # Corresponds to the JSON property `sourceProvenance`
986
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance]
987
+ attr_accessor :source_provenance
988
+
989
+ # Output only. Time at which execution of the build was started.
990
+ # Corresponds to the JSON property `startTime`
991
+ # @return [String]
992
+ attr_accessor :start_time
993
+
994
+ # Output only. Status of the build.
995
+ # Corresponds to the JSON property `status`
996
+ # @return [String]
997
+ attr_accessor :status
998
+
999
+ # Output only. Customer-readable message about the current status.
1000
+ # Corresponds to the JSON property `statusDetail`
1001
+ # @return [String]
1002
+ attr_accessor :status_detail
1003
+
1004
+ # Required. The operations to be performed on the workspace.
1005
+ # Corresponds to the JSON property `steps`
1006
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep>]
1007
+ attr_accessor :steps
1008
+
1009
+ # Substitutions data for `Build` resource.
1010
+ # Corresponds to the JSON property `substitutions`
1011
+ # @return [Hash<String,String>]
1012
+ attr_accessor :substitutions
1013
+
1014
+ # Tags for annotation of a `Build`. These are not docker tags.
1015
+ # Corresponds to the JSON property `tags`
1016
+ # @return [Array<String>]
1017
+ attr_accessor :tags
1018
+
1019
+ # Amount of time that this build should be allowed to run, to second granularity.
1020
+ # If this amount of time elapses, work on the build will cease and the build
1021
+ # status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default
1022
+ # time is ten minutes.
1023
+ # Corresponds to the JSON property `timeout`
1024
+ # @return [String]
1025
+ attr_accessor :timeout
1026
+
1027
+ # Output only. Stores timing information for phases of the build. Valid keys are:
1028
+ # * BUILD: time to execute all build steps. * PUSH: time to push all specified
1029
+ # images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up
1030
+ # build. If the build does not specify source or images, these keys will not be
1031
+ # included.
1032
+ # Corresponds to the JSON property `timing`
1033
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan>]
1034
+ attr_accessor :timing
1035
+
1036
+ # Output only. Non-fatal problems encountered during the execution of the build.
1037
+ # Corresponds to the JSON property `warnings`
1038
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning>]
1039
+ attr_accessor :warnings
1040
+
1041
+ def initialize(**args)
1042
+ update!(**args)
1043
+ end
1044
+
1045
+ # Update properties of this object
1046
+ def update!(**args)
1047
+ @approval = args[:approval] if args.key?(:approval)
1048
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1049
+ @available_secrets = args[:available_secrets] if args.key?(:available_secrets)
1050
+ @build_trigger_id = args[:build_trigger_id] if args.key?(:build_trigger_id)
1051
+ @create_time = args[:create_time] if args.key?(:create_time)
1052
+ @failure_info = args[:failure_info] if args.key?(:failure_info)
1053
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
1054
+ @id = args[:id] if args.key?(:id)
1055
+ @images = args[:images] if args.key?(:images)
1056
+ @log_url = args[:log_url] if args.key?(:log_url)
1057
+ @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket)
1058
+ @name = args[:name] if args.key?(:name)
1059
+ @options = args[:options] if args.key?(:options)
1060
+ @project_id = args[:project_id] if args.key?(:project_id)
1061
+ @queue_ttl = args[:queue_ttl] if args.key?(:queue_ttl)
1062
+ @results = args[:results] if args.key?(:results)
1063
+ @secrets = args[:secrets] if args.key?(:secrets)
1064
+ @service_account = args[:service_account] if args.key?(:service_account)
1065
+ @source = args[:source] if args.key?(:source)
1066
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
1067
+ @start_time = args[:start_time] if args.key?(:start_time)
1068
+ @status = args[:status] if args.key?(:status)
1069
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1070
+ @steps = args[:steps] if args.key?(:steps)
1071
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1072
+ @tags = args[:tags] if args.key?(:tags)
1073
+ @timeout = args[:timeout] if args.key?(:timeout)
1074
+ @timing = args[:timing] if args.key?(:timing)
1075
+ @warnings = args[:warnings] if args.key?(:warnings)
1076
+ end
1077
+ end
1078
+
1079
+ # BuildApproval describes a build's approval configuration, state, and result.
1080
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval
1081
+ include Google::Apis::Core::Hashable
1082
+
1083
+ # ApprovalConfig describes configuration for manual approval of a build.
1084
+ # Corresponds to the JSON property `config`
1085
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig]
1086
+ attr_accessor :config
1087
+
1088
+ # ApprovalResult describes the decision and associated metadata of a manual
1089
+ # approval of a build.
1090
+ # Corresponds to the JSON property `result`
1091
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult]
1092
+ attr_accessor :result
1093
+
1094
+ # Output only. The state of this build's approval.
1095
+ # Corresponds to the JSON property `state`
1096
+ # @return [String]
1097
+ attr_accessor :state
1098
+
1099
+ def initialize(**args)
1100
+ update!(**args)
1101
+ end
1102
+
1103
+ # Update properties of this object
1104
+ def update!(**args)
1105
+ @config = args[:config] if args.key?(:config)
1106
+ @result = args[:result] if args.key?(:result)
1107
+ @state = args[:state] if args.key?(:state)
1108
+ end
1109
+ end
1110
+
1111
+ # A fatal problem encountered during the execution of the build.
1112
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo
1113
+ include Google::Apis::Core::Hashable
1114
+
1115
+ # Explains the failure issue in more detail using hard-coded text.
1116
+ # Corresponds to the JSON property `detail`
1117
+ # @return [String]
1118
+ attr_accessor :detail
1119
+
1120
+ # The name of the failure.
1121
+ # Corresponds to the JSON property `type`
1122
+ # @return [String]
1123
+ attr_accessor :type
1124
+
1125
+ def initialize(**args)
1126
+ update!(**args)
1127
+ end
1128
+
1129
+ # Update properties of this object
1130
+ def update!(**args)
1131
+ @detail = args[:detail] if args.key?(:detail)
1132
+ @type = args[:type] if args.key?(:type)
1133
+ end
1134
+ end
1135
+
1136
+ # Optional arguments to enable specific features of builds.
1137
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions
1138
+ include Google::Apis::Core::Hashable
1139
+
1140
+ # Requested disk size for the VM that runs the build. Note that this is *NOT* "
1141
+ # disk free"; some of the space will be used by the operating system and build
1142
+ # utilities. Also note that this is the minimum disk size that will be allocated
1143
+ # for the build -- the build may run with a larger disk than requested. At
1144
+ # present, the maximum disk size is 1000GB; builds that request more than the
1145
+ # maximum are rejected with an error.
1146
+ # Corresponds to the JSON property `diskSizeGb`
1147
+ # @return [Fixnum]
1148
+ attr_accessor :disk_size_gb
1149
+
1150
+ # Option to specify whether or not to apply bash style string operations to the
1151
+ # substitutions. NOTE: this is always enabled for triggered builds and cannot be
1152
+ # overridden in the build configuration file.
1153
+ # Corresponds to the JSON property `dynamicSubstitutions`
1154
+ # @return [Boolean]
1155
+ attr_accessor :dynamic_substitutions
1156
+ alias_method :dynamic_substitutions?, :dynamic_substitutions
1157
+
1158
+ # A list of global environment variable definitions that will exist for all
1159
+ # build steps in this build. If a variable is defined in both globally and in a
1160
+ # build step, the variable will use the build step value. The elements are of
1161
+ # the form "KEY=VALUE" for the environment variable "KEY" being given the value "
1162
+ # VALUE".
1163
+ # Corresponds to the JSON property `env`
1164
+ # @return [Array<String>]
1165
+ attr_accessor :env
1166
+
1167
+ # Option to define build log streaming behavior to Google Cloud Storage.
1168
+ # Corresponds to the JSON property `logStreamingOption`
1169
+ # @return [String]
1170
+ attr_accessor :log_streaming_option
1171
+
1172
+ # Option to specify the logging mode, which determines if and where build logs
1173
+ # are stored.
1174
+ # Corresponds to the JSON property `logging`
1175
+ # @return [String]
1176
+ attr_accessor :logging
1177
+
1178
+ # Compute Engine machine type on which to run the build.
1179
+ # Corresponds to the JSON property `machineType`
1180
+ # @return [String]
1181
+ attr_accessor :machine_type
1182
+
1183
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1184
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1185
+ # run-builds-in-private-pool) for more information.
1186
+ # Corresponds to the JSON property `pool`
1187
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption]
1188
+ attr_accessor :pool
1189
+
1190
+ # Requested verifiability options.
1191
+ # Corresponds to the JSON property `requestedVerifyOption`
1192
+ # @return [String]
1193
+ attr_accessor :requested_verify_option
1194
+
1195
+ # A list of global environment variables, which are encrypted using a Cloud Key
1196
+ # Management Service crypto key. These values must be specified in the build's `
1197
+ # Secret`. These variables will be available to all build steps in this build.
1198
+ # Corresponds to the JSON property `secretEnv`
1199
+ # @return [Array<String>]
1200
+ attr_accessor :secret_env
1201
+
1202
+ # Requested hash for SourceProvenance.
1203
+ # Corresponds to the JSON property `sourceProvenanceHash`
1204
+ # @return [Array<String>]
1205
+ attr_accessor :source_provenance_hash
1206
+
1207
+ # Option to specify behavior when there is an error in the substitution checks.
1208
+ # NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be
1209
+ # overridden in the build configuration file.
1210
+ # Corresponds to the JSON property `substitutionOption`
1211
+ # @return [String]
1212
+ attr_accessor :substitution_option
1213
+
1214
+ # Global list of volumes to mount for ALL build steps Each volume is created as
1215
+ # an empty volume prior to starting the build process. Upon completion of the
1216
+ # build, volumes and their contents are discarded. Global volume names and paths
1217
+ # cannot conflict with the volumes defined a build step. Using a global volume
1218
+ # in a build with only one step is not valid as it is indicative of a build
1219
+ # request with an incorrect configuration.
1220
+ # Corresponds to the JSON property `volumes`
1221
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1222
+ attr_accessor :volumes
1223
+
1224
+ # This field deprecated; please use `pool.name` instead.
1225
+ # Corresponds to the JSON property `workerPool`
1226
+ # @return [String]
1227
+ attr_accessor :worker_pool
1228
+
1229
+ def initialize(**args)
1230
+ update!(**args)
1231
+ end
1232
+
1233
+ # Update properties of this object
1234
+ def update!(**args)
1235
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1236
+ @dynamic_substitutions = args[:dynamic_substitutions] if args.key?(:dynamic_substitutions)
1237
+ @env = args[:env] if args.key?(:env)
1238
+ @log_streaming_option = args[:log_streaming_option] if args.key?(:log_streaming_option)
1239
+ @logging = args[:logging] if args.key?(:logging)
1240
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1241
+ @pool = args[:pool] if args.key?(:pool)
1242
+ @requested_verify_option = args[:requested_verify_option] if args.key?(:requested_verify_option)
1243
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1244
+ @source_provenance_hash = args[:source_provenance_hash] if args.key?(:source_provenance_hash)
1245
+ @substitution_option = args[:substitution_option] if args.key?(:substitution_option)
1246
+ @volumes = args[:volumes] if args.key?(:volumes)
1247
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1248
+ end
1249
+ end
1250
+
1251
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1252
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1253
+ # run-builds-in-private-pool) for more information.
1254
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption
1255
+ include Google::Apis::Core::Hashable
1256
+
1257
+ # The `WorkerPool` resource to execute the build on. You must have `cloudbuild.
1258
+ # workerpools.use` on the project hosting the WorkerPool. Format projects/`
1259
+ # project`/locations/`location`/workerPools/`workerPoolId`
1260
+ # Corresponds to the JSON property `name`
1261
+ # @return [String]
1262
+ attr_accessor :name
1263
+
1264
+ def initialize(**args)
1265
+ update!(**args)
1266
+ end
1267
+
1268
+ # Update properties of this object
1269
+ def update!(**args)
1270
+ @name = args[:name] if args.key?(:name)
1271
+ end
1272
+ end
1273
+
1274
+ # A step in the build pipeline.
1275
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep
1276
+ include Google::Apis::Core::Hashable
1277
+
1278
+ # A list of arguments that will be presented to the step when it is started. If
1279
+ # the image used to run the step's container has an entrypoint, the `args` are
1280
+ # used as arguments to that entrypoint. If the image does not define an
1281
+ # entrypoint, the first element in args is used as the entrypoint, and the
1282
+ # remainder will be used as arguments.
1283
+ # Corresponds to the JSON property `args`
1284
+ # @return [Array<String>]
1285
+ attr_accessor :args
1286
+
1287
+ # Working directory to use when running this step's container. If this value is
1288
+ # a relative path, it is relative to the build's working directory. If this
1289
+ # value is absolute, it may be outside the build's working directory, in which
1290
+ # case the contents of the path may not be persisted across build step
1291
+ # executions, unless a `volume` for that path is specified. If the build
1292
+ # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
1293
+ # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
1294
+ # Corresponds to the JSON property `dir`
1295
+ # @return [String]
1296
+ attr_accessor :dir
1297
+
1298
+ # Entrypoint to be used instead of the build step image's default entrypoint. If
1299
+ # unset, the image's default entrypoint is used.
1300
+ # Corresponds to the JSON property `entrypoint`
1301
+ # @return [String]
1302
+ attr_accessor :entrypoint
1303
+
1304
+ # A list of environment variable definitions to be used when running a step. The
1305
+ # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
1306
+ # given the value "VALUE".
1307
+ # Corresponds to the JSON property `env`
1308
+ # @return [Array<String>]
1309
+ attr_accessor :env
1310
+
1311
+ # Unique identifier for this build step, used in `wait_for` to reference this
1312
+ # build step as a dependency.
1313
+ # Corresponds to the JSON property `id`
1314
+ # @return [String]
1315
+ attr_accessor :id
1316
+
1317
+ # Required. The name of the container image that will run this particular build
1318
+ # step. If the image is available in the host's Docker daemon's cache, it will
1319
+ # be run directly. If not, the host will attempt to pull the image first, using
1320
+ # the builder service account's credentials if necessary. The Docker daemon's
1321
+ # cache will already have the latest versions of all of the officially supported
1322
+ # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
1323
+ # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
1324
+ # have cached many of the layers for some popular images, like "ubuntu", "debian"
1325
+ # , but they will be refreshed at the time you attempt to use them. If you built
1326
+ # an image in a previous build step, it will be stored in the host's Docker
1327
+ # daemon's cache and is available to use as the name for a later build step.
1328
+ # Corresponds to the JSON property `name`
1329
+ # @return [String]
1330
+ attr_accessor :name
1331
+
1332
+ # Start and end times for a build execution phase.
1333
+ # Corresponds to the JSON property `pullTiming`
1334
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1335
+ attr_accessor :pull_timing
1336
+
1337
+ # A shell script to be executed in the step. When script is provided, the user
1338
+ # cannot specify the entrypoint or args.
1339
+ # Corresponds to the JSON property `script`
1340
+ # @return [String]
1341
+ attr_accessor :script
1342
+
1343
+ # A list of environment variables which are encrypted using a Cloud Key
1344
+ # Management Service crypto key. These values must be specified in the build's `
1345
+ # Secret`.
1346
+ # Corresponds to the JSON property `secretEnv`
1347
+ # @return [Array<String>]
1348
+ attr_accessor :secret_env
1349
+
1350
+ # Output only. Status of the build step. At this time, build step status is only
1351
+ # updated on build completion; step status is not updated in real-time as the
1352
+ # build progresses.
1353
+ # Corresponds to the JSON property `status`
1354
+ # @return [String]
1355
+ attr_accessor :status
1356
+
1357
+ # Time limit for executing this build step. If not defined, the step has no time
1358
+ # limit and will be allowed to continue to run until either it completes or the
1359
+ # build itself times out.
1360
+ # Corresponds to the JSON property `timeout`
1361
+ # @return [String]
1362
+ attr_accessor :timeout
1363
+
1364
+ # Start and end times for a build execution phase.
1365
+ # Corresponds to the JSON property `timing`
1366
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1367
+ attr_accessor :timing
1368
+
1369
+ # List of volumes to mount into the build step. Each volume is created as an
1370
+ # empty volume prior to execution of the build step. Upon completion of the
1371
+ # build, volumes and their contents are discarded. Using a named volume in only
1372
+ # one step is not valid as it is indicative of a build request with an incorrect
1373
+ # configuration.
1374
+ # Corresponds to the JSON property `volumes`
1375
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1376
+ attr_accessor :volumes
1377
+
1378
+ # The ID(s) of the step(s) that this build step depends on. This build step will
1379
+ # not start until all the build steps in `wait_for` have completed successfully.
1380
+ # If `wait_for` is empty, this build step will start when all previous build
1381
+ # steps in the `Build.Steps` list have completed successfully.
1382
+ # Corresponds to the JSON property `waitFor`
1383
+ # @return [Array<String>]
1384
+ attr_accessor :wait_for
1385
+
1386
+ def initialize(**args)
1387
+ update!(**args)
1388
+ end
1389
+
1390
+ # Update properties of this object
1391
+ def update!(**args)
1392
+ @args = args[:args] if args.key?(:args)
1393
+ @dir = args[:dir] if args.key?(:dir)
1394
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
1395
+ @env = args[:env] if args.key?(:env)
1396
+ @id = args[:id] if args.key?(:id)
1397
+ @name = args[:name] if args.key?(:name)
1398
+ @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
1399
+ @script = args[:script] if args.key?(:script)
1400
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1401
+ @status = args[:status] if args.key?(:status)
1402
+ @timeout = args[:timeout] if args.key?(:timeout)
1403
+ @timing = args[:timing] if args.key?(:timing)
1404
+ @volumes = args[:volumes] if args.key?(:volumes)
1405
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
1406
+ end
1407
+ end
1408
+
1409
+ # A non-fatal problem encountered during the execution of the build.
1410
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning
1411
+ include Google::Apis::Core::Hashable
1412
+
1413
+ # The priority for this warning.
1414
+ # Corresponds to the JSON property `priority`
1415
+ # @return [String]
1416
+ attr_accessor :priority
1417
+
1418
+ # Explanation of the warning generated.
1419
+ # Corresponds to the JSON property `text`
1420
+ # @return [String]
1421
+ attr_accessor :text
1422
+
1423
+ def initialize(**args)
1424
+ update!(**args)
1425
+ end
1426
+
1427
+ # Update properties of this object
1428
+ def update!(**args)
1429
+ @priority = args[:priority] if args.key?(:priority)
1430
+ @text = args[:text] if args.key?(:text)
1431
+ end
1432
+ end
1433
+
1434
+ # An image built by the pipeline.
1435
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage
1436
+ include Google::Apis::Core::Hashable
1437
+
1438
+ # Docker Registry 2.0 digest.
1439
+ # Corresponds to the JSON property `digest`
1440
+ # @return [String]
1441
+ attr_accessor :digest
1442
+
1443
+ # Name used to push the container image to Google Container Registry, as
1444
+ # presented to `docker push`.
1445
+ # Corresponds to the JSON property `name`
1446
+ # @return [String]
1447
+ attr_accessor :name
1448
+
1449
+ # Start and end times for a build execution phase.
1450
+ # Corresponds to the JSON property `pushTiming`
1451
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1452
+ attr_accessor :push_timing
1453
+
1454
+ def initialize(**args)
1455
+ update!(**args)
1456
+ end
1457
+
1458
+ # Update properties of this object
1459
+ def update!(**args)
1460
+ @digest = args[:digest] if args.key?(:digest)
1461
+ @name = args[:name] if args.key?(:name)
1462
+ @push_timing = args[:push_timing] if args.key?(:push_timing)
1463
+ end
1464
+ end
1465
+
1466
+ # Container message for hashes of byte content of files, used in
1467
+ # SourceProvenance messages to verify integrity of source input to the build.
1468
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes
1469
+ include Google::Apis::Core::Hashable
1470
+
1471
+ # Collection of file hashes.
1472
+ # Corresponds to the JSON property `fileHash`
1473
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Hash>]
1474
+ attr_accessor :file_hash
1475
+
1476
+ def initialize(**args)
1477
+ update!(**args)
1478
+ end
1479
+
1480
+ # Update properties of this object
1481
+ def update!(**args)
1482
+ @file_hash = args[:file_hash] if args.key?(:file_hash)
1483
+ end
1484
+ end
1485
+
1486
+ # Container message for hash values.
1487
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Hash
1488
+ include Google::Apis::Core::Hashable
1489
+
1490
+ # The type of hash that was performed.
1491
+ # Corresponds to the JSON property `type`
1492
+ # @return [String]
1493
+ attr_accessor :type
1494
+
1495
+ # The hash value.
1496
+ # Corresponds to the JSON property `value`
1497
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1498
+ # @return [String]
1499
+ attr_accessor :value
1500
+
1501
+ def initialize(**args)
1502
+ update!(**args)
1503
+ end
1504
+
1505
+ # Update properties of this object
1506
+ def update!(**args)
1507
+ @type = args[:type] if args.key?(:type)
1508
+ @value = args[:value] if args.key?(:value)
1509
+ end
1510
+ end
1511
+
1512
+ # Pairs a set of secret environment variables mapped to encrypted values with
1513
+ # the Cloud KMS key to use to decrypt the value.
1514
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret
1515
+ include Google::Apis::Core::Hashable
1516
+
1517
+ # Map of environment variable name to its encrypted value. Secret environment
1518
+ # variables must be unique across all of a build's secrets, and must be used by
1519
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1520
+ # most 100 secret values across all of a build's secrets.
1521
+ # Corresponds to the JSON property `envMap`
1522
+ # @return [Hash<String,String>]
1523
+ attr_accessor :env_map
1524
+
1525
+ # Resource name of Cloud KMS crypto key to decrypt the encrypted value. In
1526
+ # format: projects/*/locations/*/keyRings/*/cryptoKeys/*
1527
+ # Corresponds to the JSON property `kmsKeyName`
1528
+ # @return [String]
1529
+ attr_accessor :kms_key_name
1530
+
1531
+ def initialize(**args)
1532
+ update!(**args)
1533
+ end
1534
+
1535
+ # Update properties of this object
1536
+ def update!(**args)
1537
+ @env_map = args[:env_map] if args.key?(:env_map)
1538
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1539
+ end
1540
+ end
1541
+
1542
+ # Location of the source in a Google Cloud Source Repository.
1543
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource
1544
+ include Google::Apis::Core::Hashable
1545
+
1546
+ # Regex matching branches to build. The syntax of the regular expressions
1547
+ # accepted is the syntax accepted by RE2 and described at https://github.com/
1548
+ # google/re2/wiki/Syntax
1549
+ # Corresponds to the JSON property `branchName`
1550
+ # @return [String]
1551
+ attr_accessor :branch_name
1552
+
1553
+ # Explicit commit SHA to build.
1554
+ # Corresponds to the JSON property `commitSha`
1555
+ # @return [String]
1556
+ attr_accessor :commit_sha
1557
+
1558
+ # Directory, relative to the source root, in which to run the build. This must
1559
+ # be a relative path. If a step's `dir` is specified and is an absolute path,
1560
+ # this value is ignored for that step's execution.
1561
+ # Corresponds to the JSON property `dir`
1562
+ # @return [String]
1563
+ attr_accessor :dir
1564
+
1565
+ # Only trigger a build if the revision regex does NOT match the revision regex.
1566
+ # Corresponds to the JSON property `invertRegex`
1567
+ # @return [Boolean]
1568
+ attr_accessor :invert_regex
1569
+ alias_method :invert_regex?, :invert_regex
1570
+
1571
+ # ID of the project that owns the Cloud Source Repository. If omitted, the
1572
+ # project ID requesting the build is assumed.
1573
+ # Corresponds to the JSON property `projectId`
1574
+ # @return [String]
1575
+ attr_accessor :project_id
1576
+
1577
+ # Name of the Cloud Source Repository.
1578
+ # Corresponds to the JSON property `repoName`
1579
+ # @return [String]
1580
+ attr_accessor :repo_name
1581
+
1582
+ # Substitutions to use in a triggered build. Should only be used with
1583
+ # RunBuildTrigger
1584
+ # Corresponds to the JSON property `substitutions`
1585
+ # @return [Hash<String,String>]
1586
+ attr_accessor :substitutions
1587
+
1588
+ # Regex matching tags to build. The syntax of the regular expressions accepted
1589
+ # is the syntax accepted by RE2 and described at https://github.com/google/re2/
1590
+ # wiki/Syntax
1591
+ # Corresponds to the JSON property `tagName`
1592
+ # @return [String]
1593
+ attr_accessor :tag_name
1594
+
1595
+ def initialize(**args)
1596
+ update!(**args)
1597
+ end
1598
+
1599
+ # Update properties of this object
1600
+ def update!(**args)
1601
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
1602
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
1603
+ @dir = args[:dir] if args.key?(:dir)
1604
+ @invert_regex = args[:invert_regex] if args.key?(:invert_regex)
1605
+ @project_id = args[:project_id] if args.key?(:project_id)
1606
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1607
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1608
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
1609
+ end
1610
+ end
1611
+
1612
+ # Artifacts created by the build pipeline.
1613
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Results
1614
+ include Google::Apis::Core::Hashable
1615
+
1616
+ # Path to the artifact manifest. Only populated when artifacts are uploaded.
1617
+ # Corresponds to the JSON property `artifactManifest`
1618
+ # @return [String]
1619
+ attr_accessor :artifact_manifest
1620
+
1621
+ # Start and end times for a build execution phase.
1622
+ # Corresponds to the JSON property `artifactTiming`
1623
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1624
+ attr_accessor :artifact_timing
1625
+
1626
+ # List of build step digests, in the order corresponding to build step indices.
1627
+ # Corresponds to the JSON property `buildStepImages`
1628
+ # @return [Array<String>]
1629
+ attr_accessor :build_step_images
1630
+
1631
+ # List of build step outputs, produced by builder images, in the order
1632
+ # corresponding to build step indices. [Cloud Builders](https://cloud.google.com/
1633
+ # cloud-build/docs/cloud-builders) can produce this output by writing to `$
1634
+ # BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.
1635
+ # Corresponds to the JSON property `buildStepOutputs`
1636
+ # @return [Array<String>]
1637
+ attr_accessor :build_step_outputs
1638
+
1639
+ # Container images that were built as a part of the build.
1640
+ # Corresponds to the JSON property `images`
1641
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage>]
1642
+ attr_accessor :images
1643
+
1644
+ # Number of artifacts uploaded. Only populated when artifacts are uploaded.
1645
+ # Corresponds to the JSON property `numArtifacts`
1646
+ # @return [Fixnum]
1647
+ attr_accessor :num_artifacts
1648
+
1649
+ def initialize(**args)
1650
+ update!(**args)
1651
+ end
1652
+
1653
+ # Update properties of this object
1654
+ def update!(**args)
1655
+ @artifact_manifest = args[:artifact_manifest] if args.key?(:artifact_manifest)
1656
+ @artifact_timing = args[:artifact_timing] if args.key?(:artifact_timing)
1657
+ @build_step_images = args[:build_step_images] if args.key?(:build_step_images)
1658
+ @build_step_outputs = args[:build_step_outputs] if args.key?(:build_step_outputs)
1659
+ @images = args[:images] if args.key?(:images)
1660
+ @num_artifacts = args[:num_artifacts] if args.key?(:num_artifacts)
1661
+ end
1662
+ end
1663
+
1664
+ # Pairs a set of secret environment variables containing encrypted values with
1665
+ # the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `
1666
+ # available_secrets` instead of using `kmsKeyName` with `secret`. For
1667
+ # instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/
1668
+ # use-encrypted-credentials.
1669
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secret
1670
+ include Google::Apis::Core::Hashable
1671
+
1672
+ # Cloud KMS key name to use to decrypt these envs.
1673
+ # Corresponds to the JSON property `kmsKeyName`
1674
+ # @return [String]
1675
+ attr_accessor :kms_key_name
1676
+
1677
+ # Map of environment variable name to its encrypted value. Secret environment
1678
+ # variables must be unique across all of a build's secrets, and must be used by
1679
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1680
+ # most 100 secret values across all of a build's secrets.
1681
+ # Corresponds to the JSON property `secretEnv`
1682
+ # @return [Hash<String,String>]
1683
+ attr_accessor :secret_env
1684
+
1685
+ def initialize(**args)
1686
+ update!(**args)
1687
+ end
1688
+
1689
+ # Update properties of this object
1690
+ def update!(**args)
1691
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1692
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1693
+ end
1694
+ end
1695
+
1696
+ # Pairs a secret environment variable with a SecretVersion in Secret Manager.
1697
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret
1698
+ include Google::Apis::Core::Hashable
1699
+
1700
+ # Environment variable name to associate with the secret. Secret environment
1701
+ # variables must be unique across all of a build's secrets, and must be used by
1702
+ # at least one build step.
1703
+ # Corresponds to the JSON property `env`
1704
+ # @return [String]
1705
+ attr_accessor :env
1706
+
1707
+ # Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*
1708
+ # Corresponds to the JSON property `versionName`
1709
+ # @return [String]
1710
+ attr_accessor :version_name
1711
+
1712
+ def initialize(**args)
1713
+ update!(**args)
1714
+ end
1715
+
1716
+ # Update properties of this object
1717
+ def update!(**args)
1718
+ @env = args[:env] if args.key?(:env)
1719
+ @version_name = args[:version_name] if args.key?(:version_name)
1720
+ end
1721
+ end
1722
+
1723
+ # Secrets and secret environment variables.
1724
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets
1725
+ include Google::Apis::Core::Hashable
1726
+
1727
+ # Secrets encrypted with KMS key and the associated secret environment variable.
1728
+ # Corresponds to the JSON property `inline`
1729
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret>]
1730
+ attr_accessor :inline
1731
+
1732
+ # Secrets in Secret Manager and associated secret environment variable.
1733
+ # Corresponds to the JSON property `secretManager`
1734
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret>]
1735
+ attr_accessor :secret_manager
1736
+
1737
+ def initialize(**args)
1738
+ update!(**args)
1739
+ end
1740
+
1741
+ # Update properties of this object
1742
+ def update!(**args)
1743
+ @inline = args[:inline] if args.key?(:inline)
1744
+ @secret_manager = args[:secret_manager] if args.key?(:secret_manager)
1745
+ end
1746
+ end
1747
+
1748
+ # Location of the source in a supported storage service.
1749
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source
1750
+ include Google::Apis::Core::Hashable
1751
+
1752
+ # Location of the source in a Google Cloud Source Repository.
1753
+ # Corresponds to the JSON property `repoSource`
1754
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1755
+ attr_accessor :repo_source
1756
+
1757
+ # Location of the source in an archive file in Google Cloud Storage.
1758
+ # Corresponds to the JSON property `storageSource`
1759
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1760
+ attr_accessor :storage_source
1761
+
1762
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1763
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1764
+ # builders/tree/master/gcs-fetcher).
1765
+ # Corresponds to the JSON property `storageSourceManifest`
1766
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1767
+ attr_accessor :storage_source_manifest
1768
+
1769
+ def initialize(**args)
1770
+ update!(**args)
1771
+ end
1772
+
1773
+ # Update properties of this object
1774
+ def update!(**args)
1775
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
1776
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
1777
+ @storage_source_manifest = args[:storage_source_manifest] if args.key?(:storage_source_manifest)
1778
+ end
1779
+ end
1780
+
1781
+ # Provenance of the source. Ways to find the original source, or verify that
1782
+ # some source was used for this build.
1783
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance
1784
+ include Google::Apis::Core::Hashable
1785
+
1786
+ # Output only. Hash(es) of the build source, which can be used to verify that
1787
+ # the original source integrity was maintained in the build. Note that `
1788
+ # FileHashes` will only be populated if `BuildOptions` has requested a `
1789
+ # SourceProvenanceHash`. The keys to this map are file paths used as build
1790
+ # source and the values contain the hash values for those files. If the build
1791
+ # source came in a single package such as a gzipped tarfile (`.tar.gz`), the `
1792
+ # FileHash` will be for the single path to that file.
1793
+ # Corresponds to the JSON property `fileHashes`
1794
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes>]
1795
+ attr_accessor :file_hashes
1796
+
1797
+ # Location of the source in a Google Cloud Source Repository.
1798
+ # Corresponds to the JSON property `resolvedRepoSource`
1799
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1800
+ attr_accessor :resolved_repo_source
1801
+
1802
+ # Location of the source in an archive file in Google Cloud Storage.
1803
+ # Corresponds to the JSON property `resolvedStorageSource`
1804
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1805
+ attr_accessor :resolved_storage_source
1806
+
1807
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1808
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1809
+ # builders/tree/master/gcs-fetcher).
1810
+ # Corresponds to the JSON property `resolvedStorageSourceManifest`
1811
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1812
+ attr_accessor :resolved_storage_source_manifest
1813
+
1814
+ def initialize(**args)
1815
+ update!(**args)
1816
+ end
1817
+
1818
+ # Update properties of this object
1819
+ def update!(**args)
1820
+ @file_hashes = args[:file_hashes] if args.key?(:file_hashes)
1821
+ @resolved_repo_source = args[:resolved_repo_source] if args.key?(:resolved_repo_source)
1822
+ @resolved_storage_source = args[:resolved_storage_source] if args.key?(:resolved_storage_source)
1823
+ @resolved_storage_source_manifest = args[:resolved_storage_source_manifest] if args.key?(:resolved_storage_source_manifest)
1824
+ end
1825
+ end
1826
+
1827
+ # Location of the source in an archive file in Google Cloud Storage.
1828
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource
1829
+ include Google::Apis::Core::Hashable
1830
+
1831
+ # Google Cloud Storage bucket containing the source (see [Bucket Name
1832
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1833
+ # ).
1834
+ # Corresponds to the JSON property `bucket`
1835
+ # @return [String]
1836
+ attr_accessor :bucket
1837
+
1838
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1839
+ # the latest generation will be used.
1840
+ # Corresponds to the JSON property `generation`
1841
+ # @return [Fixnum]
1842
+ attr_accessor :generation
1843
+
1844
+ # Google Cloud Storage object containing the source. This object must be a
1845
+ # zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.
1846
+ # Corresponds to the JSON property `object`
1847
+ # @return [String]
1848
+ attr_accessor :object
1849
+
1850
+ def initialize(**args)
1851
+ update!(**args)
1852
+ end
1853
+
1854
+ # Update properties of this object
1855
+ def update!(**args)
1856
+ @bucket = args[:bucket] if args.key?(:bucket)
1857
+ @generation = args[:generation] if args.key?(:generation)
1858
+ @object = args[:object] if args.key?(:object)
1859
+ end
1860
+ end
1861
+
1862
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1863
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1864
+ # builders/tree/master/gcs-fetcher).
1865
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest
1866
+ include Google::Apis::Core::Hashable
618
1867
 
619
- # A description of remediation steps if the compliance check fails.
620
- # Corresponds to the JSON property `remediation`
1868
+ # Google Cloud Storage bucket containing the source manifest (see [Bucket Name
1869
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1870
+ # ).
1871
+ # Corresponds to the JSON property `bucket`
621
1872
  # @return [String]
622
- attr_accessor :remediation
1873
+ attr_accessor :bucket
623
1874
 
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
1875
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1876
+ # the latest generation will be used.
1877
+ # Corresponds to the JSON property `generation`
1878
+ # @return [Fixnum]
1879
+ attr_accessor :generation
629
1880
 
630
- # The title that identifies this compliance check.
631
- # Corresponds to the JSON property `title`
1881
+ # Google Cloud Storage object containing the source manifest. This object must
1882
+ # be a JSON file.
1883
+ # Corresponds to the JSON property `object`
632
1884
  # @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
1885
+ attr_accessor :object
639
1886
 
640
1887
  def initialize(**args)
641
1888
  update!(**args)
@@ -643,30 +1890,25 @@ module Google
643
1890
 
644
1891
  # Update properties of this object
645
1892
  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)
1893
+ @bucket = args[:bucket] if args.key?(:bucket)
1894
+ @generation = args[:generation] if args.key?(:generation)
1895
+ @object = args[:object] if args.key?(:object)
653
1896
  end
654
1897
  end
655
1898
 
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
1899
+ # Start and end times for a build execution phase.
1900
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan
659
1901
  include Google::Apis::Core::Hashable
660
1902
 
661
- # The reason for non compliance of these files.
662
- # Corresponds to the JSON property `nonComplianceReason`
1903
+ # End of time span.
1904
+ # Corresponds to the JSON property `endTime`
663
1905
  # @return [String]
664
- attr_accessor :non_compliance_reason
1906
+ attr_accessor :end_time
665
1907
 
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
1908
+ # Start of time span.
1909
+ # Corresponds to the JSON property `startTime`
1910
+ # @return [String]
1911
+ attr_accessor :start_time
670
1912
 
671
1913
  def initialize(**args)
672
1914
  update!(**args)
@@ -674,27 +1916,29 @@ module Google
674
1916
 
675
1917
  # Update properties of this object
676
1918
  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)
1919
+ @end_time = args[:end_time] if args.key?(:end_time)
1920
+ @start_time = args[:start_time] if args.key?(:start_time)
679
1921
  end
680
1922
  end
681
1923
 
682
- # Describes the CIS benchmark version that is applicable to a given OS and os
683
- # version.
684
- class ComplianceVersion
1924
+ # Volume describes a Docker container volume which is mounted into build steps
1925
+ # in order to persist files across build step execution.
1926
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Volume
685
1927
  include Google::Apis::Core::Hashable
686
1928
 
687
- # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
688
- # applicable to.
689
- # Corresponds to the JSON property `cpeUri`
1929
+ # Name of the volume to mount. Volume names must be unique per build step and
1930
+ # must be valid names for Docker volumes. Each named volume must be used by at
1931
+ # least two build steps.
1932
+ # Corresponds to the JSON property `name`
690
1933
  # @return [String]
691
- attr_accessor :cpe_uri
1934
+ attr_accessor :name
692
1935
 
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`
1936
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
1937
+ # with other volume paths on the same build step or with certain reserved volume
1938
+ # paths.
1939
+ # Corresponds to the JSON property `path`
696
1940
  # @return [String]
697
- attr_accessor :version
1941
+ attr_accessor :path
698
1942
 
699
1943
  def initialize(**args)
700
1944
  update!(**args)
@@ -702,8 +1946,8 @@ module Google
702
1946
 
703
1947
  # Update properties of this object
704
1948
  def update!(**args)
705
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
706
- @version = args[:version] if args.key?(:version)
1949
+ @name = args[:name] if args.key?(:name)
1950
+ @path = args[:path] if args.key?(:path)
707
1951
  end
708
1952
  end
709
1953
 
@@ -1517,18 +2761,10 @@ module Google
1517
2761
  # @return [String]
1518
2762
  attr_accessor :id
1519
2763
 
1520
- # This field provides a place for the SPDX file creator to record any relevant
1521
- # background references or analysis that went in to arriving at the Concluded
1522
- # License for a file
1523
- # Corresponds to the JSON property `licenseComments`
1524
- # @return [String]
1525
- attr_accessor :license_comments
1526
-
1527
- # This field contains the license the SPDX file creator has concluded as
1528
- # governing the file or alternative values if the governing license cannot be
1529
- # determined
2764
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
2765
+ # 315-declared-license
1530
2766
  # Corresponds to the JSON property `licenseConcluded`
1531
- # @return [String]
2767
+ # @return [Google::Apis::ContaineranalysisV1alpha1::License]
1532
2768
  attr_accessor :license_concluded
1533
2769
 
1534
2770
  # This field provides a place for the SPDX file creator to record license
@@ -1549,7 +2785,6 @@ module Google
1549
2785
  @copyright = args[:copyright] if args.key?(:copyright)
1550
2786
  @files_license_info = args[:files_license_info] if args.key?(:files_license_info)
1551
2787
  @id = args[:id] if args.key?(:id)
1552
- @license_comments = args[:license_comments] if args.key?(:license_comments)
1553
2788
  @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
1554
2789
  @notice = args[:notice] if args.key?(:notice)
1555
2790
  end
@@ -1612,13 +2847,16 @@ module Google
1612
2847
  class GetPolicyOptions
1613
2848
  include Google::Apis::Core::Hashable
1614
2849
 
1615
- # Optional. The policy format version to be returned. Valid values are 0, 1, and
1616
- # 3. Requests specifying an invalid value will be rejected. Requests for
1617
- # policies with any conditional bindings must specify version 3. Policies
1618
- # without any conditional bindings may specify any valid value or leave the
1619
- # field unset. To learn which resources support conditions in their IAM policies,
1620
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1621
- # resource-policies).
2850
+ # Optional. The maximum policy version that will be used to format the policy.
2851
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2852
+ # rejected. Requests for policies with any conditional role bindings must
2853
+ # specify version 3. Policies with no conditional role bindings may specify any
2854
+ # valid value or leave the field unset. The policy in the response might use the
2855
+ # policy version that you specified, or it might use a lower policy version. For
2856
+ # example, if you specify version 3, but the policy has no conditional role
2857
+ # bindings, the response uses version 1. To learn which resources support
2858
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2859
+ # google.com/iam/help/conditions/resource-policies).
1622
2860
  # Corresponds to the JSON property `requestedPolicyVersion`
1623
2861
  # @return [Fixnum]
1624
2862
  attr_accessor :requested_policy_version
@@ -1965,36 +3203,42 @@ module Google
1965
3203
  class InTotoStatement
1966
3204
  include Google::Apis::Core::Hashable
1967
3205
 
1968
- # "https://in-toto.io/Provenance/v0.1" for InTotoProvenance.
3206
+ # Always "https://in-toto.io/Statement/v0.1".
3207
+ # Corresponds to the JSON property `_type`
3208
+ # @return [String]
3209
+ attr_accessor :_type
3210
+
3211
+ # "https://slsa.dev/provenance/v0.1" for SlsaProvenance.
1969
3212
  # Corresponds to the JSON property `predicateType`
1970
3213
  # @return [String]
1971
3214
  attr_accessor :predicate_type
1972
3215
 
1973
- #
3216
+ # provenance is a predicate of type intotoprovenance
1974
3217
  # Corresponds to the JSON property `provenance`
1975
3218
  # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoProvenance]
1976
3219
  attr_accessor :provenance
1977
3220
 
1978
- #
3221
+ # SlsaProvenance is the slsa provenance as defined by the slsa spec.
3222
+ # Corresponds to the JSON property `slsaProvenance`
3223
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaProvenance]
3224
+ attr_accessor :slsa_provenance
3225
+
3226
+ # subject is the subjects of the intoto statement
1979
3227
  # Corresponds to the JSON property `subject`
1980
3228
  # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Subject>]
1981
3229
  attr_accessor :subject
1982
3230
 
1983
- # Always "https://in-toto.io/Statement/v0.1".
1984
- # Corresponds to the JSON property `type`
1985
- # @return [String]
1986
- attr_accessor :type
1987
-
1988
3231
  def initialize(**args)
1989
3232
  update!(**args)
1990
3233
  end
1991
3234
 
1992
3235
  # Update properties of this object
1993
3236
  def update!(**args)
3237
+ @_type = args[:_type] if args.key?(:_type)
1994
3238
  @predicate_type = args[:predicate_type] if args.key?(:predicate_type)
1995
3239
  @provenance = args[:provenance] if args.key?(:provenance)
3240
+ @slsa_provenance = args[:slsa_provenance] if args.key?(:slsa_provenance)
1996
3241
  @subject = args[:subject] if args.key?(:subject)
1997
- @type = args[:type] if args.key?(:type)
1998
3242
  end
1999
3243
  end
2000
3244
 
@@ -2049,6 +3293,33 @@ module Google
2049
3293
  end
2050
3294
  end
2051
3295
 
3296
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
3297
+ # 315-declared-license
3298
+ class License
3299
+ include Google::Apis::Core::Hashable
3300
+
3301
+ # Comments
3302
+ # Corresponds to the JSON property `comments`
3303
+ # @return [String]
3304
+ attr_accessor :comments
3305
+
3306
+ # Expression: https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-
3307
+ # expressions/
3308
+ # Corresponds to the JSON property `expression`
3309
+ # @return [String]
3310
+ attr_accessor :expression
3311
+
3312
+ def initialize(**args)
3313
+ update!(**args)
3314
+ end
3315
+
3316
+ # Update properties of this object
3317
+ def update!(**args)
3318
+ @comments = args[:comments] if args.key?(:comments)
3319
+ @expression = args[:expression] if args.key?(:expression)
3320
+ end
3321
+ end
3322
+
2052
3323
  # Response including listed occurrences for a note.
2053
3324
  class ListNoteOccurrencesResponse
2054
3325
  include Google::Apis::Core::Hashable
@@ -2187,6 +3458,32 @@ module Google
2187
3458
  end
2188
3459
  end
2189
3460
 
3461
+ # Material is a material used in the generation of the provenance
3462
+ class Material
3463
+ include Google::Apis::Core::Hashable
3464
+
3465
+ # digest is a map from a hash algorithm (e.g. sha256) to the value in the
3466
+ # material
3467
+ # Corresponds to the JSON property `digest`
3468
+ # @return [Hash<String,String>]
3469
+ attr_accessor :digest
3470
+
3471
+ # uri is the uri of the material
3472
+ # Corresponds to the JSON property `uri`
3473
+ # @return [String]
3474
+ attr_accessor :uri
3475
+
3476
+ def initialize(**args)
3477
+ update!(**args)
3478
+ end
3479
+
3480
+ # Update properties of this object
3481
+ def update!(**args)
3482
+ @digest = args[:digest] if args.key?(:digest)
3483
+ @uri = args[:uri] if args.key?(:uri)
3484
+ end
3485
+ end
3486
+
2190
3487
  # Other properties of the build.
2191
3488
  class Metadata
2192
3489
  include Google::Apis::Core::Hashable
@@ -2377,10 +3674,10 @@ module Google
2377
3674
  # @return [Google::Apis::ContaineranalysisV1alpha1::FileNote]
2378
3675
  attr_accessor :spdx_file
2379
3676
 
2380
- # PackageNote represents an SPDX Package Information section: https://spdx.
3677
+ # PackageInfoNote represents an SPDX Package Information section: https://spdx.
2381
3678
  # github.io/spdx-spec/3-package-information/
2382
3679
  # Corresponds to the JSON property `spdxPackage`
2383
- # @return [Google::Apis::ContaineranalysisV1alpha1::PackageNote]
3680
+ # @return [Google::Apis::ContaineranalysisV1alpha1::PackageInfoNote]
2384
3681
  attr_accessor :spdx_package
2385
3682
 
2386
3683
  # RelationshipNote represents an SPDX Relationship section: https://spdx.github.
@@ -2550,10 +3847,10 @@ module Google
2550
3847
  # @return [Google::Apis::ContaineranalysisV1alpha1::FileOccurrence]
2551
3848
  attr_accessor :spdx_file
2552
3849
 
2553
- # PackageOccurrence represents an SPDX Package Information section: https://spdx.
2554
- # github.io/spdx-spec/3-package-information/
3850
+ # PackageInfoOccurrence represents an SPDX Package Information section: https://
3851
+ # spdx.github.io/spdx-spec/3-package-information/
2555
3852
  # Corresponds to the JSON property `spdxPackage`
2556
- # @return [Google::Apis::ContaineranalysisV1alpha1::PackageOccurrence]
3853
+ # @return [Google::Apis::ContaineranalysisV1alpha1::PackageInfoOccurrence]
2557
3854
  attr_accessor :spdx_package
2558
3855
 
2559
3856
  # RelationshipOccurrence represents an SPDX Relationship section: https://spdx.
@@ -2700,56 +3997,9 @@ module Google
2700
3997
  end
2701
3998
  end
2702
3999
 
2703
- # This message wraps a location affected by a vulnerability and its associated
2704
- # fix (if one is available).
2705
- class PackageIssue
2706
- include Google::Apis::Core::Hashable
2707
-
2708
- # The location of the vulnerability
2709
- # Corresponds to the JSON property `affectedLocation`
2710
- # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
2711
- attr_accessor :affected_location
2712
-
2713
- # Output only. The distro or language system assigned severity for this
2714
- # vulnerability when that is available and note provider assigned severity when
2715
- # distro or language system has not yet assigned a severity for this
2716
- # vulnerability.
2717
- # Corresponds to the JSON property `effectiveSeverity`
2718
- # @return [String]
2719
- attr_accessor :effective_severity
2720
-
2721
- # The location of the vulnerability
2722
- # Corresponds to the JSON property `fixedLocation`
2723
- # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
2724
- attr_accessor :fixed_location
2725
-
2726
- # The type of package (e.g. OS, MAVEN, GO).
2727
- # Corresponds to the JSON property `packageType`
2728
- # @return [String]
2729
- attr_accessor :package_type
2730
-
2731
- #
2732
- # Corresponds to the JSON property `severityName`
2733
- # @return [String]
2734
- attr_accessor :severity_name
2735
-
2736
- def initialize(**args)
2737
- update!(**args)
2738
- end
2739
-
2740
- # Update properties of this object
2741
- def update!(**args)
2742
- @affected_location = args[:affected_location] if args.key?(:affected_location)
2743
- @effective_severity = args[:effective_severity] if args.key?(:effective_severity)
2744
- @fixed_location = args[:fixed_location] if args.key?(:fixed_location)
2745
- @package_type = args[:package_type] if args.key?(:package_type)
2746
- @severity_name = args[:severity_name] if args.key?(:severity_name)
2747
- end
2748
- end
2749
-
2750
- # PackageNote represents an SPDX Package Information section: https://spdx.
4000
+ # PackageInfoNote represents an SPDX Package Information section: https://spdx.
2751
4001
  # github.io/spdx-spec/3-package-information/
2752
- class PackageNote
4002
+ class PackageInfoNote
2753
4003
  include Google::Apis::Core::Hashable
2754
4004
 
2755
4005
  # Indicates whether the file content of this package has been available for or
@@ -2808,9 +4058,10 @@ module Google
2808
4058
  # @return [String]
2809
4059
  attr_accessor :home_page
2810
4060
 
2811
- # List the licenses that have been declared by the authors of the package
4061
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
4062
+ # 315-declared-license
2812
4063
  # Corresponds to the JSON property `licenseDeclared`
2813
- # @return [String]
4064
+ # @return [Google::Apis::ContaineranalysisV1alpha1::License]
2814
4065
  attr_accessor :license_declared
2815
4066
 
2816
4067
  # If the package identified in the SPDX file originated from a different person
@@ -2820,6 +4071,11 @@ module Google
2820
4071
  # @return [String]
2821
4072
  attr_accessor :originator
2822
4073
 
4074
+ # The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
4075
+ # Corresponds to the JSON property `packageType`
4076
+ # @return [String]
4077
+ attr_accessor :package_type
4078
+
2823
4079
  # A short description of the package
2824
4080
  # Corresponds to the JSON property `summaryDescription`
2825
4081
  # @return [String]
@@ -2866,54 +4122,128 @@ module Google
2866
4122
  @home_page = args[:home_page] if args.key?(:home_page)
2867
4123
  @license_declared = args[:license_declared] if args.key?(:license_declared)
2868
4124
  @originator = args[:originator] if args.key?(:originator)
4125
+ @package_type = args[:package_type] if args.key?(:package_type)
4126
+ @summary_description = args[:summary_description] if args.key?(:summary_description)
4127
+ @supplier = args[:supplier] if args.key?(:supplier)
4128
+ @title = args[:title] if args.key?(:title)
4129
+ @verification_code = args[:verification_code] if args.key?(:verification_code)
4130
+ @version = args[:version] if args.key?(:version)
4131
+ end
4132
+ end
4133
+
4134
+ # PackageInfoOccurrence represents an SPDX Package Information section: https://
4135
+ # spdx.github.io/spdx-spec/3-package-information/
4136
+ class PackageInfoOccurrence
4137
+ include Google::Apis::Core::Hashable
4138
+
4139
+ # A place for the SPDX file creator to record any general comments about the
4140
+ # package being described
4141
+ # Corresponds to the JSON property `comment`
4142
+ # @return [String]
4143
+ attr_accessor :comment
4144
+
4145
+ # Provide the actual file name of the package, or path of the directory being
4146
+ # treated as a package
4147
+ # Corresponds to the JSON property `filename`
4148
+ # @return [String]
4149
+ attr_accessor :filename
4150
+
4151
+ # Output only. Provide a place for the SPDX file creator to record a web site
4152
+ # that serves as the package's home page
4153
+ # Corresponds to the JSON property `homePage`
4154
+ # @return [String]
4155
+ attr_accessor :home_page
4156
+
4157
+ # Uniquely identify any element in an SPDX document which may be referenced by
4158
+ # other elements
4159
+ # Corresponds to the JSON property `id`
4160
+ # @return [String]
4161
+ attr_accessor :id
4162
+
4163
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
4164
+ # 315-declared-license
4165
+ # Corresponds to the JSON property `licenseConcluded`
4166
+ # @return [Google::Apis::ContaineranalysisV1alpha1::License]
4167
+ attr_accessor :license_concluded
4168
+
4169
+ # Output only. The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
4170
+ # Corresponds to the JSON property `packageType`
4171
+ # @return [String]
4172
+ attr_accessor :package_type
4173
+
4174
+ # Provide a place for the SPDX file creator to record any relevant background
4175
+ # information or additional comments about the origin of the package
4176
+ # Corresponds to the JSON property `sourceInfo`
4177
+ # @return [String]
4178
+ attr_accessor :source_info
4179
+
4180
+ # Output only. A short description of the package
4181
+ # Corresponds to the JSON property `summaryDescription`
4182
+ # @return [String]
4183
+ attr_accessor :summary_description
4184
+
4185
+ # Output only. Identify the full name of the package as given by the Package
4186
+ # Originator
4187
+ # Corresponds to the JSON property `title`
4188
+ # @return [String]
4189
+ attr_accessor :title
4190
+
4191
+ # Output only. Identify the version of the package
4192
+ # Corresponds to the JSON property `version`
4193
+ # @return [String]
4194
+ attr_accessor :version
4195
+
4196
+ def initialize(**args)
4197
+ update!(**args)
4198
+ end
4199
+
4200
+ # Update properties of this object
4201
+ def update!(**args)
4202
+ @comment = args[:comment] if args.key?(:comment)
4203
+ @filename = args[:filename] if args.key?(:filename)
4204
+ @home_page = args[:home_page] if args.key?(:home_page)
4205
+ @id = args[:id] if args.key?(:id)
4206
+ @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
4207
+ @package_type = args[:package_type] if args.key?(:package_type)
4208
+ @source_info = args[:source_info] if args.key?(:source_info)
2869
4209
  @summary_description = args[:summary_description] if args.key?(:summary_description)
2870
- @supplier = args[:supplier] if args.key?(:supplier)
2871
4210
  @title = args[:title] if args.key?(:title)
2872
- @verification_code = args[:verification_code] if args.key?(:verification_code)
2873
4211
  @version = args[:version] if args.key?(:version)
2874
4212
  end
2875
4213
  end
2876
4214
 
2877
- # PackageOccurrence represents an SPDX Package Information section: https://spdx.
2878
- # github.io/spdx-spec/3-package-information/
2879
- class PackageOccurrence
4215
+ # This message wraps a location affected by a vulnerability and its associated
4216
+ # fix (if one is available).
4217
+ class PackageIssue
2880
4218
  include Google::Apis::Core::Hashable
2881
4219
 
2882
- # A place for the SPDX file creator to record any general comments about the
2883
- # package being described
2884
- # Corresponds to the JSON property `comment`
2885
- # @return [String]
2886
- attr_accessor :comment
2887
-
2888
- # Provide the actual file name of the package, or path of the directory being
2889
- # treated as a package
2890
- # Corresponds to the JSON property `filename`
2891
- # @return [String]
2892
- attr_accessor :filename
4220
+ # The location of the vulnerability
4221
+ # Corresponds to the JSON property `affectedLocation`
4222
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
4223
+ attr_accessor :affected_location
2893
4224
 
2894
- # Uniquely identify any element in an SPDX document which may be referenced by
2895
- # other elements
2896
- # Corresponds to the JSON property `id`
4225
+ # Output only. The distro or language system assigned severity for this
4226
+ # vulnerability when that is available and note provider assigned severity when
4227
+ # distro or language system has not yet assigned a severity for this
4228
+ # vulnerability.
4229
+ # Corresponds to the JSON property `effectiveSeverity`
2897
4230
  # @return [String]
2898
- attr_accessor :id
4231
+ attr_accessor :effective_severity
2899
4232
 
2900
- # This field provides a place for the SPDX file creator to record any relevant
2901
- # background information or analysis that went in to arriving at the Concluded
2902
- # License for a package
2903
- # Corresponds to the JSON property `licenseComments`
2904
- # @return [String]
2905
- attr_accessor :license_comments
4233
+ # The location of the vulnerability
4234
+ # Corresponds to the JSON property `fixedLocation`
4235
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
4236
+ attr_accessor :fixed_location
2906
4237
 
2907
- # package or alternative values, if the governing license cannot be determined
2908
- # Corresponds to the JSON property `licenseConcluded`
4238
+ # The type of package (e.g. OS, MAVEN, GO).
4239
+ # Corresponds to the JSON property `packageType`
2909
4240
  # @return [String]
2910
- attr_accessor :license_concluded
4241
+ attr_accessor :package_type
2911
4242
 
2912
- # Provide a place for the SPDX file creator to record any relevant background
2913
- # information or additional comments about the origin of the package
2914
- # Corresponds to the JSON property `sourceInfo`
4243
+ #
4244
+ # Corresponds to the JSON property `severityName`
2915
4245
  # @return [String]
2916
- attr_accessor :source_info
4246
+ attr_accessor :severity_name
2917
4247
 
2918
4248
  def initialize(**args)
2919
4249
  update!(**args)
@@ -2921,12 +4251,11 @@ module Google
2921
4251
 
2922
4252
  # Update properties of this object
2923
4253
  def update!(**args)
2924
- @comment = args[:comment] if args.key?(:comment)
2925
- @filename = args[:filename] if args.key?(:filename)
2926
- @id = args[:id] if args.key?(:id)
2927
- @license_comments = args[:license_comments] if args.key?(:license_comments)
2928
- @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
2929
- @source_info = args[:source_info] if args.key?(:source_info)
4254
+ @affected_location = args[:affected_location] if args.key?(:affected_location)
4255
+ @effective_severity = args[:effective_severity] if args.key?(:effective_severity)
4256
+ @fixed_location = args[:fixed_location] if args.key?(:fixed_location)
4257
+ @package_type = args[:package_type] if args.key?(:package_type)
4258
+ @severity_name = args[:severity_name] if args.key?(:severity_name)
2930
4259
  end
2931
4260
  end
2932
4261
 
@@ -2985,37 +4314,42 @@ module Google
2985
4314
 
2986
4315
  # An Identity and Access Management (IAM) policy, which specifies access
2987
4316
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2988
- # A `binding` binds one or more `members` to a single `role`. Members can be
2989
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2990
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2991
- # role or a user-created custom role. For some types of Google Cloud resources,
2992
- # a `binding` can also specify a `condition`, which is a logical expression that
2993
- # allows access to a resource only if the expression evaluates to `true`. A
2994
- # condition can add constraints based on attributes of the request, the resource,
2995
- # or both. To learn which resources support conditions in their IAM policies,
2996
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2997
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2998
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2999
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
3000
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
3001
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
3002
- # title": "expirable access", "description": "Does not grant access after Sep
3003
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
3004
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
3005
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
3006
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
3007
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
3008
- # roles/resourcemanager.organizationViewer condition: title: expirable access
3009
- # description: Does not grant access after Sep 2020 expression: request.time <
3010
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
3011
- # description of IAM and its features, see the [IAM documentation](https://cloud.
3012
- # google.com/iam/docs/).
4317
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
4318
+ # Principals can be user accounts, service accounts, Google groups, and domains (
4319
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
4320
+ # an IAM predefined role or a user-created custom role. For some types of Google
4321
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
4322
+ # logical expression that allows access to a resource only if the expression
4323
+ # evaluates to `true`. A condition can add constraints based on attributes of
4324
+ # the request, the resource, or both. To learn which resources support
4325
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
4326
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
4327
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
4328
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
4329
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
4330
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
4331
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
4332
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
4333
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
4334
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
4335
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
4336
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
4337
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
4338
+ # access description: Does not grant access after Sep 2020 expression: request.
4339
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
4340
+ # a description of IAM and its features, see the [IAM documentation](https://
4341
+ # cloud.google.com/iam/docs/).
3013
4342
  class Policy
3014
4343
  include Google::Apis::Core::Hashable
3015
4344
 
3016
- # Associates a list of `members` to a `role`. Optionally, may specify a `
3017
- # condition` that determines how and when the `bindings` are applied. Each of
3018
- # the `bindings` must contain at least one member.
4345
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
4346
+ # specify a `condition` that determines how and when the `bindings` are applied.
4347
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
4348
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
4349
+ # can be Google groups. Each occurrence of a principal counts towards these
4350
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
4351
+ # example.com`, and not to any other principal, then you can add another 1,450
4352
+ # principals to the `bindings` in the `Policy`.
3019
4353
  # Corresponds to the JSON property `bindings`
3020
4354
  # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Binding>]
3021
4355
  attr_accessor :bindings
@@ -3155,12 +4489,18 @@ module Google
3155
4489
  class RelationshipNote
3156
4490
  include Google::Apis::Core::Hashable
3157
4491
 
4492
+ # The type of relationship between the source and target SPDX elements
4493
+ # Corresponds to the JSON property `type`
4494
+ # @return [String]
4495
+ attr_accessor :type
4496
+
3158
4497
  def initialize(**args)
3159
4498
  update!(**args)
3160
4499
  end
3161
4500
 
3162
4501
  # Update properties of this object
3163
4502
  def update!(**args)
4503
+ @type = args[:type] if args.key?(:type)
3164
4504
  end
3165
4505
  end
3166
4506
 
@@ -3189,7 +4529,8 @@ module Google
3189
4529
  # @return [String]
3190
4530
  attr_accessor :target
3191
4531
 
3192
- # The type of relationship between the source and target SPDX elements
4532
+ # Output only. The type of relationship between the source and target SPDX
4533
+ # elements
3193
4534
  # Corresponds to the JSON property `type`
3194
4535
  # @return [String]
3195
4536
  attr_accessor :type
@@ -3334,31 +4675,31 @@ module Google
3334
4675
 
3335
4676
  # An Identity and Access Management (IAM) policy, which specifies access
3336
4677
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
3337
- # A `binding` binds one or more `members` to a single `role`. Members can be
3338
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
3339
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
3340
- # role or a user-created custom role. For some types of Google Cloud resources,
3341
- # a `binding` can also specify a `condition`, which is a logical expression that
3342
- # allows access to a resource only if the expression evaluates to `true`. A
3343
- # condition can add constraints based on attributes of the request, the resource,
3344
- # or both. To learn which resources support conditions in their IAM policies,
3345
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
3346
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
3347
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
3348
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
3349
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
3350
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
3351
- # title": "expirable access", "description": "Does not grant access after Sep
3352
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
3353
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
3354
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
3355
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
3356
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
3357
- # roles/resourcemanager.organizationViewer condition: title: expirable access
3358
- # description: Does not grant access after Sep 2020 expression: request.time <
3359
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
3360
- # description of IAM and its features, see the [IAM documentation](https://cloud.
3361
- # google.com/iam/docs/).
4678
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
4679
+ # Principals can be user accounts, service accounts, Google groups, and domains (
4680
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
4681
+ # an IAM predefined role or a user-created custom role. For some types of Google
4682
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
4683
+ # logical expression that allows access to a resource only if the expression
4684
+ # evaluates to `true`. A condition can add constraints based on attributes of
4685
+ # the request, the resource, or both. To learn which resources support
4686
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
4687
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
4688
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
4689
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
4690
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
4691
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
4692
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
4693
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
4694
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
4695
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
4696
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
4697
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
4698
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
4699
+ # access description: Does not grant access after Sep 2020 expression: request.
4700
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
4701
+ # a description of IAM and its features, see the [IAM documentation](https://
4702
+ # cloud.google.com/iam/docs/).
3362
4703
  # Corresponds to the JSON property `policy`
3363
4704
  # @return [Google::Apis::ContaineranalysisV1alpha1::Policy]
3364
4705
  attr_accessor :policy
@@ -3398,6 +4739,210 @@ module Google
3398
4739
  end
3399
4740
  end
3400
4741
 
4742
+ # SlsaBuilder encapsulates the identity of the builder of this provenance.
4743
+ class SlsaBuilder
4744
+ include Google::Apis::Core::Hashable
4745
+
4746
+ # id is the id of the slsa provenance builder
4747
+ # Corresponds to the JSON property `id`
4748
+ # @return [String]
4749
+ attr_accessor :id
4750
+
4751
+ def initialize(**args)
4752
+ update!(**args)
4753
+ end
4754
+
4755
+ # Update properties of this object
4756
+ def update!(**args)
4757
+ @id = args[:id] if args.key?(:id)
4758
+ end
4759
+ end
4760
+
4761
+ # Indicates that the builder claims certain fields in this message to be
4762
+ # complete.
4763
+ class SlsaCompleteness
4764
+ include Google::Apis::Core::Hashable
4765
+
4766
+ # If true, the builder claims that recipe.arguments is complete, meaning that
4767
+ # all external inputs are properly captured in the recipe.
4768
+ # Corresponds to the JSON property `arguments`
4769
+ # @return [Boolean]
4770
+ attr_accessor :arguments
4771
+ alias_method :arguments?, :arguments
4772
+
4773
+ # If true, the builder claims that recipe.environment is claimed to be complete.
4774
+ # Corresponds to the JSON property `environment`
4775
+ # @return [Boolean]
4776
+ attr_accessor :environment
4777
+ alias_method :environment?, :environment
4778
+
4779
+ # If true, the builder claims that materials are complete, usually through some
4780
+ # controls to prevent network access. Sometimes called "hermetic".
4781
+ # Corresponds to the JSON property `materials`
4782
+ # @return [Boolean]
4783
+ attr_accessor :materials
4784
+ alias_method :materials?, :materials
4785
+
4786
+ def initialize(**args)
4787
+ update!(**args)
4788
+ end
4789
+
4790
+ # Update properties of this object
4791
+ def update!(**args)
4792
+ @arguments = args[:arguments] if args.key?(:arguments)
4793
+ @environment = args[:environment] if args.key?(:environment)
4794
+ @materials = args[:materials] if args.key?(:materials)
4795
+ end
4796
+ end
4797
+
4798
+ # Other properties of the build.
4799
+ class SlsaMetadata
4800
+ include Google::Apis::Core::Hashable
4801
+
4802
+ # The timestamp of when the build completed.
4803
+ # Corresponds to the JSON property `buildFinishedOn`
4804
+ # @return [String]
4805
+ attr_accessor :build_finished_on
4806
+
4807
+ # Identifies the particular build invocation, which can be useful for finding
4808
+ # associated logs or other ad-hoc analysis. The value SHOULD be globally unique,
4809
+ # per in-toto Provenance spec.
4810
+ # Corresponds to the JSON property `buildInvocationId`
4811
+ # @return [String]
4812
+ attr_accessor :build_invocation_id
4813
+
4814
+ # The timestamp of when the build started.
4815
+ # Corresponds to the JSON property `buildStartedOn`
4816
+ # @return [String]
4817
+ attr_accessor :build_started_on
4818
+
4819
+ # Indicates that the builder claims certain fields in this message to be
4820
+ # complete.
4821
+ # Corresponds to the JSON property `completeness`
4822
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaCompleteness]
4823
+ attr_accessor :completeness
4824
+
4825
+ # If true, the builder claims that running the recipe on materials will produce
4826
+ # bit-for-bit identical output.
4827
+ # Corresponds to the JSON property `reproducible`
4828
+ # @return [Boolean]
4829
+ attr_accessor :reproducible
4830
+ alias_method :reproducible?, :reproducible
4831
+
4832
+ def initialize(**args)
4833
+ update!(**args)
4834
+ end
4835
+
4836
+ # Update properties of this object
4837
+ def update!(**args)
4838
+ @build_finished_on = args[:build_finished_on] if args.key?(:build_finished_on)
4839
+ @build_invocation_id = args[:build_invocation_id] if args.key?(:build_invocation_id)
4840
+ @build_started_on = args[:build_started_on] if args.key?(:build_started_on)
4841
+ @completeness = args[:completeness] if args.key?(:completeness)
4842
+ @reproducible = args[:reproducible] if args.key?(:reproducible)
4843
+ end
4844
+ end
4845
+
4846
+ # SlsaProvenance is the slsa provenance as defined by the slsa spec.
4847
+ class SlsaProvenance
4848
+ include Google::Apis::Core::Hashable
4849
+
4850
+ # SlsaBuilder encapsulates the identity of the builder of this provenance.
4851
+ # Corresponds to the JSON property `builder`
4852
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaBuilder]
4853
+ attr_accessor :builder
4854
+
4855
+ # The collection of artifacts that influenced the build including sources,
4856
+ # dependencies, build tools, base images, and so on. This is considered to be
4857
+ # incomplete unless metadata.completeness.materials is true. Unset or null is
4858
+ # equivalent to empty.
4859
+ # Corresponds to the JSON property `materials`
4860
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Material>]
4861
+ attr_accessor :materials
4862
+
4863
+ # Other properties of the build.
4864
+ # Corresponds to the JSON property `metadata`
4865
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaMetadata]
4866
+ attr_accessor :metadata
4867
+
4868
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4869
+ # corresponds to one step in the recipe.
4870
+ # Corresponds to the JSON property `recipe`
4871
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaRecipe]
4872
+ attr_accessor :recipe
4873
+
4874
+ def initialize(**args)
4875
+ update!(**args)
4876
+ end
4877
+
4878
+ # Update properties of this object
4879
+ def update!(**args)
4880
+ @builder = args[:builder] if args.key?(:builder)
4881
+ @materials = args[:materials] if args.key?(:materials)
4882
+ @metadata = args[:metadata] if args.key?(:metadata)
4883
+ @recipe = args[:recipe] if args.key?(:recipe)
4884
+ end
4885
+ end
4886
+
4887
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4888
+ # corresponds to one step in the recipe.
4889
+ class SlsaRecipe
4890
+ include Google::Apis::Core::Hashable
4891
+
4892
+ # Collection of all external inputs that influenced the build on top of recipe.
4893
+ # definedInMaterial and recipe.entryPoint. For example, if the recipe type were "
4894
+ # make", then this might be the flags passed to make aside from the target,
4895
+ # which is captured in recipe.entryPoint. Depending on the recipe Type, the
4896
+ # structure may be different.
4897
+ # Corresponds to the JSON property `arguments`
4898
+ # @return [Hash<String,Object>]
4899
+ attr_accessor :arguments
4900
+
4901
+ # Index in materials containing the recipe steps that are not implied by recipe.
4902
+ # type. For example, if the recipe type were "make", then this would point to
4903
+ # the source containing the Makefile, not the make program itself. Set to -1 if
4904
+ # the recipe doesn't come from a material, as zero is default unset value for
4905
+ # int64.
4906
+ # Corresponds to the JSON property `definedInMaterial`
4907
+ # @return [Fixnum]
4908
+ attr_accessor :defined_in_material
4909
+
4910
+ # String identifying the entry point into the build. This is often a path to a
4911
+ # configuration file and/or a target label within that file. The syntax and
4912
+ # meaning are defined by recipe.type. For example, if the recipe type were "make"
4913
+ # , then this would reference the directory in which to run make as well as
4914
+ # which target to use.
4915
+ # Corresponds to the JSON property `entryPoint`
4916
+ # @return [String]
4917
+ attr_accessor :entry_point
4918
+
4919
+ # Any other builder-controlled inputs necessary for correctly evaluating the
4920
+ # recipe. Usually only needed for reproducing the build but not evaluated as
4921
+ # part of policy. Depending on the recipe Type, the structure may be different.
4922
+ # Corresponds to the JSON property `environment`
4923
+ # @return [Hash<String,Object>]
4924
+ attr_accessor :environment
4925
+
4926
+ # URI indicating what type of recipe was performed. It determines the meaning of
4927
+ # recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
4928
+ # Corresponds to the JSON property `type`
4929
+ # @return [String]
4930
+ attr_accessor :type
4931
+
4932
+ def initialize(**args)
4933
+ update!(**args)
4934
+ end
4935
+
4936
+ # Update properties of this object
4937
+ def update!(**args)
4938
+ @arguments = args[:arguments] if args.key?(:arguments)
4939
+ @defined_in_material = args[:defined_in_material] if args.key?(:defined_in_material)
4940
+ @entry_point = args[:entry_point] if args.key?(:entry_point)
4941
+ @environment = args[:environment] if args.key?(:environment)
4942
+ @type = args[:type] if args.key?(:type)
4943
+ end
4944
+ end
4945
+
3401
4946
  # Source describes the location of the source used for the build.
3402
4947
  class Source
3403
4948
  include Google::Apis::Core::Hashable
@@ -3530,16 +5075,17 @@ module Google
3530
5075
  end
3531
5076
  end
3532
5077
 
3533
- #
5078
+ # Subject refers to the subject of the intoto statement
3534
5079
  class Subject
3535
5080
  include Google::Apis::Core::Hashable
3536
5081
 
3537
- # "": ""
5082
+ # "": "" Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/
5083
+ # attestation/blob/main/spec/field_types.md#DigestSet
3538
5084
  # Corresponds to the JSON property `digest`
3539
5085
  # @return [Hash<String,String>]
3540
5086
  attr_accessor :digest
3541
5087
 
3542
- #
5088
+ # name is the name of the Subject used here
3543
5089
  # Corresponds to the JSON property `name`
3544
5090
  # @return [String]
3545
5091
  attr_accessor :name