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/sagemaker/SageMaker_EXPORTS.h>
8 #include <aws/sagemaker/SageMakerRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/sagemaker/model/ModelQualityBaselineConfig.h>
11 #include <aws/sagemaker/model/ModelQualityAppSpecification.h>
12 #include <aws/sagemaker/model/ModelQualityJobInput.h>
13 #include <aws/sagemaker/model/MonitoringOutputConfig.h>
14 #include <aws/sagemaker/model/MonitoringResources.h>
15 #include <aws/sagemaker/model/MonitoringNetworkConfig.h>
16 #include <aws/sagemaker/model/MonitoringStoppingCondition.h>
17 #include <aws/core/utils/memory/stl/AWSVector.h>
18 #include <aws/sagemaker/model/Tag.h>
19 #include <utility>
20 
21 namespace Aws
22 {
23 namespace SageMaker
24 {
25 namespace Model
26 {
27 
28   /**
29    */
30   class AWS_SAGEMAKER_API CreateModelQualityJobDefinitionRequest : public SageMakerRequest
31   {
32   public:
33     CreateModelQualityJobDefinitionRequest();
34 
35     // Service request name is the Operation name which will send this request out,
36     // each operation should has unique request name, so that we can get operation's name from this request.
37     // Note: this is not true for response, multiple operations may have the same response name,
38     // so we can not get operation's name from response.
GetServiceRequestName()39     inline virtual const char* GetServiceRequestName() const override { return "CreateModelQualityJobDefinition"; }
40 
41     Aws::String SerializePayload() const override;
42 
43     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
44 
45 
46     /**
47      * <p>The name of the monitoring job definition.</p>
48      */
GetJobDefinitionName()49     inline const Aws::String& GetJobDefinitionName() const{ return m_jobDefinitionName; }
50 
51     /**
52      * <p>The name of the monitoring job definition.</p>
53      */
JobDefinitionNameHasBeenSet()54     inline bool JobDefinitionNameHasBeenSet() const { return m_jobDefinitionNameHasBeenSet; }
55 
56     /**
57      * <p>The name of the monitoring job definition.</p>
58      */
SetJobDefinitionName(const Aws::String & value)59     inline void SetJobDefinitionName(const Aws::String& value) { m_jobDefinitionNameHasBeenSet = true; m_jobDefinitionName = value; }
60 
61     /**
62      * <p>The name of the monitoring job definition.</p>
63      */
SetJobDefinitionName(Aws::String && value)64     inline void SetJobDefinitionName(Aws::String&& value) { m_jobDefinitionNameHasBeenSet = true; m_jobDefinitionName = std::move(value); }
65 
66     /**
67      * <p>The name of the monitoring job definition.</p>
68      */
SetJobDefinitionName(const char * value)69     inline void SetJobDefinitionName(const char* value) { m_jobDefinitionNameHasBeenSet = true; m_jobDefinitionName.assign(value); }
70 
71     /**
72      * <p>The name of the monitoring job definition.</p>
73      */
WithJobDefinitionName(const Aws::String & value)74     inline CreateModelQualityJobDefinitionRequest& WithJobDefinitionName(const Aws::String& value) { SetJobDefinitionName(value); return *this;}
75 
76     /**
77      * <p>The name of the monitoring job definition.</p>
78      */
WithJobDefinitionName(Aws::String && value)79     inline CreateModelQualityJobDefinitionRequest& WithJobDefinitionName(Aws::String&& value) { SetJobDefinitionName(std::move(value)); return *this;}
80 
81     /**
82      * <p>The name of the monitoring job definition.</p>
83      */
WithJobDefinitionName(const char * value)84     inline CreateModelQualityJobDefinitionRequest& WithJobDefinitionName(const char* value) { SetJobDefinitionName(value); return *this;}
85 
86 
87     /**
88      * <p>Specifies the constraints and baselines for the monitoring job.</p>
89      */
GetModelQualityBaselineConfig()90     inline const ModelQualityBaselineConfig& GetModelQualityBaselineConfig() const{ return m_modelQualityBaselineConfig; }
91 
92     /**
93      * <p>Specifies the constraints and baselines for the monitoring job.</p>
94      */
ModelQualityBaselineConfigHasBeenSet()95     inline bool ModelQualityBaselineConfigHasBeenSet() const { return m_modelQualityBaselineConfigHasBeenSet; }
96 
97     /**
98      * <p>Specifies the constraints and baselines for the monitoring job.</p>
99      */
SetModelQualityBaselineConfig(const ModelQualityBaselineConfig & value)100     inline void SetModelQualityBaselineConfig(const ModelQualityBaselineConfig& value) { m_modelQualityBaselineConfigHasBeenSet = true; m_modelQualityBaselineConfig = value; }
101 
102     /**
103      * <p>Specifies the constraints and baselines for the monitoring job.</p>
104      */
SetModelQualityBaselineConfig(ModelQualityBaselineConfig && value)105     inline void SetModelQualityBaselineConfig(ModelQualityBaselineConfig&& value) { m_modelQualityBaselineConfigHasBeenSet = true; m_modelQualityBaselineConfig = std::move(value); }
106 
107     /**
108      * <p>Specifies the constraints and baselines for the monitoring job.</p>
109      */
WithModelQualityBaselineConfig(const ModelQualityBaselineConfig & value)110     inline CreateModelQualityJobDefinitionRequest& WithModelQualityBaselineConfig(const ModelQualityBaselineConfig& value) { SetModelQualityBaselineConfig(value); return *this;}
111 
112     /**
113      * <p>Specifies the constraints and baselines for the monitoring job.</p>
114      */
WithModelQualityBaselineConfig(ModelQualityBaselineConfig && value)115     inline CreateModelQualityJobDefinitionRequest& WithModelQualityBaselineConfig(ModelQualityBaselineConfig&& value) { SetModelQualityBaselineConfig(std::move(value)); return *this;}
116 
117 
118     /**
119      * <p>The container that runs the monitoring job.</p>
120      */
GetModelQualityAppSpecification()121     inline const ModelQualityAppSpecification& GetModelQualityAppSpecification() const{ return m_modelQualityAppSpecification; }
122 
123     /**
124      * <p>The container that runs the monitoring job.</p>
125      */
ModelQualityAppSpecificationHasBeenSet()126     inline bool ModelQualityAppSpecificationHasBeenSet() const { return m_modelQualityAppSpecificationHasBeenSet; }
127 
128     /**
129      * <p>The container that runs the monitoring job.</p>
130      */
SetModelQualityAppSpecification(const ModelQualityAppSpecification & value)131     inline void SetModelQualityAppSpecification(const ModelQualityAppSpecification& value) { m_modelQualityAppSpecificationHasBeenSet = true; m_modelQualityAppSpecification = value; }
132 
133     /**
134      * <p>The container that runs the monitoring job.</p>
135      */
SetModelQualityAppSpecification(ModelQualityAppSpecification && value)136     inline void SetModelQualityAppSpecification(ModelQualityAppSpecification&& value) { m_modelQualityAppSpecificationHasBeenSet = true; m_modelQualityAppSpecification = std::move(value); }
137 
138     /**
139      * <p>The container that runs the monitoring job.</p>
140      */
WithModelQualityAppSpecification(const ModelQualityAppSpecification & value)141     inline CreateModelQualityJobDefinitionRequest& WithModelQualityAppSpecification(const ModelQualityAppSpecification& value) { SetModelQualityAppSpecification(value); return *this;}
142 
143     /**
144      * <p>The container that runs the monitoring job.</p>
145      */
WithModelQualityAppSpecification(ModelQualityAppSpecification && value)146     inline CreateModelQualityJobDefinitionRequest& WithModelQualityAppSpecification(ModelQualityAppSpecification&& value) { SetModelQualityAppSpecification(std::move(value)); return *this;}
147 
148 
149     /**
150      * <p>A list of the inputs that are monitored. Currently endpoints are
151      * supported.</p>
152      */
GetModelQualityJobInput()153     inline const ModelQualityJobInput& GetModelQualityJobInput() const{ return m_modelQualityJobInput; }
154 
155     /**
156      * <p>A list of the inputs that are monitored. Currently endpoints are
157      * supported.</p>
158      */
ModelQualityJobInputHasBeenSet()159     inline bool ModelQualityJobInputHasBeenSet() const { return m_modelQualityJobInputHasBeenSet; }
160 
161     /**
162      * <p>A list of the inputs that are monitored. Currently endpoints are
163      * supported.</p>
164      */
SetModelQualityJobInput(const ModelQualityJobInput & value)165     inline void SetModelQualityJobInput(const ModelQualityJobInput& value) { m_modelQualityJobInputHasBeenSet = true; m_modelQualityJobInput = value; }
166 
167     /**
168      * <p>A list of the inputs that are monitored. Currently endpoints are
169      * supported.</p>
170      */
SetModelQualityJobInput(ModelQualityJobInput && value)171     inline void SetModelQualityJobInput(ModelQualityJobInput&& value) { m_modelQualityJobInputHasBeenSet = true; m_modelQualityJobInput = std::move(value); }
172 
173     /**
174      * <p>A list of the inputs that are monitored. Currently endpoints are
175      * supported.</p>
176      */
WithModelQualityJobInput(const ModelQualityJobInput & value)177     inline CreateModelQualityJobDefinitionRequest& WithModelQualityJobInput(const ModelQualityJobInput& value) { SetModelQualityJobInput(value); return *this;}
178 
179     /**
180      * <p>A list of the inputs that are monitored. Currently endpoints are
181      * supported.</p>
182      */
WithModelQualityJobInput(ModelQualityJobInput && value)183     inline CreateModelQualityJobDefinitionRequest& WithModelQualityJobInput(ModelQualityJobInput&& value) { SetModelQualityJobInput(std::move(value)); return *this;}
184 
185 
186 
GetModelQualityJobOutputConfig()187     inline const MonitoringOutputConfig& GetModelQualityJobOutputConfig() const{ return m_modelQualityJobOutputConfig; }
188 
189 
ModelQualityJobOutputConfigHasBeenSet()190     inline bool ModelQualityJobOutputConfigHasBeenSet() const { return m_modelQualityJobOutputConfigHasBeenSet; }
191 
192 
SetModelQualityJobOutputConfig(const MonitoringOutputConfig & value)193     inline void SetModelQualityJobOutputConfig(const MonitoringOutputConfig& value) { m_modelQualityJobOutputConfigHasBeenSet = true; m_modelQualityJobOutputConfig = value; }
194 
195 
SetModelQualityJobOutputConfig(MonitoringOutputConfig && value)196     inline void SetModelQualityJobOutputConfig(MonitoringOutputConfig&& value) { m_modelQualityJobOutputConfigHasBeenSet = true; m_modelQualityJobOutputConfig = std::move(value); }
197 
198 
WithModelQualityJobOutputConfig(const MonitoringOutputConfig & value)199     inline CreateModelQualityJobDefinitionRequest& WithModelQualityJobOutputConfig(const MonitoringOutputConfig& value) { SetModelQualityJobOutputConfig(value); return *this;}
200 
201 
WithModelQualityJobOutputConfig(MonitoringOutputConfig && value)202     inline CreateModelQualityJobDefinitionRequest& WithModelQualityJobOutputConfig(MonitoringOutputConfig&& value) { SetModelQualityJobOutputConfig(std::move(value)); return *this;}
203 
204 
205 
GetJobResources()206     inline const MonitoringResources& GetJobResources() const{ return m_jobResources; }
207 
208 
JobResourcesHasBeenSet()209     inline bool JobResourcesHasBeenSet() const { return m_jobResourcesHasBeenSet; }
210 
211 
SetJobResources(const MonitoringResources & value)212     inline void SetJobResources(const MonitoringResources& value) { m_jobResourcesHasBeenSet = true; m_jobResources = value; }
213 
214 
SetJobResources(MonitoringResources && value)215     inline void SetJobResources(MonitoringResources&& value) { m_jobResourcesHasBeenSet = true; m_jobResources = std::move(value); }
216 
217 
WithJobResources(const MonitoringResources & value)218     inline CreateModelQualityJobDefinitionRequest& WithJobResources(const MonitoringResources& value) { SetJobResources(value); return *this;}
219 
220 
WithJobResources(MonitoringResources && value)221     inline CreateModelQualityJobDefinitionRequest& WithJobResources(MonitoringResources&& value) { SetJobResources(std::move(value)); return *this;}
222 
223 
224     /**
225      * <p>Specifies the network configuration for the monitoring job.</p>
226      */
GetNetworkConfig()227     inline const MonitoringNetworkConfig& GetNetworkConfig() const{ return m_networkConfig; }
228 
229     /**
230      * <p>Specifies the network configuration for the monitoring job.</p>
231      */
NetworkConfigHasBeenSet()232     inline bool NetworkConfigHasBeenSet() const { return m_networkConfigHasBeenSet; }
233 
234     /**
235      * <p>Specifies the network configuration for the monitoring job.</p>
236      */
SetNetworkConfig(const MonitoringNetworkConfig & value)237     inline void SetNetworkConfig(const MonitoringNetworkConfig& value) { m_networkConfigHasBeenSet = true; m_networkConfig = value; }
238 
239     /**
240      * <p>Specifies the network configuration for the monitoring job.</p>
241      */
SetNetworkConfig(MonitoringNetworkConfig && value)242     inline void SetNetworkConfig(MonitoringNetworkConfig&& value) { m_networkConfigHasBeenSet = true; m_networkConfig = std::move(value); }
243 
244     /**
245      * <p>Specifies the network configuration for the monitoring job.</p>
246      */
WithNetworkConfig(const MonitoringNetworkConfig & value)247     inline CreateModelQualityJobDefinitionRequest& WithNetworkConfig(const MonitoringNetworkConfig& value) { SetNetworkConfig(value); return *this;}
248 
249     /**
250      * <p>Specifies the network configuration for the monitoring job.</p>
251      */
WithNetworkConfig(MonitoringNetworkConfig && value)252     inline CreateModelQualityJobDefinitionRequest& WithNetworkConfig(MonitoringNetworkConfig&& value) { SetNetworkConfig(std::move(value)); return *this;}
253 
254 
255     /**
256      * <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
257      * assume to perform tasks on your behalf.</p>
258      */
GetRoleArn()259     inline const Aws::String& GetRoleArn() const{ return m_roleArn; }
260 
261     /**
262      * <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
263      * assume to perform tasks on your behalf.</p>
264      */
RoleArnHasBeenSet()265     inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; }
266 
267     /**
268      * <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
269      * assume to perform tasks on your behalf.</p>
270      */
SetRoleArn(const Aws::String & value)271     inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; }
272 
273     /**
274      * <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
275      * assume to perform tasks on your behalf.</p>
276      */
SetRoleArn(Aws::String && value)277     inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); }
278 
279     /**
280      * <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
281      * assume to perform tasks on your behalf.</p>
282      */
SetRoleArn(const char * value)283     inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); }
284 
285     /**
286      * <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
287      * assume to perform tasks on your behalf.</p>
288      */
WithRoleArn(const Aws::String & value)289     inline CreateModelQualityJobDefinitionRequest& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;}
290 
291     /**
292      * <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
293      * assume to perform tasks on your behalf.</p>
294      */
WithRoleArn(Aws::String && value)295     inline CreateModelQualityJobDefinitionRequest& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;}
296 
297     /**
298      * <p>The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
299      * assume to perform tasks on your behalf.</p>
300      */
WithRoleArn(const char * value)301     inline CreateModelQualityJobDefinitionRequest& WithRoleArn(const char* value) { SetRoleArn(value); return *this;}
302 
303 
304 
GetStoppingCondition()305     inline const MonitoringStoppingCondition& GetStoppingCondition() const{ return m_stoppingCondition; }
306 
307 
StoppingConditionHasBeenSet()308     inline bool StoppingConditionHasBeenSet() const { return m_stoppingConditionHasBeenSet; }
309 
310 
SetStoppingCondition(const MonitoringStoppingCondition & value)311     inline void SetStoppingCondition(const MonitoringStoppingCondition& value) { m_stoppingConditionHasBeenSet = true; m_stoppingCondition = value; }
312 
313 
SetStoppingCondition(MonitoringStoppingCondition && value)314     inline void SetStoppingCondition(MonitoringStoppingCondition&& value) { m_stoppingConditionHasBeenSet = true; m_stoppingCondition = std::move(value); }
315 
316 
WithStoppingCondition(const MonitoringStoppingCondition & value)317     inline CreateModelQualityJobDefinitionRequest& WithStoppingCondition(const MonitoringStoppingCondition& value) { SetStoppingCondition(value); return *this;}
318 
319 
WithStoppingCondition(MonitoringStoppingCondition && value)320     inline CreateModelQualityJobDefinitionRequest& WithStoppingCondition(MonitoringStoppingCondition&& value) { SetStoppingCondition(std::move(value)); return *this;}
321 
322 
323     /**
324      * <p>(Optional) An array of key-value pairs. For more information, see <a
325      * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using
326      * Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost
327      * Management User Guide</i>.</p>
328      */
GetTags()329     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
330 
331     /**
332      * <p>(Optional) An array of key-value pairs. For more information, see <a
333      * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using
334      * Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost
335      * Management User Guide</i>.</p>
336      */
TagsHasBeenSet()337     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
338 
339     /**
340      * <p>(Optional) An array of key-value pairs. For more information, see <a
341      * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using
342      * Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost
343      * Management User Guide</i>.</p>
344      */
SetTags(const Aws::Vector<Tag> & value)345     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
346 
347     /**
348      * <p>(Optional) An array of key-value pairs. For more information, see <a
349      * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using
350      * Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost
351      * Management User Guide</i>.</p>
352      */
SetTags(Aws::Vector<Tag> && value)353     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
354 
355     /**
356      * <p>(Optional) An array of key-value pairs. For more information, see <a
357      * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using
358      * Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost
359      * Management User Guide</i>.</p>
360      */
WithTags(const Aws::Vector<Tag> & value)361     inline CreateModelQualityJobDefinitionRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
362 
363     /**
364      * <p>(Optional) An array of key-value pairs. For more information, see <a
365      * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using
366      * Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost
367      * Management User Guide</i>.</p>
368      */
WithTags(Aws::Vector<Tag> && value)369     inline CreateModelQualityJobDefinitionRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
370 
371     /**
372      * <p>(Optional) An array of key-value pairs. For more information, see <a
373      * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using
374      * Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost
375      * Management User Guide</i>.</p>
376      */
AddTags(const Tag & value)377     inline CreateModelQualityJobDefinitionRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
378 
379     /**
380      * <p>(Optional) An array of key-value pairs. For more information, see <a
381      * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using
382      * Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost
383      * Management User Guide</i>.</p>
384      */
AddTags(Tag && value)385     inline CreateModelQualityJobDefinitionRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
386 
387   private:
388 
389     Aws::String m_jobDefinitionName;
390     bool m_jobDefinitionNameHasBeenSet;
391 
392     ModelQualityBaselineConfig m_modelQualityBaselineConfig;
393     bool m_modelQualityBaselineConfigHasBeenSet;
394 
395     ModelQualityAppSpecification m_modelQualityAppSpecification;
396     bool m_modelQualityAppSpecificationHasBeenSet;
397 
398     ModelQualityJobInput m_modelQualityJobInput;
399     bool m_modelQualityJobInputHasBeenSet;
400 
401     MonitoringOutputConfig m_modelQualityJobOutputConfig;
402     bool m_modelQualityJobOutputConfigHasBeenSet;
403 
404     MonitoringResources m_jobResources;
405     bool m_jobResourcesHasBeenSet;
406 
407     MonitoringNetworkConfig m_networkConfig;
408     bool m_networkConfigHasBeenSet;
409 
410     Aws::String m_roleArn;
411     bool m_roleArnHasBeenSet;
412 
413     MonitoringStoppingCondition m_stoppingCondition;
414     bool m_stoppingConditionHasBeenSet;
415 
416     Aws::Vector<Tag> m_tags;
417     bool m_tagsHasBeenSet;
418   };
419 
420 } // namespace Model
421 } // namespace SageMaker
422 } // namespace Aws
423