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/ProductViewDetail.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/servicecatalog/model/ProvisioningArtifactSummary.h>
11 #include <aws/servicecatalog/model/Tag.h>
12 #include <aws/servicecatalog/model/TagOptionDetail.h>
13 #include <aws/servicecatalog/model/BudgetDetail.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 template<typename RESULT_TYPE>
19 class AmazonWebServiceResult;
20 
21 namespace Utils
22 {
23 namespace Json
24 {
25   class JsonValue;
26 } // namespace Json
27 } // namespace Utils
28 namespace ServiceCatalog
29 {
30 namespace Model
31 {
32   class AWS_SERVICECATALOG_API DescribeProductAsAdminResult
33   {
34   public:
35     DescribeProductAsAdminResult();
36     DescribeProductAsAdminResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
37     DescribeProductAsAdminResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
38 
39 
40     /**
41      * <p>Information about the product view.</p>
42      */
GetProductViewDetail()43     inline const ProductViewDetail& GetProductViewDetail() const{ return m_productViewDetail; }
44 
45     /**
46      * <p>Information about the product view.</p>
47      */
SetProductViewDetail(const ProductViewDetail & value)48     inline void SetProductViewDetail(const ProductViewDetail& value) { m_productViewDetail = value; }
49 
50     /**
51      * <p>Information about the product view.</p>
52      */
SetProductViewDetail(ProductViewDetail && value)53     inline void SetProductViewDetail(ProductViewDetail&& value) { m_productViewDetail = std::move(value); }
54 
55     /**
56      * <p>Information about the product view.</p>
57      */
WithProductViewDetail(const ProductViewDetail & value)58     inline DescribeProductAsAdminResult& WithProductViewDetail(const ProductViewDetail& value) { SetProductViewDetail(value); return *this;}
59 
60     /**
61      * <p>Information about the product view.</p>
62      */
WithProductViewDetail(ProductViewDetail && value)63     inline DescribeProductAsAdminResult& WithProductViewDetail(ProductViewDetail&& value) { SetProductViewDetail(std::move(value)); return *this;}
64 
65 
66     /**
67      * <p>Information about the provisioning artifacts (also known as versions) for the
68      * specified product.</p>
69      */
GetProvisioningArtifactSummaries()70     inline const Aws::Vector<ProvisioningArtifactSummary>& GetProvisioningArtifactSummaries() const{ return m_provisioningArtifactSummaries; }
71 
72     /**
73      * <p>Information about the provisioning artifacts (also known as versions) for the
74      * specified product.</p>
75      */
SetProvisioningArtifactSummaries(const Aws::Vector<ProvisioningArtifactSummary> & value)76     inline void SetProvisioningArtifactSummaries(const Aws::Vector<ProvisioningArtifactSummary>& value) { m_provisioningArtifactSummaries = value; }
77 
78     /**
79      * <p>Information about the provisioning artifacts (also known as versions) for the
80      * specified product.</p>
81      */
SetProvisioningArtifactSummaries(Aws::Vector<ProvisioningArtifactSummary> && value)82     inline void SetProvisioningArtifactSummaries(Aws::Vector<ProvisioningArtifactSummary>&& value) { m_provisioningArtifactSummaries = std::move(value); }
83 
84     /**
85      * <p>Information about the provisioning artifacts (also known as versions) for the
86      * specified product.</p>
87      */
WithProvisioningArtifactSummaries(const Aws::Vector<ProvisioningArtifactSummary> & value)88     inline DescribeProductAsAdminResult& WithProvisioningArtifactSummaries(const Aws::Vector<ProvisioningArtifactSummary>& value) { SetProvisioningArtifactSummaries(value); return *this;}
89 
90     /**
91      * <p>Information about the provisioning artifacts (also known as versions) for the
92      * specified product.</p>
93      */
WithProvisioningArtifactSummaries(Aws::Vector<ProvisioningArtifactSummary> && value)94     inline DescribeProductAsAdminResult& WithProvisioningArtifactSummaries(Aws::Vector<ProvisioningArtifactSummary>&& value) { SetProvisioningArtifactSummaries(std::move(value)); return *this;}
95 
96     /**
97      * <p>Information about the provisioning artifacts (also known as versions) for the
98      * specified product.</p>
99      */
AddProvisioningArtifactSummaries(const ProvisioningArtifactSummary & value)100     inline DescribeProductAsAdminResult& AddProvisioningArtifactSummaries(const ProvisioningArtifactSummary& value) { m_provisioningArtifactSummaries.push_back(value); return *this; }
101 
102     /**
103      * <p>Information about the provisioning artifacts (also known as versions) for the
104      * specified product.</p>
105      */
AddProvisioningArtifactSummaries(ProvisioningArtifactSummary && value)106     inline DescribeProductAsAdminResult& AddProvisioningArtifactSummaries(ProvisioningArtifactSummary&& value) { m_provisioningArtifactSummaries.push_back(std::move(value)); return *this; }
107 
108 
109     /**
110      * <p>Information about the tags associated with the product.</p>
111      */
GetTags()112     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
113 
114     /**
115      * <p>Information about the tags associated with the product.</p>
116      */
SetTags(const Aws::Vector<Tag> & value)117     inline void SetTags(const Aws::Vector<Tag>& value) { m_tags = value; }
118 
119     /**
120      * <p>Information about the tags associated with the product.</p>
121      */
SetTags(Aws::Vector<Tag> && value)122     inline void SetTags(Aws::Vector<Tag>&& value) { m_tags = std::move(value); }
123 
124     /**
125      * <p>Information about the tags associated with the product.</p>
126      */
WithTags(const Aws::Vector<Tag> & value)127     inline DescribeProductAsAdminResult& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
128 
129     /**
130      * <p>Information about the tags associated with the product.</p>
131      */
WithTags(Aws::Vector<Tag> && value)132     inline DescribeProductAsAdminResult& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
133 
134     /**
135      * <p>Information about the tags associated with the product.</p>
136      */
AddTags(const Tag & value)137     inline DescribeProductAsAdminResult& AddTags(const Tag& value) { m_tags.push_back(value); return *this; }
138 
139     /**
140      * <p>Information about the tags associated with the product.</p>
141      */
AddTags(Tag && value)142     inline DescribeProductAsAdminResult& AddTags(Tag&& value) { m_tags.push_back(std::move(value)); return *this; }
143 
144 
145     /**
146      * <p>Information about the TagOptions associated with the product.</p>
147      */
GetTagOptions()148     inline const Aws::Vector<TagOptionDetail>& GetTagOptions() const{ return m_tagOptions; }
149 
150     /**
151      * <p>Information about the TagOptions associated with the product.</p>
152      */
SetTagOptions(const Aws::Vector<TagOptionDetail> & value)153     inline void SetTagOptions(const Aws::Vector<TagOptionDetail>& value) { m_tagOptions = value; }
154 
155     /**
156      * <p>Information about the TagOptions associated with the product.</p>
157      */
SetTagOptions(Aws::Vector<TagOptionDetail> && value)158     inline void SetTagOptions(Aws::Vector<TagOptionDetail>&& value) { m_tagOptions = std::move(value); }
159 
160     /**
161      * <p>Information about the TagOptions associated with the product.</p>
162      */
WithTagOptions(const Aws::Vector<TagOptionDetail> & value)163     inline DescribeProductAsAdminResult& WithTagOptions(const Aws::Vector<TagOptionDetail>& value) { SetTagOptions(value); return *this;}
164 
165     /**
166      * <p>Information about the TagOptions associated with the product.</p>
167      */
WithTagOptions(Aws::Vector<TagOptionDetail> && value)168     inline DescribeProductAsAdminResult& WithTagOptions(Aws::Vector<TagOptionDetail>&& value) { SetTagOptions(std::move(value)); return *this;}
169 
170     /**
171      * <p>Information about the TagOptions associated with the product.</p>
172      */
AddTagOptions(const TagOptionDetail & value)173     inline DescribeProductAsAdminResult& AddTagOptions(const TagOptionDetail& value) { m_tagOptions.push_back(value); return *this; }
174 
175     /**
176      * <p>Information about the TagOptions associated with the product.</p>
177      */
AddTagOptions(TagOptionDetail && value)178     inline DescribeProductAsAdminResult& AddTagOptions(TagOptionDetail&& value) { m_tagOptions.push_back(std::move(value)); return *this; }
179 
180 
181     /**
182      * <p>Information about the associated budgets.</p>
183      */
GetBudgets()184     inline const Aws::Vector<BudgetDetail>& GetBudgets() const{ return m_budgets; }
185 
186     /**
187      * <p>Information about the associated budgets.</p>
188      */
SetBudgets(const Aws::Vector<BudgetDetail> & value)189     inline void SetBudgets(const Aws::Vector<BudgetDetail>& value) { m_budgets = value; }
190 
191     /**
192      * <p>Information about the associated budgets.</p>
193      */
SetBudgets(Aws::Vector<BudgetDetail> && value)194     inline void SetBudgets(Aws::Vector<BudgetDetail>&& value) { m_budgets = std::move(value); }
195 
196     /**
197      * <p>Information about the associated budgets.</p>
198      */
WithBudgets(const Aws::Vector<BudgetDetail> & value)199     inline DescribeProductAsAdminResult& WithBudgets(const Aws::Vector<BudgetDetail>& value) { SetBudgets(value); return *this;}
200 
201     /**
202      * <p>Information about the associated budgets.</p>
203      */
WithBudgets(Aws::Vector<BudgetDetail> && value)204     inline DescribeProductAsAdminResult& WithBudgets(Aws::Vector<BudgetDetail>&& value) { SetBudgets(std::move(value)); return *this;}
205 
206     /**
207      * <p>Information about the associated budgets.</p>
208      */
AddBudgets(const BudgetDetail & value)209     inline DescribeProductAsAdminResult& AddBudgets(const BudgetDetail& value) { m_budgets.push_back(value); return *this; }
210 
211     /**
212      * <p>Information about the associated budgets.</p>
213      */
AddBudgets(BudgetDetail && value)214     inline DescribeProductAsAdminResult& AddBudgets(BudgetDetail&& value) { m_budgets.push_back(std::move(value)); return *this; }
215 
216   private:
217 
218     ProductViewDetail m_productViewDetail;
219 
220     Aws::Vector<ProvisioningArtifactSummary> m_provisioningArtifactSummaries;
221 
222     Aws::Vector<Tag> m_tags;
223 
224     Aws::Vector<TagOptionDetail> m_tagOptions;
225 
226     Aws::Vector<BudgetDetail> m_budgets;
227   };
228 
229 } // namespace Model
230 } // namespace ServiceCatalog
231 } // namespace Aws
232