1. Packages
  2. Pagerduty Provider
  3. API Docs
  4. getVendor
PagerDuty v4.17.0 published on Wednesday, Nov 20, 2024 by Pulumi

pagerduty.getVendor

Explore with Pulumi AI

pagerduty logo
PagerDuty v4.17.0 published on Wednesday, Nov 20, 2024 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,
    });
    
    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)
    
    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
    	})
    }
    
    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,
        });
    
    });
    
    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.applyValue(getVendorResult -> getVendorResult.id()))
                .service(exampleService.id())
                .build());
    
        }
    }
    
    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
    

    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>
    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]
    func GetVendor(ctx *Context, args *GetVendorArgs, opts ...InvokeOption) (*GetVendorResult, error)
    func GetVendorOutput(ctx *Context, args *GetVendorOutputArgs, opts ...InvokeOption) GetVendorResultOutput

    > 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)
    }
    public static CompletableFuture<GetVendorResult> getVendor(GetVendorArgs args, InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: pagerduty:index/getVendor:getVendor
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Name string
    The vendor name to use to find a vendor in the PagerDuty API.
    Name string
    The vendor name to use to find a vendor in the PagerDuty API.
    name String
    The vendor name to use to find a vendor in the PagerDuty API.
    name string
    The vendor name to use to find a vendor in the PagerDuty API.
    name str
    The vendor name to use to find a vendor in the PagerDuty API.
    name 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 logo
    PagerDuty v4.17.0 published on Wednesday, Nov 20, 2024 by Pulumi