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  }