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

Provides the settings needed for conversation logs.

See Also:

* AWS * API Reference

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

The settings for your conversation logs. You can log the conversation text, * conversation audio, or both.

*/ inline const Aws::Vector& GetLogSettings() const{ return m_logSettings; } /** *

The settings for your conversation logs. You can log the conversation text, * conversation audio, or both.

*/ inline bool LogSettingsHasBeenSet() const { return m_logSettingsHasBeenSet; } /** *

The settings for your conversation logs. You can log the conversation text, * conversation audio, or both.

*/ inline void SetLogSettings(const Aws::Vector& value) { m_logSettingsHasBeenSet = true; m_logSettings = value; } /** *

The settings for your conversation logs. You can log the conversation text, * conversation audio, or both.

*/ inline void SetLogSettings(Aws::Vector&& value) { m_logSettingsHasBeenSet = true; m_logSettings = std::move(value); } /** *

The settings for your conversation logs. You can log the conversation text, * conversation audio, or both.

*/ inline ConversationLogsRequest& WithLogSettings(const Aws::Vector& value) { SetLogSettings(value); return *this;} /** *

The settings for your conversation logs. You can log the conversation text, * conversation audio, or both.

*/ inline ConversationLogsRequest& WithLogSettings(Aws::Vector&& value) { SetLogSettings(std::move(value)); return *this;} /** *

The settings for your conversation logs. You can log the conversation text, * conversation audio, or both.

*/ inline ConversationLogsRequest& AddLogSettings(const LogSettingsRequest& value) { m_logSettingsHasBeenSet = true; m_logSettings.push_back(value); return *this; } /** *

The settings for your conversation logs. You can log the conversation text, * conversation audio, or both.

*/ inline ConversationLogsRequest& AddLogSettings(LogSettingsRequest&& value) { m_logSettingsHasBeenSet = true; m_logSettings.push_back(std::move(value)); return *this; } /** *

The Amazon Resource Name (ARN) of an IAM role with permission to write to * your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio * encryption is enabled, this role also provides access permission for the AWS KMS * key used for encrypting audio logs. For more information, see Creating * an IAM Role and Policy for Conversation Logs.

*/ inline const Aws::String& GetIamRoleArn() const{ return m_iamRoleArn; } /** *

The Amazon Resource Name (ARN) of an IAM role with permission to write to * your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio * encryption is enabled, this role also provides access permission for the AWS KMS * key used for encrypting audio logs. For more information, see Creating * an IAM Role and Policy for Conversation Logs.

*/ inline bool IamRoleArnHasBeenSet() const { return m_iamRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of an IAM role with permission to write to * your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio * encryption is enabled, this role also provides access permission for the AWS KMS * key used for encrypting audio logs. For more information, see Creating * an IAM Role and Policy for Conversation Logs.

*/ inline void SetIamRoleArn(const Aws::String& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = value; } /** *

The Amazon Resource Name (ARN) of an IAM role with permission to write to * your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio * encryption is enabled, this role also provides access permission for the AWS KMS * key used for encrypting audio logs. For more information, see Creating * an IAM Role and Policy for Conversation Logs.

*/ inline void SetIamRoleArn(Aws::String&& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of an IAM role with permission to write to * your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio * encryption is enabled, this role also provides access permission for the AWS KMS * key used for encrypting audio logs. For more information, see Creating * an IAM Role and Policy for Conversation Logs.

*/ inline void SetIamRoleArn(const char* value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of an IAM role with permission to write to * your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio * encryption is enabled, this role also provides access permission for the AWS KMS * key used for encrypting audio logs. For more information, see Creating * an IAM Role and Policy for Conversation Logs.

*/ inline ConversationLogsRequest& WithIamRoleArn(const Aws::String& value) { SetIamRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of an IAM role with permission to write to * your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio * encryption is enabled, this role also provides access permission for the AWS KMS * key used for encrypting audio logs. For more information, see Creating * an IAM Role and Policy for Conversation Logs.

*/ inline ConversationLogsRequest& WithIamRoleArn(Aws::String&& value) { SetIamRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an IAM role with permission to write to * your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio * encryption is enabled, this role also provides access permission for the AWS KMS * key used for encrypting audio logs. For more information, see Creating * an IAM Role and Policy for Conversation Logs.

*/ inline ConversationLogsRequest& WithIamRoleArn(const char* value) { SetIamRoleArn(value); return *this;} private: Aws::Vector m_logSettings; bool m_logSettingsHasBeenSet = false; Aws::String m_iamRoleArn; bool m_iamRoleArnHasBeenSet = false; }; } // namespace Model } // namespace LexModelBuildingService } // namespace Aws