1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/lex-models/LexModelBuildingService_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/lex-models/model/LogSettingsResponse.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace LexModelBuildingService
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Contains information about conversation log settings.</p><p><h3>See
30    * Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/ConversationLogsResponse">AWS
32    * API Reference</a></p>
33    */
34   class AWS_LEXMODELBUILDINGSERVICE_API ConversationLogsResponse
35   {
36   public:
37     ConversationLogsResponse();
38     ConversationLogsResponse(Aws::Utils::Json::JsonView jsonValue);
39     ConversationLogsResponse& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The settings for your conversation logs. You can log text, audio, or
45      * both.</p>
46      */
GetLogSettings()47     inline const Aws::Vector<LogSettingsResponse>& GetLogSettings() const{ return m_logSettings; }
48 
49     /**
50      * <p>The settings for your conversation logs. You can log text, audio, or
51      * both.</p>
52      */
LogSettingsHasBeenSet()53     inline bool LogSettingsHasBeenSet() const { return m_logSettingsHasBeenSet; }
54 
55     /**
56      * <p>The settings for your conversation logs. You can log text, audio, or
57      * both.</p>
58      */
SetLogSettings(const Aws::Vector<LogSettingsResponse> & value)59     inline void SetLogSettings(const Aws::Vector<LogSettingsResponse>& value) { m_logSettingsHasBeenSet = true; m_logSettings = value; }
60 
61     /**
62      * <p>The settings for your conversation logs. You can log text, audio, or
63      * both.</p>
64      */
SetLogSettings(Aws::Vector<LogSettingsResponse> && value)65     inline void SetLogSettings(Aws::Vector<LogSettingsResponse>&& value) { m_logSettingsHasBeenSet = true; m_logSettings = std::move(value); }
66 
67     /**
68      * <p>The settings for your conversation logs. You can log text, audio, or
69      * both.</p>
70      */
WithLogSettings(const Aws::Vector<LogSettingsResponse> & value)71     inline ConversationLogsResponse& WithLogSettings(const Aws::Vector<LogSettingsResponse>& value) { SetLogSettings(value); return *this;}
72 
73     /**
74      * <p>The settings for your conversation logs. You can log text, audio, or
75      * both.</p>
76      */
WithLogSettings(Aws::Vector<LogSettingsResponse> && value)77     inline ConversationLogsResponse& WithLogSettings(Aws::Vector<LogSettingsResponse>&& value) { SetLogSettings(std::move(value)); return *this;}
78 
79     /**
80      * <p>The settings for your conversation logs. You can log text, audio, or
81      * both.</p>
82      */
AddLogSettings(const LogSettingsResponse & value)83     inline ConversationLogsResponse& AddLogSettings(const LogSettingsResponse& value) { m_logSettingsHasBeenSet = true; m_logSettings.push_back(value); return *this; }
84 
85     /**
86      * <p>The settings for your conversation logs. You can log text, audio, or
87      * both.</p>
88      */
AddLogSettings(LogSettingsResponse && value)89     inline ConversationLogsResponse& AddLogSettings(LogSettingsResponse&& value) { m_logSettingsHasBeenSet = true; m_logSettings.push_back(std::move(value)); return *this; }
90 
91 
92     /**
93      * <p>The Amazon Resource Name (ARN) of the IAM role used to write your logs to
94      * CloudWatch Logs or an S3 bucket.</p>
95      */
GetIamRoleArn()96     inline const Aws::String& GetIamRoleArn() const{ return m_iamRoleArn; }
97 
98     /**
99      * <p>The Amazon Resource Name (ARN) of the IAM role used to write your logs to
100      * CloudWatch Logs or an S3 bucket.</p>
101      */
IamRoleArnHasBeenSet()102     inline bool IamRoleArnHasBeenSet() const { return m_iamRoleArnHasBeenSet; }
103 
104     /**
105      * <p>The Amazon Resource Name (ARN) of the IAM role used to write your logs to
106      * CloudWatch Logs or an S3 bucket.</p>
107      */
SetIamRoleArn(const Aws::String & value)108     inline void SetIamRoleArn(const Aws::String& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = value; }
109 
110     /**
111      * <p>The Amazon Resource Name (ARN) of the IAM role used to write your logs to
112      * CloudWatch Logs or an S3 bucket.</p>
113      */
SetIamRoleArn(Aws::String && value)114     inline void SetIamRoleArn(Aws::String&& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = std::move(value); }
115 
116     /**
117      * <p>The Amazon Resource Name (ARN) of the IAM role used to write your logs to
118      * CloudWatch Logs or an S3 bucket.</p>
119      */
SetIamRoleArn(const char * value)120     inline void SetIamRoleArn(const char* value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn.assign(value); }
121 
122     /**
123      * <p>The Amazon Resource Name (ARN) of the IAM role used to write your logs to
124      * CloudWatch Logs or an S3 bucket.</p>
125      */
WithIamRoleArn(const Aws::String & value)126     inline ConversationLogsResponse& WithIamRoleArn(const Aws::String& value) { SetIamRoleArn(value); return *this;}
127 
128     /**
129      * <p>The Amazon Resource Name (ARN) of the IAM role used to write your logs to
130      * CloudWatch Logs or an S3 bucket.</p>
131      */
WithIamRoleArn(Aws::String && value)132     inline ConversationLogsResponse& WithIamRoleArn(Aws::String&& value) { SetIamRoleArn(std::move(value)); return *this;}
133 
134     /**
135      * <p>The Amazon Resource Name (ARN) of the IAM role used to write your logs to
136      * CloudWatch Logs or an S3 bucket.</p>
137      */
WithIamRoleArn(const char * value)138     inline ConversationLogsResponse& WithIamRoleArn(const char* value) { SetIamRoleArn(value); return *this;}
139 
140   private:
141 
142     Aws::Vector<LogSettingsResponse> m_logSettings;
143     bool m_logSettingsHasBeenSet;
144 
145     Aws::String m_iamRoleArn;
146     bool m_iamRoleArnHasBeenSet;
147   };
148 
149 } // namespace Model
150 } // namespace LexModelBuildingService
151 } // namespace Aws
152