github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/dms/endpoint.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) endpoint resource. DMS endpoints can be created, updated, deleted, and imported. 16 // 17 // > **Note:** All arguments including the password will be stored in the raw state as plain-text. > **Note:** The `s3Settings` argument is deprecated, may not be maintained, and will be removed in a future version. Use the `dms.S3Endpoint` resource instead. 18 // 19 // ## Example Usage 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dms" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // // Create a new endpoint 35 // _, err := dms.NewEndpoint(ctx, "test", &dms.EndpointArgs{ 36 // CertificateArn: pulumi.String("arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012"), 37 // DatabaseName: pulumi.String("test"), 38 // EndpointId: pulumi.String("test-dms-endpoint-tf"), 39 // EndpointType: pulumi.String("source"), 40 // EngineName: pulumi.String("aurora"), 41 // ExtraConnectionAttributes: pulumi.String(""), 42 // KmsKeyArn: pulumi.String("arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012"), 43 // Password: pulumi.String("test"), 44 // Port: pulumi.Int(3306), 45 // ServerName: pulumi.String("test"), 46 // SslMode: pulumi.String("none"), 47 // Tags: pulumi.StringMap{ 48 // "Name": pulumi.String("test"), 49 // }, 50 // Username: pulumi.String("test"), 51 // }) 52 // if err != nil { 53 // return err 54 // } 55 // return nil 56 // }) 57 // } 58 // 59 // ``` 60 // <!--End PulumiCodeChooser --> 61 // 62 // ## Import 63 // 64 // Using `pulumi import`, import endpoints using the `endpoint_id`. For example: 65 // 66 // ```sh 67 // $ pulumi import aws:dms/endpoint:Endpoint test test-dms-endpoint-tf 68 // ``` 69 type Endpoint struct { 70 pulumi.CustomResourceState 71 72 // ARN for the certificate. 73 CertificateArn pulumi.StringOutput `pulumi:"certificateArn"` 74 // Name of the endpoint database. 75 DatabaseName pulumi.StringPtrOutput `pulumi:"databaseName"` 76 // Configuration block for OpenSearch settings. See below. 77 ElasticsearchSettings EndpointElasticsearchSettingsPtrOutput `pulumi:"elasticsearchSettings"` 78 // ARN for the endpoint. 79 EndpointArn pulumi.StringOutput `pulumi:"endpointArn"` 80 // 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. 81 EndpointId pulumi.StringOutput `pulumi:"endpointId"` 82 // Type of endpoint. Valid values are `source`, `target`. 83 EndpointType pulumi.StringOutput `pulumi:"endpointType"` 84 // Type of engine for the endpoint. Valid values are `aurora`, `aurora-postgresql`, `azuredb`, `azure-sql-managed-instance`, `babelfish`, `db2`, `db2-zos`, `docdb`, `dynamodb`, `elasticsearch`, `kafka`, `kinesis`, `mariadb`, `mongodb`, `mysql`, `opensearch`, `oracle`, `postgres`, `redshift`, `s3`, `sqlserver`, `sybase`. Please note that some of engine names are available only for `target` endpoint type (e.g. `redshift`). 85 EngineName pulumi.StringOutput `pulumi:"engineName"` 86 // Additional attributes associated with the connection. For available attributes for a `source` Endpoint, see [Sources for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html). For available attributes for a `target` Endpoint, see [Targets for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html). 87 ExtraConnectionAttributes pulumi.StringOutput `pulumi:"extraConnectionAttributes"` 88 // Configuration block for Kafka settings. See below. 89 KafkaSettings EndpointKafkaSettingsPtrOutput `pulumi:"kafkaSettings"` 90 // Configuration block for Kinesis settings. See below. 91 KinesisSettings EndpointKinesisSettingsPtrOutput `pulumi:"kinesisSettings"` 92 // 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. To encrypt an S3 target with a KMS Key, use the parameter `s3_settings.server_side_encryption_kms_key_id`. When `engineName` is `redshift`, `kmsKeyArn` is the KMS Key for the Redshift target and the parameter `redshift_settings.server_side_encryption_kms_key_id` encrypts the S3 intermediate storage. 93 // 94 // The following arguments are optional: 95 KmsKeyArn pulumi.StringOutput `pulumi:"kmsKeyArn"` 96 // Configuration block for MongoDB settings. See below. 97 MongodbSettings EndpointMongodbSettingsPtrOutput `pulumi:"mongodbSettings"` 98 // Password to be used to login to the endpoint database. 99 Password pulumi.StringPtrOutput `pulumi:"password"` 100 PauseReplicationTasks pulumi.BoolPtrOutput `pulumi:"pauseReplicationTasks"` 101 // Port used by the endpoint database. 102 Port pulumi.IntPtrOutput `pulumi:"port"` 103 // Configuration block for Postgres settings. See below. 104 PostgresSettings EndpointPostgresSettingsPtrOutput `pulumi:"postgresSettings"` 105 RedisSettings EndpointRedisSettingsPtrOutput `pulumi:"redisSettings"` 106 // Configuration block for Redshift settings. See below. 107 RedshiftSettings EndpointRedshiftSettingsOutput `pulumi:"redshiftSettings"` 108 // (**Deprecated**, use the `dms.S3Endpoint` resource instead) Configuration block for S3 settings. See below. 109 S3Settings EndpointS3SettingsPtrOutput `pulumi:"s3Settings"` 110 // ARN of the IAM role that specifies AWS DMS as the trusted entity and has the required permissions to access the value in the Secrets Manager secret referred to by `secretsManagerArn`. The role must allow the `iam:PassRole` action. 111 // 112 // > **Note:** You can specify one of two sets of values for these permissions. You can specify the values for this setting and `secretsManagerArn`. Or you can specify clear-text values for `username`, `password` , `serverName`, and `port`. You can't specify both. 113 SecretsManagerAccessRoleArn pulumi.StringPtrOutput `pulumi:"secretsManagerAccessRoleArn"` 114 // Full ARN, partial ARN, or friendly name of the Secrets Manager secret that contains the endpoint connection details. Supported only when `engineName` is `aurora`, `aurora-postgresql`, `mariadb`, `mongodb`, `mysql`, `oracle`, `postgres`, `redshift`, or `sqlserver`. 115 SecretsManagerArn pulumi.StringPtrOutput `pulumi:"secretsManagerArn"` 116 // Host name of the server. 117 ServerName pulumi.StringPtrOutput `pulumi:"serverName"` 118 // ARN used by the service access IAM role for dynamodb endpoints. 119 ServiceAccessRole pulumi.StringPtrOutput `pulumi:"serviceAccessRole"` 120 // SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full` 121 SslMode pulumi.StringOutput `pulumi:"sslMode"` 122 // 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. 123 Tags pulumi.StringMapOutput `pulumi:"tags"` 124 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 125 // 126 // Deprecated: Please use `tags` instead. 127 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 128 // User name to be used to login to the endpoint database. 129 Username pulumi.StringPtrOutput `pulumi:"username"` 130 } 131 132 // NewEndpoint registers a new resource with the given unique name, arguments, and options. 133 func NewEndpoint(ctx *pulumi.Context, 134 name string, args *EndpointArgs, opts ...pulumi.ResourceOption) (*Endpoint, error) { 135 if args == nil { 136 return nil, errors.New("missing one or more required arguments") 137 } 138 139 if args.EndpointId == nil { 140 return nil, errors.New("invalid value for required argument 'EndpointId'") 141 } 142 if args.EndpointType == nil { 143 return nil, errors.New("invalid value for required argument 'EndpointType'") 144 } 145 if args.EngineName == nil { 146 return nil, errors.New("invalid value for required argument 'EngineName'") 147 } 148 if args.Password != nil { 149 args.Password = pulumi.ToSecret(args.Password).(pulumi.StringPtrInput) 150 } 151 secrets := pulumi.AdditionalSecretOutputs([]string{ 152 "password", 153 }) 154 opts = append(opts, secrets) 155 opts = internal.PkgResourceDefaultOpts(opts) 156 var resource Endpoint 157 err := ctx.RegisterResource("aws:dms/endpoint:Endpoint", name, args, &resource, opts...) 158 if err != nil { 159 return nil, err 160 } 161 return &resource, nil 162 } 163 164 // GetEndpoint gets an existing Endpoint resource's state with the given name, ID, and optional 165 // state properties that are used to uniquely qualify the lookup (nil if not required). 166 func GetEndpoint(ctx *pulumi.Context, 167 name string, id pulumi.IDInput, state *EndpointState, opts ...pulumi.ResourceOption) (*Endpoint, error) { 168 var resource Endpoint 169 err := ctx.ReadResource("aws:dms/endpoint:Endpoint", name, id, state, &resource, opts...) 170 if err != nil { 171 return nil, err 172 } 173 return &resource, nil 174 } 175 176 // Input properties used for looking up and filtering Endpoint resources. 177 type endpointState struct { 178 // ARN for the certificate. 179 CertificateArn *string `pulumi:"certificateArn"` 180 // Name of the endpoint database. 181 DatabaseName *string `pulumi:"databaseName"` 182 // Configuration block for OpenSearch settings. See below. 183 ElasticsearchSettings *EndpointElasticsearchSettings `pulumi:"elasticsearchSettings"` 184 // ARN for the endpoint. 185 EndpointArn *string `pulumi:"endpointArn"` 186 // 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. 187 EndpointId *string `pulumi:"endpointId"` 188 // Type of endpoint. Valid values are `source`, `target`. 189 EndpointType *string `pulumi:"endpointType"` 190 // Type of engine for the endpoint. Valid values are `aurora`, `aurora-postgresql`, `azuredb`, `azure-sql-managed-instance`, `babelfish`, `db2`, `db2-zos`, `docdb`, `dynamodb`, `elasticsearch`, `kafka`, `kinesis`, `mariadb`, `mongodb`, `mysql`, `opensearch`, `oracle`, `postgres`, `redshift`, `s3`, `sqlserver`, `sybase`. Please note that some of engine names are available only for `target` endpoint type (e.g. `redshift`). 191 EngineName *string `pulumi:"engineName"` 192 // Additional attributes associated with the connection. For available attributes for a `source` Endpoint, see [Sources for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html). For available attributes for a `target` Endpoint, see [Targets for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html). 193 ExtraConnectionAttributes *string `pulumi:"extraConnectionAttributes"` 194 // Configuration block for Kafka settings. See below. 195 KafkaSettings *EndpointKafkaSettings `pulumi:"kafkaSettings"` 196 // Configuration block for Kinesis settings. See below. 197 KinesisSettings *EndpointKinesisSettings `pulumi:"kinesisSettings"` 198 // 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. To encrypt an S3 target with a KMS Key, use the parameter `s3_settings.server_side_encryption_kms_key_id`. When `engineName` is `redshift`, `kmsKeyArn` is the KMS Key for the Redshift target and the parameter `redshift_settings.server_side_encryption_kms_key_id` encrypts the S3 intermediate storage. 199 // 200 // The following arguments are optional: 201 KmsKeyArn *string `pulumi:"kmsKeyArn"` 202 // Configuration block for MongoDB settings. See below. 203 MongodbSettings *EndpointMongodbSettings `pulumi:"mongodbSettings"` 204 // Password to be used to login to the endpoint database. 205 Password *string `pulumi:"password"` 206 PauseReplicationTasks *bool `pulumi:"pauseReplicationTasks"` 207 // Port used by the endpoint database. 208 Port *int `pulumi:"port"` 209 // Configuration block for Postgres settings. See below. 210 PostgresSettings *EndpointPostgresSettings `pulumi:"postgresSettings"` 211 RedisSettings *EndpointRedisSettings `pulumi:"redisSettings"` 212 // Configuration block for Redshift settings. See below. 213 RedshiftSettings *EndpointRedshiftSettings `pulumi:"redshiftSettings"` 214 // (**Deprecated**, use the `dms.S3Endpoint` resource instead) Configuration block for S3 settings. See below. 215 S3Settings *EndpointS3Settings `pulumi:"s3Settings"` 216 // ARN of the IAM role that specifies AWS DMS as the trusted entity and has the required permissions to access the value in the Secrets Manager secret referred to by `secretsManagerArn`. The role must allow the `iam:PassRole` action. 217 // 218 // > **Note:** You can specify one of two sets of values for these permissions. You can specify the values for this setting and `secretsManagerArn`. Or you can specify clear-text values for `username`, `password` , `serverName`, and `port`. You can't specify both. 219 SecretsManagerAccessRoleArn *string `pulumi:"secretsManagerAccessRoleArn"` 220 // Full ARN, partial ARN, or friendly name of the Secrets Manager secret that contains the endpoint connection details. Supported only when `engineName` is `aurora`, `aurora-postgresql`, `mariadb`, `mongodb`, `mysql`, `oracle`, `postgres`, `redshift`, or `sqlserver`. 221 SecretsManagerArn *string `pulumi:"secretsManagerArn"` 222 // Host name of the server. 223 ServerName *string `pulumi:"serverName"` 224 // ARN used by the service access IAM role for dynamodb endpoints. 225 ServiceAccessRole *string `pulumi:"serviceAccessRole"` 226 // SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full` 227 SslMode *string `pulumi:"sslMode"` 228 // 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. 229 Tags map[string]string `pulumi:"tags"` 230 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 231 // 232 // Deprecated: Please use `tags` instead. 233 TagsAll map[string]string `pulumi:"tagsAll"` 234 // User name to be used to login to the endpoint database. 235 Username *string `pulumi:"username"` 236 } 237 238 type EndpointState struct { 239 // ARN for the certificate. 240 CertificateArn pulumi.StringPtrInput 241 // Name of the endpoint database. 242 DatabaseName pulumi.StringPtrInput 243 // Configuration block for OpenSearch settings. See below. 244 ElasticsearchSettings EndpointElasticsearchSettingsPtrInput 245 // ARN for the endpoint. 246 EndpointArn pulumi.StringPtrInput 247 // 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. 248 EndpointId pulumi.StringPtrInput 249 // Type of endpoint. Valid values are `source`, `target`. 250 EndpointType pulumi.StringPtrInput 251 // Type of engine for the endpoint. Valid values are `aurora`, `aurora-postgresql`, `azuredb`, `azure-sql-managed-instance`, `babelfish`, `db2`, `db2-zos`, `docdb`, `dynamodb`, `elasticsearch`, `kafka`, `kinesis`, `mariadb`, `mongodb`, `mysql`, `opensearch`, `oracle`, `postgres`, `redshift`, `s3`, `sqlserver`, `sybase`. Please note that some of engine names are available only for `target` endpoint type (e.g. `redshift`). 252 EngineName pulumi.StringPtrInput 253 // Additional attributes associated with the connection. For available attributes for a `source` Endpoint, see [Sources for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html). For available attributes for a `target` Endpoint, see [Targets for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html). 254 ExtraConnectionAttributes pulumi.StringPtrInput 255 // Configuration block for Kafka settings. See below. 256 KafkaSettings EndpointKafkaSettingsPtrInput 257 // Configuration block for Kinesis settings. See below. 258 KinesisSettings EndpointKinesisSettingsPtrInput 259 // 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. To encrypt an S3 target with a KMS Key, use the parameter `s3_settings.server_side_encryption_kms_key_id`. When `engineName` is `redshift`, `kmsKeyArn` is the KMS Key for the Redshift target and the parameter `redshift_settings.server_side_encryption_kms_key_id` encrypts the S3 intermediate storage. 260 // 261 // The following arguments are optional: 262 KmsKeyArn pulumi.StringPtrInput 263 // Configuration block for MongoDB settings. See below. 264 MongodbSettings EndpointMongodbSettingsPtrInput 265 // Password to be used to login to the endpoint database. 266 Password pulumi.StringPtrInput 267 PauseReplicationTasks pulumi.BoolPtrInput 268 // Port used by the endpoint database. 269 Port pulumi.IntPtrInput 270 // Configuration block for Postgres settings. See below. 271 PostgresSettings EndpointPostgresSettingsPtrInput 272 RedisSettings EndpointRedisSettingsPtrInput 273 // Configuration block for Redshift settings. See below. 274 RedshiftSettings EndpointRedshiftSettingsPtrInput 275 // (**Deprecated**, use the `dms.S3Endpoint` resource instead) Configuration block for S3 settings. See below. 276 S3Settings EndpointS3SettingsPtrInput 277 // ARN of the IAM role that specifies AWS DMS as the trusted entity and has the required permissions to access the value in the Secrets Manager secret referred to by `secretsManagerArn`. The role must allow the `iam:PassRole` action. 278 // 279 // > **Note:** You can specify one of two sets of values for these permissions. You can specify the values for this setting and `secretsManagerArn`. Or you can specify clear-text values for `username`, `password` , `serverName`, and `port`. You can't specify both. 280 SecretsManagerAccessRoleArn pulumi.StringPtrInput 281 // Full ARN, partial ARN, or friendly name of the Secrets Manager secret that contains the endpoint connection details. Supported only when `engineName` is `aurora`, `aurora-postgresql`, `mariadb`, `mongodb`, `mysql`, `oracle`, `postgres`, `redshift`, or `sqlserver`. 282 SecretsManagerArn pulumi.StringPtrInput 283 // Host name of the server. 284 ServerName pulumi.StringPtrInput 285 // ARN used by the service access IAM role for dynamodb endpoints. 286 ServiceAccessRole pulumi.StringPtrInput 287 // SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full` 288 SslMode pulumi.StringPtrInput 289 // 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. 290 Tags pulumi.StringMapInput 291 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 292 // 293 // Deprecated: Please use `tags` instead. 294 TagsAll pulumi.StringMapInput 295 // User name to be used to login to the endpoint database. 296 Username pulumi.StringPtrInput 297 } 298 299 func (EndpointState) ElementType() reflect.Type { 300 return reflect.TypeOf((*endpointState)(nil)).Elem() 301 } 302 303 type endpointArgs struct { 304 // ARN for the certificate. 305 CertificateArn *string `pulumi:"certificateArn"` 306 // Name of the endpoint database. 307 DatabaseName *string `pulumi:"databaseName"` 308 // Configuration block for OpenSearch settings. See below. 309 ElasticsearchSettings *EndpointElasticsearchSettings `pulumi:"elasticsearchSettings"` 310 // 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. 311 EndpointId string `pulumi:"endpointId"` 312 // Type of endpoint. Valid values are `source`, `target`. 313 EndpointType string `pulumi:"endpointType"` 314 // Type of engine for the endpoint. Valid values are `aurora`, `aurora-postgresql`, `azuredb`, `azure-sql-managed-instance`, `babelfish`, `db2`, `db2-zos`, `docdb`, `dynamodb`, `elasticsearch`, `kafka`, `kinesis`, `mariadb`, `mongodb`, `mysql`, `opensearch`, `oracle`, `postgres`, `redshift`, `s3`, `sqlserver`, `sybase`. Please note that some of engine names are available only for `target` endpoint type (e.g. `redshift`). 315 EngineName string `pulumi:"engineName"` 316 // Additional attributes associated with the connection. For available attributes for a `source` Endpoint, see [Sources for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html). For available attributes for a `target` Endpoint, see [Targets for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html). 317 ExtraConnectionAttributes *string `pulumi:"extraConnectionAttributes"` 318 // Configuration block for Kafka settings. See below. 319 KafkaSettings *EndpointKafkaSettings `pulumi:"kafkaSettings"` 320 // Configuration block for Kinesis settings. See below. 321 KinesisSettings *EndpointKinesisSettings `pulumi:"kinesisSettings"` 322 // 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. To encrypt an S3 target with a KMS Key, use the parameter `s3_settings.server_side_encryption_kms_key_id`. When `engineName` is `redshift`, `kmsKeyArn` is the KMS Key for the Redshift target and the parameter `redshift_settings.server_side_encryption_kms_key_id` encrypts the S3 intermediate storage. 323 // 324 // The following arguments are optional: 325 KmsKeyArn *string `pulumi:"kmsKeyArn"` 326 // Configuration block for MongoDB settings. See below. 327 MongodbSettings *EndpointMongodbSettings `pulumi:"mongodbSettings"` 328 // Password to be used to login to the endpoint database. 329 Password *string `pulumi:"password"` 330 PauseReplicationTasks *bool `pulumi:"pauseReplicationTasks"` 331 // Port used by the endpoint database. 332 Port *int `pulumi:"port"` 333 // Configuration block for Postgres settings. See below. 334 PostgresSettings *EndpointPostgresSettings `pulumi:"postgresSettings"` 335 RedisSettings *EndpointRedisSettings `pulumi:"redisSettings"` 336 // Configuration block for Redshift settings. See below. 337 RedshiftSettings *EndpointRedshiftSettings `pulumi:"redshiftSettings"` 338 // (**Deprecated**, use the `dms.S3Endpoint` resource instead) Configuration block for S3 settings. See below. 339 S3Settings *EndpointS3Settings `pulumi:"s3Settings"` 340 // ARN of the IAM role that specifies AWS DMS as the trusted entity and has the required permissions to access the value in the Secrets Manager secret referred to by `secretsManagerArn`. The role must allow the `iam:PassRole` action. 341 // 342 // > **Note:** You can specify one of two sets of values for these permissions. You can specify the values for this setting and `secretsManagerArn`. Or you can specify clear-text values for `username`, `password` , `serverName`, and `port`. You can't specify both. 343 SecretsManagerAccessRoleArn *string `pulumi:"secretsManagerAccessRoleArn"` 344 // Full ARN, partial ARN, or friendly name of the Secrets Manager secret that contains the endpoint connection details. Supported only when `engineName` is `aurora`, `aurora-postgresql`, `mariadb`, `mongodb`, `mysql`, `oracle`, `postgres`, `redshift`, or `sqlserver`. 345 SecretsManagerArn *string `pulumi:"secretsManagerArn"` 346 // Host name of the server. 347 ServerName *string `pulumi:"serverName"` 348 // ARN used by the service access IAM role for dynamodb endpoints. 349 ServiceAccessRole *string `pulumi:"serviceAccessRole"` 350 // SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full` 351 SslMode *string `pulumi:"sslMode"` 352 // 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. 353 Tags map[string]string `pulumi:"tags"` 354 // User name to be used to login to the endpoint database. 355 Username *string `pulumi:"username"` 356 } 357 358 // The set of arguments for constructing a Endpoint resource. 359 type EndpointArgs struct { 360 // ARN for the certificate. 361 CertificateArn pulumi.StringPtrInput 362 // Name of the endpoint database. 363 DatabaseName pulumi.StringPtrInput 364 // Configuration block for OpenSearch settings. See below. 365 ElasticsearchSettings EndpointElasticsearchSettingsPtrInput 366 // 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. 367 EndpointId pulumi.StringInput 368 // Type of endpoint. Valid values are `source`, `target`. 369 EndpointType pulumi.StringInput 370 // Type of engine for the endpoint. Valid values are `aurora`, `aurora-postgresql`, `azuredb`, `azure-sql-managed-instance`, `babelfish`, `db2`, `db2-zos`, `docdb`, `dynamodb`, `elasticsearch`, `kafka`, `kinesis`, `mariadb`, `mongodb`, `mysql`, `opensearch`, `oracle`, `postgres`, `redshift`, `s3`, `sqlserver`, `sybase`. Please note that some of engine names are available only for `target` endpoint type (e.g. `redshift`). 371 EngineName pulumi.StringInput 372 // Additional attributes associated with the connection. For available attributes for a `source` Endpoint, see [Sources for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html). For available attributes for a `target` Endpoint, see [Targets for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html). 373 ExtraConnectionAttributes pulumi.StringPtrInput 374 // Configuration block for Kafka settings. See below. 375 KafkaSettings EndpointKafkaSettingsPtrInput 376 // Configuration block for Kinesis settings. See below. 377 KinesisSettings EndpointKinesisSettingsPtrInput 378 // 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. To encrypt an S3 target with a KMS Key, use the parameter `s3_settings.server_side_encryption_kms_key_id`. When `engineName` is `redshift`, `kmsKeyArn` is the KMS Key for the Redshift target and the parameter `redshift_settings.server_side_encryption_kms_key_id` encrypts the S3 intermediate storage. 379 // 380 // The following arguments are optional: 381 KmsKeyArn pulumi.StringPtrInput 382 // Configuration block for MongoDB settings. See below. 383 MongodbSettings EndpointMongodbSettingsPtrInput 384 // Password to be used to login to the endpoint database. 385 Password pulumi.StringPtrInput 386 PauseReplicationTasks pulumi.BoolPtrInput 387 // Port used by the endpoint database. 388 Port pulumi.IntPtrInput 389 // Configuration block for Postgres settings. See below. 390 PostgresSettings EndpointPostgresSettingsPtrInput 391 RedisSettings EndpointRedisSettingsPtrInput 392 // Configuration block for Redshift settings. See below. 393 RedshiftSettings EndpointRedshiftSettingsPtrInput 394 // (**Deprecated**, use the `dms.S3Endpoint` resource instead) Configuration block for S3 settings. See below. 395 S3Settings EndpointS3SettingsPtrInput 396 // ARN of the IAM role that specifies AWS DMS as the trusted entity and has the required permissions to access the value in the Secrets Manager secret referred to by `secretsManagerArn`. The role must allow the `iam:PassRole` action. 397 // 398 // > **Note:** You can specify one of two sets of values for these permissions. You can specify the values for this setting and `secretsManagerArn`. Or you can specify clear-text values for `username`, `password` , `serverName`, and `port`. You can't specify both. 399 SecretsManagerAccessRoleArn pulumi.StringPtrInput 400 // Full ARN, partial ARN, or friendly name of the Secrets Manager secret that contains the endpoint connection details. Supported only when `engineName` is `aurora`, `aurora-postgresql`, `mariadb`, `mongodb`, `mysql`, `oracle`, `postgres`, `redshift`, or `sqlserver`. 401 SecretsManagerArn pulumi.StringPtrInput 402 // Host name of the server. 403 ServerName pulumi.StringPtrInput 404 // ARN used by the service access IAM role for dynamodb endpoints. 405 ServiceAccessRole pulumi.StringPtrInput 406 // SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full` 407 SslMode pulumi.StringPtrInput 408 // 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. 409 Tags pulumi.StringMapInput 410 // User name to be used to login to the endpoint database. 411 Username pulumi.StringPtrInput 412 } 413 414 func (EndpointArgs) ElementType() reflect.Type { 415 return reflect.TypeOf((*endpointArgs)(nil)).Elem() 416 } 417 418 type EndpointInput interface { 419 pulumi.Input 420 421 ToEndpointOutput() EndpointOutput 422 ToEndpointOutputWithContext(ctx context.Context) EndpointOutput 423 } 424 425 func (*Endpoint) ElementType() reflect.Type { 426 return reflect.TypeOf((**Endpoint)(nil)).Elem() 427 } 428 429 func (i *Endpoint) ToEndpointOutput() EndpointOutput { 430 return i.ToEndpointOutputWithContext(context.Background()) 431 } 432 433 func (i *Endpoint) ToEndpointOutputWithContext(ctx context.Context) EndpointOutput { 434 return pulumi.ToOutputWithContext(ctx, i).(EndpointOutput) 435 } 436 437 // EndpointArrayInput is an input type that accepts EndpointArray and EndpointArrayOutput values. 438 // You can construct a concrete instance of `EndpointArrayInput` via: 439 // 440 // EndpointArray{ EndpointArgs{...} } 441 type EndpointArrayInput interface { 442 pulumi.Input 443 444 ToEndpointArrayOutput() EndpointArrayOutput 445 ToEndpointArrayOutputWithContext(context.Context) EndpointArrayOutput 446 } 447 448 type EndpointArray []EndpointInput 449 450 func (EndpointArray) ElementType() reflect.Type { 451 return reflect.TypeOf((*[]*Endpoint)(nil)).Elem() 452 } 453 454 func (i EndpointArray) ToEndpointArrayOutput() EndpointArrayOutput { 455 return i.ToEndpointArrayOutputWithContext(context.Background()) 456 } 457 458 func (i EndpointArray) ToEndpointArrayOutputWithContext(ctx context.Context) EndpointArrayOutput { 459 return pulumi.ToOutputWithContext(ctx, i).(EndpointArrayOutput) 460 } 461 462 // EndpointMapInput is an input type that accepts EndpointMap and EndpointMapOutput values. 463 // You can construct a concrete instance of `EndpointMapInput` via: 464 // 465 // EndpointMap{ "key": EndpointArgs{...} } 466 type EndpointMapInput interface { 467 pulumi.Input 468 469 ToEndpointMapOutput() EndpointMapOutput 470 ToEndpointMapOutputWithContext(context.Context) EndpointMapOutput 471 } 472 473 type EndpointMap map[string]EndpointInput 474 475 func (EndpointMap) ElementType() reflect.Type { 476 return reflect.TypeOf((*map[string]*Endpoint)(nil)).Elem() 477 } 478 479 func (i EndpointMap) ToEndpointMapOutput() EndpointMapOutput { 480 return i.ToEndpointMapOutputWithContext(context.Background()) 481 } 482 483 func (i EndpointMap) ToEndpointMapOutputWithContext(ctx context.Context) EndpointMapOutput { 484 return pulumi.ToOutputWithContext(ctx, i).(EndpointMapOutput) 485 } 486 487 type EndpointOutput struct{ *pulumi.OutputState } 488 489 func (EndpointOutput) ElementType() reflect.Type { 490 return reflect.TypeOf((**Endpoint)(nil)).Elem() 491 } 492 493 func (o EndpointOutput) ToEndpointOutput() EndpointOutput { 494 return o 495 } 496 497 func (o EndpointOutput) ToEndpointOutputWithContext(ctx context.Context) EndpointOutput { 498 return o 499 } 500 501 // ARN for the certificate. 502 func (o EndpointOutput) CertificateArn() pulumi.StringOutput { 503 return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.CertificateArn }).(pulumi.StringOutput) 504 } 505 506 // Name of the endpoint database. 507 func (o EndpointOutput) DatabaseName() pulumi.StringPtrOutput { 508 return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.DatabaseName }).(pulumi.StringPtrOutput) 509 } 510 511 // Configuration block for OpenSearch settings. See below. 512 func (o EndpointOutput) ElasticsearchSettings() EndpointElasticsearchSettingsPtrOutput { 513 return o.ApplyT(func(v *Endpoint) EndpointElasticsearchSettingsPtrOutput { return v.ElasticsearchSettings }).(EndpointElasticsearchSettingsPtrOutput) 514 } 515 516 // ARN for the endpoint. 517 func (o EndpointOutput) EndpointArn() pulumi.StringOutput { 518 return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.EndpointArn }).(pulumi.StringOutput) 519 } 520 521 // 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. 522 func (o EndpointOutput) EndpointId() pulumi.StringOutput { 523 return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.EndpointId }).(pulumi.StringOutput) 524 } 525 526 // Type of endpoint. Valid values are `source`, `target`. 527 func (o EndpointOutput) EndpointType() pulumi.StringOutput { 528 return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.EndpointType }).(pulumi.StringOutput) 529 } 530 531 // Type of engine for the endpoint. Valid values are `aurora`, `aurora-postgresql`, `azuredb`, `azure-sql-managed-instance`, `babelfish`, `db2`, `db2-zos`, `docdb`, `dynamodb`, `elasticsearch`, `kafka`, `kinesis`, `mariadb`, `mongodb`, `mysql`, `opensearch`, `oracle`, `postgres`, `redshift`, `s3`, `sqlserver`, `sybase`. Please note that some of engine names are available only for `target` endpoint type (e.g. `redshift`). 532 func (o EndpointOutput) EngineName() pulumi.StringOutput { 533 return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.EngineName }).(pulumi.StringOutput) 534 } 535 536 // Additional attributes associated with the connection. For available attributes for a `source` Endpoint, see [Sources for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html). For available attributes for a `target` Endpoint, see [Targets for data migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html). 537 func (o EndpointOutput) ExtraConnectionAttributes() pulumi.StringOutput { 538 return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.ExtraConnectionAttributes }).(pulumi.StringOutput) 539 } 540 541 // Configuration block for Kafka settings. See below. 542 func (o EndpointOutput) KafkaSettings() EndpointKafkaSettingsPtrOutput { 543 return o.ApplyT(func(v *Endpoint) EndpointKafkaSettingsPtrOutput { return v.KafkaSettings }).(EndpointKafkaSettingsPtrOutput) 544 } 545 546 // Configuration block for Kinesis settings. See below. 547 func (o EndpointOutput) KinesisSettings() EndpointKinesisSettingsPtrOutput { 548 return o.ApplyT(func(v *Endpoint) EndpointKinesisSettingsPtrOutput { return v.KinesisSettings }).(EndpointKinesisSettingsPtrOutput) 549 } 550 551 // 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. To encrypt an S3 target with a KMS Key, use the parameter `s3_settings.server_side_encryption_kms_key_id`. When `engineName` is `redshift`, `kmsKeyArn` is the KMS Key for the Redshift target and the parameter `redshift_settings.server_side_encryption_kms_key_id` encrypts the S3 intermediate storage. 552 // 553 // The following arguments are optional: 554 func (o EndpointOutput) KmsKeyArn() pulumi.StringOutput { 555 return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.KmsKeyArn }).(pulumi.StringOutput) 556 } 557 558 // Configuration block for MongoDB settings. See below. 559 func (o EndpointOutput) MongodbSettings() EndpointMongodbSettingsPtrOutput { 560 return o.ApplyT(func(v *Endpoint) EndpointMongodbSettingsPtrOutput { return v.MongodbSettings }).(EndpointMongodbSettingsPtrOutput) 561 } 562 563 // Password to be used to login to the endpoint database. 564 func (o EndpointOutput) Password() pulumi.StringPtrOutput { 565 return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.Password }).(pulumi.StringPtrOutput) 566 } 567 568 func (o EndpointOutput) PauseReplicationTasks() pulumi.BoolPtrOutput { 569 return o.ApplyT(func(v *Endpoint) pulumi.BoolPtrOutput { return v.PauseReplicationTasks }).(pulumi.BoolPtrOutput) 570 } 571 572 // Port used by the endpoint database. 573 func (o EndpointOutput) Port() pulumi.IntPtrOutput { 574 return o.ApplyT(func(v *Endpoint) pulumi.IntPtrOutput { return v.Port }).(pulumi.IntPtrOutput) 575 } 576 577 // Configuration block for Postgres settings. See below. 578 func (o EndpointOutput) PostgresSettings() EndpointPostgresSettingsPtrOutput { 579 return o.ApplyT(func(v *Endpoint) EndpointPostgresSettingsPtrOutput { return v.PostgresSettings }).(EndpointPostgresSettingsPtrOutput) 580 } 581 582 func (o EndpointOutput) RedisSettings() EndpointRedisSettingsPtrOutput { 583 return o.ApplyT(func(v *Endpoint) EndpointRedisSettingsPtrOutput { return v.RedisSettings }).(EndpointRedisSettingsPtrOutput) 584 } 585 586 // Configuration block for Redshift settings. See below. 587 func (o EndpointOutput) RedshiftSettings() EndpointRedshiftSettingsOutput { 588 return o.ApplyT(func(v *Endpoint) EndpointRedshiftSettingsOutput { return v.RedshiftSettings }).(EndpointRedshiftSettingsOutput) 589 } 590 591 // (**Deprecated**, use the `dms.S3Endpoint` resource instead) Configuration block for S3 settings. See below. 592 func (o EndpointOutput) S3Settings() EndpointS3SettingsPtrOutput { 593 return o.ApplyT(func(v *Endpoint) EndpointS3SettingsPtrOutput { return v.S3Settings }).(EndpointS3SettingsPtrOutput) 594 } 595 596 // ARN of the IAM role that specifies AWS DMS as the trusted entity and has the required permissions to access the value in the Secrets Manager secret referred to by `secretsManagerArn`. The role must allow the `iam:PassRole` action. 597 // 598 // > **Note:** You can specify one of two sets of values for these permissions. You can specify the values for this setting and `secretsManagerArn`. Or you can specify clear-text values for `username`, `password` , `serverName`, and `port`. You can't specify both. 599 func (o EndpointOutput) SecretsManagerAccessRoleArn() pulumi.StringPtrOutput { 600 return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.SecretsManagerAccessRoleArn }).(pulumi.StringPtrOutput) 601 } 602 603 // Full ARN, partial ARN, or friendly name of the Secrets Manager secret that contains the endpoint connection details. Supported only when `engineName` is `aurora`, `aurora-postgresql`, `mariadb`, `mongodb`, `mysql`, `oracle`, `postgres`, `redshift`, or `sqlserver`. 604 func (o EndpointOutput) SecretsManagerArn() pulumi.StringPtrOutput { 605 return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.SecretsManagerArn }).(pulumi.StringPtrOutput) 606 } 607 608 // Host name of the server. 609 func (o EndpointOutput) ServerName() pulumi.StringPtrOutput { 610 return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.ServerName }).(pulumi.StringPtrOutput) 611 } 612 613 // ARN used by the service access IAM role for dynamodb endpoints. 614 func (o EndpointOutput) ServiceAccessRole() pulumi.StringPtrOutput { 615 return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.ServiceAccessRole }).(pulumi.StringPtrOutput) 616 } 617 618 // SSL mode to use for the connection. Valid values are `none`, `require`, `verify-ca`, `verify-full` 619 func (o EndpointOutput) SslMode() pulumi.StringOutput { 620 return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.SslMode }).(pulumi.StringOutput) 621 } 622 623 // 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. 624 func (o EndpointOutput) Tags() pulumi.StringMapOutput { 625 return o.ApplyT(func(v *Endpoint) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 626 } 627 628 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 629 // 630 // Deprecated: Please use `tags` instead. 631 func (o EndpointOutput) TagsAll() pulumi.StringMapOutput { 632 return o.ApplyT(func(v *Endpoint) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 633 } 634 635 // User name to be used to login to the endpoint database. 636 func (o EndpointOutput) Username() pulumi.StringPtrOutput { 637 return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.Username }).(pulumi.StringPtrOutput) 638 } 639 640 type EndpointArrayOutput struct{ *pulumi.OutputState } 641 642 func (EndpointArrayOutput) ElementType() reflect.Type { 643 return reflect.TypeOf((*[]*Endpoint)(nil)).Elem() 644 } 645 646 func (o EndpointArrayOutput) ToEndpointArrayOutput() EndpointArrayOutput { 647 return o 648 } 649 650 func (o EndpointArrayOutput) ToEndpointArrayOutputWithContext(ctx context.Context) EndpointArrayOutput { 651 return o 652 } 653 654 func (o EndpointArrayOutput) Index(i pulumi.IntInput) EndpointOutput { 655 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Endpoint { 656 return vs[0].([]*Endpoint)[vs[1].(int)] 657 }).(EndpointOutput) 658 } 659 660 type EndpointMapOutput struct{ *pulumi.OutputState } 661 662 func (EndpointMapOutput) ElementType() reflect.Type { 663 return reflect.TypeOf((*map[string]*Endpoint)(nil)).Elem() 664 } 665 666 func (o EndpointMapOutput) ToEndpointMapOutput() EndpointMapOutput { 667 return o 668 } 669 670 func (o EndpointMapOutput) ToEndpointMapOutputWithContext(ctx context.Context) EndpointMapOutput { 671 return o 672 } 673 674 func (o EndpointMapOutput) MapIndex(k pulumi.StringInput) EndpointOutput { 675 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Endpoint { 676 return vs[0].(map[string]*Endpoint)[vs[1].(string)] 677 }).(EndpointOutput) 678 } 679 680 func init() { 681 pulumi.RegisterInputType(reflect.TypeOf((*EndpointInput)(nil)).Elem(), &Endpoint{}) 682 pulumi.RegisterInputType(reflect.TypeOf((*EndpointArrayInput)(nil)).Elem(), EndpointArray{}) 683 pulumi.RegisterInputType(reflect.TypeOf((*EndpointMapInput)(nil)).Elem(), EndpointMap{}) 684 pulumi.RegisterOutputType(EndpointOutput{}) 685 pulumi.RegisterOutputType(EndpointArrayOutput{}) 686 pulumi.RegisterOutputType(EndpointMapOutput{}) 687 }