published on Friday, May 8, 2026 by Pulumi
published on Friday, May 8, 2026 by Pulumi
Configures Microsoft Teams notifications using dbt Cloud’s notifications system.
This resource manages Teams notifications through a redesigned notifications system that models a single setting as a collection of channels (where to send) and rules (when to send).
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as dbtcloud from "@pulumi/dbtcloud";
// dbtcloud_notification_setting configures Microsoft Teams notifications
// using dbt Cloud's notifications system.
//
// It is a separate resource from `dbtcloud_notification` because Teams is delivered
// through a redesigned notifications system that models a single setting as a
// collection of channels (where to send) and rules (when to send). Email and Slack
// notifications still use the legacy `dbtcloud_notification` resource.
// Microsoft Teams: notify on errors for a specific job
const teamsProdFailures = new dbtcloud.NotificationSetting("teams_prod_failures", {
name: "Prod failures to Teams",
description: "Alerts the data platform Teams channel when production runs error.",
channels: [{
channelType: "teams",
teamsTeamId: "19:abcdef0123456789@thread.tacv2",
teamsChannelId: "19:fedcba9876543210@thread.tacv2",
}],
rules: [
{
triggerOn: "run_errored",
jobId: prodJob.id,
},
{
triggerOn: "run_cancelled",
jobId: prodJob.id,
},
],
});
import pulumi
import pulumi_dbtcloud as dbtcloud
# dbtcloud_notification_setting configures Microsoft Teams notifications
# using dbt Cloud's notifications system.
#
# It is a separate resource from `dbtcloud_notification` because Teams is delivered
# through a redesigned notifications system that models a single setting as a
# collection of channels (where to send) and rules (when to send). Email and Slack
# notifications still use the legacy `dbtcloud_notification` resource.
# Microsoft Teams: notify on errors for a specific job
teams_prod_failures = dbtcloud.NotificationSetting("teams_prod_failures",
name="Prod failures to Teams",
description="Alerts the data platform Teams channel when production runs error.",
channels=[{
"channel_type": "teams",
"teams_team_id": "19:abcdef0123456789@thread.tacv2",
"teams_channel_id": "19:fedcba9876543210@thread.tacv2",
}],
rules=[
{
"trigger_on": "run_errored",
"job_id": prod_job["id"],
},
{
"trigger_on": "run_cancelled",
"job_id": prod_job["id"],
},
])
package main
import (
"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// dbtcloud_notification_setting configures Microsoft Teams notifications
// using dbt Cloud's notifications system.
//
// It is a separate resource from `dbtcloud_notification` because Teams is delivered
// through a redesigned notifications system that models a single setting as a
// collection of channels (where to send) and rules (when to send). Email and Slack
// notifications still use the legacy `dbtcloud_notification` resource.
// Microsoft Teams: notify on errors for a specific job
_, err := dbtcloud.NewNotificationSetting(ctx, "teams_prod_failures", &dbtcloud.NotificationSettingArgs{
Name: pulumi.String("Prod failures to Teams"),
Description: pulumi.String("Alerts the data platform Teams channel when production runs error."),
Channels: dbtcloud.NotificationSettingChannelArray{
&dbtcloud.NotificationSettingChannelArgs{
ChannelType: pulumi.String("teams"),
TeamsTeamId: pulumi.String("19:abcdef0123456789@thread.tacv2"),
TeamsChannelId: pulumi.String("19:fedcba9876543210@thread.tacv2"),
},
},
Rules: dbtcloud.NotificationSettingRuleArray{
&dbtcloud.NotificationSettingRuleArgs{
TriggerOn: pulumi.String("run_errored"),
JobId: pulumi.Any(prodJob.Id),
},
&dbtcloud.NotificationSettingRuleArgs{
TriggerOn: pulumi.String("run_cancelled"),
JobId: pulumi.Any(prodJob.Id),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using DbtCloud = Pulumi.DbtCloud;
return await Deployment.RunAsync(() =>
{
// dbtcloud_notification_setting configures Microsoft Teams notifications
// using dbt Cloud's notifications system.
//
// It is a separate resource from `dbtcloud_notification` because Teams is delivered
// through a redesigned notifications system that models a single setting as a
// collection of channels (where to send) and rules (when to send). Email and Slack
// notifications still use the legacy `dbtcloud_notification` resource.
// Microsoft Teams: notify on errors for a specific job
var teamsProdFailures = new DbtCloud.Index.NotificationSetting("teams_prod_failures", new()
{
Name = "Prod failures to Teams",
Description = "Alerts the data platform Teams channel when production runs error.",
Channels = new[]
{
new DbtCloud.Inputs.NotificationSettingChannelArgs
{
ChannelType = "teams",
TeamsTeamId = "19:abcdef0123456789@thread.tacv2",
TeamsChannelId = "19:fedcba9876543210@thread.tacv2",
},
},
Rules = new[]
{
new DbtCloud.Inputs.NotificationSettingRuleArgs
{
TriggerOn = "run_errored",
JobId = prodJob.Id,
},
new DbtCloud.Inputs.NotificationSettingRuleArgs
{
TriggerOn = "run_cancelled",
JobId = prodJob.Id,
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.dbtcloud.NotificationSetting;
import com.pulumi.dbtcloud.NotificationSettingArgs;
import com.pulumi.dbtcloud.inputs.NotificationSettingChannelArgs;
import com.pulumi.dbtcloud.inputs.NotificationSettingRuleArgs;
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) {
// dbtcloud_notification_setting configures Microsoft Teams notifications
// using dbt Cloud's notifications system.
//
// It is a separate resource from `dbtcloud_notification` because Teams is delivered
// through a redesigned notifications system that models a single setting as a
// collection of channels (where to send) and rules (when to send). Email and Slack
// notifications still use the legacy `dbtcloud_notification` resource.
// Microsoft Teams: notify on errors for a specific job
var teamsProdFailures = new NotificationSetting("teamsProdFailures", NotificationSettingArgs.builder()
.name("Prod failures to Teams")
.description("Alerts the data platform Teams channel when production runs error.")
.channels(NotificationSettingChannelArgs.builder()
.channelType("teams")
.teamsTeamId("19:abcdef0123456789@thread.tacv2")
.teamsChannelId("19:fedcba9876543210@thread.tacv2")
.build())
.rules(
NotificationSettingRuleArgs.builder()
.triggerOn("run_errored")
.jobId(prodJob.id())
.build(),
NotificationSettingRuleArgs.builder()
.triggerOn("run_cancelled")
.jobId(prodJob.id())
.build())
.build());
}
}
resources:
# dbtcloud_notification_setting configures Microsoft Teams notifications
# // using dbt Cloud's notifications system.
# //
# // It is a separate resource from `dbtcloud_notification` because Teams is delivered
# // through a redesigned notifications system that models a single setting as a
# // collection of channels (where to send) and rules (when to send). Email and Slack
# // notifications still use the legacy `dbtcloud_notification` resource.
# // Microsoft Teams: notify on errors for a specific job
teamsProdFailures:
type: dbtcloud:NotificationSetting
name: teams_prod_failures
properties:
name: Prod failures to Teams
description: Alerts the data platform Teams channel when production runs error.
channels:
- channelType: teams
teamsTeamId: 19:abcdef0123456789@thread.tacv2
teamsChannelId: 19:fedcba9876543210@thread.tacv2
rules:
- triggerOn: run_errored
jobId: ${prodJob.id}
- triggerOn: run_cancelled
jobId: ${prodJob.id}
Create NotificationSetting Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new NotificationSetting(name: string, args: NotificationSettingArgs, opts?: CustomResourceOptions);@overload
def NotificationSetting(resource_name: str,
args: NotificationSettingArgs,
opts: Optional[ResourceOptions] = None)
@overload
def NotificationSetting(resource_name: str,
opts: Optional[ResourceOptions] = None,
channels: Optional[Sequence[NotificationSettingChannelArgs]] = None,
rules: Optional[Sequence[NotificationSettingRuleArgs]] = None,
description: Optional[str] = None,
name: Optional[str] = None)func NewNotificationSetting(ctx *Context, name string, args NotificationSettingArgs, opts ...ResourceOption) (*NotificationSetting, error)public NotificationSetting(string name, NotificationSettingArgs args, CustomResourceOptions? opts = null)
public NotificationSetting(String name, NotificationSettingArgs args)
public NotificationSetting(String name, NotificationSettingArgs args, CustomResourceOptions options)
type: dbtcloud:NotificationSetting
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 NotificationSettingArgs
- 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 NotificationSettingArgs
- 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 NotificationSettingArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args NotificationSettingArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args NotificationSettingArgs
- 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 notificationSettingResource = new DbtCloud.NotificationSetting("notificationSettingResource", new()
{
Channels = new[]
{
new DbtCloud.Inputs.NotificationSettingChannelArgs
{
ChannelType = "string",
TeamsChannelId = "string",
TeamsTeamId = "string",
Id = 0,
},
},
Rules = new[]
{
new DbtCloud.Inputs.NotificationSettingRuleArgs
{
TriggerOn = "string",
Id = 0,
JobId = 0,
JobName = "string",
},
},
Description = "string",
Name = "string",
});
example, err := dbtcloud.NewNotificationSetting(ctx, "notificationSettingResource", &dbtcloud.NotificationSettingArgs{
Channels: dbtcloud.NotificationSettingChannelArray{
&dbtcloud.NotificationSettingChannelArgs{
ChannelType: pulumi.String("string"),
TeamsChannelId: pulumi.String("string"),
TeamsTeamId: pulumi.String("string"),
Id: pulumi.Int(0),
},
},
Rules: dbtcloud.NotificationSettingRuleArray{
&dbtcloud.NotificationSettingRuleArgs{
TriggerOn: pulumi.String("string"),
Id: pulumi.Int(0),
JobId: pulumi.Int(0),
JobName: pulumi.String("string"),
},
},
Description: pulumi.String("string"),
Name: pulumi.String("string"),
})
var notificationSettingResource = new NotificationSetting("notificationSettingResource", NotificationSettingArgs.builder()
.channels(NotificationSettingChannelArgs.builder()
.channelType("string")
.teamsChannelId("string")
.teamsTeamId("string")
.id(0)
.build())
.rules(NotificationSettingRuleArgs.builder()
.triggerOn("string")
.id(0)
.jobId(0)
.jobName("string")
.build())
.description("string")
.name("string")
.build());
notification_setting_resource = dbtcloud.NotificationSetting("notificationSettingResource",
channels=[{
"channel_type": "string",
"teams_channel_id": "string",
"teams_team_id": "string",
"id": 0,
}],
rules=[{
"trigger_on": "string",
"id": 0,
"job_id": 0,
"job_name": "string",
}],
description="string",
name="string")
const notificationSettingResource = new dbtcloud.NotificationSetting("notificationSettingResource", {
channels: [{
channelType: "string",
teamsChannelId: "string",
teamsTeamId: "string",
id: 0,
}],
rules: [{
triggerOn: "string",
id: 0,
jobId: 0,
jobName: "string",
}],
description: "string",
name: "string",
});
type: dbtcloud:NotificationSetting
properties:
channels:
- channelType: string
id: 0
teamsChannelId: string
teamsTeamId: string
description: string
name: string
rules:
- id: 0
jobId: 0
jobName: string
triggerOn: string
NotificationSetting 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 NotificationSetting resource accepts the following input properties:
- Channels
List<Pulumi.
Dbt Cloud. Inputs. Notification Setting Channel> - Delivery channels for this setting. At least one channel is required.
- Rules
List<Pulumi.
Dbt Cloud. Inputs. Notification Setting Rule> - Trigger rules. At least one rule is required.
- Description string
- Optional description of what this notification setting does
- Name string
- Human-readable name for this notification setting
- Channels
[]Notification
Setting Channel Args - Delivery channels for this setting. At least one channel is required.
- Rules
[]Notification
Setting Rule Args - Trigger rules. At least one rule is required.
- Description string
- Optional description of what this notification setting does
- Name string
- Human-readable name for this notification setting
- channels
List<Notification
Setting Channel> - Delivery channels for this setting. At least one channel is required.
- rules
List<Notification
Setting Rule> - Trigger rules. At least one rule is required.
- description String
- Optional description of what this notification setting does
- name String
- Human-readable name for this notification setting
- channels
Notification
Setting Channel[] - Delivery channels for this setting. At least one channel is required.
- rules
Notification
Setting Rule[] - Trigger rules. At least one rule is required.
- description string
- Optional description of what this notification setting does
- name string
- Human-readable name for this notification setting
- channels
Sequence[Notification
Setting Channel Args] - Delivery channels for this setting. At least one channel is required.
- rules
Sequence[Notification
Setting Rule Args] - Trigger rules. At least one rule is required.
- description str
- Optional description of what this notification setting does
- name str
- Human-readable name for this notification setting
- channels List<Property Map>
- Delivery channels for this setting. At least one channel is required.
- rules List<Property Map>
- Trigger rules. At least one rule is required.
- description String
- Optional description of what this notification setting does
- name String
- Human-readable name for this notification setting
Outputs
All input properties are implicitly available as output properties. Additionally, the NotificationSetting resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing NotificationSetting Resource
Get an existing NotificationSetting 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?: NotificationSettingState, opts?: CustomResourceOptions): NotificationSetting@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
channels: Optional[Sequence[NotificationSettingChannelArgs]] = None,
description: Optional[str] = None,
name: Optional[str] = None,
rules: Optional[Sequence[NotificationSettingRuleArgs]] = None) -> NotificationSettingfunc GetNotificationSetting(ctx *Context, name string, id IDInput, state *NotificationSettingState, opts ...ResourceOption) (*NotificationSetting, error)public static NotificationSetting Get(string name, Input<string> id, NotificationSettingState? state, CustomResourceOptions? opts = null)public static NotificationSetting get(String name, Output<String> id, NotificationSettingState state, CustomResourceOptions options)resources: _: type: dbtcloud:NotificationSetting 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.
- Channels
List<Pulumi.
Dbt Cloud. Inputs. Notification Setting Channel> - Delivery channels for this setting. At least one channel is required.
- Description string
- Optional description of what this notification setting does
- Name string
- Human-readable name for this notification setting
- Rules
List<Pulumi.
Dbt Cloud. Inputs. Notification Setting Rule> - Trigger rules. At least one rule is required.
- Channels
[]Notification
Setting Channel Args - Delivery channels for this setting. At least one channel is required.
- Description string
- Optional description of what this notification setting does
- Name string
- Human-readable name for this notification setting
- Rules
[]Notification
Setting Rule Args - Trigger rules. At least one rule is required.
- channels
List<Notification
Setting Channel> - Delivery channels for this setting. At least one channel is required.
- description String
- Optional description of what this notification setting does
- name String
- Human-readable name for this notification setting
- rules
List<Notification
Setting Rule> - Trigger rules. At least one rule is required.
- channels
Notification
Setting Channel[] - Delivery channels for this setting. At least one channel is required.
- description string
- Optional description of what this notification setting does
- name string
- Human-readable name for this notification setting
- rules
Notification
Setting Rule[] - Trigger rules. At least one rule is required.
- channels
Sequence[Notification
Setting Channel Args] - Delivery channels for this setting. At least one channel is required.
- description str
- Optional description of what this notification setting does
- name str
- Human-readable name for this notification setting
- rules
Sequence[Notification
Setting Rule Args] - Trigger rules. At least one rule is required.
- channels List<Property Map>
- Delivery channels for this setting. At least one channel is required.
- description String
- Optional description of what this notification setting does
- name String
- Human-readable name for this notification setting
- rules List<Property Map>
- Trigger rules. At least one rule is required.
Supporting Types
NotificationSettingChannel, NotificationSettingChannelArgs
- Channel
Type string - Channel type. Currently only
teamsis supported. - Teams
Channel stringId - Microsoft Teams channel ID.
- Teams
Team stringId - Microsoft Teams team ID.
- Id int
- Channel ID
- Channel
Type string - Channel type. Currently only
teamsis supported. - Teams
Channel stringId - Microsoft Teams channel ID.
- Teams
Team stringId - Microsoft Teams team ID.
- Id int
- Channel ID
- channel
Type String - Channel type. Currently only
teamsis supported. - teams
Channel StringId - Microsoft Teams channel ID.
- teams
Team StringId - Microsoft Teams team ID.
- id Integer
- Channel ID
- channel
Type string - Channel type. Currently only
teamsis supported. - teams
Channel stringId - Microsoft Teams channel ID.
- teams
Team stringId - Microsoft Teams team ID.
- id number
- Channel ID
- channel_
type str - Channel type. Currently only
teamsis supported. - teams_
channel_ strid - Microsoft Teams channel ID.
- teams_
team_ strid - Microsoft Teams team ID.
- id int
- Channel ID
- channel
Type String - Channel type. Currently only
teamsis supported. - teams
Channel StringId - Microsoft Teams channel ID.
- teams
Team StringId - Microsoft Teams team ID.
- id Number
- Channel ID
NotificationSettingRule, NotificationSettingRuleArgs
- trigger_
on str - Event that fires the notification. Valid values:
runWarning,runSuccessful,runErrored,runCancelled. - id int
- Rule ID
- job_
id int - Job ID this rule applies to. Omit to fire for all jobs in the account.
- job_
name str - Name of the job referenced by
jobId(read-only).
Import
using import blocks (requires Terraform >= 1.5) import { to = dbtcloud_notification_setting.my_setting id = “12345” }
using the older import command
$ pulumi import dbtcloud:index/notificationSetting:NotificationSetting my_setting 12345
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- dbtcloud pulumi/pulumi-dbtcloud
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
dbtcloudTerraform Provider.
published on Friday, May 8, 2026 by Pulumi
