import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a CloudWatch Logs S3 Table Integration data source association. * This resource associates a data source (such as a CloudWatch log type) with an S3 Table Integration, enabling CloudWatch logs to be automatically written to S3 Tables for analytics. * * For more information, see the [CloudWatch Logs S3 Tables integration documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/s3-tables-integration.html). * * ## Example Usage * * ### Associate All Sources (Wildcard) * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.cloudwatch.LogS3TableIntegrationSource("example", { * dataSource: { * name: "*", * type: "*", * }, * integrationArn: exampleAwsObservabilityadminS3TableIntegration.arn, * }); * ``` * * ### Associate a Custom Data Source * * To route log stream messages from a specific custom data source into a dedicated S3 Table, tag the CloudWatch log group with `cw:datasource:name` and `cw:datasource:type`. The integration then writes matching log streams into a table named `{name}__{type}` inside the `aws-cloudwatch` table bucket. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * // Tag the log group to declare it as a custom data source. * // Log stream messages are written to the "myapp__events" table * // in the aws-cloudwatch table bucket. * const example = new aws.cloudwatch.LogGroup("example", { * name: "/example/myapp", * tags: { * "cw:datasource:name": "myapp", * "cw:datasource:type": "events", * }, * }); * const exampleLogS3TableIntegrationSource = new aws.cloudwatch.LogS3TableIntegrationSource("example", { * dataSource: { * name: "myapp", * type: "events", * }, * integrationArn: exampleAwsObservabilityadminS3TableIntegration.arn, * }); * ``` * * ## Import * * ### Identity Schema * * #### Required * * * `integrationArn` (String) ARN of the integration. * * `id` (String) ID of the association. * * #### Optional * * * `accountId` (String) AWS Account where this resource is managed. * * `region` (String) Region where this resource is managed. * * Using `pulumi import`, import S3 Table Integration data source associations using `integrationArn` and `id` separated by a comma (`,`). For example: * * ```sh * $ pulumi import aws:cloudwatch/logS3TableIntegrationSource:LogS3TableIntegrationSource example arn:aws:observabilityadmin:us-west-2:123456789012:s3tableintegration/3g5043wqe54nmw5apiugwkn1a,a8928b36-ab82-4ae2-ae5c-fcb910ec4237 * ``` */ export declare class LogS3TableIntegrationSource extends pulumi.CustomResource { /** * Get an existing LogS3TableIntegrationSource 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?: LogS3TableIntegrationSourceState, opts?: pulumi.CustomResourceOptions): LogS3TableIntegrationSource; /** * Returns true if the given object is an instance of LogS3TableIntegrationSource. 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 LogS3TableIntegrationSource; /** * Data source to associate with the S3 Table Integration. See `dataSource` Block below. */ readonly dataSource: pulumi.Output; /** * ARN of the `aws.observabilityadmin.S3TableIntegration` to associate the data source with. */ readonly integrationArn: pulumi.Output; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ readonly region: pulumi.Output; readonly timeouts: pulumi.Output; /** * Create a LogS3TableIntegrationSource 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: LogS3TableIntegrationSourceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering LogS3TableIntegrationSource resources. */ export interface LogS3TableIntegrationSourceState { /** * Data source to associate with the S3 Table Integration. See `dataSource` Block below. */ dataSource?: pulumi.Input; /** * ARN of the `aws.observabilityadmin.S3TableIntegration` to associate the data source with. */ integrationArn?: pulumi.Input; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input; timeouts?: pulumi.Input; } /** * The set of arguments for constructing a LogS3TableIntegrationSource resource. */ export interface LogS3TableIntegrationSourceArgs { /** * Data source to associate with the S3 Table Integration. See `dataSource` Block below. */ dataSource: pulumi.Input; /** * ARN of the `aws.observabilityadmin.S3TableIntegration` to associate the data source with. */ integrationArn: pulumi.Input; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input; timeouts?: pulumi.Input; } //# sourceMappingURL=logS3TableIntegrationSource.d.ts.map