/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace LakeFormation { namespace Model { /** *

A structure representing a list of Lake Formation principals designated as * data lake administrators and lists of principal permission entries for default * create database and default create table permissions.

See Also:

* AWS * API Reference

*/ class DataLakeSettings { public: AWS_LAKEFORMATION_API DataLakeSettings(); AWS_LAKEFORMATION_API DataLakeSettings(Aws::Utils::Json::JsonView jsonValue); AWS_LAKEFORMATION_API DataLakeSettings& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_LAKEFORMATION_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

A list of Lake Formation principals. Supported principals are IAM users or * IAM roles.

*/ inline const Aws::Vector& GetDataLakeAdmins() const{ return m_dataLakeAdmins; } /** *

A list of Lake Formation principals. Supported principals are IAM users or * IAM roles.

*/ inline bool DataLakeAdminsHasBeenSet() const { return m_dataLakeAdminsHasBeenSet; } /** *

A list of Lake Formation principals. Supported principals are IAM users or * IAM roles.

*/ inline void SetDataLakeAdmins(const Aws::Vector& value) { m_dataLakeAdminsHasBeenSet = true; m_dataLakeAdmins = value; } /** *

A list of Lake Formation principals. Supported principals are IAM users or * IAM roles.

*/ inline void SetDataLakeAdmins(Aws::Vector&& value) { m_dataLakeAdminsHasBeenSet = true; m_dataLakeAdmins = std::move(value); } /** *

A list of Lake Formation principals. Supported principals are IAM users or * IAM roles.

*/ inline DataLakeSettings& WithDataLakeAdmins(const Aws::Vector& value) { SetDataLakeAdmins(value); return *this;} /** *

A list of Lake Formation principals. Supported principals are IAM users or * IAM roles.

*/ inline DataLakeSettings& WithDataLakeAdmins(Aws::Vector&& value) { SetDataLakeAdmins(std::move(value)); return *this;} /** *

A list of Lake Formation principals. Supported principals are IAM users or * IAM roles.

*/ inline DataLakeSettings& AddDataLakeAdmins(const DataLakePrincipal& value) { m_dataLakeAdminsHasBeenSet = true; m_dataLakeAdmins.push_back(value); return *this; } /** *

A list of Lake Formation principals. Supported principals are IAM users or * IAM roles.

*/ inline DataLakeSettings& AddDataLakeAdmins(DataLakePrincipal&& value) { m_dataLakeAdminsHasBeenSet = true; m_dataLakeAdmins.push_back(std::move(value)); return *this; } /** *

A list of Lake Formation principals with only view access to the resources, * without the ability to make changes. Supported principals are IAM users or IAM * roles.

*/ inline const Aws::Vector& GetReadOnlyAdmins() const{ return m_readOnlyAdmins; } /** *

A list of Lake Formation principals with only view access to the resources, * without the ability to make changes. Supported principals are IAM users or IAM * roles.

*/ inline bool ReadOnlyAdminsHasBeenSet() const { return m_readOnlyAdminsHasBeenSet; } /** *

A list of Lake Formation principals with only view access to the resources, * without the ability to make changes. Supported principals are IAM users or IAM * roles.

*/ inline void SetReadOnlyAdmins(const Aws::Vector& value) { m_readOnlyAdminsHasBeenSet = true; m_readOnlyAdmins = value; } /** *

A list of Lake Formation principals with only view access to the resources, * without the ability to make changes. Supported principals are IAM users or IAM * roles.

*/ inline void SetReadOnlyAdmins(Aws::Vector&& value) { m_readOnlyAdminsHasBeenSet = true; m_readOnlyAdmins = std::move(value); } /** *

A list of Lake Formation principals with only view access to the resources, * without the ability to make changes. Supported principals are IAM users or IAM * roles.

*/ inline DataLakeSettings& WithReadOnlyAdmins(const Aws::Vector& value) { SetReadOnlyAdmins(value); return *this;} /** *

A list of Lake Formation principals with only view access to the resources, * without the ability to make changes. Supported principals are IAM users or IAM * roles.

*/ inline DataLakeSettings& WithReadOnlyAdmins(Aws::Vector&& value) { SetReadOnlyAdmins(std::move(value)); return *this;} /** *

A list of Lake Formation principals with only view access to the resources, * without the ability to make changes. Supported principals are IAM users or IAM * roles.

*/ inline DataLakeSettings& AddReadOnlyAdmins(const DataLakePrincipal& value) { m_readOnlyAdminsHasBeenSet = true; m_readOnlyAdmins.push_back(value); return *this; } /** *

A list of Lake Formation principals with only view access to the resources, * without the ability to make changes. Supported principals are IAM users or IAM * roles.

*/ inline DataLakeSettings& AddReadOnlyAdmins(DataLakePrincipal&& value) { m_readOnlyAdminsHasBeenSet = true; m_readOnlyAdmins.push_back(std::move(value)); return *this; } /** *

Specifies whether access control on newly created database is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline const Aws::Vector& GetCreateDatabaseDefaultPermissions() const{ return m_createDatabaseDefaultPermissions; } /** *

Specifies whether access control on newly created database is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline bool CreateDatabaseDefaultPermissionsHasBeenSet() const { return m_createDatabaseDefaultPermissionsHasBeenSet; } /** *

Specifies whether access control on newly created database is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline void SetCreateDatabaseDefaultPermissions(const Aws::Vector& value) { m_createDatabaseDefaultPermissionsHasBeenSet = true; m_createDatabaseDefaultPermissions = value; } /** *

Specifies whether access control on newly created database is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline void SetCreateDatabaseDefaultPermissions(Aws::Vector&& value) { m_createDatabaseDefaultPermissionsHasBeenSet = true; m_createDatabaseDefaultPermissions = std::move(value); } /** *

Specifies whether access control on newly created database is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline DataLakeSettings& WithCreateDatabaseDefaultPermissions(const Aws::Vector& value) { SetCreateDatabaseDefaultPermissions(value); return *this;} /** *

Specifies whether access control on newly created database is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline DataLakeSettings& WithCreateDatabaseDefaultPermissions(Aws::Vector&& value) { SetCreateDatabaseDefaultPermissions(std::move(value)); return *this;} /** *

Specifies whether access control on newly created database is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline DataLakeSettings& AddCreateDatabaseDefaultPermissions(const PrincipalPermissions& value) { m_createDatabaseDefaultPermissionsHasBeenSet = true; m_createDatabaseDefaultPermissions.push_back(value); return *this; } /** *

Specifies whether access control on newly created database is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline DataLakeSettings& AddCreateDatabaseDefaultPermissions(PrincipalPermissions&& value) { m_createDatabaseDefaultPermissionsHasBeenSet = true; m_createDatabaseDefaultPermissions.push_back(std::move(value)); return *this; } /** *

Specifies whether access control on newly created table is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline const Aws::Vector& GetCreateTableDefaultPermissions() const{ return m_createTableDefaultPermissions; } /** *

Specifies whether access control on newly created table is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline bool CreateTableDefaultPermissionsHasBeenSet() const { return m_createTableDefaultPermissionsHasBeenSet; } /** *

Specifies whether access control on newly created table is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline void SetCreateTableDefaultPermissions(const Aws::Vector& value) { m_createTableDefaultPermissionsHasBeenSet = true; m_createTableDefaultPermissions = value; } /** *

Specifies whether access control on newly created table is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline void SetCreateTableDefaultPermissions(Aws::Vector&& value) { m_createTableDefaultPermissionsHasBeenSet = true; m_createTableDefaultPermissions = std::move(value); } /** *

Specifies whether access control on newly created table is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline DataLakeSettings& WithCreateTableDefaultPermissions(const Aws::Vector& value) { SetCreateTableDefaultPermissions(value); return *this;} /** *

Specifies whether access control on newly created table is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline DataLakeSettings& WithCreateTableDefaultPermissions(Aws::Vector&& value) { SetCreateTableDefaultPermissions(std::move(value)); return *this;} /** *

Specifies whether access control on newly created table is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline DataLakeSettings& AddCreateTableDefaultPermissions(const PrincipalPermissions& value) { m_createTableDefaultPermissionsHasBeenSet = true; m_createTableDefaultPermissions.push_back(value); return *this; } /** *

Specifies whether access control on newly created table is managed by Lake * Formation permissions or exclusively by IAM permissions.

A null value * indicates access control by Lake Formation permissions. A value that assigns ALL * to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is * referred to as the setting "Use only IAM access control," and is for backward * compatibility with the Glue permission model implemented by IAM permissions.

*

The only permitted values are an empty array or an array that contains a * single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more * information, see Changing * the Default Security Settings for Your Data Lake.

*/ inline DataLakeSettings& AddCreateTableDefaultPermissions(PrincipalPermissions&& value) { m_createTableDefaultPermissionsHasBeenSet = true; m_createTableDefaultPermissions.push_back(std::move(value)); return *this; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline const Aws::Map& GetParameters() const{ return m_parameters; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline void SetParameters(const Aws::Map& value) { m_parametersHasBeenSet = true; m_parameters = value; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline void SetParameters(Aws::Map&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& WithParameters(const Aws::Map& value) { SetParameters(value); return *this;} /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& WithParameters(Aws::Map&& value) { SetParameters(std::move(value)); return *this;} /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& AddParameters(const Aws::String& key, const Aws::String& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& AddParameters(Aws::String&& key, const Aws::String& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& AddParameters(const Aws::String& key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& AddParameters(Aws::String&& key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& AddParameters(const char* key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& AddParameters(Aws::String&& key, const char* value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; } /** *

A key-value map that provides an additional configuration on your data lake. * CrossAccountVersion is the key you can configure in the Parameters field. * Accepted values for the CrossAccountVersion key are 1, 2, and 3.

*/ inline DataLakeSettings& AddParameters(const char* key, const char* value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline const Aws::Vector& GetTrustedResourceOwners() const{ return m_trustedResourceOwners; } /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline bool TrustedResourceOwnersHasBeenSet() const { return m_trustedResourceOwnersHasBeenSet; } /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline void SetTrustedResourceOwners(const Aws::Vector& value) { m_trustedResourceOwnersHasBeenSet = true; m_trustedResourceOwners = value; } /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline void SetTrustedResourceOwners(Aws::Vector&& value) { m_trustedResourceOwnersHasBeenSet = true; m_trustedResourceOwners = std::move(value); } /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline DataLakeSettings& WithTrustedResourceOwners(const Aws::Vector& value) { SetTrustedResourceOwners(value); return *this;} /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline DataLakeSettings& WithTrustedResourceOwners(Aws::Vector&& value) { SetTrustedResourceOwners(std::move(value)); return *this;} /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline DataLakeSettings& AddTrustedResourceOwners(const Aws::String& value) { m_trustedResourceOwnersHasBeenSet = true; m_trustedResourceOwners.push_back(value); return *this; } /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline DataLakeSettings& AddTrustedResourceOwners(Aws::String&& value) { m_trustedResourceOwnersHasBeenSet = true; m_trustedResourceOwners.push_back(std::move(value)); return *this; } /** *

A list of the resource-owning account IDs that the caller's account can use * to share their user access details (user ARNs). The user ARNs can be logged in * the resource owner's CloudTrail log.

You may want to specify this * property when you are in a high-trust boundary, such as the same team or * company.

*/ inline DataLakeSettings& AddTrustedResourceOwners(const char* value) { m_trustedResourceOwnersHasBeenSet = true; m_trustedResourceOwners.push_back(value); return *this; } /** *

Whether to allow Amazon EMR clusters to access data managed by Lake * Formation.

If true, you allow Amazon EMR clusters to access data in * Amazon S3 locations that are registered with Lake Formation.

If false or * null, no Amazon EMR clusters will be able to access data in Amazon S3 locations * that are registered with Lake Formation.

For more information, see (Optional) * Allow external data filtering.

*/ inline bool GetAllowExternalDataFiltering() const{ return m_allowExternalDataFiltering; } /** *

Whether to allow Amazon EMR clusters to access data managed by Lake * Formation.

If true, you allow Amazon EMR clusters to access data in * Amazon S3 locations that are registered with Lake Formation.

If false or * null, no Amazon EMR clusters will be able to access data in Amazon S3 locations * that are registered with Lake Formation.

For more information, see (Optional) * Allow external data filtering.

*/ inline bool AllowExternalDataFilteringHasBeenSet() const { return m_allowExternalDataFilteringHasBeenSet; } /** *

Whether to allow Amazon EMR clusters to access data managed by Lake * Formation.

If true, you allow Amazon EMR clusters to access data in * Amazon S3 locations that are registered with Lake Formation.

If false or * null, no Amazon EMR clusters will be able to access data in Amazon S3 locations * that are registered with Lake Formation.

For more information, see (Optional) * Allow external data filtering.

*/ inline void SetAllowExternalDataFiltering(bool value) { m_allowExternalDataFilteringHasBeenSet = true; m_allowExternalDataFiltering = value; } /** *

Whether to allow Amazon EMR clusters to access data managed by Lake * Formation.

If true, you allow Amazon EMR clusters to access data in * Amazon S3 locations that are registered with Lake Formation.

If false or * null, no Amazon EMR clusters will be able to access data in Amazon S3 locations * that are registered with Lake Formation.

For more information, see (Optional) * Allow external data filtering.

*/ inline DataLakeSettings& WithAllowExternalDataFiltering(bool value) { SetAllowExternalDataFiltering(value); return *this;} /** *

Whether to allow a third-party query engine to get data access credentials * without session tags when a caller has full data access permissions.

*/ inline bool GetAllowFullTableExternalDataAccess() const{ return m_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.

*/ inline bool AllowFullTableExternalDataAccessHasBeenSet() const { return m_allowFullTableExternalDataAccessHasBeenSet; } /** *

Whether to allow a third-party query engine to get data access credentials * without session tags when a caller has full data access permissions.

*/ inline void SetAllowFullTableExternalDataAccess(bool value) { m_allowFullTableExternalDataAccessHasBeenSet = true; m_allowFullTableExternalDataAccess = value; } /** *

Whether to allow a third-party query engine to get data access credentials * without session tags when a caller has full data access permissions.

*/ inline DataLakeSettings& WithAllowFullTableExternalDataAccess(bool value) { SetAllowFullTableExternalDataAccess(value); return *this;} /** *

A list of the account IDs of Amazon Web Services accounts with Amazon EMR * clusters that are to perform data filtering.>

*/ inline const Aws::Vector& GetExternalDataFilteringAllowList() const{ return m_externalDataFilteringAllowList; } /** *

A list of the account IDs of Amazon Web Services accounts with Amazon EMR * clusters that are to perform data filtering.>

*/ inline bool ExternalDataFilteringAllowListHasBeenSet() const { return m_externalDataFilteringAllowListHasBeenSet; } /** *

A list of the account IDs of Amazon Web Services accounts with Amazon EMR * clusters that are to perform data filtering.>

*/ inline void SetExternalDataFilteringAllowList(const Aws::Vector& value) { m_externalDataFilteringAllowListHasBeenSet = true; m_externalDataFilteringAllowList = value; } /** *

A list of the account IDs of Amazon Web Services accounts with Amazon EMR * clusters that are to perform data filtering.>

*/ inline void SetExternalDataFilteringAllowList(Aws::Vector&& value) { m_externalDataFilteringAllowListHasBeenSet = true; m_externalDataFilteringAllowList = std::move(value); } /** *

A list of the account IDs of Amazon Web Services accounts with Amazon EMR * clusters that are to perform data filtering.>

*/ inline DataLakeSettings& WithExternalDataFilteringAllowList(const Aws::Vector& value) { SetExternalDataFilteringAllowList(value); return *this;} /** *

A list of the account IDs of Amazon Web Services accounts with Amazon EMR * clusters that are to perform data filtering.>

*/ inline DataLakeSettings& WithExternalDataFilteringAllowList(Aws::Vector&& value) { SetExternalDataFilteringAllowList(std::move(value)); return *this;} /** *

A list of the account IDs of Amazon Web Services accounts with Amazon EMR * clusters that are to perform data filtering.>

*/ inline DataLakeSettings& AddExternalDataFilteringAllowList(const DataLakePrincipal& value) { m_externalDataFilteringAllowListHasBeenSet = true; m_externalDataFilteringAllowList.push_back(value); return *this; } /** *

A list of the account IDs of Amazon Web Services accounts with Amazon EMR * clusters that are to perform data filtering.>

*/ inline DataLakeSettings& AddExternalDataFilteringAllowList(DataLakePrincipal&& value) { m_externalDataFilteringAllowListHasBeenSet = true; m_externalDataFilteringAllowList.push_back(std::move(value)); return *this; } /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline const Aws::Vector& GetAuthorizedSessionTagValueList() const{ return m_authorizedSessionTagValueList; } /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline bool AuthorizedSessionTagValueListHasBeenSet() const { return m_authorizedSessionTagValueListHasBeenSet; } /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline void SetAuthorizedSessionTagValueList(const Aws::Vector& value) { m_authorizedSessionTagValueListHasBeenSet = true; m_authorizedSessionTagValueList = value; } /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline void SetAuthorizedSessionTagValueList(Aws::Vector&& value) { m_authorizedSessionTagValueListHasBeenSet = true; m_authorizedSessionTagValueList = std::move(value); } /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline DataLakeSettings& WithAuthorizedSessionTagValueList(const Aws::Vector& value) { SetAuthorizedSessionTagValueList(value); return *this;} /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline DataLakeSettings& WithAuthorizedSessionTagValueList(Aws::Vector&& value) { SetAuthorizedSessionTagValueList(std::move(value)); return *this;} /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline DataLakeSettings& AddAuthorizedSessionTagValueList(const Aws::String& value) { m_authorizedSessionTagValueListHasBeenSet = true; m_authorizedSessionTagValueList.push_back(value); return *this; } /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline DataLakeSettings& AddAuthorizedSessionTagValueList(Aws::String&& value) { m_authorizedSessionTagValueListHasBeenSet = true; m_authorizedSessionTagValueList.push_back(std::move(value)); return *this; } /** *

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. Lake Formation * will publish the acceptable key-value pair, for example key = * "LakeFormationTrustedCaller" and value = "TRUE" and the third party integrator * must properly tag the temporary security credentials that will be used to call * Lake Formation's administrative APIs.

*/ inline DataLakeSettings& AddAuthorizedSessionTagValueList(const char* value) { m_authorizedSessionTagValueListHasBeenSet = true; m_authorizedSessionTagValueList.push_back(value); return *this; } private: Aws::Vector m_dataLakeAdmins; bool m_dataLakeAdminsHasBeenSet = false; Aws::Vector m_readOnlyAdmins; bool m_readOnlyAdminsHasBeenSet = false; Aws::Vector m_createDatabaseDefaultPermissions; bool m_createDatabaseDefaultPermissionsHasBeenSet = false; Aws::Vector m_createTableDefaultPermissions; bool m_createTableDefaultPermissionsHasBeenSet = false; Aws::Map m_parameters; bool m_parametersHasBeenSet = false; Aws::Vector m_trustedResourceOwners; bool m_trustedResourceOwnersHasBeenSet = false; bool m_allowExternalDataFiltering; bool m_allowExternalDataFilteringHasBeenSet = false; bool m_allowFullTableExternalDataAccess; bool m_allowFullTableExternalDataAccessHasBeenSet = false; Aws::Vector m_externalDataFilteringAllowList; bool m_externalDataFilteringAllowListHasBeenSet = false; Aws::Vector m_authorizedSessionTagValueList; bool m_authorizedSessionTagValueListHasBeenSet = false; }; } // namespace Model } // namespace LakeFormation } // namespace Aws