github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/quicksight/dataSource.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 quicksight
     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  // Resource for managing QuickSight Data Source
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := quicksight.NewDataSource(ctx, "default", &quicksight.DataSourceArgs{
    33  //				DataSourceId: pulumi.String("example-id"),
    34  //				Name:         pulumi.String("My Cool Data in S3"),
    35  //				Parameters: &quicksight.DataSourceParametersArgs{
    36  //					S3: &quicksight.DataSourceParametersS3Args{
    37  //						ManifestFileLocation: &quicksight.DataSourceParametersS3ManifestFileLocationArgs{
    38  //							Bucket: pulumi.String("my-bucket"),
    39  //							Key:    pulumi.String("path/to/manifest.json"),
    40  //						},
    41  //					},
    42  //				},
    43  //				Type: pulumi.String("S3"),
    44  //			})
    45  //			if err != nil {
    46  //				return err
    47  //			}
    48  //			return nil
    49  //		})
    50  //	}
    51  //
    52  // ```
    53  // <!--End PulumiCodeChooser -->
    54  //
    55  // ## Import
    56  //
    57  // Using `pulumi import`, import a QuickSight data source using the AWS account ID, and data source ID separated by a slash (`/`). For example:
    58  //
    59  // ```sh
    60  // $ pulumi import aws:quicksight/dataSource:DataSource example 123456789123/my-data-source-id
    61  // ```
    62  type DataSource struct {
    63  	pulumi.CustomResourceState
    64  
    65  	// Amazon Resource Name (ARN) of the data source
    66  	Arn pulumi.StringOutput `pulumi:"arn"`
    67  	// The ID for the AWS account that the data source is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.
    68  	AwsAccountId pulumi.StringOutput `pulumi:"awsAccountId"`
    69  	// The credentials Amazon QuickSight uses to connect to your underlying source. Currently, only credentials based on user name and password are supported. See Credentials below for more details.
    70  	Credentials DataSourceCredentialsPtrOutput `pulumi:"credentials"`
    71  	// An identifier for the data source.
    72  	DataSourceId pulumi.StringOutput `pulumi:"dataSourceId"`
    73  	// A name for the data source, maximum of 128 characters.
    74  	Name pulumi.StringOutput `pulumi:"name"`
    75  	// The parameters used to connect to this data source (exactly one).
    76  	Parameters DataSourceParametersOutput `pulumi:"parameters"`
    77  	// A set of resource permissions on the data source. Maximum of 64 items. See Permission below for more details.
    78  	Permissions DataSourcePermissionArrayOutput `pulumi:"permissions"`
    79  	// Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying source. See SSL Properties below for more details.
    80  	SslProperties DataSourceSslPropertiesPtrOutput `pulumi:"sslProperties"`
    81  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    82  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    83  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    84  	//
    85  	// Deprecated: Please use `tags` instead.
    86  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    87  	// The type of the data source. See the [AWS Documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSource.html#QS-CreateDataSource-request-Type) for the complete list of valid values.
    88  	//
    89  	// The following arguments are optional:
    90  	Type pulumi.StringOutput `pulumi:"type"`
    91  	// Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source. See VPC Connection Properties below for more details.
    92  	VpcConnectionProperties DataSourceVpcConnectionPropertiesPtrOutput `pulumi:"vpcConnectionProperties"`
    93  }
    94  
    95  // NewDataSource registers a new resource with the given unique name, arguments, and options.
    96  func NewDataSource(ctx *pulumi.Context,
    97  	name string, args *DataSourceArgs, opts ...pulumi.ResourceOption) (*DataSource, error) {
    98  	if args == nil {
    99  		return nil, errors.New("missing one or more required arguments")
   100  	}
   101  
   102  	if args.DataSourceId == nil {
   103  		return nil, errors.New("invalid value for required argument 'DataSourceId'")
   104  	}
   105  	if args.Parameters == nil {
   106  		return nil, errors.New("invalid value for required argument 'Parameters'")
   107  	}
   108  	if args.Type == nil {
   109  		return nil, errors.New("invalid value for required argument 'Type'")
   110  	}
   111  	opts = internal.PkgResourceDefaultOpts(opts)
   112  	var resource DataSource
   113  	err := ctx.RegisterResource("aws:quicksight/dataSource:DataSource", name, args, &resource, opts...)
   114  	if err != nil {
   115  		return nil, err
   116  	}
   117  	return &resource, nil
   118  }
   119  
   120  // GetDataSource gets an existing DataSource resource's state with the given name, ID, and optional
   121  // state properties that are used to uniquely qualify the lookup (nil if not required).
   122  func GetDataSource(ctx *pulumi.Context,
   123  	name string, id pulumi.IDInput, state *DataSourceState, opts ...pulumi.ResourceOption) (*DataSource, error) {
   124  	var resource DataSource
   125  	err := ctx.ReadResource("aws:quicksight/dataSource:DataSource", name, id, state, &resource, opts...)
   126  	if err != nil {
   127  		return nil, err
   128  	}
   129  	return &resource, nil
   130  }
   131  
   132  // Input properties used for looking up and filtering DataSource resources.
   133  type dataSourceState struct {
   134  	// Amazon Resource Name (ARN) of the data source
   135  	Arn *string `pulumi:"arn"`
   136  	// The ID for the AWS account that the data source is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.
   137  	AwsAccountId *string `pulumi:"awsAccountId"`
   138  	// The credentials Amazon QuickSight uses to connect to your underlying source. Currently, only credentials based on user name and password are supported. See Credentials below for more details.
   139  	Credentials *DataSourceCredentials `pulumi:"credentials"`
   140  	// An identifier for the data source.
   141  	DataSourceId *string `pulumi:"dataSourceId"`
   142  	// A name for the data source, maximum of 128 characters.
   143  	Name *string `pulumi:"name"`
   144  	// The parameters used to connect to this data source (exactly one).
   145  	Parameters *DataSourceParameters `pulumi:"parameters"`
   146  	// A set of resource permissions on the data source. Maximum of 64 items. See Permission below for more details.
   147  	Permissions []DataSourcePermission `pulumi:"permissions"`
   148  	// Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying source. See SSL Properties below for more details.
   149  	SslProperties *DataSourceSslProperties `pulumi:"sslProperties"`
   150  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   151  	Tags map[string]string `pulumi:"tags"`
   152  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   153  	//
   154  	// Deprecated: Please use `tags` instead.
   155  	TagsAll map[string]string `pulumi:"tagsAll"`
   156  	// The type of the data source. See the [AWS Documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSource.html#QS-CreateDataSource-request-Type) for the complete list of valid values.
   157  	//
   158  	// The following arguments are optional:
   159  	Type *string `pulumi:"type"`
   160  	// Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source. See VPC Connection Properties below for more details.
   161  	VpcConnectionProperties *DataSourceVpcConnectionProperties `pulumi:"vpcConnectionProperties"`
   162  }
   163  
   164  type DataSourceState struct {
   165  	// Amazon Resource Name (ARN) of the data source
   166  	Arn pulumi.StringPtrInput
   167  	// The ID for the AWS account that the data source is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.
   168  	AwsAccountId pulumi.StringPtrInput
   169  	// The credentials Amazon QuickSight uses to connect to your underlying source. Currently, only credentials based on user name and password are supported. See Credentials below for more details.
   170  	Credentials DataSourceCredentialsPtrInput
   171  	// An identifier for the data source.
   172  	DataSourceId pulumi.StringPtrInput
   173  	// A name for the data source, maximum of 128 characters.
   174  	Name pulumi.StringPtrInput
   175  	// The parameters used to connect to this data source (exactly one).
   176  	Parameters DataSourceParametersPtrInput
   177  	// A set of resource permissions on the data source. Maximum of 64 items. See Permission below for more details.
   178  	Permissions DataSourcePermissionArrayInput
   179  	// Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying source. See SSL Properties below for more details.
   180  	SslProperties DataSourceSslPropertiesPtrInput
   181  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   182  	Tags pulumi.StringMapInput
   183  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   184  	//
   185  	// Deprecated: Please use `tags` instead.
   186  	TagsAll pulumi.StringMapInput
   187  	// The type of the data source. See the [AWS Documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSource.html#QS-CreateDataSource-request-Type) for the complete list of valid values.
   188  	//
   189  	// The following arguments are optional:
   190  	Type pulumi.StringPtrInput
   191  	// Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source. See VPC Connection Properties below for more details.
   192  	VpcConnectionProperties DataSourceVpcConnectionPropertiesPtrInput
   193  }
   194  
   195  func (DataSourceState) ElementType() reflect.Type {
   196  	return reflect.TypeOf((*dataSourceState)(nil)).Elem()
   197  }
   198  
   199  type dataSourceArgs struct {
   200  	// The ID for the AWS account that the data source is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.
   201  	AwsAccountId *string `pulumi:"awsAccountId"`
   202  	// The credentials Amazon QuickSight uses to connect to your underlying source. Currently, only credentials based on user name and password are supported. See Credentials below for more details.
   203  	Credentials *DataSourceCredentials `pulumi:"credentials"`
   204  	// An identifier for the data source.
   205  	DataSourceId string `pulumi:"dataSourceId"`
   206  	// A name for the data source, maximum of 128 characters.
   207  	Name *string `pulumi:"name"`
   208  	// The parameters used to connect to this data source (exactly one).
   209  	Parameters DataSourceParameters `pulumi:"parameters"`
   210  	// A set of resource permissions on the data source. Maximum of 64 items. See Permission below for more details.
   211  	Permissions []DataSourcePermission `pulumi:"permissions"`
   212  	// Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying source. See SSL Properties below for more details.
   213  	SslProperties *DataSourceSslProperties `pulumi:"sslProperties"`
   214  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   215  	Tags map[string]string `pulumi:"tags"`
   216  	// The type of the data source. See the [AWS Documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSource.html#QS-CreateDataSource-request-Type) for the complete list of valid values.
   217  	//
   218  	// The following arguments are optional:
   219  	Type string `pulumi:"type"`
   220  	// Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source. See VPC Connection Properties below for more details.
   221  	VpcConnectionProperties *DataSourceVpcConnectionProperties `pulumi:"vpcConnectionProperties"`
   222  }
   223  
   224  // The set of arguments for constructing a DataSource resource.
   225  type DataSourceArgs struct {
   226  	// The ID for the AWS account that the data source is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.
   227  	AwsAccountId pulumi.StringPtrInput
   228  	// The credentials Amazon QuickSight uses to connect to your underlying source. Currently, only credentials based on user name and password are supported. See Credentials below for more details.
   229  	Credentials DataSourceCredentialsPtrInput
   230  	// An identifier for the data source.
   231  	DataSourceId pulumi.StringInput
   232  	// A name for the data source, maximum of 128 characters.
   233  	Name pulumi.StringPtrInput
   234  	// The parameters used to connect to this data source (exactly one).
   235  	Parameters DataSourceParametersInput
   236  	// A set of resource permissions on the data source. Maximum of 64 items. See Permission below for more details.
   237  	Permissions DataSourcePermissionArrayInput
   238  	// Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying source. See SSL Properties below for more details.
   239  	SslProperties DataSourceSslPropertiesPtrInput
   240  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   241  	Tags pulumi.StringMapInput
   242  	// The type of the data source. See the [AWS Documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSource.html#QS-CreateDataSource-request-Type) for the complete list of valid values.
   243  	//
   244  	// The following arguments are optional:
   245  	Type pulumi.StringInput
   246  	// Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source. See VPC Connection Properties below for more details.
   247  	VpcConnectionProperties DataSourceVpcConnectionPropertiesPtrInput
   248  }
   249  
   250  func (DataSourceArgs) ElementType() reflect.Type {
   251  	return reflect.TypeOf((*dataSourceArgs)(nil)).Elem()
   252  }
   253  
   254  type DataSourceInput interface {
   255  	pulumi.Input
   256  
   257  	ToDataSourceOutput() DataSourceOutput
   258  	ToDataSourceOutputWithContext(ctx context.Context) DataSourceOutput
   259  }
   260  
   261  func (*DataSource) ElementType() reflect.Type {
   262  	return reflect.TypeOf((**DataSource)(nil)).Elem()
   263  }
   264  
   265  func (i *DataSource) ToDataSourceOutput() DataSourceOutput {
   266  	return i.ToDataSourceOutputWithContext(context.Background())
   267  }
   268  
   269  func (i *DataSource) ToDataSourceOutputWithContext(ctx context.Context) DataSourceOutput {
   270  	return pulumi.ToOutputWithContext(ctx, i).(DataSourceOutput)
   271  }
   272  
   273  // DataSourceArrayInput is an input type that accepts DataSourceArray and DataSourceArrayOutput values.
   274  // You can construct a concrete instance of `DataSourceArrayInput` via:
   275  //
   276  //	DataSourceArray{ DataSourceArgs{...} }
   277  type DataSourceArrayInput interface {
   278  	pulumi.Input
   279  
   280  	ToDataSourceArrayOutput() DataSourceArrayOutput
   281  	ToDataSourceArrayOutputWithContext(context.Context) DataSourceArrayOutput
   282  }
   283  
   284  type DataSourceArray []DataSourceInput
   285  
   286  func (DataSourceArray) ElementType() reflect.Type {
   287  	return reflect.TypeOf((*[]*DataSource)(nil)).Elem()
   288  }
   289  
   290  func (i DataSourceArray) ToDataSourceArrayOutput() DataSourceArrayOutput {
   291  	return i.ToDataSourceArrayOutputWithContext(context.Background())
   292  }
   293  
   294  func (i DataSourceArray) ToDataSourceArrayOutputWithContext(ctx context.Context) DataSourceArrayOutput {
   295  	return pulumi.ToOutputWithContext(ctx, i).(DataSourceArrayOutput)
   296  }
   297  
   298  // DataSourceMapInput is an input type that accepts DataSourceMap and DataSourceMapOutput values.
   299  // You can construct a concrete instance of `DataSourceMapInput` via:
   300  //
   301  //	DataSourceMap{ "key": DataSourceArgs{...} }
   302  type DataSourceMapInput interface {
   303  	pulumi.Input
   304  
   305  	ToDataSourceMapOutput() DataSourceMapOutput
   306  	ToDataSourceMapOutputWithContext(context.Context) DataSourceMapOutput
   307  }
   308  
   309  type DataSourceMap map[string]DataSourceInput
   310  
   311  func (DataSourceMap) ElementType() reflect.Type {
   312  	return reflect.TypeOf((*map[string]*DataSource)(nil)).Elem()
   313  }
   314  
   315  func (i DataSourceMap) ToDataSourceMapOutput() DataSourceMapOutput {
   316  	return i.ToDataSourceMapOutputWithContext(context.Background())
   317  }
   318  
   319  func (i DataSourceMap) ToDataSourceMapOutputWithContext(ctx context.Context) DataSourceMapOutput {
   320  	return pulumi.ToOutputWithContext(ctx, i).(DataSourceMapOutput)
   321  }
   322  
   323  type DataSourceOutput struct{ *pulumi.OutputState }
   324  
   325  func (DataSourceOutput) ElementType() reflect.Type {
   326  	return reflect.TypeOf((**DataSource)(nil)).Elem()
   327  }
   328  
   329  func (o DataSourceOutput) ToDataSourceOutput() DataSourceOutput {
   330  	return o
   331  }
   332  
   333  func (o DataSourceOutput) ToDataSourceOutputWithContext(ctx context.Context) DataSourceOutput {
   334  	return o
   335  }
   336  
   337  // Amazon Resource Name (ARN) of the data source
   338  func (o DataSourceOutput) Arn() pulumi.StringOutput {
   339  	return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   340  }
   341  
   342  // The ID for the AWS account that the data source is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.
   343  func (o DataSourceOutput) AwsAccountId() pulumi.StringOutput {
   344  	return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.AwsAccountId }).(pulumi.StringOutput)
   345  }
   346  
   347  // The credentials Amazon QuickSight uses to connect to your underlying source. Currently, only credentials based on user name and password are supported. See Credentials below for more details.
   348  func (o DataSourceOutput) Credentials() DataSourceCredentialsPtrOutput {
   349  	return o.ApplyT(func(v *DataSource) DataSourceCredentialsPtrOutput { return v.Credentials }).(DataSourceCredentialsPtrOutput)
   350  }
   351  
   352  // An identifier for the data source.
   353  func (o DataSourceOutput) DataSourceId() pulumi.StringOutput {
   354  	return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.DataSourceId }).(pulumi.StringOutput)
   355  }
   356  
   357  // A name for the data source, maximum of 128 characters.
   358  func (o DataSourceOutput) Name() pulumi.StringOutput {
   359  	return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   360  }
   361  
   362  // The parameters used to connect to this data source (exactly one).
   363  func (o DataSourceOutput) Parameters() DataSourceParametersOutput {
   364  	return o.ApplyT(func(v *DataSource) DataSourceParametersOutput { return v.Parameters }).(DataSourceParametersOutput)
   365  }
   366  
   367  // A set of resource permissions on the data source. Maximum of 64 items. See Permission below for more details.
   368  func (o DataSourceOutput) Permissions() DataSourcePermissionArrayOutput {
   369  	return o.ApplyT(func(v *DataSource) DataSourcePermissionArrayOutput { return v.Permissions }).(DataSourcePermissionArrayOutput)
   370  }
   371  
   372  // Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your underlying source. See SSL Properties below for more details.
   373  func (o DataSourceOutput) SslProperties() DataSourceSslPropertiesPtrOutput {
   374  	return o.ApplyT(func(v *DataSource) DataSourceSslPropertiesPtrOutput { return v.SslProperties }).(DataSourceSslPropertiesPtrOutput)
   375  }
   376  
   377  // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   378  func (o DataSourceOutput) Tags() pulumi.StringMapOutput {
   379  	return o.ApplyT(func(v *DataSource) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   380  }
   381  
   382  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   383  //
   384  // Deprecated: Please use `tags` instead.
   385  func (o DataSourceOutput) TagsAll() pulumi.StringMapOutput {
   386  	return o.ApplyT(func(v *DataSource) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   387  }
   388  
   389  // The type of the data source. See the [AWS Documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSource.html#QS-CreateDataSource-request-Type) for the complete list of valid values.
   390  //
   391  // The following arguments are optional:
   392  func (o DataSourceOutput) Type() pulumi.StringOutput {
   393  	return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
   394  }
   395  
   396  // Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source. See VPC Connection Properties below for more details.
   397  func (o DataSourceOutput) VpcConnectionProperties() DataSourceVpcConnectionPropertiesPtrOutput {
   398  	return o.ApplyT(func(v *DataSource) DataSourceVpcConnectionPropertiesPtrOutput { return v.VpcConnectionProperties }).(DataSourceVpcConnectionPropertiesPtrOutput)
   399  }
   400  
   401  type DataSourceArrayOutput struct{ *pulumi.OutputState }
   402  
   403  func (DataSourceArrayOutput) ElementType() reflect.Type {
   404  	return reflect.TypeOf((*[]*DataSource)(nil)).Elem()
   405  }
   406  
   407  func (o DataSourceArrayOutput) ToDataSourceArrayOutput() DataSourceArrayOutput {
   408  	return o
   409  }
   410  
   411  func (o DataSourceArrayOutput) ToDataSourceArrayOutputWithContext(ctx context.Context) DataSourceArrayOutput {
   412  	return o
   413  }
   414  
   415  func (o DataSourceArrayOutput) Index(i pulumi.IntInput) DataSourceOutput {
   416  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DataSource {
   417  		return vs[0].([]*DataSource)[vs[1].(int)]
   418  	}).(DataSourceOutput)
   419  }
   420  
   421  type DataSourceMapOutput struct{ *pulumi.OutputState }
   422  
   423  func (DataSourceMapOutput) ElementType() reflect.Type {
   424  	return reflect.TypeOf((*map[string]*DataSource)(nil)).Elem()
   425  }
   426  
   427  func (o DataSourceMapOutput) ToDataSourceMapOutput() DataSourceMapOutput {
   428  	return o
   429  }
   430  
   431  func (o DataSourceMapOutput) ToDataSourceMapOutputWithContext(ctx context.Context) DataSourceMapOutput {
   432  	return o
   433  }
   434  
   435  func (o DataSourceMapOutput) MapIndex(k pulumi.StringInput) DataSourceOutput {
   436  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DataSource {
   437  		return vs[0].(map[string]*DataSource)[vs[1].(string)]
   438  	}).(DataSourceOutput)
   439  }
   440  
   441  func init() {
   442  	pulumi.RegisterInputType(reflect.TypeOf((*DataSourceInput)(nil)).Elem(), &DataSource{})
   443  	pulumi.RegisterInputType(reflect.TypeOf((*DataSourceArrayInput)(nil)).Elem(), DataSourceArray{})
   444  	pulumi.RegisterInputType(reflect.TypeOf((*DataSourceMapInput)(nil)).Elem(), DataSourceMap{})
   445  	pulumi.RegisterOutputType(DataSourceOutput{})
   446  	pulumi.RegisterOutputType(DataSourceArrayOutput{})
   447  	pulumi.RegisterOutputType(DataSourceMapOutput{})
   448  }