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

Information about a dataset that contains permissions for row-level security * (RLS). The permissions dataset maps fields to users or groups. For more * information, see Using * Row-Level Security (RLS) to Restrict Access to a Dataset in the Amazon * QuickSight User Guide.

The option to deny permissions by setting * PermissionPolicy to DENY_ACCESS is not supported for * new RLS datasets.

See Also:

AWS * API Reference

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

The namespace associated with the dataset that contains permissions for * RLS.

*/ inline const Aws::String& GetNamespace() const{ return m_namespace; } /** *

The namespace associated with the dataset that contains permissions for * RLS.

*/ inline bool NamespaceHasBeenSet() const { return m_namespaceHasBeenSet; } /** *

The namespace associated with the dataset that contains permissions for * RLS.

*/ inline void SetNamespace(const Aws::String& value) { m_namespaceHasBeenSet = true; m_namespace = value; } /** *

The namespace associated with the dataset that contains permissions for * RLS.

*/ inline void SetNamespace(Aws::String&& value) { m_namespaceHasBeenSet = true; m_namespace = std::move(value); } /** *

The namespace associated with the dataset that contains permissions for * RLS.

*/ inline void SetNamespace(const char* value) { m_namespaceHasBeenSet = true; m_namespace.assign(value); } /** *

The namespace associated with the dataset that contains permissions for * RLS.

*/ inline RowLevelPermissionDataSet& WithNamespace(const Aws::String& value) { SetNamespace(value); return *this;} /** *

The namespace associated with the dataset that contains permissions for * RLS.

*/ inline RowLevelPermissionDataSet& WithNamespace(Aws::String&& value) { SetNamespace(std::move(value)); return *this;} /** *

The namespace associated with the dataset that contains permissions for * RLS.

*/ inline RowLevelPermissionDataSet& WithNamespace(const char* value) { SetNamespace(value); return *this;} /** *

The Amazon Resource Name (ARN) of the dataset that contains permissions for * RLS.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The Amazon Resource Name (ARN) of the dataset that contains permissions for * RLS.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the dataset that contains permissions for * RLS.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The Amazon Resource Name (ARN) of the dataset that contains permissions for * RLS.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the dataset that contains permissions for * RLS.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The Amazon Resource Name (ARN) of the dataset that contains permissions for * RLS.

*/ inline RowLevelPermissionDataSet& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the dataset that contains permissions for * RLS.

*/ inline RowLevelPermissionDataSet& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the dataset that contains permissions for * RLS.

