All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.lakeformation.DataLakeSettingsArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.72.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.lakeformation;

import com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;
import com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class DataLakeSettingsArgs extends com.pulumi.resources.ResourceArgs {

    public static final DataLakeSettingsArgs Empty = new DataLakeSettingsArgs();

    /**
     * Set of ARNs of AWS Lake Formation principals (IAM users or roles).
     * 
     */
    @Import(name="admins")
    private @Nullable Output> admins;

    /**
     * @return Set of ARNs of AWS Lake Formation principals (IAM users or roles).
     * 
     */
    public Optional>> admins() {
        return Optional.ofNullable(this.admins);
    }

    /**
     * Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
     * 
     */
    @Import(name="allowExternalDataFiltering")
    private @Nullable Output allowExternalDataFiltering;

    /**
     * @return Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
     * 
     */
    public Optional> allowExternalDataFiltering() {
        return Optional.ofNullable(this.allowExternalDataFiltering);
    }

    /**
     * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.
     * 
     */
    @Import(name="allowFullTableExternalDataAccess")
    private @Nullable Output allowFullTableExternalDataAccess;

    /**
     * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.
     * 
     */
    public Optional> allowFullTableExternalDataAccess() {
        return Optional.ofNullable(this.allowFullTableExternalDataAccess);
    }

    /**
     * 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.
     * 
     */
    @Import(name="authorizedSessionTagValueLists")
    private @Nullable Output> authorizedSessionTagValueLists;

    /**
     * @return 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.
     * 
     */
    public Optional>> authorizedSessionTagValueLists() {
        return Optional.ofNullable(this.authorizedSessionTagValueLists);
    }

    /**
     * Identifier for the Data Catalog. By default, the account ID.
     * 
     */
    @Import(name="catalogId")
    private @Nullable Output catalogId;

    /**
     * @return Identifier for the Data Catalog. By default, the account ID.
     * 
     */
    public Optional> catalogId() {
        return Optional.ofNullable(this.catalogId);
    }

    /**
     * Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
     * 
     */
    @Import(name="createDatabaseDefaultPermissions")
    private @Nullable Output> createDatabaseDefaultPermissions;

    /**
     * @return Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
     * 
     */
    public Optional>> createDatabaseDefaultPermissions() {
        return Optional.ofNullable(this.createDatabaseDefaultPermissions);
    }

    /**
     * Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
     * 
     */
    @Import(name="createTableDefaultPermissions")
    private @Nullable Output> createTableDefaultPermissions;

    /**
     * @return Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
     * 
     */
    public Optional>> createTableDefaultPermissions() {
        return Optional.ofNullable(this.createTableDefaultPermissions);
    }

    /**
     * A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
     * 
     */
    @Import(name="externalDataFilteringAllowLists")
    private @Nullable Output> externalDataFilteringAllowLists;

    /**
     * @return A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
     * 
     */
    public Optional>> externalDataFilteringAllowLists() {
        return Optional.ofNullable(this.externalDataFilteringAllowLists);
    }

    /**
     * Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`.
     * 
     */
    @Import(name="parameters")
    private @Nullable Output> parameters;

    /**
     * @return Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`.
     * 
     */
    public Optional>> parameters() {
        return Optional.ofNullable(this.parameters);
    }

    /**
     * Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
     * 
     */
    @Import(name="readOnlyAdmins")
    private @Nullable Output> readOnlyAdmins;

    /**
     * @return Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
     * 
     */
    public Optional>> readOnlyAdmins() {
        return Optional.ofNullable(this.readOnlyAdmins);
    }

    /**
     * List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
     * 
     * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.
     * 
     */
    @Import(name="trustedResourceOwners")
    private @Nullable Output> trustedResourceOwners;

    /**
     * @return List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
     * 
     * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.
     * 
     */
    public Optional>> trustedResourceOwners() {
        return Optional.ofNullable(this.trustedResourceOwners);
    }

    private DataLakeSettingsArgs() {}

    private DataLakeSettingsArgs(DataLakeSettingsArgs $) {
        this.admins = $.admins;
        this.allowExternalDataFiltering = $.allowExternalDataFiltering;
        this.allowFullTableExternalDataAccess = $.allowFullTableExternalDataAccess;
        this.authorizedSessionTagValueLists = $.authorizedSessionTagValueLists;
        this.catalogId = $.catalogId;
        this.createDatabaseDefaultPermissions = $.createDatabaseDefaultPermissions;
        this.createTableDefaultPermissions = $.createTableDefaultPermissions;
        this.externalDataFilteringAllowLists = $.externalDataFilteringAllowLists;
        this.parameters = $.parameters;
        this.readOnlyAdmins = $.readOnlyAdmins;
        this.trustedResourceOwners = $.trustedResourceOwners;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(DataLakeSettingsArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private DataLakeSettingsArgs $;

        public Builder() {
            $ = new DataLakeSettingsArgs();
        }

        public Builder(DataLakeSettingsArgs defaults) {
            $ = new DataLakeSettingsArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param admins Set of ARNs of AWS Lake Formation principals (IAM users or roles).
         * 
         * @return builder
         * 
         */
        public Builder admins(@Nullable Output> admins) {
            $.admins = admins;
            return this;
        }

        /**
         * @param admins Set of ARNs of AWS Lake Formation principals (IAM users or roles).
         * 
         * @return builder
         * 
         */
        public Builder admins(List admins) {
            return admins(Output.of(admins));
        }

        /**
         * @param admins Set of ARNs of AWS Lake Formation principals (IAM users or roles).
         * 
         * @return builder
         * 
         */
        public Builder admins(String... admins) {
            return admins(List.of(admins));
        }

        /**
         * @param allowExternalDataFiltering Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
         * 
         * @return builder
         * 
         */
        public Builder allowExternalDataFiltering(@Nullable Output allowExternalDataFiltering) {
            $.allowExternalDataFiltering = allowExternalDataFiltering;
            return this;
        }

        /**
         * @param allowExternalDataFiltering Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
         * 
         * @return builder
         * 
         */
        public Builder allowExternalDataFiltering(Boolean allowExternalDataFiltering) {
            return allowExternalDataFiltering(Output.of(allowExternalDataFiltering));
        }

        /**
         * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.
         * 
         * @return builder
         * 
         */
        public Builder allowFullTableExternalDataAccess(@Nullable Output allowFullTableExternalDataAccess) {
            $.allowFullTableExternalDataAccess = allowFullTableExternalDataAccess;
            return this;
        }

        /**
         * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.
         * 
         * @return builder
         * 
         */
        public Builder allowFullTableExternalDataAccess(Boolean allowFullTableExternalDataAccess) {
            return allowFullTableExternalDataAccess(Output.of(allowFullTableExternalDataAccess));
        }

        /**
         * @param authorizedSessionTagValueLists 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.
         * 
         * @return builder
         * 
         */
        public Builder authorizedSessionTagValueLists(@Nullable Output> authorizedSessionTagValueLists) {
            $.authorizedSessionTagValueLists = authorizedSessionTagValueLists;
            return this;
        }

        /**
         * @param authorizedSessionTagValueLists 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.
         * 
         * @return builder
         * 
         */
        public Builder authorizedSessionTagValueLists(List authorizedSessionTagValueLists) {
            return authorizedSessionTagValueLists(Output.of(authorizedSessionTagValueLists));
        }

        /**
         * @param authorizedSessionTagValueLists 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.
         * 
         * @return builder
         * 
         */
        public Builder authorizedSessionTagValueLists(String... authorizedSessionTagValueLists) {
            return authorizedSessionTagValueLists(List.of(authorizedSessionTagValueLists));
        }

        /**
         * @param catalogId Identifier for the Data Catalog. By default, the account ID.
         * 
         * @return builder
         * 
         */
        public Builder catalogId(@Nullable Output catalogId) {
            $.catalogId = catalogId;
            return this;
        }

        /**
         * @param catalogId Identifier for the Data Catalog. By default, the account ID.
         * 
         * @return builder
         * 
         */
        public Builder catalogId(String catalogId) {
            return catalogId(Output.of(catalogId));
        }

        /**
         * @param createDatabaseDefaultPermissions Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder createDatabaseDefaultPermissions(@Nullable Output> createDatabaseDefaultPermissions) {
            $.createDatabaseDefaultPermissions = createDatabaseDefaultPermissions;
            return this;
        }

        /**
         * @param createDatabaseDefaultPermissions Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder createDatabaseDefaultPermissions(List createDatabaseDefaultPermissions) {
            return createDatabaseDefaultPermissions(Output.of(createDatabaseDefaultPermissions));
        }

        /**
         * @param createDatabaseDefaultPermissions Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs... createDatabaseDefaultPermissions) {
            return createDatabaseDefaultPermissions(List.of(createDatabaseDefaultPermissions));
        }

        /**
         * @param createTableDefaultPermissions Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder createTableDefaultPermissions(@Nullable Output> createTableDefaultPermissions) {
            $.createTableDefaultPermissions = createTableDefaultPermissions;
            return this;
        }

        /**
         * @param createTableDefaultPermissions Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder createTableDefaultPermissions(List createTableDefaultPermissions) {
            return createTableDefaultPermissions(Output.of(createTableDefaultPermissions));
        }

        /**
         * @param createTableDefaultPermissions Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs... createTableDefaultPermissions) {
            return createTableDefaultPermissions(List.of(createTableDefaultPermissions));
        }

        /**
         * @param externalDataFilteringAllowLists A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
         * 
         * @return builder
         * 
         */
        public Builder externalDataFilteringAllowLists(@Nullable Output> externalDataFilteringAllowLists) {
            $.externalDataFilteringAllowLists = externalDataFilteringAllowLists;
            return this;
        }

        /**
         * @param externalDataFilteringAllowLists A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
         * 
         * @return builder
         * 
         */
        public Builder externalDataFilteringAllowLists(List externalDataFilteringAllowLists) {
            return externalDataFilteringAllowLists(Output.of(externalDataFilteringAllowLists));
        }

        /**
         * @param externalDataFilteringAllowLists A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
         * 
         * @return builder
         * 
         */
        public Builder externalDataFilteringAllowLists(String... externalDataFilteringAllowLists) {
            return externalDataFilteringAllowLists(List.of(externalDataFilteringAllowLists));
        }

        /**
         * @param parameters Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`.
         * 
         * @return builder
         * 
         */
        public Builder parameters(@Nullable Output> parameters) {
            $.parameters = parameters;
            return this;
        }

        /**
         * @param parameters Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`.
         * 
         * @return builder
         * 
         */
        public Builder parameters(Map parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param readOnlyAdmins Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
         * 
         * @return builder
         * 
         */
        public Builder readOnlyAdmins(@Nullable Output> readOnlyAdmins) {
            $.readOnlyAdmins = readOnlyAdmins;
            return this;
        }

        /**
         * @param readOnlyAdmins Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
         * 
         * @return builder
         * 
         */
        public Builder readOnlyAdmins(List readOnlyAdmins) {
            return readOnlyAdmins(Output.of(readOnlyAdmins));
        }

        /**
         * @param readOnlyAdmins Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
         * 
         * @return builder
         * 
         */
        public Builder readOnlyAdmins(String... readOnlyAdmins) {
            return readOnlyAdmins(List.of(readOnlyAdmins));
        }

        /**
         * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
         * 
         * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.
         * 
         * @return builder
         * 
         */
        public Builder trustedResourceOwners(@Nullable Output> trustedResourceOwners) {
            $.trustedResourceOwners = trustedResourceOwners;
            return this;
        }

        /**
         * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
         * 
         * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.
         * 
         * @return builder
         * 
         */
        public Builder trustedResourceOwners(List trustedResourceOwners) {
            return trustedResourceOwners(Output.of(trustedResourceOwners));
        }

        /**
         * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).
         * 
         * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.
         * 
         * @return builder
         * 
         */
        public Builder trustedResourceOwners(String... trustedResourceOwners) {
            return trustedResourceOwners(List.of(trustedResourceOwners));
        }

        public DataLakeSettingsArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy