google-apis-securitycenter_v1 0.68.0 → 0.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/google/apis/securitycenter_v1/classes.rb +2563 -1
- data/lib/google/apis/securitycenter_v1/gem_version.rb +2 -2
- data/lib/google/apis/securitycenter_v1/representations.rb +1376 -418
- data/lib/google/apis/securitycenter_v1/service.rb +31 -0
- metadata +3 -3
@@ -875,6 +875,68 @@ module Google
|
|
875
875
|
end
|
876
876
|
end
|
877
877
|
|
878
|
+
# Result containing the properties and count of a ComplianceSnapshot request.
|
879
|
+
class ComplianceSnapshot
|
880
|
+
include Google::Apis::Core::Hashable
|
881
|
+
|
882
|
+
# The category of Findings matching.
|
883
|
+
# Corresponds to the JSON property `category`
|
884
|
+
# @return [String]
|
885
|
+
attr_accessor :category
|
886
|
+
|
887
|
+
# The compliance standard (ie CIS).
|
888
|
+
# Corresponds to the JSON property `complianceStandard`
|
889
|
+
# @return [String]
|
890
|
+
attr_accessor :compliance_standard
|
891
|
+
|
892
|
+
# The compliance version (ie 1.3) in CIS 1.3.
|
893
|
+
# Corresponds to the JSON property `complianceVersion`
|
894
|
+
# @return [String]
|
895
|
+
attr_accessor :compliance_version
|
896
|
+
|
897
|
+
# Total count of findings for the given properties.
|
898
|
+
# Corresponds to the JSON property `count`
|
899
|
+
# @return [Fixnum]
|
900
|
+
attr_accessor :count
|
901
|
+
|
902
|
+
# The leaf container resource name that is closest to the snapshot.
|
903
|
+
# Corresponds to the JSON property `leafContainerResource`
|
904
|
+
# @return [String]
|
905
|
+
attr_accessor :leaf_container_resource
|
906
|
+
|
907
|
+
# The compliance snapshot name. Format: //sources//complianceSnapshots/
|
908
|
+
# Corresponds to the JSON property `name`
|
909
|
+
# @return [String]
|
910
|
+
attr_accessor :name
|
911
|
+
|
912
|
+
# The CRM resource display name that is closest to the snapshot the Findings
|
913
|
+
# belong to.
|
914
|
+
# Corresponds to the JSON property `projectDisplayName`
|
915
|
+
# @return [String]
|
916
|
+
attr_accessor :project_display_name
|
917
|
+
|
918
|
+
# The snapshot time of the snapshot.
|
919
|
+
# Corresponds to the JSON property `snapshotTime`
|
920
|
+
# @return [String]
|
921
|
+
attr_accessor :snapshot_time
|
922
|
+
|
923
|
+
def initialize(**args)
|
924
|
+
update!(**args)
|
925
|
+
end
|
926
|
+
|
927
|
+
# Update properties of this object
|
928
|
+
def update!(**args)
|
929
|
+
@category = args[:category] if args.key?(:category)
|
930
|
+
@compliance_standard = args[:compliance_standard] if args.key?(:compliance_standard)
|
931
|
+
@compliance_version = args[:compliance_version] if args.key?(:compliance_version)
|
932
|
+
@count = args[:count] if args.key?(:count)
|
933
|
+
@leaf_container_resource = args[:leaf_container_resource] if args.key?(:leaf_container_resource)
|
934
|
+
@name = args[:name] if args.key?(:name)
|
935
|
+
@project_display_name = args[:project_display_name] if args.key?(:project_display_name)
|
936
|
+
@snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
|
937
|
+
end
|
938
|
+
end
|
939
|
+
|
878
940
|
# Contains information about the IP connection associated with the finding.
|
879
941
|
class Connection
|
880
942
|
include Google::Apis::Core::Hashable
|
@@ -3073,6 +3135,2506 @@ module Google
|
|
3073
3135
|
end
|
3074
3136
|
end
|
3075
3137
|
|
3138
|
+
# Represents an access event.
|
3139
|
+
class GoogleCloudSecuritycenterV2Access
|
3140
|
+
include Google::Apis::Core::Hashable
|
3141
|
+
|
3142
|
+
# Caller's IP address, such as "1.1.1.1".
|
3143
|
+
# Corresponds to the JSON property `callerIp`
|
3144
|
+
# @return [String]
|
3145
|
+
attr_accessor :caller_ip
|
3146
|
+
|
3147
|
+
# Represents a geographical location for a given access.
|
3148
|
+
# Corresponds to the JSON property `callerIpGeo`
|
3149
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Geolocation]
|
3150
|
+
attr_accessor :caller_ip_geo
|
3151
|
+
|
3152
|
+
# The method that the service account called, e.g. "SetIamPolicy".
|
3153
|
+
# Corresponds to the JSON property `methodName`
|
3154
|
+
# @return [String]
|
3155
|
+
attr_accessor :method_name
|
3156
|
+
|
3157
|
+
# Associated email, such as "foo@google.com". The email address of the
|
3158
|
+
# authenticated user or a service account acting on behalf of a third party
|
3159
|
+
# principal making the request. For third party identity callers, the `
|
3160
|
+
# principal_subject` field is populated instead of this field. For privacy
|
3161
|
+
# reasons, the principal email address is sometimes redacted. For more
|
3162
|
+
# information, see [Caller identities in audit logs](https://cloud.google.com/
|
3163
|
+
# logging/docs/audit#user-id).
|
3164
|
+
# Corresponds to the JSON property `principalEmail`
|
3165
|
+
# @return [String]
|
3166
|
+
attr_accessor :principal_email
|
3167
|
+
|
3168
|
+
# A string that represents the principal_subject that is associated with the
|
3169
|
+
# identity. Unlike `principal_email`, `principal_subject` supports principals
|
3170
|
+
# that aren't associated with email addresses, such as third party principals.
|
3171
|
+
# For most identities, the format is `principal://iam.googleapis.com/`identity
|
3172
|
+
# pool name`/subject/`subject``. Some GKE identities, such as GKE_WORKLOAD,
|
3173
|
+
# FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:`
|
3174
|
+
# identity pool name`[`subject`]`.
|
3175
|
+
# Corresponds to the JSON property `principalSubject`
|
3176
|
+
# @return [String]
|
3177
|
+
attr_accessor :principal_subject
|
3178
|
+
|
3179
|
+
# The identity delegation history of an authenticated service account that made
|
3180
|
+
# the request. The `serviceAccountDelegationInfo[]` object contains information
|
3181
|
+
# about the real authorities that try to access Google Cloud resources by
|
3182
|
+
# delegating on a service account. When multiple authorities are present, they
|
3183
|
+
# are guaranteed to be sorted based on the original ordering of the identity
|
3184
|
+
# delegation events.
|
3185
|
+
# Corresponds to the JSON property `serviceAccountDelegationInfo`
|
3186
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo>]
|
3187
|
+
attr_accessor :service_account_delegation_info
|
3188
|
+
|
3189
|
+
# The name of the service account key that was used to create or exchange
|
3190
|
+
# credentials when authenticating the service account that made the request.
|
3191
|
+
# This is a scheme-less URI full resource name. For example: "//iam.googleapis.
|
3192
|
+
# com/projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT`/keys/`key`".
|
3193
|
+
# Corresponds to the JSON property `serviceAccountKeyName`
|
3194
|
+
# @return [String]
|
3195
|
+
attr_accessor :service_account_key_name
|
3196
|
+
|
3197
|
+
# This is the API service that the service account made a call to, e.g. "iam.
|
3198
|
+
# googleapis.com"
|
3199
|
+
# Corresponds to the JSON property `serviceName`
|
3200
|
+
# @return [String]
|
3201
|
+
attr_accessor :service_name
|
3202
|
+
|
3203
|
+
# The caller's user agent string associated with the finding.
|
3204
|
+
# Corresponds to the JSON property `userAgent`
|
3205
|
+
# @return [String]
|
3206
|
+
attr_accessor :user_agent
|
3207
|
+
|
3208
|
+
# Type of user agent associated with the finding. For example, an operating
|
3209
|
+
# system shell or an embedded or standalone application.
|
3210
|
+
# Corresponds to the JSON property `userAgentFamily`
|
3211
|
+
# @return [String]
|
3212
|
+
attr_accessor :user_agent_family
|
3213
|
+
|
3214
|
+
# A string that represents a username. The username provided depends on the type
|
3215
|
+
# of the finding and is likely not an IAM principal. For example, this can be a
|
3216
|
+
# system username if the finding is related to a virtual machine, or it can be
|
3217
|
+
# an application login username.
|
3218
|
+
# Corresponds to the JSON property `userName`
|
3219
|
+
# @return [String]
|
3220
|
+
attr_accessor :user_name
|
3221
|
+
|
3222
|
+
def initialize(**args)
|
3223
|
+
update!(**args)
|
3224
|
+
end
|
3225
|
+
|
3226
|
+
# Update properties of this object
|
3227
|
+
def update!(**args)
|
3228
|
+
@caller_ip = args[:caller_ip] if args.key?(:caller_ip)
|
3229
|
+
@caller_ip_geo = args[:caller_ip_geo] if args.key?(:caller_ip_geo)
|
3230
|
+
@method_name = args[:method_name] if args.key?(:method_name)
|
3231
|
+
@principal_email = args[:principal_email] if args.key?(:principal_email)
|
3232
|
+
@principal_subject = args[:principal_subject] if args.key?(:principal_subject)
|
3233
|
+
@service_account_delegation_info = args[:service_account_delegation_info] if args.key?(:service_account_delegation_info)
|
3234
|
+
@service_account_key_name = args[:service_account_key_name] if args.key?(:service_account_key_name)
|
3235
|
+
@service_name = args[:service_name] if args.key?(:service_name)
|
3236
|
+
@user_agent = args[:user_agent] if args.key?(:user_agent)
|
3237
|
+
@user_agent_family = args[:user_agent_family] if args.key?(:user_agent_family)
|
3238
|
+
@user_name = args[:user_name] if args.key?(:user_name)
|
3239
|
+
end
|
3240
|
+
end
|
3241
|
+
|
3242
|
+
# Conveys information about a Kubernetes access review (such as one returned by
|
3243
|
+
# a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-
|
3244
|
+
# authz/authorization/#checking-api-access) command) that was involved in a
|
3245
|
+
# finding.
|
3246
|
+
class GoogleCloudSecuritycenterV2AccessReview
|
3247
|
+
include Google::Apis::Core::Hashable
|
3248
|
+
|
3249
|
+
# The API group of the resource. "*" means all.
|
3250
|
+
# Corresponds to the JSON property `group`
|
3251
|
+
# @return [String]
|
3252
|
+
attr_accessor :group
|
3253
|
+
|
3254
|
+
# The name of the resource being requested. Empty means all.
|
3255
|
+
# Corresponds to the JSON property `name`
|
3256
|
+
# @return [String]
|
3257
|
+
attr_accessor :name
|
3258
|
+
|
3259
|
+
# Namespace of the action being requested. Currently, there is no distinction
|
3260
|
+
# between no namespace and all namespaces. Both are represented by "" (empty).
|
3261
|
+
# Corresponds to the JSON property `ns`
|
3262
|
+
# @return [String]
|
3263
|
+
attr_accessor :ns
|
3264
|
+
|
3265
|
+
# The optional resource type requested. "*" means all.
|
3266
|
+
# Corresponds to the JSON property `resource`
|
3267
|
+
# @return [String]
|
3268
|
+
attr_accessor :resource
|
3269
|
+
|
3270
|
+
# The optional subresource type.
|
3271
|
+
# Corresponds to the JSON property `subresource`
|
3272
|
+
# @return [String]
|
3273
|
+
attr_accessor :subresource
|
3274
|
+
|
3275
|
+
# A Kubernetes resource API verb, like get, list, watch, create, update, delete,
|
3276
|
+
# proxy. "*" means all.
|
3277
|
+
# Corresponds to the JSON property `verb`
|
3278
|
+
# @return [String]
|
3279
|
+
attr_accessor :verb
|
3280
|
+
|
3281
|
+
# The API version of the resource. "*" means all.
|
3282
|
+
# Corresponds to the JSON property `version`
|
3283
|
+
# @return [String]
|
3284
|
+
attr_accessor :version
|
3285
|
+
|
3286
|
+
def initialize(**args)
|
3287
|
+
update!(**args)
|
3288
|
+
end
|
3289
|
+
|
3290
|
+
# Update properties of this object
|
3291
|
+
def update!(**args)
|
3292
|
+
@group = args[:group] if args.key?(:group)
|
3293
|
+
@name = args[:name] if args.key?(:name)
|
3294
|
+
@ns = args[:ns] if args.key?(:ns)
|
3295
|
+
@resource = args[:resource] if args.key?(:resource)
|
3296
|
+
@subresource = args[:subresource] if args.key?(:subresource)
|
3297
|
+
@verb = args[:verb] if args.key?(:verb)
|
3298
|
+
@version = args[:version] if args.key?(:version)
|
3299
|
+
end
|
3300
|
+
end
|
3301
|
+
|
3302
|
+
# An attack exposure contains the results of an attack path simulation run.
|
3303
|
+
class GoogleCloudSecuritycenterV2AttackExposure
|
3304
|
+
include Google::Apis::Core::Hashable
|
3305
|
+
|
3306
|
+
# The resource name of the attack path simulation result that contains the
|
3307
|
+
# details regarding this attack exposure score. Example: organizations/123/
|
3308
|
+
# attackExposureResults/456
|
3309
|
+
# Corresponds to the JSON property `attackExposureResult`
|
3310
|
+
# @return [String]
|
3311
|
+
attr_accessor :attack_exposure_result
|
3312
|
+
|
3313
|
+
# The number of high value resources that are exposed as a result of this
|
3314
|
+
# finding.
|
3315
|
+
# Corresponds to the JSON property `exposedHighValueResourcesCount`
|
3316
|
+
# @return [Fixnum]
|
3317
|
+
attr_accessor :exposed_high_value_resources_count
|
3318
|
+
|
3319
|
+
# The number of high value resources that are exposed as a result of this
|
3320
|
+
# finding.
|
3321
|
+
# Corresponds to the JSON property `exposedLowValueResourcesCount`
|
3322
|
+
# @return [Fixnum]
|
3323
|
+
attr_accessor :exposed_low_value_resources_count
|
3324
|
+
|
3325
|
+
# The number of medium value resources that are exposed as a result of this
|
3326
|
+
# finding.
|
3327
|
+
# Corresponds to the JSON property `exposedMediumValueResourcesCount`
|
3328
|
+
# @return [Fixnum]
|
3329
|
+
attr_accessor :exposed_medium_value_resources_count
|
3330
|
+
|
3331
|
+
# The most recent time the attack exposure was updated on this finding.
|
3332
|
+
# Corresponds to the JSON property `latestCalculationTime`
|
3333
|
+
# @return [String]
|
3334
|
+
attr_accessor :latest_calculation_time
|
3335
|
+
|
3336
|
+
# A number between 0 (inclusive) and infinity that represents how important this
|
3337
|
+
# finding is to remediate. The higher the score, the more important it is to
|
3338
|
+
# remediate.
|
3339
|
+
# Corresponds to the JSON property `score`
|
3340
|
+
# @return [Float]
|
3341
|
+
attr_accessor :score
|
3342
|
+
|
3343
|
+
# Output only. What state this AttackExposure is in. This captures whether or
|
3344
|
+
# not an attack exposure has been calculated or not.
|
3345
|
+
# Corresponds to the JSON property `state`
|
3346
|
+
# @return [String]
|
3347
|
+
attr_accessor :state
|
3348
|
+
|
3349
|
+
def initialize(**args)
|
3350
|
+
update!(**args)
|
3351
|
+
end
|
3352
|
+
|
3353
|
+
# Update properties of this object
|
3354
|
+
def update!(**args)
|
3355
|
+
@attack_exposure_result = args[:attack_exposure_result] if args.key?(:attack_exposure_result)
|
3356
|
+
@exposed_high_value_resources_count = args[:exposed_high_value_resources_count] if args.key?(:exposed_high_value_resources_count)
|
3357
|
+
@exposed_low_value_resources_count = args[:exposed_low_value_resources_count] if args.key?(:exposed_low_value_resources_count)
|
3358
|
+
@exposed_medium_value_resources_count = args[:exposed_medium_value_resources_count] if args.key?(:exposed_medium_value_resources_count)
|
3359
|
+
@latest_calculation_time = args[:latest_calculation_time] if args.key?(:latest_calculation_time)
|
3360
|
+
@score = args[:score] if args.key?(:score)
|
3361
|
+
@state = args[:state] if args.key?(:state)
|
3362
|
+
end
|
3363
|
+
end
|
3364
|
+
|
3365
|
+
# Configures how to deliver Findings to BigQuery Instance.
|
3366
|
+
class GoogleCloudSecuritycenterV2BigQueryExport
|
3367
|
+
include Google::Apis::Core::Hashable
|
3368
|
+
|
3369
|
+
# Output only. The time at which the BigQuery export was created. This field is
|
3370
|
+
# set by the server and will be ignored if provided on export on creation.
|
3371
|
+
# Corresponds to the JSON property `createTime`
|
3372
|
+
# @return [String]
|
3373
|
+
attr_accessor :create_time
|
3374
|
+
|
3375
|
+
# The dataset to write findings' updates to. Its format is "projects/[project_id]
|
3376
|
+
# /datasets/[bigquery_dataset_id]". BigQuery Dataset unique ID must contain only
|
3377
|
+
# letters (a-z, A-Z), numbers (0-9), or underscores (_).
|
3378
|
+
# Corresponds to the JSON property `dataset`
|
3379
|
+
# @return [String]
|
3380
|
+
attr_accessor :dataset
|
3381
|
+
|
3382
|
+
# The description of the export (max of 1024 characters).
|
3383
|
+
# Corresponds to the JSON property `description`
|
3384
|
+
# @return [String]
|
3385
|
+
attr_accessor :description
|
3386
|
+
|
3387
|
+
# Expression that defines the filter to apply across create/update events of
|
3388
|
+
# findings. The expression is a list of zero or more restrictions combined via
|
3389
|
+
# logical operators `AND` and `OR`. Parentheses are supported, and `OR` has
|
3390
|
+
# higher precedence than `AND`. Restrictions have the form ` ` and may have a `-`
|
3391
|
+
# character in front of them to indicate negation. The fields map to those
|
3392
|
+
# defined in the corresponding resource. The supported operators are: * `=` for
|
3393
|
+
# all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning
|
3394
|
+
# substring matching, for strings. The supported value types are: * string
|
3395
|
+
# literals in quotes. * integer literals without quotes. * boolean literals `
|
3396
|
+
# true` and `false` without quotes.
|
3397
|
+
# Corresponds to the JSON property `filter`
|
3398
|
+
# @return [String]
|
3399
|
+
attr_accessor :filter
|
3400
|
+
|
3401
|
+
# Output only. Email address of the user who last edited the BigQuery export.
|
3402
|
+
# This field is set by the server and will be ignored if provided on export
|
3403
|
+
# creation or update.
|
3404
|
+
# Corresponds to the JSON property `mostRecentEditor`
|
3405
|
+
# @return [String]
|
3406
|
+
attr_accessor :most_recent_editor
|
3407
|
+
|
3408
|
+
# The relative resource name of this export. See: https://cloud.google.com/apis/
|
3409
|
+
# design/resource_names#relative_resource_name. The following list shows some
|
3410
|
+
# examples: + `organizations/`organization_id`/locations/`location_id`/
|
3411
|
+
# bigQueryExports/`export_id`` + `folders/`folder_id`/locations/`location_id`/
|
3412
|
+
# bigQueryExports/`export_id`` + `projects/`project_id`/locations/`location_id`/
|
3413
|
+
# bigQueryExports/`export_id`` This field is provided in responses, and is
|
3414
|
+
# ignored when provided in create requests.
|
3415
|
+
# Corresponds to the JSON property `name`
|
3416
|
+
# @return [String]
|
3417
|
+
attr_accessor :name
|
3418
|
+
|
3419
|
+
# Output only. The service account that needs permission to create table and
|
3420
|
+
# upload data to the BigQuery dataset.
|
3421
|
+
# Corresponds to the JSON property `principal`
|
3422
|
+
# @return [String]
|
3423
|
+
attr_accessor :principal
|
3424
|
+
|
3425
|
+
# Output only. The most recent time at which the BigQuery export was updated.
|
3426
|
+
# This field is set by the server and will be ignored if provided on export
|
3427
|
+
# creation or update.
|
3428
|
+
# Corresponds to the JSON property `updateTime`
|
3429
|
+
# @return [String]
|
3430
|
+
attr_accessor :update_time
|
3431
|
+
|
3432
|
+
def initialize(**args)
|
3433
|
+
update!(**args)
|
3434
|
+
end
|
3435
|
+
|
3436
|
+
# Update properties of this object
|
3437
|
+
def update!(**args)
|
3438
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
3439
|
+
@dataset = args[:dataset] if args.key?(:dataset)
|
3440
|
+
@description = args[:description] if args.key?(:description)
|
3441
|
+
@filter = args[:filter] if args.key?(:filter)
|
3442
|
+
@most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
|
3443
|
+
@name = args[:name] if args.key?(:name)
|
3444
|
+
@principal = args[:principal] if args.key?(:principal)
|
3445
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
3446
|
+
end
|
3447
|
+
end
|
3448
|
+
|
3449
|
+
# Represents a Kubernetes RoleBinding or ClusterRoleBinding.
|
3450
|
+
class GoogleCloudSecuritycenterV2Binding
|
3451
|
+
include Google::Apis::Core::Hashable
|
3452
|
+
|
3453
|
+
# Name for the binding.
|
3454
|
+
# Corresponds to the JSON property `name`
|
3455
|
+
# @return [String]
|
3456
|
+
attr_accessor :name
|
3457
|
+
|
3458
|
+
# Namespace for the binding.
|
3459
|
+
# Corresponds to the JSON property `ns`
|
3460
|
+
# @return [String]
|
3461
|
+
attr_accessor :ns
|
3462
|
+
|
3463
|
+
# Kubernetes Role or ClusterRole.
|
3464
|
+
# Corresponds to the JSON property `role`
|
3465
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Role]
|
3466
|
+
attr_accessor :role
|
3467
|
+
|
3468
|
+
# Represents one or more subjects that are bound to the role. Not always
|
3469
|
+
# available for PATCH requests.
|
3470
|
+
# Corresponds to the JSON property `subjects`
|
3471
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Subject>]
|
3472
|
+
attr_accessor :subjects
|
3473
|
+
|
3474
|
+
def initialize(**args)
|
3475
|
+
update!(**args)
|
3476
|
+
end
|
3477
|
+
|
3478
|
+
# Update properties of this object
|
3479
|
+
def update!(**args)
|
3480
|
+
@name = args[:name] if args.key?(:name)
|
3481
|
+
@ns = args[:ns] if args.key?(:ns)
|
3482
|
+
@role = args[:role] if args.key?(:role)
|
3483
|
+
@subjects = args[:subjects] if args.key?(:subjects)
|
3484
|
+
end
|
3485
|
+
end
|
3486
|
+
|
3487
|
+
# The response to a BulkMute request. Contains the LRO information.
|
3488
|
+
class GoogleCloudSecuritycenterV2BulkMuteFindingsResponse
|
3489
|
+
include Google::Apis::Core::Hashable
|
3490
|
+
|
3491
|
+
def initialize(**args)
|
3492
|
+
update!(**args)
|
3493
|
+
end
|
3494
|
+
|
3495
|
+
# Update properties of this object
|
3496
|
+
def update!(**args)
|
3497
|
+
end
|
3498
|
+
end
|
3499
|
+
|
3500
|
+
# The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
|
3501
|
+
# with the finding.
|
3502
|
+
class GoogleCloudSecuritycenterV2CloudDlpDataProfile
|
3503
|
+
include Google::Apis::Core::Hashable
|
3504
|
+
|
3505
|
+
# Name of the data profile, for example, `projects/123/locations/europe/
|
3506
|
+
# tableProfiles/8383929`.
|
3507
|
+
# Corresponds to the JSON property `dataProfile`
|
3508
|
+
# @return [String]
|
3509
|
+
attr_accessor :data_profile
|
3510
|
+
|
3511
|
+
# The resource hierarchy level at which the data profile was generated.
|
3512
|
+
# Corresponds to the JSON property `parentType`
|
3513
|
+
# @return [String]
|
3514
|
+
attr_accessor :parent_type
|
3515
|
+
|
3516
|
+
def initialize(**args)
|
3517
|
+
update!(**args)
|
3518
|
+
end
|
3519
|
+
|
3520
|
+
# Update properties of this object
|
3521
|
+
def update!(**args)
|
3522
|
+
@data_profile = args[:data_profile] if args.key?(:data_profile)
|
3523
|
+
@parent_type = args[:parent_type] if args.key?(:parent_type)
|
3524
|
+
end
|
3525
|
+
end
|
3526
|
+
|
3527
|
+
# Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](
|
3528
|
+
# https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
|
3529
|
+
# finding.
|
3530
|
+
class GoogleCloudSecuritycenterV2CloudDlpInspection
|
3531
|
+
include Google::Apis::Core::Hashable
|
3532
|
+
|
3533
|
+
# Whether Cloud DLP scanned the complete resource or a sampled subset.
|
3534
|
+
# Corresponds to the JSON property `fullScan`
|
3535
|
+
# @return [Boolean]
|
3536
|
+
attr_accessor :full_scan
|
3537
|
+
alias_method :full_scan?, :full_scan
|
3538
|
+
|
3539
|
+
# The type of information (or *[infoType](https://cloud.google.com/dlp/docs/
|
3540
|
+
# infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.
|
3541
|
+
# Corresponds to the JSON property `infoType`
|
3542
|
+
# @return [String]
|
3543
|
+
attr_accessor :info_type
|
3544
|
+
|
3545
|
+
# The number of times Cloud DLP found this infoType within this job and resource.
|
3546
|
+
# Corresponds to the JSON property `infoTypeCount`
|
3547
|
+
# @return [Fixnum]
|
3548
|
+
attr_accessor :info_type_count
|
3549
|
+
|
3550
|
+
# Name of the inspection job, for example, `projects/123/locations/europe/
|
3551
|
+
# dlpJobs/i-8383929`.
|
3552
|
+
# Corresponds to the JSON property `inspectJob`
|
3553
|
+
# @return [String]
|
3554
|
+
attr_accessor :inspect_job
|
3555
|
+
|
3556
|
+
def initialize(**args)
|
3557
|
+
update!(**args)
|
3558
|
+
end
|
3559
|
+
|
3560
|
+
# Update properties of this object
|
3561
|
+
def update!(**args)
|
3562
|
+
@full_scan = args[:full_scan] if args.key?(:full_scan)
|
3563
|
+
@info_type = args[:info_type] if args.key?(:info_type)
|
3564
|
+
@info_type_count = args[:info_type_count] if args.key?(:info_type_count)
|
3565
|
+
@inspect_job = args[:inspect_job] if args.key?(:inspect_job)
|
3566
|
+
end
|
3567
|
+
end
|
3568
|
+
|
3569
|
+
# Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/
|
3570
|
+
# logging/docs/reference/v2/rest/v2/LogEntry)
|
3571
|
+
class GoogleCloudSecuritycenterV2CloudLoggingEntry
|
3572
|
+
include Google::Apis::Core::Hashable
|
3573
|
+
|
3574
|
+
# A unique identifier for the log entry.
|
3575
|
+
# Corresponds to the JSON property `insertId`
|
3576
|
+
# @return [String]
|
3577
|
+
attr_accessor :insert_id
|
3578
|
+
|
3579
|
+
# The type of the log (part of `log_name`. `log_name` is the resource name of
|
3580
|
+
# the log to which this log entry belongs). For example: `cloudresourcemanager.
|
3581
|
+
# googleapis.com/activity` Note that this field is not URL-encoded, unlike in `
|
3582
|
+
# LogEntry`.
|
3583
|
+
# Corresponds to the JSON property `logId`
|
3584
|
+
# @return [String]
|
3585
|
+
attr_accessor :log_id
|
3586
|
+
|
3587
|
+
# The organization, folder, or project of the monitored resource that produced
|
3588
|
+
# this log entry.
|
3589
|
+
# Corresponds to the JSON property `resourceContainer`
|
3590
|
+
# @return [String]
|
3591
|
+
attr_accessor :resource_container
|
3592
|
+
|
3593
|
+
# The time the event described by the log entry occurred.
|
3594
|
+
# Corresponds to the JSON property `timestamp`
|
3595
|
+
# @return [String]
|
3596
|
+
attr_accessor :timestamp
|
3597
|
+
|
3598
|
+
def initialize(**args)
|
3599
|
+
update!(**args)
|
3600
|
+
end
|
3601
|
+
|
3602
|
+
# Update properties of this object
|
3603
|
+
def update!(**args)
|
3604
|
+
@insert_id = args[:insert_id] if args.key?(:insert_id)
|
3605
|
+
@log_id = args[:log_id] if args.key?(:log_id)
|
3606
|
+
@resource_container = args[:resource_container] if args.key?(:resource_container)
|
3607
|
+
@timestamp = args[:timestamp] if args.key?(:timestamp)
|
3608
|
+
end
|
3609
|
+
end
|
3610
|
+
|
3611
|
+
# Contains compliance information about a security standard indicating unmet
|
3612
|
+
# recommendations.
|
3613
|
+
class GoogleCloudSecuritycenterV2Compliance
|
3614
|
+
include Google::Apis::Core::Hashable
|
3615
|
+
|
3616
|
+
# Policies within the standard or benchmark, for example, A.12.4.1
|
3617
|
+
# Corresponds to the JSON property `ids`
|
3618
|
+
# @return [Array<String>]
|
3619
|
+
attr_accessor :ids
|
3620
|
+
|
3621
|
+
# Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.
|
3622
|
+
# Corresponds to the JSON property `standard`
|
3623
|
+
# @return [String]
|
3624
|
+
attr_accessor :standard
|
3625
|
+
|
3626
|
+
# Version of the standard or benchmark, for example, 1.1
|
3627
|
+
# Corresponds to the JSON property `version`
|
3628
|
+
# @return [String]
|
3629
|
+
attr_accessor :version
|
3630
|
+
|
3631
|
+
def initialize(**args)
|
3632
|
+
update!(**args)
|
3633
|
+
end
|
3634
|
+
|
3635
|
+
# Update properties of this object
|
3636
|
+
def update!(**args)
|
3637
|
+
@ids = args[:ids] if args.key?(:ids)
|
3638
|
+
@standard = args[:standard] if args.key?(:standard)
|
3639
|
+
@version = args[:version] if args.key?(:version)
|
3640
|
+
end
|
3641
|
+
end
|
3642
|
+
|
3643
|
+
# Contains information about the IP connection associated with the finding.
|
3644
|
+
class GoogleCloudSecuritycenterV2Connection
|
3645
|
+
include Google::Apis::Core::Hashable
|
3646
|
+
|
3647
|
+
# Destination IP address. Not present for sockets that are listening and not
|
3648
|
+
# connected.
|
3649
|
+
# Corresponds to the JSON property `destinationIp`
|
3650
|
+
# @return [String]
|
3651
|
+
attr_accessor :destination_ip
|
3652
|
+
|
3653
|
+
# Destination port. Not present for sockets that are listening and not connected.
|
3654
|
+
# Corresponds to the JSON property `destinationPort`
|
3655
|
+
# @return [Fixnum]
|
3656
|
+
attr_accessor :destination_port
|
3657
|
+
|
3658
|
+
# IANA Internet Protocol Number such as TCP(6) and UDP(17).
|
3659
|
+
# Corresponds to the JSON property `protocol`
|
3660
|
+
# @return [String]
|
3661
|
+
attr_accessor :protocol
|
3662
|
+
|
3663
|
+
# Source IP address.
|
3664
|
+
# Corresponds to the JSON property `sourceIp`
|
3665
|
+
# @return [String]
|
3666
|
+
attr_accessor :source_ip
|
3667
|
+
|
3668
|
+
# Source port.
|
3669
|
+
# Corresponds to the JSON property `sourcePort`
|
3670
|
+
# @return [Fixnum]
|
3671
|
+
attr_accessor :source_port
|
3672
|
+
|
3673
|
+
def initialize(**args)
|
3674
|
+
update!(**args)
|
3675
|
+
end
|
3676
|
+
|
3677
|
+
# Update properties of this object
|
3678
|
+
def update!(**args)
|
3679
|
+
@destination_ip = args[:destination_ip] if args.key?(:destination_ip)
|
3680
|
+
@destination_port = args[:destination_port] if args.key?(:destination_port)
|
3681
|
+
@protocol = args[:protocol] if args.key?(:protocol)
|
3682
|
+
@source_ip = args[:source_ip] if args.key?(:source_ip)
|
3683
|
+
@source_port = args[:source_port] if args.key?(:source_port)
|
3684
|
+
end
|
3685
|
+
end
|
3686
|
+
|
3687
|
+
# The email address of a contact.
|
3688
|
+
class GoogleCloudSecuritycenterV2Contact
|
3689
|
+
include Google::Apis::Core::Hashable
|
3690
|
+
|
3691
|
+
# An email address. For example, "`person123@company.com`".
|
3692
|
+
# Corresponds to the JSON property `email`
|
3693
|
+
# @return [String]
|
3694
|
+
attr_accessor :email
|
3695
|
+
|
3696
|
+
def initialize(**args)
|
3697
|
+
update!(**args)
|
3698
|
+
end
|
3699
|
+
|
3700
|
+
# Update properties of this object
|
3701
|
+
def update!(**args)
|
3702
|
+
@email = args[:email] if args.key?(:email)
|
3703
|
+
end
|
3704
|
+
end
|
3705
|
+
|
3706
|
+
# Details about specific contacts
|
3707
|
+
class GoogleCloudSecuritycenterV2ContactDetails
|
3708
|
+
include Google::Apis::Core::Hashable
|
3709
|
+
|
3710
|
+
# A list of contacts
|
3711
|
+
# Corresponds to the JSON property `contacts`
|
3712
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Contact>]
|
3713
|
+
attr_accessor :contacts
|
3714
|
+
|
3715
|
+
def initialize(**args)
|
3716
|
+
update!(**args)
|
3717
|
+
end
|
3718
|
+
|
3719
|
+
# Update properties of this object
|
3720
|
+
def update!(**args)
|
3721
|
+
@contacts = args[:contacts] if args.key?(:contacts)
|
3722
|
+
end
|
3723
|
+
end
|
3724
|
+
|
3725
|
+
# Container associated with the finding.
|
3726
|
+
class GoogleCloudSecuritycenterV2Container
|
3727
|
+
include Google::Apis::Core::Hashable
|
3728
|
+
|
3729
|
+
# The time that the container was created.
|
3730
|
+
# Corresponds to the JSON property `createTime`
|
3731
|
+
# @return [String]
|
3732
|
+
attr_accessor :create_time
|
3733
|
+
|
3734
|
+
# Optional container image ID, if provided by the container runtime. Uniquely
|
3735
|
+
# identifies the container image launched using a container image digest.
|
3736
|
+
# Corresponds to the JSON property `imageId`
|
3737
|
+
# @return [String]
|
3738
|
+
attr_accessor :image_id
|
3739
|
+
|
3740
|
+
# Container labels, as provided by the container runtime.
|
3741
|
+
# Corresponds to the JSON property `labels`
|
3742
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Label>]
|
3743
|
+
attr_accessor :labels
|
3744
|
+
|
3745
|
+
# Name of the container.
|
3746
|
+
# Corresponds to the JSON property `name`
|
3747
|
+
# @return [String]
|
3748
|
+
attr_accessor :name
|
3749
|
+
|
3750
|
+
# Container image URI provided when configuring a pod or container. This string
|
3751
|
+
# can identify a container image version using mutable tags.
|
3752
|
+
# Corresponds to the JSON property `uri`
|
3753
|
+
# @return [String]
|
3754
|
+
attr_accessor :uri
|
3755
|
+
|
3756
|
+
def initialize(**args)
|
3757
|
+
update!(**args)
|
3758
|
+
end
|
3759
|
+
|
3760
|
+
# Update properties of this object
|
3761
|
+
def update!(**args)
|
3762
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
3763
|
+
@image_id = args[:image_id] if args.key?(:image_id)
|
3764
|
+
@labels = args[:labels] if args.key?(:labels)
|
3765
|
+
@name = args[:name] if args.key?(:name)
|
3766
|
+
@uri = args[:uri] if args.key?(:uri)
|
3767
|
+
end
|
3768
|
+
end
|
3769
|
+
|
3770
|
+
# CVE stands for Common Vulnerabilities and Exposures. More information: https://
|
3771
|
+
# cve.mitre.org
|
3772
|
+
class GoogleCloudSecuritycenterV2Cve
|
3773
|
+
include Google::Apis::Core::Hashable
|
3774
|
+
|
3775
|
+
# Common Vulnerability Scoring System version 3.
|
3776
|
+
# Corresponds to the JSON property `cvssv3`
|
3777
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Cvssv3]
|
3778
|
+
attr_accessor :cvssv3
|
3779
|
+
|
3780
|
+
# The unique identifier for the vulnerability. e.g. CVE-2021-34527
|
3781
|
+
# Corresponds to the JSON property `id`
|
3782
|
+
# @return [String]
|
3783
|
+
attr_accessor :id
|
3784
|
+
|
3785
|
+
# Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/
|
3786
|
+
# cvename.cgi?name=CVE-2021-34527
|
3787
|
+
# Corresponds to the JSON property `references`
|
3788
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Reference>]
|
3789
|
+
attr_accessor :references
|
3790
|
+
|
3791
|
+
# Whether upstream fix is available for the CVE.
|
3792
|
+
# Corresponds to the JSON property `upstreamFixAvailable`
|
3793
|
+
# @return [Boolean]
|
3794
|
+
attr_accessor :upstream_fix_available
|
3795
|
+
alias_method :upstream_fix_available?, :upstream_fix_available
|
3796
|
+
|
3797
|
+
def initialize(**args)
|
3798
|
+
update!(**args)
|
3799
|
+
end
|
3800
|
+
|
3801
|
+
# Update properties of this object
|
3802
|
+
def update!(**args)
|
3803
|
+
@cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
|
3804
|
+
@id = args[:id] if args.key?(:id)
|
3805
|
+
@references = args[:references] if args.key?(:references)
|
3806
|
+
@upstream_fix_available = args[:upstream_fix_available] if args.key?(:upstream_fix_available)
|
3807
|
+
end
|
3808
|
+
end
|
3809
|
+
|
3810
|
+
# Common Vulnerability Scoring System version 3.
|
3811
|
+
class GoogleCloudSecuritycenterV2Cvssv3
|
3812
|
+
include Google::Apis::Core::Hashable
|
3813
|
+
|
3814
|
+
# This metric describes the conditions beyond the attacker's control that must
|
3815
|
+
# exist in order to exploit the vulnerability.
|
3816
|
+
# Corresponds to the JSON property `attackComplexity`
|
3817
|
+
# @return [String]
|
3818
|
+
attr_accessor :attack_complexity
|
3819
|
+
|
3820
|
+
# Base Metrics Represents the intrinsic characteristics of a vulnerability that
|
3821
|
+
# are constant over time and across user environments. This metric reflects the
|
3822
|
+
# context by which vulnerability exploitation is possible.
|
3823
|
+
# Corresponds to the JSON property `attackVector`
|
3824
|
+
# @return [String]
|
3825
|
+
attr_accessor :attack_vector
|
3826
|
+
|
3827
|
+
# This metric measures the impact to the availability of the impacted component
|
3828
|
+
# resulting from a successfully exploited vulnerability.
|
3829
|
+
# Corresponds to the JSON property `availabilityImpact`
|
3830
|
+
# @return [String]
|
3831
|
+
attr_accessor :availability_impact
|
3832
|
+
|
3833
|
+
# The base score is a function of the base metric scores.
|
3834
|
+
# Corresponds to the JSON property `baseScore`
|
3835
|
+
# @return [Float]
|
3836
|
+
attr_accessor :base_score
|
3837
|
+
|
3838
|
+
# This metric measures the impact to the confidentiality of the information
|
3839
|
+
# resources managed by a software component due to a successfully exploited
|
3840
|
+
# vulnerability.
|
3841
|
+
# Corresponds to the JSON property `confidentialityImpact`
|
3842
|
+
# @return [String]
|
3843
|
+
attr_accessor :confidentiality_impact
|
3844
|
+
|
3845
|
+
# This metric measures the impact to integrity of a successfully exploited
|
3846
|
+
# vulnerability.
|
3847
|
+
# Corresponds to the JSON property `integrityImpact`
|
3848
|
+
# @return [String]
|
3849
|
+
attr_accessor :integrity_impact
|
3850
|
+
|
3851
|
+
# This metric describes the level of privileges an attacker must possess before
|
3852
|
+
# successfully exploiting the vulnerability.
|
3853
|
+
# Corresponds to the JSON property `privilegesRequired`
|
3854
|
+
# @return [String]
|
3855
|
+
attr_accessor :privileges_required
|
3856
|
+
|
3857
|
+
# The Scope metric captures whether a vulnerability in one vulnerable component
|
3858
|
+
# impacts resources in components beyond its security scope.
|
3859
|
+
# Corresponds to the JSON property `scope`
|
3860
|
+
# @return [String]
|
3861
|
+
attr_accessor :scope
|
3862
|
+
|
3863
|
+
# This metric captures the requirement for a human user, other than the attacker,
|
3864
|
+
# to participate in the successful compromise of the vulnerable component.
|
3865
|
+
# Corresponds to the JSON property `userInteraction`
|
3866
|
+
# @return [String]
|
3867
|
+
attr_accessor :user_interaction
|
3868
|
+
|
3869
|
+
def initialize(**args)
|
3870
|
+
update!(**args)
|
3871
|
+
end
|
3872
|
+
|
3873
|
+
# Update properties of this object
|
3874
|
+
def update!(**args)
|
3875
|
+
@attack_complexity = args[:attack_complexity] if args.key?(:attack_complexity)
|
3876
|
+
@attack_vector = args[:attack_vector] if args.key?(:attack_vector)
|
3877
|
+
@availability_impact = args[:availability_impact] if args.key?(:availability_impact)
|
3878
|
+
@base_score = args[:base_score] if args.key?(:base_score)
|
3879
|
+
@confidentiality_impact = args[:confidentiality_impact] if args.key?(:confidentiality_impact)
|
3880
|
+
@integrity_impact = args[:integrity_impact] if args.key?(:integrity_impact)
|
3881
|
+
@privileges_required = args[:privileges_required] if args.key?(:privileges_required)
|
3882
|
+
@scope = args[:scope] if args.key?(:scope)
|
3883
|
+
@user_interaction = args[:user_interaction] if args.key?(:user_interaction)
|
3884
|
+
end
|
3885
|
+
end
|
3886
|
+
|
3887
|
+
# Represents database access information, such as queries. A database may be a
|
3888
|
+
# sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
|
3889
|
+
# Spanner instances), or the database instance itself. Some database resources
|
3890
|
+
# might not have the [full resource name](https://google.aip.dev/122#full-
|
3891
|
+
# resource-names) populated because these resource types, such as Cloud SQL
|
3892
|
+
# databases, are not yet supported by Cloud Asset Inventory. In these cases only
|
3893
|
+
# the display name is provided.
|
3894
|
+
class GoogleCloudSecuritycenterV2Database
|
3895
|
+
include Google::Apis::Core::Hashable
|
3896
|
+
|
3897
|
+
# The human-readable name of the database that the user connected to.
|
3898
|
+
# Corresponds to the JSON property `displayName`
|
3899
|
+
# @return [String]
|
3900
|
+
attr_accessor :display_name
|
3901
|
+
|
3902
|
+
# The target usernames, roles, or groups of an SQL privilege grant, which is not
|
3903
|
+
# an IAM policy change.
|
3904
|
+
# Corresponds to the JSON property `grantees`
|
3905
|
+
# @return [Array<String>]
|
3906
|
+
attr_accessor :grantees
|
3907
|
+
|
3908
|
+
# Some database resources may not have the [full resource name](https://google.
|
3909
|
+
# aip.dev/122#full-resource-names) populated because these resource types are
|
3910
|
+
# not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In
|
3911
|
+
# these cases only the display name will be provided. The [full resource name](
|
3912
|
+
# https://google.aip.dev/122#full-resource-names) of the database that the user
|
3913
|
+
# connected to, if it is supported by Cloud Asset Inventory.
|
3914
|
+
# Corresponds to the JSON property `name`
|
3915
|
+
# @return [String]
|
3916
|
+
attr_accessor :name
|
3917
|
+
|
3918
|
+
# The SQL statement that is associated with the database access.
|
3919
|
+
# Corresponds to the JSON property `query`
|
3920
|
+
# @return [String]
|
3921
|
+
attr_accessor :query
|
3922
|
+
|
3923
|
+
# The username used to connect to the database. The username might not be an IAM
|
3924
|
+
# principal and does not have a set format.
|
3925
|
+
# Corresponds to the JSON property `userName`
|
3926
|
+
# @return [String]
|
3927
|
+
attr_accessor :user_name
|
3928
|
+
|
3929
|
+
# The version of the database, for example, POSTGRES_14. See [the complete list](
|
3930
|
+
# https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
|
3931
|
+
# Corresponds to the JSON property `version`
|
3932
|
+
# @return [String]
|
3933
|
+
attr_accessor :version
|
3934
|
+
|
3935
|
+
def initialize(**args)
|
3936
|
+
update!(**args)
|
3937
|
+
end
|
3938
|
+
|
3939
|
+
# Update properties of this object
|
3940
|
+
def update!(**args)
|
3941
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
3942
|
+
@grantees = args[:grantees] if args.key?(:grantees)
|
3943
|
+
@name = args[:name] if args.key?(:name)
|
3944
|
+
@query = args[:query] if args.key?(:query)
|
3945
|
+
@user_name = args[:user_name] if args.key?(:user_name)
|
3946
|
+
@version = args[:version] if args.key?(:version)
|
3947
|
+
end
|
3948
|
+
end
|
3949
|
+
|
3950
|
+
# Memory hash detection contributing to the binary family match.
|
3951
|
+
class GoogleCloudSecuritycenterV2Detection
|
3952
|
+
include Google::Apis::Core::Hashable
|
3953
|
+
|
3954
|
+
# The name of the binary associated with the memory hash signature detection.
|
3955
|
+
# Corresponds to the JSON property `binary`
|
3956
|
+
# @return [String]
|
3957
|
+
attr_accessor :binary
|
3958
|
+
|
3959
|
+
# The percentage of memory page hashes in the signature that were matched.
|
3960
|
+
# Corresponds to the JSON property `percentPagesMatched`
|
3961
|
+
# @return [Float]
|
3962
|
+
attr_accessor :percent_pages_matched
|
3963
|
+
|
3964
|
+
def initialize(**args)
|
3965
|
+
update!(**args)
|
3966
|
+
end
|
3967
|
+
|
3968
|
+
# Update properties of this object
|
3969
|
+
def update!(**args)
|
3970
|
+
@binary = args[:binary] if args.key?(:binary)
|
3971
|
+
@percent_pages_matched = args[:percent_pages_matched] if args.key?(:percent_pages_matched)
|
3972
|
+
end
|
3973
|
+
end
|
3974
|
+
|
3975
|
+
# A name-value pair representing an environment variable used in an operating
|
3976
|
+
# system process.
|
3977
|
+
class GoogleCloudSecuritycenterV2EnvironmentVariable
|
3978
|
+
include Google::Apis::Core::Hashable
|
3979
|
+
|
3980
|
+
# Environment variable name as a JSON encoded string.
|
3981
|
+
# Corresponds to the JSON property `name`
|
3982
|
+
# @return [String]
|
3983
|
+
attr_accessor :name
|
3984
|
+
|
3985
|
+
# Environment variable value as a JSON encoded string.
|
3986
|
+
# Corresponds to the JSON property `val`
|
3987
|
+
# @return [String]
|
3988
|
+
attr_accessor :val
|
3989
|
+
|
3990
|
+
def initialize(**args)
|
3991
|
+
update!(**args)
|
3992
|
+
end
|
3993
|
+
|
3994
|
+
# Update properties of this object
|
3995
|
+
def update!(**args)
|
3996
|
+
@name = args[:name] if args.key?(:name)
|
3997
|
+
@val = args[:val] if args.key?(:val)
|
3998
|
+
end
|
3999
|
+
end
|
4000
|
+
|
4001
|
+
# Resource where data was exfiltrated from or exfiltrated to.
|
4002
|
+
class GoogleCloudSecuritycenterV2ExfilResource
|
4003
|
+
include Google::Apis::Core::Hashable
|
4004
|
+
|
4005
|
+
# Subcomponents of the asset that was exfiltrated, like URIs used during
|
4006
|
+
# exfiltration, table names, databases, and filenames. For example, multiple
|
4007
|
+
# tables might have been exfiltrated from the same Cloud SQL instance, or
|
4008
|
+
# multiple files might have been exfiltrated from the same Cloud Storage bucket.
|
4009
|
+
# Corresponds to the JSON property `components`
|
4010
|
+
# @return [Array<String>]
|
4011
|
+
attr_accessor :components
|
4012
|
+
|
4013
|
+
# The resource's [full resource name](https://cloud.google.com/apis/design/
|
4014
|
+
# resource_names#full_resource_name).
|
4015
|
+
# Corresponds to the JSON property `name`
|
4016
|
+
# @return [String]
|
4017
|
+
attr_accessor :name
|
4018
|
+
|
4019
|
+
def initialize(**args)
|
4020
|
+
update!(**args)
|
4021
|
+
end
|
4022
|
+
|
4023
|
+
# Update properties of this object
|
4024
|
+
def update!(**args)
|
4025
|
+
@components = args[:components] if args.key?(:components)
|
4026
|
+
@name = args[:name] if args.key?(:name)
|
4027
|
+
end
|
4028
|
+
end
|
4029
|
+
|
4030
|
+
# Exfiltration represents a data exfiltration attempt from one or more sources
|
4031
|
+
# to one or more targets. The `sources` attribute lists the sources of the
|
4032
|
+
# exfiltrated data. The `targets` attribute lists the destinations the data was
|
4033
|
+
# copied to.
|
4034
|
+
class GoogleCloudSecuritycenterV2Exfiltration
|
4035
|
+
include Google::Apis::Core::Hashable
|
4036
|
+
|
4037
|
+
# If there are multiple sources, then the data is considered "joined" between
|
4038
|
+
# them. For instance, BigQuery can join multiple tables, and each table would be
|
4039
|
+
# considered a source.
|
4040
|
+
# Corresponds to the JSON property `sources`
|
4041
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ExfilResource>]
|
4042
|
+
attr_accessor :sources
|
4043
|
+
|
4044
|
+
# If there are multiple targets, each target would get a complete copy of the "
|
4045
|
+
# joined" source data.
|
4046
|
+
# Corresponds to the JSON property `targets`
|
4047
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ExfilResource>]
|
4048
|
+
attr_accessor :targets
|
4049
|
+
|
4050
|
+
# Total exfiltrated bytes processed for the entire job.
|
4051
|
+
# Corresponds to the JSON property `totalExfiltratedBytes`
|
4052
|
+
# @return [Fixnum]
|
4053
|
+
attr_accessor :total_exfiltrated_bytes
|
4054
|
+
|
4055
|
+
def initialize(**args)
|
4056
|
+
update!(**args)
|
4057
|
+
end
|
4058
|
+
|
4059
|
+
# Update properties of this object
|
4060
|
+
def update!(**args)
|
4061
|
+
@sources = args[:sources] if args.key?(:sources)
|
4062
|
+
@targets = args[:targets] if args.key?(:targets)
|
4063
|
+
@total_exfiltrated_bytes = args[:total_exfiltrated_bytes] if args.key?(:total_exfiltrated_bytes)
|
4064
|
+
end
|
4065
|
+
end
|
4066
|
+
|
4067
|
+
# Representation of third party SIEM/SOAR fields within SCC.
|
4068
|
+
class GoogleCloudSecuritycenterV2ExternalSystem
|
4069
|
+
include Google::Apis::Core::Hashable
|
4070
|
+
|
4071
|
+
# References primary/secondary etc assignees in the external system.
|
4072
|
+
# Corresponds to the JSON property `assignees`
|
4073
|
+
# @return [Array<String>]
|
4074
|
+
attr_accessor :assignees
|
4075
|
+
|
4076
|
+
# The time when the case was last updated, as reported by the external system.
|
4077
|
+
# Corresponds to the JSON property `externalSystemUpdateTime`
|
4078
|
+
# @return [String]
|
4079
|
+
attr_accessor :external_system_update_time
|
4080
|
+
|
4081
|
+
# The identifier that's used to track the finding's corresponding case in the
|
4082
|
+
# external system.
|
4083
|
+
# Corresponds to the JSON property `externalUid`
|
4084
|
+
# @return [String]
|
4085
|
+
attr_accessor :external_uid
|
4086
|
+
|
4087
|
+
# Full resource name of the external system. The following list shows some
|
4088
|
+
# examples: + `organizations/1234/sources/5678/findings/123456/externalSystems/
|
4089
|
+
# jira` + `organizations/1234/sources/5678/locations/us/findings/123456/
|
4090
|
+
# externalSystems/jira` + `folders/1234/sources/5678/findings/123456/
|
4091
|
+
# externalSystems/jira` + `folders/1234/sources/5678/locations/us/findings/
|
4092
|
+
# 123456/externalSystems/jira` + `projects/1234/sources/5678/findings/123456/
|
4093
|
+
# externalSystems/jira` + `projects/1234/sources/5678/locations/us/findings/
|
4094
|
+
# 123456/externalSystems/jira`
|
4095
|
+
# Corresponds to the JSON property `name`
|
4096
|
+
# @return [String]
|
4097
|
+
attr_accessor :name
|
4098
|
+
|
4099
|
+
# The most recent status of the finding's corresponding case, as reported by the
|
4100
|
+
# external system.
|
4101
|
+
# Corresponds to the JSON property `status`
|
4102
|
+
# @return [String]
|
4103
|
+
attr_accessor :status
|
4104
|
+
|
4105
|
+
def initialize(**args)
|
4106
|
+
update!(**args)
|
4107
|
+
end
|
4108
|
+
|
4109
|
+
# Update properties of this object
|
4110
|
+
def update!(**args)
|
4111
|
+
@assignees = args[:assignees] if args.key?(:assignees)
|
4112
|
+
@external_system_update_time = args[:external_system_update_time] if args.key?(:external_system_update_time)
|
4113
|
+
@external_uid = args[:external_uid] if args.key?(:external_uid)
|
4114
|
+
@name = args[:name] if args.key?(:name)
|
4115
|
+
@status = args[:status] if args.key?(:status)
|
4116
|
+
end
|
4117
|
+
end
|
4118
|
+
|
4119
|
+
# File information about the related binary/library used by an executable, or
|
4120
|
+
# the script used by a script interpreter
|
4121
|
+
class GoogleCloudSecuritycenterV2File
|
4122
|
+
include Google::Apis::Core::Hashable
|
4123
|
+
|
4124
|
+
# Prefix of the file contents as a JSON-encoded string.
|
4125
|
+
# Corresponds to the JSON property `contents`
|
4126
|
+
# @return [String]
|
4127
|
+
attr_accessor :contents
|
4128
|
+
|
4129
|
+
# The length in bytes of the file prefix that was hashed. If hashed_size == size,
|
4130
|
+
# any hashes reported represent the entire file.
|
4131
|
+
# Corresponds to the JSON property `hashedSize`
|
4132
|
+
# @return [Fixnum]
|
4133
|
+
attr_accessor :hashed_size
|
4134
|
+
|
4135
|
+
# True when the hash covers only a prefix of the file.
|
4136
|
+
# Corresponds to the JSON property `partiallyHashed`
|
4137
|
+
# @return [Boolean]
|
4138
|
+
attr_accessor :partially_hashed
|
4139
|
+
alias_method :partially_hashed?, :partially_hashed
|
4140
|
+
|
4141
|
+
# Absolute path of the file as a JSON encoded string.
|
4142
|
+
# Corresponds to the JSON property `path`
|
4143
|
+
# @return [String]
|
4144
|
+
attr_accessor :path
|
4145
|
+
|
4146
|
+
# SHA256 hash of the first hashed_size bytes of the file encoded as a hex string.
|
4147
|
+
# If hashed_size == size, sha256 represents the SHA256 hash of the entire file.
|
4148
|
+
# Corresponds to the JSON property `sha256`
|
4149
|
+
# @return [String]
|
4150
|
+
attr_accessor :sha256
|
4151
|
+
|
4152
|
+
# Size of the file in bytes.
|
4153
|
+
# Corresponds to the JSON property `size`
|
4154
|
+
# @return [Fixnum]
|
4155
|
+
attr_accessor :size
|
4156
|
+
|
4157
|
+
def initialize(**args)
|
4158
|
+
update!(**args)
|
4159
|
+
end
|
4160
|
+
|
4161
|
+
# Update properties of this object
|
4162
|
+
def update!(**args)
|
4163
|
+
@contents = args[:contents] if args.key?(:contents)
|
4164
|
+
@hashed_size = args[:hashed_size] if args.key?(:hashed_size)
|
4165
|
+
@partially_hashed = args[:partially_hashed] if args.key?(:partially_hashed)
|
4166
|
+
@path = args[:path] if args.key?(:path)
|
4167
|
+
@sha256 = args[:sha256] if args.key?(:sha256)
|
4168
|
+
@size = args[:size] if args.key?(:size)
|
4169
|
+
end
|
4170
|
+
end
|
4171
|
+
|
4172
|
+
# Security Command Center finding. A finding is a record of assessment data like
|
4173
|
+
# security, risk, health, or privacy, that is ingested into Security Command
|
4174
|
+
# Center for presentation, notification, analysis, policy testing, and
|
4175
|
+
# enforcement. For example, a cross-site scripting (XSS) vulnerability in an App
|
4176
|
+
# Engine application is a finding.
|
4177
|
+
class GoogleCloudSecuritycenterV2Finding
|
4178
|
+
include Google::Apis::Core::Hashable
|
4179
|
+
|
4180
|
+
# Represents an access event.
|
4181
|
+
# Corresponds to the JSON property `access`
|
4182
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Access]
|
4183
|
+
attr_accessor :access
|
4184
|
+
|
4185
|
+
# An attack exposure contains the results of an attack path simulation run.
|
4186
|
+
# Corresponds to the JSON property `attackExposure`
|
4187
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AttackExposure]
|
4188
|
+
attr_accessor :attack_exposure
|
4189
|
+
|
4190
|
+
# Output only. The canonical name of the finding. The following list shows some
|
4191
|
+
# examples: + `organizations/`organization_id`/sources/`source_id`/findings/`
|
4192
|
+
# finding_id`` + `organizations/`organization_id`/sources/`source_id`/locations/`
|
4193
|
+
# location_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/
|
4194
|
+
# findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/locations/`
|
4195
|
+
# location_id`/findings/`finding_id`` + `projects/`project_id`/sources/`
|
4196
|
+
# source_id`/findings/`finding_id`` + `projects/`project_id`/sources/`source_id`/
|
4197
|
+
# locations/`location_id`/findings/`finding_id`` The prefix is the closest CRM
|
4198
|
+
# ancestor of the resource associated with the finding.
|
4199
|
+
# Corresponds to the JSON property `canonicalName`
|
4200
|
+
# @return [String]
|
4201
|
+
attr_accessor :canonical_name
|
4202
|
+
|
4203
|
+
# Immutable. The additional taxonomy group within findings from a given source.
|
4204
|
+
# Example: "XSS_FLASH_INJECTION"
|
4205
|
+
# Corresponds to the JSON property `category`
|
4206
|
+
# @return [String]
|
4207
|
+
attr_accessor :category
|
4208
|
+
|
4209
|
+
# The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
|
4210
|
+
# with the finding.
|
4211
|
+
# Corresponds to the JSON property `cloudDlpDataProfile`
|
4212
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2CloudDlpDataProfile]
|
4213
|
+
attr_accessor :cloud_dlp_data_profile
|
4214
|
+
|
4215
|
+
# Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](
|
4216
|
+
# https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
|
4217
|
+
# finding.
|
4218
|
+
# Corresponds to the JSON property `cloudDlpInspection`
|
4219
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2CloudDlpInspection]
|
4220
|
+
attr_accessor :cloud_dlp_inspection
|
4221
|
+
|
4222
|
+
# Contains compliance information for security standards associated to the
|
4223
|
+
# finding.
|
4224
|
+
# Corresponds to the JSON property `compliances`
|
4225
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Compliance>]
|
4226
|
+
attr_accessor :compliances
|
4227
|
+
|
4228
|
+
# Contains information about the IP connection associated with the finding.
|
4229
|
+
# Corresponds to the JSON property `connections`
|
4230
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Connection>]
|
4231
|
+
attr_accessor :connections
|
4232
|
+
|
4233
|
+
# Output only. Map containing the points of contact for the given finding. The
|
4234
|
+
# key represents the type of contact, while the value contains a list of all the
|
4235
|
+
# contacts that pertain. Please refer to: https://cloud.google.com/resource-
|
4236
|
+
# manager/docs/managing-notification-contacts#notification-categories ` "
|
4237
|
+
# security": ` "contacts": [ ` "email": "person1@company.com" `, ` "email": "
|
4238
|
+
# person2@company.com" ` ] ` `
|
4239
|
+
# Corresponds to the JSON property `contacts`
|
4240
|
+
# @return [Hash<String,Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ContactDetails>]
|
4241
|
+
attr_accessor :contacts
|
4242
|
+
|
4243
|
+
# Containers associated with the finding. This field provides information for
|
4244
|
+
# both Kubernetes and non-Kubernetes containers.
|
4245
|
+
# Corresponds to the JSON property `containers`
|
4246
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Container>]
|
4247
|
+
attr_accessor :containers
|
4248
|
+
|
4249
|
+
# Output only. The time at which the finding was created in Security Command
|
4250
|
+
# Center.
|
4251
|
+
# Corresponds to the JSON property `createTime`
|
4252
|
+
# @return [String]
|
4253
|
+
attr_accessor :create_time
|
4254
|
+
|
4255
|
+
# Represents database access information, such as queries. A database may be a
|
4256
|
+
# sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
|
4257
|
+
# Spanner instances), or the database instance itself. Some database resources
|
4258
|
+
# might not have the [full resource name](https://google.aip.dev/122#full-
|
4259
|
+
# resource-names) populated because these resource types, such as Cloud SQL
|
4260
|
+
# databases, are not yet supported by Cloud Asset Inventory. In these cases only
|
4261
|
+
# the display name is provided.
|
4262
|
+
# Corresponds to the JSON property `database`
|
4263
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Database]
|
4264
|
+
attr_accessor :database
|
4265
|
+
|
4266
|
+
# Contains more details about the finding.
|
4267
|
+
# Corresponds to the JSON property `description`
|
4268
|
+
# @return [String]
|
4269
|
+
attr_accessor :description
|
4270
|
+
|
4271
|
+
# The time the finding was first detected. If an existing finding is updated,
|
4272
|
+
# then this is the time the update occurred. For example, if the finding
|
4273
|
+
# represents an open firewall, this property captures the time the detector
|
4274
|
+
# believes the firewall became open. The accuracy is determined by the detector.
|
4275
|
+
# If the finding is later resolved, then this time reflects when the finding was
|
4276
|
+
# resolved. This must not be set to a value greater than the current timestamp.
|
4277
|
+
# Corresponds to the JSON property `eventTime`
|
4278
|
+
# @return [String]
|
4279
|
+
attr_accessor :event_time
|
4280
|
+
|
4281
|
+
# Exfiltration represents a data exfiltration attempt from one or more sources
|
4282
|
+
# to one or more targets. The `sources` attribute lists the sources of the
|
4283
|
+
# exfiltrated data. The `targets` attribute lists the destinations the data was
|
4284
|
+
# copied to.
|
4285
|
+
# Corresponds to the JSON property `exfiltration`
|
4286
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Exfiltration]
|
4287
|
+
attr_accessor :exfiltration
|
4288
|
+
|
4289
|
+
# Output only. Third party SIEM/SOAR fields within SCC, contains external system
|
4290
|
+
# information and external system finding fields.
|
4291
|
+
# Corresponds to the JSON property `externalSystems`
|
4292
|
+
# @return [Hash<String,Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ExternalSystem>]
|
4293
|
+
attr_accessor :external_systems
|
4294
|
+
|
4295
|
+
# The URI that, if available, points to a web page outside of Security Command
|
4296
|
+
# Center where additional information about the finding can be found. This field
|
4297
|
+
# is guaranteed to be either empty or a well formed URL.
|
4298
|
+
# Corresponds to the JSON property `externalUri`
|
4299
|
+
# @return [String]
|
4300
|
+
attr_accessor :external_uri
|
4301
|
+
|
4302
|
+
# File associated with the finding.
|
4303
|
+
# Corresponds to the JSON property `files`
|
4304
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2File>]
|
4305
|
+
attr_accessor :files
|
4306
|
+
|
4307
|
+
# The class of the finding.
|
4308
|
+
# Corresponds to the JSON property `findingClass`
|
4309
|
+
# @return [String]
|
4310
|
+
attr_accessor :finding_class
|
4311
|
+
|
4312
|
+
# Represents IAM bindings associated with the finding.
|
4313
|
+
# Corresponds to the JSON property `iamBindings`
|
4314
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2IamBinding>]
|
4315
|
+
attr_accessor :iam_bindings
|
4316
|
+
|
4317
|
+
# Represents what's commonly known as an _indicator of compromise_ (IoC) in
|
4318
|
+
# computer forensics. This is an artifact observed on a network or in an
|
4319
|
+
# operating system that, with high confidence, indicates a computer intrusion.
|
4320
|
+
# For more information, see [Indicator of compromise](https://en.wikipedia.org/
|
4321
|
+
# wiki/Indicator_of_compromise).
|
4322
|
+
# Corresponds to the JSON property `indicator`
|
4323
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Indicator]
|
4324
|
+
attr_accessor :indicator
|
4325
|
+
|
4326
|
+
# Kernel mode rootkit signatures.
|
4327
|
+
# Corresponds to the JSON property `kernelRootkit`
|
4328
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2KernelRootkit]
|
4329
|
+
attr_accessor :kernel_rootkit
|
4330
|
+
|
4331
|
+
# Kubernetes-related attributes.
|
4332
|
+
# Corresponds to the JSON property `kubernetes`
|
4333
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Kubernetes]
|
4334
|
+
attr_accessor :kubernetes
|
4335
|
+
|
4336
|
+
# The load balancers associated with the finding.
|
4337
|
+
# Corresponds to the JSON property `loadBalancers`
|
4338
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2LoadBalancer>]
|
4339
|
+
attr_accessor :load_balancers
|
4340
|
+
|
4341
|
+
# Log entries that are relevant to the finding.
|
4342
|
+
# Corresponds to the JSON property `logEntries`
|
4343
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2LogEntry>]
|
4344
|
+
attr_accessor :log_entries
|
4345
|
+
|
4346
|
+
# MITRE ATT&CK tactics and techniques related to this finding. See: https://
|
4347
|
+
# attack.mitre.org
|
4348
|
+
# Corresponds to the JSON property `mitreAttack`
|
4349
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2MitreAttack]
|
4350
|
+
attr_accessor :mitre_attack
|
4351
|
+
|
4352
|
+
# Unique identifier of the module which generated the finding. Example: folders/
|
4353
|
+
# 598186756061/securityHealthAnalyticsSettings/customModules/56799441161885
|
4354
|
+
# Corresponds to the JSON property `moduleName`
|
4355
|
+
# @return [String]
|
4356
|
+
attr_accessor :module_name
|
4357
|
+
|
4358
|
+
# Indicates the mute state of a finding (either muted, unmuted or undefined).
|
4359
|
+
# Unlike other attributes of a finding, a finding provider shouldn't set the
|
4360
|
+
# value of mute.
|
4361
|
+
# Corresponds to the JSON property `mute`
|
4362
|
+
# @return [String]
|
4363
|
+
attr_accessor :mute
|
4364
|
+
|
4365
|
+
# Records additional information about the mute operation, for example, the [
|
4366
|
+
# mute configuration](https://cloud.google.com/security-command-center/docs/how-
|
4367
|
+
# to-mute-findings) that muted the finding and the user who muted the finding.
|
4368
|
+
# Corresponds to the JSON property `muteInitiator`
|
4369
|
+
# @return [String]
|
4370
|
+
attr_accessor :mute_initiator
|
4371
|
+
|
4372
|
+
# Output only. The most recent time this finding was muted or unmuted.
|
4373
|
+
# Corresponds to the JSON property `muteUpdateTime`
|
4374
|
+
# @return [String]
|
4375
|
+
attr_accessor :mute_update_time
|
4376
|
+
|
4377
|
+
# The [relative resource name](https://cloud.google.com/apis/design/
|
4378
|
+
# resource_names#relative_resource_name) of the finding. The following list
|
4379
|
+
# shows some examples: + `organizations/`organization_id`/sources/`source_id`/
|
4380
|
+
# findings/`finding_id`` + `organizations/`organization_id`/sources/`source_id`/
|
4381
|
+
# locations/`location_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`
|
4382
|
+
# source_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/
|
4383
|
+
# locations/`location_id`/findings/`finding_id`` + `projects/`project_id`/
|
4384
|
+
# sources/`source_id`/findings/`finding_id`` + `projects/`project_id`/sources/`
|
4385
|
+
# source_id`/locations/`location_id`/findings/`finding_id``
|
4386
|
+
# Corresponds to the JSON property `name`
|
4387
|
+
# @return [String]
|
4388
|
+
attr_accessor :name
|
4389
|
+
|
4390
|
+
# Steps to address the finding.
|
4391
|
+
# Corresponds to the JSON property `nextSteps`
|
4392
|
+
# @return [String]
|
4393
|
+
attr_accessor :next_steps
|
4394
|
+
|
4395
|
+
# Contains information about the org policies associated with the finding.
|
4396
|
+
# Corresponds to the JSON property `orgPolicies`
|
4397
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2OrgPolicy>]
|
4398
|
+
attr_accessor :org_policies
|
4399
|
+
|
4400
|
+
# The relative resource name of the source and location the finding belongs to.
|
4401
|
+
# See: https://cloud.google.com/apis/design/resource_names#
|
4402
|
+
# relative_resource_name This field is immutable after creation time. The
|
4403
|
+
# following list shows some examples: + `organizations/`organization_id`/sources/
|
4404
|
+
# `source_id`` + `folders/`folders_id`/sources/`source_id`` + `projects/`
|
4405
|
+
# projects_id`/sources/`source_id`` + `organizations/`organization_id`/sources/`
|
4406
|
+
# source_id`/locations/`location_id`` + `folders/`folders_id`/sources/`source_id`
|
4407
|
+
# /locations/`location_id`` + `projects/`projects_id`/sources/`source_id`/
|
4408
|
+
# locations/`location_id``
|
4409
|
+
# Corresponds to the JSON property `parent`
|
4410
|
+
# @return [String]
|
4411
|
+
attr_accessor :parent
|
4412
|
+
|
4413
|
+
# Output only. The human readable display name of the finding source such as "
|
4414
|
+
# Event Threat Detection" or "Security Health Analytics".
|
4415
|
+
# Corresponds to the JSON property `parentDisplayName`
|
4416
|
+
# @return [String]
|
4417
|
+
attr_accessor :parent_display_name
|
4418
|
+
|
4419
|
+
# Represents operating system processes associated with the Finding.
|
4420
|
+
# Corresponds to the JSON property `processes`
|
4421
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Process>]
|
4422
|
+
attr_accessor :processes
|
4423
|
+
|
4424
|
+
# Immutable. For findings on Google Cloud resources, the full resource name of
|
4425
|
+
# the Google Cloud resource this finding is for. See: https://cloud.google.com/
|
4426
|
+
# apis/design/resource_names#full_resource_name When the finding is for a non-
|
4427
|
+
# Google Cloud resource, the resourceName can be a customer or partner defined
|
4428
|
+
# string.
|
4429
|
+
# Corresponds to the JSON property `resourceName`
|
4430
|
+
# @return [String]
|
4431
|
+
attr_accessor :resource_name
|
4432
|
+
|
4433
|
+
# User specified security marks that are attached to the parent Security Command
|
4434
|
+
# Center resource. Security marks are scoped within a Security Command Center
|
4435
|
+
# organization -- they can be modified and viewed by all users who have proper
|
4436
|
+
# permissions on the organization.
|
4437
|
+
# Corresponds to the JSON property `securityMarks`
|
4438
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2SecurityMarks]
|
4439
|
+
attr_accessor :security_marks
|
4440
|
+
|
4441
|
+
# Represents a posture that is deployed on Google Cloud by the Security Command
|
4442
|
+
# Center Posture Management service. A posture contains one or more policy sets.
|
4443
|
+
# A policy set is a group of policies that enforce a set of security rules on
|
4444
|
+
# Google Cloud.
|
4445
|
+
# Corresponds to the JSON property `securityPosture`
|
4446
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2SecurityPosture]
|
4447
|
+
attr_accessor :security_posture
|
4448
|
+
|
4449
|
+
# The severity of the finding. This field is managed by the source that writes
|
4450
|
+
# the finding.
|
4451
|
+
# Corresponds to the JSON property `severity`
|
4452
|
+
# @return [String]
|
4453
|
+
attr_accessor :severity
|
4454
|
+
|
4455
|
+
# Source specific properties. These properties are managed by the source that
|
4456
|
+
# writes the finding. The key names in the source_properties map must be between
|
4457
|
+
# 1 and 255 characters, and must start with a letter and contain alphanumeric
|
4458
|
+
# characters or underscores only.
|
4459
|
+
# Corresponds to the JSON property `sourceProperties`
|
4460
|
+
# @return [Hash<String,Object>]
|
4461
|
+
attr_accessor :source_properties
|
4462
|
+
|
4463
|
+
# Output only. The state of the finding.
|
4464
|
+
# Corresponds to the JSON property `state`
|
4465
|
+
# @return [String]
|
4466
|
+
attr_accessor :state
|
4467
|
+
|
4468
|
+
# Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
|
4469
|
+
# Corresponds to the JSON property `vulnerability`
|
4470
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Vulnerability]
|
4471
|
+
attr_accessor :vulnerability
|
4472
|
+
|
4473
|
+
def initialize(**args)
|
4474
|
+
update!(**args)
|
4475
|
+
end
|
4476
|
+
|
4477
|
+
# Update properties of this object
|
4478
|
+
def update!(**args)
|
4479
|
+
@access = args[:access] if args.key?(:access)
|
4480
|
+
@attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
|
4481
|
+
@canonical_name = args[:canonical_name] if args.key?(:canonical_name)
|
4482
|
+
@category = args[:category] if args.key?(:category)
|
4483
|
+
@cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
|
4484
|
+
@cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
|
4485
|
+
@compliances = args[:compliances] if args.key?(:compliances)
|
4486
|
+
@connections = args[:connections] if args.key?(:connections)
|
4487
|
+
@contacts = args[:contacts] if args.key?(:contacts)
|
4488
|
+
@containers = args[:containers] if args.key?(:containers)
|
4489
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
4490
|
+
@database = args[:database] if args.key?(:database)
|
4491
|
+
@description = args[:description] if args.key?(:description)
|
4492
|
+
@event_time = args[:event_time] if args.key?(:event_time)
|
4493
|
+
@exfiltration = args[:exfiltration] if args.key?(:exfiltration)
|
4494
|
+
@external_systems = args[:external_systems] if args.key?(:external_systems)
|
4495
|
+
@external_uri = args[:external_uri] if args.key?(:external_uri)
|
4496
|
+
@files = args[:files] if args.key?(:files)
|
4497
|
+
@finding_class = args[:finding_class] if args.key?(:finding_class)
|
4498
|
+
@iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings)
|
4499
|
+
@indicator = args[:indicator] if args.key?(:indicator)
|
4500
|
+
@kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit)
|
4501
|
+
@kubernetes = args[:kubernetes] if args.key?(:kubernetes)
|
4502
|
+
@load_balancers = args[:load_balancers] if args.key?(:load_balancers)
|
4503
|
+
@log_entries = args[:log_entries] if args.key?(:log_entries)
|
4504
|
+
@mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
|
4505
|
+
@module_name = args[:module_name] if args.key?(:module_name)
|
4506
|
+
@mute = args[:mute] if args.key?(:mute)
|
4507
|
+
@mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
|
4508
|
+
@mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
|
4509
|
+
@name = args[:name] if args.key?(:name)
|
4510
|
+
@next_steps = args[:next_steps] if args.key?(:next_steps)
|
4511
|
+
@org_policies = args[:org_policies] if args.key?(:org_policies)
|
4512
|
+
@parent = args[:parent] if args.key?(:parent)
|
4513
|
+
@parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
|
4514
|
+
@processes = args[:processes] if args.key?(:processes)
|
4515
|
+
@resource_name = args[:resource_name] if args.key?(:resource_name)
|
4516
|
+
@security_marks = args[:security_marks] if args.key?(:security_marks)
|
4517
|
+
@security_posture = args[:security_posture] if args.key?(:security_posture)
|
4518
|
+
@severity = args[:severity] if args.key?(:severity)
|
4519
|
+
@source_properties = args[:source_properties] if args.key?(:source_properties)
|
4520
|
+
@state = args[:state] if args.key?(:state)
|
4521
|
+
@vulnerability = args[:vulnerability] if args.key?(:vulnerability)
|
4522
|
+
end
|
4523
|
+
end
|
4524
|
+
|
4525
|
+
# Represents a geographical location for a given access.
|
4526
|
+
class GoogleCloudSecuritycenterV2Geolocation
|
4527
|
+
include Google::Apis::Core::Hashable
|
4528
|
+
|
4529
|
+
# A CLDR.
|
4530
|
+
# Corresponds to the JSON property `regionCode`
|
4531
|
+
# @return [String]
|
4532
|
+
attr_accessor :region_code
|
4533
|
+
|
4534
|
+
def initialize(**args)
|
4535
|
+
update!(**args)
|
4536
|
+
end
|
4537
|
+
|
4538
|
+
# Update properties of this object
|
4539
|
+
def update!(**args)
|
4540
|
+
@region_code = args[:region_code] if args.key?(:region_code)
|
4541
|
+
end
|
4542
|
+
end
|
4543
|
+
|
4544
|
+
# Represents a particular IAM binding, which captures a member's role addition,
|
4545
|
+
# removal, or state.
|
4546
|
+
class GoogleCloudSecuritycenterV2IamBinding
|
4547
|
+
include Google::Apis::Core::Hashable
|
4548
|
+
|
4549
|
+
# The action that was performed on a Binding.
|
4550
|
+
# Corresponds to the JSON property `action`
|
4551
|
+
# @return [String]
|
4552
|
+
attr_accessor :action
|
4553
|
+
|
4554
|
+
# A single identity requesting access for a Cloud Platform resource, for example,
|
4555
|
+
# "foo@google.com".
|
4556
|
+
# Corresponds to the JSON property `member`
|
4557
|
+
# @return [String]
|
4558
|
+
attr_accessor :member
|
4559
|
+
|
4560
|
+
# Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
|
4561
|
+
# , or "roles/owner".
|
4562
|
+
# Corresponds to the JSON property `role`
|
4563
|
+
# @return [String]
|
4564
|
+
attr_accessor :role
|
4565
|
+
|
4566
|
+
def initialize(**args)
|
4567
|
+
update!(**args)
|
4568
|
+
end
|
4569
|
+
|
4570
|
+
# Update properties of this object
|
4571
|
+
def update!(**args)
|
4572
|
+
@action = args[:action] if args.key?(:action)
|
4573
|
+
@member = args[:member] if args.key?(:member)
|
4574
|
+
@role = args[:role] if args.key?(:role)
|
4575
|
+
end
|
4576
|
+
end
|
4577
|
+
|
4578
|
+
# Represents what's commonly known as an _indicator of compromise_ (IoC) in
|
4579
|
+
# computer forensics. This is an artifact observed on a network or in an
|
4580
|
+
# operating system that, with high confidence, indicates a computer intrusion.
|
4581
|
+
# For more information, see [Indicator of compromise](https://en.wikipedia.org/
|
4582
|
+
# wiki/Indicator_of_compromise).
|
4583
|
+
class GoogleCloudSecuritycenterV2Indicator
|
4584
|
+
include Google::Apis::Core::Hashable
|
4585
|
+
|
4586
|
+
# List of domains associated to the Finding.
|
4587
|
+
# Corresponds to the JSON property `domains`
|
4588
|
+
# @return [Array<String>]
|
4589
|
+
attr_accessor :domains
|
4590
|
+
|
4591
|
+
# The list of IP addresses that are associated with the finding.
|
4592
|
+
# Corresponds to the JSON property `ipAddresses`
|
4593
|
+
# @return [Array<String>]
|
4594
|
+
attr_accessor :ip_addresses
|
4595
|
+
|
4596
|
+
# The list of matched signatures indicating that the given process is present in
|
4597
|
+
# the environment.
|
4598
|
+
# Corresponds to the JSON property `signatures`
|
4599
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ProcessSignature>]
|
4600
|
+
attr_accessor :signatures
|
4601
|
+
|
4602
|
+
# The list of URIs associated to the Findings.
|
4603
|
+
# Corresponds to the JSON property `uris`
|
4604
|
+
# @return [Array<String>]
|
4605
|
+
attr_accessor :uris
|
4606
|
+
|
4607
|
+
def initialize(**args)
|
4608
|
+
update!(**args)
|
4609
|
+
end
|
4610
|
+
|
4611
|
+
# Update properties of this object
|
4612
|
+
def update!(**args)
|
4613
|
+
@domains = args[:domains] if args.key?(:domains)
|
4614
|
+
@ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
|
4615
|
+
@signatures = args[:signatures] if args.key?(:signatures)
|
4616
|
+
@uris = args[:uris] if args.key?(:uris)
|
4617
|
+
end
|
4618
|
+
end
|
4619
|
+
|
4620
|
+
# Kernel mode rootkit signatures.
|
4621
|
+
class GoogleCloudSecuritycenterV2KernelRootkit
|
4622
|
+
include Google::Apis::Core::Hashable
|
4623
|
+
|
4624
|
+
# Rootkit name, when available.
|
4625
|
+
# Corresponds to the JSON property `name`
|
4626
|
+
# @return [String]
|
4627
|
+
attr_accessor :name
|
4628
|
+
|
4629
|
+
# True if unexpected modifications of kernel code memory are present.
|
4630
|
+
# Corresponds to the JSON property `unexpectedCodeModification`
|
4631
|
+
# @return [Boolean]
|
4632
|
+
attr_accessor :unexpected_code_modification
|
4633
|
+
alias_method :unexpected_code_modification?, :unexpected_code_modification
|
4634
|
+
|
4635
|
+
# True if `ftrace` points are present with callbacks pointing to regions that
|
4636
|
+
# are not in the expected kernel or module code range.
|
4637
|
+
# Corresponds to the JSON property `unexpectedFtraceHandler`
|
4638
|
+
# @return [Boolean]
|
4639
|
+
attr_accessor :unexpected_ftrace_handler
|
4640
|
+
alias_method :unexpected_ftrace_handler?, :unexpected_ftrace_handler
|
4641
|
+
|
4642
|
+
# True if interrupt handlers that are are not in the expected kernel or module
|
4643
|
+
# code regions are present.
|
4644
|
+
# Corresponds to the JSON property `unexpectedInterruptHandler`
|
4645
|
+
# @return [Boolean]
|
4646
|
+
attr_accessor :unexpected_interrupt_handler
|
4647
|
+
alias_method :unexpected_interrupt_handler?, :unexpected_interrupt_handler
|
4648
|
+
|
4649
|
+
# True if kernel code pages that are not in the expected kernel or module code
|
4650
|
+
# regions are present.
|
4651
|
+
# Corresponds to the JSON property `unexpectedKernelCodePages`
|
4652
|
+
# @return [Boolean]
|
4653
|
+
attr_accessor :unexpected_kernel_code_pages
|
4654
|
+
alias_method :unexpected_kernel_code_pages?, :unexpected_kernel_code_pages
|
4655
|
+
|
4656
|
+
# True if `kprobe` points are present with callbacks pointing to regions that
|
4657
|
+
# are not in the expected kernel or module code range.
|
4658
|
+
# Corresponds to the JSON property `unexpectedKprobeHandler`
|
4659
|
+
# @return [Boolean]
|
4660
|
+
attr_accessor :unexpected_kprobe_handler
|
4661
|
+
alias_method :unexpected_kprobe_handler?, :unexpected_kprobe_handler
|
4662
|
+
|
4663
|
+
# True if unexpected processes in the scheduler run queue are present. Such
|
4664
|
+
# processes are in the run queue, but not in the process task list.
|
4665
|
+
# Corresponds to the JSON property `unexpectedProcessesInRunqueue`
|
4666
|
+
# @return [Boolean]
|
4667
|
+
attr_accessor :unexpected_processes_in_runqueue
|
4668
|
+
alias_method :unexpected_processes_in_runqueue?, :unexpected_processes_in_runqueue
|
4669
|
+
|
4670
|
+
# True if unexpected modifications of kernel read-only data memory are present.
|
4671
|
+
# Corresponds to the JSON property `unexpectedReadOnlyDataModification`
|
4672
|
+
# @return [Boolean]
|
4673
|
+
attr_accessor :unexpected_read_only_data_modification
|
4674
|
+
alias_method :unexpected_read_only_data_modification?, :unexpected_read_only_data_modification
|
4675
|
+
|
4676
|
+
# True if system call handlers that are are not in the expected kernel or module
|
4677
|
+
# code regions are present.
|
4678
|
+
# Corresponds to the JSON property `unexpectedSystemCallHandler`
|
4679
|
+
# @return [Boolean]
|
4680
|
+
attr_accessor :unexpected_system_call_handler
|
4681
|
+
alias_method :unexpected_system_call_handler?, :unexpected_system_call_handler
|
4682
|
+
|
4683
|
+
def initialize(**args)
|
4684
|
+
update!(**args)
|
4685
|
+
end
|
4686
|
+
|
4687
|
+
# Update properties of this object
|
4688
|
+
def update!(**args)
|
4689
|
+
@name = args[:name] if args.key?(:name)
|
4690
|
+
@unexpected_code_modification = args[:unexpected_code_modification] if args.key?(:unexpected_code_modification)
|
4691
|
+
@unexpected_ftrace_handler = args[:unexpected_ftrace_handler] if args.key?(:unexpected_ftrace_handler)
|
4692
|
+
@unexpected_interrupt_handler = args[:unexpected_interrupt_handler] if args.key?(:unexpected_interrupt_handler)
|
4693
|
+
@unexpected_kernel_code_pages = args[:unexpected_kernel_code_pages] if args.key?(:unexpected_kernel_code_pages)
|
4694
|
+
@unexpected_kprobe_handler = args[:unexpected_kprobe_handler] if args.key?(:unexpected_kprobe_handler)
|
4695
|
+
@unexpected_processes_in_runqueue = args[:unexpected_processes_in_runqueue] if args.key?(:unexpected_processes_in_runqueue)
|
4696
|
+
@unexpected_read_only_data_modification = args[:unexpected_read_only_data_modification] if args.key?(:unexpected_read_only_data_modification)
|
4697
|
+
@unexpected_system_call_handler = args[:unexpected_system_call_handler] if args.key?(:unexpected_system_call_handler)
|
4698
|
+
end
|
4699
|
+
end
|
4700
|
+
|
4701
|
+
# Kubernetes-related attributes.
|
4702
|
+
class GoogleCloudSecuritycenterV2Kubernetes
|
4703
|
+
include Google::Apis::Core::Hashable
|
4704
|
+
|
4705
|
+
# Provides information on any Kubernetes access reviews (privilege checks)
|
4706
|
+
# relevant to the finding.
|
4707
|
+
# Corresponds to the JSON property `accessReviews`
|
4708
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AccessReview>]
|
4709
|
+
attr_accessor :access_reviews
|
4710
|
+
|
4711
|
+
# Provides Kubernetes role binding information for findings that involve [
|
4712
|
+
# RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-
|
4713
|
+
# engine/docs/how-to/role-based-access-control).
|
4714
|
+
# Corresponds to the JSON property `bindings`
|
4715
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Binding>]
|
4716
|
+
attr_accessor :bindings
|
4717
|
+
|
4718
|
+
# GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-
|
4719
|
+
# pools) associated with the finding. This field contains node pool information
|
4720
|
+
# for each node, when it is available.
|
4721
|
+
# Corresponds to the JSON property `nodePools`
|
4722
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2NodePool>]
|
4723
|
+
attr_accessor :node_pools
|
4724
|
+
|
4725
|
+
# Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/
|
4726
|
+
# concepts/cluster-architecture#nodes) information.
|
4727
|
+
# Corresponds to the JSON property `nodes`
|
4728
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Node>]
|
4729
|
+
attr_accessor :nodes
|
4730
|
+
|
4731
|
+
# Kubernetes objects related to the finding.
|
4732
|
+
# Corresponds to the JSON property `objects`
|
4733
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Object>]
|
4734
|
+
attr_accessor :objects
|
4735
|
+
|
4736
|
+
# Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod)
|
4737
|
+
# associated with the finding. This field contains Pod records for each
|
4738
|
+
# container that is owned by a Pod.
|
4739
|
+
# Corresponds to the JSON property `pods`
|
4740
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Pod>]
|
4741
|
+
attr_accessor :pods
|
4742
|
+
|
4743
|
+
# Provides Kubernetes role information for findings that involve [Roles or
|
4744
|
+
# ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-
|
4745
|
+
# based-access-control).
|
4746
|
+
# Corresponds to the JSON property `roles`
|
4747
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Role>]
|
4748
|
+
attr_accessor :roles
|
4749
|
+
|
4750
|
+
def initialize(**args)
|
4751
|
+
update!(**args)
|
4752
|
+
end
|
4753
|
+
|
4754
|
+
# Update properties of this object
|
4755
|
+
def update!(**args)
|
4756
|
+
@access_reviews = args[:access_reviews] if args.key?(:access_reviews)
|
4757
|
+
@bindings = args[:bindings] if args.key?(:bindings)
|
4758
|
+
@node_pools = args[:node_pools] if args.key?(:node_pools)
|
4759
|
+
@nodes = args[:nodes] if args.key?(:nodes)
|
4760
|
+
@objects = args[:objects] if args.key?(:objects)
|
4761
|
+
@pods = args[:pods] if args.key?(:pods)
|
4762
|
+
@roles = args[:roles] if args.key?(:roles)
|
4763
|
+
end
|
4764
|
+
end
|
4765
|
+
|
4766
|
+
# Represents a generic name-value label. A label has separate name and value
|
4767
|
+
# fields to support filtering with the `contains()` function. For more
|
4768
|
+
# information, see [Filtering on array-type fields](https://cloud.google.com/
|
4769
|
+
# security-command-center/docs/how-to-api-list-findings#array-contains-filtering)
|
4770
|
+
# .
|
4771
|
+
class GoogleCloudSecuritycenterV2Label
|
4772
|
+
include Google::Apis::Core::Hashable
|
4773
|
+
|
4774
|
+
# Name of the label.
|
4775
|
+
# Corresponds to the JSON property `name`
|
4776
|
+
# @return [String]
|
4777
|
+
attr_accessor :name
|
4778
|
+
|
4779
|
+
# Value that corresponds to the label's name.
|
4780
|
+
# Corresponds to the JSON property `value`
|
4781
|
+
# @return [String]
|
4782
|
+
attr_accessor :value
|
4783
|
+
|
4784
|
+
def initialize(**args)
|
4785
|
+
update!(**args)
|
4786
|
+
end
|
4787
|
+
|
4788
|
+
# Update properties of this object
|
4789
|
+
def update!(**args)
|
4790
|
+
@name = args[:name] if args.key?(:name)
|
4791
|
+
@value = args[:value] if args.key?(:value)
|
4792
|
+
end
|
4793
|
+
end
|
4794
|
+
|
4795
|
+
# Contains information related to the load balancer associated with the finding.
|
4796
|
+
class GoogleCloudSecuritycenterV2LoadBalancer
|
4797
|
+
include Google::Apis::Core::Hashable
|
4798
|
+
|
4799
|
+
# The name of the load balancer associated with the finding.
|
4800
|
+
# Corresponds to the JSON property `name`
|
4801
|
+
# @return [String]
|
4802
|
+
attr_accessor :name
|
4803
|
+
|
4804
|
+
def initialize(**args)
|
4805
|
+
update!(**args)
|
4806
|
+
end
|
4807
|
+
|
4808
|
+
# Update properties of this object
|
4809
|
+
def update!(**args)
|
4810
|
+
@name = args[:name] if args.key?(:name)
|
4811
|
+
end
|
4812
|
+
end
|
4813
|
+
|
4814
|
+
# An individual entry in a log.
|
4815
|
+
class GoogleCloudSecuritycenterV2LogEntry
|
4816
|
+
include Google::Apis::Core::Hashable
|
4817
|
+
|
4818
|
+
# Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/
|
4819
|
+
# logging/docs/reference/v2/rest/v2/LogEntry)
|
4820
|
+
# Corresponds to the JSON property `cloudLoggingEntry`
|
4821
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2CloudLoggingEntry]
|
4822
|
+
attr_accessor :cloud_logging_entry
|
4823
|
+
|
4824
|
+
def initialize(**args)
|
4825
|
+
update!(**args)
|
4826
|
+
end
|
4827
|
+
|
4828
|
+
# Update properties of this object
|
4829
|
+
def update!(**args)
|
4830
|
+
@cloud_logging_entry = args[:cloud_logging_entry] if args.key?(:cloud_logging_entry)
|
4831
|
+
end
|
4832
|
+
end
|
4833
|
+
|
4834
|
+
# A signature corresponding to memory page hashes.
|
4835
|
+
class GoogleCloudSecuritycenterV2MemoryHashSignature
|
4836
|
+
include Google::Apis::Core::Hashable
|
4837
|
+
|
4838
|
+
# The binary family.
|
4839
|
+
# Corresponds to the JSON property `binaryFamily`
|
4840
|
+
# @return [String]
|
4841
|
+
attr_accessor :binary_family
|
4842
|
+
|
4843
|
+
# The list of memory hash detections contributing to the binary family match.
|
4844
|
+
# Corresponds to the JSON property `detections`
|
4845
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Detection>]
|
4846
|
+
attr_accessor :detections
|
4847
|
+
|
4848
|
+
def initialize(**args)
|
4849
|
+
update!(**args)
|
4850
|
+
end
|
4851
|
+
|
4852
|
+
# Update properties of this object
|
4853
|
+
def update!(**args)
|
4854
|
+
@binary_family = args[:binary_family] if args.key?(:binary_family)
|
4855
|
+
@detections = args[:detections] if args.key?(:detections)
|
4856
|
+
end
|
4857
|
+
end
|
4858
|
+
|
4859
|
+
# MITRE ATT&CK tactics and techniques related to this finding. See: https://
|
4860
|
+
# attack.mitre.org
|
4861
|
+
class GoogleCloudSecuritycenterV2MitreAttack
|
4862
|
+
include Google::Apis::Core::Hashable
|
4863
|
+
|
4864
|
+
# Additional MITRE ATT&CK tactics related to this finding, if any.
|
4865
|
+
# Corresponds to the JSON property `additionalTactics`
|
4866
|
+
# @return [Array<String>]
|
4867
|
+
attr_accessor :additional_tactics
|
4868
|
+
|
4869
|
+
# Additional MITRE ATT&CK techniques related to this finding, if any, along with
|
4870
|
+
# any of their respective parent techniques.
|
4871
|
+
# Corresponds to the JSON property `additionalTechniques`
|
4872
|
+
# @return [Array<String>]
|
4873
|
+
attr_accessor :additional_techniques
|
4874
|
+
|
4875
|
+
# The MITRE ATT&CK tactic most closely represented by this finding, if any.
|
4876
|
+
# Corresponds to the JSON property `primaryTactic`
|
4877
|
+
# @return [String]
|
4878
|
+
attr_accessor :primary_tactic
|
4879
|
+
|
4880
|
+
# The MITRE ATT&CK technique most closely represented by this finding, if any.
|
4881
|
+
# primary_techniques is a repeated field because there are multiple levels of
|
4882
|
+
# MITRE ATT&CK techniques. If the technique most closely represented by this
|
4883
|
+
# finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique
|
4884
|
+
# and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `
|
4885
|
+
# ACTIVE_SCANNING`).
|
4886
|
+
# Corresponds to the JSON property `primaryTechniques`
|
4887
|
+
# @return [Array<String>]
|
4888
|
+
attr_accessor :primary_techniques
|
4889
|
+
|
4890
|
+
# The MITRE ATT&CK version referenced by the above fields. E.g. "8".
|
4891
|
+
# Corresponds to the JSON property `version`
|
4892
|
+
# @return [String]
|
4893
|
+
attr_accessor :version
|
4894
|
+
|
4895
|
+
def initialize(**args)
|
4896
|
+
update!(**args)
|
4897
|
+
end
|
4898
|
+
|
4899
|
+
# Update properties of this object
|
4900
|
+
def update!(**args)
|
4901
|
+
@additional_tactics = args[:additional_tactics] if args.key?(:additional_tactics)
|
4902
|
+
@additional_techniques = args[:additional_techniques] if args.key?(:additional_techniques)
|
4903
|
+
@primary_tactic = args[:primary_tactic] if args.key?(:primary_tactic)
|
4904
|
+
@primary_techniques = args[:primary_techniques] if args.key?(:primary_techniques)
|
4905
|
+
@version = args[:version] if args.key?(:version)
|
4906
|
+
end
|
4907
|
+
end
|
4908
|
+
|
4909
|
+
# A mute config is a Cloud SCC resource that contains the configuration to mute
|
4910
|
+
# create/update events of findings.
|
4911
|
+
class GoogleCloudSecuritycenterV2MuteConfig
|
4912
|
+
include Google::Apis::Core::Hashable
|
4913
|
+
|
4914
|
+
# Output only. The time at which the mute config was created. This field is set
|
4915
|
+
# by the server and will be ignored if provided on config creation.
|
4916
|
+
# Corresponds to the JSON property `createTime`
|
4917
|
+
# @return [String]
|
4918
|
+
attr_accessor :create_time
|
4919
|
+
|
4920
|
+
# A description of the mute config.
|
4921
|
+
# Corresponds to the JSON property `description`
|
4922
|
+
# @return [String]
|
4923
|
+
attr_accessor :description
|
4924
|
+
|
4925
|
+
# Required. An expression that defines the filter to apply across create/update
|
4926
|
+
# events of findings. While creating a filter string, be mindful of the scope in
|
4927
|
+
# which the mute configuration is being created. E.g., If a filter contains
|
4928
|
+
# project = X but is created under the project = Y scope, it might not match any
|
4929
|
+
# findings. The following field and operator combinations are supported: *
|
4930
|
+
# severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.
|
4931
|
+
# project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.
|
4932
|
+
# folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.
|
4933
|
+
# parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `
|
4934
|
+
# :` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`
|
4935
|
+
# Corresponds to the JSON property `filter`
|
4936
|
+
# @return [String]
|
4937
|
+
attr_accessor :filter
|
4938
|
+
|
4939
|
+
# Output only. Email address of the user who last edited the mute config. This
|
4940
|
+
# field is set by the server and will be ignored if provided on config creation
|
4941
|
+
# or update.
|
4942
|
+
# Corresponds to the JSON property `mostRecentEditor`
|
4943
|
+
# @return [String]
|
4944
|
+
attr_accessor :most_recent_editor
|
4945
|
+
|
4946
|
+
# This field will be ignored if provided on config creation. The following list
|
4947
|
+
# shows some examples of the format: + `organizations/`organization`/muteConfigs/
|
4948
|
+
# `mute_config`` + `organizations/`organization`locations/`location`//
|
4949
|
+
# muteConfigs/`mute_config`` + `folders/`folder`/muteConfigs/`mute_config`` + `
|
4950
|
+
# folders/`folder`/locations/`location`/muteConfigs/`mute_config`` + `projects/`
|
4951
|
+
# project`/muteConfigs/`mute_config`` + `projects/`project`/locations/`location`/
|
4952
|
+
# muteConfigs/`mute_config``
|
4953
|
+
# Corresponds to the JSON property `name`
|
4954
|
+
# @return [String]
|
4955
|
+
attr_accessor :name
|
4956
|
+
|
4957
|
+
# Output only. The most recent time at which the mute config was updated. This
|
4958
|
+
# field is set by the server and will be ignored if provided on config creation
|
4959
|
+
# or update.
|
4960
|
+
# Corresponds to the JSON property `updateTime`
|
4961
|
+
# @return [String]
|
4962
|
+
attr_accessor :update_time
|
4963
|
+
|
4964
|
+
def initialize(**args)
|
4965
|
+
update!(**args)
|
4966
|
+
end
|
4967
|
+
|
4968
|
+
# Update properties of this object
|
4969
|
+
def update!(**args)
|
4970
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
4971
|
+
@description = args[:description] if args.key?(:description)
|
4972
|
+
@filter = args[:filter] if args.key?(:filter)
|
4973
|
+
@most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
|
4974
|
+
@name = args[:name] if args.key?(:name)
|
4975
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
4976
|
+
end
|
4977
|
+
end
|
4978
|
+
|
4979
|
+
# Kubernetes nodes associated with the finding.
|
4980
|
+
class GoogleCloudSecuritycenterV2Node
|
4981
|
+
include Google::Apis::Core::Hashable
|
4982
|
+
|
4983
|
+
# [Full resource name](https://google.aip.dev/122#full-resource-names) of the
|
4984
|
+
# Compute Engine VM running the cluster node.
|
4985
|
+
# Corresponds to the JSON property `name`
|
4986
|
+
# @return [String]
|
4987
|
+
attr_accessor :name
|
4988
|
+
|
4989
|
+
def initialize(**args)
|
4990
|
+
update!(**args)
|
4991
|
+
end
|
4992
|
+
|
4993
|
+
# Update properties of this object
|
4994
|
+
def update!(**args)
|
4995
|
+
@name = args[:name] if args.key?(:name)
|
4996
|
+
end
|
4997
|
+
end
|
4998
|
+
|
4999
|
+
# Provides GKE node pool information.
|
5000
|
+
class GoogleCloudSecuritycenterV2NodePool
|
5001
|
+
include Google::Apis::Core::Hashable
|
5002
|
+
|
5003
|
+
# Kubernetes node pool name.
|
5004
|
+
# Corresponds to the JSON property `name`
|
5005
|
+
# @return [String]
|
5006
|
+
attr_accessor :name
|
5007
|
+
|
5008
|
+
# Nodes associated with the finding.
|
5009
|
+
# Corresponds to the JSON property `nodes`
|
5010
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Node>]
|
5011
|
+
attr_accessor :nodes
|
5012
|
+
|
5013
|
+
def initialize(**args)
|
5014
|
+
update!(**args)
|
5015
|
+
end
|
5016
|
+
|
5017
|
+
# Update properties of this object
|
5018
|
+
def update!(**args)
|
5019
|
+
@name = args[:name] if args.key?(:name)
|
5020
|
+
@nodes = args[:nodes] if args.key?(:nodes)
|
5021
|
+
end
|
5022
|
+
end
|
5023
|
+
|
5024
|
+
# Cloud SCC's Notification
|
5025
|
+
class GoogleCloudSecuritycenterV2NotificationMessage
|
5026
|
+
include Google::Apis::Core::Hashable
|
5027
|
+
|
5028
|
+
# Security Command Center finding. A finding is a record of assessment data like
|
5029
|
+
# security, risk, health, or privacy, that is ingested into Security Command
|
5030
|
+
# Center for presentation, notification, analysis, policy testing, and
|
5031
|
+
# enforcement. For example, a cross-site scripting (XSS) vulnerability in an App
|
5032
|
+
# Engine application is a finding.
|
5033
|
+
# Corresponds to the JSON property `finding`
|
5034
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Finding]
|
5035
|
+
attr_accessor :finding
|
5036
|
+
|
5037
|
+
# Name of the notification config that generated current notification.
|
5038
|
+
# Corresponds to the JSON property `notificationConfigName`
|
5039
|
+
# @return [String]
|
5040
|
+
attr_accessor :notification_config_name
|
5041
|
+
|
5042
|
+
# Information related to the Google Cloud resource.
|
5043
|
+
# Corresponds to the JSON property `resource`
|
5044
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Resource]
|
5045
|
+
attr_accessor :resource
|
5046
|
+
|
5047
|
+
def initialize(**args)
|
5048
|
+
update!(**args)
|
5049
|
+
end
|
5050
|
+
|
5051
|
+
# Update properties of this object
|
5052
|
+
def update!(**args)
|
5053
|
+
@finding = args[:finding] if args.key?(:finding)
|
5054
|
+
@notification_config_name = args[:notification_config_name] if args.key?(:notification_config_name)
|
5055
|
+
@resource = args[:resource] if args.key?(:resource)
|
5056
|
+
end
|
5057
|
+
end
|
5058
|
+
|
5059
|
+
# Kubernetes object related to the finding, uniquely identified by GKNN. Used if
|
5060
|
+
# the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.
|
5061
|
+
class GoogleCloudSecuritycenterV2Object
|
5062
|
+
include Google::Apis::Core::Hashable
|
5063
|
+
|
5064
|
+
# Pod containers associated with this finding, if any.
|
5065
|
+
# Corresponds to the JSON property `containers`
|
5066
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Container>]
|
5067
|
+
attr_accessor :containers
|
5068
|
+
|
5069
|
+
# Kubernetes object group, such as "policy.k8s.io/v1".
|
5070
|
+
# Corresponds to the JSON property `group`
|
5071
|
+
# @return [String]
|
5072
|
+
attr_accessor :group
|
5073
|
+
|
5074
|
+
# Kubernetes object kind, such as "Namespace".
|
5075
|
+
# Corresponds to the JSON property `kind`
|
5076
|
+
# @return [String]
|
5077
|
+
attr_accessor :kind
|
5078
|
+
|
5079
|
+
# Kubernetes object name. For details see https://kubernetes.io/docs/concepts/
|
5080
|
+
# overview/working-with-objects/names/.
|
5081
|
+
# Corresponds to the JSON property `name`
|
5082
|
+
# @return [String]
|
5083
|
+
attr_accessor :name
|
5084
|
+
|
5085
|
+
# Kubernetes object namespace. Must be a valid DNS label. Named "ns" to avoid
|
5086
|
+
# collision with C++ namespace keyword. For details see https://kubernetes.io/
|
5087
|
+
# docs/tasks/administer-cluster/namespaces/.
|
5088
|
+
# Corresponds to the JSON property `ns`
|
5089
|
+
# @return [String]
|
5090
|
+
attr_accessor :ns
|
5091
|
+
|
5092
|
+
def initialize(**args)
|
5093
|
+
update!(**args)
|
5094
|
+
end
|
5095
|
+
|
5096
|
+
# Update properties of this object
|
5097
|
+
def update!(**args)
|
5098
|
+
@containers = args[:containers] if args.key?(:containers)
|
5099
|
+
@group = args[:group] if args.key?(:group)
|
5100
|
+
@kind = args[:kind] if args.key?(:kind)
|
5101
|
+
@name = args[:name] if args.key?(:name)
|
5102
|
+
@ns = args[:ns] if args.key?(:ns)
|
5103
|
+
end
|
5104
|
+
end
|
5105
|
+
|
5106
|
+
# Contains information about the org policies associated with the finding.
|
5107
|
+
class GoogleCloudSecuritycenterV2OrgPolicy
|
5108
|
+
include Google::Apis::Core::Hashable
|
5109
|
+
|
5110
|
+
# The resource name of the org policy. Example: "organizations/`organization_id`/
|
5111
|
+
# policies/`constraint_name`"
|
5112
|
+
# Corresponds to the JSON property `name`
|
5113
|
+
# @return [String]
|
5114
|
+
attr_accessor :name
|
5115
|
+
|
5116
|
+
def initialize(**args)
|
5117
|
+
update!(**args)
|
5118
|
+
end
|
5119
|
+
|
5120
|
+
# Update properties of this object
|
5121
|
+
def update!(**args)
|
5122
|
+
@name = args[:name] if args.key?(:name)
|
5123
|
+
end
|
5124
|
+
end
|
5125
|
+
|
5126
|
+
# A Kubernetes Pod.
|
5127
|
+
class GoogleCloudSecuritycenterV2Pod
|
5128
|
+
include Google::Apis::Core::Hashable
|
5129
|
+
|
5130
|
+
# Pod containers associated with this finding, if any.
|
5131
|
+
# Corresponds to the JSON property `containers`
|
5132
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Container>]
|
5133
|
+
attr_accessor :containers
|
5134
|
+
|
5135
|
+
# Pod labels. For Kubernetes containers, these are applied to the container.
|
5136
|
+
# Corresponds to the JSON property `labels`
|
5137
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Label>]
|
5138
|
+
attr_accessor :labels
|
5139
|
+
|
5140
|
+
# Kubernetes Pod name.
|
5141
|
+
# Corresponds to the JSON property `name`
|
5142
|
+
# @return [String]
|
5143
|
+
attr_accessor :name
|
5144
|
+
|
5145
|
+
# Kubernetes Pod namespace.
|
5146
|
+
# Corresponds to the JSON property `ns`
|
5147
|
+
# @return [String]
|
5148
|
+
attr_accessor :ns
|
5149
|
+
|
5150
|
+
def initialize(**args)
|
5151
|
+
update!(**args)
|
5152
|
+
end
|
5153
|
+
|
5154
|
+
# Update properties of this object
|
5155
|
+
def update!(**args)
|
5156
|
+
@containers = args[:containers] if args.key?(:containers)
|
5157
|
+
@labels = args[:labels] if args.key?(:labels)
|
5158
|
+
@name = args[:name] if args.key?(:name)
|
5159
|
+
@ns = args[:ns] if args.key?(:ns)
|
5160
|
+
end
|
5161
|
+
end
|
5162
|
+
|
5163
|
+
# Represents an operating system process.
|
5164
|
+
class GoogleCloudSecuritycenterV2Process
|
5165
|
+
include Google::Apis::Core::Hashable
|
5166
|
+
|
5167
|
+
# Process arguments as JSON encoded strings.
|
5168
|
+
# Corresponds to the JSON property `args`
|
5169
|
+
# @return [Array<String>]
|
5170
|
+
attr_accessor :args
|
5171
|
+
|
5172
|
+
# True if `args` is incomplete.
|
5173
|
+
# Corresponds to the JSON property `argumentsTruncated`
|
5174
|
+
# @return [Boolean]
|
5175
|
+
attr_accessor :arguments_truncated
|
5176
|
+
alias_method :arguments_truncated?, :arguments_truncated
|
5177
|
+
|
5178
|
+
# File information about the related binary/library used by an executable, or
|
5179
|
+
# the script used by a script interpreter
|
5180
|
+
# Corresponds to the JSON property `binary`
|
5181
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2File]
|
5182
|
+
attr_accessor :binary
|
5183
|
+
|
5184
|
+
# Process environment variables.
|
5185
|
+
# Corresponds to the JSON property `envVariables`
|
5186
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2EnvironmentVariable>]
|
5187
|
+
attr_accessor :env_variables
|
5188
|
+
|
5189
|
+
# True if `env_variables` is incomplete.
|
5190
|
+
# Corresponds to the JSON property `envVariablesTruncated`
|
5191
|
+
# @return [Boolean]
|
5192
|
+
attr_accessor :env_variables_truncated
|
5193
|
+
alias_method :env_variables_truncated?, :env_variables_truncated
|
5194
|
+
|
5195
|
+
# File information for libraries loaded by the process.
|
5196
|
+
# Corresponds to the JSON property `libraries`
|
5197
|
+
# @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2File>]
|
5198
|
+
attr_accessor :libraries
|
5199
|
+
|
5200
|
+
# The process name, as displayed in utilities like `top` and `ps`. This name can
|
5201
|
+
# be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.
|
5202
|
+
# Corresponds to the JSON property `name`
|
5203
|
+
# @return [String]
|
5204
|
+
attr_accessor :name
|
5205
|
+
|
5206
|
+
# The parent process ID.
|
5207
|
+
# Corresponds to the JSON property `parentPid`
|
5208
|
+
# @return [Fixnum]
|
5209
|
+
attr_accessor :parent_pid
|
5210
|
+
|
5211
|
+
# The process ID.
|
5212
|
+
# Corresponds to the JSON property `pid`
|
5213
|
+
# @return [Fixnum]
|
5214
|
+
attr_accessor :pid
|
5215
|
+
|
5216
|
+
# File information about the related binary/library used by an executable, or
|
5217
|
+
# the script used by a script interpreter
|
5218
|
+
# Corresponds to the JSON property `script`
|
5219
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2File]
|
5220
|
+
attr_accessor :script
|
5221
|
+
|
5222
|
+
def initialize(**args)
|
5223
|
+
update!(**args)
|
5224
|
+
end
|
5225
|
+
|
5226
|
+
# Update properties of this object
|
5227
|
+
def update!(**args)
|
5228
|
+
@args = args[:args] if args.key?(:args)
|
5229
|
+
@arguments_truncated = args[:arguments_truncated] if args.key?(:arguments_truncated)
|
5230
|
+
@binary = args[:binary] if args.key?(:binary)
|
5231
|
+
@env_variables = args[:env_variables] if args.key?(:env_variables)
|
5232
|
+
@env_variables_truncated = args[:env_variables_truncated] if args.key?(:env_variables_truncated)
|
5233
|
+
@libraries = args[:libraries] if args.key?(:libraries)
|
5234
|
+
@name = args[:name] if args.key?(:name)
|
5235
|
+
@parent_pid = args[:parent_pid] if args.key?(:parent_pid)
|
5236
|
+
@pid = args[:pid] if args.key?(:pid)
|
5237
|
+
@script = args[:script] if args.key?(:script)
|
5238
|
+
end
|
5239
|
+
end
|
5240
|
+
|
5241
|
+
# Indicates what signature matched this process.
|
5242
|
+
class GoogleCloudSecuritycenterV2ProcessSignature
|
5243
|
+
include Google::Apis::Core::Hashable
|
5244
|
+
|
5245
|
+
# A signature corresponding to memory page hashes.
|
5246
|
+
# Corresponds to the JSON property `memoryHashSignature`
|
5247
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2MemoryHashSignature]
|
5248
|
+
attr_accessor :memory_hash_signature
|
5249
|
+
|
5250
|
+
# A signature corresponding to a YARA rule.
|
5251
|
+
# Corresponds to the JSON property `yaraRuleSignature`
|
5252
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2YaraRuleSignature]
|
5253
|
+
attr_accessor :yara_rule_signature
|
5254
|
+
|
5255
|
+
def initialize(**args)
|
5256
|
+
update!(**args)
|
5257
|
+
end
|
5258
|
+
|
5259
|
+
# Update properties of this object
|
5260
|
+
def update!(**args)
|
5261
|
+
@memory_hash_signature = args[:memory_hash_signature] if args.key?(:memory_hash_signature)
|
5262
|
+
@yara_rule_signature = args[:yara_rule_signature] if args.key?(:yara_rule_signature)
|
5263
|
+
end
|
5264
|
+
end
|
5265
|
+
|
5266
|
+
# Additional Links
|
5267
|
+
class GoogleCloudSecuritycenterV2Reference
|
5268
|
+
include Google::Apis::Core::Hashable
|
5269
|
+
|
5270
|
+
# Source of the reference e.g. NVD
|
5271
|
+
# Corresponds to the JSON property `source`
|
5272
|
+
# @return [String]
|
5273
|
+
attr_accessor :source
|
5274
|
+
|
5275
|
+
# Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?
|
5276
|
+
# name=CVE-2021-34527.
|
5277
|
+
# Corresponds to the JSON property `uri`
|
5278
|
+
# @return [String]
|
5279
|
+
attr_accessor :uri
|
5280
|
+
|
5281
|
+
def initialize(**args)
|
5282
|
+
update!(**args)
|
5283
|
+
end
|
5284
|
+
|
5285
|
+
# Update properties of this object
|
5286
|
+
def update!(**args)
|
5287
|
+
@source = args[:source] if args.key?(:source)
|
5288
|
+
@uri = args[:uri] if args.key?(:uri)
|
5289
|
+
end
|
5290
|
+
end
|
5291
|
+
|
5292
|
+
# Information related to the Google Cloud resource.
|
5293
|
+
class GoogleCloudSecuritycenterV2Resource
|
5294
|
+
include Google::Apis::Core::Hashable
|
5295
|
+
|
5296
|
+
# The human readable name of the resource.
|
5297
|
+
# Corresponds to the JSON property `displayName`
|
5298
|
+
# @return [String]
|
5299
|
+
attr_accessor :display_name
|
5300
|
+
|
5301
|
+
# The full resource name of the resource. See: https://cloud.google.com/apis/
|
5302
|
+
# design/resource_names#full_resource_name
|
5303
|
+
# Corresponds to the JSON property `name`
|
5304
|
+
# @return [String]
|
5305
|
+
attr_accessor :name
|
5306
|
+
|
5307
|
+
# The full resource type of the resource.
|
5308
|
+
# Corresponds to the JSON property `type`
|
5309
|
+
# @return [String]
|
5310
|
+
attr_accessor :type
|
5311
|
+
|
5312
|
+
def initialize(**args)
|
5313
|
+
update!(**args)
|
5314
|
+
end
|
5315
|
+
|
5316
|
+
# Update properties of this object
|
5317
|
+
def update!(**args)
|
5318
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
5319
|
+
@name = args[:name] if args.key?(:name)
|
5320
|
+
@type = args[:type] if args.key?(:type)
|
5321
|
+
end
|
5322
|
+
end
|
5323
|
+
|
5324
|
+
# A resource value config (RVC) is a mapping configuration of user's resources
|
5325
|
+
# to resource values. Used in Attack path simulations.
|
5326
|
+
class GoogleCloudSecuritycenterV2ResourceValueConfig
|
5327
|
+
include Google::Apis::Core::Hashable
|
5328
|
+
|
5329
|
+
# Output only. Timestamp this resource value config was created.
|
5330
|
+
# Corresponds to the JSON property `createTime`
|
5331
|
+
# @return [String]
|
5332
|
+
attr_accessor :create_time
|
5333
|
+
|
5334
|
+
# Description of the resource value config.
|
5335
|
+
# Corresponds to the JSON property `description`
|
5336
|
+
# @return [String]
|
5337
|
+
attr_accessor :description
|
5338
|
+
|
5339
|
+
# Name for the resource value config
|
5340
|
+
# Corresponds to the JSON property `name`
|
5341
|
+
# @return [String]
|
5342
|
+
attr_accessor :name
|
5343
|
+
|
5344
|
+
# List of resource labels to search for, evaluated with AND. E.g. "
|
5345
|
+
# resource_labels_selector": `"key": "value", "env": "prod"` will match
|
5346
|
+
# resources with labels "key": "value" AND "env": "prod" https://cloud.google.
|
5347
|
+
# com/resource-manager/docs/creating-managing-labels
|
5348
|
+
# Corresponds to the JSON property `resourceLabelsSelector`
|
5349
|
+
# @return [Hash<String,String>]
|
5350
|
+
attr_accessor :resource_labels_selector
|
5351
|
+
|
5352
|
+
# Apply resource_value only to resources that match resource_type. resource_type
|
5353
|
+
# will be checked with "AND" of other resources. E.g. "storage.googleapis.com/
|
5354
|
+
# Bucket" with resource_value "HIGH" will apply "HIGH" value only to "storage.
|
5355
|
+
# googleapis.com/Bucket" resources.
|
5356
|
+
# Corresponds to the JSON property `resourceType`
|
5357
|
+
# @return [String]
|
5358
|
+
attr_accessor :resource_type
|
5359
|
+
|
5360
|
+
# Required. Resource value level this expression represents
|
5361
|
+
# Corresponds to the JSON property `resourceValue`
|
5362
|
+
# @return [String]
|
5363
|
+
attr_accessor :resource_value
|
5364
|
+
|
5365
|
+
# Project or folder to scope this config to. For example, "project/456" would
|
5366
|
+
# apply this config only to resources in "project/456" scope will be checked
|
5367
|
+
# with "AND" of other resources.
|
5368
|
+
# Corresponds to the JSON property `scope`
|
5369
|
+
# @return [String]
|
5370
|
+
attr_accessor :scope
|
5371
|
+
|
5372
|
+
# Required. Tag values combined with AND to check against. Values in the form "
|
5373
|
+
# tagValues/123" E.g. [ "tagValues/123", "tagValues/456", "tagValues/789" ]
|
5374
|
+
# https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
|
5375
|
+
# Corresponds to the JSON property `tagValues`
|
5376
|
+
# @return [Array<String>]
|
5377
|
+
attr_accessor :tag_values
|
5378
|
+
|
5379
|
+
# Output only. Timestamp this resource value config was last updated.
|
5380
|
+
# Corresponds to the JSON property `updateTime`
|
5381
|
+
# @return [String]
|
5382
|
+
attr_accessor :update_time
|
5383
|
+
|
5384
|
+
def initialize(**args)
|
5385
|
+
update!(**args)
|
5386
|
+
end
|
5387
|
+
|
5388
|
+
# Update properties of this object
|
5389
|
+
def update!(**args)
|
5390
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
5391
|
+
@description = args[:description] if args.key?(:description)
|
5392
|
+
@name = args[:name] if args.key?(:name)
|
5393
|
+
@resource_labels_selector = args[:resource_labels_selector] if args.key?(:resource_labels_selector)
|
5394
|
+
@resource_type = args[:resource_type] if args.key?(:resource_type)
|
5395
|
+
@resource_value = args[:resource_value] if args.key?(:resource_value)
|
5396
|
+
@scope = args[:scope] if args.key?(:scope)
|
5397
|
+
@tag_values = args[:tag_values] if args.key?(:tag_values)
|
5398
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
5399
|
+
end
|
5400
|
+
end
|
5401
|
+
|
5402
|
+
# Kubernetes Role or ClusterRole.
|
5403
|
+
class GoogleCloudSecuritycenterV2Role
|
5404
|
+
include Google::Apis::Core::Hashable
|
5405
|
+
|
5406
|
+
# Role type.
|
5407
|
+
# Corresponds to the JSON property `kind`
|
5408
|
+
# @return [String]
|
5409
|
+
attr_accessor :kind
|
5410
|
+
|
5411
|
+
# Role name.
|
5412
|
+
# Corresponds to the JSON property `name`
|
5413
|
+
# @return [String]
|
5414
|
+
attr_accessor :name
|
5415
|
+
|
5416
|
+
# Role namespace.
|
5417
|
+
# Corresponds to the JSON property `ns`
|
5418
|
+
# @return [String]
|
5419
|
+
attr_accessor :ns
|
5420
|
+
|
5421
|
+
def initialize(**args)
|
5422
|
+
update!(**args)
|
5423
|
+
end
|
5424
|
+
|
5425
|
+
# Update properties of this object
|
5426
|
+
def update!(**args)
|
5427
|
+
@kind = args[:kind] if args.key?(:kind)
|
5428
|
+
@name = args[:name] if args.key?(:name)
|
5429
|
+
@ns = args[:ns] if args.key?(:ns)
|
5430
|
+
end
|
5431
|
+
end
|
5432
|
+
|
5433
|
+
# User specified security marks that are attached to the parent Security Command
|
5434
|
+
# Center resource. Security marks are scoped within a Security Command Center
|
5435
|
+
# organization -- they can be modified and viewed by all users who have proper
|
5436
|
+
# permissions on the organization.
|
5437
|
+
class GoogleCloudSecuritycenterV2SecurityMarks
|
5438
|
+
include Google::Apis::Core::Hashable
|
5439
|
+
|
5440
|
+
# The canonical name of the marks. The following list shows some examples: + `
|
5441
|
+
# organizations/`organization_id`/assets/`asset_id`/securityMarks" + `
|
5442
|
+
# organizations/`organization_id`/sources/`source_id`/findings/`finding_id`/
|
5443
|
+
# securityMarks" + `organizations/`organization_id`/sources/`source_id`/
|
5444
|
+
# locations/`location`/findings/`finding_id`/securityMarks" + `folders/`
|
5445
|
+
# folder_id`/assets/`asset_id`/securityMarks" + `folders/`folder_id`/sources/`
|
5446
|
+
# source_id`/findings/`finding_id`/securityMarks" + `folders/`folder_id`/sources/
|
5447
|
+
# `source_id`/locations/`location`/findings/`finding_id`/securityMarks" + `
|
5448
|
+
# projects/`project_number`/assets/`asset_id`/securityMarks" + `projects/`
|
5449
|
+
# project_number`/sources/`source_id`/findings/`finding_id`/securityMarks" + `
|
5450
|
+
# projects/`project_number`/sources/`source_id`/locations/`location`/findings/`
|
5451
|
+
# finding_id`/securityMarks"
|
5452
|
+
# Corresponds to the JSON property `canonicalName`
|
5453
|
+
# @return [String]
|
5454
|
+
attr_accessor :canonical_name
|
5455
|
+
|
5456
|
+
# Mutable user specified security marks belonging to the parent resource.
|
5457
|
+
# Constraints are as follows: * Keys and values are treated as case insensitive *
|
5458
|
+
# Keys must be between 1 - 256 characters (inclusive) * Keys must be letters,
|
5459
|
+
# numbers, underscores, or dashes * Values have leading and trailing whitespace
|
5460
|
+
# trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
|
5461
|
+
# Corresponds to the JSON property `marks`
|
5462
|
+
# @return [Hash<String,String>]
|
5463
|
+
attr_accessor :marks
|
5464
|
+
|
5465
|
+
# The relative resource name of the SecurityMarks. See: https://cloud.google.com/
|
5466
|
+
# apis/design/resource_names#relative_resource_name The following list shows
|
5467
|
+
# some examples: + `organizations/`organization_id`/assets/`asset_id`/
|
5468
|
+
# securityMarks` + `organizations/`organization_id`/sources/`source_id`/findings/
|
5469
|
+
# `finding_id`/securityMarks` + `organizations/`organization_id`/sources/`
|
5470
|
+
# source_id`/locations/`location`/findings/`finding_id`/securityMarks`
|
5471
|
+
# Corresponds to the JSON property `name`
|
5472
|
+
# @return [String]
|
5473
|
+
attr_accessor :name
|
5474
|
+
|
5475
|
+
def initialize(**args)
|
5476
|
+
update!(**args)
|
5477
|
+
end
|
5478
|
+
|
5479
|
+
# Update properties of this object
|
5480
|
+
def update!(**args)
|
5481
|
+
@canonical_name = args[:canonical_name] if args.key?(:canonical_name)
|
5482
|
+
@marks = args[:marks] if args.key?(:marks)
|
5483
|
+
@name = args[:name] if args.key?(:name)
|
5484
|
+
end
|
5485
|
+
end
|
5486
|
+
|
5487
|
+
# Represents a posture that is deployed on Google Cloud by the Security Command
|
5488
|
+
# Center Posture Management service. A posture contains one or more policy sets.
|
5489
|
+
# A policy set is a group of policies that enforce a set of security rules on
|
5490
|
+
# Google Cloud.
|
5491
|
+
class GoogleCloudSecuritycenterV2SecurityPosture
|
5492
|
+
include Google::Apis::Core::Hashable
|
5493
|
+
|
5494
|
+
# The name of the policy that has been updated, for example, `projects/`
|
5495
|
+
# project_id`/policies/`constraint_name``.
|
5496
|
+
# Corresponds to the JSON property `changedPolicy`
|
5497
|
+
# @return [String]
|
5498
|
+
attr_accessor :changed_policy
|
5499
|
+
|
5500
|
+
# Name of the posture, for example, `organizations/`org_id`/locations/`location`/
|
5501
|
+
# postures/`posture_name``.
|
5502
|
+
# Corresponds to the JSON property `name`
|
5503
|
+
# @return [String]
|
5504
|
+
attr_accessor :name
|
5505
|
+
|
5506
|
+
# The name of the posture deployment, for example, `projects/`project_id`/
|
5507
|
+
# posturedeployments/`posture_deployment_id``.
|
5508
|
+
# Corresponds to the JSON property `postureDeployment`
|
5509
|
+
# @return [String]
|
5510
|
+
attr_accessor :posture_deployment
|
5511
|
+
|
5512
|
+
# The project, folder, or organization on which the posture is deployed, for
|
5513
|
+
# example, `projects/`project_id``.
|
5514
|
+
# Corresponds to the JSON property `postureDeploymentResource`
|
5515
|
+
# @return [String]
|
5516
|
+
attr_accessor :posture_deployment_resource
|
5517
|
+
|
5518
|
+
# The version of the posture, for example, `c7cfa2a8`.
|
5519
|
+
# Corresponds to the JSON property `revisionId`
|
5520
|
+
# @return [String]
|
5521
|
+
attr_accessor :revision_id
|
5522
|
+
|
5523
|
+
def initialize(**args)
|
5524
|
+
update!(**args)
|
5525
|
+
end
|
5526
|
+
|
5527
|
+
# Update properties of this object
|
5528
|
+
def update!(**args)
|
5529
|
+
@changed_policy = args[:changed_policy] if args.key?(:changed_policy)
|
5530
|
+
@name = args[:name] if args.key?(:name)
|
5531
|
+
@posture_deployment = args[:posture_deployment] if args.key?(:posture_deployment)
|
5532
|
+
@posture_deployment_resource = args[:posture_deployment_resource] if args.key?(:posture_deployment_resource)
|
5533
|
+
@revision_id = args[:revision_id] if args.key?(:revision_id)
|
5534
|
+
end
|
5535
|
+
end
|
5536
|
+
|
5537
|
+
# Identity delegation history of an authenticated service account.
|
5538
|
+
class GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo
|
5539
|
+
include Google::Apis::Core::Hashable
|
5540
|
+
|
5541
|
+
# The email address of a Google account.
|
5542
|
+
# Corresponds to the JSON property `principalEmail`
|
5543
|
+
# @return [String]
|
5544
|
+
attr_accessor :principal_email
|
5545
|
+
|
5546
|
+
# A string representing the principal_subject associated with the identity. As
|
5547
|
+
# compared to `principal_email`, supports principals that aren't associated with
|
5548
|
+
# email addresses, such as third party principals. For most identities, the
|
5549
|
+
# format will be `principal://iam.googleapis.com/`identity pool name`/subjects/`
|
5550
|
+
# subject`` except for some GKE identities (GKE_WORKLOAD, FREEFORM,
|
5551
|
+
# GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:`
|
5552
|
+
# identity pool name`[`subject`]`
|
5553
|
+
# Corresponds to the JSON property `principalSubject`
|
5554
|
+
# @return [String]
|
5555
|
+
attr_accessor :principal_subject
|
5556
|
+
|
5557
|
+
def initialize(**args)
|
5558
|
+
update!(**args)
|
5559
|
+
end
|
5560
|
+
|
5561
|
+
# Update properties of this object
|
5562
|
+
def update!(**args)
|
5563
|
+
@principal_email = args[:principal_email] if args.key?(:principal_email)
|
5564
|
+
@principal_subject = args[:principal_subject] if args.key?(:principal_subject)
|
5565
|
+
end
|
5566
|
+
end
|
5567
|
+
|
5568
|
+
# Represents a Kubernetes subject.
|
5569
|
+
class GoogleCloudSecuritycenterV2Subject
|
5570
|
+
include Google::Apis::Core::Hashable
|
5571
|
+
|
5572
|
+
# Authentication type for the subject.
|
5573
|
+
# Corresponds to the JSON property `kind`
|
5574
|
+
# @return [String]
|
5575
|
+
attr_accessor :kind
|
5576
|
+
|
5577
|
+
# Name for the subject.
|
5578
|
+
# Corresponds to the JSON property `name`
|
5579
|
+
# @return [String]
|
5580
|
+
attr_accessor :name
|
5581
|
+
|
5582
|
+
# Namespace for the subject.
|
5583
|
+
# Corresponds to the JSON property `ns`
|
5584
|
+
# @return [String]
|
5585
|
+
attr_accessor :ns
|
5586
|
+
|
5587
|
+
def initialize(**args)
|
5588
|
+
update!(**args)
|
5589
|
+
end
|
5590
|
+
|
5591
|
+
# Update properties of this object
|
5592
|
+
def update!(**args)
|
5593
|
+
@kind = args[:kind] if args.key?(:kind)
|
5594
|
+
@name = args[:name] if args.key?(:name)
|
5595
|
+
@ns = args[:ns] if args.key?(:ns)
|
5596
|
+
end
|
5597
|
+
end
|
5598
|
+
|
5599
|
+
# Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
|
5600
|
+
class GoogleCloudSecuritycenterV2Vulnerability
|
5601
|
+
include Google::Apis::Core::Hashable
|
5602
|
+
|
5603
|
+
# CVE stands for Common Vulnerabilities and Exposures. More information: https://
|
5604
|
+
# cve.mitre.org
|
5605
|
+
# Corresponds to the JSON property `cve`
|
5606
|
+
# @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Cve]
|
5607
|
+
attr_accessor :cve
|
5608
|
+
|
5609
|
+
def initialize(**args)
|
5610
|
+
update!(**args)
|
5611
|
+
end
|
5612
|
+
|
5613
|
+
# Update properties of this object
|
5614
|
+
def update!(**args)
|
5615
|
+
@cve = args[:cve] if args.key?(:cve)
|
5616
|
+
end
|
5617
|
+
end
|
5618
|
+
|
5619
|
+
# A signature corresponding to a YARA rule.
|
5620
|
+
class GoogleCloudSecuritycenterV2YaraRuleSignature
|
5621
|
+
include Google::Apis::Core::Hashable
|
5622
|
+
|
5623
|
+
# The name of the YARA rule.
|
5624
|
+
# Corresponds to the JSON property `yaraRule`
|
5625
|
+
# @return [String]
|
5626
|
+
attr_accessor :yara_rule
|
5627
|
+
|
5628
|
+
def initialize(**args)
|
5629
|
+
update!(**args)
|
5630
|
+
end
|
5631
|
+
|
5632
|
+
# Update properties of this object
|
5633
|
+
def update!(**args)
|
5634
|
+
@yara_rule = args[:yara_rule] if args.key?(:yara_rule)
|
5635
|
+
end
|
5636
|
+
end
|
5637
|
+
|
3076
5638
|
# Request message for grouping by assets.
|
3077
5639
|
class GroupAssetsRequest
|
3078
5640
|
include Google::Apis::Core::Hashable
|
@@ -4348,7 +6910,7 @@ module Google
|
|
4348
6910
|
# @return [String]
|
4349
6911
|
attr_accessor :group
|
4350
6912
|
|
4351
|
-
# Kubernetes object kind, such as
|
6913
|
+
# Kubernetes object kind, such as "Namespace".
|
4352
6914
|
# Corresponds to the JSON property `kind`
|
4353
6915
|
# @return [String]
|
4354
6916
|
attr_accessor :kind
|