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/model/ProvisioningArtifactDetail.h>
9 #include <aws/core/utils/memory/stl/AWSMap.h>
10 #include <aws/servicecatalog/model/Status.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 template<typename RESULT_TYPE>
17 class AmazonWebServiceResult;
18 
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24 } // namespace Json
25 } // namespace Utils
26 namespace ServiceCatalog
27 {
28 namespace Model
29 {
30   class AWS_SERVICECATALOG_API CreateProvisioningArtifactResult
31   {
32   public:
33     CreateProvisioningArtifactResult();
34     CreateProvisioningArtifactResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35     CreateProvisioningArtifactResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
36 
37 
38     /**
39      * <p>Information about the provisioning artifact.</p>
40      */
GetProvisioningArtifactDetail()41     inline const ProvisioningArtifactDetail& GetProvisioningArtifactDetail() const{ return m_provisioningArtifactDetail; }
42 
43     /**
44      * <p>Information about the provisioning artifact.</p>
45      */
SetProvisioningArtifactDetail(const ProvisioningArtifactDetail & value)46     inline void SetProvisioningArtifactDetail(const ProvisioningArtifactDetail& value) { m_provisioningArtifactDetail = value; }
47 
48     /**
49      * <p>Information about the provisioning artifact.</p>
50      */
SetProvisioningArtifactDetail(ProvisioningArtifactDetail && value)51     inline void SetProvisioningArtifactDetail(ProvisioningArtifactDetail&& value) { m_provisioningArtifactDetail = std::move(value); }
52 
53     /**
54      * <p>Information about the provisioning artifact.</p>
55      */
WithProvisioningArtifactDetail(const ProvisioningArtifactDetail & value)56     inline CreateProvisioningArtifactResult& WithProvisioningArtifactDetail(const ProvisioningArtifactDetail& value) { SetProvisioningArtifactDetail(value); return *this;}
57 
58     /**
59      * <p>Information about the provisioning artifact.</p>
60      */
WithProvisioningArtifactDetail(ProvisioningArtifactDetail && value)61     inline CreateProvisioningArtifactResult& WithProvisioningArtifactDetail(ProvisioningArtifactDetail&& value) { SetProvisioningArtifactDetail(std::move(value)); return *this;}
62 
63 
64     /**
65      * <p>Specify the template source with one of the following options, but not both.
66      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
67      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
68      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
69      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
70      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
71      * the resource that contains the template; currently supports CloudFormation stack
72      * ARN.</p>
73      */
GetInfo()74     inline const Aws::Map<Aws::String, Aws::String>& GetInfo() const{ return m_info; }
75 
76     /**
77      * <p>Specify the template source with one of the following options, but not both.
78      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
79      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
80      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
81      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
82      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
83      * the resource that contains the template; currently supports CloudFormation stack
84      * ARN.</p>
85      */
SetInfo(const Aws::Map<Aws::String,Aws::String> & value)86     inline void SetInfo(const Aws::Map<Aws::String, Aws::String>& value) { m_info = value; }
87 
88     /**
89      * <p>Specify the template source with one of the following options, but not both.
90      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
91      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
92      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
93      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
94      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
95      * the resource that contains the template; currently supports CloudFormation stack
96      * ARN.</p>
97      */
SetInfo(Aws::Map<Aws::String,Aws::String> && value)98     inline void SetInfo(Aws::Map<Aws::String, Aws::String>&& value) { m_info = std::move(value); }
99 
100     /**
101      * <p>Specify the template source with one of the following options, but not both.
102      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
103      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
104      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
105      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
106      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
107      * the resource that contains the template; currently supports CloudFormation stack
108      * ARN.</p>
109      */
WithInfo(const Aws::Map<Aws::String,Aws::String> & value)110     inline CreateProvisioningArtifactResult& WithInfo(const Aws::Map<Aws::String, Aws::String>& value) { SetInfo(value); return *this;}
111 
112     /**
113      * <p>Specify the template source with one of the following options, but not both.
114      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
115      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
116      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
117      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
118      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
119      * the resource that contains the template; currently supports CloudFormation stack
120      * ARN.</p>
121      */
WithInfo(Aws::Map<Aws::String,Aws::String> && value)122     inline CreateProvisioningArtifactResult& WithInfo(Aws::Map<Aws::String, Aws::String>&& value) { SetInfo(std::move(value)); return *this;}
123 
124     /**
125      * <p>Specify the template source with one of the following options, but not both.
126      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
127      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
128      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
129      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
130      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
131      * the resource that contains the template; currently supports CloudFormation stack
132      * ARN.</p>
133      */
AddInfo(const Aws::String & key,const Aws::String & value)134     inline CreateProvisioningArtifactResult& AddInfo(const Aws::String& key, const Aws::String& value) { m_info.emplace(key, value); return *this; }
135 
136     /**
137      * <p>Specify the template source with one of the following options, but not both.
138      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
139      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
140      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
141      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
142      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
143      * the resource that contains the template; currently supports CloudFormation stack
144      * ARN.</p>
145      */
AddInfo(Aws::String && key,const Aws::String & value)146     inline CreateProvisioningArtifactResult& AddInfo(Aws::String&& key, const Aws::String& value) { m_info.emplace(std::move(key), value); return *this; }
147 
148     /**
149      * <p>Specify the template source with one of the following options, but not both.
150      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
151      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
152      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
153      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
154      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
155      * the resource that contains the template; currently supports CloudFormation stack
156      * ARN.</p>
157      */
AddInfo(const Aws::String & key,Aws::String && value)158     inline CreateProvisioningArtifactResult& AddInfo(const Aws::String& key, Aws::String&& value) { m_info.emplace(key, std::move(value)); return *this; }
159 
160     /**
161      * <p>Specify the template source with one of the following options, but not both.
162      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
163      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
164      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
165      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
166      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
167      * the resource that contains the template; currently supports CloudFormation stack
168      * ARN.</p>
169      */
AddInfo(Aws::String && key,Aws::String && value)170     inline CreateProvisioningArtifactResult& AddInfo(Aws::String&& key, Aws::String&& value) { m_info.emplace(std::move(key), std::move(value)); return *this; }
171 
172     /**
173      * <p>Specify the template source with one of the following options, but not both.
174      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
175      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
176      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
177      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
178      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
179      * the resource that contains the template; currently supports CloudFormation stack
180      * ARN.</p>
181      */
AddInfo(const char * key,Aws::String && value)182     inline CreateProvisioningArtifactResult& AddInfo(const char* key, Aws::String&& value) { m_info.emplace(key, std::move(value)); return *this; }
183 
184     /**
185      * <p>Specify the template source with one of the following options, but not both.
186      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
187      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
188      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
189      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
190      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
191      * the resource that contains the template; currently supports CloudFormation stack
192      * ARN.</p>
193      */
AddInfo(Aws::String && key,const char * value)194     inline CreateProvisioningArtifactResult& AddInfo(Aws::String&& key, const char* value) { m_info.emplace(std::move(key), value); return *this; }
195 
196     /**
197      * <p>Specify the template source with one of the following options, but not both.
198      * Keys accepted: [ <code>LoadTemplateFromURL</code>,
199      * <code>ImportFromPhysicalId</code> ].</p> <p>The URL of the CloudFormation
200      * template in Amazon S3, in JSON format. </p> <p> <code>LoadTemplateFromURL</code>
201      * </p> <p>Use the URL of the CloudFormation template in Amazon S3 in JSON
202      * format.</p> <p> <code>ImportFromPhysicalId</code> </p> <p>Use the physical id of
203      * the resource that contains the template; currently supports CloudFormation stack
204      * ARN.</p>
205      */
AddInfo(const char * key,const char * value)206     inline CreateProvisioningArtifactResult& AddInfo(const char* key, const char* value) { m_info.emplace(key, value); return *this; }
207 
208 
209     /**
210      * <p>The status of the current request.</p>
211      */
GetStatus()212     inline const Status& GetStatus() const{ return m_status; }
213 
214     /**
215      * <p>The status of the current request.</p>
216      */
SetStatus(const Status & value)217     inline void SetStatus(const Status& value) { m_status = value; }
218 
219     /**
220      * <p>The status of the current request.</p>
221      */
SetStatus(Status && value)222     inline void SetStatus(Status&& value) { m_status = std::move(value); }
223 
224     /**
225      * <p>The status of the current request.</p>
226      */
WithStatus(const Status & value)227     inline CreateProvisioningArtifactResult& WithStatus(const Status& value) { SetStatus(value); return *this;}
228 
229     /**
230      * <p>The status of the current request.</p>
231      */
WithStatus(Status && value)232     inline CreateProvisioningArtifactResult& WithStatus(Status&& value) { SetStatus(std::move(value)); return *this;}
233 
234   private:
235 
236     ProvisioningArtifactDetail m_provisioningArtifactDetail;
237 
238     Aws::Map<Aws::String, Aws::String> m_info;
239 
240     Status m_status;
241   };
242 
243 } // namespace Model
244 } // namespace ServiceCatalog
245 } // namespace Aws
246