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

Specifies the schema to which you want Kinesis Data Firehose to configure * your data before it writes it to Amazon S3. This parameter is required if * Enabled is set to true.

See Also:

AWS * API Reference

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

The role that Kinesis Data Firehose can use to access AWS Glue. This role * must be in the same account you use for Kinesis Data Firehose. Cross-account * roles aren't allowed.

If the SchemaConfiguration * request parameter is used as part of invoking the * CreateDeliveryStream API, then the RoleARN property is * required and its value must be specified.

*/ inline const Aws::String& GetRoleARN() const{ return m_roleARN; } /** *

The role that Kinesis Data Firehose can use to access AWS Glue. This role * must be in the same account you use for Kinesis Data Firehose. Cross-account * roles aren't allowed.

If the SchemaConfiguration * request parameter is used as part of invoking the * CreateDeliveryStream API, then the RoleARN property is * required and its value must be specified.

*/ inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; } /** *

The role that Kinesis Data Firehose can use to access AWS Glue. This role * must be in the same account you use for Kinesis Data Firehose. Cross-account * roles aren't allowed.

If the SchemaConfiguration * request parameter is used as part of invoking the * CreateDeliveryStream API, then the RoleARN property is * required and its value must be specified.

*/ inline void SetRoleARN(const Aws::String& value) { m_roleARNHasBeenSet = true; m_roleARN = value; } /** *

The role that Kinesis Data Firehose can use to access AWS Glue. This role * must be in the same account you use for Kinesis Data Firehose. Cross-account * roles aren't allowed.

If the SchemaConfiguration * request parameter is used as part of invoking the * CreateDeliveryStream API, then the RoleARN property is * required and its value must be specified.

*/ inline void SetRoleARN(Aws::String&& value) { m_roleARNHasBeenSet = true; m_roleARN = std::move(value); } /** *

The role that Kinesis Data Firehose can use to access AWS Glue. This role * must be in the same account you use for Kinesis Data Firehose. Cross-account * roles aren't allowed.

If the SchemaConfiguration * request parameter is used as part of invoking the * CreateDeliveryStream API, then the RoleARN property is * required and its value must be specified.

*/ inline void SetRoleARN(const char* value) { m_roleARNHasBeenSet = true; m_roleARN.assign(value); } /** *

The role that Kinesis Data Firehose can use to access AWS Glue. This role * must be in the same account you use for Kinesis Data Firehose. Cross-account * roles aren't allowed.

If the SchemaConfiguration * request parameter is used as part of invoking the * CreateDeliveryStream API, then the RoleARN property is * required and its value must be specified.

*/ inline SchemaConfiguration& WithRoleARN(const Aws::String& value) { SetRoleARN(value); return *this;} /** *

The role that Kinesis Data Firehose can use to access AWS Glue. This role * must be in the same account you use for Kinesis Data Firehose. Cross-account * roles aren't allowed.

If the SchemaConfiguration * request parameter is used as part of invoking the * CreateDeliveryStream API, then the RoleARN property is * required and its value must be specified.

*/ inline SchemaConfiguration& WithRoleARN(Aws::String&& value) { SetRoleARN(std::move(value)); return *this;} /** *

The role that Kinesis Data Firehose can use to access AWS Glue. This role * must be in the same account you use for Kinesis Data Firehose. Cross-account * roles aren't allowed.

If the SchemaConfiguration * request parameter is used as part of invoking the * CreateDeliveryStream API, then the RoleARN property is * required and its value must be specified.

*/ inline SchemaConfiguration& WithRoleARN(const char* value) { SetRoleARN(value); return *this;} /** *

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS * account ID is used by default.

*/ inline const Aws::String& GetCatalogId() const{ return m_catalogId; } /** *

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS * account ID is used by default.

*/ inline bool CatalogIdHasBeenSet() const { return m_catalogIdHasBeenSet; } /** *

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS * account ID is used by default.

*/ inline void SetCatalogId(const Aws::String& value) { m_catalogIdHasBeenSet = true; m_catalogId = value; } /** *

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS * account ID is used by default.

*/ inline void SetCatalogId(Aws::String&& value) { m_catalogIdHasBeenSet = true; m_catalogId = std::move(value); } /** *

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS * account ID is used by default.

*/ inline void SetCatalogId(const char* value) { m_catalogIdHasBeenSet = true; m_catalogId.assign(value); } /** *

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS * account ID is used by default.

*/ inline SchemaConfiguration& WithCatalogId(const Aws::String& value) { SetCatalogId(value); return *this;} /** *

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS * account ID is used by default.

*/ inline SchemaConfiguration& WithCatalogId(Aws::String&& value) { SetCatalogId(std::move(value)); return *this;} /** *

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS * account ID is used by default.

*/ inline SchemaConfiguration& WithCatalogId(const char* value) { SetCatalogId(value); return *this;} /** *

Specifies the name of the AWS Glue database that contains the schema for the * output data.

If the SchemaConfiguration request * parameter is used as part of invoking the CreateDeliveryStream API, * then the DatabaseName property is required and its value must be * specified.

*/ inline const Aws::String& GetDatabaseName() const{ return m_databaseName; } /** *

Specifies the name of the AWS Glue database that contains the schema for the * output data.

If the SchemaConfiguration request * parameter is used as part of invoking the CreateDeliveryStream API, * then the DatabaseName property is required and its value must be * specified.

*/ inline bool DatabaseNameHasBeenSet() const { return m_databaseNameHasBeenSet; } /** *

Specifies the name of the AWS Glue database that contains the schema for the * output data.

If the SchemaConfiguration request * parameter is used as part of invoking the CreateDeliveryStream API, * then the DatabaseName property is required and its value must be * specified.

*/ inline void SetDatabaseName(const Aws::String& value) { m_databaseNameHasBeenSet = true; m_databaseName = value; } /** *

Specifies the name of the AWS Glue database that contains the schema for the * output data.

If the SchemaConfiguration request * parameter is used as part of invoking the CreateDeliveryStream API, * then the DatabaseName property is required and its value must be * specified.

*/ inline void SetDatabaseName(Aws::String&& value) { m_databaseNameHasBeenSet = true; m_databaseName = std::move(value); } /** *

Specifies the name of the AWS Glue database that contains the schema for the * output data.

If the SchemaConfiguration request * parameter is used as part of invoking the CreateDeliveryStream API, * then the DatabaseName property is required and its value must be * specified.

*/ inline void SetDatabaseName(const char* value) { m_databaseNameHasBeenSet = true; m_databaseName.assign(value); } /** *

Specifies the name of the AWS Glue database that contains the schema for the * output data.

If the SchemaConfiguration request * parameter is used as part of invoking the CreateDeliveryStream API, * then the DatabaseName property is required and its value must be * specified.

*/ inline SchemaConfiguration& WithDatabaseName(const Aws::String& value) { SetDatabaseName(value); return *this;} /** *

Specifies the name of the AWS Glue database that contains the schema for the * output data.

If the SchemaConfiguration request * parameter is used as part of invoking the CreateDeliveryStream API, * then the DatabaseName property is required and its value must be * specified.

*/ inline SchemaConfiguration& WithDatabaseName(Aws::String&& value) { SetDatabaseName(std::move(value)); return *this;} /** *

Specifies the name of the AWS Glue database that contains the schema for the * output data.

If the SchemaConfiguration request * parameter is used as part of invoking the CreateDeliveryStream API, * then the DatabaseName property is required and its value must be * specified.

*/ inline SchemaConfiguration& WithDatabaseName(const char* value) { SetDatabaseName(value); return *this;} /** *

Specifies the AWS Glue table that contains the column information that * constitutes your data schema.

If the * SchemaConfiguration request parameter is used as part of invoking * the CreateDeliveryStream API, then the TableName * property is required and its value must be specified.

*/ inline const Aws::String& GetTableName() const{ return m_tableName; } /** *

Specifies the AWS Glue table that contains the column information that * constitutes your data schema.

If the * SchemaConfiguration request parameter is used as part of invoking * the CreateDeliveryStream API, then the TableName * property is required and its value must be specified.

*/ inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; } /** *

Specifies the AWS Glue table that contains the column information that * constitutes your data schema.

If the * SchemaConfiguration request parameter is used as part of invoking * the CreateDeliveryStream API, then the TableName * property is required and its value must be specified.

*/ inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; } /** *

Specifies the AWS Glue table that contains the column information that * constitutes your data schema.

If the * SchemaConfiguration request parameter is used as part of invoking * the CreateDeliveryStream API, then the TableName * property is required and its value must be specified.

*/ inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); } /** *

Specifies the AWS Glue table that contains the column information that * constitutes your data schema.

If the * SchemaConfiguration request parameter is used as part of invoking * the CreateDeliveryStream API, then the TableName * property is required and its value must be specified.

*/ inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); } /** *

Specifies the AWS Glue table that contains the column information that * constitutes your data schema.

If the * SchemaConfiguration request parameter is used as part of invoking * the CreateDeliveryStream API, then the TableName * property is required and its value must be specified.

*/ inline SchemaConfiguration& WithTableName(const Aws::String& value) { SetTableName(value); return *this;} /** *

Specifies the AWS Glue table that contains the column information that * constitutes your data schema.

If the * SchemaConfiguration request parameter is used as part of invoking * the CreateDeliveryStream API, then the TableName * property is required and its value must be specified.

*/ inline SchemaConfiguration& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;} /** *

Specifies the AWS Glue table that contains the column information that * constitutes your data schema.

If the * SchemaConfiguration request parameter is used as part of invoking * the CreateDeliveryStream API, then the TableName * property is required and its value must be specified.

*/ inline SchemaConfiguration& WithTableName(const char* value) { SetTableName(value); return *this;} /** *

If you don't specify an AWS Region, the default is the current Region.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

If you don't specify an AWS Region, the default is the current Region.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

If you don't specify an AWS Region, the default is the current Region.

*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *

If you don't specify an AWS Region, the default is the current Region.

*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *

If you don't specify an AWS Region, the default is the current Region.

*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *

If you don't specify an AWS Region, the default is the current Region.

*/ inline SchemaConfiguration& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

