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

A rule defined to grant access on one or more restricted columns. Each * dataset can have multiple rules. To create a restricted column, you add it to * one or more rules. Each rule must contain at least one column and at least one * user or group. To be able to see a restricted column, a user or group needs to * be added to a rule for that column.

See Also:

AWS * API Reference

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

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline const Aws::Vector& GetPrincipals() const{ return m_principals; } /** *

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline bool PrincipalsHasBeenSet() const { return m_principalsHasBeenSet; } /** *

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline void SetPrincipals(const Aws::Vector& value) { m_principalsHasBeenSet = true; m_principals = value; } /** *

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline void SetPrincipals(Aws::Vector&& value) { m_principalsHasBeenSet = true; m_principals = std::move(value); } /** *

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline ColumnLevelPermissionRule& WithPrincipals(const Aws::Vector& value) { SetPrincipals(value); return *this;} /** *

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline ColumnLevelPermissionRule& WithPrincipals(Aws::Vector&& value) { SetPrincipals(std::move(value)); return *this;} /** *

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline ColumnLevelPermissionRule& AddPrincipals(const Aws::String& value) { m_principalsHasBeenSet = true; m_principals.push_back(value); return *this; } /** *

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline ColumnLevelPermissionRule& AddPrincipals(Aws::String&& value) { m_principalsHasBeenSet = true; m_principals.push_back(std::move(value)); return *this; } /** *

An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or * groups.

*/ inline ColumnLevelPermissionRule& AddPrincipals(const char* value) { m_principalsHasBeenSet = true; m_principals.push_back(value); return *this; } /** *

An array of column names.

*/ inline const Aws::Vector& GetColumnNames() const{ return m_columnNames; } /** *

An array of column names.

*/ inline bool ColumnNamesHasBeenSet() const { return m_columnNamesHasBeenSet; } /** *

An array of column names.

*/ inline void SetColumnNames(const Aws::Vector& value) { m_columnNamesHasBeenSet = true; m_columnNames = value; } /** *

An array of column names.

*/ inline void SetColumnNames(Aws::Vector&& value) { m_columnNamesHasBeenSet = true; m_columnNames = std::move(value); } /** *

An array of column names.

*/ inline ColumnLevelPermissionRule& WithColumnNames(const Aws::Vector& value) { SetColumnNames(value); return *this;} /** *

An array of column names.

*/ inline ColumnLevelPermissionRule& WithColumnNames(Aws::Vector&& value) { SetColumnNames(std::move(value)); return *this;} /** *

An array of column names.

*/ inline ColumnLevelPermissionRule& AddColumnNames(const Aws::String& value) { m_columnNamesHasBeenSet = true; m_columnNames.push_back(value); return *this; } /** *

An array of column names.

*/ inline ColumnLevelPermissionRule& AddColumnNames(Aws::String&& value) { m_columnNamesHasBeenSet = true; m_columnNames.push_back(std::move(value)); return *this; } /** *

An array of column names.

*/ inline ColumnLevelPermissionRule& AddColumnNames(const char* value) { m_columnNamesHasBeenSet = true; m_columnNames.push_back(value); return *this; } private: Aws::Vector m_principals; bool m_principalsHasBeenSet = false; Aws::Vector m_columnNames; bool m_columnNamesHasBeenSet = false; }; } // namespace Model } // namespace QuickSight } // namespace Aws