Viewing docs for PagerDuty v3.11.2 (Older version)
published on Monday, Mar 9, 2026 by Pulumi
published on Monday, Mar 9, 2026 by Pulumi
Viewing docs for PagerDuty v3.11.2 (Older version)
published on Monday, Mar 9, 2026 by Pulumi
published on Monday, Mar 9, 2026 by Pulumi
Use this data source to get information about a specific extension vendor that you can use for a service (e.g: Slack, Generic Webhook, ServiceNow).
Example Usage
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Pagerduty = Pulumi.Pagerduty;
return await Deployment.RunAsync(() =>
{
var webhook = Pagerduty.GetExtensionSchema.Invoke(new()
{
Name = "Generic V2 Webhook",
});
var exampleUser = new Pagerduty.User("exampleUser", new()
{
Email = "howard.james@example.domain",
Teams = new[]
{
pagerduty_team.Example.Id,
},
});
var foo = new Pagerduty.EscalationPolicy("foo", new()
{
NumLoops = 2,
Rules = new[]
{
new Pagerduty.Inputs.EscalationPolicyRuleArgs
{
EscalationDelayInMinutes = 10,
Targets = new[]
{
new Pagerduty.Inputs.EscalationPolicyRuleTargetArgs
{
Type = "user",
Id = exampleUser.Id,
},
},
},
},
});
var exampleService = new Pagerduty.Service("exampleService", new()
{
AutoResolveTimeout = "14400",
AcknowledgementTimeout = "600",
EscalationPolicy = pagerduty_escalation_policy.Example.Id,
});
var slack = new Pagerduty.Extension("slack", new()
{
EndpointUrl = "https://generic_webhook_url/XXXXXX/BBBBBB",
ExtensionSchema = webhook.Apply(getExtensionSchemaResult => getExtensionSchemaResult.Id),
ExtensionObjects = new[]
{
exampleService.Id,
},
});
});
package main
import (
"github.com/pulumi/pulumi-pagerduty/sdk/v3/go/pagerduty"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
webhook, err := pagerduty.GetExtensionSchema(ctx, &pagerduty.GetExtensionSchemaArgs{
Name: "Generic V2 Webhook",
}, nil)
if err != nil {
return err
}
exampleUser, err := pagerduty.NewUser(ctx, "exampleUser", &pagerduty.UserArgs{
Email: pulumi.String("howard.james@example.domain"),
Teams: pulumi.StringArray{
pagerduty_team.Example.Id,
},
})
if err != nil {
return err
}
_, err = pagerduty.NewEscalationPolicy(ctx, "foo", &pagerduty.EscalationPolicyArgs{
NumLoops: pulumi.Int(2),
Rules: pagerduty.EscalationPolicyRuleArray{
&pagerduty.EscalationPolicyRuleArgs{
EscalationDelayInMinutes: pulumi.Int(10),
Targets: pagerduty.EscalationPolicyRuleTargetArray{
&pagerduty.EscalationPolicyRuleTargetArgs{
Type: pulumi.String("user"),
Id: exampleUser.ID(),
},
},
},
},
})
if err != nil {
return err
}
exampleService, err := pagerduty.NewService(ctx, "exampleService", &pagerduty.ServiceArgs{
AutoResolveTimeout: pulumi.String("14400"),
AcknowledgementTimeout: pulumi.String("600"),
EscalationPolicy: pulumi.Any(pagerduty_escalation_policy.Example.Id),
})
if err != nil {
return err
}
_, err = pagerduty.NewExtension(ctx, "slack", &pagerduty.ExtensionArgs{
EndpointUrl: pulumi.String("https://generic_webhook_url/XXXXXX/BBBBBB"),
ExtensionSchema: *pulumi.String(webhook.Id),
ExtensionObjects: pulumi.StringArray{
exampleService.ID(),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.pagerduty.PagerdutyFunctions;
import com.pulumi.pagerduty.inputs.GetExtensionSchemaArgs;
import com.pulumi.pagerduty.User;
import com.pulumi.pagerduty.UserArgs;
import com.pulumi.pagerduty.EscalationPolicy;
import com.pulumi.pagerduty.EscalationPolicyArgs;
import com.pulumi.pagerduty.inputs.EscalationPolicyRuleArgs;
import com.pulumi.pagerduty.Service;
import com.pulumi.pagerduty.ServiceArgs;
import com.pulumi.pagerduty.Extension;
import com.pulumi.pagerduty.ExtensionArgs;
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) {
final var webhook = PagerdutyFunctions.getExtensionSchema(GetExtensionSchemaArgs.builder()
.name("Generic V2 Webhook")
.build());
var exampleUser = new User("exampleUser", UserArgs.builder()
.email("howard.james@example.domain")
.teams(pagerduty_team.example().id())
.build());
var foo = new EscalationPolicy("foo", EscalationPolicyArgs.builder()
.numLoops(2)
.rules(EscalationPolicyRuleArgs.builder()
.escalationDelayInMinutes(10)
.targets(EscalationPolicyRuleTargetArgs.builder()
.type("user")
.id(exampleUser.id())
.build())
.build())
.build());
var exampleService = new Service("exampleService", ServiceArgs.builder()
.autoResolveTimeout(14400)
.acknowledgementTimeout(600)
.escalationPolicy(pagerduty_escalation_policy.example().id())
.build());
var slack = new Extension("slack", ExtensionArgs.builder()
.endpointUrl("https://generic_webhook_url/XXXXXX/BBBBBB")
.extensionSchema(webhook.applyValue(getExtensionSchemaResult -> getExtensionSchemaResult.id()))
.extensionObjects(exampleService.id())
.build());
}
}
import * as pulumi from "@pulumi/pulumi";
import * as pagerduty from "@pulumi/pagerduty";
const webhook = pagerduty.getExtensionSchema({
name: "Generic V2 Webhook",
});
const exampleUser = new pagerduty.User("exampleUser", {
email: "howard.james@example.domain",
teams: [pagerduty_team.example.id],
});
const foo = new pagerduty.EscalationPolicy("foo", {
numLoops: 2,
rules: [{
escalationDelayInMinutes: 10,
targets: [{
type: "user",
id: exampleUser.id,
}],
}],
});
const exampleService = new pagerduty.Service("exampleService", {
autoResolveTimeout: "14400",
acknowledgementTimeout: "600",
escalationPolicy: pagerduty_escalation_policy.example.id,
});
const slack = new pagerduty.Extension("slack", {
endpointUrl: "https://generic_webhook_url/XXXXXX/BBBBBB",
extensionSchema: webhook.then(webhook => webhook.id),
extensionObjects: [exampleService.id],
});
import pulumi
import pulumi_pagerduty as pagerduty
webhook = pagerduty.get_extension_schema(name="Generic V2 Webhook")
example_user = pagerduty.User("exampleUser",
email="howard.james@example.domain",
teams=[pagerduty_team["example"]["id"]])
foo = pagerduty.EscalationPolicy("foo",
num_loops=2,
rules=[pagerduty.EscalationPolicyRuleArgs(
escalation_delay_in_minutes=10,
targets=[pagerduty.EscalationPolicyRuleTargetArgs(
type="user",
id=example_user.id,
)],
)])
example_service = pagerduty.Service("exampleService",
auto_resolve_timeout="14400",
acknowledgement_timeout="600",
escalation_policy=pagerduty_escalation_policy["example"]["id"])
slack = pagerduty.Extension("slack",
endpoint_url="https://generic_webhook_url/XXXXXX/BBBBBB",
extension_schema=webhook.id,
extension_objects=[example_service.id])
resources:
exampleUser:
type: pagerduty:User
properties:
email: howard.james@example.domain
teams:
- ${pagerduty_team.example.id}
foo:
type: pagerduty:EscalationPolicy
properties:
numLoops: 2
rules:
- escalationDelayInMinutes: 10
targets:
- type: user
id: ${exampleUser.id}
exampleService:
type: pagerduty:Service
properties:
autoResolveTimeout: 14400
acknowledgementTimeout: 600
escalationPolicy: ${pagerduty_escalation_policy.example.id}
slack:
type: pagerduty:Extension
properties:
endpointUrl: https://generic_webhook_url/XXXXXX/BBBBBB
extensionSchema: ${webhook.id}
extensionObjects:
- ${exampleService.id}
variables:
webhook:
fn::invoke:
Function: pagerduty:getExtensionSchema
Arguments:
name: Generic V2 Webhook
Using getExtensionSchema
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getExtensionSchema(args: GetExtensionSchemaArgs, opts?: InvokeOptions): Promise<GetExtensionSchemaResult>
function getExtensionSchemaOutput(args: GetExtensionSchemaOutputArgs, opts?: InvokeOptions): Output<GetExtensionSchemaResult>def get_extension_schema(name: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetExtensionSchemaResult
def get_extension_schema_output(name: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetExtensionSchemaResult]func GetExtensionSchema(ctx *Context, args *GetExtensionSchemaArgs, opts ...InvokeOption) (*GetExtensionSchemaResult, error)
func GetExtensionSchemaOutput(ctx *Context, args *GetExtensionSchemaOutputArgs, opts ...InvokeOption) GetExtensionSchemaResultOutput> Note: This function is named GetExtensionSchema in the Go SDK.
public static class GetExtensionSchema
{
public static Task<GetExtensionSchemaResult> InvokeAsync(GetExtensionSchemaArgs args, InvokeOptions? opts = null)
public static Output<GetExtensionSchemaResult> Invoke(GetExtensionSchemaInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetExtensionSchemaResult> getExtensionSchema(GetExtensionSchemaArgs args, InvokeOptions options)
public static Output<GetExtensionSchemaResult> getExtensionSchema(GetExtensionSchemaArgs args, InvokeOptions options)
fn::invoke:
function: pagerduty:index/getExtensionSchema:getExtensionSchema
arguments:
# arguments dictionaryThe following arguments are supported:
- Name string
- The extension name to use to find an extension vendor in the PagerDuty API.
- Name string
- The extension name to use to find an extension vendor in the PagerDuty API.
- name String
- The extension name to use to find an extension vendor in the PagerDuty API.
- name string
- The extension name to use to find an extension vendor in the PagerDuty API.
- name str
- The extension name to use to find an extension vendor in the PagerDuty API.
- name String
- The extension name to use to find an extension vendor in the PagerDuty API.
getExtensionSchema Result
The following output properties are available:
Package Details
- Repository
- PagerDuty pulumi/pulumi-pagerduty
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
pagerdutyTerraform Provider.
Viewing docs for PagerDuty v3.11.2 (Older version)
published on Monday, Mar 9, 2026 by Pulumi
published on Monday, Mar 9, 2026 by Pulumi
