/** * 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 #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace LakeFormation { namespace Model { /** *

A structure for the resource.

See Also:

AWS * API Reference

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

The identifier for the Data Catalog. By default, the account ID. The Data * Catalog is the persistent metadata store. It contains database definitions, * table definitions, and other control information to manage your Lake Formation * environment.

*/ inline const CatalogResource& GetCatalog() const{ return m_catalog; } /** *

The identifier for the Data Catalog. By default, the account ID. The Data * Catalog is the persistent metadata store. It contains database definitions, * table definitions, and other control information to manage your Lake Formation * environment.

*/ inline bool CatalogHasBeenSet() const { return m_catalogHasBeenSet; } /** *

The identifier for the Data Catalog. By default, the account ID. The Data * Catalog is the persistent metadata store. It contains database definitions, * table definitions, and other control information to manage your Lake Formation * environment.

*/ inline void SetCatalog(const CatalogResource& value) { m_catalogHasBeenSet = true; m_catalog = value; } /** *

The identifier for the Data Catalog. By default, the account ID. The Data * Catalog is the persistent metadata store. It contains database definitions, * table definitions, and other control information to manage your Lake Formation * environment.

*/ inline void SetCatalog(CatalogResource&& value) { m_catalogHasBeenSet = true; m_catalog = std::move(value); } /** *

The identifier for the Data Catalog. By default, the account ID. The Data * Catalog is the persistent metadata store. It contains database definitions, * table definitions, and other control information to manage your Lake Formation * environment.

*/ inline Resource& WithCatalog(const CatalogResource& value) { SetCatalog(value); return *this;} /** *

The identifier for the Data Catalog. By default, the account ID. The Data * Catalog is the persistent metadata store. It contains database definitions, * table definitions, and other control information to manage your Lake Formation * environment.

*/ inline Resource& WithCatalog(CatalogResource&& value) { SetCatalog(std::move(value)); return *this;} /** *

The database for the resource. Unique to the Data Catalog. A database is a * set of associated table definitions organized into a logical group. You can * Grant and Revoke database permissions to a principal.

*/ inline const DatabaseResource& GetDatabase() const{ return m_database; } /** *

The database for the resource. Unique to the Data Catalog. A database is a * set of associated table definitions organized into a logical group. You can * Grant and Revoke database permissions to a principal.

*/ inline bool DatabaseHasBeenSet() const { return m_databaseHasBeenSet; } /** *

The database for the resource. Unique to the Data Catalog. A database is a * set of associated table definitions organized into a logical group. You can * Grant and Revoke database permissions to a principal.

*/ inline void SetDatabase(const DatabaseResource& value) { m_databaseHasBeenSet = true; m_database = value; } /** *

The database for the resource. Unique to the Data Catalog. A database is a * set of associated table definitions organized into a logical group. You can * Grant and Revoke database permissions to a principal.

*/ inline void SetDatabase(DatabaseResource&& value) { m_databaseHasBeenSet = true; m_database = std::move(value); } /** *

The database for the resource. Unique to the Data Catalog. A database is a * set of associated table definitions organized into a logical group. You can * Grant and Revoke database permissions to a principal.

*/ inline Resource& WithDatabase(const DatabaseResource& value) { SetDatabase(value); return *this;} /** *

The database for the resource. Unique to the Data Catalog. A database is a * set of associated table definitions organized into a logical group. You can * Grant and Revoke database permissions to a principal.

*/ inline Resource& WithDatabase(DatabaseResource&& value) { SetDatabase(std::move(value)); return *this;} /** *

The table for the resource. A table is a metadata definition that represents * your data. You can Grant and Revoke table privileges to a principal.

*/ inline const TableResource& GetTable() const{ return m_table; } /** *

The table for the resource. A table is a metadata definition that represents * your data. You can Grant and Revoke table privileges to a principal.

*/ inline bool TableHasBeenSet() const { return m_tableHasBeenSet; } /** *

The table for the resource. A table is a metadata definition that represents * your data. You can Grant and Revoke table privileges to a principal.

*/ inline void SetTable(const TableResource& value) { m_tableHasBeenSet = true; m_table = value; } /** *

The table for the resource. A table is a metadata definition that represents * your data. You can Grant and Revoke table privileges to a principal.

*/ inline void SetTable(TableResource&& value) { m_tableHasBeenSet = true; m_table = std::move(value); } /** *

The table for the resource. A table is a metadata definition that represents * your data. You can Grant and Revoke table privileges to a principal.

*/ inline Resource& WithTable(const TableResource& value) { SetTable(value); return *this;} /** *

The table for the resource. A table is a metadata definition that represents * your data. You can Grant and Revoke table privileges to a principal.

*/ inline Resource& WithTable(TableResource&& value) { SetTable(std::move(value)); return *this;} /** *

The table with columns for the resource. A principal with permissions to this * resource can select metadata from the columns of a table in the Data Catalog and * the underlying data in Amazon S3.

*/ inline const TableWithColumnsResource& GetTableWithColumns() const{ return m_tableWithColumns; } /** *

The table with columns for the resource. A principal with permissions to this * resource can select metadata from the columns of a table in the Data Catalog and * the underlying data in Amazon S3.

*/ inline bool TableWithColumnsHasBeenSet() const { return m_tableWithColumnsHasBeenSet; } /** *

The table with columns for the resource. A principal with permissions to this * resource can select metadata from the columns of a table in the Data Catalog and * the underlying data in Amazon S3.

*/ inline void SetTableWithColumns(const TableWithColumnsResource& value) { m_tableWithColumnsHasBeenSet = true; m_tableWithColumns = value; } /** *

The table with columns for the resource. A principal with permissions to this * resource can select metadata from the columns of a table in the Data Catalog and * the underlying data in Amazon S3.

*/ inline void SetTableWithColumns(TableWithColumnsResource&& value) { m_tableWithColumnsHasBeenSet = true; m_tableWithColumns = std::move(value); } /** *

The table with columns for the resource. A principal with permissions to this * resource can select metadata from the columns of a table in the Data Catalog and * the underlying data in Amazon S3.

*/ inline Resource& WithTableWithColumns(const TableWithColumnsResource& value) { SetTableWithColumns(value); return *this;} /** *

The table with columns for the resource. A principal with permissions to this * resource can select metadata from the columns of a table in the Data Catalog and * the underlying data in Amazon S3.

*/ inline Resource& WithTableWithColumns(TableWithColumnsResource&& value) { SetTableWithColumns(std::move(value)); return *this;} /** *

The location of an Amazon S3 path where permissions are granted or revoked. *

*/ inline const DataLocationResource& GetDataLocation() const{ return m_dataLocation; } /** *

The location of an Amazon S3 path where permissions are granted or revoked. *

*/ inline bool DataLocationHasBeenSet() const { return m_dataLocationHasBeenSet; } /** *

The location of an Amazon S3 path where permissions are granted or revoked. *

*/ inline void SetDataLocation(const DataLocationResource& value) { m_dataLocationHasBeenSet = true; m_dataLocation = value; } /** *

The location of an Amazon S3 path where permissions are granted or revoked. *

*/ inline void SetDataLocation(DataLocationResource&& value) { m_dataLocationHasBeenSet = true; m_dataLocation = std::move(value); } /** *

The location of an Amazon S3 path where permissions are granted or revoked. *

*/ inline Resource& WithDataLocation(const DataLocationResource& value) { SetDataLocation(value); return *this;} /** *

The location of an Amazon S3 path where permissions are granted or revoked. *

*/ inline Resource& WithDataLocation(DataLocationResource&& value) { SetDataLocation(std::move(value)); return *this;} /** *

A data cell filter.

*/ inline const DataCellsFilterResource& GetDataCellsFilter() const{ return m_dataCellsFilter; } /** *

A data cell filter.

*/ inline bool DataCellsFilterHasBeenSet() const { return m_dataCellsFilterHasBeenSet; } /** *

A data cell filter.

*/ inline void SetDataCellsFilter(const DataCellsFilterResource& value) { m_dataCellsFilterHasBeenSet = true; m_dataCellsFilter = value; } /** *

A data cell filter.

*/ inline void SetDataCellsFilter(DataCellsFilterResource&& value) { m_dataCellsFilterHasBeenSet = true; m_dataCellsFilter = std::move(value); } /** *

A data cell filter.

*/ inline Resource& WithDataCellsFilter(const DataCellsFilterResource& value) { SetDataCellsFilter(value); return *this;} /** *

A data cell filter.

*/ inline Resource& WithDataCellsFilter(DataCellsFilterResource&& value) { SetDataCellsFilter(std::move(value)); return *this;} /** *

The LF-tag key and values attached to a resource.

*/ inline const LFTagKeyResource& GetLFTag() const{ return m_lFTag; } /** *

The LF-tag key and values attached to a resource.

*/ inline bool LFTagHasBeenSet() const { return m_lFTagHasBeenSet; } /** *

The LF-tag key and values attached to a resource.

*/ inline void SetLFTag(const LFTagKeyResource& value) { m_lFTagHasBeenSet = true; m_lFTag = value; } /** *

The LF-tag key and values attached to a resource.

*/ inline void SetLFTag(LFTagKeyResource&& value) { m_lFTagHasBeenSet = true; m_lFTag = std::move(value); } /** *

The LF-tag key and values attached to a resource.

*/ inline Resource& WithLFTag(const LFTagKeyResource& value) { SetLFTag(value); return *this;} /** *

The LF-tag key and values attached to a resource.

*/ inline Resource& WithLFTag(LFTagKeyResource&& value) { SetLFTag(std::move(value)); return *this;} /** *

A list of LF-tag conditions that define a resource's LF-tag policy.

*/ inline const LFTagPolicyResource& GetLFTagPolicy() const{ return m_lFTagPolicy; } /** *

A list of LF-tag conditions that define a resource's LF-tag policy.

*/ inline bool LFTagPolicyHasBeenSet() const { return m_lFTagPolicyHasBeenSet; } /** *

A list of LF-tag conditions that define a resource's LF-tag policy.

*/ inline void SetLFTagPolicy(const LFTagPolicyResource& value) { m_lFTagPolicyHasBeenSet = true; m_lFTagPolicy = value; } /** *

A list of LF-tag conditions that define a resource's LF-tag policy.

*/ inline void SetLFTagPolicy(LFTagPolicyResource&& value) { m_lFTagPolicyHasBeenSet = true; m_lFTagPolicy = std::move(value); } /** *

A list of LF-tag conditions that define a resource's LF-tag policy.

*/ inline Resource& WithLFTagPolicy(const LFTagPolicyResource& value) { SetLFTagPolicy(value); return *this;} /** *

A list of LF-tag conditions that define a resource's LF-tag policy.

*/ inline Resource& WithLFTagPolicy(LFTagPolicyResource&& value) { SetLFTagPolicy(std::move(value)); return *this;} private: CatalogResource m_catalog; bool m_catalogHasBeenSet = false; DatabaseResource m_database; bool m_databaseHasBeenSet = false; TableResource m_table; bool m_tableHasBeenSet = false; TableWithColumnsResource m_tableWithColumns; bool m_tableWithColumnsHasBeenSet = false; DataLocationResource m_dataLocation; bool m_dataLocationHasBeenSet = false; DataCellsFilterResource m_dataCellsFilter; bool m_dataCellsFilterHasBeenSet = false; LFTagKeyResource m_lFTag; bool m_lFTagHasBeenSet = false; LFTagPolicyResource m_lFTagPolicy; bool m_lFTagPolicyHasBeenSet = false; }; } // namespace Model } // namespace LakeFormation } // namespace Aws