published on Friday, Oct 30, 2026 by zenduty
published on Friday, Oct 30, 2026 by zenduty
zenduty.WebhookConfiguration sends account events (on-call changes, incident lifecycle) to an HTTPS endpoint.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as zenduty from "@pulumi/zenduty";
const opsBus = new zenduty.WebhookConfiguration("ops_bus", {
url: "https://hooks.example.com/zenduty",
events: [
"incident_create",
"incident_acknowledge",
"incident_resolve",
"oncall_change",
],
filter: JSON.stringify({
team: "platform",
}),
authSecretKey: webhookSigningSecret,
apiKey: webhookApiKey,
});
import pulumi
import json
import pulumi_zenduty as zenduty
ops_bus = zenduty.WebhookConfiguration("ops_bus",
url="https://hooks.example.com/zenduty",
events=[
"incident_create",
"incident_acknowledge",
"incident_resolve",
"oncall_change",
],
filter=json.dumps({
"team": "platform",
}),
auth_secret_key=webhook_signing_secret,
api_key=webhook_api_key)
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-terraform-provider/sdks/go/zenduty/v2/zenduty"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
tmpJSON0, err := json.Marshal(map[string]interface{}{
"team": "platform",
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = zenduty.NewWebhookConfiguration(ctx, "ops_bus", &zenduty.WebhookConfigurationArgs{
Url: pulumi.String("https://hooks.example.com/zenduty"),
Events: pulumi.StringArray{
pulumi.String("incident_create"),
pulumi.String("incident_acknowledge"),
pulumi.String("incident_resolve"),
pulumi.String("oncall_change"),
},
Filter: pulumi.String(json0),
AuthSecretKey: pulumi.Any(webhookSigningSecret),
ApiKey: pulumi.Any(webhookApiKey),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Zenduty = Pulumi.Zenduty;
return await Deployment.RunAsync(() =>
{
var opsBus = new Zenduty.WebhookConfiguration("ops_bus", new()
{
Url = "https://hooks.example.com/zenduty",
Events = new[]
{
"incident_create",
"incident_acknowledge",
"incident_resolve",
"oncall_change",
},
Filter = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["team"] = "platform",
}),
AuthSecretKey = webhookSigningSecret,
ApiKey = webhookApiKey,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.zenduty.WebhookConfiguration;
import com.pulumi.zenduty.WebhookConfigurationArgs;
import static com.pulumi.codegen.internal.Serialization.*;
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 opsBus = new WebhookConfiguration("opsBus", WebhookConfigurationArgs.builder()
.url("https://hooks.example.com/zenduty")
.events(
"incident_create",
"incident_acknowledge",
"incident_resolve",
"oncall_change")
.filter(serializeJson(
jsonObject(
jsonProperty("team", "platform")
)))
.authSecretKey(webhookSigningSecret)
.apiKey(webhookApiKey)
.build());
}
}
resources:
opsBus:
type: zenduty:WebhookConfiguration
name: ops_bus
properties:
url: https://hooks.example.com/zenduty
events:
- incident_create
- incident_acknowledge
- incident_resolve
- oncall_change
filter:
fn::toJSON:
team: platform
authSecretKey: ${webhookSigningSecret}
apiKey: ${webhookApiKey}
Example coming soon!
Create WebhookConfiguration Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new WebhookConfiguration(name: string, args: WebhookConfigurationArgs, opts?: CustomResourceOptions);@overload
def WebhookConfiguration(resource_name: str,
args: WebhookConfigurationArgs,
opts: Optional[ResourceOptions] = None)
@overload
def WebhookConfiguration(resource_name: str,
opts: Optional[ResourceOptions] = None,
events: Optional[Sequence[str]] = None,
url: Optional[str] = None,
api_key: Optional[str] = None,
auth_secret_key: Optional[str] = None,
filter: Optional[str] = None,
webhook_configuration_id: Optional[str] = None)func NewWebhookConfiguration(ctx *Context, name string, args WebhookConfigurationArgs, opts ...ResourceOption) (*WebhookConfiguration, error)public WebhookConfiguration(string name, WebhookConfigurationArgs args, CustomResourceOptions? opts = null)
public WebhookConfiguration(String name, WebhookConfigurationArgs args)
public WebhookConfiguration(String name, WebhookConfigurationArgs args, CustomResourceOptions options)
type: zenduty:WebhookConfiguration
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "zenduty_webhook_configuration" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args WebhookConfigurationArgs
- 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 WebhookConfigurationArgs
- 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 WebhookConfigurationArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args WebhookConfigurationArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args WebhookConfigurationArgs
- 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 webhookConfigurationResource = new Zenduty.WebhookConfiguration("webhookConfigurationResource", new()
{
Events = new[]
{
"string",
},
Url = "string",
ApiKey = "string",
AuthSecretKey = "string",
Filter = "string",
WebhookConfigurationId = "string",
});
example, err := zenduty.NewWebhookConfiguration(ctx, "webhookConfigurationResource", &zenduty.WebhookConfigurationArgs{
Events: pulumi.StringArray{
pulumi.String("string"),
},
Url: pulumi.String("string"),
ApiKey: pulumi.String("string"),
AuthSecretKey: pulumi.String("string"),
Filter: pulumi.String("string"),
WebhookConfigurationId: pulumi.String("string"),
})
resource "zenduty_webhook_configuration" "webhookConfigurationResource" {
lifecycle {
create_before_destroy = true
}
events = ["string"]
url = "string"
api_key = "string"
auth_secret_key = "string"
filter = "string"
webhook_configuration_id = "string"
}
var webhookConfigurationResource = new WebhookConfiguration("webhookConfigurationResource", WebhookConfigurationArgs.builder()
.events("string")
.url("string")
.apiKey("string")
.authSecretKey("string")
.filter("string")
.webhookConfigurationId("string")
.build());
webhook_configuration_resource = zenduty.WebhookConfiguration("webhookConfigurationResource",
events=["string"],
url="string",
api_key="string",
auth_secret_key="string",
filter="string",
webhook_configuration_id="string")
const webhookConfigurationResource = new zenduty.WebhookConfiguration("webhookConfigurationResource", {
events: ["string"],
url: "string",
apiKey: "string",
authSecretKey: "string",
filter: "string",
webhookConfigurationId: "string",
});
type: zenduty:WebhookConfiguration
properties:
apiKey: string
authSecretKey: string
events:
- string
filter: string
url: string
webhookConfigurationId: string
WebhookConfiguration 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 WebhookConfiguration resource accepts the following input properties:
- Events List<string>
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - Url string
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- Api
Key string API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- Auth
Secret stringKey - Secret used to sign deliveries.
- Filter string
- JSON filter applied to events before delivery; use
jsonencode(). - Webhook
Configuration stringId - The unique_id of the webhook configuration.
- Events []string
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - Url string
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- Api
Key string API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- Auth
Secret stringKey - Secret used to sign deliveries.
- Filter string
- JSON filter applied to events before delivery; use
jsonencode(). - Webhook
Configuration stringId - The unique_id of the webhook configuration.
- events list(string)
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - url string
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- api_
key string API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth_
secret_ stringkey - Secret used to sign deliveries.
- filter string
- JSON filter applied to events before delivery; use
jsonencode(). - webhook_
configuration_ stringid - The unique_id of the webhook configuration.
- events List<String>
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - url String
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- api
Key String API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth
Secret StringKey - Secret used to sign deliveries.
- filter String
- JSON filter applied to events before delivery; use
jsonencode(). - webhook
Configuration StringId - The unique_id of the webhook configuration.
- events string[]
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - url string
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- api
Key string API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth
Secret stringKey - Secret used to sign deliveries.
- filter string
- JSON filter applied to events before delivery; use
jsonencode(). - webhook
Configuration stringId - The unique_id of the webhook configuration.
- events Sequence[str]
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - url str
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- api_
key str API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth_
secret_ strkey - Secret used to sign deliveries.
- filter str
- JSON filter applied to events before delivery; use
jsonencode(). - webhook_
configuration_ strid - The unique_id of the webhook configuration.
- events List<String>
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - url String
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- api
Key String API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth
Secret StringKey - Secret used to sign deliveries.
- filter String
- JSON filter applied to events before delivery; use
jsonencode(). - webhook
Configuration StringId - The unique_id of the webhook configuration.
Outputs
All input properties are implicitly available as output properties. Additionally, the WebhookConfiguration 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 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 WebhookConfiguration Resource
Get an existing WebhookConfiguration 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?: WebhookConfigurationState, opts?: CustomResourceOptions): WebhookConfiguration@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
api_key: Optional[str] = None,
auth_secret_key: Optional[str] = None,
events: Optional[Sequence[str]] = None,
filter: Optional[str] = None,
url: Optional[str] = None,
webhook_configuration_id: Optional[str] = None) -> WebhookConfigurationfunc GetWebhookConfiguration(ctx *Context, name string, id IDInput, state *WebhookConfigurationState, opts ...ResourceOption) (*WebhookConfiguration, error)public static WebhookConfiguration Get(string name, Input<string> id, WebhookConfigurationState? state, CustomResourceOptions? opts = null)public static WebhookConfiguration get(String name, Output<String> id, WebhookConfigurationState state, CustomResourceOptions options)resources: _: type: zenduty:WebhookConfiguration get: id: ${id}import {
to = zenduty_webhook_configuration.example
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.
- Api
Key string API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- Auth
Secret stringKey - Secret used to sign deliveries.
- Events List<string>
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - Filter string
- JSON filter applied to events before delivery; use
jsonencode(). - Url string
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- Webhook
Configuration stringId - The unique_id of the webhook configuration.
- Api
Key string API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- Auth
Secret stringKey - Secret used to sign deliveries.
- Events []string
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - Filter string
- JSON filter applied to events before delivery; use
jsonencode(). - Url string
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- Webhook
Configuration stringId - The unique_id of the webhook configuration.
- api_
key string API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth_
secret_ stringkey - Secret used to sign deliveries.
- events list(string)
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - filter string
- JSON filter applied to events before delivery; use
jsonencode(). - url string
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- webhook_
configuration_ stringid - The unique_id of the webhook configuration.
- api
Key String API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth
Secret StringKey - Secret used to sign deliveries.
- events List<String>
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - filter String
- JSON filter applied to events before delivery; use
jsonencode(). - url String
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- webhook
Configuration StringId - The unique_id of the webhook configuration.
- api
Key string API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth
Secret stringKey - Secret used to sign deliveries.
- events string[]
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - filter string
- JSON filter applied to events before delivery; use
jsonencode(). - url string
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- webhook
Configuration stringId - The unique_id of the webhook configuration.
- api_
key str API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth_
secret_ strkey - Secret used to sign deliveries.
- events Sequence[str]
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - filter str
- JSON filter applied to events before delivery; use
jsonencode(). - url str
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- webhook_
configuration_ strid - The unique_id of the webhook configuration.
- api
Key String API key sent with deliveries.
The API never returns
auth_secret_keyandapi_key(reads return masked values), so the provider keeps the configured values in state and does not detect out-of-band changes to them. Every update sends the configuredfilter,auth_secret_keyandapi_key, so removing one from the configuration clears it on the next apply. After an import the secrets are absent from state and configuration: add them before the next apply that touches the webhook, or that apply clears them.- auth
Secret StringKey - Secret used to sign deliveries.
- events List<String>
- Events to deliver, one or more of
oncall_change,incident_create,incident_acknowledge,incident_resolve. - filter String
- JSON filter applied to events before delivery; use
jsonencode(). - url String
- HTTPS endpoint that receives the events. The API resolves the host on write and rejects private or unresolvable addresses. URLs are unique.
- webhook
Configuration StringId - The unique_id of the webhook configuration.
Import
hcl
resource “zenduty_webhook_configuration” “ops_bus” {
}
$ pulumi import zenduty:index/webhookConfiguration:WebhookConfiguration ops_bus webhook_configuration_id`
$ terraform state show zenduty_webhook_configuration.ops_bus
* copy the output data and paste inside zenduty_webhook_configuration.ops_bus resource block, remove the id attribute and add the secrets
$ pulumi preview to verify the import
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- zenduty zenduty/terraform-provider-zenduty
- License
- Notes
- This Pulumi package is based on the
zendutyTerraform Provider.
published on Friday, Oct 30, 2026 by zenduty