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/account/Account_EXPORTS.h>
8 #include <aws/account/AccountRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/account/model/AlternateContactType.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Account
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_ACCOUNT_API GetAlternateContactRequest : public AccountRequest
23   {
24   public:
25     GetAlternateContactRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "GetAlternateContact"; }
32 
33     Aws::String SerializePayload() const override;
34 
35 
36     /**
37      * <p>Specifies the 12 digit account ID number of the Amazon Web Services account
38      * that you want to access or modify with this operation.</p> <p>If you do not
39      * specify this parameter, it defaults to the Amazon Web Services account of the
40      * identity used to call the operation.</p> <p>To use this parameter, the caller
41      * must be an identity in the <a
42      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">organization's
43      * management account</a> or a delegated administrator account, and the specified
44      * account ID must be a member account in the same organization. The organization
45      * must have <a
46      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all
47      * features enabled</a>, and the organization must have <a
48      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html">trusted
49      * access</a> enabled for the Account Management service, and optionally a <a
50      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html">delegated
51      * admin</a> account assigned.</p>  <p>The management account can't specify
52      * its own <code>AccountId</code>; it must call the operation in standalone context
53      * by not including the <code>AccountId</code> parameter.</p>  <p>To call
54      * this operation on an account that is not a member of an organization, then don't
55      * specify this parameter, and call the operation using an identity belonging to
56      * the account whose contacts you wish to retrieve or modify.</p>
57      */
GetAccountId()58     inline const Aws::String& GetAccountId() const{ return m_accountId; }
59 
60     /**
61      * <p>Specifies the 12 digit account ID number of the Amazon Web Services account
62      * that you want to access or modify with this operation.</p> <p>If you do not
63      * specify this parameter, it defaults to the Amazon Web Services account of the
64      * identity used to call the operation.</p> <p>To use this parameter, the caller
65      * must be an identity in the <a
66      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">organization's
67      * management account</a> or a delegated administrator account, and the specified
68      * account ID must be a member account in the same organization. The organization
69      * must have <a
70      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all
71      * features enabled</a>, and the organization must have <a
72      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html">trusted
73      * access</a> enabled for the Account Management service, and optionally a <a
74      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html">delegated
75      * admin</a> account assigned.</p>  <p>The management account can't specify
76      * its own <code>AccountId</code>; it must call the operation in standalone context
77      * by not including the <code>AccountId</code> parameter.</p>  <p>To call
78      * this operation on an account that is not a member of an organization, then don't
79      * specify this parameter, and call the operation using an identity belonging to
80      * the account whose contacts you wish to retrieve or modify.</p>
81      */
AccountIdHasBeenSet()82     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
83 
84     /**
85      * <p>Specifies the 12 digit account ID number of the Amazon Web Services account
86      * that you want to access or modify with this operation.</p> <p>If you do not
87      * specify this parameter, it defaults to the Amazon Web Services account of the
88      * identity used to call the operation.</p> <p>To use this parameter, the caller
89      * must be an identity in the <a
90      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">organization's
91      * management account</a> or a delegated administrator account, and the specified
92      * account ID must be a member account in the same organization. The organization
93      * must have <a
94      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all
95      * features enabled</a>, and the organization must have <a
96      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html">trusted
97      * access</a> enabled for the Account Management service, and optionally a <a
98      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html">delegated
99      * admin</a> account assigned.</p>  <p>The management account can't specify
100      * its own <code>AccountId</code>; it must call the operation in standalone context
101      * by not including the <code>AccountId</code> parameter.</p>  <p>To call
102      * this operation on an account that is not a member of an organization, then don't
103      * specify this parameter, and call the operation using an identity belonging to
104      * the account whose contacts you wish to retrieve or modify.</p>
105      */
SetAccountId(const Aws::String & value)106     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
107 
108     /**
109      * <p>Specifies the 12 digit account ID number of the Amazon Web Services account
110      * that you want to access or modify with this operation.</p> <p>If you do not
111      * specify this parameter, it defaults to the Amazon Web Services account of the
112      * identity used to call the operation.</p> <p>To use this parameter, the caller
113      * must be an identity in the <a
114      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">organization's
115      * management account</a> or a delegated administrator account, and the specified
116      * account ID must be a member account in the same organization. The organization
117      * must have <a
118      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all
119      * features enabled</a>, and the organization must have <a
120      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html">trusted
121      * access</a> enabled for the Account Management service, and optionally a <a
122      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html">delegated
123      * admin</a> account assigned.</p>  <p>The management account can't specify
124      * its own <code>AccountId</code>; it must call the operation in standalone context
125      * by not including the <code>AccountId</code> parameter.</p>  <p>To call
126      * this operation on an account that is not a member of an organization, then don't
127      * specify this parameter, and call the operation using an identity belonging to
128      * the account whose contacts you wish to retrieve or modify.</p>
129      */
SetAccountId(Aws::String && value)130     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
131 
132     /**
133      * <p>Specifies the 12 digit account ID number of the Amazon Web Services account
134      * that you want to access or modify with this operation.</p> <p>If you do not
135      * specify this parameter, it defaults to the Amazon Web Services account of the
136      * identity used to call the operation.</p> <p>To use this parameter, the caller
137      * must be an identity in the <a
138      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">organization's
139      * management account</a> or a delegated administrator account, and the specified
140      * account ID must be a member account in the same organization. The organization
141      * must have <a
142      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all
143      * features enabled</a>, and the organization must have <a
144      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html">trusted
145      * access</a> enabled for the Account Management service, and optionally a <a
146      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html">delegated
147      * admin</a> account assigned.</p>  <p>The management account can't specify
148      * its own <code>AccountId</code>; it must call the operation in standalone context
149      * by not including the <code>AccountId</code> parameter.</p>  <p>To call
150      * this operation on an account that is not a member of an organization, then don't
151      * specify this parameter, and call the operation using an identity belonging to
152      * the account whose contacts you wish to retrieve or modify.</p>
153      */
SetAccountId(const char * value)154     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
155 
156     /**
157      * <p>Specifies the 12 digit account ID number of the Amazon Web Services account
158      * that you want to access or modify with this operation.</p> <p>If you do not
159      * specify this parameter, it defaults to the Amazon Web Services account of the
160      * identity used to call the operation.</p> <p>To use this parameter, the caller
161      * must be an identity in the <a
162      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">organization's
163      * management account</a> or a delegated administrator account, and the specified
164      * account ID must be a member account in the same organization. The organization
165      * must have <a
166      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all
167      * features enabled</a>, and the organization must have <a
168      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html">trusted
169      * access</a> enabled for the Account Management service, and optionally a <a
170      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html">delegated
171      * admin</a> account assigned.</p>  <p>The management account can't specify
172      * its own <code>AccountId</code>; it must call the operation in standalone context
173      * by not including the <code>AccountId</code> parameter.</p>  <p>To call
174      * this operation on an account that is not a member of an organization, then don't
175      * specify this parameter, and call the operation using an identity belonging to
176      * the account whose contacts you wish to retrieve or modify.</p>
177      */
WithAccountId(const Aws::String & value)178     inline GetAlternateContactRequest& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
179 
180     /**
181      * <p>Specifies the 12 digit account ID number of the Amazon Web Services account
182      * that you want to access or modify with this operation.</p> <p>If you do not
183      * specify this parameter, it defaults to the Amazon Web Services account of the
184      * identity used to call the operation.</p> <p>To use this parameter, the caller
185      * must be an identity in the <a
186      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">organization's
187      * management account</a> or a delegated administrator account, and the specified
188      * account ID must be a member account in the same organization. The organization
189      * must have <a
190      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all
191      * features enabled</a>, and the organization must have <a
192      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html">trusted
193      * access</a> enabled for the Account Management service, and optionally a <a
194      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html">delegated
195      * admin</a> account assigned.</p>  <p>The management account can't specify
196      * its own <code>AccountId</code>; it must call the operation in standalone context
197      * by not including the <code>AccountId</code> parameter.</p>  <p>To call
198      * this operation on an account that is not a member of an organization, then don't
199      * specify this parameter, and call the operation using an identity belonging to
200      * the account whose contacts you wish to retrieve or modify.</p>
201      */
WithAccountId(Aws::String && value)202     inline GetAlternateContactRequest& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
203 
204     /**
205      * <p>Specifies the 12 digit account ID number of the Amazon Web Services account
206      * that you want to access or modify with this operation.</p> <p>If you do not
207      * specify this parameter, it defaults to the Amazon Web Services account of the
208      * identity used to call the operation.</p> <p>To use this parameter, the caller
209      * must be an identity in the <a
210      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">organization's
211      * management account</a> or a delegated administrator account, and the specified
212      * account ID must be a member account in the same organization. The organization
213      * must have <a
214      * href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all
215      * features enabled</a>, and the organization must have <a
216      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html">trusted
217      * access</a> enabled for the Account Management service, and optionally a <a
218      * href="https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html">delegated
219      * admin</a> account assigned.</p>  <p>The management account can't specify
220      * its own <code>AccountId</code>; it must call the operation in standalone context
221      * by not including the <code>AccountId</code> parameter.</p>  <p>To call
222      * this operation on an account that is not a member of an organization, then don't
223      * specify this parameter, and call the operation using an identity belonging to
224      * the account whose contacts you wish to retrieve or modify.</p>
225      */
WithAccountId(const char * value)226     inline GetAlternateContactRequest& WithAccountId(const char* value) { SetAccountId(value); return *this;}
227 
228 
229     /**
230      * <p>Specifies which alternate contact you want to retrieve.</p>
231      */
GetAlternateContactType()232     inline const AlternateContactType& GetAlternateContactType() const{ return m_alternateContactType; }
233 
234     /**
235      * <p>Specifies which alternate contact you want to retrieve.</p>
236      */
AlternateContactTypeHasBeenSet()237     inline bool AlternateContactTypeHasBeenSet() const { return m_alternateContactTypeHasBeenSet; }
238 
239     /**
240      * <p>Specifies which alternate contact you want to retrieve.</p>
241      */
SetAlternateContactType(const AlternateContactType & value)242     inline void SetAlternateContactType(const AlternateContactType& value) { m_alternateContactTypeHasBeenSet = true; m_alternateContactType = value; }
243 
244     /**
245      * <p>Specifies which alternate contact you want to retrieve.</p>
246      */
SetAlternateContactType(AlternateContactType && value)247     inline void SetAlternateContactType(AlternateContactType&& value) { m_alternateContactTypeHasBeenSet = true; m_alternateContactType = std::move(value); }
248 
249     /**
250      * <p>Specifies which alternate contact you want to retrieve.</p>
251      */
WithAlternateContactType(const AlternateContactType & value)252     inline GetAlternateContactRequest& WithAlternateContactType(const AlternateContactType& value) { SetAlternateContactType(value); return *this;}
253 
254     /**
255      * <p>Specifies which alternate contact you want to retrieve.</p>
256      */
WithAlternateContactType(AlternateContactType && value)257     inline GetAlternateContactRequest& WithAlternateContactType(AlternateContactType&& value) { SetAlternateContactType(std::move(value)); return *this;}
258 
259   private:
260 
261     Aws::String m_accountId;
262     bool m_accountIdHasBeenSet;
263 
264     AlternateContactType m_alternateContactType;
265     bool m_alternateContactTypeHasBeenSet;
266   };
267 
268 } // namespace Model
269 } // namespace Account
270 } // namespace Aws
271