*/ inline RowLevelPermissionDataSet& WithArn(const char* value) { SetArn(value); return *this;} /** *

The type of permissions to use when interpreting the permissions for RLS. * DENY_ACCESS is included for backward compatibility only.

*/ inline const RowLevelPermissionPolicy& GetPermissionPolicy() const{ return m_permissionPolicy; } /** *

The type of permissions to use when interpreting the permissions for RLS. * DENY_ACCESS is included for backward compatibility only.

*/ inline bool PermissionPolicyHasBeenSet() const { return m_permissionPolicyHasBeenSet; } /** *

The type of permissions to use when interpreting the permissions for RLS. * DENY_ACCESS is included for backward compatibility only.

*/ inline void SetPermissionPolicy(const RowLevelPermissionPolicy& value) { m_permissionPolicyHasBeenSet = true; m_permissionPolicy = value; } /** *

The type of permissions to use when interpreting the permissions for RLS. * DENY_ACCESS is included for backward compatibility only.

*/ inline void SetPermissionPolicy(RowLevelPermissionPolicy&& value) { m_permissionPolicyHasBeenSet = true; m_permissionPolicy = std::move(value); } /** *

The type of permissions to use when interpreting the permissions for RLS. * DENY_ACCESS is included for backward compatibility only.

*/ inline RowLevelPermissionDataSet& WithPermissionPolicy(const RowLevelPermissionPolicy& value) { SetPermissionPolicy(value); return *this;} /** *

The type of permissions to use when interpreting the permissions for RLS. * DENY_ACCESS is included for backward compatibility only.

*/ inline RowLevelPermissionDataSet& WithPermissionPolicy(RowLevelPermissionPolicy&& value) { SetPermissionPolicy(std::move(value)); return *this;} /** *

The user or group rules associated with the dataset that contains permissions * for RLS.

By default, FormatVersion is * VERSION_1. When FormatVersion is * VERSION_1, UserName and GroupName are * required. When FormatVersion is VERSION_2, * UserARN and GroupARN are required, and * Namespace must not exist.

*/ inline const RowLevelPermissionFormatVersion& GetFormatVersion() const{ return m_formatVersion; } /** *

The user or group rules associated with the dataset that contains permissions * for RLS.

By default, FormatVersion is * VERSION_1. When FormatVersion is * VERSION_1, UserName and GroupName are * required. When FormatVersion is VERSION_2, * UserARN and GroupARN are required, and * Namespace must not exist.

*/ inline bool FormatVersionHasBeenSet() const { return m_formatVersionHasBeenSet; } /** *

The user or group rules associated with the dataset that contains permissions * for RLS.

By default, FormatVersion is * VERSION_1. When FormatVersion is * VERSION_1, UserName and GroupName are * required. When FormatVersion is VERSION_2, * UserARN and GroupARN are required, and * Namespace must not exist.

*/ inline void SetFormatVersion(const RowLevelPermissionFormatVersion& value) { m_formatVersionHasBeenSet = true; m_formatVersion = value; } /** *

The user or group rules associated with the dataset that contains permissions * for RLS.

By default, FormatVersion is * VERSION_1. When FormatVersion is * VERSION_1, UserName and GroupName are * required. When FormatVersion is VERSION_2, * UserARN and GroupARN are required, and * Namespace must not exist.

*/ inline void SetFormatVersion(RowLevelPermissionFormatVersion&& value) { m_formatVersionHasBeenSet = true; m_formatVersion = std::move(value); } /** *

The user or group rules associated with the dataset that contains permissions * for RLS.

By default, FormatVersion is * VERSION_1. When FormatVersion is * VERSION_1, UserName and GroupName are * required. When FormatVersion is VERSION_2, * UserARN and GroupARN are required, and * Namespace must not exist.

*/ inline RowLevelPermissionDataSet& WithFormatVersion(const RowLevelPermissionFormatVersion& value) { SetFormatVersion(value); return *this;} /** *

The user or group rules associated with the dataset that contains permissions * for RLS.

By default, FormatVersion is * VERSION_1. When FormatVersion is * VERSION_1, UserName and GroupName are * required. When FormatVersion is VERSION_2, * UserARN and GroupARN are required, and * Namespace must not exist.

*/ inline RowLevelPermissionDataSet& WithFormatVersion(RowLevelPermissionFormatVersion&& value) { SetFormatVersion(std::move(value)); return *this;} /** *

The status of the row-level security permission dataset. If enabled, the * status is ENABLED. If disabled, the status is * DISABLED.

*/ inline const Status& GetStatus() const{ return m_status; } /** *

The status of the row-level security permission dataset. If enabled, the * status is ENABLED. If disabled, the status is * DISABLED.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the row-level security permission dataset. If enabled, the * status is ENABLED. If disabled, the status is * DISABLED.

*/ inline void SetStatus(const Status& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the row-level security permission dataset. If enabled, the * status is ENABLED. If disabled, the status is * DISABLED.

*/ inline void SetStatus(Status&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the row-level security permission dataset. If enabled, the * status is ENABLED. If disabled, the status is * DISABLED.

*/ inline RowLevelPermissionDataSet& WithStatus(const Status& value) { SetStatus(value); return *this;} /** *

The status of the row-level security permission dataset. If enabled, the * status is ENABLED. If disabled, the status is * DISABLED.

*/ inline RowLevelPermissionDataSet& WithStatus(Status&& value) { SetStatus(std::move(value)); return *this;} private: Aws::String m_namespace; bool m_namespaceHasBeenSet = false; Aws::String m_arn; bool m_arnHasBeenSet = false; RowLevelPermissionPolicy m_permissionPolicy; bool m_permissionPolicyHasBeenSet = false; RowLevelPermissionFormatVersion m_formatVersion; bool m_formatVersionHasBeenSet = false; Status m_status; bool m_statusHasBeenSet = false; }; } // namespace Model } // namespace QuickSight } // namespace Aws