All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.alicloud.sls.kotlin.Alert.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 3.62.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.alicloud.sls.kotlin

import com.pulumi.alicloud.sls.kotlin.outputs.AlertConfiguration
import com.pulumi.alicloud.sls.kotlin.outputs.AlertSchedule
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import com.pulumi.alicloud.sls.kotlin.outputs.AlertConfiguration.Companion.toKotlin as alertConfigurationToKotlin
import com.pulumi.alicloud.sls.kotlin.outputs.AlertSchedule.Companion.toKotlin as alertScheduleToKotlin

/**
 * Builder for [Alert].
 */
@PulumiTagMarker
public class AlertResourceBuilder internal constructor() {
    public var name: String? = null

    public var args: AlertArgs = AlertArgs()

    public var opts: CustomResourceOptions = CustomResourceOptions()

    /**
     * @param name The _unique_ name of the resulting resource.
     */
    public fun name(`value`: String) {
        this.name = value
    }

    /**
     * @param block The arguments to use to populate this resource's properties.
     */
    public suspend fun args(block: suspend AlertArgsBuilder.() -> Unit) {
        val builder = AlertArgsBuilder()
        block(builder)
        this.args = builder.build()
    }

    /**
     * @param block A bag of options that control this resource's behavior.
     */
    public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
        this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
    }

    internal fun build(): Alert {
        val builtJavaResource = com.pulumi.alicloud.sls.Alert(
            this.name,
            this.args.toJava(),
            this.opts.toJava(),
        )
        return Alert(builtJavaResource)
    }
}

