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/ProductViewSummary.h>
9 #include <aws/servicecatalog/model/Status.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/core/utils/DateTime.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace ServiceCatalog
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Information about a product view.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProductViewDetail">AWS
32    * API Reference</a></p>
33    */
34   class AWS_SERVICECATALOG_API ProductViewDetail
35   {
36   public:
37     ProductViewDetail();
38     ProductViewDetail(Aws::Utils::Json::JsonView jsonValue);
39     ProductViewDetail& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>Summary information about the product view.</p>
45      */
GetProductViewSummary()46     inline const ProductViewSummary& GetProductViewSummary() const{ return m_productViewSummary; }
47 
48     /**
49      * <p>Summary information about the product view.</p>
50      */
ProductViewSummaryHasBeenSet()51     inline bool ProductViewSummaryHasBeenSet() const { return m_productViewSummaryHasBeenSet; }
52 
53     /**
54      * <p>Summary information about the product view.</p>
55      */
SetProductViewSummary(const ProductViewSummary & value)56     inline void SetProductViewSummary(const ProductViewSummary& value) { m_productViewSummaryHasBeenSet = true; m_productViewSummary = value; }
57 
58     /**
59      * <p>Summary information about the product view.</p>
60      */
SetProductViewSummary(ProductViewSummary && value)61     inline void SetProductViewSummary(ProductViewSummary&& value) { m_productViewSummaryHasBeenSet = true; m_productViewSummary = std::move(value); }
62 
63     /**
64      * <p>Summary information about the product view.</p>
65      */
WithProductViewSummary(const ProductViewSummary & value)66     inline ProductViewDetail& WithProductViewSummary(const ProductViewSummary& value) { SetProductViewSummary(value); return *this;}
67 
68     /**
69      * <p>Summary information about the product view.</p>
70      */
WithProductViewSummary(ProductViewSummary && value)71     inline ProductViewDetail& WithProductViewSummary(ProductViewSummary&& value) { SetProductViewSummary(std::move(value)); return *this;}
72 
73 
74     /**
75      * <p>The status of the product.</p> <ul> <li> <p> <code>AVAILABLE</code> - The
76      * product is ready for use.</p> </li> <li> <p> <code>CREATING</code> - Product
77      * creation has started; the product is not ready for use.</p> </li> <li> <p>
78      * <code>FAILED</code> - An action failed.</p> </li> </ul>
79      */
GetStatus()80     inline const Status& GetStatus() const{ return m_status; }
81 
82     /**
83      * <p>The status of the product.</p> <ul> <li> <p> <code>AVAILABLE</code> - The
84      * product is ready for use.</p> </li> <li> <p> <code>CREATING</code> - Product
85      * creation has started; the product is not ready for use.</p> </li> <li> <p>
86      * <code>FAILED</code> - An action failed.</p> </li> </ul>
87      */
StatusHasBeenSet()88     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
89 
90     /**
91      * <p>The status of the product.</p> <ul> <li> <p> <code>AVAILABLE</code> - The
92      * product is ready for use.</p> </li> <li> <p> <code>CREATING</code> - Product
93      * creation has started; the product is not ready for use.</p> </li> <li> <p>
94      * <code>FAILED</code> - An action failed.</p> </li> </ul>
95      */
SetStatus(const Status & value)96     inline void SetStatus(const Status& value) { m_statusHasBeenSet = true; m_status = value; }
97 
98     /**
99      * <p>The status of the product.</p> <ul> <li> <p> <code>AVAILABLE</code> - The
100      * product is ready for use.</p> </li> <li> <p> <code>CREATING</code> - Product
101      * creation has started; the product is not ready for use.</p> </li> <li> <p>
102      * <code>FAILED</code> - An action failed.</p> </li> </ul>
103      */
SetStatus(Status && value)104     inline void SetStatus(Status&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
105 
106     /**
107      * <p>The status of the product.</p> <ul> <li> <p> <code>AVAILABLE</code> - The
108      * product is ready for use.</p> </li> <li> <p> <code>CREATING</code> - Product
109      * creation has started; the product is not ready for use.</p> </li> <li> <p>
110      * <code>FAILED</code> - An action failed.</p> </li> </ul>
111      */
WithStatus(const Status & value)112     inline ProductViewDetail& WithStatus(const Status& value) { SetStatus(value); return *this;}
113 
114     /**
115      * <p>The status of the product.</p> <ul> <li> <p> <code>AVAILABLE</code> - The
116      * product is ready for use.</p> </li> <li> <p> <code>CREATING</code> - Product
117      * creation has started; the product is not ready for use.</p> </li> <li> <p>
118      * <code>FAILED</code> - An action failed.</p> </li> </ul>
119      */
WithStatus(Status && value)120     inline ProductViewDetail& WithStatus(Status&& value) { SetStatus(std::move(value)); return *this;}
121 
122 
123     /**
124      * <p>The ARN of the product.</p>
125      */
GetProductARN()126     inline const Aws::String& GetProductARN() const{ return m_productARN; }
127 
128     /**
129      * <p>The ARN of the product.</p>
130      */
ProductARNHasBeenSet()131     inline bool ProductARNHasBeenSet() const { return m_productARNHasBeenSet; }
132 
133     /**
134      * <p>The ARN of the product.</p>
135      */
SetProductARN(const Aws::String & value)136     inline void SetProductARN(const Aws::String& value) { m_productARNHasBeenSet = true; m_productARN = value; }
137 
138     /**
139      * <p>The ARN of the product.</p>
140      */
SetProductARN(Aws::String && value)141     inline void SetProductARN(Aws::String&& value) { m_productARNHasBeenSet = true; m_productARN = std::move(value); }
142 
143     /**
144      * <p>The ARN of the product.</p>
145      */
SetProductARN(const char * value)146     inline void SetProductARN(const char* value) { m_productARNHasBeenSet = true; m_productARN.assign(value); }
147 
148     /**
149      * <p>The ARN of the product.</p>
150      */
WithProductARN(const Aws::String & value)151     inline ProductViewDetail& WithProductARN(const Aws::String& value) { SetProductARN(value); return *this;}
152 
153     /**
154      * <p>The ARN of the product.</p>
155      */
WithProductARN(Aws::String && value)156     inline ProductViewDetail& WithProductARN(Aws::String&& value) { SetProductARN(std::move(value)); return *this;}
157 
158     /**
159      * <p>The ARN of the product.</p>
160      */
WithProductARN(const char * value)161     inline ProductViewDetail& WithProductARN(const char* value) { SetProductARN(value); return *this;}
162 
163 
164     /**
165      * <p>The UTC time stamp of the creation time.</p>
166      */
GetCreatedTime()167     inline const Aws::Utils::DateTime& GetCreatedTime() const{ return m_createdTime; }
168 
169     /**
170      * <p>The UTC time stamp of the creation time.</p>
171      */
CreatedTimeHasBeenSet()172     inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; }
173 
174     /**
175      * <p>The UTC time stamp of the creation time.</p>
176      */
SetCreatedTime(const Aws::Utils::DateTime & value)177     inline void SetCreatedTime(const Aws::Utils::DateTime& value) { m_createdTimeHasBeenSet = true; m_createdTime = value; }
178 
179     /**
180      * <p>The UTC time stamp of the creation time.</p>
181      */
SetCreatedTime(Aws::Utils::DateTime && value)182     inline void SetCreatedTime(Aws::Utils::DateTime&& value) { m_createdTimeHasBeenSet = true; m_createdTime = std::move(value); }
183 
184     /**
185      * <p>The UTC time stamp of the creation time.</p>
186      */
WithCreatedTime(const Aws::Utils::DateTime & value)187     inline ProductViewDetail& WithCreatedTime(const Aws::Utils::DateTime& value) { SetCreatedTime(value); return *this;}
188 
189     /**
190      * <p>The UTC time stamp of the creation time.</p>
191      */
WithCreatedTime(Aws::Utils::DateTime && value)192     inline ProductViewDetail& WithCreatedTime(Aws::Utils::DateTime&& value) { SetCreatedTime(std::move(value)); return *this;}
193 
194   private:
195 
196     ProductViewSummary m_productViewSummary;
197     bool m_productViewSummaryHasBeenSet;
198 
199     Status m_status;
200     bool m_statusHasBeenSet;
201 
202     Aws::String m_productARN;
203     bool m_productARNHasBeenSet;
204 
205     Aws::Utils::DateTime m_createdTime;
206     bool m_createdTimeHasBeenSet;
207   };
208 
209 } // namespace Model
210 } // namespace ServiceCatalog
211 } // namespace Aws
212