/** * 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 Glue { namespace Model { /** *

Specifies an Apache Iceberg data source where Iceberg tables are stored in * Amazon S3.

See Also:

AWS * API Reference

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

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline const Aws::Vector& GetPaths() const{ return m_paths; } /** *

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline bool PathsHasBeenSet() const { return m_pathsHasBeenSet; } /** *

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline void SetPaths(const Aws::Vector& value) { m_pathsHasBeenSet = true; m_paths = value; } /** *

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline void SetPaths(Aws::Vector&& value) { m_pathsHasBeenSet = true; m_paths = std::move(value); } /** *

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline IcebergTarget& WithPaths(const Aws::Vector& value) { SetPaths(value); return *this;} /** *

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline IcebergTarget& WithPaths(Aws::Vector&& value) { SetPaths(std::move(value)); return *this;} /** *

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline IcebergTarget& AddPaths(const Aws::String& value) { m_pathsHasBeenSet = true; m_paths.push_back(value); return *this; } /** *

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline IcebergTarget& AddPaths(Aws::String&& value) { m_pathsHasBeenSet = true; m_paths.push_back(std::move(value)); return *this; } /** *

One or more Amazon S3 paths that contains Iceberg metadata folders as * s3://bucket/prefix.

*/ inline IcebergTarget& AddPaths(const char* value) { m_pathsHasBeenSet = true; m_paths.push_back(value); return *this; } /** *

The name of the connection to use to connect to the Iceberg target.

*/ inline const Aws::String& GetConnectionName() const{ return m_connectionName; } /** *

The name of the connection to use to connect to the Iceberg target.

*/ inline bool ConnectionNameHasBeenSet() const { return m_connectionNameHasBeenSet; } /** *

The name of the connection to use to connect to the Iceberg target.

*/ inline void SetConnectionName(const Aws::String& value) { m_connectionNameHasBeenSet = true; m_connectionName = value; } /** *

The name of the connection to use to connect to the Iceberg target.

*/ inline void SetConnectionName(Aws::String&& value) { m_connectionNameHasBeenSet = true; m_connectionName = std::move(value); } /** *

The name of the connection to use to connect to the Iceberg target.

*/ inline void SetConnectionName(const char* value) { m_connectionNameHasBeenSet = true; m_connectionName.assign(value); } /** *

The name of the connection to use to connect to the Iceberg target.

*/ inline IcebergTarget& WithConnectionName(const Aws::String& value) { SetConnectionName(value); return *this;} /** *

The name of the connection to use to connect to the Iceberg target.

*/ inline IcebergTarget& WithConnectionName(Aws::String&& value) { SetConnectionName(std::move(value)); return *this;} /** *

The name of the connection to use to connect to the Iceberg target.

*/ inline IcebergTarget& WithConnectionName(const char* value) { SetConnectionName(value); return *this;} /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline const Aws::Vector& GetExclusions() const{ return m_exclusions; } /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline bool ExclusionsHasBeenSet() const { return m_exclusionsHasBeenSet; } /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline void SetExclusions(const Aws::Vector& value) { m_exclusionsHasBeenSet = true; m_exclusions = value; } /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline void SetExclusions(Aws::Vector&& value) { m_exclusionsHasBeenSet = true; m_exclusions = std::move(value); } /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline IcebergTarget& WithExclusions(const Aws::Vector& value) { SetExclusions(value); return *this;} /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline IcebergTarget& WithExclusions(Aws::Vector&& value) { SetExclusions(std::move(value)); return *this;} /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline IcebergTarget& AddExclusions(const Aws::String& value) { m_exclusionsHasBeenSet = true; m_exclusions.push_back(value); return *this; } /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline IcebergTarget& AddExclusions(Aws::String&& value) { m_exclusionsHasBeenSet = true; m_exclusions.push_back(std::move(value)); return *this; } /** *

A list of glob patterns used to exclude from the crawl. For more information, * see Catalog * Tables with a Crawler.

*/ inline IcebergTarget& AddExclusions(const char* value) { m_exclusionsHasBeenSet = true; m_exclusions.push_back(value); return *this; } /** *

The maximum depth of Amazon S3 paths that the crawler can traverse to * discover the Iceberg metadata folder in your Amazon S3 path. Used to limit the * crawler run time.

*/ inline int GetMaximumTraversalDepth() const{ return m_maximumTraversalDepth; } /** *

The maximum depth of Amazon S3 paths that the crawler can traverse to * discover the Iceberg metadata folder in your Amazon S3 path. Used to limit the * crawler run time.

*/ inline bool MaximumTraversalDepthHasBeenSet() const { return m_maximumTraversalDepthHasBeenSet; } /** *

The maximum depth of Amazon S3 paths that the crawler can traverse to * discover the Iceberg metadata folder in your Amazon S3 path. Used to limit the * crawler run time.

*/ inline void SetMaximumTraversalDepth(int value) { m_maximumTraversalDepthHasBeenSet = true; m_maximumTraversalDepth = value; } /** *

The maximum depth of Amazon S3 paths that the crawler can traverse to * discover the Iceberg metadata folder in your Amazon S3 path. Used to limit the * crawler run time.

*/ inline IcebergTarget& WithMaximumTraversalDepth(int value) { SetMaximumTraversalDepth(value); return *this;} private: Aws::Vector m_paths; bool m_pathsHasBeenSet = false; Aws::String m_connectionName; bool m_connectionNameHasBeenSet = false; Aws::Vector m_exclusions; bool m_exclusionsHasBeenSet = false; int m_maximumTraversalDepth; bool m_maximumTraversalDepthHasBeenSet = false; }; } // namespace Model } // namespace Glue } // namespace Aws