import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Use this data source to retrieve information about an existing SLO for use in other resources.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as datadog from "@pulumi/datadog";
 *
 * const test = datadog.getServiceLevelObjective({
 *     nameQuery: "My test SLO",
 *     tagsQuery: "foo:bar",
 * });
 * const apiSlo = datadog.getServiceLevelObjective({
 *     id: api.outputs.slo,
 * });
 * ```
 */
export declare function getServiceLevelObjective(args?: GetServiceLevelObjectiveArgs, opts?: pulumi.InvokeOptions): Promise<GetServiceLevelObjectiveResult>;
/**
 * A collection of arguments for invoking getServiceLevelObjective.
 */
export interface GetServiceLevelObjectiveArgs {
    /**
     * A SLO ID to limit the search.
     */
    id?: string;
    /**
     * Filter results based on SLO numerator and denominator.
     */
    metricsQuery?: string;
    /**
     * Filter results based on SLO names.
     */
    nameQuery?: string;
    /**
     * Filter results based on a single SLO tag.
     */
    tagsQuery?: string;
}
/**
 * A collection of values returned by getServiceLevelObjective.
 */
export interface GetServiceLevelObjectiveResult {
    /**
     * The description of the service level objective.
     */
    readonly description: string;
    /**
     * A SLO ID to limit the search.
     */
    readonly id?: string;
    /**
     * Filter results based on SLO numerator and denominator.
     */
    readonly metricsQuery?: string;
    /**
     * Name of the Datadog service level objective
     */
    readonly name: string;
    /**
     * Filter results based on SLO names.
     */
    readonly nameQuery?: string;
    /**
     * The metric query of good / total events
     */
    readonly queries: outputs.GetServiceLevelObjectiveQuery[];
    /**
     * List of tags associated with the service level objective.
     */
    readonly tags: string[];
    /**
     * Filter results based on a single SLO tag.
     */
    readonly tagsQuery?: string;
    /**
     * The primary target threshold of the service level objective.
     */
    readonly targetThreshold: number;
    /**
     * The primary timeframe of the service level objective.
     */
    readonly timeframe: string;
    /**
     * The type of the service level objective. The mapping from these types to the types found in the Datadog Web UI can be found in the Datadog API [documentation page](https://docs.datadoghq.com/api/v1/service-level-objectives/#create-a-slo-object). Available values are: `metric` and `monitor`.
     */
    readonly type: string;
    /**
     * The primary warning threshold of the service level objective.
     */
    readonly warningThreshold: number;
}
/**
 * Use this data source to retrieve information about an existing SLO for use in other resources.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as datadog from "@pulumi/datadog";
 *
 * const test = datadog.getServiceLevelObjective({
 *     nameQuery: "My test SLO",
 *     tagsQuery: "foo:bar",
 * });
 * const apiSlo = datadog.getServiceLevelObjective({
 *     id: api.outputs.slo,
 * });
 * ```
 */
export declare function getServiceLevelObjectiveOutput(args?: GetServiceLevelObjectiveOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetServiceLevelObjectiveResult>;
/**
 * A collection of arguments for invoking getServiceLevelObjective.
 */
export interface GetServiceLevelObjectiveOutputArgs {
    /**
     * A SLO ID to limit the search.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * Filter results based on SLO numerator and denominator.
     */
    metricsQuery?: pulumi.Input<string | undefined>;
    /**
     * Filter results based on SLO names.
     */
    nameQuery?: pulumi.Input<string | undefined>;
    /**
     * Filter results based on a single SLO tag.
     */
    tagsQuery?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getServiceLevelObjective.d.ts.map