gcp.securitycenter.ProjectNotificationConfig
Explore with Pulumi AI
A Cloud Security Command Center (Cloud SCC) notification configs. A notification config is a Cloud SCC resource that contains the configuration to send notifications for create/update events of findings, assets and etc.
Note: In order to use Cloud SCC resources, your organization must be enrolled in SCC Standard/Premium. Without doing so, you may run into errors during resource creation.
To get more information about ProjectNotificationConfig, see:
- API documentation
- How-to Guides
Example Usage
Scc Project Notification Config Basic
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const sccProjectNotification = new gcp.pubsub.Topic("scc_project_notification", {name: "my-topic"});
const customNotificationConfig = new gcp.securitycenter.ProjectNotificationConfig("custom_notification_config", {
configId: "my-config",
project: "my-project-name",
description: "My custom Cloud Security Command Center Finding Notification Configuration",
pubsubTopic: sccProjectNotification.id,
streamingConfig: {
filter: "category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"",
},
});
import pulumi
import pulumi_gcp as gcp
scc_project_notification = gcp.pubsub.Topic("scc_project_notification", name="my-topic")
custom_notification_config = gcp.securitycenter.ProjectNotificationConfig("custom_notification_config",
config_id="my-config",
project="my-project-name",
description="My custom Cloud Security Command Center Finding Notification Configuration",
pubsub_topic=scc_project_notification.id,
streaming_config={
"filter": "category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"",
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/pubsub"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/securitycenter"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
sccProjectNotification, err := pubsub.NewTopic(ctx, "scc_project_notification", &pubsub.TopicArgs{
Name: pulumi.String("my-topic"),
})
if err != nil {
return err
}
_, err = securitycenter.NewProjectNotificationConfig(ctx, "custom_notification_config", &securitycenter.ProjectNotificationConfigArgs{
ConfigId: pulumi.String("my-config"),
Project: pulumi.String("my-project-name"),
Description: pulumi.String("My custom Cloud Security Command Center Finding Notification Configuration"),
PubsubTopic: sccProjectNotification.ID(),
StreamingConfig: &securitycenter.ProjectNotificationConfigStreamingConfigArgs{
Filter: pulumi.String("category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\""),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var sccProjectNotification = new Gcp.PubSub.Topic("scc_project_notification", new()
{
Name = "my-topic",
});
var customNotificationConfig = new Gcp.SecurityCenter.ProjectNotificationConfig("custom_notification_config", new()
{
ConfigId = "my-config",
Project = "my-project-name",
Description = "My custom Cloud Security Command Center Finding Notification Configuration",
PubsubTopic = sccProjectNotification.Id,
StreamingConfig = new Gcp.SecurityCenter.Inputs.ProjectNotificationConfigStreamingConfigArgs
{
Filter = "category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"",
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.pubsub.Topic;
import com.pulumi.gcp.pubsub.TopicArgs;
import com.pulumi.gcp.securitycenter.ProjectNotificationConfig;
import com.pulumi.gcp.securitycenter.ProjectNotificationConfigArgs;
import com.pulumi.gcp.securitycenter.inputs.ProjectNotificationConfigStreamingConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var sccProjectNotification = new Topic("sccProjectNotification", TopicArgs.builder()
.name("my-topic")
.build());
var customNotificationConfig = new ProjectNotificationConfig("customNotificationConfig", ProjectNotificationConfigArgs.builder()
.configId("my-config")
.project("my-project-name")
.description("My custom Cloud Security Command Center Finding Notification Configuration")
.pubsubTopic(sccProjectNotification.id())
.streamingConfig(ProjectNotificationConfigStreamingConfigArgs.builder()
.filter("category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"")
.build())
.build());
}
}
resources:
sccProjectNotification:
type: gcp:pubsub:Topic
name: scc_project_notification
properties:
name: my-topic
customNotificationConfig:
type: gcp:securitycenter:ProjectNotificationConfig
name: custom_notification_config
properties:
configId: my-config
project: my-project-name
description: My custom Cloud Security Command Center Finding Notification Configuration
pubsubTopic: ${sccProjectNotification.id}
streamingConfig:
filter: category = "OPEN_FIREWALL" AND state = "ACTIVE"
Create ProjectNotificationConfig Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ProjectNotificationConfig(name: string, args: ProjectNotificationConfigArgs, opts?: CustomResourceOptions);
@overload
def ProjectNotificationConfig(resource_name: str,
args: ProjectNotificationConfigArgs,
opts: Optional[ResourceOptions] = None)
@overload
def ProjectNotificationConfig(resource_name: str,
opts: Optional[ResourceOptions] = None,
config_id: Optional[str] = None,
pubsub_topic: Optional[str] = None,
streaming_config: Optional[ProjectNotificationConfigStreamingConfigArgs] = None,
description: Optional[str] = None,
project: Optional[str] = None)
func NewProjectNotificationConfig(ctx *Context, name string, args ProjectNotificationConfigArgs, opts ...ResourceOption) (*ProjectNotificationConfig, error)
public ProjectNotificationConfig(string name, ProjectNotificationConfigArgs args, CustomResourceOptions? opts = null)
public ProjectNotificationConfig(String name, ProjectNotificationConfigArgs args)
public ProjectNotificationConfig(String name, ProjectNotificationConfigArgs args, CustomResourceOptions options)
type: gcp:securitycenter:ProjectNotificationConfig
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ProjectNotificationConfigArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ProjectNotificationConfigArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ProjectNotificationConfigArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ProjectNotificationConfigArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ProjectNotificationConfigArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var projectNotificationConfigResource = new Gcp.SecurityCenter.ProjectNotificationConfig("projectNotificationConfigResource", new()
{
ConfigId = "string",
PubsubTopic = "string",
StreamingConfig = new Gcp.SecurityCenter.Inputs.ProjectNotificationConfigStreamingConfigArgs
{
Filter = "string",
},
Description = "string",
Project = "string",
});
example, err := securitycenter.NewProjectNotificationConfig(ctx, "projectNotificationConfigResource", &securitycenter.ProjectNotificationConfigArgs{
ConfigId: pulumi.String("string"),
PubsubTopic: pulumi.String("string"),
StreamingConfig: &securitycenter.ProjectNotificationConfigStreamingConfigArgs{
Filter: pulumi.String("string"),
},
Description: pulumi.String("string"),
Project: pulumi.String("string"),
})
var projectNotificationConfigResource = new ProjectNotificationConfig("projectNotificationConfigResource", ProjectNotificationConfigArgs.builder()
.configId("string")
.pubsubTopic("string")
.streamingConfig(ProjectNotificationConfigStreamingConfigArgs.builder()
.filter("string")
.build())
.description("string")
.project("string")
.build());
project_notification_config_resource = gcp.securitycenter.ProjectNotificationConfig("projectNotificationConfigResource",
config_id="string",
pubsub_topic="string",
streaming_config={
"filter": "string",
},
description="string",
project="string")
const projectNotificationConfigResource = new gcp.securitycenter.ProjectNotificationConfig("projectNotificationConfigResource", {
configId: "string",
pubsubTopic: "string",
streamingConfig: {
filter: "string",
},
description: "string",
project: "string",
});
type: gcp:securitycenter:ProjectNotificationConfig
properties:
configId: string
description: string
project: string
pubsubTopic: string
streamingConfig:
filter: string
ProjectNotificationConfig Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The ProjectNotificationConfig resource accepts the following input properties:
- Config
Id string - This must be unique within the organization.
- Pubsub
Topic string - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- Streaming
Config ProjectNotification Config Streaming Config - The config for triggering streaming-based notifications. Structure is documented below.
- Description string
- The description of the notification config (max of 1024 characters).
- Project string
- Config
Id string - This must be unique within the organization.
- Pubsub
Topic string - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- Streaming
Config ProjectNotification Config Streaming Config Args - The config for triggering streaming-based notifications. Structure is documented below.
- Description string
- The description of the notification config (max of 1024 characters).
- Project string
- config
Id String - This must be unique within the organization.
- pubsub
Topic String - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- streaming
Config ProjectNotification Config Streaming Config - The config for triggering streaming-based notifications. Structure is documented below.
- description String
- The description of the notification config (max of 1024 characters).
- project String
- config
Id string - This must be unique within the organization.
- pubsub
Topic string - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- streaming
Config ProjectNotification Config Streaming Config - The config for triggering streaming-based notifications. Structure is documented below.
- description string
- The description of the notification config (max of 1024 characters).
- project string
- config_
id str - This must be unique within the organization.
- pubsub_
topic str - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- streaming_
config ProjectNotification Config Streaming Config Args - The config for triggering streaming-based notifications. Structure is documented below.
- description str
- The description of the notification config (max of 1024 characters).
- project str
- config
Id String - This must be unique within the organization.
- pubsub
Topic String - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- streaming
Config Property Map - The config for triggering streaming-based notifications. Structure is documented below.
- description String
- The description of the notification config (max of 1024 characters).
- project String
Outputs
All input properties are implicitly available as output properties. Additionally, the ProjectNotificationConfig resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - Service
Account string - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - Service
Account string - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - service
Account String - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - service
Account string - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - service_
account str - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - service
Account String - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
Look up Existing ProjectNotificationConfig Resource
Get an existing ProjectNotificationConfig resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ProjectNotificationConfigState, opts?: CustomResourceOptions): ProjectNotificationConfig
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
config_id: Optional[str] = None,
description: Optional[str] = None,
name: Optional[str] = None,
project: Optional[str] = None,
pubsub_topic: Optional[str] = None,
service_account: Optional[str] = None,
streaming_config: Optional[ProjectNotificationConfigStreamingConfigArgs] = None) -> ProjectNotificationConfig
func GetProjectNotificationConfig(ctx *Context, name string, id IDInput, state *ProjectNotificationConfigState, opts ...ResourceOption) (*ProjectNotificationConfig, error)
public static ProjectNotificationConfig Get(string name, Input<string> id, ProjectNotificationConfigState? state, CustomResourceOptions? opts = null)
public static ProjectNotificationConfig get(String name, Output<String> id, ProjectNotificationConfigState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Config
Id string - This must be unique within the organization.
- Description string
- The description of the notification config (max of 1024 characters).
- Name string
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - Project string
- Pubsub
Topic string - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- Service
Account string - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- Streaming
Config ProjectNotification Config Streaming Config - The config for triggering streaming-based notifications. Structure is documented below.
- Config
Id string - This must be unique within the organization.
- Description string
- The description of the notification config (max of 1024 characters).
- Name string
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - Project string
- Pubsub
Topic string - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- Service
Account string - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- Streaming
Config ProjectNotification Config Streaming Config Args - The config for triggering streaming-based notifications. Structure is documented below.
- config
Id String - This must be unique within the organization.
- description String
- The description of the notification config (max of 1024 characters).
- name String
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - project String
- pubsub
Topic String - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- service
Account String - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- streaming
Config ProjectNotification Config Streaming Config - The config for triggering streaming-based notifications. Structure is documented below.
- config
Id string - This must be unique within the organization.
- description string
- The description of the notification config (max of 1024 characters).
- name string
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - project string
- pubsub
Topic string - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- service
Account string - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- streaming
Config ProjectNotification Config Streaming Config - The config for triggering streaming-based notifications. Structure is documented below.
- config_
id str - This must be unique within the organization.
- description str
- The description of the notification config (max of 1024 characters).
- name str
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - project str
- pubsub_
topic str - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- service_
account str - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- streaming_
config ProjectNotification Config Streaming Config Args - The config for triggering streaming-based notifications. Structure is documented below.
- config
Id String - This must be unique within the organization.
- description String
- The description of the notification config (max of 1024 characters).
- name String
- The resource name of this notification config, in the format
projects/{{projectId}}/notificationConfigs/{{config_id}}
. - project String
- pubsub
Topic String - The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- service
Account String - The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- streaming
Config Property Map - The config for triggering streaming-based notifications. Structure is documented below.
Supporting Types
ProjectNotificationConfigStreamingConfig, ProjectNotificationConfigStreamingConfigArgs
- Filter string
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 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. See Filtering notifications for information on how to write a filter.
- Filter string
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 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. See Filtering notifications for information on how to write a filter.
- filter String
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 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. See Filtering notifications for information on how to write a filter.
- filter string
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 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. See Filtering notifications for information on how to write a filter.
- filter str
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 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. See Filtering notifications for information on how to write a filter.
- filter String
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 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. See Filtering notifications for information on how to write a filter.
Import
ProjectNotificationConfig can be imported using any of these accepted formats:
{{name}}
When using the pulumi import
command, ProjectNotificationConfig can be imported using one of the formats above. For example:
$ pulumi import gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig default {{name}}
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
google-beta
Terraform Provider.