1. Packages
  2. Packages
  3. Elasticstack Provider
  4. API Docs
  5. KibanaSlo
Viewing docs for elasticstack 0.15.0
published on Thursday, May 14, 2026 by elastic
Viewing docs for elasticstack 0.15.0
published on Thursday, May 14, 2026 by elastic

    Creates or updates a Kibana SLO.

    See the Kibana SLO docs.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as elasticstack from "@pulumi/elasticstack";
    
    const authServerLatency = new elasticstack.KibanaSlo("auth_server_latency", {
        name: "Auth server latency",
        description: "Ensures auth server is responding in time",
        apmLatencyIndicators: [{
            environment: "production",
            service: "auth",
            transactionType: "request",
            transactionName: "GET /auth",
            index: "metrics-apm*",
            threshold: 500,
        }],
        timeWindows: [{
            duration: "7d",
            type: "rolling",
        }],
        budgetingMethod: "timeslices",
        objectives: [{
            target: 0.95,
            timesliceTarget: 0.95,
            timesliceWindow: "5m",
        }],
        settings: {
            syncDelay: "5m",
            frequency: "5m",
        },
    });
    const authServerAvailability = new elasticstack.KibanaSlo("auth_server_availability", {
        name: "Auth server latency",
        description: "Ensures auth server is responding in time",
        apmAvailabilityIndicators: [{
            environment: "production",
            service: "my-service",
            transactionType: "request",
            transactionName: "GET /sup/dawg",
            index: "metrics-apm*",
        }],
        timeWindows: [{
            duration: "7d",
            type: "rolling",
        }],
        budgetingMethod: "timeslices",
        objectives: [{
            target: 0.95,
            timesliceTarget: 0.95,
            timesliceWindow: "5m",
        }],
        settings: {
            syncDelay: "5m",
            frequency: "5m",
        },
    });
    const customKql = new elasticstack.KibanaSlo("custom_kql", {
        name: "custom kql",
        description: "custom kql",
        kqlCustomIndicators: [{
            index: "my-index",
            good: "latency < 300",
            total: "*",
            filter: "labels.groupId: group-0",
            timestampField: "custom_timestamp",
        }],
        timeWindows: [{
            duration: "7d",
            type: "rolling",
        }],
        budgetingMethod: "timeslices",
        objectives: [{
            target: 0.95,
            timesliceTarget: 0.95,
            timesliceWindow: "5m",
        }],
        settings: {
            syncDelay: "5m",
            frequency: "5m",
        },
    });
    // Object-form KQL (filter_kql, good_kql, total_kql) and optional settings.sync_field / enabled
    // (see resource schema). Use the attribute form `filter_kql = { kql_query = "..." }` inside
    // `kql_custom_indicator`, not a nested `filter_kql { }` block.
    const kqlObjectForm = new elasticstack.KibanaSlo("kql_object_form", {
        name: "kql object form example",
        description: "KQL with object-form union and managed enabled state",
        enabled: true,
        kqlCustomIndicators: [{
            index: "my-index",
            filterKql: {
                kqlQuery: "service.name: checkout",
            },
            goodKql: {
                kqlQuery: "http.response.status_code: 200",
            },
            totalKql: {
                kqlQuery: "*",
            },
        }],
        timeWindows: [{
            duration: "7d",
            type: "rolling",
        }],
        budgetingMethod: "timeslices",
        objectives: [{
            target: 0.95,
            timesliceTarget: 0.95,
            timesliceWindow: "5m",
        }],
        settings: {
            syncDelay: "5m",
            frequency: "5m",
            syncField: "@timestamp",
        },
    });
    //Available from 8.10.0
    const customHistogram = new elasticstack.KibanaSlo("custom_histogram", {
        name: "custom histogram",
        description: "custom histogram",
        histogramCustomIndicators: [{
            index: "my-index",
            goods: [{
                field: "test",
                aggregation: "value_count",
                filter: "latency < 300",
            }],
            totals: [{
                field: "test",
                aggregation: "value_count",
            }],
            filter: "labels.groupId: group-0",
            timestampField: "custom_timestamp",
        }],
        timeWindows: [{
            duration: "7d",
            type: "rolling",
        }],
        budgetingMethod: "timeslices",
        objectives: [{
            target: 0.95,
            timesliceTarget: 0.95,
            timesliceWindow: "5m",
        }],
        tags: [
            "tag-1",
            "another_tag",
        ],
    });
    //Available from 8.10.0
    const customMetric = new elasticstack.KibanaSlo("custom_metric", {
        name: "custom kql",
        description: "custom kql",
        metricCustomIndicators: [{
            index: "my-index",
            goods: [{
                metrics: [{
                    name: "A",
                    aggregation: "sum",
                    field: "processor.processed",
                }],
                equation: "A",
            }],
            totals: [{
                metrics: [{
                    name: "A",
                    aggregation: "sum",
                    field: "processor.accepted",
                }],
                equation: "A",
            }],
        }],
        timeWindows: [{
            duration: "7d",
            type: "rolling",
        }],
        budgetingMethod: "timeslices",
        objectives: [{
            target: 0.95,
            timesliceTarget: 0.95,
            timesliceWindow: "5m",
        }],
    });
    //Available from 8.12.0
    const timesliceMetric = new elasticstack.KibanaSlo("timeslice_metric", {
        name: "timeslice metric",
        description: "timeslice metric",
        timesliceMetricIndicators: [{
            index: "my-index",
            timestampField: "@timestamp",
            metrics: [{
                metrics: [{
                    name: "A",
                    aggregation: "sum",
                    field: "latency",
                }],
                equation: "A",
                comparator: "GT",
                threshold: 100,
            }],
        }],
        timeWindows: [{
            duration: "7d",
            type: "rolling",
        }],
        budgetingMethod: "timeslices",
        objectives: [{
            target: 0.95,
            timesliceTarget: 0.95,
            timesliceWindow: "5m",
        }],
    });
    
    import pulumi
    import pulumi_elasticstack as elasticstack
    
    auth_server_latency = elasticstack.KibanaSlo("auth_server_latency",
        name="Auth server latency",
        description="Ensures auth server is responding in time",
        apm_latency_indicators=[{
            "environment": "production",
            "service": "auth",
            "transaction_type": "request",
            "transaction_name": "GET /auth",
            "index": "metrics-apm*",
            "threshold": 500,
        }],
        time_windows=[{
            "duration": "7d",
            "type": "rolling",
        }],
        budgeting_method="timeslices",
        objectives=[{
            "target": 0.95,
            "timeslice_target": 0.95,
            "timeslice_window": "5m",
        }],
        settings={
            "sync_delay": "5m",
            "frequency": "5m",
        })
    auth_server_availability = elasticstack.KibanaSlo("auth_server_availability",
        name="Auth server latency",
        description="Ensures auth server is responding in time",
        apm_availability_indicators=[{
            "environment": "production",
            "service": "my-service",
            "transaction_type": "request",
            "transaction_name": "GET /sup/dawg",
            "index": "metrics-apm*",
        }],
        time_windows=[{
            "duration": "7d",
            "type": "rolling",
        }],
        budgeting_method="timeslices",
        objectives=[{
            "target": 0.95,
            "timeslice_target": 0.95,
            "timeslice_window": "5m",
        }],
        settings={
            "sync_delay": "5m",
            "frequency": "5m",
        })
    custom_kql = elasticstack.KibanaSlo("custom_kql",
        name="custom kql",
        description="custom kql",
        kql_custom_indicators=[{
            "index": "my-index",
            "good": "latency < 300",
            "total": "*",
            "filter": "labels.groupId: group-0",
            "timestamp_field": "custom_timestamp",
        }],
        time_windows=[{
            "duration": "7d",
            "type": "rolling",
        }],
        budgeting_method="timeslices",
        objectives=[{
            "target": 0.95,
            "timeslice_target": 0.95,
            "timeslice_window": "5m",
        }],
        settings={
            "sync_delay": "5m",
            "frequency": "5m",
        })
    # Object-form KQL (filter_kql, good_kql, total_kql) and optional settings.sync_field / enabled
    # (see resource schema). Use the attribute form `filter_kql = { kql_query = "..." }` inside
    # `kql_custom_indicator`, not a nested `filter_kql { }` block.
    kql_object_form = elasticstack.KibanaSlo("kql_object_form",
        name="kql object form example",
        description="KQL with object-form union and managed enabled state",
        enabled=True,
        kql_custom_indicators=[{
            "index": "my-index",
            "filter_kql": {
                "kql_query": "service.name: checkout",
            },
            "good_kql": {
                "kql_query": "http.response.status_code: 200",
            },
            "total_kql": {
                "kql_query": "*",
            },
        }],
        time_windows=[{
            "duration": "7d",
            "type": "rolling",
        }],
        budgeting_method="timeslices",
        objectives=[{
            "target": 0.95,
            "timeslice_target": 0.95,
            "timeslice_window": "5m",
        }],
        settings={
            "sync_delay": "5m",
            "frequency": "5m",
            "sync_field": "@timestamp",
        })
    #Available from 8.10.0
    custom_histogram = elasticstack.KibanaSlo("custom_histogram",
        name="custom histogram",
        description="custom histogram",
        histogram_custom_indicators=[{
            "index": "my-index",
            "goods": [{
                "field": "test",
                "aggregation": "value_count",
                "filter": "latency < 300",
            }],
            "totals": [{
                "field": "test",
                "aggregation": "value_count",
            }],
            "filter": "labels.groupId: group-0",
            "timestamp_field": "custom_timestamp",
        }],
        time_windows=[{
            "duration": "7d",
            "type": "rolling",
        }],
        budgeting_method="timeslices",
        objectives=[{
            "target": 0.95,
            "timeslice_target": 0.95,
            "timeslice_window": "5m",
        }],
        tags=[
            "tag-1",
            "another_tag",
        ])
    #Available from 8.10.0
    custom_metric = elasticstack.KibanaSlo("custom_metric",
        name="custom kql",
        description="custom kql",
        metric_custom_indicators=[{
            "index": "my-index",
            "goods": [{
                "metrics": [{
                    "name": "A",
                    "aggregation": "sum",
                    "field": "processor.processed",
                }],
                "equation": "A",
            }],
            "totals": [{
                "metrics": [{
                    "name": "A",
                    "aggregation": "sum",
                    "field": "processor.accepted",
                }],
                "equation": "A",
            }],
        }],
        time_windows=[{
            "duration": "7d",
            "type": "rolling",
        }],
        budgeting_method="timeslices",
        objectives=[{
            "target": 0.95,
            "timeslice_target": 0.95,
            "timeslice_window": "5m",
        }])
    #Available from 8.12.0
    timeslice_metric = elasticstack.KibanaSlo("timeslice_metric",
        name="timeslice metric",
        description="timeslice metric",
        timeslice_metric_indicators=[{
            "index": "my-index",
            "timestamp_field": "@timestamp",
            "metrics": [{
                "metrics": [{
                    "name": "A",
                    "aggregation": "sum",
                    "field": "latency",
                }],
                "equation": "A",
                "comparator": "GT",
                "threshold": 100,
            }],
        }],
        time_windows=[{
            "duration": "7d",
            "type": "rolling",
        }],
        budgeting_method="timeslices",
        objectives=[{
            "target": 0.95,
            "timeslice_target": 0.95,
            "timeslice_window": "5m",
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/elasticstack/elasticstack"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := elasticstack.NewKibanaSlo(ctx, "auth_server_latency", &elasticstack.KibanaSloArgs{
    			Name:        pulumi.String("Auth server latency"),
    			Description: pulumi.String("Ensures auth server is responding in time"),
    			ApmLatencyIndicators: elasticstack.KibanaSloApmLatencyIndicatorArray{
    				&elasticstack.KibanaSloApmLatencyIndicatorArgs{
    					Environment:     pulumi.String("production"),
    					Service:         pulumi.String("auth"),
    					TransactionType: pulumi.String("request"),
    					TransactionName: pulumi.String("GET /auth"),
    					Index:           pulumi.String("metrics-apm*"),
    					Threshold:       pulumi.Float64(500),
    				},
    			},
    			TimeWindows: elasticstack.KibanaSloTimeWindowArray{
    				&elasticstack.KibanaSloTimeWindowArgs{
    					Duration: pulumi.String("7d"),
    					Type:     pulumi.String("rolling"),
    				},
    			},
    			BudgetingMethod: pulumi.String("timeslices"),
    			Objectives: elasticstack.KibanaSloObjectiveArray{
    				&elasticstack.KibanaSloObjectiveArgs{
    					Target:          pulumi.Float64(0.95),
    					TimesliceTarget: pulumi.Float64(0.95),
    					TimesliceWindow: pulumi.String("5m"),
    				},
    			},
    			Settings: &elasticstack.KibanaSloSettingsArgs{
    				SyncDelay: pulumi.String("5m"),
    				Frequency: pulumi.String("5m"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = elasticstack.NewKibanaSlo(ctx, "auth_server_availability", &elasticstack.KibanaSloArgs{
    			Name:        pulumi.String("Auth server latency"),
    			Description: pulumi.String("Ensures auth server is responding in time"),
    			ApmAvailabilityIndicators: elasticstack.KibanaSloApmAvailabilityIndicatorArray{
    				&elasticstack.KibanaSloApmAvailabilityIndicatorArgs{
    					Environment:     pulumi.String("production"),
    					Service:         pulumi.String("my-service"),
    					TransactionType: pulumi.String("request"),
    					TransactionName: pulumi.String("GET /sup/dawg"),
    					Index:           pulumi.String("metrics-apm*"),
    				},
    			},
    			TimeWindows: elasticstack.KibanaSloTimeWindowArray{
    				&elasticstack.KibanaSloTimeWindowArgs{
    					Duration: pulumi.String("7d"),
    					Type:     pulumi.String("rolling"),
    				},
    			},
    			BudgetingMethod: pulumi.String("timeslices"),
    			Objectives: elasticstack.KibanaSloObjectiveArray{
    				&elasticstack.KibanaSloObjectiveArgs{
    					Target:          pulumi.Float64(0.95),
    					TimesliceTarget: pulumi.Float64(0.95),
    					TimesliceWindow: pulumi.String("5m"),
    				},
    			},
    			Settings: &elasticstack.KibanaSloSettingsArgs{
    				SyncDelay: pulumi.String("5m"),
    				Frequency: pulumi.String("5m"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = elasticstack.NewKibanaSlo(ctx, "custom_kql", &elasticstack.KibanaSloArgs{
    			Name:        pulumi.String("custom kql"),
    			Description: pulumi.String("custom kql"),
    			KqlCustomIndicators: elasticstack.KibanaSloKqlCustomIndicatorArray{
    				&elasticstack.KibanaSloKqlCustomIndicatorArgs{
    					Index:          pulumi.String("my-index"),
    					Good:           pulumi.String("latency < 300"),
    					Total:          pulumi.String("*"),
    					Filter:         pulumi.String("labels.groupId: group-0"),
    					TimestampField: pulumi.String("custom_timestamp"),
    				},
    			},
    			TimeWindows: elasticstack.KibanaSloTimeWindowArray{
    				&elasticstack.KibanaSloTimeWindowArgs{
    					Duration: pulumi.String("7d"),
    					Type:     pulumi.String("rolling"),
    				},
    			},
    			BudgetingMethod: pulumi.String("timeslices"),
    			Objectives: elasticstack.KibanaSloObjectiveArray{
    				&elasticstack.KibanaSloObjectiveArgs{
    					Target:          pulumi.Float64(0.95),
    					TimesliceTarget: pulumi.Float64(0.95),
    					TimesliceWindow: pulumi.String("5m"),
    				},
    			},
    			Settings: &elasticstack.KibanaSloSettingsArgs{
    				SyncDelay: pulumi.String("5m"),
    				Frequency: pulumi.String("5m"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Object-form KQL (filter_kql, good_kql, total_kql) and optional settings.sync_field / enabled
    		// (see resource schema). Use the attribute form `filter_kql = { kql_query = "..." }` inside
    		// `kql_custom_indicator`, not a nested `filter_kql { }` block.
    		_, err = elasticstack.NewKibanaSlo(ctx, "kql_object_form", &elasticstack.KibanaSloArgs{
    			Name:        pulumi.String("kql object form example"),
    			Description: pulumi.String("KQL with object-form union and managed enabled state"),
    			Enabled:     pulumi.Bool(true),
    			KqlCustomIndicators: elasticstack.KibanaSloKqlCustomIndicatorArray{
    				&elasticstack.KibanaSloKqlCustomIndicatorArgs{
    					Index: pulumi.String("my-index"),
    					FilterKql: &elasticstack.KibanaSloKqlCustomIndicatorFilterKqlArgs{
    						KqlQuery: pulumi.String("service.name: checkout"),
    					},
    					GoodKql: &elasticstack.KibanaSloKqlCustomIndicatorGoodKqlArgs{
    						KqlQuery: pulumi.String("http.response.status_code: 200"),
    					},
    					TotalKql: &elasticstack.KibanaSloKqlCustomIndicatorTotalKqlArgs{
    						KqlQuery: pulumi.String("*"),
    					},
    				},
    			},
    			TimeWindows: elasticstack.KibanaSloTimeWindowArray{
    				&elasticstack.KibanaSloTimeWindowArgs{
    					Duration: pulumi.String("7d"),
    					Type:     pulumi.String("rolling"),
    				},
    			},
    			BudgetingMethod: pulumi.String("timeslices"),
    			Objectives: elasticstack.KibanaSloObjectiveArray{
    				&elasticstack.KibanaSloObjectiveArgs{
    					Target:          pulumi.Float64(0.95),
    					TimesliceTarget: pulumi.Float64(0.95),
    					TimesliceWindow: pulumi.String("5m"),
    				},
    			},
    			Settings: &elasticstack.KibanaSloSettingsArgs{
    				SyncDelay: pulumi.String("5m"),
    				Frequency: pulumi.String("5m"),
    				SyncField: pulumi.String("@timestamp"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Available from 8.10.0
    		_, err = elasticstack.NewKibanaSlo(ctx, "custom_histogram", &elasticstack.KibanaSloArgs{
    			Name:        pulumi.String("custom histogram"),
    			Description: pulumi.String("custom histogram"),
    			HistogramCustomIndicators: elasticstack.KibanaSloHistogramCustomIndicatorArray{
    				&elasticstack.KibanaSloHistogramCustomIndicatorArgs{
    					Index: pulumi.String("my-index"),
    					Goods: elasticstack.KibanaSloHistogramCustomIndicatorGoodArray{
    						&elasticstack.KibanaSloHistogramCustomIndicatorGoodArgs{
    							Field:       pulumi.String("test"),
    							Aggregation: pulumi.String("value_count"),
    							Filter:      pulumi.String("latency < 300"),
    						},
    					},
    					Totals: elasticstack.KibanaSloHistogramCustomIndicatorTotalArray{
    						&elasticstack.KibanaSloHistogramCustomIndicatorTotalArgs{
    							Field:       pulumi.String("test"),
    							Aggregation: pulumi.String("value_count"),
    						},
    					},
    					Filter:         pulumi.String("labels.groupId: group-0"),
    					TimestampField: pulumi.String("custom_timestamp"),
    				},
    			},
    			TimeWindows: elasticstack.KibanaSloTimeWindowArray{
    				&elasticstack.KibanaSloTimeWindowArgs{
    					Duration: pulumi.String("7d"),
    					Type:     pulumi.String("rolling"),
    				},
    			},
    			BudgetingMethod: pulumi.String("timeslices"),
    			Objectives: elasticstack.KibanaSloObjectiveArray{
    				&elasticstack.KibanaSloObjectiveArgs{
    					Target:          pulumi.Float64(0.95),
    					TimesliceTarget: pulumi.Float64(0.95),
    					TimesliceWindow: pulumi.String("5m"),
    				},
    			},
    			Tags: pulumi.StringArray{
    				pulumi.String("tag-1"),
    				pulumi.String("another_tag"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Available from 8.10.0
    		_, err = elasticstack.NewKibanaSlo(ctx, "custom_metric", &elasticstack.KibanaSloArgs{
    			Name:        pulumi.String("custom kql"),
    			Description: pulumi.String("custom kql"),
    			MetricCustomIndicators: elasticstack.KibanaSloMetricCustomIndicatorArray{
    				&elasticstack.KibanaSloMetricCustomIndicatorArgs{
    					Index: pulumi.String("my-index"),
    					Goods: elasticstack.KibanaSloMetricCustomIndicatorGoodArray{
    						&elasticstack.KibanaSloMetricCustomIndicatorGoodArgs{
    							Metrics: elasticstack.KibanaSloMetricCustomIndicatorGoodMetricArray{
    								&elasticstack.KibanaSloMetricCustomIndicatorGoodMetricArgs{
    									Name:        pulumi.String("A"),
    									Aggregation: pulumi.String("sum"),
    									Field:       pulumi.String("processor.processed"),
    								},
    							},
    							Equation: pulumi.String("A"),
    						},
    					},
    					Totals: elasticstack.KibanaSloMetricCustomIndicatorTotalArray{
    						&elasticstack.KibanaSloMetricCustomIndicatorTotalArgs{
    							Metrics: elasticstack.KibanaSloMetricCustomIndicatorTotalMetricArray{
    								&elasticstack.KibanaSloMetricCustomIndicatorTotalMetricArgs{
    									Name:        pulumi.String("A"),
    									Aggregation: pulumi.String("sum"),
    									Field:       pulumi.String("processor.accepted"),
    								},
    							},
    							Equation: pulumi.String("A"),
    						},
    					},
    				},
    			},
    			TimeWindows: elasticstack.KibanaSloTimeWindowArray{
    				&elasticstack.KibanaSloTimeWindowArgs{
    					Duration: pulumi.String("7d"),
    					Type:     pulumi.String("rolling"),
    				},
    			},
    			BudgetingMethod: pulumi.String("timeslices"),
    			Objectives: elasticstack.KibanaSloObjectiveArray{
    				&elasticstack.KibanaSloObjectiveArgs{
    					Target:          pulumi.Float64(0.95),
    					TimesliceTarget: pulumi.Float64(0.95),
    					TimesliceWindow: pulumi.String("5m"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Available from 8.12.0
    		_, err = elasticstack.NewKibanaSlo(ctx, "timeslice_metric", &elasticstack.KibanaSloArgs{
    			Name:        pulumi.String("timeslice metric"),
    			Description: pulumi.String("timeslice metric"),
    			TimesliceMetricIndicators: elasticstack.KibanaSloTimesliceMetricIndicatorArray{
    				&elasticstack.KibanaSloTimesliceMetricIndicatorArgs{
    					Index:          pulumi.String("my-index"),
    					TimestampField: pulumi.String("@timestamp"),
    					Metrics: elasticstack.KibanaSloTimesliceMetricIndicatorMetricArray{
    						&elasticstack.KibanaSloTimesliceMetricIndicatorMetricArgs{
    							Metrics: elasticstack.KibanaSloTimesliceMetricIndicatorMetricMetricArray{
    								&elasticstack.KibanaSloTimesliceMetricIndicatorMetricMetricArgs{
    									Name:        pulumi.String("A"),
    									Aggregation: pulumi.String("sum"),
    									Field:       pulumi.String("latency"),
    								},
    							},
    							Equation:   pulumi.String("A"),
    							Comparator: pulumi.String("GT"),
    							Threshold:  pulumi.Float64(100),
    						},
    					},
    				},
    			},
    			TimeWindows: elasticstack.KibanaSloTimeWindowArray{
    				&elasticstack.KibanaSloTimeWindowArgs{
    					Duration: pulumi.String("7d"),
    					Type:     pulumi.String("rolling"),
    				},
    			},
    			BudgetingMethod: pulumi.String("timeslices"),
    			Objectives: elasticstack.KibanaSloObjectiveArray{
    				&elasticstack.KibanaSloObjectiveArgs{
    					Target:          pulumi.Float64(0.95),
    					TimesliceTarget: pulumi.Float64(0.95),
    					TimesliceWindow: pulumi.String("5m"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Elasticstack = Pulumi.Elasticstack;
    
    return await Deployment.RunAsync(() => 
    {
        var authServerLatency = new Elasticstack.KibanaSlo("auth_server_latency", new()
        {
            Name = "Auth server latency",
            Description = "Ensures auth server is responding in time",
            ApmLatencyIndicators = new[]
            {
                new Elasticstack.Inputs.KibanaSloApmLatencyIndicatorArgs
                {
                    Environment = "production",
                    Service = "auth",
                    TransactionType = "request",
                    TransactionName = "GET /auth",
                    Index = "metrics-apm*",
                    Threshold = 500,
                },
            },
            TimeWindows = new[]
            {
                new Elasticstack.Inputs.KibanaSloTimeWindowArgs
                {
                    Duration = "7d",
                    Type = "rolling",
                },
            },
            BudgetingMethod = "timeslices",
            Objectives = new[]
            {
                new Elasticstack.Inputs.KibanaSloObjectiveArgs
                {
                    Target = 0.95,
                    TimesliceTarget = 0.95,
                    TimesliceWindow = "5m",
                },
            },
            Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
            {
                SyncDelay = "5m",
                Frequency = "5m",
            },
        });
    
        var authServerAvailability = new Elasticstack.KibanaSlo("auth_server_availability", new()
        {
            Name = "Auth server latency",
            Description = "Ensures auth server is responding in time",
            ApmAvailabilityIndicators = new[]
            {
                new Elasticstack.Inputs.KibanaSloApmAvailabilityIndicatorArgs
                {
                    Environment = "production",
                    Service = "my-service",
                    TransactionType = "request",
                    TransactionName = "GET /sup/dawg",
                    Index = "metrics-apm*",
                },
            },
            TimeWindows = new[]
            {
                new Elasticstack.Inputs.KibanaSloTimeWindowArgs
                {
                    Duration = "7d",
                    Type = "rolling",
                },
            },
            BudgetingMethod = "timeslices",
            Objectives = new[]
            {
                new Elasticstack.Inputs.KibanaSloObjectiveArgs
                {
                    Target = 0.95,
                    TimesliceTarget = 0.95,
                    TimesliceWindow = "5m",
                },
            },
            Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
            {
                SyncDelay = "5m",
                Frequency = "5m",
            },
        });
    
        var customKql = new Elasticstack.KibanaSlo("custom_kql", new()
        {
            Name = "custom kql",
            Description = "custom kql",
            KqlCustomIndicators = new[]
            {
                new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorArgs
                {
                    Index = "my-index",
                    Good = "latency < 300",
                    Total = "*",
                    Filter = "labels.groupId: group-0",
                    TimestampField = "custom_timestamp",
                },
            },
            TimeWindows = new[]
            {
                new Elasticstack.Inputs.KibanaSloTimeWindowArgs
                {
                    Duration = "7d",
                    Type = "rolling",
                },
            },
            BudgetingMethod = "timeslices",
            Objectives = new[]
            {
                new Elasticstack.Inputs.KibanaSloObjectiveArgs
                {
                    Target = 0.95,
                    TimesliceTarget = 0.95,
                    TimesliceWindow = "5m",
                },
            },
            Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
            {
                SyncDelay = "5m",
                Frequency = "5m",
            },
        });
    
        // Object-form KQL (filter_kql, good_kql, total_kql) and optional settings.sync_field / enabled
        // (see resource schema). Use the attribute form `filter_kql = { kql_query = "..." }` inside
        // `kql_custom_indicator`, not a nested `filter_kql { }` block.
        var kqlObjectForm = new Elasticstack.KibanaSlo("kql_object_form", new()
        {
            Name = "kql object form example",
            Description = "KQL with object-form union and managed enabled state",
            Enabled = true,
            KqlCustomIndicators = new[]
            {
                new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorArgs
                {
                    Index = "my-index",
                    FilterKql = new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorFilterKqlArgs
                    {
                        KqlQuery = "service.name: checkout",
                    },
                    GoodKql = new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorGoodKqlArgs
                    {
                        KqlQuery = "http.response.status_code: 200",
                    },
                    TotalKql = new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorTotalKqlArgs
                    {
                        KqlQuery = "*",
                    },
                },
            },
            TimeWindows = new[]
            {
                new Elasticstack.Inputs.KibanaSloTimeWindowArgs
                {
                    Duration = "7d",
                    Type = "rolling",
                },
            },
            BudgetingMethod = "timeslices",
            Objectives = new[]
            {
                new Elasticstack.Inputs.KibanaSloObjectiveArgs
                {
                    Target = 0.95,
                    TimesliceTarget = 0.95,
                    TimesliceWindow = "5m",
                },
            },
            Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
            {
                SyncDelay = "5m",
                Frequency = "5m",
                SyncField = "@timestamp",
            },
        });
    
        //Available from 8.10.0
        var customHistogram = new Elasticstack.KibanaSlo("custom_histogram", new()
        {
            Name = "custom histogram",
            Description = "custom histogram",
            HistogramCustomIndicators = new[]
            {
                new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorArgs
                {
                    Index = "my-index",
                    Goods = new[]
                    {
                        new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorGoodArgs
                        {
                            Field = "test",
                            Aggregation = "value_count",
                            Filter = "latency < 300",
                        },
                    },
                    Totals = new[]
                    {
                        new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorTotalArgs
                        {
                            Field = "test",
                            Aggregation = "value_count",
                        },
                    },
                    Filter = "labels.groupId: group-0",
                    TimestampField = "custom_timestamp",
                },
            },
            TimeWindows = new[]
            {
                new Elasticstack.Inputs.KibanaSloTimeWindowArgs
                {
                    Duration = "7d",
                    Type = "rolling",
                },
            },
            BudgetingMethod = "timeslices",
            Objectives = new[]
            {
                new Elasticstack.Inputs.KibanaSloObjectiveArgs
                {
                    Target = 0.95,
                    TimesliceTarget = 0.95,
                    TimesliceWindow = "5m",
                },
            },
            Tags = new[]
            {
                "tag-1",
                "another_tag",
            },
        });
    
        //Available from 8.10.0
        var customMetric = new Elasticstack.KibanaSlo("custom_metric", new()
        {
            Name = "custom kql",
            Description = "custom kql",
            MetricCustomIndicators = new[]
            {
                new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorArgs
                {
                    Index = "my-index",
                    Goods = new[]
                    {
                        new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorGoodArgs
                        {
                            Metrics = new[]
                            {
                                new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorGoodMetricArgs
                                {
                                    Name = "A",
                                    Aggregation = "sum",
                                    Field = "processor.processed",
                                },
                            },
                            Equation = "A",
                        },
                    },
                    Totals = new[]
                    {
                        new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorTotalArgs
                        {
                            Metrics = new[]
                            {
                                new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorTotalMetricArgs
                                {
                                    Name = "A",
                                    Aggregation = "sum",
                                    Field = "processor.accepted",
                                },
                            },
                            Equation = "A",
                        },
                    },
                },
            },
            TimeWindows = new[]
            {
                new Elasticstack.Inputs.KibanaSloTimeWindowArgs
                {
                    Duration = "7d",
                    Type = "rolling",
                },
            },
            BudgetingMethod = "timeslices",
            Objectives = new[]
            {
                new Elasticstack.Inputs.KibanaSloObjectiveArgs
                {
                    Target = 0.95,
                    TimesliceTarget = 0.95,
                    TimesliceWindow = "5m",
                },
            },
        });
    
        //Available from 8.12.0
        var timesliceMetric = new Elasticstack.KibanaSlo("timeslice_metric", new()
        {
            Name = "timeslice metric",
            Description = "timeslice metric",
            TimesliceMetricIndicators = new[]
            {
                new Elasticstack.Inputs.KibanaSloTimesliceMetricIndicatorArgs
                {
                    Index = "my-index",
                    TimestampField = "@timestamp",
                    Metrics = new[]
                    {
                        new Elasticstack.Inputs.KibanaSloTimesliceMetricIndicatorMetricArgs
                        {
                            Metrics = new[]
                            {
                                new Elasticstack.Inputs.KibanaSloTimesliceMetricIndicatorMetricMetricArgs
                                {
                                    Name = "A",
                                    Aggregation = "sum",
                                    Field = "latency",
                                },
                            },
                            Equation = "A",
                            Comparator = "GT",
                            Threshold = 100,
                        },
                    },
                },
            },
            TimeWindows = new[]
            {
                new Elasticstack.Inputs.KibanaSloTimeWindowArgs
                {
                    Duration = "7d",
                    Type = "rolling",
                },
            },
            BudgetingMethod = "timeslices",
            Objectives = new[]
            {
                new Elasticstack.Inputs.KibanaSloObjectiveArgs
                {
                    Target = 0.95,
                    TimesliceTarget = 0.95,
                    TimesliceWindow = "5m",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.elasticstack.KibanaSlo;
    import com.pulumi.elasticstack.KibanaSloArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloApmLatencyIndicatorArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloTimeWindowArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloObjectiveArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloSettingsArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloApmAvailabilityIndicatorArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloKqlCustomIndicatorArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloKqlCustomIndicatorFilterKqlArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloKqlCustomIndicatorGoodKqlArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloKqlCustomIndicatorTotalKqlArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloHistogramCustomIndicatorArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloMetricCustomIndicatorArgs;
    import com.pulumi.elasticstack.inputs.KibanaSloTimesliceMetricIndicatorArgs;
    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) {
            var authServerLatency = new KibanaSlo("authServerLatency", KibanaSloArgs.builder()
                .name("Auth server latency")
                .description("Ensures auth server is responding in time")
                .apmLatencyIndicators(KibanaSloApmLatencyIndicatorArgs.builder()
                    .environment("production")
                    .service("auth")
                    .transactionType("request")
                    .transactionName("GET /auth")
                    .index("metrics-apm*")
                    .threshold(500.0)
                    .build())
                .timeWindows(KibanaSloTimeWindowArgs.builder()
                    .duration("7d")
                    .type("rolling")
                    .build())
                .budgetingMethod("timeslices")
                .objectives(KibanaSloObjectiveArgs.builder()
                    .target(0.95)
                    .timesliceTarget(0.95)
                    .timesliceWindow("5m")
                    .build())
                .settings(KibanaSloSettingsArgs.builder()
                    .syncDelay("5m")
                    .frequency("5m")
                    .build())
                .build());
    
            var authServerAvailability = new KibanaSlo("authServerAvailability", KibanaSloArgs.builder()
                .name("Auth server latency")
                .description("Ensures auth server is responding in time")
                .apmAvailabilityIndicators(KibanaSloApmAvailabilityIndicatorArgs.builder()
                    .environment("production")
                    .service("my-service")
                    .transactionType("request")
                    .transactionName("GET /sup/dawg")
                    .index("metrics-apm*")
                    .build())
                .timeWindows(KibanaSloTimeWindowArgs.builder()
                    .duration("7d")
                    .type("rolling")
                    .build())
                .budgetingMethod("timeslices")
                .objectives(KibanaSloObjectiveArgs.builder()
                    .target(0.95)
                    .timesliceTarget(0.95)
                    .timesliceWindow("5m")
                    .build())
                .settings(KibanaSloSettingsArgs.builder()
                    .syncDelay("5m")
                    .frequency("5m")
                    .build())
                .build());
    
            var customKql = new KibanaSlo("customKql", KibanaSloArgs.builder()
                .name("custom kql")
                .description("custom kql")
                .kqlCustomIndicators(KibanaSloKqlCustomIndicatorArgs.builder()
                    .index("my-index")
                    .good("latency < 300")
                    .total("*")
                    .filter("labels.groupId: group-0")
                    .timestampField("custom_timestamp")
                    .build())
                .timeWindows(KibanaSloTimeWindowArgs.builder()
                    .duration("7d")
                    .type("rolling")
                    .build())
                .budgetingMethod("timeslices")
                .objectives(KibanaSloObjectiveArgs.builder()
                    .target(0.95)
                    .timesliceTarget(0.95)
                    .timesliceWindow("5m")
                    .build())
                .settings(KibanaSloSettingsArgs.builder()
                    .syncDelay("5m")
                    .frequency("5m")
                    .build())
                .build());
    
            // Object-form KQL (filter_kql, good_kql, total_kql) and optional settings.sync_field / enabled
            // (see resource schema). Use the attribute form `filter_kql = { kql_query = "..." }` inside
            // `kql_custom_indicator`, not a nested `filter_kql { }` block.
            var kqlObjectForm = new KibanaSlo("kqlObjectForm", KibanaSloArgs.builder()
                .name("kql object form example")
                .description("KQL with object-form union and managed enabled state")
                .enabled(true)
                .kqlCustomIndicators(KibanaSloKqlCustomIndicatorArgs.builder()
                    .index("my-index")
                    .filterKql(KibanaSloKqlCustomIndicatorFilterKqlArgs.builder()
                        .kqlQuery("service.name: checkout")
                        .build())
                    .goodKql(KibanaSloKqlCustomIndicatorGoodKqlArgs.builder()
                        .kqlQuery("http.response.status_code: 200")
                        .build())
                    .totalKql(KibanaSloKqlCustomIndicatorTotalKqlArgs.builder()
                        .kqlQuery("*")
                        .build())
                    .build())
                .timeWindows(KibanaSloTimeWindowArgs.builder()
                    .duration("7d")
                    .type("rolling")
                    .build())
                .budgetingMethod("timeslices")
                .objectives(KibanaSloObjectiveArgs.builder()
                    .target(0.95)
                    .timesliceTarget(0.95)
                    .timesliceWindow("5m")
                    .build())
                .settings(KibanaSloSettingsArgs.builder()
                    .syncDelay("5m")
                    .frequency("5m")
                    .syncField("@timestamp")
                    .build())
                .build());
    
            //Available from 8.10.0
            var customHistogram = new KibanaSlo("customHistogram", KibanaSloArgs.builder()
                .name("custom histogram")
                .description("custom histogram")
                .histogramCustomIndicators(KibanaSloHistogramCustomIndicatorArgs.builder()
                    .index("my-index")
                    .goods(KibanaSloHistogramCustomIndicatorGoodArgs.builder()
                        .field("test")
                        .aggregation("value_count")
                        .filter("latency < 300")
                        .build())
                    .totals(KibanaSloHistogramCustomIndicatorTotalArgs.builder()
                        .field("test")
                        .aggregation("value_count")
                        .build())
                    .filter("labels.groupId: group-0")
                    .timestampField("custom_timestamp")
                    .build())
                .timeWindows(KibanaSloTimeWindowArgs.builder()
                    .duration("7d")
                    .type("rolling")
                    .build())
                .budgetingMethod("timeslices")
                .objectives(KibanaSloObjectiveArgs.builder()
                    .target(0.95)
                    .timesliceTarget(0.95)
                    .timesliceWindow("5m")
                    .build())
                .tags(            
                    "tag-1",
                    "another_tag")
                .build());
    
            //Available from 8.10.0
            var customMetric = new KibanaSlo("customMetric", KibanaSloArgs.builder()
                .name("custom kql")
                .description("custom kql")
                .metricCustomIndicators(KibanaSloMetricCustomIndicatorArgs.builder()
                    .index("my-index")
                    .goods(KibanaSloMetricCustomIndicatorGoodArgs.builder()
                        .metrics(KibanaSloMetricCustomIndicatorGoodMetricArgs.builder()
                            .name("A")
                            .aggregation("sum")
                            .field("processor.processed")
                            .build())
                        .equation("A")
                        .build())
                    .totals(KibanaSloMetricCustomIndicatorTotalArgs.builder()
                        .metrics(KibanaSloMetricCustomIndicatorTotalMetricArgs.builder()
                            .name("A")
                            .aggregation("sum")
                            .field("processor.accepted")
                            .build())
                        .equation("A")
                        .build())
                    .build())
                .timeWindows(KibanaSloTimeWindowArgs.builder()
                    .duration("7d")
                    .type("rolling")
                    .build())
                .budgetingMethod("timeslices")
                .objectives(KibanaSloObjectiveArgs.builder()
                    .target(0.95)
                    .timesliceTarget(0.95)
                    .timesliceWindow("5m")
                    .build())
                .build());
    
            //Available from 8.12.0
            var timesliceMetric = new KibanaSlo("timesliceMetric", KibanaSloArgs.builder()
                .name("timeslice metric")
                .description("timeslice metric")
                .timesliceMetricIndicators(KibanaSloTimesliceMetricIndicatorArgs.builder()
                    .index("my-index")
                    .timestampField("@timestamp")
                    .metrics(KibanaSloTimesliceMetricIndicatorMetricArgs.builder()
                        .metrics(KibanaSloTimesliceMetricIndicatorMetricMetricArgs.builder()
                            .name("A")
                            .aggregation("sum")
                            .field("latency")
                            .build())
                        .equation("A")
                        .comparator("GT")
                        .threshold(100.0)
                        .build())
                    .build())
                .timeWindows(KibanaSloTimeWindowArgs.builder()
                    .duration("7d")
                    .type("rolling")
                    .build())
                .budgetingMethod("timeslices")
                .objectives(KibanaSloObjectiveArgs.builder()
                    .target(0.95)
                    .timesliceTarget(0.95)
                    .timesliceWindow("5m")
                    .build())
                .build());
    
        }
    }
    
    resources:
      authServerLatency:
        type: elasticstack:KibanaSlo
        name: auth_server_latency
        properties:
          name: Auth server latency
          description: Ensures auth server is responding in time
          apmLatencyIndicators:
            - environment: production
              service: auth
              transactionType: request
              transactionName: GET /auth
              index: metrics-apm*
              threshold: 500
          timeWindows:
            - duration: 7d
              type: rolling
          budgetingMethod: timeslices
          objectives:
            - target: 0.95
              timesliceTarget: 0.95
              timesliceWindow: 5m
          settings:
            syncDelay: 5m
            frequency: 5m
      authServerAvailability:
        type: elasticstack:KibanaSlo
        name: auth_server_availability
        properties:
          name: Auth server latency
          description: Ensures auth server is responding in time
          apmAvailabilityIndicators:
            - environment: production
              service: my-service
              transactionType: request
              transactionName: GET /sup/dawg
              index: metrics-apm*
          timeWindows:
            - duration: 7d
              type: rolling
          budgetingMethod: timeslices
          objectives:
            - target: 0.95
              timesliceTarget: 0.95
              timesliceWindow: 5m
          settings:
            syncDelay: 5m
            frequency: 5m
      customKql:
        type: elasticstack:KibanaSlo
        name: custom_kql
        properties:
          name: custom kql
          description: custom kql
          kqlCustomIndicators:
            - index: my-index
              good: latency < 300
              total: '*'
              filter: 'labels.groupId: group-0'
              timestampField: custom_timestamp
          timeWindows:
            - duration: 7d
              type: rolling
          budgetingMethod: timeslices
          objectives:
            - target: 0.95
              timesliceTarget: 0.95
              timesliceWindow: 5m
          settings:
            syncDelay: 5m
            frequency: 5m
      # Object-form KQL (filter_kql, good_kql, total_kql) and optional settings.sync_field / enabled
      # (see resource schema). Use the attribute form `filter_kql = { kql_query = "..." }` inside
      # `kql_custom_indicator`, not a nested `filter_kql { }` block.
      kqlObjectForm:
        type: elasticstack:KibanaSlo
        name: kql_object_form
        properties:
          name: kql object form example
          description: KQL with object-form union and managed enabled state
          enabled: true
          kqlCustomIndicators:
            - index: my-index
              filterKql:
                kqlQuery: 'service.name: checkout'
              goodKql:
                kqlQuery: 'http.response.status_code: 200'
              totalKql:
                kqlQuery: '*'
          timeWindows:
            - duration: 7d
              type: rolling
          budgetingMethod: timeslices
          objectives:
            - target: 0.95
              timesliceTarget: 0.95
              timesliceWindow: 5m
          settings:
            syncDelay: 5m
            frequency: 5m
            syncField: '@timestamp'
      #Available from 8.10.0
      customHistogram:
        type: elasticstack:KibanaSlo
        name: custom_histogram
        properties:
          name: custom histogram
          description: custom histogram
          histogramCustomIndicators:
            - index: my-index
              goods:
                - field: test
                  aggregation: value_count
                  filter: latency < 300
              totals:
                - field: test
                  aggregation: value_count
              filter: 'labels.groupId: group-0'
              timestampField: custom_timestamp
          timeWindows:
            - duration: 7d
              type: rolling
          budgetingMethod: timeslices
          objectives:
            - target: 0.95
              timesliceTarget: 0.95
              timesliceWindow: 5m
          tags:
            - tag-1
            - another_tag
      # Available from 8.10.0
      customMetric:
        type: elasticstack:KibanaSlo
        name: custom_metric
        properties:
          name: custom kql
          description: custom kql
          metricCustomIndicators:
            - index: my-index
              goods:
                - metrics:
                    - name: A
                      aggregation: sum
                      field: processor.processed
                  equation: A
              totals:
                - metrics:
                    - name: A
                      aggregation: sum
                      field: processor.accepted
                  equation: A
          timeWindows:
            - duration: 7d
              type: rolling
          budgetingMethod: timeslices
          objectives:
            - target: 0.95
              timesliceTarget: 0.95
              timesliceWindow: 5m
      # Available from 8.12.0
      timesliceMetric:
        type: elasticstack:KibanaSlo
        name: timeslice_metric
        properties:
          name: timeslice metric
          description: timeslice metric
          timesliceMetricIndicators:
            - index: my-index
              timestampField: '@timestamp'
              metrics:
                - metrics:
                    - name: A
                      aggregation: sum
                      field: latency
                  equation: A
                  comparator: GT
                  threshold: 100
          timeWindows:
            - duration: 7d
              type: rolling
          budgetingMethod: timeslices
          objectives:
            - target: 0.95
              timesliceTarget: 0.95
              timesliceWindow: 5m
    
    Example coming soon!
    

    Create KibanaSlo Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new KibanaSlo(name: string, args: KibanaSloArgs, opts?: CustomResourceOptions);
    @overload
    def KibanaSlo(resource_name: str,
                  args: KibanaSloArgs,
                  opts: Optional[ResourceOptions] = None)
    
    @overload
    def KibanaSlo(resource_name: str,
                  opts: Optional[ResourceOptions] = None,
                  budgeting_method: Optional[str] = None,
                  description: Optional[str] = None,
                  kibana_connections: Optional[Sequence[KibanaSloKibanaConnectionArgs]] = None,
                  name: Optional[str] = None,
                  apm_latency_indicators: Optional[Sequence[KibanaSloApmLatencyIndicatorArgs]] = None,
                  enabled: Optional[bool] = None,
                  group_bies: Optional[Sequence[str]] = None,
                  histogram_custom_indicators: Optional[Sequence[KibanaSloHistogramCustomIndicatorArgs]] = None,
                  apm_availability_indicators: Optional[Sequence[KibanaSloApmAvailabilityIndicatorArgs]] = None,
                  kql_custom_indicators: Optional[Sequence[KibanaSloKqlCustomIndicatorArgs]] = None,
                  metric_custom_indicators: Optional[Sequence[KibanaSloMetricCustomIndicatorArgs]] = None,
                  artifacts: Optional[KibanaSloArtifactsArgs] = None,
                  objectives: Optional[Sequence[KibanaSloObjectiveArgs]] = None,
                  settings: Optional[KibanaSloSettingsArgs] = None,
                  slo_id: Optional[str] = None,
                  space_id: Optional[str] = None,
                  tags: Optional[Sequence[str]] = None,
                  time_windows: Optional[Sequence[KibanaSloTimeWindowArgs]] = None,
                  timeslice_metric_indicators: Optional[Sequence[KibanaSloTimesliceMetricIndicatorArgs]] = None)
    func NewKibanaSlo(ctx *Context, name string, args KibanaSloArgs, opts ...ResourceOption) (*KibanaSlo, error)
    public KibanaSlo(string name, KibanaSloArgs args, CustomResourceOptions? opts = null)
    public KibanaSlo(String name, KibanaSloArgs args)
    public KibanaSlo(String name, KibanaSloArgs args, CustomResourceOptions options)
    
    type: elasticstack:KibanaSlo
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "elasticstack_kibanaslo" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args KibanaSloArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args KibanaSloArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args KibanaSloArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args KibanaSloArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args KibanaSloArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var kibanaSloResource = new Elasticstack.KibanaSlo("kibanaSloResource", new()
    {
        BudgetingMethod = "string",
        Description = "string",
        KibanaConnections = new[]
        {
            new Elasticstack.Inputs.KibanaSloKibanaConnectionArgs
            {
                ApiKey = "string",
                BearerToken = "string",
                CaCerts = new[]
                {
                    "string",
                },
                Endpoints = new[]
                {
                    "string",
                },
                Insecure = false,
                Password = "string",
                Username = "string",
            },
        },
        Name = "string",
        ApmLatencyIndicators = new[]
        {
            new Elasticstack.Inputs.KibanaSloApmLatencyIndicatorArgs
            {
                Environment = "string",
                Index = "string",
                Service = "string",
                Threshold = 0,
                TransactionName = "string",
                TransactionType = "string",
                Filter = "string",
            },
        },
        Enabled = false,
        GroupBies = new[]
        {
            "string",
        },
        HistogramCustomIndicators = new[]
        {
            new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorArgs
            {
                Index = "string",
                DataViewId = "string",
                Filter = "string",
                Goods = new[]
                {
                    new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorGoodArgs
                    {
                        Aggregation = "string",
                        Field = "string",
                        Filter = "string",
                        From = 0,
                        To = 0,
                    },
                },
                TimestampField = "string",
                Totals = new[]
                {
                    new Elasticstack.Inputs.KibanaSloHistogramCustomIndicatorTotalArgs
                    {
                        Aggregation = "string",
                        Field = "string",
                        Filter = "string",
                        From = 0,
                        To = 0,
                    },
                },
            },
        },
        ApmAvailabilityIndicators = new[]
        {
            new Elasticstack.Inputs.KibanaSloApmAvailabilityIndicatorArgs
            {
                Environment = "string",
                Index = "string",
                Service = "string",
                TransactionName = "string",
                TransactionType = "string",
                Filter = "string",
            },
        },
        KqlCustomIndicators = new[]
        {
            new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorArgs
            {
                Index = "string",
                DataViewId = "string",
                Filter = "string",
                FilterKql = new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorFilterKqlArgs
                {
                    Filters = new[]
                    {
                        new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorFilterKqlFilterArgs
                        {
                            Query = "string",
                        },
                    },
                    KqlQuery = "string",
                },
                Good = "string",
                GoodKql = new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorGoodKqlArgs
                {
                    Filters = new[]
                    {
                        new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorGoodKqlFilterArgs
                        {
                            Query = "string",
                        },
                    },
                    KqlQuery = "string",
                },
                TimestampField = "string",
                Total = "string",
                TotalKql = new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorTotalKqlArgs
                {
                    Filters = new[]
                    {
                        new Elasticstack.Inputs.KibanaSloKqlCustomIndicatorTotalKqlFilterArgs
                        {
                            Query = "string",
                        },
                    },
                    KqlQuery = "string",
                },
            },
        },
        MetricCustomIndicators = new[]
        {
            new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorArgs
            {
                Index = "string",
                DataViewId = "string",
                Filter = "string",
                Goods = new[]
                {
                    new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorGoodArgs
                    {
                        Equation = "string",
                        Metrics = new[]
                        {
                            new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorGoodMetricArgs
                            {
                                Aggregation = "string",
                                Name = "string",
                                Field = "string",
                                Filter = "string",
                            },
                        },
                    },
                },
                TimestampField = "string",
                Totals = new[]
                {
                    new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorTotalArgs
                    {
                        Equation = "string",
                        Metrics = new[]
                        {
                            new Elasticstack.Inputs.KibanaSloMetricCustomIndicatorTotalMetricArgs
                            {
                                Aggregation = "string",
                                Name = "string",
                                Field = "string",
                                Filter = "string",
                            },
                        },
                    },
                },
            },
        },
        Artifacts = new Elasticstack.Inputs.KibanaSloArtifactsArgs
        {
            Dashboards = new[]
            {
                new Elasticstack.Inputs.KibanaSloArtifactsDashboardArgs
                {
                    Id = "string",
                },
            },
        },
        Objectives = new[]
        {
            new Elasticstack.Inputs.KibanaSloObjectiveArgs
            {
                Target = 0,
                TimesliceTarget = 0,
                TimesliceWindow = "string",
            },
        },
        Settings = new Elasticstack.Inputs.KibanaSloSettingsArgs
        {
            Frequency = "string",
            PreventInitialBackfill = false,
            SyncDelay = "string",
            SyncField = "string",
        },
        SloId = "string",
        SpaceId = "string",
        Tags = new[]
        {
            "string",
        },
        TimeWindows = new[]
        {
            new Elasticstack.Inputs.KibanaSloTimeWindowArgs
            {
                Duration = "string",
                Type = "string",
            },
        },
        TimesliceMetricIndicators = new[]
        {
            new Elasticstack.Inputs.KibanaSloTimesliceMetricIndicatorArgs
            {
                Index = "string",
                TimestampField = "string",
                DataViewId = "string",
                Filter = "string",
                Metrics = new[]
                {
                    new Elasticstack.Inputs.KibanaSloTimesliceMetricIndicatorMetricArgs
                    {
                        Comparator = "string",
                        Equation = "string",
                        Threshold = 0,
                        Metrics = new[]
                        {
                            new Elasticstack.Inputs.KibanaSloTimesliceMetricIndicatorMetricMetricArgs
                            {
                                Aggregation = "string",
                                Name = "string",
                                Field = "string",
                                Filter = "string",
                                Percentile = 0,
                            },
                        },
                    },
                },
            },
        },
    });
    
    example, err := elasticstack.NewKibanaSlo(ctx, "kibanaSloResource", &elasticstack.KibanaSloArgs{
    	BudgetingMethod: pulumi.String("string"),
    	Description:     pulumi.String("string"),
    	KibanaConnections: elasticstack.KibanaSloKibanaConnectionArray{
    		&elasticstack.KibanaSloKibanaConnectionArgs{
    			ApiKey:      pulumi.String("string"),
    			BearerToken: pulumi.String("string"),
    			CaCerts: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Endpoints: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Insecure: pulumi.Bool(false),
    			Password: pulumi.String("string"),
    			Username: pulumi.String("string"),
    		},
    	},
    	Name: pulumi.String("string"),
    	ApmLatencyIndicators: elasticstack.KibanaSloApmLatencyIndicatorArray{
    		&elasticstack.KibanaSloApmLatencyIndicatorArgs{
    			Environment:     pulumi.String("string"),
    			Index:           pulumi.String("string"),
    			Service:         pulumi.String("string"),
    			Threshold:       pulumi.Float64(0),
    			TransactionName: pulumi.String("string"),
    			TransactionType: pulumi.String("string"),
    			Filter:          pulumi.String("string"),
    		},
    	},
    	Enabled: pulumi.Bool(false),
    	GroupBies: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	HistogramCustomIndicators: elasticstack.KibanaSloHistogramCustomIndicatorArray{
    		&elasticstack.KibanaSloHistogramCustomIndicatorArgs{
    			Index:      pulumi.String("string"),
    			DataViewId: pulumi.String("string"),
    			Filter:     pulumi.String("string"),
    			Goods: elasticstack.KibanaSloHistogramCustomIndicatorGoodArray{
    				&elasticstack.KibanaSloHistogramCustomIndicatorGoodArgs{
    					Aggregation: pulumi.String("string"),
    					Field:       pulumi.String("string"),
    					Filter:      pulumi.String("string"),
    					From:        pulumi.Float64(0),
    					To:          pulumi.Float64(0),
    				},
    			},
    			TimestampField: pulumi.String("string"),
    			Totals: elasticstack.KibanaSloHistogramCustomIndicatorTotalArray{
    				&elasticstack.KibanaSloHistogramCustomIndicatorTotalArgs{
    					Aggregation: pulumi.String("string"),
    					Field:       pulumi.String("string"),
    					Filter:      pulumi.String("string"),
    					From:        pulumi.Float64(0),
    					To:          pulumi.Float64(0),
    				},
    			},
    		},
    	},
    	ApmAvailabilityIndicators: elasticstack.KibanaSloApmAvailabilityIndicatorArray{
    		&elasticstack.KibanaSloApmAvailabilityIndicatorArgs{
    			Environment:     pulumi.String("string"),
    			Index:           pulumi.String("string"),
    			Service:         pulumi.String("string"),
    			TransactionName: pulumi.String("string"),
    			TransactionType: pulumi.String("string"),
    			Filter:          pulumi.String("string"),
    		},
    	},
    	KqlCustomIndicators: elasticstack.KibanaSloKqlCustomIndicatorArray{
    		&elasticstack.KibanaSloKqlCustomIndicatorArgs{
    			Index:      pulumi.String("string"),
    			DataViewId: pulumi.String("string"),
    			Filter:     pulumi.String("string"),
    			FilterKql: &elasticstack.KibanaSloKqlCustomIndicatorFilterKqlArgs{
    				Filters: elasticstack.KibanaSloKqlCustomIndicatorFilterKqlFilterArray{
    					&elasticstack.KibanaSloKqlCustomIndicatorFilterKqlFilterArgs{
    						Query: pulumi.String("string"),
    					},
    				},
    				KqlQuery: pulumi.String("string"),
    			},
    			Good: pulumi.String("string"),
    			GoodKql: &elasticstack.KibanaSloKqlCustomIndicatorGoodKqlArgs{
    				Filters: elasticstack.KibanaSloKqlCustomIndicatorGoodKqlFilterArray{
    					&elasticstack.KibanaSloKqlCustomIndicatorGoodKqlFilterArgs{
    						Query: pulumi.String("string"),
    					},
    				},
    				KqlQuery: pulumi.String("string"),
    			},
    			TimestampField: pulumi.String("string"),
    			Total:          pulumi.String("string"),
    			TotalKql: &elasticstack.KibanaSloKqlCustomIndicatorTotalKqlArgs{
    				Filters: elasticstack.KibanaSloKqlCustomIndicatorTotalKqlFilterArray{
    					&elasticstack.KibanaSloKqlCustomIndicatorTotalKqlFilterArgs{
    						Query: pulumi.String("string"),
    					},
    				},
    				KqlQuery: pulumi.String("string"),
    			},
    		},
    	},
    	MetricCustomIndicators: elasticstack.KibanaSloMetricCustomIndicatorArray{
    		&elasticstack.KibanaSloMetricCustomIndicatorArgs{
    			Index:      pulumi.String("string"),
    			DataViewId: pulumi.String("string"),
    			Filter:     pulumi.String("string"),
    			Goods: elasticstack.KibanaSloMetricCustomIndicatorGoodArray{
    				&elasticstack.KibanaSloMetricCustomIndicatorGoodArgs{
    					Equation: pulumi.String("string"),
    					Metrics: elasticstack.KibanaSloMetricCustomIndicatorGoodMetricArray{
    						&elasticstack.KibanaSloMetricCustomIndicatorGoodMetricArgs{
    							Aggregation: pulumi.String("string"),
    							Name:        pulumi.String("string"),
    							Field:       pulumi.String("string"),
    							Filter:      pulumi.String("string"),
    						},
    					},
    				},
    			},
    			TimestampField: pulumi.String("string"),
    			Totals: elasticstack.KibanaSloMetricCustomIndicatorTotalArray{
    				&elasticstack.KibanaSloMetricCustomIndicatorTotalArgs{
    					Equation: pulumi.String("string"),
    					Metrics: elasticstack.KibanaSloMetricCustomIndicatorTotalMetricArray{
    						&elasticstack.KibanaSloMetricCustomIndicatorTotalMetricArgs{
    							Aggregation: pulumi.String("string"),
    							Name:        pulumi.String("string"),
    							Field:       pulumi.String("string"),
    							Filter:      pulumi.String("string"),
    						},
    					},
    				},
    			},
    		},
    	},
    	Artifacts: &elasticstack.KibanaSloArtifactsArgs{
    		Dashboards: elasticstack.KibanaSloArtifactsDashboardArray{
    			&elasticstack.KibanaSloArtifactsDashboardArgs{
    				Id: pulumi.String("string"),
    			},
    		},
    	},
    	Objectives: elasticstack.KibanaSloObjectiveArray{
    		&elasticstack.KibanaSloObjectiveArgs{
    			Target:          pulumi.Float64(0),
    			TimesliceTarget: pulumi.Float64(0),
    			TimesliceWindow: pulumi.String("string"),
    		},
    	},
    	Settings: &elasticstack.KibanaSloSettingsArgs{
    		Frequency:              pulumi.String("string"),
    		PreventInitialBackfill: pulumi.Bool(false),
    		SyncDelay:              pulumi.String("string"),
    		SyncField:              pulumi.String("string"),
    	},
    	SloId:   pulumi.String("string"),
    	SpaceId: pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	TimeWindows: elasticstack.KibanaSloTimeWindowArray{
    		&elasticstack.KibanaSloTimeWindowArgs{
    			Duration: pulumi.String("string"),
    			Type:     pulumi.String("string"),
    		},
    	},
    	TimesliceMetricIndicators: elasticstack.KibanaSloTimesliceMetricIndicatorArray{
    		&elasticstack.KibanaSloTimesliceMetricIndicatorArgs{
    			Index:          pulumi.String("string"),
    			TimestampField: pulumi.String("string"),
    			DataViewId:     pulumi.String("string"),
    			Filter:         pulumi.String("string"),
    			Metrics: elasticstack.KibanaSloTimesliceMetricIndicatorMetricArray{
    				&elasticstack.KibanaSloTimesliceMetricIndicatorMetricArgs{
    					Comparator: pulumi.String("string"),
    					Equation:   pulumi.String("string"),
    					Threshold:  pulumi.Float64(0),
    					Metrics: elasticstack.KibanaSloTimesliceMetricIndicatorMetricMetricArray{
    						&elasticstack.KibanaSloTimesliceMetricIndicatorMetricMetricArgs{
    							Aggregation: pulumi.String("string"),
    							Name:        pulumi.String("string"),
    							Field:       pulumi.String("string"),
    							Filter:      pulumi.String("string"),
    							Percentile:  pulumi.Float64(0),
    						},
    					},
    				},
    			},
    		},
    	},
    })
    
    resource "elasticstack_kibanaslo" "kibanaSloResource" {
      budgeting_method = "string"
      description      = "string"
      kibana_connections {
        api_key      = "string"
        bearer_token = "string"
        ca_certs     = ["string"]
        endpoints    = ["string"]
        insecure     = false
        password     = "string"
        username     = "string"
      }
      name = "string"
      apm_latency_indicators {
        environment      = "string"
        index            = "string"
        service          = "string"
        threshold        = 0
        transaction_name = "string"
        transaction_type = "string"
        filter           = "string"
      }
      enabled    = false
      group_bies = ["string"]
      histogram_custom_indicators {
        index        = "string"
        data_view_id = "string"
        filter       = "string"
        goods {
          aggregation = "string"
          field       = "string"
          filter      = "string"
          from        = 0
          to          = 0
        }
        timestamp_field = "string"
        totals {
          aggregation = "string"
          field       = "string"
          filter      = "string"
          from        = 0
          to          = 0
        }
      }
      apm_availability_indicators {
        environment      = "string"
        index            = "string"
        service          = "string"
        transaction_name = "string"
        transaction_type = "string"
        filter           = "string"
      }
      kql_custom_indicators {
        index        = "string"
        data_view_id = "string"
        filter       = "string"
        filter_kql = {
          filters = [{
            "query" = "string"
          }]
          kql_query = "string"
        }
        good = "string"
        good_kql = {
          filters = [{
            "query" = "string"
          }]
          kql_query = "string"
        }
        timestamp_field = "string"
        total           = "string"
        total_kql = {
          filters = [{
            "query" = "string"
          }]
          kql_query = "string"
        }
      }
      metric_custom_indicators {
        index        = "string"
        data_view_id = "string"
        filter       = "string"
        goods {
          equation = "string"
          metrics {
            aggregation = "string"
            name        = "string"
            field       = "string"
            filter      = "string"
          }
        }
        timestamp_field = "string"
        totals {
          equation = "string"
          metrics {
            aggregation = "string"
            name        = "string"
            field       = "string"
            filter      = "string"
          }
        }
      }
      artifacts = {
        dashboards = [{
          "id" = "string"
        }]
      }
      objectives {
        target           = 0
        timeslice_target = 0
        timeslice_window = "string"
      }
      settings = {
        frequency                = "string"
        prevent_initial_backfill = false
        sync_delay               = "string"
        sync_field               = "string"
      }
      slo_id   = "string"
      space_id = "string"
      tags     = ["string"]
      time_windows {
        duration = "string"
        type     = "string"
      }
      timeslice_metric_indicators {
        index           = "string"
        timestamp_field = "string"
        data_view_id    = "string"
        filter          = "string"
        metrics {
          comparator = "string"
          equation   = "string"
          threshold  = 0
          metrics {
            aggregation = "string"
            name        = "string"
            field       = "string"
            filter      = "string"
            percentile  = 0
          }
        }
      }
    }
    
    var kibanaSloResource = new KibanaSlo("kibanaSloResource", KibanaSloArgs.builder()
        .budgetingMethod("string")
        .description("string")
        .kibanaConnections(KibanaSloKibanaConnectionArgs.builder()
            .apiKey("string")
            .bearerToken("string")
            .caCerts("string")
            .endpoints("string")
            .insecure(false)
            .password("string")
            .username("string")
            .build())
        .name("string")
        .apmLatencyIndicators(KibanaSloApmLatencyIndicatorArgs.builder()
            .environment("string")
            .index("string")
            .service("string")
            .threshold(0.0)
            .transactionName("string")
            .transactionType("string")
            .filter("string")
            .build())
        .enabled(false)
        .groupBies("string")
        .histogramCustomIndicators(KibanaSloHistogramCustomIndicatorArgs.builder()
            .index("string")
            .dataViewId("string")
            .filter("string")
            .goods(KibanaSloHistogramCustomIndicatorGoodArgs.builder()
                .aggregation("string")
                .field("string")
                .filter("string")
                .from(0.0)
                .to(0.0)
                .build())
            .timestampField("string")
            .totals(KibanaSloHistogramCustomIndicatorTotalArgs.builder()
                .aggregation("string")
                .field("string")
                .filter("string")
                .from(0.0)
                .to(0.0)
                .build())
            .build())
        .apmAvailabilityIndicators(KibanaSloApmAvailabilityIndicatorArgs.builder()
            .environment("string")
            .index("string")
            .service("string")
            .transactionName("string")
            .transactionType("string")
            .filter("string")
            .build())
        .kqlCustomIndicators(KibanaSloKqlCustomIndicatorArgs.builder()
            .index("string")
            .dataViewId("string")
            .filter("string")
            .filterKql(KibanaSloKqlCustomIndicatorFilterKqlArgs.builder()
                .filters(KibanaSloKqlCustomIndicatorFilterKqlFilterArgs.builder()
                    .query("string")
                    .build())
                .kqlQuery("string")
                .build())
            .good("string")
            .goodKql(KibanaSloKqlCustomIndicatorGoodKqlArgs.builder()
                .filters(KibanaSloKqlCustomIndicatorGoodKqlFilterArgs.builder()
                    .query("string")
                    .build())
                .kqlQuery("string")
                .build())
            .timestampField("string")
            .total("string")
            .totalKql(KibanaSloKqlCustomIndicatorTotalKqlArgs.builder()
                .filters(KibanaSloKqlCustomIndicatorTotalKqlFilterArgs.builder()
                    .query("string")
                    .build())
                .kqlQuery("string")
                .build())
            .build())
        .metricCustomIndicators(KibanaSloMetricCustomIndicatorArgs.builder()
            .index("string")
            .dataViewId("string")
            .filter("string")
            .goods(KibanaSloMetricCustomIndicatorGoodArgs.builder()
                .equation("string")
                .metrics(KibanaSloMetricCustomIndicatorGoodMetricArgs.builder()
                    .aggregation("string")
                    .name("string")
                    .field("string")
                    .filter("string")
                    .build())
                .build())
            .timestampField("string")
            .totals(KibanaSloMetricCustomIndicatorTotalArgs.builder()
                .equation("string")
                .metrics(KibanaSloMetricCustomIndicatorTotalMetricArgs.builder()
                    .aggregation("string")
                    .name("string")
                    .field("string")
                    .filter("string")
                    .build())
                .build())
            .build())
        .artifacts(KibanaSloArtifactsArgs.builder()
            .dashboards(KibanaSloArtifactsDashboardArgs.builder()
                .id("string")
                .build())
            .build())
        .objectives(KibanaSloObjectiveArgs.builder()
            .target(0.0)
            .timesliceTarget(0.0)
            .timesliceWindow("string")
            .build())
        .settings(KibanaSloSettingsArgs.builder()
            .frequency("string")
            .preventInitialBackfill(false)
            .syncDelay("string")
            .syncField("string")
            .build())
        .sloId("string")
        .spaceId("string")
        .tags("string")
        .timeWindows(KibanaSloTimeWindowArgs.builder()
            .duration("string")
            .type("string")
            .build())
        .timesliceMetricIndicators(KibanaSloTimesliceMetricIndicatorArgs.builder()
            .index("string")
            .timestampField("string")
            .dataViewId("string")
            .filter("string")
            .metrics(KibanaSloTimesliceMetricIndicatorMetricArgs.builder()
                .comparator("string")
                .equation("string")
                .threshold(0.0)
                .metrics(KibanaSloTimesliceMetricIndicatorMetricMetricArgs.builder()
                    .aggregation("string")
                    .name("string")
                    .field("string")
                    .filter("string")
                    .percentile(0.0)
                    .build())
                .build())
            .build())
        .build());
    
    kibana_slo_resource = elasticstack.KibanaSlo("kibanaSloResource",
        budgeting_method="string",
        description="string",
        kibana_connections=[{
            "api_key": "string",
            "bearer_token": "string",
            "ca_certs": ["string"],
            "endpoints": ["string"],
            "insecure": False,
            "password": "string",
            "username": "string",
        }],
        name="string",
        apm_latency_indicators=[{
            "environment": "string",
            "index": "string",
            "service": "string",
            "threshold": float(0),
            "transaction_name": "string",
            "transaction_type": "string",
            "filter": "string",
        }],
        enabled=False,
        group_bies=["string"],
        histogram_custom_indicators=[{
            "index": "string",
            "data_view_id": "string",
            "filter": "string",
            "goods": [{
                "aggregation": "string",
                "field": "string",
                "filter": "string",
                "from_": float(0),
                "to": float(0),
            }],
            "timestamp_field": "string",
            "totals": [{
                "aggregation": "string",
                "field": "string",
                "filter": "string",
                "from_": float(0),
                "to": float(0),
            }],
        }],
        apm_availability_indicators=[{
            "environment": "string",
            "index": "string",
            "service": "string",
            "transaction_name": "string",
            "transaction_type": "string",
            "filter": "string",
        }],
        kql_custom_indicators=[{
            "index": "string",
            "data_view_id": "string",
            "filter": "string",
            "filter_kql": {
                "filters": [{
                    "query": "string",
                }],
                "kql_query": "string",
            },
            "good": "string",
            "good_kql": {
                "filters": [{
                    "query": "string",
                }],
                "kql_query": "string",
            },
            "timestamp_field": "string",
            "total": "string",
            "total_kql": {
                "filters": [{
                    "query": "string",
                }],
                "kql_query": "string",
            },
        }],
        metric_custom_indicators=[{
            "index": "string",
            "data_view_id": "string",
            "filter": "string",
            "goods": [{
                "equation": "string",
                "metrics": [{
                    "aggregation": "string",
                    "name": "string",
                    "field": "string",
                    "filter": "string",
                }],
            }],
            "timestamp_field": "string",
            "totals": [{
                "equation": "string",
                "metrics": [{
                    "aggregation": "string",
                    "name": "string",
                    "field": "string",
                    "filter": "string",
                }],
            }],
        }],
        artifacts={
            "dashboards": [{
                "id": "string",
            }],
        },
        objectives=[{
            "target": float(0),
            "timeslice_target": float(0),
            "timeslice_window": "string",
        }],
        settings={
            "frequency": "string",
            "prevent_initial_backfill": False,
            "sync_delay": "string",
            "sync_field": "string",
        },
        slo_id="string",
        space_id="string",
        tags=["string"],
        time_windows=[{
            "duration": "string",
            "type": "string",
        }],
        timeslice_metric_indicators=[{
            "index": "string",
            "timestamp_field": "string",
            "data_view_id": "string",
            "filter": "string",
            "metrics": [{
                "comparator": "string",
                "equation": "string",
                "threshold": float(0),
                "metrics": [{
                    "aggregation": "string",
                    "name": "string",
                    "field": "string",
                    "filter": "string",
                    "percentile": float(0),
                }],
            }],
        }])
    
    const kibanaSloResource = new elasticstack.KibanaSlo("kibanaSloResource", {
        budgetingMethod: "string",
        description: "string",
        kibanaConnections: [{
            apiKey: "string",
            bearerToken: "string",
            caCerts: ["string"],
            endpoints: ["string"],
            insecure: false,
            password: "string",
            username: "string",
        }],
        name: "string",
        apmLatencyIndicators: [{
            environment: "string",
            index: "string",
            service: "string",
            threshold: 0,
            transactionName: "string",
            transactionType: "string",
            filter: "string",
        }],
        enabled: false,
        groupBies: ["string"],
        histogramCustomIndicators: [{
            index: "string",
            dataViewId: "string",
            filter: "string",
            goods: [{
                aggregation: "string",
                field: "string",
                filter: "string",
                from: 0,
                to: 0,
            }],
            timestampField: "string",
            totals: [{
                aggregation: "string",
                field: "string",
                filter: "string",
                from: 0,
                to: 0,
            }],
        }],
        apmAvailabilityIndicators: [{
            environment: "string",
            index: "string",
            service: "string",
            transactionName: "string",
            transactionType: "string",
            filter: "string",
        }],
        kqlCustomIndicators: [{
            index: "string",
            dataViewId: "string",
            filter: "string",
            filterKql: {
                filters: [{
                    query: "string",
                }],
                kqlQuery: "string",
            },
            good: "string",
            goodKql: {
                filters: [{
                    query: "string",
                }],
                kqlQuery: "string",
            },
            timestampField: "string",
            total: "string",
            totalKql: {
                filters: [{
                    query: "string",
                }],
                kqlQuery: "string",
            },
        }],
        metricCustomIndicators: [{
            index: "string",
            dataViewId: "string",
            filter: "string",
            goods: [{
                equation: "string",
                metrics: [{
                    aggregation: "string",
                    name: "string",
                    field: "string",
                    filter: "string",
                }],
            }],
            timestampField: "string",
            totals: [{
                equation: "string",
                metrics: [{
                    aggregation: "string",
                    name: "string",
                    field: "string",
                    filter: "string",
                }],
            }],
        }],
        artifacts: {
            dashboards: [{
                id: "string",
            }],
        },
        objectives: [{
            target: 0,
            timesliceTarget: 0,
            timesliceWindow: "string",
        }],
        settings: {
            frequency: "string",
            preventInitialBackfill: false,
            syncDelay: "string",
            syncField: "string",
        },
        sloId: "string",
        spaceId: "string",
        tags: ["string"],
        timeWindows: [{
            duration: "string",
            type: "string",
        }],
        timesliceMetricIndicators: [{
            index: "string",
            timestampField: "string",
            dataViewId: "string",
            filter: "string",
            metrics: [{
                comparator: "string",
                equation: "string",
                threshold: 0,
                metrics: [{
                    aggregation: "string",
                    name: "string",
                    field: "string",
                    filter: "string",
                    percentile: 0,
                }],
            }],
        }],
    });
    
    type: elasticstack:KibanaSlo
    properties:
        apmAvailabilityIndicators:
            - environment: string
              filter: string
              index: string
              service: string
              transactionName: string
              transactionType: string
        apmLatencyIndicators:
            - environment: string
              filter: string
              index: string
              service: string
              threshold: 0
              transactionName: string
              transactionType: string
        artifacts:
            dashboards:
                - id: string
        budgetingMethod: string
        description: string
        enabled: false
        groupBies:
            - string
        histogramCustomIndicators:
            - dataViewId: string
              filter: string
              goods:
                - aggregation: string
                  field: string
                  filter: string
                  from: 0
                  to: 0
              index: string
              timestampField: string
              totals:
                - aggregation: string
                  field: string
                  filter: string
                  from: 0
                  to: 0
        kibanaConnections:
            - apiKey: string
              bearerToken: string
              caCerts:
                - string
              endpoints:
                - string
              insecure: false
              password: string
              username: string
        kqlCustomIndicators:
            - dataViewId: string
              filter: string
              filterKql:
                filters:
                    - query: string
                kqlQuery: string
              good: string
              goodKql:
                filters:
                    - query: string
                kqlQuery: string
              index: string
              timestampField: string
              total: string
              totalKql:
                filters:
                    - query: string
                kqlQuery: string
        metricCustomIndicators:
            - dataViewId: string
              filter: string
              goods:
                - equation: string
                  metrics:
                    - aggregation: string
                      field: string
                      filter: string
                      name: string
              index: string
              timestampField: string
              totals:
                - equation: string
                  metrics:
                    - aggregation: string
                      field: string
                      filter: string
                      name: string
        name: string
        objectives:
            - target: 0
              timesliceTarget: 0
              timesliceWindow: string
        settings:
            frequency: string
            preventInitialBackfill: false
            syncDelay: string
            syncField: string
        sloId: string
        spaceId: string
        tags:
            - string
        timeWindows:
            - duration: string
              type: string
        timesliceMetricIndicators:
            - dataViewId: string
              filter: string
              index: string
              metrics:
                - comparator: string
                  equation: string
                  metrics:
                    - aggregation: string
                      field: string
                      filter: string
                      name: string
                      percentile: 0
                  threshold: 0
              timestampField: string
    

    KibanaSlo Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The KibanaSlo resource accepts the following input properties:

    BudgetingMethod string
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    Description string
    A description for the SLO.
    ApmAvailabilityIndicators List<KibanaSloApmAvailabilityIndicator>
    ApmLatencyIndicators List<KibanaSloApmLatencyIndicator>
    Artifacts KibanaSloArtifacts
    Links to related assets (for example dashboards) returned and managed with the SLO.
    Enabled bool
    Whether the SLO is enabled in Kibana.
    GroupBies List<string>
    Optional group by fields to use to generate an SLO per distinct value.
    HistogramCustomIndicators List<KibanaSloHistogramCustomIndicator>
    KibanaConnections List<KibanaSloKibanaConnection>
    Kibana connection configuration block.
    KqlCustomIndicators List<KibanaSloKqlCustomIndicator>
    MetricCustomIndicators List<KibanaSloMetricCustomIndicator>
    Name string
    The name of the SLO.
    Objectives List<KibanaSloObjective>
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    Settings KibanaSloSettings
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    SloId string
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    SpaceId string
    An identifier for the space. If space_id is not provided, the default space is used.
    Tags List<string>
    The tags for the SLO.
    TimeWindows List<KibanaSloTimeWindow>
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    TimesliceMetricIndicators List<KibanaSloTimesliceMetricIndicator>
    Defines a timeslice metric indicator for SLO.
    BudgetingMethod string
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    Description string
    A description for the SLO.
    ApmAvailabilityIndicators []KibanaSloApmAvailabilityIndicatorArgs
    ApmLatencyIndicators []KibanaSloApmLatencyIndicatorArgs
    Artifacts KibanaSloArtifactsArgs
    Links to related assets (for example dashboards) returned and managed with the SLO.
    Enabled bool
    Whether the SLO is enabled in Kibana.
    GroupBies []string
    Optional group by fields to use to generate an SLO per distinct value.
    HistogramCustomIndicators []KibanaSloHistogramCustomIndicatorArgs
    KibanaConnections []KibanaSloKibanaConnectionArgs
    Kibana connection configuration block.
    KqlCustomIndicators []KibanaSloKqlCustomIndicatorArgs
    MetricCustomIndicators []KibanaSloMetricCustomIndicatorArgs
    Name string
    The name of the SLO.
    Objectives []KibanaSloObjectiveArgs
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    Settings KibanaSloSettingsArgs
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    SloId string
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    SpaceId string
    An identifier for the space. If space_id is not provided, the default space is used.
    Tags []string
    The tags for the SLO.
    TimeWindows []KibanaSloTimeWindowArgs
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    TimesliceMetricIndicators []KibanaSloTimesliceMetricIndicatorArgs
    Defines a timeslice metric indicator for SLO.
    budgeting_method string
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description string
    A description for the SLO.
    apm_availability_indicators list(object)
    apm_latency_indicators list(object)
    artifacts object
    Links to related assets (for example dashboards) returned and managed with the SLO.
    enabled bool
    Whether the SLO is enabled in Kibana.
    group_bies list(string)
    Optional group by fields to use to generate an SLO per distinct value.
    histogram_custom_indicators list(object)
    kibana_connections list(object)
    Kibana connection configuration block.
    kql_custom_indicators list(object)
    metric_custom_indicators list(object)
    name string
    The name of the SLO.
    objectives list(object)
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings object
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    slo_id string
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    space_id string
    An identifier for the space. If space_id is not provided, the default space is used.
    tags list(string)
    The tags for the SLO.
    time_windows list(object)
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timeslice_metric_indicators list(object)
    Defines a timeslice metric indicator for SLO.
    budgetingMethod String
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description String
    A description for the SLO.
    apmAvailabilityIndicators List<KibanaSloApmAvailabilityIndicator>
    apmLatencyIndicators List<KibanaSloApmLatencyIndicator>
    artifacts KibanaSloArtifacts
    Links to related assets (for example dashboards) returned and managed with the SLO.
    enabled Boolean
    Whether the SLO is enabled in Kibana.
    groupBies List<String>
    Optional group by fields to use to generate an SLO per distinct value.
    histogramCustomIndicators List<KibanaSloHistogramCustomIndicator>
    kibanaConnections List<KibanaSloKibanaConnection>
    Kibana connection configuration block.
    kqlCustomIndicators List<KibanaSloKqlCustomIndicator>
    metricCustomIndicators List<KibanaSloMetricCustomIndicator>
    name String
    The name of the SLO.
    objectives List<KibanaSloObjective>
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings KibanaSloSettings
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    sloId String
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    spaceId String
    An identifier for the space. If space_id is not provided, the default space is used.
    tags List<String>
    The tags for the SLO.
    timeWindows List<KibanaSloTimeWindow>
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timesliceMetricIndicators List<KibanaSloTimesliceMetricIndicator>
    Defines a timeslice metric indicator for SLO.
    budgetingMethod string
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description string
    A description for the SLO.
    apmAvailabilityIndicators KibanaSloApmAvailabilityIndicator[]
    apmLatencyIndicators KibanaSloApmLatencyIndicator[]
    artifacts KibanaSloArtifacts
    Links to related assets (for example dashboards) returned and managed with the SLO.
    enabled boolean
    Whether the SLO is enabled in Kibana.
    groupBies string[]
    Optional group by fields to use to generate an SLO per distinct value.
    histogramCustomIndicators KibanaSloHistogramCustomIndicator[]
    kibanaConnections KibanaSloKibanaConnection[]
    Kibana connection configuration block.
    kqlCustomIndicators KibanaSloKqlCustomIndicator[]
    metricCustomIndicators KibanaSloMetricCustomIndicator[]
    name string
    The name of the SLO.
    objectives KibanaSloObjective[]
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings KibanaSloSettings
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    sloId string
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    spaceId string
    An identifier for the space. If space_id is not provided, the default space is used.
    tags string[]
    The tags for the SLO.
    timeWindows KibanaSloTimeWindow[]
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timesliceMetricIndicators KibanaSloTimesliceMetricIndicator[]
    Defines a timeslice metric indicator for SLO.
    budgeting_method str
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description str
    A description for the SLO.
    apm_availability_indicators Sequence[KibanaSloApmAvailabilityIndicatorArgs]
    apm_latency_indicators Sequence[KibanaSloApmLatencyIndicatorArgs]
    artifacts KibanaSloArtifactsArgs
    Links to related assets (for example dashboards) returned and managed with the SLO.
    enabled bool
    Whether the SLO is enabled in Kibana.
    group_bies Sequence[str]
    Optional group by fields to use to generate an SLO per distinct value.
    histogram_custom_indicators Sequence[KibanaSloHistogramCustomIndicatorArgs]
    kibana_connections Sequence[KibanaSloKibanaConnectionArgs]
    Kibana connection configuration block.
    kql_custom_indicators Sequence[KibanaSloKqlCustomIndicatorArgs]
    metric_custom_indicators Sequence[KibanaSloMetricCustomIndicatorArgs]
    name str
    The name of the SLO.
    objectives Sequence[KibanaSloObjectiveArgs]
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings KibanaSloSettingsArgs
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    slo_id str
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    space_id str
    An identifier for the space. If space_id is not provided, the default space is used.
    tags Sequence[str]
    The tags for the SLO.
    time_windows Sequence[KibanaSloTimeWindowArgs]
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timeslice_metric_indicators Sequence[KibanaSloTimesliceMetricIndicatorArgs]
    Defines a timeslice metric indicator for SLO.
    budgetingMethod String
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description String
    A description for the SLO.
    apmAvailabilityIndicators List<Property Map>
    apmLatencyIndicators List<Property Map>
    artifacts Property Map
    Links to related assets (for example dashboards) returned and managed with the SLO.
    enabled Boolean
    Whether the SLO is enabled in Kibana.
    groupBies List<String>
    Optional group by fields to use to generate an SLO per distinct value.
    histogramCustomIndicators List<Property Map>
    kibanaConnections List<Property Map>
    Kibana connection configuration block.
    kqlCustomIndicators List<Property Map>
    metricCustomIndicators List<Property Map>
    name String
    The name of the SLO.
    objectives List<Property Map>
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings Property Map
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    sloId String
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    spaceId String
    An identifier for the space. If space_id is not provided, the default space is used.
    tags List<String>
    The tags for the SLO.
    timeWindows List<Property Map>
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timesliceMetricIndicators List<Property Map>
    Defines a timeslice metric indicator for SLO.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the KibanaSlo resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing KibanaSlo Resource

    Get an existing KibanaSlo resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: KibanaSloState, opts?: CustomResourceOptions): KibanaSlo
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            apm_availability_indicators: Optional[Sequence[KibanaSloApmAvailabilityIndicatorArgs]] = None,
            apm_latency_indicators: Optional[Sequence[KibanaSloApmLatencyIndicatorArgs]] = None,
            artifacts: Optional[KibanaSloArtifactsArgs] = None,
            budgeting_method: Optional[str] = None,
            description: Optional[str] = None,
            enabled: Optional[bool] = None,
            group_bies: Optional[Sequence[str]] = None,
            histogram_custom_indicators: Optional[Sequence[KibanaSloHistogramCustomIndicatorArgs]] = None,
            kibana_connections: Optional[Sequence[KibanaSloKibanaConnectionArgs]] = None,
            kql_custom_indicators: Optional[Sequence[KibanaSloKqlCustomIndicatorArgs]] = None,
            metric_custom_indicators: Optional[Sequence[KibanaSloMetricCustomIndicatorArgs]] = None,
            name: Optional[str] = None,
            objectives: Optional[Sequence[KibanaSloObjectiveArgs]] = None,
            settings: Optional[KibanaSloSettingsArgs] = None,
            slo_id: Optional[str] = None,
            space_id: Optional[str] = None,
            tags: Optional[Sequence[str]] = None,
            time_windows: Optional[Sequence[KibanaSloTimeWindowArgs]] = None,
            timeslice_metric_indicators: Optional[Sequence[KibanaSloTimesliceMetricIndicatorArgs]] = None) -> KibanaSlo
    func GetKibanaSlo(ctx *Context, name string, id IDInput, state *KibanaSloState, opts ...ResourceOption) (*KibanaSlo, error)
    public static KibanaSlo Get(string name, Input<string> id, KibanaSloState? state, CustomResourceOptions? opts = null)
    public static KibanaSlo get(String name, Output<String> id, KibanaSloState state, CustomResourceOptions options)
    resources:  _:    type: elasticstack:KibanaSlo    get:      id: ${id}
    import {
      to = elasticstack_kibanaslo.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    ApmAvailabilityIndicators List<KibanaSloApmAvailabilityIndicator>
    ApmLatencyIndicators List<KibanaSloApmLatencyIndicator>
    Artifacts KibanaSloArtifacts
    Links to related assets (for example dashboards) returned and managed with the SLO.
    BudgetingMethod string
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    Description string
    A description for the SLO.
    Enabled bool
    Whether the SLO is enabled in Kibana.
    GroupBies List<string>
    Optional group by fields to use to generate an SLO per distinct value.
    HistogramCustomIndicators List<KibanaSloHistogramCustomIndicator>
    KibanaConnections List<KibanaSloKibanaConnection>
    Kibana connection configuration block.
    KqlCustomIndicators List<KibanaSloKqlCustomIndicator>
    MetricCustomIndicators List<KibanaSloMetricCustomIndicator>
    Name string
    The name of the SLO.
    Objectives List<KibanaSloObjective>
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    Settings KibanaSloSettings
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    SloId string
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    SpaceId string
    An identifier for the space. If space_id is not provided, the default space is used.
    Tags List<string>
    The tags for the SLO.
    TimeWindows List<KibanaSloTimeWindow>
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    TimesliceMetricIndicators List<KibanaSloTimesliceMetricIndicator>
    Defines a timeslice metric indicator for SLO.
    ApmAvailabilityIndicators []KibanaSloApmAvailabilityIndicatorArgs
    ApmLatencyIndicators []KibanaSloApmLatencyIndicatorArgs
    Artifacts KibanaSloArtifactsArgs
    Links to related assets (for example dashboards) returned and managed with the SLO.
    BudgetingMethod string
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    Description string
    A description for the SLO.
    Enabled bool
    Whether the SLO is enabled in Kibana.
    GroupBies []string
    Optional group by fields to use to generate an SLO per distinct value.
    HistogramCustomIndicators []KibanaSloHistogramCustomIndicatorArgs
    KibanaConnections []KibanaSloKibanaConnectionArgs
    Kibana connection configuration block.
    KqlCustomIndicators []KibanaSloKqlCustomIndicatorArgs
    MetricCustomIndicators []KibanaSloMetricCustomIndicatorArgs
    Name string
    The name of the SLO.
    Objectives []KibanaSloObjectiveArgs
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    Settings KibanaSloSettingsArgs
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    SloId string
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    SpaceId string
    An identifier for the space. If space_id is not provided, the default space is used.
    Tags []string
    The tags for the SLO.
    TimeWindows []KibanaSloTimeWindowArgs
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    TimesliceMetricIndicators []KibanaSloTimesliceMetricIndicatorArgs
    Defines a timeslice metric indicator for SLO.
    apm_availability_indicators list(object)
    apm_latency_indicators list(object)
    artifacts object
    Links to related assets (for example dashboards) returned and managed with the SLO.
    budgeting_method string
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description string
    A description for the SLO.
    enabled bool
    Whether the SLO is enabled in Kibana.
    group_bies list(string)
    Optional group by fields to use to generate an SLO per distinct value.
    histogram_custom_indicators list(object)
    kibana_connections list(object)
    Kibana connection configuration block.
    kql_custom_indicators list(object)
    metric_custom_indicators list(object)
    name string
    The name of the SLO.
    objectives list(object)
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings object
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    slo_id string
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    space_id string
    An identifier for the space. If space_id is not provided, the default space is used.
    tags list(string)
    The tags for the SLO.
    time_windows list(object)
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timeslice_metric_indicators list(object)
    Defines a timeslice metric indicator for SLO.
    apmAvailabilityIndicators List<KibanaSloApmAvailabilityIndicator>
    apmLatencyIndicators List<KibanaSloApmLatencyIndicator>
    artifacts KibanaSloArtifacts
    Links to related assets (for example dashboards) returned and managed with the SLO.
    budgetingMethod String
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description String
    A description for the SLO.
    enabled Boolean
    Whether the SLO is enabled in Kibana.
    groupBies List<String>
    Optional group by fields to use to generate an SLO per distinct value.
    histogramCustomIndicators List<KibanaSloHistogramCustomIndicator>
    kibanaConnections List<KibanaSloKibanaConnection>
    Kibana connection configuration block.
    kqlCustomIndicators List<KibanaSloKqlCustomIndicator>
    metricCustomIndicators List<KibanaSloMetricCustomIndicator>
    name String
    The name of the SLO.
    objectives List<KibanaSloObjective>
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings KibanaSloSettings
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    sloId String
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    spaceId String
    An identifier for the space. If space_id is not provided, the default space is used.
    tags List<String>
    The tags for the SLO.
    timeWindows List<KibanaSloTimeWindow>
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timesliceMetricIndicators List<KibanaSloTimesliceMetricIndicator>
    Defines a timeslice metric indicator for SLO.
    apmAvailabilityIndicators KibanaSloApmAvailabilityIndicator[]
    apmLatencyIndicators KibanaSloApmLatencyIndicator[]
    artifacts KibanaSloArtifacts
    Links to related assets (for example dashboards) returned and managed with the SLO.
    budgetingMethod string
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description string
    A description for the SLO.
    enabled boolean
    Whether the SLO is enabled in Kibana.
    groupBies string[]
    Optional group by fields to use to generate an SLO per distinct value.
    histogramCustomIndicators KibanaSloHistogramCustomIndicator[]
    kibanaConnections KibanaSloKibanaConnection[]
    Kibana connection configuration block.
    kqlCustomIndicators KibanaSloKqlCustomIndicator[]
    metricCustomIndicators KibanaSloMetricCustomIndicator[]
    name string
    The name of the SLO.
    objectives KibanaSloObjective[]
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings KibanaSloSettings
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    sloId string
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    spaceId string
    An identifier for the space. If space_id is not provided, the default space is used.
    tags string[]
    The tags for the SLO.
    timeWindows KibanaSloTimeWindow[]
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timesliceMetricIndicators KibanaSloTimesliceMetricIndicator[]
    Defines a timeslice metric indicator for SLO.
    apm_availability_indicators Sequence[KibanaSloApmAvailabilityIndicatorArgs]
    apm_latency_indicators Sequence[KibanaSloApmLatencyIndicatorArgs]
    artifacts KibanaSloArtifactsArgs
    Links to related assets (for example dashboards) returned and managed with the SLO.
    budgeting_method str
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description str
    A description for the SLO.
    enabled bool
    Whether the SLO is enabled in Kibana.
    group_bies Sequence[str]
    Optional group by fields to use to generate an SLO per distinct value.
    histogram_custom_indicators Sequence[KibanaSloHistogramCustomIndicatorArgs]
    kibana_connections Sequence[KibanaSloKibanaConnectionArgs]
    Kibana connection configuration block.
    kql_custom_indicators Sequence[KibanaSloKqlCustomIndicatorArgs]
    metric_custom_indicators Sequence[KibanaSloMetricCustomIndicatorArgs]
    name str
    The name of the SLO.
    objectives Sequence[KibanaSloObjectiveArgs]
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings KibanaSloSettingsArgs
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    slo_id str
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    space_id str
    An identifier for the space. If space_id is not provided, the default space is used.
    tags Sequence[str]
    The tags for the SLO.
    time_windows Sequence[KibanaSloTimeWindowArgs]
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timeslice_metric_indicators Sequence[KibanaSloTimesliceMetricIndicatorArgs]
    Defines a timeslice metric indicator for SLO.
    apmAvailabilityIndicators List<Property Map>
    apmLatencyIndicators List<Property Map>
    artifacts Property Map
    Links to related assets (for example dashboards) returned and managed with the SLO.
    budgetingMethod String
    An occurrences budgeting method uses the number of good and total events during the time window. A timeslices budgeting method uses the number of good slices and total slices during the time window. A slice is an arbitrary time window (smaller than the overall SLO time window) that is either considered good or bad, calculated from the timeslice threshold and the ratio of good over total events that happened during the slice window. A budgeting method is required and must be either occurrences or timeslices.
    description String
    A description for the SLO.
    enabled Boolean
    Whether the SLO is enabled in Kibana.
    groupBies List<String>
    Optional group by fields to use to generate an SLO per distinct value.
    histogramCustomIndicators List<Property Map>
    kibanaConnections List<Property Map>
    Kibana connection configuration block.
    kqlCustomIndicators List<Property Map>
    metricCustomIndicators List<Property Map>
    name String
    The name of the SLO.
    objectives List<Property Map>
    The target objective is the value the SLO needs to meet during the time window. If a timeslices budgeting method is used, we also need to define the timesliceTarget which can be different than the overall SLO target.
    settings Property Map
    The default settings should be sufficient for most users, but if needed, these properties can be overwritten.
    sloId String
    An ID (8 to 36 characters) that contains only letters, numbers, hyphens, and underscores. If omitted, a UUIDv1 will be generated server-side.
    spaceId String
    An identifier for the space. If space_id is not provided, the default space is used.
    tags List<String>
    The tags for the SLO.
    timeWindows List<Property Map>
    Currently supports calendarAligned and rolling time windows. For type = "rolling", duration must be one of 7d (7 days), 30d (30 days), or 90d (90 days). For type = "calendarAligned", duration must be either 1w (weekly) or 1M (monthly). Rolling time window SLOs only consider SLI data from the last duration period as a moving window. Calendar aligned time windows align to calendar boundaries.
    timesliceMetricIndicators List<Property Map>
    Defines a timeslice metric indicator for SLO.

    Supporting Types

    KibanaSloApmAvailabilityIndicator, KibanaSloApmAvailabilityIndicatorArgs

    Environment string
    Index string
    Service string
    TransactionName string
    TransactionType string
    Filter string
    Environment string
    Index string
    Service string
    TransactionName string
    TransactionType string
    Filter string
    environment string
    index string
    service string
    transaction_name string
    transaction_type string
    filter string
    environment String
    index String
    service String
    transactionName String
    transactionType String
    filter String
    environment string
    index string
    service string
    transactionName string
    transactionType string
    filter string
    environment String
    index String
    service String
    transactionName String
    transactionType String
    filter String

    KibanaSloApmLatencyIndicator, KibanaSloApmLatencyIndicatorArgs

    Environment string
    Index string
    Service string
    Threshold double
    TransactionName string
    TransactionType string
    Filter string
    Environment string
    Index string
    Service string
    Threshold float64
    TransactionName string
    TransactionType string
    Filter string
    environment string
    index string
    service string
    threshold number
    transaction_name string
    transaction_type string
    filter string
    environment String
    index String
    service String
    threshold Double
    transactionName String
    transactionType String
    filter String
    environment string
    index string
    service string
    threshold number
    transactionName string
    transactionType string
    filter string
    environment String
    index String
    service String
    threshold Number
    transactionName String
    transactionType String
    filter String

    KibanaSloArtifacts, KibanaSloArtifactsArgs

    Dashboards List<KibanaSloArtifactsDashboard>
    Dashboard references attached to the SLO.
    Dashboards []KibanaSloArtifactsDashboard
    Dashboard references attached to the SLO.
    dashboards list(object)
    Dashboard references attached to the SLO.
    dashboards List<KibanaSloArtifactsDashboard>
    Dashboard references attached to the SLO.
    dashboards KibanaSloArtifactsDashboard[]
    Dashboard references attached to the SLO.
    dashboards Sequence[KibanaSloArtifactsDashboard]
    Dashboard references attached to the SLO.
    dashboards List<Property Map>
    Dashboard references attached to the SLO.

    KibanaSloArtifactsDashboard, KibanaSloArtifactsDashboardArgs

    Id string
    Dashboard saved object id.
    Id string
    Dashboard saved object id.
    id string
    Dashboard saved object id.
    id String
    Dashboard saved object id.
    id string
    Dashboard saved object id.
    id str
    Dashboard saved object id.
    id String
    Dashboard saved object id.

    KibanaSloHistogramCustomIndicator, KibanaSloHistogramCustomIndicatorArgs

    index string
    data_view_id string
    Optional data view id to use for this indicator.
    filter string
    goods list(object)
    timestamp_field string
    totals list(object)
    index String
    dataViewId String
    Optional data view id to use for this indicator.
    filter String
    goods List<Property Map>
    timestampField String
    totals List<Property Map>

    KibanaSloHistogramCustomIndicatorGood, KibanaSloHistogramCustomIndicatorGoodArgs

    Aggregation string
    Field string
    Filter string
    From double
    To double
    Aggregation string
    Field string
    Filter string
    From float64
    To float64
    aggregation string
    field string
    filter string
    from number
    to number
    aggregation String
    field String
    filter String
    from Double
    to Double
    aggregation string
    field string
    filter string
    from number
    to number
    aggregation str
    field str
    filter str
    from_ float
    to float
    aggregation String
    field String
    filter String
    from Number
    to Number

    KibanaSloHistogramCustomIndicatorTotal, KibanaSloHistogramCustomIndicatorTotalArgs

    Aggregation string
    Field string
    Filter string
    From double
    To double
    Aggregation string
    Field string
    Filter string
    From float64
    To float64
    aggregation string
    field string
    filter string
    from number
    to number
    aggregation String
    field String
    filter String
    from Double
    to Double
    aggregation string
    field string
    filter string
    from number
    to number
    aggregation str
    field str
    filter str
    from_ float
    to float
    aggregation String
    field String
    filter String
    from Number
    to Number

    KibanaSloKibanaConnection, KibanaSloKibanaConnectionArgs

    ApiKey string
    API Key to use for authentication to Kibana
    BearerToken string
    Bearer Token to use for authentication to Kibana
    CaCerts List<string>
    A list of paths to CA certificates to validate the certificate presented by the Kibana server.
    Endpoints List<string>
    Insecure bool
    Disable TLS certificate validation
    Password string
    Password to use for API authentication to Kibana.
    Username string
    Username to use for API authentication to Kibana.
    ApiKey string
    API Key to use for authentication to Kibana
    BearerToken string
    Bearer Token to use for authentication to Kibana
    CaCerts []string
    A list of paths to CA certificates to validate the certificate presented by the Kibana server.
    Endpoints []string
    Insecure bool
    Disable TLS certificate validation
    Password string
    Password to use for API authentication to Kibana.
    Username string
    Username to use for API authentication to Kibana.
    api_key string
    API Key to use for authentication to Kibana
    bearer_token string
    Bearer Token to use for authentication to Kibana
    ca_certs list(string)
    A list of paths to CA certificates to validate the certificate presented by the Kibana server.
    endpoints list(string)
    insecure bool
    Disable TLS certificate validation
    password string
    Password to use for API authentication to Kibana.
    username string
    Username to use for API authentication to Kibana.
    apiKey String
    API Key to use for authentication to Kibana
    bearerToken String
    Bearer Token to use for authentication to Kibana
    caCerts List<String>
    A list of paths to CA certificates to validate the certificate presented by the Kibana server.
    endpoints List<String>
    insecure Boolean
    Disable TLS certificate validation
    password String
    Password to use for API authentication to Kibana.
    username String
    Username to use for API authentication to Kibana.
    apiKey string
    API Key to use for authentication to Kibana
    bearerToken string
    Bearer Token to use for authentication to Kibana
    caCerts string[]
    A list of paths to CA certificates to validate the certificate presented by the Kibana server.
    endpoints string[]
    insecure boolean
    Disable TLS certificate validation
    password string
    Password to use for API authentication to Kibana.
    username string
    Username to use for API authentication to Kibana.
    api_key str
    API Key to use for authentication to Kibana
    bearer_token str
    Bearer Token to use for authentication to Kibana
    ca_certs Sequence[str]
    A list of paths to CA certificates to validate the certificate presented by the Kibana server.
    endpoints Sequence[str]
    insecure bool
    Disable TLS certificate validation
    password str
    Password to use for API authentication to Kibana.
    username str
    Username to use for API authentication to Kibana.
    apiKey String
    API Key to use for authentication to Kibana
    bearerToken String
    Bearer Token to use for authentication to Kibana
    caCerts List<String>
    A list of paths to CA certificates to validate the certificate presented by the Kibana server.
    endpoints List<String>
    insecure Boolean
    Disable TLS certificate validation
    password String
    Password to use for API authentication to Kibana.
    username String
    Username to use for API authentication to Kibana.

    KibanaSloKqlCustomIndicator, KibanaSloKqlCustomIndicatorArgs

    index string
    data_view_id string
    Optional data view id to use for this indicator.
    filter string
    filter_kql object
    good string
    good_kql object
    timestamp_field string
    total string
    total_kql object
    index String
    dataViewId String
    Optional data view id to use for this indicator.
    filter String
    filterKql Property Map
    good String
    goodKql Property Map
    timestampField String
    total String
    totalKql Property Map

    KibanaSloKqlCustomIndicatorFilterKql, KibanaSloKqlCustomIndicatorFilterKqlArgs

    Filters List<KibanaSloKqlCustomIndicatorFilterKqlFilter>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    KqlQuery string
    KQL query string when using the object form.
    Filters []KibanaSloKqlCustomIndicatorFilterKqlFilter
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    KqlQuery string
    KQL query string when using the object form.
    filters list(object)
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kql_query string
    KQL query string when using the object form.
    filters List<KibanaSloKqlCustomIndicatorFilterKqlFilter>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery String
    KQL query string when using the object form.
    filters KibanaSloKqlCustomIndicatorFilterKqlFilter[]
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery string
    KQL query string when using the object form.
    filters Sequence[KibanaSloKqlCustomIndicatorFilterKqlFilter]
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kql_query str
    KQL query string when using the object form.
    filters List<Property Map>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery String
    KQL query string when using the object form.

    KibanaSloKqlCustomIndicatorFilterKqlFilter, KibanaSloKqlCustomIndicatorFilterKqlFilterArgs

    Query string
    Filter query as a JSON object.
    Query string
    Filter query as a JSON object.
    query string
    Filter query as a JSON object.
    query String
    Filter query as a JSON object.
    query string
    Filter query as a JSON object.
    query str
    Filter query as a JSON object.
    query String
    Filter query as a JSON object.

    KibanaSloKqlCustomIndicatorGoodKql, KibanaSloKqlCustomIndicatorGoodKqlArgs

    Filters List<KibanaSloKqlCustomIndicatorGoodKqlFilter>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    KqlQuery string
    KQL query string when using the object form.
    Filters []KibanaSloKqlCustomIndicatorGoodKqlFilter
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    KqlQuery string
    KQL query string when using the object form.
    filters list(object)
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kql_query string
    KQL query string when using the object form.
    filters List<KibanaSloKqlCustomIndicatorGoodKqlFilter>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery String
    KQL query string when using the object form.
    filters KibanaSloKqlCustomIndicatorGoodKqlFilter[]
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery string
    KQL query string when using the object form.
    filters Sequence[KibanaSloKqlCustomIndicatorGoodKqlFilter]
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kql_query str
    KQL query string when using the object form.
    filters List<Property Map>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery String
    KQL query string when using the object form.

    KibanaSloKqlCustomIndicatorGoodKqlFilter, KibanaSloKqlCustomIndicatorGoodKqlFilterArgs

    Query string
    Filter query as a JSON object.
    Query string
    Filter query as a JSON object.
    query string
    Filter query as a JSON object.
    query String
    Filter query as a JSON object.
    query string
    Filter query as a JSON object.
    query str
    Filter query as a JSON object.
    query String
    Filter query as a JSON object.

    KibanaSloKqlCustomIndicatorTotalKql, KibanaSloKqlCustomIndicatorTotalKqlArgs

    Filters List<KibanaSloKqlCustomIndicatorTotalKqlFilter>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    KqlQuery string
    KQL query string when using the object form.
    Filters []KibanaSloKqlCustomIndicatorTotalKqlFilter
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    KqlQuery string
    KQL query string when using the object form.
    filters list(object)
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kql_query string
    KQL query string when using the object form.
    filters List<KibanaSloKqlCustomIndicatorTotalKqlFilter>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery String
    KQL query string when using the object form.
    filters KibanaSloKqlCustomIndicatorTotalKqlFilter[]
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery string
    KQL query string when using the object form.
    filters Sequence[KibanaSloKqlCustomIndicatorTotalKqlFilter]
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kql_query str
    KQL query string when using the object form.
    filters List<Property Map>
    Optional Kibana filter objects (query JSON) accompanying the KQL object form.
    kqlQuery String
    KQL query string when using the object form.

    KibanaSloKqlCustomIndicatorTotalKqlFilter, KibanaSloKqlCustomIndicatorTotalKqlFilterArgs

    Query string
    Filter query as a JSON object.
    Query string
    Filter query as a JSON object.
    query string
    Filter query as a JSON object.
    query String
    Filter query as a JSON object.
    query string
    Filter query as a JSON object.
    query str
    Filter query as a JSON object.
    query String
    Filter query as a JSON object.

    KibanaSloMetricCustomIndicator, KibanaSloMetricCustomIndicatorArgs

    index string
    data_view_id string
    Optional data view id to use for this indicator.
    filter string
    goods list(object)
    timestamp_field string
    totals list(object)
    index String
    dataViewId String
    Optional data view id to use for this indicator.
    filter String
    goods List<Property Map>
    timestampField String
    totals List<Property Map>

    KibanaSloMetricCustomIndicatorGood, KibanaSloMetricCustomIndicatorGoodArgs

    KibanaSloMetricCustomIndicatorGoodMetric, KibanaSloMetricCustomIndicatorGoodMetricArgs

    Aggregation string
    Name string
    Field string
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    Filter string
    Aggregation string
    Name string
    Field string
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    Filter string
    aggregation string
    name string
    field string
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter string
    aggregation String
    name String
    field String
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter String
    aggregation string
    name string
    field string
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter string
    aggregation str
    name str
    field str
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter str
    aggregation String
    name String
    field String
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter String

    KibanaSloMetricCustomIndicatorTotal, KibanaSloMetricCustomIndicatorTotalArgs

    KibanaSloMetricCustomIndicatorTotalMetric, KibanaSloMetricCustomIndicatorTotalMetricArgs

    Aggregation string
    Name string
    Field string
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    Filter string
    Aggregation string
    Name string
    Field string
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    Filter string
    aggregation string
    name string
    field string
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter string
    aggregation String
    name String
    field String
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter String
    aggregation string
    name string
    field string
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter string
    aggregation str
    name str
    field str
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter str
    aggregation String
    name String
    field String
    Field to aggregate. Required for all aggregations except doccount. Must NOT be set for doccount.
    filter String

    KibanaSloObjective, KibanaSloObjectiveArgs

    KibanaSloSettings, KibanaSloSettingsArgs

    Frequency string
    PreventInitialBackfill bool
    Prevents the underlying ES transform from attempting to backfill data on start, which can sometimes be resource-intensive or time-consuming and unnecessary
    SyncDelay string
    SyncField string
    The date field used to identify new documents in the source. When unspecified, the indicator timestamp field is used.
    Frequency string
    PreventInitialBackfill bool
    Prevents the underlying ES transform from attempting to backfill data on start, which can sometimes be resource-intensive or time-consuming and unnecessary
    SyncDelay string
    SyncField string
    The date field used to identify new documents in the source. When unspecified, the indicator timestamp field is used.
    frequency string
    prevent_initial_backfill bool
    Prevents the underlying ES transform from attempting to backfill data on start, which can sometimes be resource-intensive or time-consuming and unnecessary
    sync_delay string
    sync_field string
    The date field used to identify new documents in the source. When unspecified, the indicator timestamp field is used.
    frequency String
    preventInitialBackfill Boolean
    Prevents the underlying ES transform from attempting to backfill data on start, which can sometimes be resource-intensive or time-consuming and unnecessary
    syncDelay String
    syncField String
    The date field used to identify new documents in the source. When unspecified, the indicator timestamp field is used.
    frequency string
    preventInitialBackfill boolean
    Prevents the underlying ES transform from attempting to backfill data on start, which can sometimes be resource-intensive or time-consuming and unnecessary
    syncDelay string
    syncField string
    The date field used to identify new documents in the source. When unspecified, the indicator timestamp field is used.
    frequency str
    prevent_initial_backfill bool
    Prevents the underlying ES transform from attempting to backfill data on start, which can sometimes be resource-intensive or time-consuming and unnecessary
    sync_delay str
    sync_field str
    The date field used to identify new documents in the source. When unspecified, the indicator timestamp field is used.
    frequency String
    preventInitialBackfill Boolean
    Prevents the underlying ES transform from attempting to backfill data on start, which can sometimes be resource-intensive or time-consuming and unnecessary
    syncDelay String
    syncField String
    The date field used to identify new documents in the source. When unspecified, the indicator timestamp field is used.

    KibanaSloTimeWindow, KibanaSloTimeWindowArgs

    Duration string
    Type string
    Duration string
    Type string
    duration string
    type string
    duration String
    type String
    duration string
    type string
    duration str
    type str
    duration String
    type String

    KibanaSloTimesliceMetricIndicator, KibanaSloTimesliceMetricIndicatorArgs

    Index string
    TimestampField string
    DataViewId string
    Optional data view id to use for this indicator.
    Filter string
    Metrics List<KibanaSloTimesliceMetricIndicatorMetric>
    Index string
    TimestampField string
    DataViewId string
    Optional data view id to use for this indicator.
    Filter string
    Metrics []KibanaSloTimesliceMetricIndicatorMetric
    index string
    timestamp_field string
    data_view_id string
    Optional data view id to use for this indicator.
    filter string
    metrics list(object)
    index String
    timestampField String
    dataViewId String
    Optional data view id to use for this indicator.
    filter String
    metrics List<KibanaSloTimesliceMetricIndicatorMetric>
    index string
    timestampField string
    dataViewId string
    Optional data view id to use for this indicator.
    filter string
    metrics KibanaSloTimesliceMetricIndicatorMetric[]
    index str
    timestamp_field str
    data_view_id str
    Optional data view id to use for this indicator.
    filter str
    metrics Sequence[KibanaSloTimesliceMetricIndicatorMetric]
    index String
    timestampField String
    dataViewId String
    Optional data view id to use for this indicator.
    filter String
    metrics List<Property Map>

    KibanaSloTimesliceMetricIndicatorMetric, KibanaSloTimesliceMetricIndicatorMetricArgs

    KibanaSloTimesliceMetricIndicatorMetricMetric, KibanaSloTimesliceMetricIndicatorMetricMetricArgs

    Aggregation string
    The aggregation type for this metric (kbapi timeslice metric union: no valuecount). One of: sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile, doccount. Determines which other fields are required.
    Name string
    The unique name for this metric. Used as a variable in the equation field. Must be a single letter A–Z.
    Field string
    Field to aggregate. Required for sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile. Must NOT be set for doc_count.
    Filter string
    Optional KQL filter for this metric. Supported for all timeslice metric aggregation kinds, including doc_count, per the Kibana SLO API.
    Percentile double
    Percentile value (e.g., 99). Required if aggregation is 'percentile'. Must NOT be set for other aggregations.
    Aggregation string
    The aggregation type for this metric (kbapi timeslice metric union: no valuecount). One of: sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile, doccount. Determines which other fields are required.
    Name string
    The unique name for this metric. Used as a variable in the equation field. Must be a single letter A–Z.
    Field string
    Field to aggregate. Required for sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile. Must NOT be set for doc_count.
    Filter string
    Optional KQL filter for this metric. Supported for all timeslice metric aggregation kinds, including doc_count, per the Kibana SLO API.
    Percentile float64
    Percentile value (e.g., 99). Required if aggregation is 'percentile'. Must NOT be set for other aggregations.
    aggregation string
    The aggregation type for this metric (kbapi timeslice metric union: no valuecount). One of: sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile, doccount. Determines which other fields are required.
    name string
    The unique name for this metric. Used as a variable in the equation field. Must be a single letter A–Z.
    field string
    Field to aggregate. Required for sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile. Must NOT be set for doc_count.
    filter string
    Optional KQL filter for this metric. Supported for all timeslice metric aggregation kinds, including doc_count, per the Kibana SLO API.
    percentile number
    Percentile value (e.g., 99). Required if aggregation is 'percentile'. Must NOT be set for other aggregations.
    aggregation String
    The aggregation type for this metric (kbapi timeslice metric union: no valuecount). One of: sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile, doccount. Determines which other fields are required.
    name String
    The unique name for this metric. Used as a variable in the equation field. Must be a single letter A–Z.
    field String
    Field to aggregate. Required for sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile. Must NOT be set for doc_count.
    filter String
    Optional KQL filter for this metric. Supported for all timeslice metric aggregation kinds, including doc_count, per the Kibana SLO API.
    percentile Double
    Percentile value (e.g., 99). Required if aggregation is 'percentile'. Must NOT be set for other aggregations.
    aggregation string
    The aggregation type for this metric (kbapi timeslice metric union: no valuecount). One of: sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile, doccount. Determines which other fields are required.
    name string
    The unique name for this metric. Used as a variable in the equation field. Must be a single letter A–Z.
    field string
    Field to aggregate. Required for sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile. Must NOT be set for doc_count.
    filter string
    Optional KQL filter for this metric. Supported for all timeslice metric aggregation kinds, including doc_count, per the Kibana SLO API.
    percentile number
    Percentile value (e.g., 99). Required if aggregation is 'percentile'. Must NOT be set for other aggregations.
    aggregation str
    The aggregation type for this metric (kbapi timeslice metric union: no valuecount). One of: sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile, doccount. Determines which other fields are required.
    name str
    The unique name for this metric. Used as a variable in the equation field. Must be a single letter A–Z.
    field str
    Field to aggregate. Required for sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile. Must NOT be set for doc_count.
    filter str
    Optional KQL filter for this metric. Supported for all timeslice metric aggregation kinds, including doc_count, per the Kibana SLO API.
    percentile float
    Percentile value (e.g., 99). Required if aggregation is 'percentile'. Must NOT be set for other aggregations.
    aggregation String
    The aggregation type for this metric (kbapi timeslice metric union: no valuecount). One of: sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile, doccount. Determines which other fields are required.
    name String
    The unique name for this metric. Used as a variable in the equation field. Must be a single letter A–Z.
    field String
    Field to aggregate. Required for sum, avg, min, max, lastvalue, cardinality, stddeviation, percentile. Must NOT be set for doc_count.
    filter String
    Optional KQL filter for this metric. Supported for all timeslice metric aggregation kinds, including doc_count, per the Kibana SLO API.
    percentile Number
    Percentile value (e.g., 99). Required if aggregation is 'percentile'. Must NOT be set for other aggregations.

    Import

    The pulumi import command can be used, for example:

    $ pulumi import elasticstack:index/kibanaSlo:KibanaSlo my_slo <space id>/<slo id>
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    elasticstack elastic/terraform-provider-elasticstack
    License
    Notes
    This Pulumi package is based on the elasticstack Terraform Provider.
    Viewing docs for elasticstack 0.15.0
    published on Thursday, May 14, 2026 by elastic
      Try Pulumi Cloud free. Your team will thank you.