UNPKG

@pulumi/opsgenie

Version:

A Pulumi package for creating and managing opsgenie cloud resources.

227 lines (226 loc) 8.27 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Manages advanced actions for Integrations within Opsgenie. This applies for the following resources: * * `opsgenie.ApiIntegration` * * `opsgenie.EmailIntegration` * * The actions that are supported are: * * `create` * * `close` * * `acknowledge` * * `addNote` * * `ignore` * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as opsgenie from "@pulumi/opsgenie"; * import * as std from "@pulumi/std"; * * const testAction = new opsgenie.IntegrationAction("test_action", { * integrationId: testOpsgenieApiIntegration.id, * creates: [ * { * name: "create action", * tags: [ * "CRITICAL", * "SEV-0", * ], * user: "Example-service", * note: "{{note}}", * alias: "{{alias}}", * source: "{{source}}", * message: "{{message}}", * description: "{{description}}", * entity: "{{entity}}", * alertActions: ["Runbook ID#342"], * filters: [{ * type: "match-all-conditions", * conditions: [{ * field: "priority", * operation: "equals", * expectedValue: "P1", * }], * }], * responders: [{ * id: test.id, * type: "team", * }], * }, * { * name: "create action with multiline description", * message: "{{message}}", * description: std.chomp({ * input: `This * is a multiline * description. * `, * }).then(invoke => invoke.result), * filters: [{ * type: "match-all-conditions", * conditions: [{ * field: "priority", * operation: "equals", * expectedValue: "P1", * }], * }], * }, * { * name: "Create medium priority alerts", * tags: [ * "SEVERE", * "SEV-1", * ], * priority: "P3", * filters: [{ * type: "match-all-conditions", * conditions: [{ * field: "priority", * operation: "equals", * expectedValue: "P2", * }], * }], * }, * { * name: "Create alert with priority from message", * customPriority: "{{message.substringAfter(\"[custom]\")}}", * filters: [{ * type: "match-all-conditions", * conditions: [ * { * field: "tags", * operation: "contains", * expectedValue: "P5", * }, * { * field: "message", * operation: "starts-with", * expectedValue: "[custom]", * }, * ], * }], * }, * ], * closes: [{ * name: "Low priority alerts", * filters: [{ * type: "match-any-condition", * conditions: [ * { * field: "priority", * operation: "equals", * expectedValue: "P5", * }, * { * field: "message", * operation: "contains", * expectedValue: "DEBUG", * }, * ], * }], * }], * acknowledges: [{ * name: "Auto-ack test alerts", * filters: [{ * type: "match-all-conditions", * conditions: [ * { * field: "message", * not: true, * operation: "contains", * expectedValue: "TEST", * }, * { * field: "priority", * operation: "equals", * expectedValue: "P5", * }, * ], * }], * }], * addNotes: [{ * name: "Add note to all alerts", * note: "Created from test integration", * filters: [{ * type: "match-all", * }], * }], * ignores: [{ * name: "Ignore alerts with ignore tag", * filters: [{ * type: "match-all-conditions", * conditions: [{ * field: "tags", * operation: "contains", * expectedValue: "ignore", * }], * }], * }], * }); * ``` */ export declare class IntegrationAction extends pulumi.CustomResource { /** * Get an existing IntegrationAction resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: IntegrationActionState, opts?: pulumi.CustomResourceOptions): IntegrationAction; /** * Returns true if the given object is an instance of IntegrationAction. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is IntegrationAction; readonly acknowledges: pulumi.Output<outputs.IntegrationActionAcknowledge[] | undefined>; readonly addNotes: pulumi.Output<outputs.IntegrationActionAddNote[] | undefined>; readonly closes: pulumi.Output<outputs.IntegrationActionClose[] | undefined>; readonly creates: pulumi.Output<outputs.IntegrationActionCreate[] | undefined>; readonly ignores: pulumi.Output<outputs.IntegrationActionIgnore[] | undefined>; /** * ID of the parent integration resource to bind to. */ readonly integrationId: pulumi.Output<string>; /** * Create a IntegrationAction resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: IntegrationActionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering IntegrationAction resources. */ export interface IntegrationActionState { acknowledges?: pulumi.Input<pulumi.Input<inputs.IntegrationActionAcknowledge>[]>; addNotes?: pulumi.Input<pulumi.Input<inputs.IntegrationActionAddNote>[]>; closes?: pulumi.Input<pulumi.Input<inputs.IntegrationActionClose>[]>; creates?: pulumi.Input<pulumi.Input<inputs.IntegrationActionCreate>[]>; ignores?: pulumi.Input<pulumi.Input<inputs.IntegrationActionIgnore>[]>; /** * ID of the parent integration resource to bind to. */ integrationId?: pulumi.Input<string>; } /** * The set of arguments for constructing a IntegrationAction resource. */ export interface IntegrationActionArgs { acknowledges?: pulumi.Input<pulumi.Input<inputs.IntegrationActionAcknowledge>[]>; addNotes?: pulumi.Input<pulumi.Input<inputs.IntegrationActionAddNote>[]>; closes?: pulumi.Input<pulumi.Input<inputs.IntegrationActionClose>[]>; creates?: pulumi.Input<pulumi.Input<inputs.IntegrationActionCreate>[]>; ignores?: pulumi.Input<pulumi.Input<inputs.IntegrationActionIgnore>[]>; /** * ID of the parent integration resource to bind to. */ integrationId: pulumi.Input<string>; }