/**
 * Provides a SLS Alert resource.
 * For information about SLS Alert and how to use it, see [What is Alert](https://www.alibabacloud.com/help/en/doc-detail/209202.html).
 * > **NOTE:** Available since v1.223.0.
 * ## Example Usage
 * Basic Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as alicloud from "@pulumi/alicloud";
 * import * as random from "@pulumi/random";
 * const config = new pulumi.Config();
 * const name = config.get("name") || "terraform-example";
 * const alertName = config.get("alertName") || "openapi-terraform-alert";
 * const projectName = config.get("projectName") || "terraform-alert-example";
 * const _default = new random.index.Integer("default", {
 *     min: 10000,
 *     max: 99999,
 * });
 * const defaultINsMgl = new alicloud.log.Project("defaultINsMgl", {
 *     description: `${projectName}-${_default.result}`,
 *     projectName: `${projectName}-${_default.result}`,
 * });
 * const defaultAlert = new alicloud.sls.Alert("default", {
 *     schedule: {
 *         type: "FixedRate",
 *         runImmdiately: true,
 *         interval: "1m",
 *         timeZone: "+0800",
 *         delay: 10,
 *     },
 *     displayName: "openapi-terraform",
 *     description: "create alert",
 *     status: "ENABLED",
 *     configuration: {
 *         groupConfiguration: {
 *             fields: [
 *                 "a",
 *                 "b",
 *             ],
 *             type: "no_group",
 *         },
 *         noDataFire: false,
 *         version: "2",
 *         severityConfigurations: [{
 *             severity: 6,
 *             evalCondition: {
 *                 countCondition: "cnt > 0",
 *                 condition: "__count__ > 1",
 *             },
 *         }],
 *         labels: [{
 *             key: "a",
 *             value: "b",
 *         }],
 *         autoAnnotation: true,
 *         templateConfiguration: {
 *             lang: "cn",
 *             tokens: {
 *                 a: "b",
 *             },
 *             annotations: {
 *                 x: "y",
 *             },
 *             templateId: "sls.app.ack.autoscaler.cluster_unhealthy",
 *             type: "sys",
 *             version: "1.0",
 *         },
 *         muteUntil: 0,
 *         annotations: [{
 *             key: "x",
 *             value: "y",
 *         }],
 *         sendResolved: false,
 *         threshold: 1,
 *         sinkCms: {
 *             enabled: false,
 *         },
 *         conditionConfiguration: {
 *             condition: "cnt > 3",
 *             countCondition: "__count__ < 3",
 *         },
 *         policyConfiguration: {
 *             alertPolicyId: "sls.builtin.dynamic",
 *             actionPolicyId: "wkb-action",
 *             repeatInterval: "1m",
 *         },
 *         dashboard: "internal-alert",
 *         type: "tpl",
 *         queryLists: [
 *             {
 *                 ui: "{}",
 *                 roleArn: "acs:ram::1654218965343050:role/aliyunslsalertmonitorrole",
 *                 query: "* | select *",
 *                 timeSpanType: "Relative",
 *                 project: defaultINsMgl.projectName,
 *                 powerSqlMode: "disable",
 *                 dashboardId: "wkb-dashboard",
 *                 chartTitle: "wkb-chart",
 *                 start: "-15m",
 *                 end: "now",
 *                 storeType: "log",
 *                 store: "alert",
 *                 region: "cn-shanghai",
 *             },
 *             {
 *                 storeType: "meta",
 *                 store: "user.rds_ip_whitelist",
 *             },
 *             {
 *                 storeType: "meta",
 *                 store: "myexample1",
 *             },
 *         ],
 *         joinConfigurations: [
 *             {
 *                 type: "no_join",
 *                 condition: "aa",
 *             },
 *             {
 *                 type: "cross_join",
 *                 condition: "qqq",
 *             },
 *             {
 *                 type: "inner_join",
 *                 condition: "fefefe",
 *             },
 *         ],
 *         sinkEventStore: {
 *             enabled: true,
 *             endpoint: "cn-shanghai-intranet.log.aliyuncs.com",
 *             project: "wkb-wangren",
 *             eventStore: "alert",
 *             roleArn: "acs:ram::1654218965343050:role/aliyunlogetlrole",
 *         },
 *         sinkAlerthub: {
 *             enabled: false,
 *         },
 *         noDataSeverity: 6,
 *         tags: [
 *             "wkb",
 *             "wangren",
 *             "sls",
 *         ],
 *     },
 *     alertName: alertName,
 *     projectName: defaultINsMgl.projectName,
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_alicloud as alicloud
 * import pulumi_random as random
 * config = pulumi.Config()
 * name = config.get("name")
 * if name is None:
 *     name = "terraform-example"
 * alert_name = config.get("alertName")
 * if alert_name is None:
 *     alert_name = "openapi-terraform-alert"
 * project_name = config.get("projectName")
 * if project_name is None:
 *     project_name = "terraform-alert-example"
 * default = random.index.Integer("default",
 *     min=10000,
 *     max=99999)
 * default_ins_mgl = alicloud.log.Project("defaultINsMgl",
 *     description=f"{project_name}-{default['result']}",
 *     project_name=f"{project_name}-{default['result']}")
 * default_alert = alicloud.sls.Alert("default",
 *     schedule={
 *         "type": "FixedRate",
 *         "run_immdiately": True,
 *         "interval": "1m",
 *         "time_zone": "+0800",
 *         "delay": 10,
 *     },
 *     display_name="openapi-terraform",
 *     description="create alert",
 *     status="ENABLED",
 *     configuration={
 *         "group_configuration": {
 *             "fields": [
 *                 "a",
 *                 "b",
 *             ],
 *             "type": "no_group",
 *         },
 *         "no_data_fire": False,
 *         "version": "2",
 *         "severity_configurations": [{
 *             "severity": 6,
 *             "eval_condition": {
 *                 "count_condition": "cnt > 0",
 *                 "condition": "__count__ > 1",
 *             },
 *         }],
 *         "labels": [{
 *             "key": "a",
 *             "value": "b",
 *         }],
 *         "auto_annotation": True,
 *         "template_configuration": {
 *             "lang": "cn",
 *             "tokens": {
 *                 "a": "b",
 *             },
 *             "annotations": {
 *                 "x": "y",
 *             },
 *             "template_id": "sls.app.ack.autoscaler.cluster_unhealthy",
 *             "type": "sys",
 *             "version": "1.0",
 *         },
 *         "mute_until": 0,
 *         "annotations": [{
 *             "key": "x",
 *             "value": "y",
 *         }],
 *         "send_resolved": False,
 *         "threshold": 1,
 *         "sink_cms": {
 *             "enabled": False,
 *         },
 *         "condition_configuration": {
 *             "condition": "cnt > 3",
 *             "count_condition": "__count__ < 3",
 *         },
 *         "policy_configuration": {
 *             "alert_policy_id": "sls.builtin.dynamic",
 *             "action_policy_id": "wkb-action",
 *             "repeat_interval": "1m",
 *         },
 *         "dashboard": "internal-alert",
 *         "type": "tpl",
 *         "query_lists": [
 *             {
 *                 "ui": "{}",
 *                 "role_arn": "acs:ram::1654218965343050:role/aliyunslsalertmonitorrole",
 *                 "query": "* | select *",
 *                 "time_span_type": "Relative",
 *                 "project": default_ins_mgl.project_name,
 *                 "power_sql_mode": "disable",
 *                 "dashboard_id": "wkb-dashboard",
 *                 "chart_title": "wkb-chart",
 *                 "start": "-15m",
 *                 "end": "now",
 *                 "store_type": "log",
 *                 "store": "alert",
 *                 "region": "cn-shanghai",
 *             },
 *             {
 *                 "store_type": "meta",
 *                 "store": "user.rds_ip_whitelist",
 *             },
 *             {
 *                 "store_type": "meta",
 *                 "store": "myexample1",
 *             },
 *         ],
 *         "join_configurations": [
 *             {
 *                 "type": "no_join",
 *                 "condition": "aa",
 *             },
 *             {
 *                 "type": "cross_join",
 *                 "condition": "qqq",
 *             },
 *             {
 *                 "type": "inner_join",
 *                 "condition": "fefefe",
 *             },
 *         ],
 *         "sink_event_store": {
 *             "enabled": True,
 *             "endpoint": "cn-shanghai-intranet.log.aliyuncs.com",
 *             "project": "wkb-wangren",
 *             "event_store": "alert",
 *             "role_arn": "acs:ram::1654218965343050:role/aliyunlogetlrole",
 *         },
 *         "sink_alerthub": {
 *             "enabled": False,
 *         },
 *         "no_data_severity": 6,
 *         "tags": [
 *             "wkb",
 *             "wangren",
 *             "sls",
 *         ],
 *     },
 *     alert_name=alert_name,
 *     project_name=default_ins_mgl.project_name)
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AliCloud = Pulumi.AliCloud;
 * using Random = Pulumi.Random;
 * return await Deployment.RunAsync(() =>
 * {
 *     var config = new Config();
 *     var name = config.Get("name") ?? "terraform-example";
 *     var alertName = config.Get("alertName") ?? "openapi-terraform-alert";
 *     var projectName = config.Get("projectName") ?? "terraform-alert-example";
 *     var @default = new Random.Index.Integer("default", new()
 *     {
 *         Min = 10000,
 *         Max = 99999,
 *     });
 *     var defaultINsMgl = new AliCloud.Log.Project("defaultINsMgl", new()
 *     {
 *         Description = $"{projectName}-{@default.Result}",
 *         ProjectName = $"{projectName}-{@default.Result}",
 *     });
 *     var defaultAlert = new AliCloud.Sls.Alert("default", new()
 *     {
 *         Schedule = new AliCloud.Sls.Inputs.AlertScheduleArgs
 *         {
 *             Type = "FixedRate",
 *             RunImmdiately = true,
 *             Interval = "1m",
 *             TimeZone = "+0800",
 *             Delay = 10,
 *         },
 *         DisplayName = "openapi-terraform",
 *         Description = "create alert",
 *         Status = "ENABLED",
 *         Configuration = new AliCloud.Sls.Inputs.AlertConfigurationArgs
 *         {
 *             GroupConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationGroupConfigurationArgs
 *             {
 *                 Fields = new[]
 *                 {
 *                     "a",
 *                     "b",
 *                 },
 *                 Type = "no_group",
 *             },
 *             NoDataFire = false,
 *             Version = "2",
 *             SeverityConfigurations = new[]
 *             {
 *                 new AliCloud.Sls.Inputs.AlertConfigurationSeverityConfigurationArgs
 *                 {
 *                     Severity = 6,
 *                     EvalCondition = new AliCloud.Sls.Inputs.AlertConfigurationSeverityConfigurationEvalConditionArgs
 *                     {
 *                         CountCondition = "cnt > 0",
 *                         Condition = "__count__ > 1",
 *                     },
 *                 },
 *             },
 *             Labels = new[]
 *             {
 *                 new AliCloud.Sls.Inputs.AlertConfigurationLabelArgs
 *                 {
 *                     Key = "a",
 *                     Value = "b",
 *                 },
 *             },
 *             AutoAnnotation = true,
 *             TemplateConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationTemplateConfigurationArgs
 *             {
 *                 Lang = "cn",
 *                 Tokens =
 *                 {
 *                     { "a", "b" },
 *                 },
 *                 Annotations =
 *                 {
 *                     { "x", "y" },
 *                 },
 *                 TemplateId = "sls.app.ack.autoscaler.cluster_unhealthy",
 *                 Type = "sys",
 *                 Version = "1.0",
 *             },
 *             MuteUntil = 0,
 *             Annotations = new[]
 *             {
 *                 new AliCloud.Sls.Inputs.AlertConfigurationAnnotationArgs
 *                 {
 *                     Key = "x",
 *                     Value = "y",
 *                 },
 *             },
 *             SendResolved = false,
 *             Threshold = 1,
 *             SinkCms = new AliCloud.Sls.Inputs.AlertConfigurationSinkCmsArgs
 *             {
 *                 Enabled = false,
 *             },
 *             ConditionConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationConditionConfigurationArgs
 *             {
 *                 Condition = "cnt > 3",
 *                 CountCondition = "__count__ < 3",
 *             },
 *             PolicyConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationPolicyConfigurationArgs
 *             {
 *                 AlertPolicyId = "sls.builtin.dynamic",
 *                 ActionPolicyId = "wkb-action",
 *                 RepeatInterval = "1m",
 *             },
 *             Dashboard = "internal-alert",
 *             Type = "tpl",
 *             QueryLists = new[]
 *             {
 *                 new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs
 *                 {
 *                     Ui = "{}",
 *                     RoleArn = "acs:ram::1654218965343050:role/aliyunslsalertmonitorrole",
 *                     Query = "* | select *",
 *                     TimeSpanType = "Relative",
 *                     Project = defaultINsMgl.ProjectName,
 *                     PowerSqlMode = "disable",
 *                     DashboardId = "wkb-dashboard",
 *                     ChartTitle = "wkb-chart",
 *                     Start = "-15m",
 *                     End = "now",
 *                     StoreType = "log",
 *                     Store = "alert",
 *                     Region = "cn-shanghai",
 *                 },
 *                 new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs
 *                 {
 *                     StoreType = "meta",
 *                     Store = "user.rds_ip_whitelist",
 *                 },
 *                 new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs
 *                 {
 *                     StoreType = "meta",
 *                     Store = "myexample1",
 *                 },
 *             },
 *             JoinConfigurations = new[]
 *             {
 *                 new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs
 *                 {
 *                     Type = "no_join",
 *                     Condition = "aa",
 *                 },
 *                 new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs
 *                 {
 *                     Type = "cross_join",
 *                     Condition = "qqq",
 *                 },
 *                 new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs
 *                 {
 *                     Type = "inner_join",
 *                     Condition = "fefefe",
 *                 },
 *             },
 *             SinkEventStore = new AliCloud.Sls.Inputs.AlertConfigurationSinkEventStoreArgs
 *             {
 *                 Enabled = true,
 *                 Endpoint = "cn-shanghai-intranet.log.aliyuncs.com",
 *                 Project = "wkb-wangren",
 *                 EventStore = "alert",
 *                 RoleArn = "acs:ram::1654218965343050:role/aliyunlogetlrole",
 *             },
 *             SinkAlerthub = new AliCloud.Sls.Inputs.AlertConfigurationSinkAlerthubArgs
 *             {
 *                 Enabled = false,
 *             },
 *             NoDataSeverity = 6,
 *             Tags = new[]
 *             {
 *                 "wkb",
 *                 "wangren",
 *                 "sls",
 *             },
 *         },
 *         AlertName = alertName,
 *         ProjectName = defaultINsMgl.ProjectName,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"fmt"
 * 	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log"
 * 	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls"
 * 	"github.com/pulumi/pulumi-random/sdk/v4/go/random"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		cfg := config.New(ctx, "")
 * 		name := "terraform-example"
 * 		if param := cfg.Get("name"); param != "" {
 * 			name = param
 * 		}
 * 		alertName := "openapi-terraform-alert"
 * 		if param := cfg.Get("alertName"); param != "" {
 * 			alertName = param
 * 		}
 * 		projectName := "terraform-alert-example"
 * 		if param := cfg.Get("projectName"); param != "" {
 * 			projectName = param
 * 		}
 * 		_, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
 * 			Min: 10000,
 * 			Max: 99999,
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		defaultINsMgl, err := log.NewProject(ctx, "defaultINsMgl", &log.ProjectArgs{
 * 			Description: pulumi.Sprintf("%v-%v", projectName, _default.Result),
 * 			ProjectName: pulumi.Sprintf("%v-%v", projectName, _default.Result),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = sls.NewAlert(ctx, "default", &sls.AlertArgs{
 * 			Schedule: &sls.AlertScheduleArgs{
 * 				Type:          pulumi.String("FixedRate"),
 * 				RunImmdiately: pulumi.Bool(true),
 * 				Interval:      pulumi.String("1m"),
 * 				TimeZone:      pulumi.String("+0800"),
 * 				Delay:         pulumi.Int(10),
 * 			},
 * 			DisplayName: pulumi.String("openapi-terraform"),
 * 			Description: pulumi.String("create alert"),
 * 			Status:      pulumi.String("ENABLED"),
 * 			Configuration: &sls.AlertConfigurationArgs{
 * 				GroupConfiguration: &sls.AlertConfigurationGroupConfigurationArgs{
 * 					Fields: pulumi.StringArray{
 * 						pulumi.String("a"),
 * 						pulumi.String("b"),
 * 					},
 * 					Type: pulumi.String("no_group"),
 * 				},
 * 				NoDataFire: pulumi.Bool(false),
 * 				Version:    pulumi.String("2"),
 * 				SeverityConfigurations: sls.AlertConfigurationSeverityConfigurationArray{
 * 					&sls.AlertConfigurationSeverityConfigurationArgs{
 * 						Severity: pulumi.Int(6),
 * 						EvalCondition: &sls.AlertConfigurationSeverityConfigurationEvalConditionArgs{
 * 							CountCondition: pulumi.String("cnt > 0"),
 * 							Condition:      pulumi.String("__count__ > 1"),
 * 						},
 * 					},
 * 				},
 * 				Labels: sls.AlertConfigurationLabelArray{
 * 					&sls.AlertConfigurationLabelArgs{
 * 						Key:   pulumi.String("a"),
 * 						Value: pulumi.String("b"),
 * 					},
 * 				},
 * 				AutoAnnotation: pulumi.Bool(true),
 * 				TemplateConfiguration: &sls.AlertConfigurationTemplateConfigurationArgs{
 * 					Lang: pulumi.String("cn"),
 * 					Tokens: pulumi.StringMap{
 * 						"a": pulumi.String("b"),
 * 					},
 * 					Annotations: pulumi.StringMap{
 * 						"x": pulumi.String("y"),
 * 					},
 * 					TemplateId: pulumi.String("sls.app.ack.autoscaler.cluster_unhealthy"),
 * 					Type:       pulumi.String("sys"),
 * 					Version:    pulumi.String("1.0"),
 * 				},
 * 				MuteUntil: pulumi.Int(0),
 * 				Annotations: sls.AlertConfigurationAnnotationArray{
 * 					&sls.AlertConfigurationAnnotationArgs{
 * 						Key:   pulumi.String("x"),
 * 						Value: pulumi.String("y"),
 * 					},
 * 				},
 * 				SendResolved: pulumi.Bool(false),
 * 				Threshold:    pulumi.Int(1),
 * 				SinkCms: &sls.AlertConfigurationSinkCmsArgs{
 * 					Enabled: pulumi.Bool(false),
 * 				},
 * 				ConditionConfiguration: &sls.AlertConfigurationConditionConfigurationArgs{
 * 					Condition:      pulumi.String("cnt > 3"),
 * 					CountCondition: pulumi.String("__count__ < 3"),
 * 				},
 * 				PolicyConfiguration: &sls.AlertConfigurationPolicyConfigurationArgs{
 * 					AlertPolicyId:  pulumi.String("sls.builtin.dynamic"),
 * 					ActionPolicyId: pulumi.String("wkb-action"),
 * 					RepeatInterval: pulumi.String("1m"),
 * 				},
 * 				Dashboard: pulumi.String("internal-alert"),
 * 				Type:      pulumi.String("tpl"),
 * 				QueryLists: sls.AlertConfigurationQueryListArray{
 * 					&sls.AlertConfigurationQueryListArgs{
 * 						Ui:           pulumi.String("{}"),
 * 						RoleArn:      pulumi.String("acs:ram::1654218965343050:role/aliyunslsalertmonitorrole"),
 * 						Query:        pulumi.String("* | select *"),
 * 						TimeSpanType: pulumi.String("Relative"),
 * 						Project:      defaultINsMgl.ProjectName,
 * 						PowerSqlMode: pulumi.String("disable"),
 * 						DashboardId:  pulumi.String("wkb-dashboard"),
 * 						ChartTitle:   pulumi.String("wkb-chart"),
 * 						Start:        pulumi.String("-15m"),
 * 						End:          pulumi.String("now"),
 * 						StoreType:    pulumi.String("log"),
 * 						Store:        pulumi.String("alert"),
 * 						Region:       pulumi.String("cn-shanghai"),
 * 					},
 * 					&sls.AlertConfigurationQueryListArgs{
 * 						StoreType: pulumi.String("meta"),
 * 						Store:     pulumi.String("user.rds_ip_whitelist"),
 * 					},
 * 					&sls.AlertConfigurationQueryListArgs{
 * 						StoreType: pulumi.String("meta"),
 * 						Store:     pulumi.String("myexample1"),
 * 					},
 * 				},
 * 				JoinConfigurations: sls.AlertConfigurationJoinConfigurationArray{
 * 					&sls.AlertConfigurationJoinConfigurationArgs{
 * 						Type:      pulumi.String("no_join"),
 * 						Condition: pulumi.String("aa"),
 * 					},
 * 					&sls.AlertConfigurationJoinConfigurationArgs{
 * 						Type:      pulumi.String("cross_join"),
 * 						Condition: pulumi.String("qqq"),
 * 					},
 * 					&sls.AlertConfigurationJoinConfigurationArgs{
 * 						Type:      pulumi.String("inner_join"),
 * 						Condition: pulumi.String("fefefe"),
 * 					},
 * 				},
 * 				SinkEventStore: &sls.AlertConfigurationSinkEventStoreArgs{
 * 					Enabled:    pulumi.Bool(true),
 * 					Endpoint:   pulumi.String("cn-shanghai-intranet.log.aliyuncs.com"),
 * 					Project:    pulumi.String("wkb-wangren"),
 * 					EventStore: pulumi.String("alert"),
 * 					RoleArn:    pulumi.String("acs:ram::1654218965343050:role/aliyunlogetlrole"),
 * 				},
 * 				SinkAlerthub: &sls.AlertConfigurationSinkAlerthubArgs{
 * 					Enabled: pulumi.Bool(false),
 * 				},
 * 				NoDataSeverity: pulumi.Int(6),
 * 				Tags: pulumi.StringArray{
 * 					pulumi.String("wkb"),
 * 					pulumi.String("wangren"),
 * 					pulumi.String("sls"),
 * 				},
 * 			},
 * 			AlertName:   pulumi.String(alertName),
 * 			ProjectName: defaultINsMgl.ProjectName,
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.random.integer;
 * import com.pulumi.random.IntegerArgs;
 * import com.pulumi.alicloud.log.Project;
 * import com.pulumi.alicloud.log.ProjectArgs;
 * import com.pulumi.alicloud.sls.Alert;
 * import com.pulumi.alicloud.sls.AlertArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertScheduleArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertConfigurationArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertConfigurationGroupConfigurationArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertConfigurationTemplateConfigurationArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkCmsArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertConfigurationConditionConfigurationArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertConfigurationPolicyConfigurationArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkEventStoreArgs;
 * import com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkAlerthubArgs;
 * 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 config = ctx.config();
 *         final var name = config.get("name").orElse("terraform-example");
 *         final var alertName = config.get("alertName").orElse("openapi-terraform-alert");
 *         final var projectName = config.get("projectName").orElse("terraform-alert-example");
 *         var default_ = new Integer("default", IntegerArgs.builder()
 *             .min(10000)
 *             .max(99999)
 *             .build());
 *         var defaultINsMgl = new Project("defaultINsMgl", ProjectArgs.builder()
 *             .description(String.format("%s-%s", projectName,default_.result()))
 *             .projectName(String.format("%s-%s", projectName,default_.result()))
 *             .build());
 *         var defaultAlert = new Alert("defaultAlert", AlertArgs.builder()
 *             .schedule(AlertScheduleArgs.builder()
 *                 .type("FixedRate")
 *                 .runImmdiately("true")
 *                 .interval("1m")
 *                 .timeZone("+0800")
 *                 .delay("10")
 *                 .build())
 *             .displayName("openapi-terraform")
 *             .description("create alert")
 *             .status("ENABLED")
 *             .configuration(AlertConfigurationArgs.builder()
 *                 .groupConfiguration(AlertConfigurationGroupConfigurationArgs.builder()
 *                     .fields(
 *                         "a",
 *                         "b")
 *                     .type("no_group")
 *                     .build())
 *                 .noDataFire("false")
 *                 .version("2")
 *                 .severityConfigurations(AlertConfigurationSeverityConfigurationArgs.builder()
 *                     .severity("6")
 *                     .evalCondition(AlertConfigurationSeverityConfigurationEvalConditionArgs.builder()
 *                         .countCondition("cnt > 0")
 *                         .condition("__count__ > 1")
 *                         .build())
 *                     .build())
 *                 .labels(AlertConfigurationLabelArgs.builder()
 *                     .key("a")
 *                     .value("b")
 *                     .build())
 *                 .autoAnnotation("true")
 *                 .templateConfiguration(AlertConfigurationTemplateConfigurationArgs.builder()
 *                     .lang("cn")
 *                     .tokens(Map.of("a", "b"))
 *                     .annotations(Map.of("x", "y"))
 *                     .templateId("sls.app.ack.autoscaler.cluster_unhealthy")
 *                     .type("sys")
 *                     .version("1.0")
 *                     .build())
 *                 .muteUntil("0")
 *                 .annotations(AlertConfigurationAnnotationArgs.builder()
 *                     .key("x")
 *                     .value("y")
 *                     .build())
 *                 .sendResolved("false")
 *                 .threshold("1")
 *                 .sinkCms(AlertConfigurationSinkCmsArgs.builder()
 *                     .enabled("false")
 *                     .build())
 *                 .conditionConfiguration(AlertConfigurationConditionConfigurationArgs.builder()
 *                     .condition("cnt > 3")
 *                     .countCondition("__count__ < 3")
 *                     .build())
 *                 .policyConfiguration(AlertConfigurationPolicyConfigurationArgs.builder()
 *                     .alertPolicyId("sls.builtin.dynamic")
 *                     .actionPolicyId("wkb-action")
 *                     .repeatInterval("1m")
 *                     .build())
 *                 .dashboard("internal-alert")
 *                 .type("tpl")
 *                 .queryLists(
 *                     AlertConfigurationQueryListArgs.builder()
 *                         .ui("{}")
 *                         .roleArn("acs:ram::1654218965343050:role/aliyunslsalertmonitorrole")
 *                         .query("* | select *")
 *                         .timeSpanType("Relative")
 *                         .project(defaultINsMgl.projectName())
 *                         .powerSqlMode("disable")
 *                         .dashboardId("wkb-dashboard")
 *                         .chartTitle("wkb-chart")
 *                         .start("-15m")
 *                         .end("now")
 *                         .storeType("log")
 *                         .store("alert")
 *                         .region("cn-shanghai")
 *                         .build(),
 *                     AlertConfigurationQueryListArgs.builder()
 *                         .storeType("meta")
 *                         .store("user.rds_ip_whitelist")
 *                         .build(),
 *                     AlertConfigurationQueryListArgs.builder()
 *                         .storeType("meta")
 *                         .store("myexample1")
 *                         .build())
 *                 .joinConfigurations(
 *                     AlertConfigurationJoinConfigurationArgs.builder()
 *                         .type("no_join")
 *                         .condition("aa")
 *                         .build(),
 *                     AlertConfigurationJoinConfigurationArgs.builder()
 *                         .type("cross_join")
 *                         .condition("qqq")
 *                         .build(),
 *                     AlertConfigurationJoinConfigurationArgs.builder()
 *                         .type("inner_join")
 *                         .condition("fefefe")
 *                         .build())
 *                 .sinkEventStore(AlertConfigurationSinkEventStoreArgs.builder()
 *                     .enabled("true")
 *                     .endpoint("cn-shanghai-intranet.log.aliyuncs.com")
 *                     .project("wkb-wangren")
 *                     .eventStore("alert")
 *                     .roleArn("acs:ram::1654218965343050:role/aliyunlogetlrole")
 *                     .build())
 *                 .sinkAlerthub(AlertConfigurationSinkAlerthubArgs.builder()
 *                     .enabled("false")
 *                     .build())
 *                 .noDataSeverity("6")
 *                 .tags(
 *                     "wkb",
 *                     "wangren",
 *                     "sls")
 *                 .build())
 *             .alertName(alertName)
 *             .projectName(defaultINsMgl.projectName())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * configuration:
 *   name:
 *     type: string
 *     default: terraform-example
 *   alertName:
 *     type: string
 *     default: openapi-terraform-alert
 *   projectName:
 *     type: string
 *     default: terraform-alert-example
 * resources:
 *   default:
 *     type: random:integer
 *     properties:
 *       min: 10000
 *       max: 99999
 *   defaultINsMgl:
 *     type: alicloud:log:Project
 *     properties:
 *       description: ${projectName}-${default.result}
 *       projectName: ${projectName}-${default.result}
 *   defaultAlert:
 *     type: alicloud:sls:Alert
 *     name: default
 *     properties:
 *       schedule:
 *         type: FixedRate
 *         runImmdiately: 'true'
 *         interval: 1m
 *         timeZone: '+0800'
 *         delay: '10'
 *       displayName: openapi-terraform
 *       description: create alert
 *       status: ENABLED
 *       configuration:
 *         groupConfiguration:
 *           fields:
 *             - a
 *             - b
 *           type: no_group
 *         noDataFire: 'false'
 *         version: '2'
 *         severityConfigurations:
 *           - severity: '6'
 *             evalCondition:
 *               countCondition: cnt > 0
 *               condition: __count__ > 1
 *         labels:
 *           - key: a
 *             value: b
 *         autoAnnotation: 'true'
 *         templateConfiguration:
 *           lang: cn
 *           tokens:
 *             a: b
 *           annotations:
 *             x: y
 *           templateId: sls.app.ack.autoscaler.cluster_unhealthy
 *           type: sys
 *           version: '1.0'
 *         muteUntil: '0'
 *         annotations:
 *           - key: x
 *             value: y
 *         sendResolved: 'false'
 *         threshold: '1'
 *         sinkCms:
 *           enabled: 'false'
 *         conditionConfiguration:
 *           condition: cnt > 3
 *           countCondition: __count__ < 3
 *         policyConfiguration:
 *           alertPolicyId: sls.builtin.dynamic
 *           actionPolicyId: wkb-action
 *           repeatInterval: 1m
 *         dashboard: internal-alert
 *         type: tpl
 *         queryLists:
 *           - ui: '{}'
 *             roleArn: acs:ram::1654218965343050:role/aliyunslsalertmonitorrole
 *             query: '* | select *'
 *             timeSpanType: Relative
 *             project: ${defaultINsMgl.projectName}
 *             powerSqlMode: disable
 *             dashboardId: wkb-dashboard
 *             chartTitle: wkb-chart
 *             start: -15m
 *             end: now
 *             storeType: log
 *             store: alert
 *             region: cn-shanghai
 *           - storeType: meta
 *             store: user.rds_ip_whitelist
 *           - storeType: meta
 *             store: myexample1
 *         joinConfigurations:
 *           - type: no_join
 *             condition: aa
 *           - type: cross_join
 *             condition: qqq
 *           - type: inner_join
 *             condition: fefefe
 *         sinkEventStore:
 *           enabled: 'true'
 *           endpoint: cn-shanghai-intranet.log.aliyuncs.com
 *           project: wkb-wangren
 *           eventStore: alert
 *           roleArn: acs:ram::1654218965343050:role/aliyunlogetlrole
 *         sinkAlerthub:
 *           enabled: 'false'
 *         noDataSeverity: '6'
 *         tags:
 *           - wkb
 *           - wangren
 *           - sls
 *       alertName: ${alertName}
 *       projectName: ${defaultINsMgl.projectName}
 * ```
 * 
 * ## Import
 * SLS Alert can be imported using the id, e.g.
 * ```sh
 * $ pulumi import alicloud:sls/alert:Alert example :
 * ```
 */
