import * as pulumi from "@pulumi/pulumi"; /** * Sentry Issue Alert resource. Note that there's no public documentation for the values of conditions, filters, and actions. You can either inspect the request payload sent when creating or editing an issue alert on Sentry or inspect [Sentry's rules registry in the source code](https://github.com/getsentry/sentry/tree/master/src/sentry/rules). Since v0.11.2, you should also omit the name property of each condition, filter, and action. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as sentry from "@pulumi/sentry"; * import * as sentry from "@pulumiverse/sentry"; * * // Retrieve a Slack integration * const slack = sentry.getSentryOrganizationIntegration({ * organization: test.organization, * providerKey: "slack", * name: "Slack Workspace", * }); * const main = new sentry.SentryIssueAlert("main", { * organization: mainSentryProject.organization, * project: mainSentryProject.id, * name: "My issue alert", * actionMatch: "any", * filterMatch: "any", * frequency: 30, * conditions: [ * { * id: "sentry.rules.conditions.first_seen_event.FirstSeenEventCondition", * }, * { * id: "sentry.rules.conditions.regression_event.RegressionEventCondition", * }, * { * id: "sentry.rules.conditions.event_frequency.EventFrequencyCondition", * value: "100", * comparisonType: "count", * interval: "1h", * }, * { * id: "sentry.rules.conditions.event_frequency.EventUniqueUserFrequencyCondition", * value: "100", * comparisonType: "count", * interval: "1h", * }, * { * id: "sentry.rules.conditions.event_frequency.EventFrequencyPercentCondition", * value: "50.0", * comparisonType: "count", * interval: "1h", * }, * ], * filters: [ * { * id: "sentry.rules.filters.age_comparison.AgeComparisonFilter", * value: "10", * time: "minute", * comparison_type: "older", * }, * { * id: "sentry.rules.filters.issue_occurrences.IssueOccurrencesFilter", * value: "10", * }, * { * id: "sentry.rules.filters.assigned_to.AssignedToFilter", * targetType: "Team", * targetIdentifier: mainSentryTeam.teamId, * }, * { * id: "sentry.rules.filters.latest_release.LatestReleaseFilter", * }, * { * id: "sentry.rules.filters.event_attribute.EventAttributeFilter", * attribute: "message", * match: "co", * value: "test", * }, * { * id: "sentry.rules.filters.tagged_event.TaggedEventFilter", * key: "test", * match: "co", * value: "test", * }, * { * id: "sentry.rules.filters.level.LevelFilter", * match: "eq", * level: "50", * }, * ], * actions: [ * { * id: "sentry.mail.actions.NotifyEmailAction", * targetType: "IssueOwners", * targetIdentifier: "", * }, * { * id: "sentry.mail.actions.NotifyEmailAction", * targetType: "Team", * targetIdentifier: mainSentryTeam.teamId, * }, * { * id: "sentry.rules.actions.notify_event.NotifyEventAction", * }, * { * id: "sentry.integrations.slack.notify_action.SlackNotifyServiceAction", * channel: "#general", * workspace: slack.then(slack => slack.internalId), * }, * ], * }); * ``` * * ## Import * * import using the organization, project slugs and rule id from the URL: * * https://sentry.io/organizations/[org-slug]/alerts/rules/[project-slug]/[rule-id]/details/ * * ```sh * $ pulumi import sentry:index/sentryIssueAlert:SentryIssueAlert default org-slug/project-slug/rule-id * ``` */ export declare class SentryIssueAlert extends pulumi.CustomResource { /** * Get an existing SentryIssueAlert 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, state?: SentryIssueAlertState, opts?: pulumi.CustomResourceOptions): SentryIssueAlert; /** * Returns true if the given object is an instance of SentryIssueAlert. 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 SentryIssueAlert; /** * Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen. */ readonly actionMatch: pulumi.Output; /** * List of actions. */ readonly actions: pulumi.Output<{ [key: string]: string; }[]>; /** * List of conditions. */ readonly conditions: pulumi.Output<{ [key: string]: string; }[]>; /** * Perform issue alert in a specific environment. */ readonly environment: pulumi.Output; /** * Trigger actions if `all`, `any`, or `none` of the specified filters match. */ readonly filterMatch: pulumi.Output; /** * List of filters. */ readonly filters: pulumi.Output<{ [key: string]: string; }[] | undefined>; /** * Perform actions at most once every `X` minutes for this issue. Defaults to `30`. */ readonly frequency: pulumi.Output; /** * The internal ID for this issue alert. */ readonly internalId: pulumi.Output; /** * The issue alert name. */ readonly name: pulumi.Output; /** * The slug of the organization the issue alert belongs to. */ readonly organization: pulumi.Output; /** * The slug of the project to create the issue alert for. */ readonly project: pulumi.Output; /** * Use `project` (singular) instead. * * @deprecated Use `project` (singular) instead. */ readonly projects: pulumi.Output; /** * Create a SentryIssueAlert 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: SentryIssueAlertArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering SentryIssueAlert resources. */ export interface SentryIssueAlertState { /** * Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen. */ actionMatch?: pulumi.Input; /** * List of actions. */ actions?: pulumi.Input; }>[]>; /** * List of conditions. */ conditions?: pulumi.Input; }>[]>; /** * Perform issue alert in a specific environment. */ environment?: pulumi.Input; /** * Trigger actions if `all`, `any`, or `none` of the specified filters match. */ filterMatch?: pulumi.Input; /** * List of filters. */ filters?: pulumi.Input; }>[]>; /** * Perform actions at most once every `X` minutes for this issue. Defaults to `30`. */ frequency?: pulumi.Input; /** * The internal ID for this issue alert. */ internalId?: pulumi.Input; /** * The issue alert name. */ name?: pulumi.Input; /** * The slug of the organization the issue alert belongs to. */ organization?: pulumi.Input; /** * The slug of the project to create the issue alert for. */ project?: pulumi.Input; /** * Use `project` (singular) instead. * * @deprecated Use `project` (singular) instead. */ projects?: pulumi.Input[]>; } /** * The set of arguments for constructing a SentryIssueAlert resource. */ export interface SentryIssueAlertArgs { /** * Trigger actions when an event is captured by Sentry and `any` or `all` of the specified conditions happen. */ actionMatch: pulumi.Input; /** * List of actions. */ actions: pulumi.Input; }>[]>; /** * List of conditions. */ conditions: pulumi.Input; }>[]>; /** * Perform issue alert in a specific environment. */ environment?: pulumi.Input; /** * Trigger actions if `all`, `any`, or `none` of the specified filters match. */ filterMatch: pulumi.Input; /** * List of filters. */ filters?: pulumi.Input; }>[]>; /** * Perform actions at most once every `X` minutes for this issue. Defaults to `30`. */ frequency: pulumi.Input; /** * The issue alert name. */ name?: pulumi.Input; /** * The slug of the organization the issue alert belongs to. */ organization: pulumi.Input; /** * The slug of the project to create the issue alert for. */ project: pulumi.Input; }