import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a Datadog—Amazon Web Services integration resource. This can be used to create and manage Datadog—Amazon Web Services integration.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as datadog from "@pulumi/datadog";
 *
 * // Create new integration_aws_account resource
 * const foo = new datadog.aws.IntegrationAccount("foo", {
 *     accountTags: ["env:prod"],
 *     awsAccountId: "123456789012",
 *     awsPartition: "aws",
 *     awsRegions: [{
 *         includeAll: true,
 *     }],
 *     authConfig: [{
 *         awsAuthConfigRole: [{
 *             roleName: "DatadogIntegrationRole",
 *         }],
 *     }],
 *     logsConfig: [{
 *         lambdaForwarder: [{
 *             lambdas: ["arn:aws:lambda:us-east-1:123456789012:function:my-lambda"],
 *             sources: ["s3"],
 *             logSourceConfig: [{
 *                 tagFilters: [{
 *                     source: "s3",
 *                     tags: [
 *                         "env:prod",
 *                         "team:backend",
 *                     ],
 *                 }],
 *             }],
 *         }],
 *     }],
 *     metricsConfig: [{
 *         automuteEnabled: true,
 *         collectCloudwatchAlarms: true,
 *         collectCustomMetrics: true,
 *         enabled: true,
 *         namespaceFilters: [{
 *             excludeOnlies: [
 *                 "AWS/SQS",
 *                 "AWS/ElasticMapReduce",
 *                 "AWS/Usage",
 *             ],
 *         }],
 *         tagFilters: [{
 *             namespace: "AWS/EC2",
 *             tags: ["datadog:true"],
 *         }],
 *     }],
 *     resourcesConfig: [{
 *         cloudSecurityPostureManagementCollection: true,
 *         extendedCollection: true,
 *     }],
 *     tracesConfig: [{
 *         xrayServices: [{
 *             includeAll: true,
 *         }],
 *     }],
 * });
 * // Create new integration_aws_account resource with all Datadog-provided defaults configured
 * const foo_defaults = new datadog.aws.IntegrationAccount("foo-defaults", {
 *     awsRegions: [{}],
 *     logsConfig: [{
 *         lambdaForwarder: [{}],
 *     }],
 *     metricsConfig: [{
 *         namespaceFilters: [{}],
 *     }],
 *     resourcesConfig: [{}],
 *     tracesConfig: [{
 *         xrayServices: [{}],
 *     }],
 *     awsAccountId: "234567890123",
 *     awsPartition: "aws",
 *     authConfig: [{
 *         awsAuthConfigRole: [{
 *             roleName: "DatadogIntegrationRole",
 *         }],
 *     }],
 * });
 * ```
 *
 * ## Upgrading from `datadogIntegrationAws` resources
 *
 *  To migrate your account configuration from `datadog_integration_aws*` resources to `datadog.aws.IntegrationAccount`:
 *  1. Import your integrated accounts into `datadog.aws.IntegrationAccount` resources using the import command below.
 *  2. Once successfully imported, you can run `terraform state rm` to delete all resources of the deprecated types from state:
 *     - `datadogIntegrationAws`
 *     - `datadogIntegrationAwsLambdaArn`
 *     - `datadogIntegrationAwsLogCollection`
 *     - `datadogIntegrationAwsTagFilter`
 *
 * ## Import
 *
 * ```sh
 * $ pulumi import datadog:aws/integrationAccount:IntegrationAccount example "<datadog-aws-account-config-id>"
 * ```
 *  AWS Account Config ID can be retrieved by using the [List all AWS integrations](https://docs.datadoghq.com/api/latest/aws-integration/#list-all-aws-integrations) endpoint and querying by AWS Account ID.
 */
export declare class IntegrationAccount extends pulumi.CustomResource {
    /**
     * Get an existing IntegrationAccount 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?: IntegrationAccountState, opts?: pulumi.CustomResourceOptions): IntegrationAccount;
    /**
     * Returns true if the given object is an instance of IntegrationAccount.  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 IntegrationAccount;
    /**
     * Tags to apply to all metrics in the account. Defaults to `[]`.
     */
    readonly accountTags: pulumi.Output<string[]>;
    /**
     * Configure how Datadog authenticates to your AWS account. Either `awsAuthConfigKeys` or `awsAuthConfigRole` block is required within.
     */
    readonly authConfig: pulumi.Output<outputs.aws.IntegrationAccountAuthConfig | undefined>;
    /**
     * Your AWS Account ID without dashes.
     */
    readonly awsAccountId: pulumi.Output<string>;
    /**
     * AWS Account partition.
     */
    readonly awsPartition: pulumi.Output<string>;
    /**
     * AWS regions to collect data from. Defaults to `includeAll` if block is empty.
     */
    readonly awsRegions: pulumi.Output<outputs.aws.IntegrationAccountAwsRegions | undefined>;
    /**
     * Configure log autosubscription for your Datadog Forwarder Lambda functions. The `lambdaForwarder` block is required within, but may be empty to use defaults.
     */
    readonly logsConfig: pulumi.Output<outputs.aws.IntegrationAccountLogsConfig | undefined>;
    /**
     * Configure metrics collection from AWS CloudWatch. The `namespaceFilters` block is required within, but may be empty to use defaults.
     */
    readonly metricsConfig: pulumi.Output<outputs.aws.IntegrationAccountMetricsConfig | undefined>;
    /**
     * AWS resources collection config. May be empty to use defaults.
     */
    readonly resourcesConfig: pulumi.Output<outputs.aws.IntegrationAccountResourcesConfig | undefined>;
    /**
     * AWS traces collection config. The `xrayServices` block is required within, but may be empty to use defaults.
     */
    readonly tracesConfig: pulumi.Output<outputs.aws.IntegrationAccountTracesConfig | undefined>;
    /**
     * Create a IntegrationAccount 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: IntegrationAccountArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering IntegrationAccount resources.
 */
export interface IntegrationAccountState {
    /**
     * Tags to apply to all metrics in the account. Defaults to `[]`.
     */
    accountTags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Configure how Datadog authenticates to your AWS account. Either `awsAuthConfigKeys` or `awsAuthConfigRole` block is required within.
     */
    authConfig?: pulumi.Input<inputs.aws.IntegrationAccountAuthConfig | undefined>;
    /**
     * Your AWS Account ID without dashes.
     */
    awsAccountId?: pulumi.Input<string | undefined>;
    /**
     * AWS Account partition.
     */
    awsPartition?: pulumi.Input<string | undefined>;
    /**
     * AWS regions to collect data from. Defaults to `includeAll` if block is empty.
     */
    awsRegions?: pulumi.Input<inputs.aws.IntegrationAccountAwsRegions | undefined>;
    /**
     * Configure log autosubscription for your Datadog Forwarder Lambda functions. The `lambdaForwarder` block is required within, but may be empty to use defaults.
     */
    logsConfig?: pulumi.Input<inputs.aws.IntegrationAccountLogsConfig | undefined>;
    /**
     * Configure metrics collection from AWS CloudWatch. The `namespaceFilters` block is required within, but may be empty to use defaults.
     */
    metricsConfig?: pulumi.Input<inputs.aws.IntegrationAccountMetricsConfig | undefined>;
    /**
     * AWS resources collection config. May be empty to use defaults.
     */
    resourcesConfig?: pulumi.Input<inputs.aws.IntegrationAccountResourcesConfig | undefined>;
    /**
     * AWS traces collection config. The `xrayServices` block is required within, but may be empty to use defaults.
     */
    tracesConfig?: pulumi.Input<inputs.aws.IntegrationAccountTracesConfig | undefined>;
}
/**
 * The set of arguments for constructing a IntegrationAccount resource.
 */
export interface IntegrationAccountArgs {
    /**
     * Tags to apply to all metrics in the account. Defaults to `[]`.
     */
    accountTags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Configure how Datadog authenticates to your AWS account. Either `awsAuthConfigKeys` or `awsAuthConfigRole` block is required within.
     */
    authConfig?: pulumi.Input<inputs.aws.IntegrationAccountAuthConfig | undefined>;
    /**
     * Your AWS Account ID without dashes.
     */
    awsAccountId: pulumi.Input<string>;
    /**
     * AWS Account partition.
     */
    awsPartition: pulumi.Input<string>;
    /**
     * AWS regions to collect data from. Defaults to `includeAll` if block is empty.
     */
    awsRegions?: pulumi.Input<inputs.aws.IntegrationAccountAwsRegions | undefined>;
    /**
     * Configure log autosubscription for your Datadog Forwarder Lambda functions. The `lambdaForwarder` block is required within, but may be empty to use defaults.
     */
    logsConfig?: pulumi.Input<inputs.aws.IntegrationAccountLogsConfig | undefined>;
    /**
     * Configure metrics collection from AWS CloudWatch. The `namespaceFilters` block is required within, but may be empty to use defaults.
     */
    metricsConfig?: pulumi.Input<inputs.aws.IntegrationAccountMetricsConfig | undefined>;
    /**
     * AWS resources collection config. May be empty to use defaults.
     */
    resourcesConfig?: pulumi.Input<inputs.aws.IntegrationAccountResourcesConfig | undefined>;
    /**
     * AWS traces collection config. The `xrayServices` block is required within, but may be empty to use defaults.
     */
    tracesConfig?: pulumi.Input<inputs.aws.IntegrationAccountTracesConfig | undefined>;
}
//# sourceMappingURL=integrationAccount.d.ts.map