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/rekognition/Rekognition_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/rekognition/model/HumanLoopDataAttributes.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace Rekognition
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Sets up the flow definition the image will be sent to if one of the
29    * conditions is met. You can also set certain attributes of the image before
30    * review.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/rekognition-2016-06-27/HumanLoopConfig">AWS
32    * API Reference</a></p>
33    */
34   class AWS_REKOGNITION_API HumanLoopConfig
35   {
36   public:
37     HumanLoopConfig();
38     HumanLoopConfig(Aws::Utils::Json::JsonView jsonValue);
39     HumanLoopConfig& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The name of the human review used for this image. This should be kept unique
45      * within a region.</p>
46      */
GetHumanLoopName()47     inline const Aws::String& GetHumanLoopName() const{ return m_humanLoopName; }
48 
49     /**
50      * <p>The name of the human review used for this image. This should be kept unique
51      * within a region.</p>
52      */
HumanLoopNameHasBeenSet()53     inline bool HumanLoopNameHasBeenSet() const { return m_humanLoopNameHasBeenSet; }
54 
55     /**
56      * <p>The name of the human review used for this image. This should be kept unique
57      * within a region.</p>
58      */
SetHumanLoopName(const Aws::String & value)59     inline void SetHumanLoopName(const Aws::String& value) { m_humanLoopNameHasBeenSet = true; m_humanLoopName = value; }
60 
61     /**
62      * <p>The name of the human review used for this image. This should be kept unique
63      * within a region.</p>
64      */
SetHumanLoopName(Aws::String && value)65     inline void SetHumanLoopName(Aws::String&& value) { m_humanLoopNameHasBeenSet = true; m_humanLoopName = std::move(value); }
66 
67     /**
68      * <p>The name of the human review used for this image. This should be kept unique
69      * within a region.</p>
70      */
SetHumanLoopName(const char * value)71     inline void SetHumanLoopName(const char* value) { m_humanLoopNameHasBeenSet = true; m_humanLoopName.assign(value); }
72 
73     /**
74      * <p>The name of the human review used for this image. This should be kept unique
75      * within a region.</p>
76      */
WithHumanLoopName(const Aws::String & value)77     inline HumanLoopConfig& WithHumanLoopName(const Aws::String& value) { SetHumanLoopName(value); return *this;}
78 
79     /**
80      * <p>The name of the human review used for this image. This should be kept unique
81      * within a region.</p>
82      */
WithHumanLoopName(Aws::String && value)83     inline HumanLoopConfig& WithHumanLoopName(Aws::String&& value) { SetHumanLoopName(std::move(value)); return *this;}
84 
85     /**
86      * <p>The name of the human review used for this image. This should be kept unique
87      * within a region.</p>
88      */
WithHumanLoopName(const char * value)89     inline HumanLoopConfig& WithHumanLoopName(const char* value) { SetHumanLoopName(value); return *this;}
90 
91 
92     /**
93      * <p>The Amazon Resource Name (ARN) of the flow definition. You can create a flow
94      * definition by using the Amazon Sagemaker <a
95      * href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a>
96      * Operation. </p>
97      */
GetFlowDefinitionArn()98     inline const Aws::String& GetFlowDefinitionArn() const{ return m_flowDefinitionArn; }
99 
100     /**
101      * <p>The Amazon Resource Name (ARN) of the flow definition. You can create a flow
102      * definition by using the Amazon Sagemaker <a
103      * href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a>
104      * Operation. </p>
105      */
FlowDefinitionArnHasBeenSet()106     inline bool FlowDefinitionArnHasBeenSet() const { return m_flowDefinitionArnHasBeenSet; }
107 
108     /**
109      * <p>The Amazon Resource Name (ARN) of the flow definition. You can create a flow
110      * definition by using the Amazon Sagemaker <a
111      * href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a>
112      * Operation. </p>
113      */
SetFlowDefinitionArn(const Aws::String & value)114     inline void SetFlowDefinitionArn(const Aws::String& value) { m_flowDefinitionArnHasBeenSet = true; m_flowDefinitionArn = value; }
115 
116     /**
117      * <p>The Amazon Resource Name (ARN) of the flow definition. You can create a flow
118      * definition by using the Amazon Sagemaker <a
119      * href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a>
120      * Operation. </p>
121      */
SetFlowDefinitionArn(Aws::String && value)122     inline void SetFlowDefinitionArn(Aws::String&& value) { m_flowDefinitionArnHasBeenSet = true; m_flowDefinitionArn = std::move(value); }
123 
124     /**
125      * <p>The Amazon Resource Name (ARN) of the flow definition. You can create a flow
126      * definition by using the Amazon Sagemaker <a
127      * href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a>
128      * Operation. </p>
129      */
SetFlowDefinitionArn(const char * value)130     inline void SetFlowDefinitionArn(const char* value) { m_flowDefinitionArnHasBeenSet = true; m_flowDefinitionArn.assign(value); }
131 
132     /**
133      * <p>The Amazon Resource Name (ARN) of the flow definition. You can create a flow
134      * definition by using the Amazon Sagemaker <a
135      * href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a>
136      * Operation. </p>
137      */
WithFlowDefinitionArn(const Aws::String & value)138     inline HumanLoopConfig& WithFlowDefinitionArn(const Aws::String& value) { SetFlowDefinitionArn(value); return *this;}
139 
140     /**
141      * <p>The Amazon Resource Name (ARN) of the flow definition. You can create a flow
142      * definition by using the Amazon Sagemaker <a
143      * href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a>
144      * Operation. </p>
145      */
WithFlowDefinitionArn(Aws::String && value)146     inline HumanLoopConfig& WithFlowDefinitionArn(Aws::String&& value) { SetFlowDefinitionArn(std::move(value)); return *this;}
147 
148     /**
149      * <p>The Amazon Resource Name (ARN) of the flow definition. You can create a flow
150      * definition by using the Amazon Sagemaker <a
151      * href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a>
152      * Operation. </p>
153      */
WithFlowDefinitionArn(const char * value)154     inline HumanLoopConfig& WithFlowDefinitionArn(const char* value) { SetFlowDefinitionArn(value); return *this;}
155 
156 
157     /**
158      * <p>Sets attributes of the input data.</p>
159      */
GetDataAttributes()160     inline const HumanLoopDataAttributes& GetDataAttributes() const{ return m_dataAttributes; }
161 
162     /**
163      * <p>Sets attributes of the input data.</p>
164      */
DataAttributesHasBeenSet()165     inline bool DataAttributesHasBeenSet() const { return m_dataAttributesHasBeenSet; }
166 
167     /**
168      * <p>Sets attributes of the input data.</p>
169      */
SetDataAttributes(const HumanLoopDataAttributes & value)170     inline void SetDataAttributes(const HumanLoopDataAttributes& value) { m_dataAttributesHasBeenSet = true; m_dataAttributes = value; }
171 
172     /**
173      * <p>Sets attributes of the input data.</p>
174      */
SetDataAttributes(HumanLoopDataAttributes && value)175     inline void SetDataAttributes(HumanLoopDataAttributes&& value) { m_dataAttributesHasBeenSet = true; m_dataAttributes = std::move(value); }
176 
177     /**
178      * <p>Sets attributes of the input data.</p>
179      */
WithDataAttributes(const HumanLoopDataAttributes & value)180     inline HumanLoopConfig& WithDataAttributes(const HumanLoopDataAttributes& value) { SetDataAttributes(value); return *this;}
181 
182     /**
183      * <p>Sets attributes of the input data.</p>
184      */
WithDataAttributes(HumanLoopDataAttributes && value)185     inline HumanLoopConfig& WithDataAttributes(HumanLoopDataAttributes&& value) { SetDataAttributes(std::move(value)); return *this;}
186 
187   private:
188 
189     Aws::String m_humanLoopName;
190     bool m_humanLoopNameHasBeenSet;
191 
192     Aws::String m_flowDefinitionArn;
193     bool m_flowDefinitionArnHasBeenSet;
194 
195     HumanLoopDataAttributes m_dataAttributes;
196     bool m_dataAttributesHasBeenSet;
197   };
198 
199 } // namespace Model
200 } // namespace Rekognition
201 } // namespace Aws
202