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/guardduty/GuardDuty_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/guardduty/model/AdminStatus.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 GuardDuty
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>The account within the organization specified as the GuardDuty delegated
29    * administrator.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AdminAccount">AWS
31    * API Reference</a></p>
32    */
33   class AWS_GUARDDUTY_API AdminAccount
34   {
35   public:
36     AdminAccount();
37     AdminAccount(Aws::Utils::Json::JsonView jsonValue);
38     AdminAccount& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The AWS account ID for the account.</p>
44      */
GetAdminAccountId()45     inline const Aws::String& GetAdminAccountId() const{ return m_adminAccountId; }
46 
47     /**
48      * <p>The AWS account ID for the account.</p>
49      */
AdminAccountIdHasBeenSet()50     inline bool AdminAccountIdHasBeenSet() const { return m_adminAccountIdHasBeenSet; }
51 
52     /**
53      * <p>The AWS account ID for the account.</p>
54      */
SetAdminAccountId(const Aws::String & value)55     inline void SetAdminAccountId(const Aws::String& value) { m_adminAccountIdHasBeenSet = true; m_adminAccountId = value; }
56 
57     /**
58      * <p>The AWS account ID for the account.</p>
59      */
SetAdminAccountId(Aws::String && value)60     inline void SetAdminAccountId(Aws::String&& value) { m_adminAccountIdHasBeenSet = true; m_adminAccountId = std::move(value); }
61 
62     /**
63      * <p>The AWS account ID for the account.</p>
64      */
SetAdminAccountId(const char * value)65     inline void SetAdminAccountId(const char* value) { m_adminAccountIdHasBeenSet = true; m_adminAccountId.assign(value); }
66 
67     /**
68      * <p>The AWS account ID for the account.</p>
69      */
WithAdminAccountId(const Aws::String & value)70     inline AdminAccount& WithAdminAccountId(const Aws::String& value) { SetAdminAccountId(value); return *this;}
71 
72     /**
73      * <p>The AWS account ID for the account.</p>
74      */
WithAdminAccountId(Aws::String && value)75     inline AdminAccount& WithAdminAccountId(Aws::String&& value) { SetAdminAccountId(std::move(value)); return *this;}
76 
77     /**
78      * <p>The AWS account ID for the account.</p>
79      */
WithAdminAccountId(const char * value)80     inline AdminAccount& WithAdminAccountId(const char* value) { SetAdminAccountId(value); return *this;}
81 
82 
83     /**
84      * <p>Indicates whether the account is enabled as the delegated administrator.</p>
85      */
GetAdminStatus()86     inline const AdminStatus& GetAdminStatus() const{ return m_adminStatus; }
87 
88     /**
89      * <p>Indicates whether the account is enabled as the delegated administrator.</p>
90      */
AdminStatusHasBeenSet()91     inline bool AdminStatusHasBeenSet() const { return m_adminStatusHasBeenSet; }
92 
93     /**
94      * <p>Indicates whether the account is enabled as the delegated administrator.</p>
95      */
SetAdminStatus(const AdminStatus & value)96     inline void SetAdminStatus(const AdminStatus& value) { m_adminStatusHasBeenSet = true; m_adminStatus = value; }
97 
98     /**
99      * <p>Indicates whether the account is enabled as the delegated administrator.</p>
100      */
SetAdminStatus(AdminStatus && value)101     inline void SetAdminStatus(AdminStatus&& value) { m_adminStatusHasBeenSet = true; m_adminStatus = std::move(value); }
102 
103     /**
104      * <p>Indicates whether the account is enabled as the delegated administrator.</p>
105      */
WithAdminStatus(const AdminStatus & value)106     inline AdminAccount& WithAdminStatus(const AdminStatus& value) { SetAdminStatus(value); return *this;}
107 
108     /**
109      * <p>Indicates whether the account is enabled as the delegated administrator.</p>
110      */
WithAdminStatus(AdminStatus && value)111     inline AdminAccount& WithAdminStatus(AdminStatus&& value) { SetAdminStatus(std::move(value)); return *this;}
112 
113   private:
114 
115     Aws::String m_adminAccountId;
116     bool m_adminAccountIdHasBeenSet;
117 
118     AdminStatus m_adminStatus;
119     bool m_adminStatusHasBeenSet;
120   };
121 
122 } // namespace Model
123 } // namespace GuardDuty
124 } // namespace Aws
125