public class Alert internal constructor(
    override val javaResource: com.pulumi.alicloud.sls.Alert,
) : KotlinCustomResource(javaResource, AlertMapper) {
    /**
     * Alert rule ID, unique under Project.
     */
    public val alertName: Output
        get() = javaResource.alertName().applyValue({ args0 -> args0 })

    /**
     * Detailed configuration of alarm monitoring rules. See `configuration` below.
     */
    public val configuration: Output
        get() = javaResource.configuration().applyValue({ args0 ->
            args0.let({ args0 ->
                alertConfigurationToKotlin(args0)
            })
        })

    /**
     * Alarm rule creation time.
     */
    public val createTime: Output
        get() = javaResource.createTime().applyValue({ args0 -> args0 })

    /**
     * Compatible fields, set to empty strings.
     */
    public val description: Output?
        get() = javaResource.description().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })

    /**
     * Display name of the alarm rule.
     */
    public val displayName: Output
        get() = javaResource.displayName().applyValue({ args0 -> args0 })

    /**
     * Project Name.
     */
    public val projectName: Output
        get() = javaResource.projectName().applyValue({ args0 -> args0 })

    /**
     * Check the frequency-dependent configuration. See `schedule` below.
     */
    public val schedule: Output
        get() = javaResource.schedule().applyValue({ args0 ->
            args0.let({ args0 ->
                alertScheduleToKotlin(args0)
            })
        })

    /**
     * Resource attribute field representing alarm status.
     */
    public val status: Output
        get() = javaResource.status().applyValue({ args0 -> args0 })
}

public object AlertMapper : ResourceMapper {
    override fun supportsMappingOfType(javaResource: Resource): Boolean =
        com.pulumi.alicloud.sls.Alert::class == javaResource::class

    override fun map(javaResource: Resource): Alert = Alert(
        javaResource as
            com.pulumi.alicloud.sls.Alert,
    )
}

/**
 * @see [Alert].
 * @param name The _unique_ name of the resulting resource.
 * @param block Builder for [Alert].
 */
public suspend fun alert(name: String, block: suspend AlertResourceBuilder.() -> Unit): Alert {
    val builder = AlertResourceBuilder()
    builder.name(name)
    block(builder)
    return builder.build()
}

/**
 * @see [Alert].
 * @param name The _unique_ name of the resulting resource.
 */
public fun alert(name: String): Alert {
    val builder = AlertResourceBuilder()
    builder.name(name)
    return builder.build()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy