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 }