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/lookoutmetrics/LookoutMetrics_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace LookoutMetrics
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Details about an Amazon CloudWatch datasource.</p><p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutmetrics-2017-07-25/CloudWatchConfig">AWS
29    * API Reference</a></p>
30    */
31   class AWS_LOOKOUTMETRICS_API CloudWatchConfig
32   {
33   public:
34     CloudWatchConfig();
35     CloudWatchConfig(Aws::Utils::Json::JsonView jsonValue);
36     CloudWatchConfig& operator=(Aws::Utils::Json::JsonView jsonValue);
37     Aws::Utils::Json::JsonValue Jsonize() const;
38 
39 
40     /**
41      * <p>An IAM role that gives Amazon Lookout for Metrics permission to access data
42      * in Amazon CloudWatch.</p>
43      */
GetRoleArn()44     inline const Aws::String& GetRoleArn() const{ return m_roleArn; }
45 
46     /**
47      * <p>An IAM role that gives Amazon Lookout for Metrics permission to access data
48      * in Amazon CloudWatch.</p>
49      */
RoleArnHasBeenSet()50     inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; }
51 
52     /**
53      * <p>An IAM role that gives Amazon Lookout for Metrics permission to access data
54      * in Amazon CloudWatch.</p>
55      */
SetRoleArn(const Aws::String & value)56     inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; }
57 
58     /**
59      * <p>An IAM role that gives Amazon Lookout for Metrics permission to access data
60      * in Amazon CloudWatch.</p>
61      */
SetRoleArn(Aws::String && value)62     inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); }
63 
64     /**
65      * <p>An IAM role that gives Amazon Lookout for Metrics permission to access data
66      * in Amazon CloudWatch.</p>
67      */
SetRoleArn(const char * value)68     inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); }
69 
70     /**
71      * <p>An IAM role that gives Amazon Lookout for Metrics permission to access data
72      * in Amazon CloudWatch.</p>
73      */
WithRoleArn(const Aws::String & value)74     inline CloudWatchConfig& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;}
75 
76     /**
77      * <p>An IAM role that gives Amazon Lookout for Metrics permission to access data
78      * in Amazon CloudWatch.</p>
79      */
WithRoleArn(Aws::String && value)80     inline CloudWatchConfig& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;}
81 
82     /**
83      * <p>An IAM role that gives Amazon Lookout for Metrics permission to access data
84      * in Amazon CloudWatch.</p>
85      */
WithRoleArn(const char * value)86     inline CloudWatchConfig& WithRoleArn(const char* value) { SetRoleArn(value); return *this;}
87 
88   private:
89 
90     Aws::String m_roleArn;
91     bool m_roleArnHasBeenSet;
92   };
93 
94 } // namespace Model
95 } // namespace LookoutMetrics
96 } // namespace Aws
97