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:
- ConfigId string
- This must be unique within the organization.
- PubsubTopic string
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- StreamingConfig 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
- ConfigId string
- This must be unique within the organization.
- PubsubTopic string
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- StreamingConfig 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
- configId String
- This must be unique within the organization.
- pubsubTopic String
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- streamingConfig 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
- configId string
- This must be unique within the organization.
- pubsubTopic string
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- streamingConfig 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
- configId String
- This must be unique within the organization.
- pubsubTopic String
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- streamingConfig 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}}.
- ServiceAccount 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}}.
- ServiceAccount 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}}.
- serviceAccount 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}}.
- serviceAccount 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}}.
- serviceAccount 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) -> ProjectNotificationConfigfunc 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)resources:  _:    type: gcp:securitycenter:ProjectNotificationConfig    get:      id: ${id}- 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.
- ConfigId 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
- PubsubTopic string
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- ServiceAccount string
- The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- StreamingConfig ProjectNotification Config Streaming Config 
- The config for triggering streaming-based notifications. Structure is documented below.
- ConfigId 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
- PubsubTopic string
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- ServiceAccount string
- The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- StreamingConfig ProjectNotification Config Streaming Config Args 
- The config for triggering streaming-based notifications. Structure is documented below.
- configId 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
- pubsubTopic String
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- serviceAccount String
- The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- streamingConfig ProjectNotification Config Streaming Config 
- The config for triggering streaming-based notifications. Structure is documented below.
- configId 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
- pubsubTopic string
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- serviceAccount string
- The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- streamingConfig 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.
- configId 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
- pubsubTopic String
- The Pub/Sub topic to send notifications to. Its format is "projects/[project_id]/topics/[topic]".
- serviceAccount String
- The service account that needs "pubsub.topics.publish" permission to publish to the Pub/Sub topic.
- streamingConfig 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-betaTerraform Provider.