import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a Datadog - Microsoft Azure integration resource. This can be used to create and manage the integrations.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as datadog from "@pulumi/datadog";
 *
 * // Create a new Datadog - Microsoft Azure integration using a client secret
 * const sandbox = new datadog.azure.Integration("sandbox", {
 *     tenantName: "<azure_tenant_name>",
 *     clientId: "<azure_client_id>",
 *     clientSecret: "<azure_client_secret_key>",
 *     hostFilters: "examplefilter:true,example:true",
 *     appServicePlanFilters: "examplefilter:true,example:another",
 *     containerAppFilters: "examplefilter:true,example:one_more",
 *     automute: true,
 *     cspmEnabled: true,
 *     customMetricsEnabled: false,
 * });
 * // Or, using secretless (federated workload identity) authentication.
 * // Note: secretless authentication is currently in Preview.
 * const sandboxSecretless = new datadog.azure.Integration("sandbox_secretless", {
 *     tenantName: "<azure_tenant_name>",
 *     clientId: "<azure_client_id>",
 *     secretlessAuthEnabled: true,
 * });
 * ```
 *
 * ## Import
 *
 * The `pulumi import` command can be used, for example:
 *
 * Microsoft Azure integrations can be imported using their `tenant name` and `client` id separated with a colon (`:`).
 * The clientSecret should be passed by setting the environment variable CLIENT_SECRET
 *
 * ```sh
 * $ pulumi import datadog:azure/integration:Integration sandbox ${tenant_name}:${client_id}
 * ```
 */
export declare class Integration extends pulumi.CustomResource {
    /**
     * Get an existing Integration resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: IntegrationState, opts?: pulumi.CustomResourceOptions): Integration;
    /**
     * Returns true if the given object is an instance of Integration.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Integration;
    /**
     * This comma-separated list of tags (in the form `key:value,key:value`) defines a filter that Datadog uses when collecting metrics from Azure App Service Plans. Only App Service Plans that match one of the defined tags are imported into Datadog. The rest, including the apps and functions running on them, are ignored. This also filters the metrics for any App or Function running on the App Service Plan(s). Defaults to `""`.
     */
    readonly appServicePlanFilters: pulumi.Output<string>;
    /**
     * Silence monitors for expected Azure VM shutdowns. Defaults to `false`.
     */
    readonly automute: pulumi.Output<boolean>;
    /**
     * Your Azure web application ID.
     */
    readonly clientId: pulumi.Output<string>;
    /**
     * Your Azure web application secret key. Required unless `secretlessAuthEnabled` is set to `true`.
     */
    readonly clientSecret: pulumi.Output<string | undefined>;
    /**
     * This comma-separated list of tags (in the form `key:value,key:value`) defines a filter that Datadog uses when collecting metrics from Azure Container Apps. Only Container Apps that match one of the defined tags are imported into Datadog. Defaults to `""`.
     */
    readonly containerAppFilters: pulumi.Output<string>;
    /**
     * When enabled, Datadog’s Cloud Security Management product scans resource configurations monitored by this app registration.
     * Note: This requires `resourceCollectionEnabled` to be set to true. Defaults to `false`.
     */
    readonly cspmEnabled: pulumi.Output<boolean>;
    /**
     * Enable custom metrics for your organization. Defaults to `false`.
     */
    readonly customMetricsEnabled: pulumi.Output<boolean>;
    /**
     * String of host tag(s) (in the form `key:value,key:value`) defines a filter that Datadog will use when collecting metrics from Azure. Limit the Azure instances that are pulled into Datadog by using tags. Only hosts that match one of the defined tags are imported into Datadog. e.x. `env:production,deploymentgroup:red` Defaults to `""`.
     */
    readonly hostFilters: pulumi.Output<string>;
    /**
     * Enable Azure metrics for your organization. Defaults to `true`.
     */
    readonly metricsEnabled: pulumi.Output<boolean>;
    /**
     * Enable Azure metrics for your organization for resource providers where no resource provider config is specified. Defaults to `true`.
     */
    readonly metricsEnabledDefault: pulumi.Output<boolean>;
    /**
     * When enabled, Datadog collects metadata and configuration info from cloud resources (such as compute instances, databases, and load balancers) monitored by this app registration.
     */
    readonly resourceCollectionEnabled: pulumi.Output<boolean>;
    /**
     * Configuration settings applied to resources from the specified Azure resource providers.
     */
    readonly resourceProviderConfigs: pulumi.Output<outputs.azure.IntegrationResourceProviderConfig[]>;
    /**
     * (Preview) When enabled, Datadog authenticates to this app registration using federated workload identity credentials instead of a client secret. The app registration must have a Datadog federated credential for this to work. When `true`, `clientSecret` should be omitted. Defaults to `false`.
     */
    readonly secretlessAuthEnabled: pulumi.Output<boolean>;
    /**
     * Your Azure Active Directory ID.
     */
    readonly tenantName: pulumi.Output<string>;
    /**
     * Enable azure.usage metrics for your organization. Defaults to `true`.
     */
    readonly usageMetricsEnabled: pulumi.Output<boolean>;
    /**
     * Create a Integration resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: IntegrationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Integration resources.
 */
export interface IntegrationState {
    /**
     * This comma-separated list of tags (in the form `key:value,key:value`) defines a filter that Datadog uses when collecting metrics from Azure App Service Plans. Only App Service Plans that match one of the defined tags are imported into Datadog. The rest, including the apps and functions running on them, are ignored. This also filters the metrics for any App or Function running on the App Service Plan(s). Defaults to `""`.
     */
    appServicePlanFilters?: pulumi.Input<string | undefined>;
    /**
     * Silence monitors for expected Azure VM shutdowns. Defaults to `false`.
     */
    automute?: pulumi.Input<boolean | undefined>;
    /**
     * Your Azure web application ID.
     */
    clientId?: pulumi.Input<string | undefined>;
    /**
     * Your Azure web application secret key. Required unless `secretlessAuthEnabled` is set to `true`.
     */
    clientSecret?: pulumi.Input<string | undefined>;
    /**
     * This comma-separated list of tags (in the form `key:value,key:value`) defines a filter that Datadog uses when collecting metrics from Azure Container Apps. Only Container Apps that match one of the defined tags are imported into Datadog. Defaults to `""`.
     */
    containerAppFilters?: pulumi.Input<string | undefined>;
    /**
     * When enabled, Datadog’s Cloud Security Management product scans resource configurations monitored by this app registration.
     * Note: This requires `resourceCollectionEnabled` to be set to true. Defaults to `false`.
     */
    cspmEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Enable custom metrics for your organization. Defaults to `false`.
     */
    customMetricsEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * String of host tag(s) (in the form `key:value,key:value`) defines a filter that Datadog will use when collecting metrics from Azure. Limit the Azure instances that are pulled into Datadog by using tags. Only hosts that match one of the defined tags are imported into Datadog. e.x. `env:production,deploymentgroup:red` Defaults to `""`.
     */
    hostFilters?: pulumi.Input<string | undefined>;
    /**
     * Enable Azure metrics for your organization. Defaults to `true`.
     */
    metricsEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Enable Azure metrics for your organization for resource providers where no resource provider config is specified. Defaults to `true`.
     */
    metricsEnabledDefault?: pulumi.Input<boolean | undefined>;
    /**
     * When enabled, Datadog collects metadata and configuration info from cloud resources (such as compute instances, databases, and load balancers) monitored by this app registration.
     */
    resourceCollectionEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Configuration settings applied to resources from the specified Azure resource providers.
     */
    resourceProviderConfigs?: pulumi.Input<pulumi.Input<inputs.azure.IntegrationResourceProviderConfig>[] | undefined>;
    /**
     * (Preview) When enabled, Datadog authenticates to this app registration using federated workload identity credentials instead of a client secret. The app registration must have a Datadog federated credential for this to work. When `true`, `clientSecret` should be omitted. Defaults to `false`.
     */
    secretlessAuthEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Your Azure Active Directory ID.
     */
    tenantName?: pulumi.Input<string | undefined>;
    /**
     * Enable azure.usage metrics for your organization. Defaults to `true`.
     */
    usageMetricsEnabled?: pulumi.Input<boolean | undefined>;
}
/**
 * The set of arguments for constructing a Integration resource.
 */
export interface IntegrationArgs {
    /**
     * This comma-separated list of tags (in the form `key:value,key:value`) defines a filter that Datadog uses when collecting metrics from Azure App Service Plans. Only App Service Plans that match one of the defined tags are imported into Datadog. The rest, including the apps and functions running on them, are ignored. This also filters the metrics for any App or Function running on the App Service Plan(s). Defaults to `""`.
     */
    appServicePlanFilters?: pulumi.Input<string | undefined>;
    /**
     * Silence monitors for expected Azure VM shutdowns. Defaults to `false`.
     */
    automute?: pulumi.Input<boolean | undefined>;
    /**
     * Your Azure web application ID.
     */
    clientId: pulumi.Input<string>;
    /**
     * Your Azure web application secret key. Required unless `secretlessAuthEnabled` is set to `true`.
     */
    clientSecret?: pulumi.Input<string | undefined>;
    /**
     * This comma-separated list of tags (in the form `key:value,key:value`) defines a filter that Datadog uses when collecting metrics from Azure Container Apps. Only Container Apps that match one of the defined tags are imported into Datadog. Defaults to `""`.
     */
    containerAppFilters?: pulumi.Input<string | undefined>;
    /**
     * When enabled, Datadog’s Cloud Security Management product scans resource configurations monitored by this app registration.
     * Note: This requires `resourceCollectionEnabled` to be set to true. Defaults to `false`.
     */
    cspmEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Enable custom metrics for your organization. Defaults to `false`.
     */
    customMetricsEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * String of host tag(s) (in the form `key:value,key:value`) defines a filter that Datadog will use when collecting metrics from Azure. Limit the Azure instances that are pulled into Datadog by using tags. Only hosts that match one of the defined tags are imported into Datadog. e.x. `env:production,deploymentgroup:red` Defaults to `""`.
     */
    hostFilters?: pulumi.Input<string | undefined>;
    /**
     * Enable Azure metrics for your organization. Defaults to `true`.
     */
    metricsEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Enable Azure metrics for your organization for resource providers where no resource provider config is specified. Defaults to `true`.
     */
    metricsEnabledDefault?: pulumi.Input<boolean | undefined>;
    /**
     * When enabled, Datadog collects metadata and configuration info from cloud resources (such as compute instances, databases, and load balancers) monitored by this app registration.
     */
    resourceCollectionEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Configuration settings applied to resources from the specified Azure resource providers.
     */
    resourceProviderConfigs?: pulumi.Input<pulumi.Input<inputs.azure.IntegrationResourceProviderConfig>[] | undefined>;
    /**
     * (Preview) When enabled, Datadog authenticates to this app registration using federated workload identity credentials instead of a client secret. The app registration must have a Datadog federated credential for this to work. When `true`, `clientSecret` should be omitted. Defaults to `false`.
     */
    secretlessAuthEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Your Azure Active Directory ID.
     */
    tenantName: pulumi.Input<string>;
    /**
     * Enable azure.usage metrics for your organization. Defaults to `true`.
     */
    usageMetricsEnabled?: pulumi.Input<boolean | undefined>;
}
//# sourceMappingURL=integration.d.ts.map