You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
4.0 KiB
108 lines
4.0 KiB
// Copyright 2021 Google LLC |
|
// |
|
// Licensed under the Apache License, Version 2.0 (the "License"); |
|
// you may not use this file except in compliance with the License. |
|
// You may obtain a copy of the License at |
|
// |
|
// http://www.apache.org/licenses/LICENSE-2.0 |
|
// |
|
// Unless required by applicable law or agreed to in writing, software |
|
// distributed under the License is distributed on an "AS IS" BASIS, |
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
// See the License for the specific language governing permissions and |
|
// limitations under the License. |
|
|
|
syntax = "proto3"; |
|
|
|
package google.cloud.securitycenter.v1p1beta1; |
|
|
|
import "google/api/field_behavior.proto"; |
|
import "google/api/resource.proto"; |
|
import "google/api/annotations.proto"; |
|
|
|
option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; |
|
option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; |
|
option java_multiple_files = true; |
|
option java_package = "com.google.cloud.securitycenter.v1p1beta1"; |
|
option php_namespace = "Google\\Cloud\\SecurityCenter\\V1p1beta1"; |
|
option ruby_package = "Google::Cloud::SecurityCenter::V1p1beta1"; |
|
option (google.api.resource_definition) = { |
|
type: "pubsub.googleapis.com/Topic" |
|
pattern: "projects/{project}/topics/{topic}" |
|
}; |
|
|
|
// Security Command Center notification configs. |
|
// |
|
// A notification config is a Security Command Center resource that contains the |
|
// configuration to send notifications for create/update events of findings, |
|
// assets and etc. |
|
message NotificationConfig { |
|
option (google.api.resource) = { |
|
type: "securitycenter.googleapis.com/NotificationConfig" |
|
pattern: "organizations/{organization}/notificationConfigs/{notification_config}" |
|
}; |
|
|
|
// The config for streaming-based notifications, which send each event as soon |
|
// as it is detected. |
|
message StreamingConfig { |
|
// Expression that defines the filter to apply across create/update events |
|
// of assets or findings as specified by the event type. The expression is a |
|
// list of zero or more restrictions combined via logical operators `AND` |
|
// and `OR`. Parentheses are supported, and `OR` has higher precedence than |
|
// `AND`. |
|
// |
|
// Restrictions have the form `<field> <operator> <value>` and may have a |
|
// `-` character in front of them to indicate negation. The fields map to |
|
// those defined in the corresponding resource. |
|
// |
|
// The supported operators are: |
|
// |
|
// * `=` for all value types. |
|
// * `>`, `<`, `>=`, `<=` for integer values. |
|
// * `:`, meaning substring matching, for strings. |
|
// |
|
// The supported value types are: |
|
// |
|
// * string literals in quotes. |
|
// * integer literals without quotes. |
|
// * boolean literals `true` and `false` without quotes. |
|
string filter = 1; |
|
} |
|
|
|
// The type of events. |
|
enum EventType { |
|
// Unspecified event type. |
|
EVENT_TYPE_UNSPECIFIED = 0; |
|
|
|
// Events for findings. |
|
FINDING = 1; |
|
} |
|
|
|
// The relative resource name of this notification config. See: |
|
// https://cloud.google.com/apis/design/resource_names#relative_resource_name |
|
// Example: |
|
// "organizations/{organization_id}/notificationConfigs/notify_public_bucket". |
|
string name = 1; |
|
|
|
// The description of the notification config (max of 1024 characters). |
|
string description = 2; |
|
|
|
// The type of events the config is for, e.g. FINDING. |
|
EventType event_type = 3; |
|
|
|
// The Pub/Sub topic to send notifications to. Its format is |
|
// "projects/[project_id]/topics/[topic]". |
|
string pubsub_topic = 4 [(google.api.resource_reference) = { |
|
type: "pubsub.googleapis.com/Topic" |
|
}]; |
|
|
|
// Output only. The service account that needs "pubsub.topics.publish" |
|
// permission to publish to the Pub/Sub topic. |
|
string service_account = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
// The config for triggering notifications. |
|
oneof notify_config { |
|
// The config for triggering streaming-based notifications. |
|
StreamingConfig streaming_config = 6; |
|
} |
|
}
|
|
|