github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/lakeformation/dataLakeSettings.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 lakeformation
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Manages Lake Formation principals designated as data lake administrators and lists of principal permission entries for default create database and default create table permissions.
    15  //
    16  // > **NOTE:** Lake Formation introduces fine-grained access control for data in your data lake. Part of the changes include the `IAMAllowedPrincipals` principal in order to make Lake Formation backwards compatible with existing IAM and Glue permissions. For more information, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) and [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html).
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Data Lake Admins
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			_, err := lakeformation.NewDataLakeSettings(ctx, "example", &lakeformation.DataLakeSettingsArgs{
    36  //				Admins: pulumi.StringArray{
    37  //					test.Arn,
    38  //					testAwsIamRole.Arn,
    39  //				},
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			return nil
    45  //		})
    46  //	}
    47  //
    48  // ```
    49  // <!--End PulumiCodeChooser -->
    50  //
    51  // ### Create Default Permissions
    52  //
    53  // <!--Start PulumiCodeChooser -->
    54  // ```go
    55  // package main
    56  //
    57  // import (
    58  //
    59  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation"
    60  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    61  //
    62  // )
    63  //
    64  //	func main() {
    65  //		pulumi.Run(func(ctx *pulumi.Context) error {
    66  //			_, err := lakeformation.NewDataLakeSettings(ctx, "example", &lakeformation.DataLakeSettingsArgs{
    67  //				Admins: pulumi.StringArray{
    68  //					test.Arn,
    69  //					testAwsIamRole.Arn,
    70  //				},
    71  //				CreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{
    72  //					&lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{
    73  //						Permissions: pulumi.StringArray{
    74  //							pulumi.String("SELECT"),
    75  //							pulumi.String("ALTER"),
    76  //							pulumi.String("DROP"),
    77  //						},
    78  //						Principal: pulumi.Any(test.Arn),
    79  //					},
    80  //				},
    81  //				CreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{
    82  //					&lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{
    83  //						Permissions: pulumi.StringArray{
    84  //							pulumi.String("ALL"),
    85  //						},
    86  //						Principal: pulumi.Any(testAwsIamRole.Arn),
    87  //					},
    88  //				},
    89  //			})
    90  //			if err != nil {
    91  //				return err
    92  //			}
    93  //			return nil
    94  //		})
    95  //	}
    96  //
    97  // ```
    98  // <!--End PulumiCodeChooser -->
    99  //
   100  // ### Enable EMR access to LakeFormation resources
   101  //
   102  // <!--Start PulumiCodeChooser -->
   103  // ```go
   104  // package main
   105  //
   106  // import (
   107  //
   108  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation"
   109  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   110  //
   111  // )
   112  //
   113  //	func main() {
   114  //		pulumi.Run(func(ctx *pulumi.Context) error {
   115  //			_, err := lakeformation.NewDataLakeSettings(ctx, "example", &lakeformation.DataLakeSettingsArgs{
   116  //				Admins: pulumi.StringArray{
   117  //					test.Arn,
   118  //					testAwsIamRole.Arn,
   119  //				},
   120  //				CreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{
   121  //					&lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{
   122  //						Permissions: pulumi.StringArray{
   123  //							pulumi.String("SELECT"),
   124  //							pulumi.String("ALTER"),
   125  //							pulumi.String("DROP"),
   126  //						},
   127  //						Principal: pulumi.Any(test.Arn),
   128  //					},
   129  //				},
   130  //				CreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{
   131  //					&lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{
   132  //						Permissions: pulumi.StringArray{
   133  //							pulumi.String("ALL"),
   134  //						},
   135  //						Principal: pulumi.Any(testAwsIamRole.Arn),
   136  //					},
   137  //				},
   138  //				AllowExternalDataFiltering: pulumi.Bool(true),
   139  //				ExternalDataFilteringAllowLists: pulumi.StringArray{
   140  //					current.AccountId,
   141  //					thirdParty.AccountId,
   142  //				},
   143  //				AuthorizedSessionTagValueLists: pulumi.StringArray{
   144  //					pulumi.String("Amazon EMR"),
   145  //				},
   146  //			})
   147  //			if err != nil {
   148  //				return err
   149  //			}
   150  //			return nil
   151  //		})
   152  //	}
   153  //
   154  // ```
   155  // <!--End PulumiCodeChooser -->
   156  type DataLakeSettings struct {
   157  	pulumi.CustomResourceState
   158  
   159  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles).
   160  	Admins pulumi.StringArrayOutput `pulumi:"admins"`
   161  	// Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
   162  	AllowExternalDataFiltering pulumi.BoolPtrOutput `pulumi:"allowExternalDataFiltering"`
   163  	// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.
   164  	//
   165  	// > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared.
   166  	AuthorizedSessionTagValueLists pulumi.StringArrayOutput `pulumi:"authorizedSessionTagValueLists"`
   167  	// Identifier for the Data Catalog. By default, the account ID.
   168  	CatalogId pulumi.StringPtrOutput `pulumi:"catalogId"`
   169  	// Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
   170  	CreateDatabaseDefaultPermissions DataLakeSettingsCreateDatabaseDefaultPermissionArrayOutput `pulumi:"createDatabaseDefaultPermissions"`
   171  	// Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
   172  	CreateTableDefaultPermissions DataLakeSettingsCreateTableDefaultPermissionArrayOutput `pulumi:"createTableDefaultPermissions"`
   173  	// A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
   174  	ExternalDataFilteringAllowLists pulumi.StringArrayOutput `pulumi:"externalDataFilteringAllowLists"`
   175  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
   176  	ReadOnlyAdmins pulumi.StringArrayOutput `pulumi:"readOnlyAdmins"`
   177  	// List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
   178  	TrustedResourceOwners pulumi.StringArrayOutput `pulumi:"trustedResourceOwners"`
   179  }
   180  
   181  // NewDataLakeSettings registers a new resource with the given unique name, arguments, and options.
   182  func NewDataLakeSettings(ctx *pulumi.Context,
   183  	name string, args *DataLakeSettingsArgs, opts ...pulumi.ResourceOption) (*DataLakeSettings, error) {
   184  	if args == nil {
   185  		args = &DataLakeSettingsArgs{}
   186  	}
   187  
   188  	opts = internal.PkgResourceDefaultOpts(opts)
   189  	var resource DataLakeSettings
   190  	err := ctx.RegisterResource("aws:lakeformation/dataLakeSettings:DataLakeSettings", name, args, &resource, opts...)
   191  	if err != nil {
   192  		return nil, err
   193  	}
   194  	return &resource, nil
   195  }
   196  
   197  // GetDataLakeSettings gets an existing DataLakeSettings resource's state with the given name, ID, and optional
   198  // state properties that are used to uniquely qualify the lookup (nil if not required).
   199  func GetDataLakeSettings(ctx *pulumi.Context,
   200  	name string, id pulumi.IDInput, state *DataLakeSettingsState, opts ...pulumi.ResourceOption) (*DataLakeSettings, error) {
   201  	var resource DataLakeSettings
   202  	err := ctx.ReadResource("aws:lakeformation/dataLakeSettings:DataLakeSettings", name, id, state, &resource, opts...)
   203  	if err != nil {
   204  		return nil, err
   205  	}
   206  	return &resource, nil
   207  }
   208  
   209  // Input properties used for looking up and filtering DataLakeSettings resources.
   210  type dataLakeSettingsState struct {
   211  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles).
   212  	Admins []string `pulumi:"admins"`
   213  	// Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
   214  	AllowExternalDataFiltering *bool `pulumi:"allowExternalDataFiltering"`
   215  	// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.
   216  	//
   217  	// > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared.
   218  	AuthorizedSessionTagValueLists []string `pulumi:"authorizedSessionTagValueLists"`
   219  	// Identifier for the Data Catalog. By default, the account ID.
   220  	CatalogId *string `pulumi:"catalogId"`
   221  	// Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
   222  	CreateDatabaseDefaultPermissions []DataLakeSettingsCreateDatabaseDefaultPermission `pulumi:"createDatabaseDefaultPermissions"`
   223  	// Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
   224  	CreateTableDefaultPermissions []DataLakeSettingsCreateTableDefaultPermission `pulumi:"createTableDefaultPermissions"`
   225  	// A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
   226  	ExternalDataFilteringAllowLists []string `pulumi:"externalDataFilteringAllowLists"`
   227  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
   228  	ReadOnlyAdmins []string `pulumi:"readOnlyAdmins"`
   229  	// List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
   230  	TrustedResourceOwners []string `pulumi:"trustedResourceOwners"`
   231  }
   232  
   233  type DataLakeSettingsState struct {
   234  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles).
   235  	Admins pulumi.StringArrayInput
   236  	// Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
   237  	AllowExternalDataFiltering pulumi.BoolPtrInput
   238  	// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.
   239  	//
   240  	// > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared.
   241  	AuthorizedSessionTagValueLists pulumi.StringArrayInput
   242  	// Identifier for the Data Catalog. By default, the account ID.
   243  	CatalogId pulumi.StringPtrInput
   244  	// Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
   245  	CreateDatabaseDefaultPermissions DataLakeSettingsCreateDatabaseDefaultPermissionArrayInput
   246  	// Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
   247  	CreateTableDefaultPermissions DataLakeSettingsCreateTableDefaultPermissionArrayInput
   248  	// A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
   249  	ExternalDataFilteringAllowLists pulumi.StringArrayInput
   250  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
   251  	ReadOnlyAdmins pulumi.StringArrayInput
   252  	// List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
   253  	TrustedResourceOwners pulumi.StringArrayInput
   254  }
   255  
   256  func (DataLakeSettingsState) ElementType() reflect.Type {
   257  	return reflect.TypeOf((*dataLakeSettingsState)(nil)).Elem()
   258  }
   259  
   260  type dataLakeSettingsArgs struct {
   261  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles).
   262  	Admins []string `pulumi:"admins"`
   263  	// Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
   264  	AllowExternalDataFiltering *bool `pulumi:"allowExternalDataFiltering"`
   265  	// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.
   266  	//
   267  	// > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared.
   268  	AuthorizedSessionTagValueLists []string `pulumi:"authorizedSessionTagValueLists"`
   269  	// Identifier for the Data Catalog. By default, the account ID.
   270  	CatalogId *string `pulumi:"catalogId"`
   271  	// Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
   272  	CreateDatabaseDefaultPermissions []DataLakeSettingsCreateDatabaseDefaultPermission `pulumi:"createDatabaseDefaultPermissions"`
   273  	// Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
   274  	CreateTableDefaultPermissions []DataLakeSettingsCreateTableDefaultPermission `pulumi:"createTableDefaultPermissions"`
   275  	// A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
   276  	ExternalDataFilteringAllowLists []string `pulumi:"externalDataFilteringAllowLists"`
   277  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
   278  	ReadOnlyAdmins []string `pulumi:"readOnlyAdmins"`
   279  	// List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
   280  	TrustedResourceOwners []string `pulumi:"trustedResourceOwners"`
   281  }
   282  
   283  // The set of arguments for constructing a DataLakeSettings resource.
   284  type DataLakeSettingsArgs struct {
   285  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles).
   286  	Admins pulumi.StringArrayInput
   287  	// Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
   288  	AllowExternalDataFiltering pulumi.BoolPtrInput
   289  	// Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.
   290  	//
   291  	// > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared.
   292  	AuthorizedSessionTagValueLists pulumi.StringArrayInput
   293  	// Identifier for the Data Catalog. By default, the account ID.
   294  	CatalogId pulumi.StringPtrInput
   295  	// Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
   296  	CreateDatabaseDefaultPermissions DataLakeSettingsCreateDatabaseDefaultPermissionArrayInput
   297  	// Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
   298  	CreateTableDefaultPermissions DataLakeSettingsCreateTableDefaultPermissionArrayInput
   299  	// A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
   300  	ExternalDataFilteringAllowLists pulumi.StringArrayInput
   301  	// Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
   302  	ReadOnlyAdmins pulumi.StringArrayInput
   303  	// List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
   304  	TrustedResourceOwners pulumi.StringArrayInput
   305  }
   306  
   307  func (DataLakeSettingsArgs) ElementType() reflect.Type {
   308  	return reflect.TypeOf((*dataLakeSettingsArgs)(nil)).Elem()
   309  }
   310  
   311  type DataLakeSettingsInput interface {
   312  	pulumi.Input
   313  
   314  	ToDataLakeSettingsOutput() DataLakeSettingsOutput
   315  	ToDataLakeSettingsOutputWithContext(ctx context.Context) DataLakeSettingsOutput
   316  }
   317  
   318  func (*DataLakeSettings) ElementType() reflect.Type {
   319  	return reflect.TypeOf((**DataLakeSettings)(nil)).Elem()
   320  }
   321  
   322  func (i *DataLakeSettings) ToDataLakeSettingsOutput() DataLakeSettingsOutput {
   323  	return i.ToDataLakeSettingsOutputWithContext(context.Background())
   324  }
   325  
   326  func (i *DataLakeSettings) ToDataLakeSettingsOutputWithContext(ctx context.Context) DataLakeSettingsOutput {
   327  	return pulumi.ToOutputWithContext(ctx, i).(DataLakeSettingsOutput)
   328  }
   329  
   330  // DataLakeSettingsArrayInput is an input type that accepts DataLakeSettingsArray and DataLakeSettingsArrayOutput values.
   331  // You can construct a concrete instance of `DataLakeSettingsArrayInput` via:
   332  //
   333  //	DataLakeSettingsArray{ DataLakeSettingsArgs{...} }
   334  type DataLakeSettingsArrayInput interface {
   335  	pulumi.Input
   336  
   337  	ToDataLakeSettingsArrayOutput() DataLakeSettingsArrayOutput
   338  	ToDataLakeSettingsArrayOutputWithContext(context.Context) DataLakeSettingsArrayOutput
   339  }
   340  
   341  type DataLakeSettingsArray []DataLakeSettingsInput
   342  
   343  func (DataLakeSettingsArray) ElementType() reflect.Type {
   344  	return reflect.TypeOf((*[]*DataLakeSettings)(nil)).Elem()
   345  }
   346  
   347  func (i DataLakeSettingsArray) ToDataLakeSettingsArrayOutput() DataLakeSettingsArrayOutput {
   348  	return i.ToDataLakeSettingsArrayOutputWithContext(context.Background())
   349  }
   350  
   351  func (i DataLakeSettingsArray) ToDataLakeSettingsArrayOutputWithContext(ctx context.Context) DataLakeSettingsArrayOutput {
   352  	return pulumi.ToOutputWithContext(ctx, i).(DataLakeSettingsArrayOutput)
   353  }
   354  
   355  // DataLakeSettingsMapInput is an input type that accepts DataLakeSettingsMap and DataLakeSettingsMapOutput values.
   356  // You can construct a concrete instance of `DataLakeSettingsMapInput` via:
   357  //
   358  //	DataLakeSettingsMap{ "key": DataLakeSettingsArgs{...} }
   359  type DataLakeSettingsMapInput interface {
   360  	pulumi.Input
   361  
   362  	ToDataLakeSettingsMapOutput() DataLakeSettingsMapOutput
   363  	ToDataLakeSettingsMapOutputWithContext(context.Context) DataLakeSettingsMapOutput
   364  }
   365  
   366  type DataLakeSettingsMap map[string]DataLakeSettingsInput
   367  
   368  func (DataLakeSettingsMap) ElementType() reflect.Type {
   369  	return reflect.TypeOf((*map[string]*DataLakeSettings)(nil)).Elem()
   370  }
   371  
   372  func (i DataLakeSettingsMap) ToDataLakeSettingsMapOutput() DataLakeSettingsMapOutput {
   373  	return i.ToDataLakeSettingsMapOutputWithContext(context.Background())
   374  }
   375  
   376  func (i DataLakeSettingsMap) ToDataLakeSettingsMapOutputWithContext(ctx context.Context) DataLakeSettingsMapOutput {
   377  	return pulumi.ToOutputWithContext(ctx, i).(DataLakeSettingsMapOutput)
   378  }
   379  
   380  type DataLakeSettingsOutput struct{ *pulumi.OutputState }
   381  
   382  func (DataLakeSettingsOutput) ElementType() reflect.Type {
   383  	return reflect.TypeOf((**DataLakeSettings)(nil)).Elem()
   384  }
   385  
   386  func (o DataLakeSettingsOutput) ToDataLakeSettingsOutput() DataLakeSettingsOutput {
   387  	return o
   388  }
   389  
   390  func (o DataLakeSettingsOutput) ToDataLakeSettingsOutputWithContext(ctx context.Context) DataLakeSettingsOutput {
   391  	return o
   392  }
   393  
   394  // Set of ARNs of AWS Lake Formation principals (IAM users or roles).
   395  func (o DataLakeSettingsOutput) Admins() pulumi.StringArrayOutput {
   396  	return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.Admins }).(pulumi.StringArrayOutput)
   397  }
   398  
   399  // Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
   400  func (o DataLakeSettingsOutput) AllowExternalDataFiltering() pulumi.BoolPtrOutput {
   401  	return o.ApplyT(func(v *DataLakeSettings) pulumi.BoolPtrOutput { return v.AllowExternalDataFiltering }).(pulumi.BoolPtrOutput)
   402  }
   403  
   404  // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.
   405  //
   406  // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared.
   407  func (o DataLakeSettingsOutput) AuthorizedSessionTagValueLists() pulumi.StringArrayOutput {
   408  	return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.AuthorizedSessionTagValueLists }).(pulumi.StringArrayOutput)
   409  }
   410  
   411  // Identifier for the Data Catalog. By default, the account ID.
   412  func (o DataLakeSettingsOutput) CatalogId() pulumi.StringPtrOutput {
   413  	return o.ApplyT(func(v *DataLakeSettings) pulumi.StringPtrOutput { return v.CatalogId }).(pulumi.StringPtrOutput)
   414  }
   415  
   416  // Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
   417  func (o DataLakeSettingsOutput) CreateDatabaseDefaultPermissions() DataLakeSettingsCreateDatabaseDefaultPermissionArrayOutput {
   418  	return o.ApplyT(func(v *DataLakeSettings) DataLakeSettingsCreateDatabaseDefaultPermissionArrayOutput {
   419  		return v.CreateDatabaseDefaultPermissions
   420  	}).(DataLakeSettingsCreateDatabaseDefaultPermissionArrayOutput)
   421  }
   422  
   423  // Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
   424  func (o DataLakeSettingsOutput) CreateTableDefaultPermissions() DataLakeSettingsCreateTableDefaultPermissionArrayOutput {
   425  	return o.ApplyT(func(v *DataLakeSettings) DataLakeSettingsCreateTableDefaultPermissionArrayOutput {
   426  		return v.CreateTableDefaultPermissions
   427  	}).(DataLakeSettingsCreateTableDefaultPermissionArrayOutput)
   428  }
   429  
   430  // A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
   431  func (o DataLakeSettingsOutput) ExternalDataFilteringAllowLists() pulumi.StringArrayOutput {
   432  	return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.ExternalDataFilteringAllowLists }).(pulumi.StringArrayOutput)
   433  }
   434  
   435  // Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
   436  func (o DataLakeSettingsOutput) ReadOnlyAdmins() pulumi.StringArrayOutput {
   437  	return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.ReadOnlyAdmins }).(pulumi.StringArrayOutput)
   438  }
   439  
   440  // List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
   441  func (o DataLakeSettingsOutput) TrustedResourceOwners() pulumi.StringArrayOutput {
   442  	return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.TrustedResourceOwners }).(pulumi.StringArrayOutput)
   443  }
   444  
   445  type DataLakeSettingsArrayOutput struct{ *pulumi.OutputState }
   446  
   447  func (DataLakeSettingsArrayOutput) ElementType() reflect.Type {
   448  	return reflect.TypeOf((*[]*DataLakeSettings)(nil)).Elem()
   449  }
   450  
   451  func (o DataLakeSettingsArrayOutput) ToDataLakeSettingsArrayOutput() DataLakeSettingsArrayOutput {
   452  	return o
   453  }
   454  
   455  func (o DataLakeSettingsArrayOutput) ToDataLakeSettingsArrayOutputWithContext(ctx context.Context) DataLakeSettingsArrayOutput {
   456  	return o
   457  }
   458  
   459  func (o DataLakeSettingsArrayOutput) Index(i pulumi.IntInput) DataLakeSettingsOutput {
   460  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DataLakeSettings {
   461  		return vs[0].([]*DataLakeSettings)[vs[1].(int)]
   462  	}).(DataLakeSettingsOutput)
   463  }
   464  
   465  type DataLakeSettingsMapOutput struct{ *pulumi.OutputState }
   466  
   467  func (DataLakeSettingsMapOutput) ElementType() reflect.Type {
   468  	return reflect.TypeOf((*map[string]*DataLakeSettings)(nil)).Elem()
   469  }
   470  
   471  func (o DataLakeSettingsMapOutput) ToDataLakeSettingsMapOutput() DataLakeSettingsMapOutput {
   472  	return o
   473  }
   474  
   475  func (o DataLakeSettingsMapOutput) ToDataLakeSettingsMapOutputWithContext(ctx context.Context) DataLakeSettingsMapOutput {
   476  	return o
   477  }
   478  
   479  func (o DataLakeSettingsMapOutput) MapIndex(k pulumi.StringInput) DataLakeSettingsOutput {
   480  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DataLakeSettings {
   481  		return vs[0].(map[string]*DataLakeSettings)[vs[1].(string)]
   482  	}).(DataLakeSettingsOutput)
   483  }
   484  
   485  func init() {
   486  	pulumi.RegisterInputType(reflect.TypeOf((*DataLakeSettingsInput)(nil)).Elem(), &DataLakeSettings{})
   487  	pulumi.RegisterInputType(reflect.TypeOf((*DataLakeSettingsArrayInput)(nil)).Elem(), DataLakeSettingsArray{})
   488  	pulumi.RegisterInputType(reflect.TypeOf((*DataLakeSettingsMapInput)(nil)).Elem(), DataLakeSettingsMap{})
   489  	pulumi.RegisterOutputType(DataLakeSettingsOutput{})
   490  	pulumi.RegisterOutputType(DataLakeSettingsArrayOutput{})
   491  	pulumi.RegisterOutputType(DataLakeSettingsMapOutput{})
   492  }