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/servicecatalog/ServiceCatalog_EXPORTS.h>
8 #include <aws/servicecatalog/ServiceCatalogRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/servicecatalog/model/OrganizationNode.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace ServiceCatalog
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_SERVICECATALOG_API CreatePortfolioShareRequest : public ServiceCatalogRequest
23   {
24   public:
25     CreatePortfolioShareRequest();
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 "CreatePortfolioShare"; }
32 
33     Aws::String SerializePayload() const override;
34 
35     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
36 
37 
38     /**
39      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
40      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
41      * Chinese</p> </li> </ul>
42      */
GetAcceptLanguage()43     inline const Aws::String& GetAcceptLanguage() const{ return m_acceptLanguage; }
44 
45     /**
46      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
47      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
48      * Chinese</p> </li> </ul>
49      */
AcceptLanguageHasBeenSet()50     inline bool AcceptLanguageHasBeenSet() const { return m_acceptLanguageHasBeenSet; }
51 
52     /**
53      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
54      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
55      * Chinese</p> </li> </ul>
56      */
SetAcceptLanguage(const Aws::String & value)57     inline void SetAcceptLanguage(const Aws::String& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = value; }
58 
59     /**
60      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
61      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
62      * Chinese</p> </li> </ul>
63      */
SetAcceptLanguage(Aws::String && value)64     inline void SetAcceptLanguage(Aws::String&& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = std::move(value); }
65 
66     /**
67      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
68      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
69      * Chinese</p> </li> </ul>
70      */
SetAcceptLanguage(const char * value)71     inline void SetAcceptLanguage(const char* value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage.assign(value); }
72 
73     /**
74      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
75      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
76      * Chinese</p> </li> </ul>
77      */
WithAcceptLanguage(const Aws::String & value)78     inline CreatePortfolioShareRequest& WithAcceptLanguage(const Aws::String& value) { SetAcceptLanguage(value); return *this;}
79 
80     /**
81      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
82      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
83      * Chinese</p> </li> </ul>
84      */
WithAcceptLanguage(Aws::String && value)85     inline CreatePortfolioShareRequest& WithAcceptLanguage(Aws::String&& value) { SetAcceptLanguage(std::move(value)); return *this;}
86 
87     /**
88      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
89      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
90      * Chinese</p> </li> </ul>
91      */
WithAcceptLanguage(const char * value)92     inline CreatePortfolioShareRequest& WithAcceptLanguage(const char* value) { SetAcceptLanguage(value); return *this;}
93 
94 
95     /**
96      * <p>The portfolio identifier.</p>
97      */
GetPortfolioId()98     inline const Aws::String& GetPortfolioId() const{ return m_portfolioId; }
99 
100     /**
101      * <p>The portfolio identifier.</p>
102      */
PortfolioIdHasBeenSet()103     inline bool PortfolioIdHasBeenSet() const { return m_portfolioIdHasBeenSet; }
104 
105     /**
106      * <p>The portfolio identifier.</p>
107      */
SetPortfolioId(const Aws::String & value)108     inline void SetPortfolioId(const Aws::String& value) { m_portfolioIdHasBeenSet = true; m_portfolioId = value; }
109 
110     /**
111      * <p>The portfolio identifier.</p>
112      */
SetPortfolioId(Aws::String && value)113     inline void SetPortfolioId(Aws::String&& value) { m_portfolioIdHasBeenSet = true; m_portfolioId = std::move(value); }
114 
115     /**
116      * <p>The portfolio identifier.</p>
117      */
SetPortfolioId(const char * value)118     inline void SetPortfolioId(const char* value) { m_portfolioIdHasBeenSet = true; m_portfolioId.assign(value); }
119 
120     /**
121      * <p>The portfolio identifier.</p>
122      */
WithPortfolioId(const Aws::String & value)123     inline CreatePortfolioShareRequest& WithPortfolioId(const Aws::String& value) { SetPortfolioId(value); return *this;}
124 
125     /**
126      * <p>The portfolio identifier.</p>
127      */
WithPortfolioId(Aws::String && value)128     inline CreatePortfolioShareRequest& WithPortfolioId(Aws::String&& value) { SetPortfolioId(std::move(value)); return *this;}
129 
130     /**
131      * <p>The portfolio identifier.</p>
132      */
WithPortfolioId(const char * value)133     inline CreatePortfolioShareRequest& WithPortfolioId(const char* value) { SetPortfolioId(value); return *this;}
134 
135 
136     /**
137      * <p>The AWS account ID. For example, <code>123456789012</code>.</p>
138      */
GetAccountId()139     inline const Aws::String& GetAccountId() const{ return m_accountId; }
140 
141     /**
142      * <p>The AWS account ID. For example, <code>123456789012</code>.</p>
143      */
AccountIdHasBeenSet()144     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
145 
146     /**
147      * <p>The AWS account ID. For example, <code>123456789012</code>.</p>
148      */
SetAccountId(const Aws::String & value)149     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
150 
151     /**
152      * <p>The AWS account ID. For example, <code>123456789012</code>.</p>
153      */
SetAccountId(Aws::String && value)154     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
155 
156     /**
157      * <p>The AWS account ID. For example, <code>123456789012</code>.</p>
158      */
SetAccountId(const char * value)159     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
160 
161     /**
162      * <p>The AWS account ID. For example, <code>123456789012</code>.</p>
163      */
WithAccountId(const Aws::String & value)164     inline CreatePortfolioShareRequest& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
165 
166     /**
167      * <p>The AWS account ID. For example, <code>123456789012</code>.</p>
168      */
WithAccountId(Aws::String && value)169     inline CreatePortfolioShareRequest& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
170 
171     /**
172      * <p>The AWS account ID. For example, <code>123456789012</code>.</p>
173      */
WithAccountId(const char * value)174     inline CreatePortfolioShareRequest& WithAccountId(const char* value) { SetAccountId(value); return *this;}
175 
176 
177     /**
178      * <p>The organization node to whom you are going to share. If
179      * <code>OrganizationNode</code> is passed in, <code>PortfolioShare</code> will be
180      * created for the node an ListOrganizationPortfolioAccessd its children (when
181      * applies), and a <code>PortfolioShareToken</code> will be returned in the output
182      * in order for the administrator to monitor the status of the
183      * <code>PortfolioShare</code> creation process.</p>
184      */
GetOrganizationNode()185     inline const OrganizationNode& GetOrganizationNode() const{ return m_organizationNode; }
186 
187     /**
188      * <p>The organization node to whom you are going to share. If
189      * <code>OrganizationNode</code> is passed in, <code>PortfolioShare</code> will be
190      * created for the node an ListOrganizationPortfolioAccessd its children (when
191      * applies), and a <code>PortfolioShareToken</code> will be returned in the output
192      * in order for the administrator to monitor the status of the
193      * <code>PortfolioShare</code> creation process.</p>
194      */
OrganizationNodeHasBeenSet()195     inline bool OrganizationNodeHasBeenSet() const { return m_organizationNodeHasBeenSet; }
196 
197     /**
198      * <p>The organization node to whom you are going to share. If
199      * <code>OrganizationNode</code> is passed in, <code>PortfolioShare</code> will be
200      * created for the node an ListOrganizationPortfolioAccessd its children (when
201      * applies), and a <code>PortfolioShareToken</code> will be returned in the output
202      * in order for the administrator to monitor the status of the
203      * <code>PortfolioShare</code> creation process.</p>
204      */
SetOrganizationNode(const OrganizationNode & value)205     inline void SetOrganizationNode(const OrganizationNode& value) { m_organizationNodeHasBeenSet = true; m_organizationNode = value; }
206 
207     /**
208      * <p>The organization node to whom you are going to share. If
209      * <code>OrganizationNode</code> is passed in, <code>PortfolioShare</code> will be
210      * created for the node an ListOrganizationPortfolioAccessd its children (when
211      * applies), and a <code>PortfolioShareToken</code> will be returned in the output
212      * in order for the administrator to monitor the status of the
213      * <code>PortfolioShare</code> creation process.</p>
214      */
SetOrganizationNode(OrganizationNode && value)215     inline void SetOrganizationNode(OrganizationNode&& value) { m_organizationNodeHasBeenSet = true; m_organizationNode = std::move(value); }
216 
217     /**
218      * <p>The organization node to whom you are going to share. If
219      * <code>OrganizationNode</code> is passed in, <code>PortfolioShare</code> will be
220      * created for the node an ListOrganizationPortfolioAccessd its children (when
221      * applies), and a <code>PortfolioShareToken</code> will be returned in the output
222      * in order for the administrator to monitor the status of the
223      * <code>PortfolioShare</code> creation process.</p>
224      */
WithOrganizationNode(const OrganizationNode & value)225     inline CreatePortfolioShareRequest& WithOrganizationNode(const OrganizationNode& value) { SetOrganizationNode(value); return *this;}
226 
227     /**
228      * <p>The organization node to whom you are going to share. If
229      * <code>OrganizationNode</code> is passed in, <code>PortfolioShare</code> will be
230      * created for the node an ListOrganizationPortfolioAccessd its children (when
231      * applies), and a <code>PortfolioShareToken</code> will be returned in the output
232      * in order for the administrator to monitor the status of the
233      * <code>PortfolioShare</code> creation process.</p>
234      */
WithOrganizationNode(OrganizationNode && value)235     inline CreatePortfolioShareRequest& WithOrganizationNode(OrganizationNode&& value) { SetOrganizationNode(std::move(value)); return *this;}
236 
237 
238     /**
239      * <p>Enables or disables <code>TagOptions </code> sharing when creating the
240      * portfolio share. If this flag is not provided, TagOptions sharing is
241      * disabled.</p>
242      */
GetShareTagOptions()243     inline bool GetShareTagOptions() const{ return m_shareTagOptions; }
244 
245     /**
246      * <p>Enables or disables <code>TagOptions </code> sharing when creating the
247      * portfolio share. If this flag is not provided, TagOptions sharing is
248      * disabled.</p>
249      */
ShareTagOptionsHasBeenSet()250     inline bool ShareTagOptionsHasBeenSet() const { return m_shareTagOptionsHasBeenSet; }
251 
252     /**
253      * <p>Enables or disables <code>TagOptions </code> sharing when creating the
254      * portfolio share. If this flag is not provided, TagOptions sharing is
255      * disabled.</p>
256      */
SetShareTagOptions(bool value)257     inline void SetShareTagOptions(bool value) { m_shareTagOptionsHasBeenSet = true; m_shareTagOptions = value; }
258 
259     /**
260      * <p>Enables or disables <code>TagOptions </code> sharing when creating the
261      * portfolio share. If this flag is not provided, TagOptions sharing is
262      * disabled.</p>
263      */
WithShareTagOptions(bool value)264     inline CreatePortfolioShareRequest& WithShareTagOptions(bool value) { SetShareTagOptions(value); return *this;}
265 
266   private:
267 
268     Aws::String m_acceptLanguage;
269     bool m_acceptLanguageHasBeenSet;
270 
271     Aws::String m_portfolioId;
272     bool m_portfolioIdHasBeenSet;
273 
274     Aws::String m_accountId;
275     bool m_accountIdHasBeenSet;
276 
277     OrganizationNode m_organizationNode;
278     bool m_organizationNodeHasBeenSet;
279 
280     bool m_shareTagOptions;
281     bool m_shareTagOptionsHasBeenSet;
282   };
283 
284 } // namespace Model
285 } // namespace ServiceCatalog
286 } // namespace Aws
287