google-apis-containeranalysis_v1alpha1 0.13.0 → 0.17.0

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