/** * 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 Hudi data source.

See Also:

AWS API * Reference

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

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

An array of Amazon S3 location strings for Hudi, each indicating the root * folder with which the metadata files for a Hudi table resides. The Hudi folder * may be located in a child folder of the root folder.

The crawler will * scan all folders underneath a path for a Hudi folder.

*/ inline HudiTarget& 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 Hudi target. If your Hudi * files are stored in buckets that require VPC authorization, you can set their * connection properties here.

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

The name of the connection to use to connect to the Hudi target. If your Hudi * files are stored in buckets that require VPC authorization, you can set their * connection properties here.

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

The name of the connection to use to connect to the Hudi target. If your Hudi * files are stored in buckets that require VPC authorization, you can set their * connection properties here.

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

The name of the connection to use to connect to the Hudi target. If your Hudi * files are stored in buckets that require VPC authorization, you can set their * connection properties here.

*/ 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 Hudi target. If your Hudi * files are stored in buckets that require VPC authorization, you can set their * connection properties here.

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

The name of the connection to use to connect to the Hudi target. If your Hudi * files are stored in buckets that require VPC authorization, you can set their * connection properties here.

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

The name of the connection to use to connect to the Hudi target. If your Hudi * files are stored in buckets that require VPC authorization, you can set their * connection properties here.

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

The name of the connection to use to connect to the Hudi target. If your Hudi * files are stored in buckets that require VPC authorization, you can set their * connection properties here.

*/ inline HudiTarget& 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 HudiTarget& 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 HudiTarget& 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 HudiTarget& 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 HudiTarget& 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 HudiTarget& 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 Hudi 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 Hudi 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 Hudi 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 Hudi metadata folder in your Amazon S3 path. Used to limit the * crawler run time.

*/ inline HudiTarget& 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