github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/dms/s3endpoint.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package dms
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides a DMS (Data Migration Service) S3 endpoint resource. DMS S3 endpoints can be created, updated, deleted, and imported.
    16  //
    17  // > **Note:** AWS is deprecating `extraConnectionAttributes`, such as used with `dms.Endpoint`. This resource is an alternative to `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.)
    18  //
    19  // > **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...").
    20  //
    21  // ## Example Usage
    22  //
    23  // ### Minimal Configuration
    24  //
    25  // This is the minimal configuration for an `dms.S3Endpoint`. This endpoint will rely on the AWS Provider and AWS defaults.
    26  //
    27  // <!--Start PulumiCodeChooser -->
    28  // ```go
    29  // package main
    30  //
    31  // import (
    32  //
    33  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dms"
    34  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    35  //
    36  // )
    37  //
    38  //	func main() {
    39  //		pulumi.Run(func(ctx *pulumi.Context) error {
    40  //			_, err := dms.NewS3Endpoint(ctx, "example", &dms.S3EndpointArgs{
    41  //				EndpointId:           pulumi.String("donnedtipi"),
    42  //				EndpointType:         pulumi.String("target"),
    43  //				BucketName:           pulumi.String("beckut_name"),
    44  //				ServiceAccessRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
    45  //			}, pulumi.DependsOn([]pulumi.Resource{
    46  //				exampleAwsIamRolePolicy,
    47  //			}))
    48  //			if err != nil {
    49  //				return err
    50  //			}
    51  //			return nil
    52  //		})
    53  //	}
    54  //
    55  // ```
    56  // <!--End PulumiCodeChooser -->
    57  //
    58  // ### Complete Configuration
    59  //
    60  // <!--Start PulumiCodeChooser -->
    61  // ```go
    62  // package main
    63  //
    64  // import (
    65  //
    66  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dms"
    67  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    68  //
    69  // )
    70  //
    71  //	func main() {
    72  //		pulumi.Run(func(ctx *pulumi.Context) error {
    73  //			_, err := dms.NewS3Endpoint(ctx, "example", &dms.S3EndpointArgs{
    74  //				EndpointId:   pulumi.String("donnedtipi"),
    75  //				EndpointType: pulumi.String("target"),
    76  //				SslMode:      pulumi.String("none"),
    77  //				Tags: pulumi.StringMap{
    78  //					"Name":   pulumi.String("donnedtipi"),
    79  //					"Update": pulumi.String("to-update"),
    80  //					"Remove": pulumi.String("to-remove"),
    81  //				},
    82  //				AddColumnName:                        pulumi.Bool(true),
    83  //				AddTrailingPaddingCharacter:          pulumi.Bool(false),
    84  //				BucketFolder:                         pulumi.String("folder"),
    85  //				BucketName:                           pulumi.String("bucket_name"),
    86  //				CannedAclForObjects:                  pulumi.String("private"),
    87  //				CdcInsertsAndUpdates:                 pulumi.Bool(true),
    88  //				CdcInsertsOnly:                       pulumi.Bool(false),
    89  //				CdcMaxBatchInterval:                  pulumi.Int(100),
    90  //				CdcMinFileSize:                       pulumi.Int(16),
    91  //				CdcPath:                              pulumi.String("cdc/path"),
    92  //				CompressionType:                      pulumi.String("GZIP"),
    93  //				CsvDelimiter:                         pulumi.String(";"),
    94  //				CsvNoSupValue:                        pulumi.String("x"),
    95  //				CsvNullValue:                         pulumi.String("?"),
    96  //				CsvRowDelimiter:                      pulumi.String("\\r\\n"),
    97  //				DataFormat:                           pulumi.String("parquet"),
    98  //				DataPageSize:                         pulumi.Int(1100000),
    99  //				DatePartitionDelimiter:               pulumi.String("UNDERSCORE"),
   100  //				DatePartitionEnabled:                 pulumi.Bool(true),
   101  //				DatePartitionSequence:                pulumi.String("yyyymmddhh"),
   102  //				DatePartitionTimezone:                pulumi.String("Asia/Seoul"),
   103  //				DictPageSizeLimit:                    pulumi.Int(1000000),
   104  //				EnableStatistics:                     pulumi.Bool(false),
   105  //				EncodingType:                         pulumi.String("plain"),
   106  //				EncryptionMode:                       pulumi.String("SSE_S3"),
   107  //				ExpectedBucketOwner:                  pulumi.Any(current.AccountId),
   108  //				ExternalTableDefinition:              pulumi.String("etd"),
   109  //				IgnoreHeaderRows:                     pulumi.Int(1),
   110  //				IncludeOpForFullLoad:                 pulumi.Bool(true),
   111  //				MaxFileSize:                          pulumi.Int(1000000),
   112  //				ParquetTimestampInMillisecond:        pulumi.Bool(true),
   113  //				ParquetVersion:                       pulumi.String("parquet-2-0"),
   114  //				PreserveTransactions:                 pulumi.Bool(false),
   115  //				Rfc4180:                              pulumi.Bool(false),
   116  //				RowGroupLength:                       pulumi.Int(11000),
   117  //				ServerSideEncryptionKmsKeyId:         pulumi.Any(exampleAwsKmsKey.Arn),
   118  //				ServiceAccessRoleArn:                 pulumi.Any(exampleAwsIamRole.Arn),
   119  //				TimestampColumnName:                  pulumi.String("tx_commit_time"),
   120  //				UseCsvNoSupValue:                     pulumi.Bool(false),
   121  //				UseTaskStartTimeForFullLoadTimestamp: pulumi.Bool(true),
   122  //				GlueCatalogGeneration:                pulumi.Bool(true),
   123  //			}, pulumi.DependsOn([]pulumi.Resource{
   124  //				exampleAwsIamRolePolicy,
   125  //			}))
   126  //			if err != nil {
   127  //				return err
   128  //			}
   129  //			return nil
   130  //		})
   131  //	}
   132  //
   133  // ```
   134  // <!--End PulumiCodeChooser -->
   135  //
   136  // ## Import
   137  //
   138  // Using `pulumi import`, import endpoints using the `endpoint_id`. For example:
   139  //
   140  // ```sh
   141  // $ pulumi import aws:dms/s3Endpoint:S3Endpoint example example-dms-endpoint-tf
   142  // ```
   143  type S3Endpoint struct {
   144  	pulumi.CustomResourceState
   145  
   146  	// Whether to add column name information to the .csv output file. Default is `false`.
   147  	AddColumnName pulumi.BoolPtrOutput `pulumi:"addColumnName"`
   148  	// Whether to add padding. Default is `false`. (Ignored for source endpoints.)
   149  	AddTrailingPaddingCharacter pulumi.BoolPtrOutput `pulumi:"addTrailingPaddingCharacter"`
   150  	// S3 object prefix.
   151  	BucketFolder pulumi.StringPtrOutput `pulumi:"bucketFolder"`
   152  	// S3 bucket name.
   153  	BucketName pulumi.StringOutput `pulumi:"bucketName"`
   154  	// 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`.
   155  	CannedAclForObjects pulumi.StringPtrOutput `pulumi:"cannedAclForObjects"`
   156  	// Whether to write insert and update operations to .csv or .parquet output files. Default is `false`.
   157  	CdcInsertsAndUpdates pulumi.BoolPtrOutput `pulumi:"cdcInsertsAndUpdates"`
   158  	// Whether to write insert operations to .csv or .parquet output files. Default is `false`.
   159  	CdcInsertsOnly pulumi.BoolPtrOutput `pulumi:"cdcInsertsOnly"`
   160  	// Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.)
   161  	CdcMaxBatchInterval pulumi.IntPtrOutput `pulumi:"cdcMaxBatchInterval"`
   162  	// Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.)
   163  	CdcMinFileSize pulumi.IntPtrOutput `pulumi:"cdcMinFileSize"`
   164  	// 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.
   165  	CdcPath pulumi.StringPtrOutput `pulumi:"cdcPath"`
   166  	// ARN for the certificate.
   167  	CertificateArn pulumi.StringOutput `pulumi:"certificateArn"`
   168  	// Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.)
   169  	CompressionType pulumi.StringPtrOutput `pulumi:"compressionType"`
   170  	// Delimiter used to separate columns in the source files. Default is `,`.
   171  	CsvDelimiter pulumi.StringPtrOutput `pulumi:"csvDelimiter"`
   172  	// 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.)
   173  	CsvNoSupValue pulumi.StringPtrOutput `pulumi:"csvNoSupValue"`
   174  	// String to as null when writing to the target. (AWS default is `NULL`.)
   175  	CsvNullValue pulumi.StringPtrOutput `pulumi:"csvNullValue"`
   176  	// Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`).
   177  	CsvRowDelimiter pulumi.StringPtrOutput `pulumi:"csvRowDelimiter"`
   178  	// 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.)
   179  	DataFormat pulumi.StringPtrOutput `pulumi:"dataFormat"`
   180  	// Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.)
   181  	DataPageSize pulumi.IntPtrOutput `pulumi:"dataPageSize"`
   182  	// Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.)
   183  	DatePartitionDelimiter pulumi.StringPtrOutput `pulumi:"datePartitionDelimiter"`
   184  	// Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.)
   185  	DatePartitionEnabled pulumi.BoolPtrOutput `pulumi:"datePartitionEnabled"`
   186  	// 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.)
   187  	DatePartitionSequence pulumi.StringPtrOutput `pulumi:"datePartitionSequence"`
   188  	// 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.)
   189  	DatePartitionTimezone pulumi.StringPtrOutput `pulumi:"datePartitionTimezone"`
   190  	// Undocumented argument for use as directed by AWS Support.
   191  	DetachTargetOnLobLookupFailureParquet pulumi.BoolPtrOutput `pulumi:"detachTargetOnLobLookupFailureParquet"`
   192  	// Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.)
   193  	DictPageSizeLimit pulumi.IntPtrOutput `pulumi:"dictPageSizeLimit"`
   194  	// Whether to enable statistics for Parquet pages and row groups. Default is `true`.
   195  	EnableStatistics pulumi.BoolPtrOutput `pulumi:"enableStatistics"`
   196  	// Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.)
   197  	EncodingType pulumi.StringPtrOutput `pulumi:"encodingType"`
   198  	// 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.)
   199  	EncryptionMode pulumi.StringPtrOutput `pulumi:"encryptionMode"`
   200  	// ARN for the endpoint.
   201  	EndpointArn pulumi.StringOutput `pulumi:"endpointArn"`
   202  	// 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.
   203  	EndpointId pulumi.StringOutput `pulumi:"endpointId"`
   204  	// Type of endpoint. Valid values are `source`, `target`.
   205  	EndpointType pulumi.StringOutput `pulumi:"endpointType"`
   206  	// Expanded name for the engine name.
   207  	EngineDisplayName pulumi.StringOutput `pulumi:"engineDisplayName"`
   208  	// Bucket owner to prevent sniping. Value is an AWS account ID.
   209  	ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"`
   210  	// Can be used for cross-account validation. Use it in another account with `dms.S3Endpoint` to create the endpoint cross-account.
   211  	ExternalId pulumi.StringOutput `pulumi:"externalId"`
   212  	// JSON document that describes how AWS DMS should interpret the data.
   213  	ExternalTableDefinition pulumi.StringPtrOutput `pulumi:"externalTableDefinition"`
   214  	// 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`.
   215  	GlueCatalogGeneration pulumi.BoolPtrOutput `pulumi:"glueCatalogGeneration"`
   216  	// When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.)
   217  	IgnoreHeaderRows pulumi.IntPtrOutput `pulumi:"ignoreHeaderRows"`
   218  	// 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`.
   219  	IncludeOpForFullLoad pulumi.BoolPtrOutput `pulumi:"includeOpForFullLoad"`
   220  	// 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.
   221  	KmsKeyArn pulumi.StringOutput `pulumi:"kmsKeyArn"`
   222  	// 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`.)
   223  	MaxFileSize pulumi.IntPtrOutput `pulumi:"maxFileSize"`
   224  	// Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.)
   225  	ParquetTimestampInMillisecond pulumi.BoolPtrOutput `pulumi:"parquetTimestampInMillisecond"`
   226  	// 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.)
   227  	ParquetVersion pulumi.StringPtrOutput `pulumi:"parquetVersion"`
   228  	// Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.)
   229  	PreserveTransactions pulumi.BoolPtrOutput `pulumi:"preserveTransactions"`
   230  	// For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`.
   231  	Rfc4180 pulumi.BoolPtrOutput `pulumi:"rfc4180"`
   232  	// Number of rows in a row group. (AWS default is `10000`.)
   233  	RowGroupLength pulumi.IntPtrOutput `pulumi:"rowGroupLength"`
   234  	// When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.)
   235  	ServerSideEncryptionKmsKeyId pulumi.StringPtrOutput `pulumi:"serverSideEncryptionKmsKeyId"`
   236  	// ARN of the IAM role with permissions to the S3 Bucket.
   237  	//
   238  	// The following arguments are optional:
   239  	ServiceAccessRoleArn pulumi.StringOutput `pulumi:"serviceAccessRoleArn"`
   240  	// SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.)
   241  	SslMode pulumi.StringOutput `pulumi:"sslMode"`
   242  	// Status of the endpoint.
   243  	Status pulumi.StringOutput `pulumi:"status"`
   244  	// 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.
   245  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   246  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   247  	//
   248  	// Deprecated: Please use `tags` instead.
   249  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   250  	// Column to add with timestamp information to the endpoint data for an Amazon S3 target.
   251  	TimestampColumnName pulumi.StringPtrOutput `pulumi:"timestampColumnName"`
   252  	// Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.)
   253  	UseCsvNoSupValue pulumi.BoolPtrOutput `pulumi:"useCsvNoSupValue"`
   254  	// 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`.
   255  	UseTaskStartTimeForFullLoadTimestamp pulumi.BoolPtrOutput `pulumi:"useTaskStartTimeForFullLoadTimestamp"`
   256  }
   257  
   258  // NewS3Endpoint registers a new resource with the given unique name, arguments, and options.
   259  func NewS3Endpoint(ctx *pulumi.Context,
   260  	name string, args *S3EndpointArgs, opts ...pulumi.ResourceOption) (*S3Endpoint, error) {
   261  	if args == nil {
   262  		return nil, errors.New("missing one or more required arguments")
   263  	}
   264  
   265  	if args.BucketName == nil {
   266  		return nil, errors.New("invalid value for required argument 'BucketName'")
   267  	}
   268  	if args.EndpointId == nil {
   269  		return nil, errors.New("invalid value for required argument 'EndpointId'")
   270  	}
   271  	if args.EndpointType == nil {
   272  		return nil, errors.New("invalid value for required argument 'EndpointType'")
   273  	}
   274  	if args.ServiceAccessRoleArn == nil {
   275  		return nil, errors.New("invalid value for required argument 'ServiceAccessRoleArn'")
   276  	}
   277  	opts = internal.PkgResourceDefaultOpts(opts)
   278  	var resource S3Endpoint
   279  	err := ctx.RegisterResource("aws:dms/s3Endpoint:S3Endpoint", name, args, &resource, opts...)
   280  	if err != nil {
   281  		return nil, err
   282  	}
   283  	return &resource, nil
   284  }
   285  
   286  // GetS3Endpoint gets an existing S3Endpoint resource's state with the given name, ID, and optional
   287  // state properties that are used to uniquely qualify the lookup (nil if not required).
   288  func GetS3Endpoint(ctx *pulumi.Context,
   289  	name string, id pulumi.IDInput, state *S3EndpointState, opts ...pulumi.ResourceOption) (*S3Endpoint, error) {
   290  	var resource S3Endpoint
   291  	err := ctx.ReadResource("aws:dms/s3Endpoint:S3Endpoint", name, id, state, &resource, opts...)
   292  	if err != nil {
   293  		return nil, err
   294  	}
   295  	return &resource, nil
   296  }
   297  
   298  // Input properties used for looking up and filtering S3Endpoint resources.
   299  type s3endpointState struct {
   300  	// Whether to add column name information to the .csv output file. Default is `false`.
   301  	AddColumnName *bool `pulumi:"addColumnName"`
   302  	// Whether to add padding. Default is `false`. (Ignored for source endpoints.)
   303  	AddTrailingPaddingCharacter *bool `pulumi:"addTrailingPaddingCharacter"`
   304  	// S3 object prefix.
   305  	BucketFolder *string `pulumi:"bucketFolder"`
   306  	// S3 bucket name.
   307  	BucketName *string `pulumi:"bucketName"`
   308  	// 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`.
   309  	CannedAclForObjects *string `pulumi:"cannedAclForObjects"`
   310  	// Whether to write insert and update operations to .csv or .parquet output files. Default is `false`.
   311  	CdcInsertsAndUpdates *bool `pulumi:"cdcInsertsAndUpdates"`
   312  	// Whether to write insert operations to .csv or .parquet output files. Default is `false`.
   313  	CdcInsertsOnly *bool `pulumi:"cdcInsertsOnly"`
   314  	// Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.)
   315  	CdcMaxBatchInterval *int `pulumi:"cdcMaxBatchInterval"`
   316  	// Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.)
   317  	CdcMinFileSize *int `pulumi:"cdcMinFileSize"`
   318  	// 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.
   319  	CdcPath *string `pulumi:"cdcPath"`
   320  	// ARN for the certificate.
   321  	CertificateArn *string `pulumi:"certificateArn"`
   322  	// Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.)
   323  	CompressionType *string `pulumi:"compressionType"`
   324  	// Delimiter used to separate columns in the source files. Default is `,`.
   325  	CsvDelimiter *string `pulumi:"csvDelimiter"`
   326  	// 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.)
   327  	CsvNoSupValue *string `pulumi:"csvNoSupValue"`
   328  	// String to as null when writing to the target. (AWS default is `NULL`.)
   329  	CsvNullValue *string `pulumi:"csvNullValue"`
   330  	// Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`).
   331  	CsvRowDelimiter *string `pulumi:"csvRowDelimiter"`
   332  	// 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.)
   333  	DataFormat *string `pulumi:"dataFormat"`
   334  	// Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.)
   335  	DataPageSize *int `pulumi:"dataPageSize"`
   336  	// Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.)
   337  	DatePartitionDelimiter *string `pulumi:"datePartitionDelimiter"`
   338  	// Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.)
   339  	DatePartitionEnabled *bool `pulumi:"datePartitionEnabled"`
   340  	// 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.)
   341  	DatePartitionSequence *string `pulumi:"datePartitionSequence"`
   342  	// 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.)
   343  	DatePartitionTimezone *string `pulumi:"datePartitionTimezone"`
   344  	// Undocumented argument for use as directed by AWS Support.
   345  	DetachTargetOnLobLookupFailureParquet *bool `pulumi:"detachTargetOnLobLookupFailureParquet"`
   346  	// Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.)
   347  	DictPageSizeLimit *int `pulumi:"dictPageSizeLimit"`
   348  	// Whether to enable statistics for Parquet pages and row groups. Default is `true`.
   349  	EnableStatistics *bool `pulumi:"enableStatistics"`
   350  	// Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.)
   351  	EncodingType *string `pulumi:"encodingType"`
   352  	// 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.)
   353  	EncryptionMode *string `pulumi:"encryptionMode"`
   354  	// ARN for the endpoint.
   355  	EndpointArn *string `pulumi:"endpointArn"`
   356  	// 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.
   357  	EndpointId *string `pulumi:"endpointId"`
   358  	// Type of endpoint. Valid values are `source`, `target`.
   359  	EndpointType *string `pulumi:"endpointType"`
   360  	// Expanded name for the engine name.
   361  	EngineDisplayName *string `pulumi:"engineDisplayName"`
   362  	// Bucket owner to prevent sniping. Value is an AWS account ID.
   363  	ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"`
   364  	// Can be used for cross-account validation. Use it in another account with `dms.S3Endpoint` to create the endpoint cross-account.
   365  	ExternalId *string `pulumi:"externalId"`
   366  	// JSON document that describes how AWS DMS should interpret the data.
   367  	ExternalTableDefinition *string `pulumi:"externalTableDefinition"`
   368  	// 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`.
   369  	GlueCatalogGeneration *bool `pulumi:"glueCatalogGeneration"`
   370  	// When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.)
   371  	IgnoreHeaderRows *int `pulumi:"ignoreHeaderRows"`
   372  	// 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`.
   373  	IncludeOpForFullLoad *bool `pulumi:"includeOpForFullLoad"`
   374  	// 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.
   375  	KmsKeyArn *string `pulumi:"kmsKeyArn"`
   376  	// 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`.)
   377  	MaxFileSize *int `pulumi:"maxFileSize"`
   378  	// Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.)
   379  	ParquetTimestampInMillisecond *bool `pulumi:"parquetTimestampInMillisecond"`
   380  	// 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.)
   381  	ParquetVersion *string `pulumi:"parquetVersion"`
   382  	// Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.)
   383  	PreserveTransactions *bool `pulumi:"preserveTransactions"`
   384  	// For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`.
   385  	Rfc4180 *bool `pulumi:"rfc4180"`
   386  	// Number of rows in a row group. (AWS default is `10000`.)
   387  	RowGroupLength *int `pulumi:"rowGroupLength"`
   388  	// When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.)
   389  	ServerSideEncryptionKmsKeyId *string `pulumi:"serverSideEncryptionKmsKeyId"`
   390  	// ARN of the IAM role with permissions to the S3 Bucket.
   391  	//
   392  	// The following arguments are optional:
   393  	ServiceAccessRoleArn *string `pulumi:"serviceAccessRoleArn"`
   394  	// SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.)
   395  	SslMode *string `pulumi:"sslMode"`
   396  	// Status of the endpoint.
   397  	Status *string `pulumi:"status"`
   398  	// 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.
   399  	Tags map[string]string `pulumi:"tags"`
   400  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   401  	//
   402  	// Deprecated: Please use `tags` instead.
   403  	TagsAll map[string]string `pulumi:"tagsAll"`
   404  	// Column to add with timestamp information to the endpoint data for an Amazon S3 target.
   405  	TimestampColumnName *string `pulumi:"timestampColumnName"`
   406  	// Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.)
   407  	UseCsvNoSupValue *bool `pulumi:"useCsvNoSupValue"`
   408  	// 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`.
   409  	UseTaskStartTimeForFullLoadTimestamp *bool `pulumi:"useTaskStartTimeForFullLoadTimestamp"`
   410  }
   411  
   412  type S3EndpointState struct {
   413  	// Whether to add column name information to the .csv output file. Default is `false`.
   414  	AddColumnName pulumi.BoolPtrInput
   415  	// Whether to add padding. Default is `false`. (Ignored for source endpoints.)
   416  	AddTrailingPaddingCharacter pulumi.BoolPtrInput
   417  	// S3 object prefix.
   418  	BucketFolder pulumi.StringPtrInput
   419  	// S3 bucket name.
   420  	BucketName pulumi.StringPtrInput
   421  	// 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`.
   422  	CannedAclForObjects pulumi.StringPtrInput
   423  	// Whether to write insert and update operations to .csv or .parquet output files. Default is `false`.
   424  	CdcInsertsAndUpdates pulumi.BoolPtrInput
   425  	// Whether to write insert operations to .csv or .parquet output files. Default is `false`.
   426  	CdcInsertsOnly pulumi.BoolPtrInput
   427  	// Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.)
   428  	CdcMaxBatchInterval pulumi.IntPtrInput
   429  	// Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.)
   430  	CdcMinFileSize pulumi.IntPtrInput
   431  	// 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.
   432  	CdcPath pulumi.StringPtrInput
   433  	// ARN for the certificate.
   434  	CertificateArn pulumi.StringPtrInput
   435  	// Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.)
   436  	CompressionType pulumi.StringPtrInput
   437  	// Delimiter used to separate columns in the source files. Default is `,`.
   438  	CsvDelimiter pulumi.StringPtrInput
   439  	// 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.)
   440  	CsvNoSupValue pulumi.StringPtrInput
   441  	// String to as null when writing to the target. (AWS default is `NULL`.)
   442  	CsvNullValue pulumi.StringPtrInput
   443  	// Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`).
   444  	CsvRowDelimiter pulumi.StringPtrInput
   445  	// 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.)
   446  	DataFormat pulumi.StringPtrInput
   447  	// Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.)
   448  	DataPageSize pulumi.IntPtrInput
   449  	// Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.)
   450  	DatePartitionDelimiter pulumi.StringPtrInput
   451  	// Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.)
   452  	DatePartitionEnabled pulumi.BoolPtrInput
   453  	// 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.)
   454  	DatePartitionSequence pulumi.StringPtrInput
   455  	// 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.)
   456  	DatePartitionTimezone pulumi.StringPtrInput
   457  	// Undocumented argument for use as directed by AWS Support.
   458  	DetachTargetOnLobLookupFailureParquet pulumi.BoolPtrInput
   459  	// Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.)
   460  	DictPageSizeLimit pulumi.IntPtrInput
   461  	// Whether to enable statistics for Parquet pages and row groups. Default is `true`.
   462  	EnableStatistics pulumi.BoolPtrInput
   463  	// Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.)
   464  	EncodingType pulumi.StringPtrInput
   465  	// 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.)
   466  	EncryptionMode pulumi.StringPtrInput
   467  	// ARN for the endpoint.
   468  	EndpointArn pulumi.StringPtrInput
   469  	// 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.
   470  	EndpointId pulumi.StringPtrInput
   471  	// Type of endpoint. Valid values are `source`, `target`.
   472  	EndpointType pulumi.StringPtrInput
   473  	// Expanded name for the engine name.
   474  	EngineDisplayName pulumi.StringPtrInput
   475  	// Bucket owner to prevent sniping. Value is an AWS account ID.
   476  	ExpectedBucketOwner pulumi.StringPtrInput
   477  	// Can be used for cross-account validation. Use it in another account with `dms.S3Endpoint` to create the endpoint cross-account.
   478  	ExternalId pulumi.StringPtrInput
   479  	// JSON document that describes how AWS DMS should interpret the data.
   480  	ExternalTableDefinition pulumi.StringPtrInput
   481  	// 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`.
   482  	GlueCatalogGeneration pulumi.BoolPtrInput
   483  	// When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.)
   484  	IgnoreHeaderRows pulumi.IntPtrInput
   485  	// 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`.
   486  	IncludeOpForFullLoad pulumi.BoolPtrInput
   487  	// 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.
   488  	KmsKeyArn pulumi.StringPtrInput
   489  	// 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`.)
   490  	MaxFileSize pulumi.IntPtrInput
   491  	// Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.)
   492  	ParquetTimestampInMillisecond pulumi.BoolPtrInput
   493  	// 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.)
   494  	ParquetVersion pulumi.StringPtrInput
   495  	// Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.)
   496  	PreserveTransactions pulumi.BoolPtrInput
   497  	// For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`.
   498  	Rfc4180 pulumi.BoolPtrInput
   499  	// Number of rows in a row group. (AWS default is `10000`.)
   500  	RowGroupLength pulumi.IntPtrInput
   501  	// When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.)
   502  	ServerSideEncryptionKmsKeyId pulumi.StringPtrInput
   503  	// ARN of the IAM role with permissions to the S3 Bucket.
   504  	//
   505  	// The following arguments are optional:
   506  	ServiceAccessRoleArn pulumi.StringPtrInput
   507  	// SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.)
   508  	SslMode pulumi.StringPtrInput
   509  	// Status of the endpoint.
   510  	Status pulumi.StringPtrInput
   511  	// 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.
   512  	Tags pulumi.StringMapInput
   513  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   514  	//
   515  	// Deprecated: Please use `tags` instead.
   516  	TagsAll pulumi.StringMapInput
   517  	// Column to add with timestamp information to the endpoint data for an Amazon S3 target.
   518  	TimestampColumnName pulumi.StringPtrInput
   519  	// Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.)
   520  	UseCsvNoSupValue pulumi.BoolPtrInput
   521  	// 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`.
   522  	UseTaskStartTimeForFullLoadTimestamp pulumi.BoolPtrInput
   523  }
   524  
   525  func (S3EndpointState) ElementType() reflect.Type {
   526  	return reflect.TypeOf((*s3endpointState)(nil)).Elem()
   527  }
   528  
   529  type s3endpointArgs struct {
   530  	// Whether to add column name information to the .csv output file. Default is `false`.
   531  	AddColumnName *bool `pulumi:"addColumnName"`
   532  	// Whether to add padding. Default is `false`. (Ignored for source endpoints.)
   533  	AddTrailingPaddingCharacter *bool `pulumi:"addTrailingPaddingCharacter"`
   534  	// S3 object prefix.
   535  	BucketFolder *string `pulumi:"bucketFolder"`
   536  	// S3 bucket name.
   537  	BucketName string `pulumi:"bucketName"`
   538  	// 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`.
   539  	CannedAclForObjects *string `pulumi:"cannedAclForObjects"`
   540  	// Whether to write insert and update operations to .csv or .parquet output files. Default is `false`.
   541  	CdcInsertsAndUpdates *bool `pulumi:"cdcInsertsAndUpdates"`
   542  	// Whether to write insert operations to .csv or .parquet output files. Default is `false`.
   543  	CdcInsertsOnly *bool `pulumi:"cdcInsertsOnly"`
   544  	// Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.)
   545  	CdcMaxBatchInterval *int `pulumi:"cdcMaxBatchInterval"`
   546  	// Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.)
   547  	CdcMinFileSize *int `pulumi:"cdcMinFileSize"`
   548  	// 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.
   549  	CdcPath *string `pulumi:"cdcPath"`
   550  	// ARN for the certificate.
   551  	CertificateArn *string `pulumi:"certificateArn"`
   552  	// Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.)
   553  	CompressionType *string `pulumi:"compressionType"`
   554  	// Delimiter used to separate columns in the source files. Default is `,`.
   555  	CsvDelimiter *string `pulumi:"csvDelimiter"`
   556  	// 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.)
   557  	CsvNoSupValue *string `pulumi:"csvNoSupValue"`
   558  	// String to as null when writing to the target. (AWS default is `NULL`.)
   559  	CsvNullValue *string `pulumi:"csvNullValue"`
   560  	// Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`).
   561  	CsvRowDelimiter *string `pulumi:"csvRowDelimiter"`
   562  	// 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.)
   563  	DataFormat *string `pulumi:"dataFormat"`
   564  	// Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.)
   565  	DataPageSize *int `pulumi:"dataPageSize"`
   566  	// Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.)
   567  	DatePartitionDelimiter *string `pulumi:"datePartitionDelimiter"`
   568  	// Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.)
   569  	DatePartitionEnabled *bool `pulumi:"datePartitionEnabled"`
   570  	// 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.)
   571  	DatePartitionSequence *string `pulumi:"datePartitionSequence"`
   572  	// 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.)
   573  	DatePartitionTimezone *string `pulumi:"datePartitionTimezone"`
   574  	// Undocumented argument for use as directed by AWS Support.
   575  	DetachTargetOnLobLookupFailureParquet *bool `pulumi:"detachTargetOnLobLookupFailureParquet"`
   576  	// Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.)
   577  	DictPageSizeLimit *int `pulumi:"dictPageSizeLimit"`
   578  	// Whether to enable statistics for Parquet pages and row groups. Default is `true`.
   579  	EnableStatistics *bool `pulumi:"enableStatistics"`
   580  	// Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.)
   581  	EncodingType *string `pulumi:"encodingType"`
   582  	// 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.)
   583  	EncryptionMode *string `pulumi:"encryptionMode"`
   584  	// 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.
   585  	EndpointId string `pulumi:"endpointId"`
   586  	// Type of endpoint. Valid values are `source`, `target`.
   587  	EndpointType string `pulumi:"endpointType"`
   588  	// Bucket owner to prevent sniping. Value is an AWS account ID.
   589  	ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"`
   590  	// JSON document that describes how AWS DMS should interpret the data.
   591  	ExternalTableDefinition *string `pulumi:"externalTableDefinition"`
   592  	// 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`.
   593  	GlueCatalogGeneration *bool `pulumi:"glueCatalogGeneration"`
   594  	// When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.)
   595  	IgnoreHeaderRows *int `pulumi:"ignoreHeaderRows"`
   596  	// 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`.
   597  	IncludeOpForFullLoad *bool `pulumi:"includeOpForFullLoad"`
   598  	// 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.
   599  	KmsKeyArn *string `pulumi:"kmsKeyArn"`
   600  	// 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`.)
   601  	MaxFileSize *int `pulumi:"maxFileSize"`
   602  	// Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.)
   603  	ParquetTimestampInMillisecond *bool `pulumi:"parquetTimestampInMillisecond"`
   604  	// 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.)
   605  	ParquetVersion *string `pulumi:"parquetVersion"`
   606  	// Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.)
   607  	PreserveTransactions *bool `pulumi:"preserveTransactions"`
   608  	// For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`.
   609  	Rfc4180 *bool `pulumi:"rfc4180"`
   610  	// Number of rows in a row group. (AWS default is `10000`.)
   611  	RowGroupLength *int `pulumi:"rowGroupLength"`
   612  	// When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.)
   613  	ServerSideEncryptionKmsKeyId *string `pulumi:"serverSideEncryptionKmsKeyId"`
   614  	// ARN of the IAM role with permissions to the S3 Bucket.
   615  	//
   616  	// The following arguments are optional:
   617  	ServiceAccessRoleArn string `pulumi:"serviceAccessRoleArn"`
   618  	// SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.)
   619  	SslMode *string `pulumi:"sslMode"`
   620  	// 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.
   621  	Tags map[string]string `pulumi:"tags"`
   622  	// Column to add with timestamp information to the endpoint data for an Amazon S3 target.
   623  	TimestampColumnName *string `pulumi:"timestampColumnName"`
   624  	// Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.)
   625  	UseCsvNoSupValue *bool `pulumi:"useCsvNoSupValue"`
   626  	// 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`.
   627  	UseTaskStartTimeForFullLoadTimestamp *bool `pulumi:"useTaskStartTimeForFullLoadTimestamp"`
   628  }
   629  
   630  // The set of arguments for constructing a S3Endpoint resource.
   631  type S3EndpointArgs struct {
   632  	// Whether to add column name information to the .csv output file. Default is `false`.
   633  	AddColumnName pulumi.BoolPtrInput
   634  	// Whether to add padding. Default is `false`. (Ignored for source endpoints.)
   635  	AddTrailingPaddingCharacter pulumi.BoolPtrInput
   636  	// S3 object prefix.
   637  	BucketFolder pulumi.StringPtrInput
   638  	// S3 bucket name.
   639  	BucketName pulumi.StringInput
   640  	// 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`.
   641  	CannedAclForObjects pulumi.StringPtrInput
   642  	// Whether to write insert and update operations to .csv or .parquet output files. Default is `false`.
   643  	CdcInsertsAndUpdates pulumi.BoolPtrInput
   644  	// Whether to write insert operations to .csv or .parquet output files. Default is `false`.
   645  	CdcInsertsOnly pulumi.BoolPtrInput
   646  	// Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.)
   647  	CdcMaxBatchInterval pulumi.IntPtrInput
   648  	// Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.)
   649  	CdcMinFileSize pulumi.IntPtrInput
   650  	// 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.
   651  	CdcPath pulumi.StringPtrInput
   652  	// ARN for the certificate.
   653  	CertificateArn pulumi.StringPtrInput
   654  	// Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.)
   655  	CompressionType pulumi.StringPtrInput
   656  	// Delimiter used to separate columns in the source files. Default is `,`.
   657  	CsvDelimiter pulumi.StringPtrInput
   658  	// 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.)
   659  	CsvNoSupValue pulumi.StringPtrInput
   660  	// String to as null when writing to the target. (AWS default is `NULL`.)
   661  	CsvNullValue pulumi.StringPtrInput
   662  	// Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`).
   663  	CsvRowDelimiter pulumi.StringPtrInput
   664  	// 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.)
   665  	DataFormat pulumi.StringPtrInput
   666  	// Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.)
   667  	DataPageSize pulumi.IntPtrInput
   668  	// Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.)
   669  	DatePartitionDelimiter pulumi.StringPtrInput
   670  	// Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.)
   671  	DatePartitionEnabled pulumi.BoolPtrInput
   672  	// 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.)
   673  	DatePartitionSequence pulumi.StringPtrInput
   674  	// 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.)
   675  	DatePartitionTimezone pulumi.StringPtrInput
   676  	// Undocumented argument for use as directed by AWS Support.
   677  	DetachTargetOnLobLookupFailureParquet pulumi.BoolPtrInput
   678  	// Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.)
   679  	DictPageSizeLimit pulumi.IntPtrInput
   680  	// Whether to enable statistics for Parquet pages and row groups. Default is `true`.
   681  	EnableStatistics pulumi.BoolPtrInput
   682  	// Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.)
   683  	EncodingType pulumi.StringPtrInput
   684  	// 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.)
   685  	EncryptionMode pulumi.StringPtrInput
   686  	// 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.
   687  	EndpointId pulumi.StringInput
   688  	// Type of endpoint. Valid values are `source`, `target`.
   689  	EndpointType pulumi.StringInput
   690  	// Bucket owner to prevent sniping. Value is an AWS account ID.
   691  	ExpectedBucketOwner pulumi.StringPtrInput
   692  	// JSON document that describes how AWS DMS should interpret the data.
   693  	ExternalTableDefinition pulumi.StringPtrInput
   694  	// 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`.
   695  	GlueCatalogGeneration pulumi.BoolPtrInput
   696  	// When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.)
   697  	IgnoreHeaderRows pulumi.IntPtrInput
   698  	// 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`.
   699  	IncludeOpForFullLoad pulumi.BoolPtrInput
   700  	// 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.
   701  	KmsKeyArn pulumi.StringPtrInput
   702  	// 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`.)
   703  	MaxFileSize pulumi.IntPtrInput
   704  	// Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.)
   705  	ParquetTimestampInMillisecond pulumi.BoolPtrInput
   706  	// 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.)
   707  	ParquetVersion pulumi.StringPtrInput
   708  	// Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.)
   709  	PreserveTransactions pulumi.BoolPtrInput
   710  	// For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`.
   711  	Rfc4180 pulumi.BoolPtrInput
   712  	// Number of rows in a row group. (AWS default is `10000`.)
   713  	RowGroupLength pulumi.IntPtrInput
   714  	// When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.)
   715  	ServerSideEncryptionKmsKeyId pulumi.StringPtrInput
   716  	// ARN of the IAM role with permissions to the S3 Bucket.
   717  	//
   718  	// The following arguments are optional:
   719  	ServiceAccessRoleArn pulumi.StringInput
   720  	// SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.)
   721  	SslMode pulumi.StringPtrInput
   722  	// 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.
   723  	Tags pulumi.StringMapInput
   724  	// Column to add with timestamp information to the endpoint data for an Amazon S3 target.
   725  	TimestampColumnName pulumi.StringPtrInput
   726  	// Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.)
   727  	UseCsvNoSupValue pulumi.BoolPtrInput
   728  	// 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`.
   729  	UseTaskStartTimeForFullLoadTimestamp pulumi.BoolPtrInput
   730  }
   731  
   732  func (S3EndpointArgs) ElementType() reflect.Type {
   733  	return reflect.TypeOf((*s3endpointArgs)(nil)).Elem()
   734  }
   735  
   736  type S3EndpointInput interface {
   737  	pulumi.Input
   738  
   739  	ToS3EndpointOutput() S3EndpointOutput
   740  	ToS3EndpointOutputWithContext(ctx context.Context) S3EndpointOutput
   741  }
   742  
   743  func (*S3Endpoint) ElementType() reflect.Type {
   744  	return reflect.TypeOf((**S3Endpoint)(nil)).Elem()
   745  }
   746  
   747  func (i *S3Endpoint) ToS3EndpointOutput() S3EndpointOutput {
   748  	return i.ToS3EndpointOutputWithContext(context.Background())
   749  }
   750  
   751  func (i *S3Endpoint) ToS3EndpointOutputWithContext(ctx context.Context) S3EndpointOutput {
   752  	return pulumi.ToOutputWithContext(ctx, i).(S3EndpointOutput)
   753  }
   754  
   755  // S3EndpointArrayInput is an input type that accepts S3EndpointArray and S3EndpointArrayOutput values.
   756  // You can construct a concrete instance of `S3EndpointArrayInput` via:
   757  //
   758  //	S3EndpointArray{ S3EndpointArgs{...} }
   759  type S3EndpointArrayInput interface {
   760  	pulumi.Input
   761  
   762  	ToS3EndpointArrayOutput() S3EndpointArrayOutput
   763  	ToS3EndpointArrayOutputWithContext(context.Context) S3EndpointArrayOutput
   764  }
   765  
   766  type S3EndpointArray []S3EndpointInput
   767  
   768  func (S3EndpointArray) ElementType() reflect.Type {
   769  	return reflect.TypeOf((*[]*S3Endpoint)(nil)).Elem()
   770  }
   771  
   772  func (i S3EndpointArray) ToS3EndpointArrayOutput() S3EndpointArrayOutput {
   773  	return i.ToS3EndpointArrayOutputWithContext(context.Background())
   774  }
   775  
   776  func (i S3EndpointArray) ToS3EndpointArrayOutputWithContext(ctx context.Context) S3EndpointArrayOutput {
   777  	return pulumi.ToOutputWithContext(ctx, i).(S3EndpointArrayOutput)
   778  }
   779  
   780  // S3EndpointMapInput is an input type that accepts S3EndpointMap and S3EndpointMapOutput values.
   781  // You can construct a concrete instance of `S3EndpointMapInput` via:
   782  //
   783  //	S3EndpointMap{ "key": S3EndpointArgs{...} }
   784  type S3EndpointMapInput interface {
   785  	pulumi.Input
   786  
   787  	ToS3EndpointMapOutput() S3EndpointMapOutput
   788  	ToS3EndpointMapOutputWithContext(context.Context) S3EndpointMapOutput
   789  }
   790  
   791  type S3EndpointMap map[string]S3EndpointInput
   792  
   793  func (S3EndpointMap) ElementType() reflect.Type {
   794  	return reflect.TypeOf((*map[string]*S3Endpoint)(nil)).Elem()
   795  }
   796  
   797  func (i S3EndpointMap) ToS3EndpointMapOutput() S3EndpointMapOutput {
   798  	return i.ToS3EndpointMapOutputWithContext(context.Background())
   799  }
   800  
   801  func (i S3EndpointMap) ToS3EndpointMapOutputWithContext(ctx context.Context) S3EndpointMapOutput {
   802  	return pulumi.ToOutputWithContext(ctx, i).(S3EndpointMapOutput)
   803  }
   804  
   805  type S3EndpointOutput struct{ *pulumi.OutputState }
   806  
   807  func (S3EndpointOutput) ElementType() reflect.Type {
   808  	return reflect.TypeOf((**S3Endpoint)(nil)).Elem()
   809  }
   810  
   811  func (o S3EndpointOutput) ToS3EndpointOutput() S3EndpointOutput {
   812  	return o
   813  }
   814  
   815  func (o S3EndpointOutput) ToS3EndpointOutputWithContext(ctx context.Context) S3EndpointOutput {
   816  	return o
   817  }
   818  
   819  // Whether to add column name information to the .csv output file. Default is `false`.
   820  func (o S3EndpointOutput) AddColumnName() pulumi.BoolPtrOutput {
   821  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.AddColumnName }).(pulumi.BoolPtrOutput)
   822  }
   823  
   824  // Whether to add padding. Default is `false`. (Ignored for source endpoints.)
   825  func (o S3EndpointOutput) AddTrailingPaddingCharacter() pulumi.BoolPtrOutput {
   826  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.AddTrailingPaddingCharacter }).(pulumi.BoolPtrOutput)
   827  }
   828  
   829  // S3 object prefix.
   830  func (o S3EndpointOutput) BucketFolder() pulumi.StringPtrOutput {
   831  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.BucketFolder }).(pulumi.StringPtrOutput)
   832  }
   833  
   834  // S3 bucket name.
   835  func (o S3EndpointOutput) BucketName() pulumi.StringOutput {
   836  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.BucketName }).(pulumi.StringOutput)
   837  }
   838  
   839  // 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`.
   840  func (o S3EndpointOutput) CannedAclForObjects() pulumi.StringPtrOutput {
   841  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.CannedAclForObjects }).(pulumi.StringPtrOutput)
   842  }
   843  
   844  // Whether to write insert and update operations to .csv or .parquet output files. Default is `false`.
   845  func (o S3EndpointOutput) CdcInsertsAndUpdates() pulumi.BoolPtrOutput {
   846  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.CdcInsertsAndUpdates }).(pulumi.BoolPtrOutput)
   847  }
   848  
   849  // Whether to write insert operations to .csv or .parquet output files. Default is `false`.
   850  func (o S3EndpointOutput) CdcInsertsOnly() pulumi.BoolPtrOutput {
   851  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.CdcInsertsOnly }).(pulumi.BoolPtrOutput)
   852  }
   853  
   854  // Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3. (AWS default is `60`.)
   855  func (o S3EndpointOutput) CdcMaxBatchInterval() pulumi.IntPtrOutput {
   856  	return o.ApplyT(func(v *S3Endpoint) pulumi.IntPtrOutput { return v.CdcMaxBatchInterval }).(pulumi.IntPtrOutput)
   857  }
   858  
   859  // Minimum file size condition as defined in kilobytes to output a file to Amazon S3. (AWS default is 32000 KB.)
   860  func (o S3EndpointOutput) CdcMinFileSize() pulumi.IntPtrOutput {
   861  	return o.ApplyT(func(v *S3Endpoint) pulumi.IntPtrOutput { return v.CdcMinFileSize }).(pulumi.IntPtrOutput)
   862  }
   863  
   864  // 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.
   865  func (o S3EndpointOutput) CdcPath() pulumi.StringPtrOutput {
   866  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.CdcPath }).(pulumi.StringPtrOutput)
   867  }
   868  
   869  // ARN for the certificate.
   870  func (o S3EndpointOutput) CertificateArn() pulumi.StringOutput {
   871  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.CertificateArn }).(pulumi.StringOutput)
   872  }
   873  
   874  // Set to compress target files. Valid values are `GZIP` and `NONE`. Default is `NONE`. (Ignored for source endpoints.)
   875  func (o S3EndpointOutput) CompressionType() pulumi.StringPtrOutput {
   876  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.CompressionType }).(pulumi.StringPtrOutput)
   877  }
   878  
   879  // Delimiter used to separate columns in the source files. Default is `,`.
   880  func (o S3EndpointOutput) CsvDelimiter() pulumi.StringPtrOutput {
   881  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.CsvDelimiter }).(pulumi.StringPtrOutput)
   882  }
   883  
   884  // 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.)
   885  func (o S3EndpointOutput) CsvNoSupValue() pulumi.StringPtrOutput {
   886  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.CsvNoSupValue }).(pulumi.StringPtrOutput)
   887  }
   888  
   889  // String to as null when writing to the target. (AWS default is `NULL`.)
   890  func (o S3EndpointOutput) CsvNullValue() pulumi.StringPtrOutput {
   891  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.CsvNullValue }).(pulumi.StringPtrOutput)
   892  }
   893  
   894  // Delimiter used to separate rows in the source files. Default is newline (_i.e._, `\n`).
   895  func (o S3EndpointOutput) CsvRowDelimiter() pulumi.StringPtrOutput {
   896  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.CsvRowDelimiter }).(pulumi.StringPtrOutput)
   897  }
   898  
   899  // 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.)
   900  func (o S3EndpointOutput) DataFormat() pulumi.StringPtrOutput {
   901  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.DataFormat }).(pulumi.StringPtrOutput)
   902  }
   903  
   904  // Size of one data page in bytes. (AWS default is 1 MiB, _i.e._, `1048576`.)
   905  func (o S3EndpointOutput) DataPageSize() pulumi.IntPtrOutput {
   906  	return o.ApplyT(func(v *S3Endpoint) pulumi.IntPtrOutput { return v.DataPageSize }).(pulumi.IntPtrOutput)
   907  }
   908  
   909  // Date separating delimiter to use during folder partitioning. Valid values are `SLASH`, `UNDERSCORE`, `DASH`, and `NONE`. (AWS default is `SLASH`.) (Ignored for source endpoints.)
   910  func (o S3EndpointOutput) DatePartitionDelimiter() pulumi.StringPtrOutput {
   911  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.DatePartitionDelimiter }).(pulumi.StringPtrOutput)
   912  }
   913  
   914  // Partition S3 bucket folders based on transaction commit dates. Default is `false`. (Ignored for source endpoints.)
   915  func (o S3EndpointOutput) DatePartitionEnabled() pulumi.BoolPtrOutput {
   916  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.DatePartitionEnabled }).(pulumi.BoolPtrOutput)
   917  }
   918  
   919  // 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.)
   920  func (o S3EndpointOutput) DatePartitionSequence() pulumi.StringPtrOutput {
   921  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.DatePartitionSequence }).(pulumi.StringPtrOutput)
   922  }
   923  
   924  // 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.)
   925  func (o S3EndpointOutput) DatePartitionTimezone() pulumi.StringPtrOutput {
   926  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.DatePartitionTimezone }).(pulumi.StringPtrOutput)
   927  }
   928  
   929  // Undocumented argument for use as directed by AWS Support.
   930  func (o S3EndpointOutput) DetachTargetOnLobLookupFailureParquet() pulumi.BoolPtrOutput {
   931  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.DetachTargetOnLobLookupFailureParquet }).(pulumi.BoolPtrOutput)
   932  }
   933  
   934  // Maximum size in bytes of an encoded dictionary page of a column. (AWS default is 1 MiB, _i.e._, `1048576`.)
   935  func (o S3EndpointOutput) DictPageSizeLimit() pulumi.IntPtrOutput {
   936  	return o.ApplyT(func(v *S3Endpoint) pulumi.IntPtrOutput { return v.DictPageSizeLimit }).(pulumi.IntPtrOutput)
   937  }
   938  
   939  // Whether to enable statistics for Parquet pages and row groups. Default is `true`.
   940  func (o S3EndpointOutput) EnableStatistics() pulumi.BoolPtrOutput {
   941  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.EnableStatistics }).(pulumi.BoolPtrOutput)
   942  }
   943  
   944  // Type of encoding to use. Value values are `rleDictionary`, `plain`, and `plainDictionary`. (AWS default is `rleDictionary`.)
   945  func (o S3EndpointOutput) EncodingType() pulumi.StringPtrOutput {
   946  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.EncodingType }).(pulumi.StringPtrOutput)
   947  }
   948  
   949  // 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.)
   950  func (o S3EndpointOutput) EncryptionMode() pulumi.StringPtrOutput {
   951  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.EncryptionMode }).(pulumi.StringPtrOutput)
   952  }
   953  
   954  // ARN for the endpoint.
   955  func (o S3EndpointOutput) EndpointArn() pulumi.StringOutput {
   956  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.EndpointArn }).(pulumi.StringOutput)
   957  }
   958  
   959  // 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.
   960  func (o S3EndpointOutput) EndpointId() pulumi.StringOutput {
   961  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.EndpointId }).(pulumi.StringOutput)
   962  }
   963  
   964  // Type of endpoint. Valid values are `source`, `target`.
   965  func (o S3EndpointOutput) EndpointType() pulumi.StringOutput {
   966  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.EndpointType }).(pulumi.StringOutput)
   967  }
   968  
   969  // Expanded name for the engine name.
   970  func (o S3EndpointOutput) EngineDisplayName() pulumi.StringOutput {
   971  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.EngineDisplayName }).(pulumi.StringOutput)
   972  }
   973  
   974  // Bucket owner to prevent sniping. Value is an AWS account ID.
   975  func (o S3EndpointOutput) ExpectedBucketOwner() pulumi.StringPtrOutput {
   976  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput)
   977  }
   978  
   979  // Can be used for cross-account validation. Use it in another account with `dms.S3Endpoint` to create the endpoint cross-account.
   980  func (o S3EndpointOutput) ExternalId() pulumi.StringOutput {
   981  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.ExternalId }).(pulumi.StringOutput)
   982  }
   983  
   984  // JSON document that describes how AWS DMS should interpret the data.
   985  func (o S3EndpointOutput) ExternalTableDefinition() pulumi.StringPtrOutput {
   986  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.ExternalTableDefinition }).(pulumi.StringPtrOutput)
   987  }
   988  
   989  // 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`.
   990  func (o S3EndpointOutput) GlueCatalogGeneration() pulumi.BoolPtrOutput {
   991  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.GlueCatalogGeneration }).(pulumi.BoolPtrOutput)
   992  }
   993  
   994  // When this value is set to `1`, DMS ignores the first row header in a .csv file. (AWS default is `0`.)
   995  func (o S3EndpointOutput) IgnoreHeaderRows() pulumi.IntPtrOutput {
   996  	return o.ApplyT(func(v *S3Endpoint) pulumi.IntPtrOutput { return v.IgnoreHeaderRows }).(pulumi.IntPtrOutput)
   997  }
   998  
   999  // 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`.
  1000  func (o S3EndpointOutput) IncludeOpForFullLoad() pulumi.BoolPtrOutput {
  1001  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.IncludeOpForFullLoad }).(pulumi.BoolPtrOutput)
  1002  }
  1003  
  1004  // 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.
  1005  func (o S3EndpointOutput) KmsKeyArn() pulumi.StringOutput {
  1006  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.KmsKeyArn }).(pulumi.StringOutput)
  1007  }
  1008  
  1009  // 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`.)
  1010  func (o S3EndpointOutput) MaxFileSize() pulumi.IntPtrOutput {
  1011  	return o.ApplyT(func(v *S3Endpoint) pulumi.IntPtrOutput { return v.MaxFileSize }).(pulumi.IntPtrOutput)
  1012  }
  1013  
  1014  // Specifies the precision of any TIMESTAMP column values written to an S3 object file in .parquet format. Default is `false`. (Ignored for source endpoints.)
  1015  func (o S3EndpointOutput) ParquetTimestampInMillisecond() pulumi.BoolPtrOutput {
  1016  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.ParquetTimestampInMillisecond }).(pulumi.BoolPtrOutput)
  1017  }
  1018  
  1019  // 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.)
  1020  func (o S3EndpointOutput) ParquetVersion() pulumi.StringPtrOutput {
  1021  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.ParquetVersion }).(pulumi.StringPtrOutput)
  1022  }
  1023  
  1024  // Whether DMS saves the transaction order for a CDC load on the S3 target specified by `cdcPath`. Default is `false`. (Ignored for source endpoints.)
  1025  func (o S3EndpointOutput) PreserveTransactions() pulumi.BoolPtrOutput {
  1026  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.PreserveTransactions }).(pulumi.BoolPtrOutput)
  1027  }
  1028  
  1029  // For an S3 source, whether each leading double quotation mark has to be followed by an ending double quotation mark. Default is `true`.
  1030  func (o S3EndpointOutput) Rfc4180() pulumi.BoolPtrOutput {
  1031  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.Rfc4180 }).(pulumi.BoolPtrOutput)
  1032  }
  1033  
  1034  // Number of rows in a row group. (AWS default is `10000`.)
  1035  func (o S3EndpointOutput) RowGroupLength() pulumi.IntPtrOutput {
  1036  	return o.ApplyT(func(v *S3Endpoint) pulumi.IntPtrOutput { return v.RowGroupLength }).(pulumi.IntPtrOutput)
  1037  }
  1038  
  1039  // When `encryptionMode` is `SSE_KMS`, ARN for the AWS KMS key. (Ignored for source endpoints -- only `SSE_S3` `encryptionMode` is valid.)
  1040  func (o S3EndpointOutput) ServerSideEncryptionKmsKeyId() pulumi.StringPtrOutput {
  1041  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.ServerSideEncryptionKmsKeyId }).(pulumi.StringPtrOutput)
  1042  }
  1043  
  1044  // ARN of the IAM role with permissions to the S3 Bucket.
  1045  //
  1046  // The following arguments are optional:
  1047  func (o S3EndpointOutput) ServiceAccessRoleArn() pulumi.StringOutput {
  1048  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.ServiceAccessRoleArn }).(pulumi.StringOutput)
  1049  }
  1050  
  1051  // SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full`. (AWS default is `none`.)
  1052  func (o S3EndpointOutput) SslMode() pulumi.StringOutput {
  1053  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.SslMode }).(pulumi.StringOutput)
  1054  }
  1055  
  1056  // Status of the endpoint.
  1057  func (o S3EndpointOutput) Status() pulumi.StringOutput {
  1058  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
  1059  }
  1060  
  1061  // 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.
  1062  func (o S3EndpointOutput) Tags() pulumi.StringMapOutput {
  1063  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
  1064  }
  1065  
  1066  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
  1067  //
  1068  // Deprecated: Please use `tags` instead.
  1069  func (o S3EndpointOutput) TagsAll() pulumi.StringMapOutput {
  1070  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
  1071  }
  1072  
  1073  // Column to add with timestamp information to the endpoint data for an Amazon S3 target.
  1074  func (o S3EndpointOutput) TimestampColumnName() pulumi.StringPtrOutput {
  1075  	return o.ApplyT(func(v *S3Endpoint) pulumi.StringPtrOutput { return v.TimestampColumnName }).(pulumi.StringPtrOutput)
  1076  }
  1077  
  1078  // Whether to use `csvNoSupValue` for columns not included in the supplemental log. (Ignored for source endpoints.)
  1079  func (o S3EndpointOutput) UseCsvNoSupValue() pulumi.BoolPtrOutput {
  1080  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.UseCsvNoSupValue }).(pulumi.BoolPtrOutput)
  1081  }
  1082  
  1083  // 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`.
  1084  func (o S3EndpointOutput) UseTaskStartTimeForFullLoadTimestamp() pulumi.BoolPtrOutput {
  1085  	return o.ApplyT(func(v *S3Endpoint) pulumi.BoolPtrOutput { return v.UseTaskStartTimeForFullLoadTimestamp }).(pulumi.BoolPtrOutput)
  1086  }
  1087  
  1088  type S3EndpointArrayOutput struct{ *pulumi.OutputState }
  1089  
  1090  func (S3EndpointArrayOutput) ElementType() reflect.Type {
  1091  	return reflect.TypeOf((*[]*S3Endpoint)(nil)).Elem()
  1092  }
  1093  
  1094  func (o S3EndpointArrayOutput) ToS3EndpointArrayOutput() S3EndpointArrayOutput {
  1095  	return o
  1096  }
  1097  
  1098  func (o S3EndpointArrayOutput) ToS3EndpointArrayOutputWithContext(ctx context.Context) S3EndpointArrayOutput {
  1099  	return o
  1100  }
  1101  
  1102  func (o S3EndpointArrayOutput) Index(i pulumi.IntInput) S3EndpointOutput {
  1103  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *S3Endpoint {
  1104  		return vs[0].([]*S3Endpoint)[vs[1].(int)]
  1105  	}).(S3EndpointOutput)
  1106  }
  1107  
  1108  type S3EndpointMapOutput struct{ *pulumi.OutputState }
  1109  
  1110  func (S3EndpointMapOutput) ElementType() reflect.Type {
  1111  	return reflect.TypeOf((*map[string]*S3Endpoint)(nil)).Elem()
  1112  }
  1113  
  1114  func (o S3EndpointMapOutput) ToS3EndpointMapOutput() S3EndpointMapOutput {
  1115  	return o
  1116  }
  1117  
  1118  func (o S3EndpointMapOutput) ToS3EndpointMapOutputWithContext(ctx context.Context) S3EndpointMapOutput {
  1119  	return o
  1120  }
  1121  
  1122  func (o S3EndpointMapOutput) MapIndex(k pulumi.StringInput) S3EndpointOutput {
  1123  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *S3Endpoint {
  1124  		return vs[0].(map[string]*S3Endpoint)[vs[1].(string)]
  1125  	}).(S3EndpointOutput)
  1126  }
  1127  
  1128  func init() {
  1129  	pulumi.RegisterInputType(reflect.TypeOf((*S3EndpointInput)(nil)).Elem(), &S3Endpoint{})
  1130  	pulumi.RegisterInputType(reflect.TypeOf((*S3EndpointArrayInput)(nil)).Elem(), S3EndpointArray{})
  1131  	pulumi.RegisterInputType(reflect.TypeOf((*S3EndpointMapInput)(nil)).Elem(), S3EndpointMap{})
  1132  	pulumi.RegisterOutputType(S3EndpointOutput{})
  1133  	pulumi.RegisterOutputType(S3EndpointArrayOutput{})
  1134  	pulumi.RegisterOutputType(S3EndpointMapOutput{})
  1135  }