1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. securitycenter
  5. ProjectNotificationConfig
Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi

gcp.securitycenter.ProjectNotificationConfig

Explore with Pulumi AI

gcp logo
Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi

    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:

    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 ProjectNotificationConfigStreamingConfig
    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 ProjectNotificationConfigStreamingConfigArgs
    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 ProjectNotificationConfigStreamingConfig
    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 ProjectNotificationConfigStreamingConfig
    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 ProjectNotificationConfigStreamingConfigArgs
    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) -> 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.
    The following state arguments are supported:
    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 ProjectNotificationConfigStreamingConfig
    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 ProjectNotificationConfigStreamingConfigArgs
    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 ProjectNotificationConfigStreamingConfig
    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 ProjectNotificationConfigStreamingConfig
    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 ProjectNotificationConfigStreamingConfigArgs
    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-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi