1. Packages
  2. Pagerduty Provider
  3. API Docs
  4. getVendor
PagerDuty v4.23.0 published on Wednesday, Apr 16, 2025 by Pulumi

pagerduty.getVendor

Explore with Pulumi AI

PagerDuty v4.23.0 published on Wednesday, Apr 16, 2025 by Pulumi

Use this data source to get information about a specific vendor that you can use for a service integration (e.g. Amazon Cloudwatch, Splunk, Datadog).

For the case of vendors that rely on Change Events (e.g. Jekings CI, Github, Gitlab, …) is important to know that those vendors are only available with PagerDuty AIOps add-on. Therefore, they won’t be accessible as result of pagerduty.getVendor data source without the proper entitlements.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as pagerduty from "@pulumi/pagerduty";

const datadog = pagerduty.getVendor({
    name: "Datadog",
});
const example = new pagerduty.User("example", {
    name: "Earline Greenholt",
    email: "125.greenholt.earline@graham.name",
    teams: [examplePagerdutyTeam.id],
});
const foo = new pagerduty.EscalationPolicy("foo", {
    name: "Engineering Escalation Policy",
    numLoops: 2,
    rules: [{
        escalationDelayInMinutes: 10,
        targets: [{
            type: "user",
            id: example.id,
        }],
    }],
});
const exampleService = new pagerduty.Service("example", {
    name: "My Web App",
    autoResolveTimeout: "14400",
    acknowledgementTimeout: "600",
    escalationPolicy: examplePagerdutyEscalationPolicy.id,
});
const exampleServiceIntegration = new pagerduty.ServiceIntegration("example", {
    name: "Datadog Integration",
    vendor: datadog.then(datadog => datadog.id),
    service: exampleService.id,
});
Copy
import pulumi
import pulumi_pagerduty as pagerduty

datadog = pagerduty.get_vendor(name="Datadog")
example = pagerduty.User("example",
    name="Earline Greenholt",
    email="125.greenholt.earline@graham.name",
    teams=[example_pagerduty_team["id"]])
foo = pagerduty.EscalationPolicy("foo",
    name="Engineering Escalation Policy",
    num_loops=2,
    rules=[{
        "escalation_delay_in_minutes": 10,
        "targets": [{
            "type": "user",
            "id": example.id,
        }],
    }])
example_service = pagerduty.Service("example",
    name="My Web App",
    auto_resolve_timeout="14400",
    acknowledgement_timeout="600",
    escalation_policy=example_pagerduty_escalation_policy["id"])
example_service_integration = pagerduty.ServiceIntegration("example",
    name="Datadog Integration",
    vendor=datadog.id,
    service=example_service.id)
Copy
package main

import (
	"github.com/pulumi/pulumi-pagerduty/sdk/v4/go/pagerduty"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		datadog, err := pagerduty.GetVendor(ctx, &pagerduty.GetVendorArgs{
			Name: "Datadog",
		}, nil)
		if err != nil {
			return err
		}
		example, err := pagerduty.NewUser(ctx, "example", &pagerduty.UserArgs{
			Name:  pulumi.String("Earline Greenholt"),
			Email: pulumi.String("125.greenholt.earline@graham.name"),
			Teams: pulumi.StringArray{
				examplePagerdutyTeam.Id,
			},
		})
		if err != nil {
			return err
		}
		_, err = pagerduty.NewEscalationPolicy(ctx, "foo", &pagerduty.EscalationPolicyArgs{
			Name:     pulumi.String("Engineering Escalation Policy"),
			NumLoops: pulumi.Int(2),
			Rules: pagerduty.EscalationPolicyRuleArray{
				&pagerduty.EscalationPolicyRuleArgs{
					EscalationDelayInMinutes: pulumi.Int(10),
					Targets: pagerduty.EscalationPolicyRuleTargetArray{
						&pagerduty.EscalationPolicyRuleTargetArgs{
							Type: pulumi.String("user"),
							Id:   example.ID(),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		exampleService, err := pagerduty.NewService(ctx, "example", &pagerduty.ServiceArgs{
			Name:                   pulumi.String("My Web App"),
			AutoResolveTimeout:     pulumi.String("14400"),
			AcknowledgementTimeout: pulumi.String("600"),
			EscalationPolicy:       pulumi.Any(examplePagerdutyEscalationPolicy.Id),
		})
		if err != nil {
			return err
		}
		_, err = pagerduty.NewServiceIntegration(ctx, "example", &pagerduty.ServiceIntegrationArgs{
			Name:    pulumi.String("Datadog Integration"),
			Vendor:  pulumi.String(datadog.Id),
			Service: exampleService.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Pagerduty = Pulumi.Pagerduty;

return await Deployment.RunAsync(() => 
{
    var datadog = Pagerduty.GetVendor.Invoke(new()
    {
        Name = "Datadog",
    });

    var example = new Pagerduty.User("example", new()
    {
        Name = "Earline Greenholt",
        Email = "125.greenholt.earline@graham.name",
        Teams = new[]
        {
            examplePagerdutyTeam.Id,
        },
    });

    var foo = new Pagerduty.EscalationPolicy("foo", new()
    {
        Name = "Engineering Escalation Policy",
        NumLoops = 2,
        Rules = new[]
        {
            new Pagerduty.Inputs.EscalationPolicyRuleArgs
            {
                EscalationDelayInMinutes = 10,
                Targets = new[]
                {
                    new Pagerduty.Inputs.EscalationPolicyRuleTargetArgs
                    {
                        Type = "user",
                        Id = example.Id,
                    },
                },
            },
        },
    });

    var exampleService = new Pagerduty.Service("example", new()
    {
        Name = "My Web App",
        AutoResolveTimeout = "14400",
        AcknowledgementTimeout = "600",
        EscalationPolicy = examplePagerdutyEscalationPolicy.Id,
    });

    var exampleServiceIntegration = new Pagerduty.ServiceIntegration("example", new()
    {
        Name = "Datadog Integration",
        Vendor = datadog.Apply(getVendorResult => getVendorResult.Id),
        Service = exampleService.Id,
    });

});
Copy
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.GetVendorArgs;
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.ServiceIntegration;
import com.pulumi.pagerduty.ServiceIntegrationArgs;
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 datadog = PagerdutyFunctions.getVendor(GetVendorArgs.builder()
            .name("Datadog")
            .build());

        var example = new User("example", UserArgs.builder()
            .name("Earline Greenholt")
            .email("125.greenholt.earline@graham.name")
            .teams(examplePagerdutyTeam.id())
            .build());

        var foo = new EscalationPolicy("foo", EscalationPolicyArgs.builder()
            .name("Engineering Escalation Policy")
            .numLoops(2)
            .rules(EscalationPolicyRuleArgs.builder()
                .escalationDelayInMinutes(10)
                .targets(EscalationPolicyRuleTargetArgs.builder()
                    .type("user")
                    .id(example.id())
                    .build())
                .build())
            .build());

        var exampleService = new Service("exampleService", ServiceArgs.builder()
            .name("My Web App")
            .autoResolveTimeout("14400")
            .acknowledgementTimeout("600")
            .escalationPolicy(examplePagerdutyEscalationPolicy.id())
            .build());

        var exampleServiceIntegration = new ServiceIntegration("exampleServiceIntegration", ServiceIntegrationArgs.builder()
            .name("Datadog Integration")
            .vendor(datadog.id())
            .service(exampleService.id())
            .build());

    }
}
Copy
resources:
  example:
    type: pagerduty:User
    properties:
      name: Earline Greenholt
      email: 125.greenholt.earline@graham.name
      teams:
        - ${examplePagerdutyTeam.id}
  foo:
    type: pagerduty:EscalationPolicy
    properties:
      name: Engineering Escalation Policy
      numLoops: 2
      rules:
        - escalationDelayInMinutes: 10
          targets:
            - type: user
              id: ${example.id}
  exampleService:
    type: pagerduty:Service
    name: example
    properties:
      name: My Web App
      autoResolveTimeout: 14400
      acknowledgementTimeout: 600
      escalationPolicy: ${examplePagerdutyEscalationPolicy.id}
  exampleServiceIntegration:
    type: pagerduty:ServiceIntegration
    name: example
    properties:
      name: Datadog Integration
      vendor: ${datadog.id}
      service: ${exampleService.id}
variables:
  datadog:
    fn::invoke:
      function: pagerduty:getVendor
      arguments:
        name: Datadog
Copy

Using getVendor

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 getVendor(args: GetVendorArgs, opts?: InvokeOptions): Promise<GetVendorResult>
function getVendorOutput(args: GetVendorOutputArgs, opts?: InvokeOptions): Output<GetVendorResult>
Copy
def get_vendor(name: Optional[str] = None,
               opts: Optional[InvokeOptions] = None) -> GetVendorResult
def get_vendor_output(name: Optional[pulumi.Input[str]] = None,
               opts: Optional[InvokeOptions] = None) -> Output[GetVendorResult]
Copy
func GetVendor(ctx *Context, args *GetVendorArgs, opts ...InvokeOption) (*GetVendorResult, error)
func GetVendorOutput(ctx *Context, args *GetVendorOutputArgs, opts ...InvokeOption) GetVendorResultOutput
Copy

> Note: This function is named GetVendor in the Go SDK.

public static class GetVendor 
{
    public static Task<GetVendorResult> InvokeAsync(GetVendorArgs args, InvokeOptions? opts = null)
    public static Output<GetVendorResult> Invoke(GetVendorInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetVendorResult> getVendor(GetVendorArgs args, InvokeOptions options)
public static Output<GetVendorResult> getVendor(GetVendorArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: pagerduty:index/getVendor:getVendor
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

Name This property is required. string
The vendor name to use to find a vendor in the PagerDuty API.
Name This property is required. string
The vendor name to use to find a vendor in the PagerDuty API.
name This property is required. String
The vendor name to use to find a vendor in the PagerDuty API.
name This property is required. string
The vendor name to use to find a vendor in the PagerDuty API.
name This property is required. str
The vendor name to use to find a vendor in the PagerDuty API.
name This property is required. String
The vendor name to use to find a vendor in the PagerDuty API.

getVendor Result

The following output properties are available:

Id string
The provider-assigned unique ID for this managed resource.
Name string
The short name of the found vendor.
Type string
The generic service type for this vendor.
Id string
The provider-assigned unique ID for this managed resource.
Name string
The short name of the found vendor.
Type string
The generic service type for this vendor.
id String
The provider-assigned unique ID for this managed resource.
name String
The short name of the found vendor.
type String
The generic service type for this vendor.
id string
The provider-assigned unique ID for this managed resource.
name string
The short name of the found vendor.
type string
The generic service type for this vendor.
id str
The provider-assigned unique ID for this managed resource.
name str
The short name of the found vendor.
type str
The generic service type for this vendor.
id String
The provider-assigned unique ID for this managed resource.
name String
The short name of the found vendor.
type String
The generic service type for this vendor.

Package Details

Repository
PagerDuty pulumi/pulumi-pagerduty
License
Apache-2.0
Notes
This Pulumi package is based on the pagerduty Terraform Provider.
PagerDuty v4.23.0 published on Wednesday, Apr 16, 2025 by Pulumi