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 "" * ``` * 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, 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; /** * Configure how Datadog authenticates to your AWS account. Either `awsAuthConfigKeys` or `awsAuthConfigRole` block is required within. */ readonly authConfig: pulumi.Output; /** * Your AWS Account ID without dashes. */ readonly awsAccountId: pulumi.Output; /** * AWS Account partition. */ readonly awsPartition: pulumi.Output; /** * AWS regions to collect data from. Defaults to `includeAll` if block is empty. */ readonly awsRegions: pulumi.Output; /** * 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; /** * Configure metrics collection from AWS CloudWatch. The `namespaceFilters` block is required within, but may be empty to use defaults. */ readonly metricsConfig: pulumi.Output; /** * AWS resources collection config. May be empty to use defaults. */ readonly resourcesConfig: pulumi.Output; /** * AWS traces collection config. The `xrayServices` block is required within, but may be empty to use defaults. */ readonly tracesConfig: pulumi.Output; /** * 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[]>; /** * Configure how Datadog authenticates to your AWS account. Either `awsAuthConfigKeys` or `awsAuthConfigRole` block is required within. */ authConfig?: pulumi.Input; /** * Your AWS Account ID without dashes. */ awsAccountId?: pulumi.Input; /** * AWS Account partition. */ awsPartition?: pulumi.Input; /** * AWS regions to collect data from. Defaults to `includeAll` if block is empty. */ awsRegions?: pulumi.Input; /** * 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; /** * Configure metrics collection from AWS CloudWatch. The `namespaceFilters` block is required within, but may be empty to use defaults. */ metricsConfig?: pulumi.Input; /** * AWS resources collection config. May be empty to use defaults. */ resourcesConfig?: pulumi.Input; /** * AWS traces collection config. The `xrayServices` block is required within, but may be empty to use defaults. */ tracesConfig?: pulumi.Input; } /** * 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[]>; /** * Configure how Datadog authenticates to your AWS account. Either `awsAuthConfigKeys` or `awsAuthConfigRole` block is required within. */ authConfig?: pulumi.Input; /** * Your AWS Account ID without dashes. */ awsAccountId: pulumi.Input; /** * AWS Account partition. */ awsPartition: pulumi.Input; /** * AWS regions to collect data from. Defaults to `includeAll` if block is empty. */ awsRegions?: pulumi.Input; /** * 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; /** * Configure metrics collection from AWS CloudWatch. The `namespaceFilters` block is required within, but may be empty to use defaults. */ metricsConfig?: pulumi.Input; /** * AWS resources collection config. May be empty to use defaults. */ resourcesConfig?: pulumi.Input; /** * AWS traces collection config. The `xrayServices` block is required within, but may be empty to use defaults. */ tracesConfig?: pulumi.Input; }