If you don't specify an AWS Region, the default is the current Region.

*/ inline SchemaConfiguration& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

If you don't specify an AWS Region, the default is the current Region.

*/ inline SchemaConfiguration& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

Specifies the table version for the output data schema. If you don't specify * this version ID, or if you set it to LATEST, Kinesis Data Firehose * uses the most recent version. This means that any updates to the table are * automatically picked up.

*/ inline const Aws::String& GetVersionId() const{ return m_versionId; } /** *

Specifies the table version for the output data schema. If you don't specify * this version ID, or if you set it to LATEST, Kinesis Data Firehose * uses the most recent version. This means that any updates to the table are * automatically picked up.

*/ inline bool VersionIdHasBeenSet() const { return m_versionIdHasBeenSet; } /** *

Specifies the table version for the output data schema. If you don't specify * this version ID, or if you set it to LATEST, Kinesis Data Firehose * uses the most recent version. This means that any updates to the table are * automatically picked up.

*/ inline void SetVersionId(const Aws::String& value) { m_versionIdHasBeenSet = true; m_versionId = value; } /** *

Specifies the table version for the output data schema. If you don't specify * this version ID, or if you set it to LATEST, Kinesis Data Firehose * uses the most recent version. This means that any updates to the table are * automatically picked up.

*/ inline void SetVersionId(Aws::String&& value) { m_versionIdHasBeenSet = true; m_versionId = std::move(value); } /** *

Specifies the table version for the output data schema. If you don't specify * this version ID, or if you set it to LATEST, Kinesis Data Firehose * uses the most recent version. This means that any updates to the table are * automatically picked up.

*/ inline void SetVersionId(const char* value) { m_versionIdHasBeenSet = true; m_versionId.assign(value); } /** *

Specifies the table version for the output data schema. If you don't specify * this version ID, or if you set it to LATEST, Kinesis Data Firehose * uses the most recent version. This means that any updates to the table are * automatically picked up.

*/ inline SchemaConfiguration& WithVersionId(const Aws::String& value) { SetVersionId(value); return *this;} /** *

Specifies the table version for the output data schema. If you don't specify * this version ID, or if you set it to LATEST, Kinesis Data Firehose * uses the most recent version. This means that any updates to the table are * automatically picked up.

*/ inline SchemaConfiguration& WithVersionId(Aws::String&& value) { SetVersionId(std::move(value)); return *this;} /** *

Specifies the table version for the output data schema. If you don't specify * this version ID, or if you set it to LATEST, Kinesis Data Firehose * uses the most recent version. This means that any updates to the table are * automatically picked up.

*/ inline SchemaConfiguration& WithVersionId(const char* value) { SetVersionId(value); return *this;} private: Aws::String m_roleARN; bool m_roleARNHasBeenSet; Aws::String m_catalogId; bool m_catalogIdHasBeenSet; Aws::String m_databaseName; bool m_databaseNameHasBeenSet; Aws::String m_tableName; bool m_tableNameHasBeenSet; Aws::String m_region; bool m_regionHasBeenSet; Aws::String m_versionId; bool m_versionIdHasBeenSet; }; } // namespace Model } // namespace Firehose } // namespace Aws