UNPKG

@pulumi/aws

Version:

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

777 lines (776 loc) • 38.8 kB
import * as pulumi from "@pulumi/pulumi"; /** * Provides a DMS (Data Migration Service) S3 endpoint resource. DMS S3 endpoints can be created, updated, deleted, and imported. * * > **Note:** AWS is deprecating `extraConnectionAttributes`, such as used with `aws.dms.Endpoint`. This resource is an alternative to `aws.dms.Endpoint` and does not use `extraConnectionAttributes`. (AWS currently includes `extraConnectionAttributes` in the raw responses to the AWS Provider requests and so they may be visible in the logs.) * * > **Note:** Some of this resource's arguments have default values that come from the AWS Provider. Other default values are provided by AWS and subject to change without notice. When relying on AWS defaults, the provider state will often have a zero value. For example, the AWS Provider does not provide a default for `cdcMaxBatchInterval` but the AWS default is `60` (seconds). However, the provider state will show `0` since this is the value return by AWS when no value is present. Below, we aim to flag the defaults that come from AWS (_e.g._, "AWS default..."). * * ## Example Usage * * ### Minimal Configuration * * This is the minimal configuration for an `aws.dms.S3Endpoint`. This endpoint will rely on the AWS Provider and AWS defaults. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.dms.S3Endpoint("example", { * endpointId: "donnedtipi", * endpointType: "target", * bucketName: "beckut_name", * serviceAccessRoleArn: exampleAwsIamRole.arn, * }, { * dependsOn: [exampleAwsIamRolePolicy], * }); * ``` * * ### Complete Configuration * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.dms.S3Endpoint("example", { * endpointId: "donnedtipi", * endpointType: "target", * sslMode: "none", * tags: { * Name: "donnedtipi", * Update: "to-update", * Remove: "to-remove", * }, * addColumnName: true, * addTrailingPaddingCharacter: false, * bucketFolder: "folder", * bucketName: "bucket_name", * cannedAclForObjects: "private", * cdcInsertsAndUpdates: true, * cdcInsertsOnly: false, * cdcMaxBatchInterval: 100, * cdcMinFileSize: 16, * cdcPath: "cdc/path", * compressionType: "GZIP", * csvDelimiter: ";", * csvNoSupValue: "x", * csvNullValue: "?", * csvRowDelimiter: "\\r\\n", * dataFormat: "parquet", * dataPageSize: 1100000, * datePartitionDelimiter: "UNDERSCORE", * datePartitionEnabled: true, * datePartitionSequence: "yyyymmddhh", * datePartitionTimezone: "Asia/Seoul", * dictPageSizeLimit: 1000000, * enableStatistics: false, * encodingType: "plain", * encryptionMode: "SSE_S3", * expectedBucketOwner: current.accountId, * externalTableDefinition: "etd", * ignoreHeaderRows: 1, * includeOpForFullLoad: true, * maxFileSize: 1000000, * parquetTimestampInMillisecond: true, * parquetVersion: "parquet-2-0", * preserveTransactions: false, * rfc4180: false, * rowGroupLength: 11000, * serverSideEncryptionKmsKeyId: exampleAwsKmsKey.arn, * serviceAccessRoleArn: exampleAwsIamRole.arn, * timestampColumnName: "tx_commit_time", * useCsvNoSupValue: false, * useTaskStartTimeForFullLoadTimestamp: true, * glueCatalogGeneration: true, * }, { * dependsOn: [exampleAwsIamRolePolicy], * }); * ``` * * ## Import * * Using `pulumi import`, import endpoints using the `endpoint_id`. For example: * * ```sh * $ pulumi import aws:dms/s3Endpoint:S3Endpoint example example-dms-endpoint-tf * ``` */ export declare class S3Endpoint extends pulumi.CustomResource { /** * Get an existing S3Endpoint 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?: S3EndpointState, opts?: pulumi.CustomResourceOptions): S3Endpoint; /** * Returns true if the given object is an instance of S3Endpoint. 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 S3Endpoint; /** * Whether to add column name information to the .csv output file. Default is `false`. */ readonly addColumnName: pulumi.Output<boolean | undefined>; /** * Whether to add padding. Default is `false`. (Ignored for source endpoints.) */ readonly addTrailingPaddingCharacter: pulumi.Output<boolean | undefined>; /** * S3 object prefix. */ readonly bucketFolder: pulumi.Output<string | undefined>; /** * S3 bucket name. */ readonly bucketName: pulumi.Output<string>; /** * Predefined (canned) access control list for objects created in an S3 bucket. Valid values include `none`, `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Default is `none`. */ readonly cannedAclForObjects: pulumi.Output<string | undefined>; /** * Whether to write insert and update operations to .csv or .parquet output files. Default is `false`. */ readonly cdcInsertsAndUpdates: pulumi.Output<boolean | undefined>; /** * Whether to write insert operations to .csv or .parquet output files. Default is `false`. */ readonly cdcInsertsOnly: pulumi.Output<boolean | undefined>; /** * Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.) */ readonly cdcMaxBatchInterval: pulumi.Output<number | undefined>; /** * Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.) */ readonly cdcMinFileSize: pulumi.Output<number | undefined>; /** * Folder path of CDC files. If `cdcPath` is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. Supported in AWS DMS versions 3.4.2 and later. Required for CDC. */ readonly cdcPath: pulumi.Output<string | undefined>; /** * ARN for the certificate. */ readonly certificateArn: pulumi.Output<string>; /** * Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.) */ readonly compressionType: pulumi.Output<string | undefined>; /** * Delimiter used to separate columns in the source files. Default is `,`. */ readonly csvDelimiter: pulumi.Output<string | undefined>; /** * Only applies if output files for a CDC load are written in .csv format. If `useCsvNoSupValue` is set to `true`, string to use for all columns not included in the supplemental log. If you do not specify a string value, DMS uses the null value for these columns regardless of `useCsvNoSupValue`. (Ignored for source endpoints.) */ readonly csvNoSupValue: pulumi.Output<string | undefined>; /** * String to as null when writing to the target. (AWS default is `NULL`.) */ readonly csvNullValue: pulumi.Output<string | undefined>; /** * Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`). */ readonly csvRowDelimiter: pulumi.Output<string | undefined>; /** * Output format for the files that AWS DMS uses to create S3 objects. Valid values are `csv` and `parquet`. (Ignored for source endpoints -- only `csv` is valid.) */ readonly dataFormat: pulumi.Output<string | undefined>; /** * Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.) */ readonly dataPageSize: pulumi.Output<number | undefined>; /** * Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.) */ readonly datePartitionDelimiter: pulumi.Output<string | undefined>; /** * Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.) */ readonly datePartitionEnabled: pulumi.Output<boolean | undefined>; /** * Date format to use during folder partitioning. Use this parameter when `datePartitionEnabled` is set to true. Valid values are `YYYYMMDD`, `YYYYMMDDHH`, `YYYYMM`, `MMYYYYDD`, and `DDMMYYYY`. (AWS default is `YYYYMMDD`.) (Ignored for source endpoints.) */ readonly datePartitionSequence: pulumi.Output<string | undefined>; /** * Convert the current UTC time to a timezone. The conversion occurs when a date partition folder is created and a CDC filename is generated. The timezone format is Area/Location (_e.g._, `Europe/Paris`). Use this when `datePartitionEnabled` is `true`. (Ignored for source endpoints.) */ readonly datePartitionTimezone: pulumi.Output<string | undefined>; /** * Undocumented argument for use as directed by AWS Support. */ readonly detachTargetOnLobLookupFailureParquet: pulumi.Output<boolean | undefined>; /** * Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.) */ readonly dictPageSizeLimit: pulumi.Output<number | undefined>; /** * Whether to enable statistics for Parquet pages and row groups. Default is `true`. */ readonly enableStatistics: pulumi.Output<boolean | undefined>; /** * Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.) */ readonly encodingType: pulumi.Output<string | undefined>; /** * Server-side encryption mode that you want to encrypt your .csv or .parquet object files copied to S3. Valid values are `SSE_S3` and `SSE_KMS`. (AWS default is `SSE_S3`.) (Ignored for source endpoints -- only `SSE_S3` is valid.) */ readonly encryptionMode: pulumi.Output<string | undefined>; /** * ARN for the endpoint. */ readonly endpointArn: pulumi.Output<string>; /** * Database endpoint identifier. Identifiers must contain from 1 to 255 alphanumeric characters or hyphens, begin with a letter, contain only ASCII letters, digits, and hyphens, not end with a hyphen, and not contain two consecutive hyphens. */ readonly endpointId: pulumi.Output<string>; /** * Type of endpoint. Valid values are `source`, `target`. */ readonly endpointType: pulumi.Output<string>; /** * Expanded name for the engine name. */ readonly engineDisplayName: pulumi.Output<string>; /** * Bucket owner to prevent sniping. Value is an AWS account ID. */ readonly expectedBucketOwner: pulumi.Output<string | undefined>; /** * Can be used for cross-account validation. Use it in another account with `aws.dms.S3Endpoint` to create the endpoint cross-account. */ readonly externalId: pulumi.Output<string>; /** * JSON document that describes how AWS DMS should interpret the data. Required for `source` endpoints. */ readonly externalTableDefinition: pulumi.Output<string | undefined>; /** * Whether to integrate AWS Glue Data Catalog with an Amazon S3 target. See [Using AWS Glue Data Catalog with an Amazon S3 target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.GlueCatalog) for more information. Default is `false`. */ readonly glueCatalogGeneration: pulumi.Output<boolean | undefined>; /** * When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.) */ readonly ignoreHeaderRows: pulumi.Output<number | undefined>; /** * Whether to enable a full load to write INSERT operations to the .csv output files only to indicate how the rows were added to the source database. Default is `false`. */ readonly includeOpForFullLoad: pulumi.Output<boolean | undefined>; /** * ARN for the KMS key that will be used to encrypt the connection parameters. If you do not specify a value for `kmsKeyArn`, then AWS DMS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region. */ readonly kmsKeyArn: pulumi.Output<string>; /** * Maximum size (in KB) of any .csv file to be created while migrating to an S3 target during full load. Valid values are from `1` to `1048576`. (AWS default is 1 GB, _i.e._, `1048576`.) */ readonly maxFileSize: pulumi.Output<number | undefined>; /** * Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.) */ readonly parquetTimestampInMillisecond: pulumi.Output<boolean | undefined>; /** * Version of the .parquet file format. Valid values are `parquet-1-0` and `parquet-2-0`. (AWS default is `parquet-1-0`.) (Ignored for source endpoints.) */ readonly parquetVersion: pulumi.Output<string | undefined>; /** * Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.) */ readonly preserveTransactions: pulumi.Output<boolean | undefined>; /** * 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<string>; /** * For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`. */ readonly rfc4180: pulumi.Output<boolean | undefined>; /** * Number of rows in a row group. (AWS default is `10000`.) */ readonly rowGroupLength: pulumi.Output<number | undefined>; /** * When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.) */ readonly serverSideEncryptionKmsKeyId: pulumi.Output<string | undefined>; /** * ARN of the IAM role with permissions to the S3 Bucket. * * The following arguments are optional: */ readonly serviceAccessRoleArn: pulumi.Output<string>; /** * SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.) */ readonly sslMode: pulumi.Output<string>; /** * Status of the endpoint. */ readonly status: pulumi.Output<string>; /** * Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. */ readonly tagsAll: pulumi.Output<{ [key: string]: string; }>; /** * Column to add with timestamp information to the endpoint data for an Amazon S3 target. */ readonly timestampColumnName: pulumi.Output<string | undefined>; /** * Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.) */ readonly useCsvNoSupValue: pulumi.Output<boolean | undefined>; /** * When set to `true`, uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when set to `true`, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.When set to false, the full load timestamp in the timestamp column increments with the time data arrives at the target. Default is `false`. */ readonly useTaskStartTimeForFullLoadTimestamp: pulumi.Output<boolean | undefined>; /** * Create a S3Endpoint 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: S3EndpointArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering S3Endpoint resources. */ export interface S3EndpointState { /** * Whether to add column name information to the .csv output file. Default is `false`. */ addColumnName?: pulumi.Input<boolean>; /** * Whether to add padding. Default is `false`. (Ignored for source endpoints.) */ addTrailingPaddingCharacter?: pulumi.Input<boolean>; /** * S3 object prefix. */ bucketFolder?: pulumi.Input<string>; /** * S3 bucket name. */ bucketName?: pulumi.Input<string>; /** * Predefined (canned) access control list for objects created in an S3 bucket. Valid values include `none`, `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Default is `none`. */ cannedAclForObjects?: pulumi.Input<string>; /** * Whether to write insert and update operations to .csv or .parquet output files. Default is `false`. */ cdcInsertsAndUpdates?: pulumi.Input<boolean>; /** * Whether to write insert operations to .csv or .parquet output files. Default is `false`. */ cdcInsertsOnly?: pulumi.Input<boolean>; /** * Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.) */ cdcMaxBatchInterval?: pulumi.Input<number>; /** * Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.) */ cdcMinFileSize?: pulumi.Input<number>; /** * Folder path of CDC files. If `cdcPath` is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. Supported in AWS DMS versions 3.4.2 and later. Required for CDC. */ cdcPath?: pulumi.Input<string>; /** * ARN for the certificate. */ certificateArn?: pulumi.Input<string>; /** * Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.) */ compressionType?: pulumi.Input<string>; /** * Delimiter used to separate columns in the source files. Default is `,`. */ csvDelimiter?: pulumi.Input<string>; /** * Only applies if output files for a CDC load are written in .csv format. If `useCsvNoSupValue` is set to `true`, string to use for all columns not included in the supplemental log. If you do not specify a string value, DMS uses the null value for these columns regardless of `useCsvNoSupValue`. (Ignored for source endpoints.) */ csvNoSupValue?: pulumi.Input<string>; /** * String to as null when writing to the target. (AWS default is `NULL`.) */ csvNullValue?: pulumi.Input<string>; /** * Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`). */ csvRowDelimiter?: pulumi.Input<string>; /** * Output format for the files that AWS DMS uses to create S3 objects. Valid values are `csv` and `parquet`. (Ignored for source endpoints -- only `csv` is valid.) */ dataFormat?: pulumi.Input<string>; /** * Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.) */ dataPageSize?: pulumi.Input<number>; /** * Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.) */ datePartitionDelimiter?: pulumi.Input<string>; /** * Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.) */ datePartitionEnabled?: pulumi.Input<boolean>; /** * Date format to use during folder partitioning. Use this parameter when `datePartitionEnabled` is set to true. Valid values are `YYYYMMDD`, `YYYYMMDDHH`, `YYYYMM`, `MMYYYYDD`, and `DDMMYYYY`. (AWS default is `YYYYMMDD`.) (Ignored for source endpoints.) */ datePartitionSequence?: pulumi.Input<string>; /** * Convert the current UTC time to a timezone. The conversion occurs when a date partition folder is created and a CDC filename is generated. The timezone format is Area/Location (_e.g._, `Europe/Paris`). Use this when `datePartitionEnabled` is `true`. (Ignored for source endpoints.) */ datePartitionTimezone?: pulumi.Input<string>; /** * Undocumented argument for use as directed by AWS Support. */ detachTargetOnLobLookupFailureParquet?: pulumi.Input<boolean>; /** * Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.) */ dictPageSizeLimit?: pulumi.Input<number>; /** * Whether to enable statistics for Parquet pages and row groups. Default is `true`. */ enableStatistics?: pulumi.Input<boolean>; /** * Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.) */ encodingType?: pulumi.Input<string>; /** * Server-side encryption mode that you want to encrypt your .csv or .parquet object files copied to S3. Valid values are `SSE_S3` and `SSE_KMS`. (AWS default is `SSE_S3`.) (Ignored for source endpoints -- only `SSE_S3` is valid.) */ encryptionMode?: pulumi.Input<string>; /** * ARN for the endpoint. */ endpointArn?: pulumi.Input<string>; /** * Database endpoint identifier. Identifiers must contain from 1 to 255 alphanumeric characters or hyphens, begin with a letter, contain only ASCII letters, digits, and hyphens, not end with a hyphen, and not contain two consecutive hyphens. */ endpointId?: pulumi.Input<string>; /** * Type of endpoint. Valid values are `source`, `target`. */ endpointType?: pulumi.Input<string>; /** * Expanded name for the engine name. */ engineDisplayName?: pulumi.Input<string>; /** * Bucket owner to prevent sniping. Value is an AWS account ID. */ expectedBucketOwner?: pulumi.Input<string>; /** * Can be used for cross-account validation. Use it in another account with `aws.dms.S3Endpoint` to create the endpoint cross-account. */ externalId?: pulumi.Input<string>; /** * JSON document that describes how AWS DMS should interpret the data. Required for `source` endpoints. */ externalTableDefinition?: pulumi.Input<string>; /** * Whether to integrate AWS Glue Data Catalog with an Amazon S3 target. See [Using AWS Glue Data Catalog with an Amazon S3 target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.GlueCatalog) for more information. Default is `false`. */ glueCatalogGeneration?: pulumi.Input<boolean>; /** * When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.) */ ignoreHeaderRows?: pulumi.Input<number>; /** * Whether to enable a full load to write INSERT operations to the .csv output files only to indicate how the rows were added to the source database. Default is `false`. */ includeOpForFullLoad?: pulumi.Input<boolean>; /** * ARN for the KMS key that will be used to encrypt the connection parameters. If you do not specify a value for `kmsKeyArn`, then AWS DMS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region. */ kmsKeyArn?: pulumi.Input<string>; /** * Maximum size (in KB) of any .csv file to be created while migrating to an S3 target during full load. Valid values are from `1` to `1048576`. (AWS default is 1 GB, _i.e._, `1048576`.) */ maxFileSize?: pulumi.Input<number>; /** * Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.) */ parquetTimestampInMillisecond?: pulumi.Input<boolean>; /** * Version of the .parquet file format. Valid values are `parquet-1-0` and `parquet-2-0`. (AWS default is `parquet-1-0`.) (Ignored for source endpoints.) */ parquetVersion?: pulumi.Input<string>; /** * Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.) */ preserveTransactions?: pulumi.Input<boolean>; /** * 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<string>; /** * For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`. */ rfc4180?: pulumi.Input<boolean>; /** * Number of rows in a row group. (AWS default is `10000`.) */ rowGroupLength?: pulumi.Input<number>; /** * When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.) */ serverSideEncryptionKmsKeyId?: pulumi.Input<string>; /** * ARN of the IAM role with permissions to the S3 Bucket. * * The following arguments are optional: */ serviceAccessRoleArn?: pulumi.Input<string>; /** * SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.) */ sslMode?: pulumi.Input<string>; /** * Status of the endpoint. */ status?: pulumi.Input<string>; /** * Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. */ tagsAll?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Column to add with timestamp information to the endpoint data for an Amazon S3 target. */ timestampColumnName?: pulumi.Input<string>; /** * Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.) */ useCsvNoSupValue?: pulumi.Input<boolean>; /** * When set to `true`, uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when set to `true`, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.When set to false, the full load timestamp in the timestamp column increments with the time data arrives at the target. Default is `false`. */ useTaskStartTimeForFullLoadTimestamp?: pulumi.Input<boolean>; } /** * The set of arguments for constructing a S3Endpoint resource. */ export interface S3EndpointArgs { /** * Whether to add column name information to the .csv output file. Default is `false`. */ addColumnName?: pulumi.Input<boolean>; /** * Whether to add padding. Default is `false`. (Ignored for source endpoints.) */ addTrailingPaddingCharacter?: pulumi.Input<boolean>; /** * S3 object prefix. */ bucketFolder?: pulumi.Input<string>; /** * S3 bucket name. */ bucketName: pulumi.Input<string>; /** * Predefined (canned) access control list for objects created in an S3 bucket. Valid values include `none`, `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Default is `none`. */ cannedAclForObjects?: pulumi.Input<string>; /** * Whether to write insert and update operations to .csv or .parquet output files. Default is `false`. */ cdcInsertsAndUpdates?: pulumi.Input<boolean>; /** * Whether to write insert operations to .csv or .parquet output files. Default is `false`. */ cdcInsertsOnly?: pulumi.Input<boolean>; /** * Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.) */ cdcMaxBatchInterval?: pulumi.Input<number>; /** * Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.) */ cdcMinFileSize?: pulumi.Input<number>; /** * Folder path of CDC files. If `cdcPath` is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. Supported in AWS DMS versions 3.4.2 and later. Required for CDC. */ cdcPath?: pulumi.Input<string>; /** * ARN for the certificate. */ certificateArn?: pulumi.Input<string>; /** * Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.) */ compressionType?: pulumi.Input<string>; /** * Delimiter used to separate columns in the source files. Default is `,`. */ csvDelimiter?: pulumi.Input<string>; /** * Only applies if output files for a CDC load are written in .csv format. If `useCsvNoSupValue` is set to `true`, string to use for all columns not included in the supplemental log. If you do not specify a string value, DMS uses the null value for these columns regardless of `useCsvNoSupValue`. (Ignored for source endpoints.) */ csvNoSupValue?: pulumi.Input<string>; /** * String to as null when writing to the target. (AWS default is `NULL`.) */ csvNullValue?: pulumi.Input<string>; /** * Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`). */ csvRowDelimiter?: pulumi.Input<string>; /** * Output format for the files that AWS DMS uses to create S3 objects. Valid values are `csv` and `parquet`. (Ignored for source endpoints -- only `csv` is valid.) */ dataFormat?: pulumi.Input<string>; /** * Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.) */ dataPageSize?: pulumi.Input<number>; /** * Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.) */ datePartitionDelimiter?: pulumi.Input<string>; /** * Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.) */ datePartitionEnabled?: pulumi.Input<boolean>; /** * Date format to use during folder partitioning. Use this parameter when `datePartitionEnabled` is set to true. Valid values are `YYYYMMDD`, `YYYYMMDDHH`, `YYYYMM`, `MMYYYYDD`, and `DDMMYYYY`. (AWS default is `YYYYMMDD`.) (Ignored for source endpoints.) */ datePartitionSequence?: pulumi.Input<string>; /** * Convert the current UTC time to a timezone. The conversion occurs when a date partition folder is created and a CDC filename is generated. The timezone format is Area/Location (_e.g._, `Europe/Paris`). Use this when `datePartitionEnabled` is `true`. (Ignored for source endpoints.) */ datePartitionTimezone?: pulumi.Input<string>; /** * Undocumented argument for use as directed by AWS Support. */ detachTargetOnLobLookupFailureParquet?: pulumi.Input<boolean>; /** * Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.) */ dictPageSizeLimit?: pulumi.Input<number>; /** * Whether to enable statistics for Parquet pages and row groups. Default is `true`. */ enableStatistics?: pulumi.Input<boolean>; /** * Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.) */ encodingType?: pulumi.Input<string>; /** * Server-side encryption mode that you want to encrypt your .csv or .parquet object files copied to S3. Valid values are `SSE_S3` and `SSE_KMS`. (AWS default is `SSE_S3`.) (Ignored for source endpoints -- only `SSE_S3` is valid.) */ encryptionMode?: pulumi.Input<string>; /** * Database endpoint identifier. Identifiers must contain from 1 to 255 alphanumeric characters or hyphens, begin with a letter, contain only ASCII letters, digits, and hyphens, not end with a hyphen, and not contain two consecutive hyphens. */ endpointId: pulumi.Input<string>; /** * Type of endpoint. Valid values are `source`, `target`. */ endpointType: pulumi.Input<string>; /** * Bucket owner to prevent sniping. Value is an AWS account ID. */ expectedBucketOwner?: pulumi.Input<string>; /** * JSON document that describes how AWS DMS should interpret the data. Required for `source` endpoints. */ externalTableDefinition?: pulumi.Input<string>; /** * Whether to integrate AWS Glue Data Catalog with an Amazon S3 target. See [Using AWS Glue Data Catalog with an Amazon S3 target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.GlueCatalog) for more information. Default is `false`. */ glueCatalogGeneration?: pulumi.Input<boolean>; /** * When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.) */ ignoreHeaderRows?: pulumi.Input<number>; /** * Whether to enable a full load to write INSERT operations to the .csv output files only to indicate how the rows were added to the source database. Default is `false`. */ includeOpForFullLoad?: pulumi.Input<boolean>; /** * ARN for the KMS key that will be used to encrypt the connection parameters. If you do not specify a value for `kmsKeyArn`, then AWS DMS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region. */ kmsKeyArn?: pulumi.Input<string>; /** * Maximum size (in KB) of any .csv file to be created while migrating to an S3 target during full load. Valid values are from `1` to `1048576`. (AWS default is 1 GB, _i.e._, `1048576`.) */ maxFileSize?: pulumi.Input<number>; /** * Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.) */ parquetTimestampInMillisecond?: pulumi.Input<boolean>; /** * Version of the .parquet file format. Valid values are `parquet-1-0` and `parquet-2-0`. (AWS default is `parquet-1-0`.) (Ignored for source endpoints.) */ parquetVersion?: pulumi.Input<string>; /** * Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.) */ preserveTransactions?: pulumi.Input<boolean>; /** * 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<string>; /** * For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`. */ rfc4180?: pulumi.Input<boolean>; /** * Number of rows in a row group. (AWS default is `10000`.) */ rowGroupLength?: pulumi.Input<number>; /** * When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.) */ serverSideEncryptionKmsKeyId?: pulumi.Input<string>; /** * ARN of the IAM role with permissions to the S3 Bucket. * * The following arguments are optional: */ serviceAccessRoleArn: pulumi.Input<string>; /** * SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.) */ sslMode?: pulumi.Input<string>; /** * Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Column to add with timestamp information to the endpoint data for an Amazon S3 target. */ timestampColumnName?: pulumi.Input<string>; /** * Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.) */ useCsvNoSupValue?: pulumi.Input<boolean>; /** * When set to `true`, uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when set to `true`, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.When set to false, the full load timestamp in the timestamp column increments with the time data arrives at the target. Default is `false`. */ useTaskStartTimeForFullLoadTimestamp?: pulumi.Input<boolean>; }