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/core/utils/memory/stl/AWSVector.h>
10 #include <aws/servicecatalog/model/ProvisioningArtifact.h>
11 #include <aws/servicecatalog/model/BudgetDetail.h>
12 #include <aws/servicecatalog/model/LaunchPath.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 template<typename RESULT_TYPE>
18 class AmazonWebServiceResult;
19 
20 namespace Utils
21 {
22 namespace Json
23 {
24   class JsonValue;
25 } // namespace Json
26 } // namespace Utils
27 namespace ServiceCatalog
28 {
29 namespace Model
30 {
31   class AWS_SERVICECATALOG_API DescribeProductResult
32   {
33   public:
34     DescribeProductResult();
35     DescribeProductResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
36     DescribeProductResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
37 
38 
39     /**
40      * <p>Summary information about the product view.</p>
41      */
GetProductViewSummary()42     inline const ProductViewSummary& GetProductViewSummary() const{ return m_productViewSummary; }
43 
44     /**
45      * <p>Summary information about the product view.</p>
46      */
SetProductViewSummary(const ProductViewSummary & value)47     inline void SetProductViewSummary(const ProductViewSummary& value) { m_productViewSummary = value; }
48 
49     /**
50      * <p>Summary information about the product view.</p>
51      */
SetProductViewSummary(ProductViewSummary && value)52     inline void SetProductViewSummary(ProductViewSummary&& value) { m_productViewSummary = std::move(value); }
53 
54     /**
55      * <p>Summary information about the product view.</p>
56      */
WithProductViewSummary(const ProductViewSummary & value)57     inline DescribeProductResult& WithProductViewSummary(const ProductViewSummary& value) { SetProductViewSummary(value); return *this;}
58 
59     /**
60      * <p>Summary information about the product view.</p>
61      */
WithProductViewSummary(ProductViewSummary && value)62     inline DescribeProductResult& WithProductViewSummary(ProductViewSummary&& value) { SetProductViewSummary(std::move(value)); return *this;}
63 
64 
65     /**
66      * <p>Information about the provisioning artifacts for the specified product.</p>
67      */
GetProvisioningArtifacts()68     inline const Aws::Vector<ProvisioningArtifact>& GetProvisioningArtifacts() const{ return m_provisioningArtifacts; }
69 
70     /**
71      * <p>Information about the provisioning artifacts for the specified product.</p>
72      */
SetProvisioningArtifacts(const Aws::Vector<ProvisioningArtifact> & value)73     inline void SetProvisioningArtifacts(const Aws::Vector<ProvisioningArtifact>& value) { m_provisioningArtifacts = value; }
74 
75     /**
76      * <p>Information about the provisioning artifacts for the specified product.</p>
77      */
SetProvisioningArtifacts(Aws::Vector<ProvisioningArtifact> && value)78     inline void SetProvisioningArtifacts(Aws::Vector<ProvisioningArtifact>&& value) { m_provisioningArtifacts = std::move(value); }
79 
80     /**
81      * <p>Information about the provisioning artifacts for the specified product.</p>
82      */
WithProvisioningArtifacts(const Aws::Vector<ProvisioningArtifact> & value)83     inline DescribeProductResult& WithProvisioningArtifacts(const Aws::Vector<ProvisioningArtifact>& value) { SetProvisioningArtifacts(value); return *this;}
84 
85     /**
86      * <p>Information about the provisioning artifacts for the specified product.</p>
87      */
WithProvisioningArtifacts(Aws::Vector<ProvisioningArtifact> && value)88     inline DescribeProductResult& WithProvisioningArtifacts(Aws::Vector<ProvisioningArtifact>&& value) { SetProvisioningArtifacts(std::move(value)); return *this;}
89 
90     /**
91      * <p>Information about the provisioning artifacts for the specified product.</p>
92      */
AddProvisioningArtifacts(const ProvisioningArtifact & value)93     inline DescribeProductResult& AddProvisioningArtifacts(const ProvisioningArtifact& value) { m_provisioningArtifacts.push_back(value); return *this; }
94 
95     /**
96      * <p>Information about the provisioning artifacts for the specified product.</p>
97      */
AddProvisioningArtifacts(ProvisioningArtifact && value)98     inline DescribeProductResult& AddProvisioningArtifacts(ProvisioningArtifact&& value) { m_provisioningArtifacts.push_back(std::move(value)); return *this; }
99 
100 
101     /**
102      * <p>Information about the associated budgets.</p>
103      */
GetBudgets()104     inline const Aws::Vector<BudgetDetail>& GetBudgets() const{ return m_budgets; }
105 
106     /**
107      * <p>Information about the associated budgets.</p>
108      */
SetBudgets(const Aws::Vector<BudgetDetail> & value)109     inline void SetBudgets(const Aws::Vector<BudgetDetail>& value) { m_budgets = value; }
110 
111     /**
112      * <p>Information about the associated budgets.</p>
113      */
SetBudgets(Aws::Vector<BudgetDetail> && value)114     inline void SetBudgets(Aws::Vector<BudgetDetail>&& value) { m_budgets = std::move(value); }
115 
116     /**
117      * <p>Information about the associated budgets.</p>
118      */
WithBudgets(const Aws::Vector<BudgetDetail> & value)119     inline DescribeProductResult& WithBudgets(const Aws::Vector<BudgetDetail>& value) { SetBudgets(value); return *this;}
120 
121     /**
122      * <p>Information about the associated budgets.</p>
123      */
WithBudgets(Aws::Vector<BudgetDetail> && value)124     inline DescribeProductResult& WithBudgets(Aws::Vector<BudgetDetail>&& value) { SetBudgets(std::move(value)); return *this;}
125 
126     /**
127      * <p>Information about the associated budgets.</p>
128      */
AddBudgets(const BudgetDetail & value)129     inline DescribeProductResult& AddBudgets(const BudgetDetail& value) { m_budgets.push_back(value); return *this; }
130 
131     /**
132      * <p>Information about the associated budgets.</p>
133      */
AddBudgets(BudgetDetail && value)134     inline DescribeProductResult& AddBudgets(BudgetDetail&& value) { m_budgets.push_back(std::move(value)); return *this; }
135 
136 
137     /**
138      * <p>Information about the associated launch paths.</p>
139      */
GetLaunchPaths()140     inline const Aws::Vector<LaunchPath>& GetLaunchPaths() const{ return m_launchPaths; }
141 
142     /**
143      * <p>Information about the associated launch paths.</p>
144      */
SetLaunchPaths(const Aws::Vector<LaunchPath> & value)145     inline void SetLaunchPaths(const Aws::Vector<LaunchPath>& value) { m_launchPaths = value; }
146 
147     /**
148      * <p>Information about the associated launch paths.</p>
149      */
SetLaunchPaths(Aws::Vector<LaunchPath> && value)150     inline void SetLaunchPaths(Aws::Vector<LaunchPath>&& value) { m_launchPaths = std::move(value); }
151 
152     /**
153      * <p>Information about the associated launch paths.</p>
154      */
WithLaunchPaths(const Aws::Vector<LaunchPath> & value)155     inline DescribeProductResult& WithLaunchPaths(const Aws::Vector<LaunchPath>& value) { SetLaunchPaths(value); return *this;}
156 
157     /**
158      * <p>Information about the associated launch paths.</p>
159      */
WithLaunchPaths(Aws::Vector<LaunchPath> && value)160     inline DescribeProductResult& WithLaunchPaths(Aws::Vector<LaunchPath>&& value) { SetLaunchPaths(std::move(value)); return *this;}
161 
162     /**
163      * <p>Information about the associated launch paths.</p>
164      */
AddLaunchPaths(const LaunchPath & value)165     inline DescribeProductResult& AddLaunchPaths(const LaunchPath& value) { m_launchPaths.push_back(value); return *this; }
166 
167     /**
168      * <p>Information about the associated launch paths.</p>
169      */
AddLaunchPaths(LaunchPath && value)170     inline DescribeProductResult& AddLaunchPaths(LaunchPath&& value) { m_launchPaths.push_back(std::move(value)); return *this; }
171 
172   private:
173 
174     ProductViewSummary m_productViewSummary;
175 
176     Aws::Vector<ProvisioningArtifact> m_provisioningArtifacts;
177 
178     Aws::Vector<BudgetDetail> m_budgets;
179 
180     Aws::Vector<LaunchPath> m_launchPaths;
181   };
182 
183 } // namespace Model
184 } // namespace ServiceCatalog
185 } // namespace Aws
186