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/PortfolioDetail.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/servicecatalog/model/Tag.h>
11 #include <aws/servicecatalog/model/TagOptionDetail.h>
12 #include <aws/servicecatalog/model/BudgetDetail.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 DescribePortfolioResult
32   {
33   public:
34     DescribePortfolioResult();
35     DescribePortfolioResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
36     DescribePortfolioResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
37 
38 
39     /**
40      * <p>Information about the portfolio.</p>
41      */
GetPortfolioDetail()42     inline const PortfolioDetail& GetPortfolioDetail() const{ return m_portfolioDetail; }
43 
44     /**
45      * <p>Information about the portfolio.</p>
46      */
SetPortfolioDetail(const PortfolioDetail & value)47     inline void SetPortfolioDetail(const PortfolioDetail& value) { m_portfolioDetail = value; }
48 
49     /**
50      * <p>Information about the portfolio.</p>
51      */
SetPortfolioDetail(PortfolioDetail && value)52     inline void SetPortfolioDetail(PortfolioDetail&& value) { m_portfolioDetail = std::move(value); }
53 
54     /**
55      * <p>Information about the portfolio.</p>
56      */
WithPortfolioDetail(const PortfolioDetail & value)57     inline DescribePortfolioResult& WithPortfolioDetail(const PortfolioDetail& value) { SetPortfolioDetail(value); return *this;}
58 
59     /**
60      * <p>Information about the portfolio.</p>
61      */
WithPortfolioDetail(PortfolioDetail && value)62     inline DescribePortfolioResult& WithPortfolioDetail(PortfolioDetail&& value) { SetPortfolioDetail(std::move(value)); return *this;}
63 
64 
65     /**
66      * <p>Information about the tags associated with the portfolio.</p>
67      */
GetTags()68     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
69 
70     /**
71      * <p>Information about the tags associated with the portfolio.</p>
72      */
SetTags(const Aws::Vector<Tag> & value)73     inline void SetTags(const Aws::Vector<Tag>& value) { m_tags = value; }
74 
75     /**
76      * <p>Information about the tags associated with the portfolio.</p>
77      */
SetTags(Aws::Vector<Tag> && value)78     inline void SetTags(Aws::Vector<Tag>&& value) { m_tags = std::move(value); }
79 
80     /**
81      * <p>Information about the tags associated with the portfolio.</p>
82      */
WithTags(const Aws::Vector<Tag> & value)83     inline DescribePortfolioResult& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
84 
85     /**
86      * <p>Information about the tags associated with the portfolio.</p>
87      */
WithTags(Aws::Vector<Tag> && value)88     inline DescribePortfolioResult& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
89 
90     /**
91      * <p>Information about the tags associated with the portfolio.</p>
92      */
AddTags(const Tag & value)93     inline DescribePortfolioResult& AddTags(const Tag& value) { m_tags.push_back(value); return *this; }
94 
95     /**
96      * <p>Information about the tags associated with the portfolio.</p>
97      */
AddTags(Tag && value)98     inline DescribePortfolioResult& AddTags(Tag&& value) { m_tags.push_back(std::move(value)); return *this; }
99 
100 
101     /**
102      * <p>Information about the TagOptions associated with the portfolio.</p>
103      */
GetTagOptions()104     inline const Aws::Vector<TagOptionDetail>& GetTagOptions() const{ return m_tagOptions; }
105 
106     /**
107      * <p>Information about the TagOptions associated with the portfolio.</p>
108      */
SetTagOptions(const Aws::Vector<TagOptionDetail> & value)109     inline void SetTagOptions(const Aws::Vector<TagOptionDetail>& value) { m_tagOptions = value; }
110 
111     /**
112      * <p>Information about the TagOptions associated with the portfolio.</p>
113      */
SetTagOptions(Aws::Vector<TagOptionDetail> && value)114     inline void SetTagOptions(Aws::Vector<TagOptionDetail>&& value) { m_tagOptions = std::move(value); }
115 
116     /**
117      * <p>Information about the TagOptions associated with the portfolio.</p>
118      */
WithTagOptions(const Aws::Vector<TagOptionDetail> & value)119     inline DescribePortfolioResult& WithTagOptions(const Aws::Vector<TagOptionDetail>& value) { SetTagOptions(value); return *this;}
120 
121     /**
122      * <p>Information about the TagOptions associated with the portfolio.</p>
123      */
WithTagOptions(Aws::Vector<TagOptionDetail> && value)124     inline DescribePortfolioResult& WithTagOptions(Aws::Vector<TagOptionDetail>&& value) { SetTagOptions(std::move(value)); return *this;}
125 
126     /**
127      * <p>Information about the TagOptions associated with the portfolio.</p>
128      */
AddTagOptions(const TagOptionDetail & value)129     inline DescribePortfolioResult& AddTagOptions(const TagOptionDetail& value) { m_tagOptions.push_back(value); return *this; }
130 
131     /**
132      * <p>Information about the TagOptions associated with the portfolio.</p>
133      */
AddTagOptions(TagOptionDetail && value)134     inline DescribePortfolioResult& AddTagOptions(TagOptionDetail&& value) { m_tagOptions.push_back(std::move(value)); return *this; }
135 
136 
137     /**
138      * <p>Information about the associated budgets.</p>
139      */
GetBudgets()140     inline const Aws::Vector<BudgetDetail>& GetBudgets() const{ return m_budgets; }
141 
142     /**
143      * <p>Information about the associated budgets.</p>
144      */
SetBudgets(const Aws::Vector<BudgetDetail> & value)145     inline void SetBudgets(const Aws::Vector<BudgetDetail>& value) { m_budgets = value; }
146 
147     /**
148      * <p>Information about the associated budgets.</p>
149      */
SetBudgets(Aws::Vector<BudgetDetail> && value)150     inline void SetBudgets(Aws::Vector<BudgetDetail>&& value) { m_budgets = std::move(value); }
151 
152     /**
153      * <p>Information about the associated budgets.</p>
154      */
WithBudgets(const Aws::Vector<BudgetDetail> & value)155     inline DescribePortfolioResult& WithBudgets(const Aws::Vector<BudgetDetail>& value) { SetBudgets(value); return *this;}
156 
157     /**
158      * <p>Information about the associated budgets.</p>
159      */
WithBudgets(Aws::Vector<BudgetDetail> && value)160     inline DescribePortfolioResult& WithBudgets(Aws::Vector<BudgetDetail>&& value) { SetBudgets(std::move(value)); return *this;}
161 
162     /**
163      * <p>Information about the associated budgets.</p>
164      */
AddBudgets(const BudgetDetail & value)165     inline DescribePortfolioResult& AddBudgets(const BudgetDetail& value) { m_budgets.push_back(value); return *this; }
166 
167     /**
168      * <p>Information about the associated budgets.</p>
169      */
AddBudgets(BudgetDetail && value)170     inline DescribePortfolioResult& AddBudgets(BudgetDetail&& value) { m_budgets.push_back(std::move(value)); return *this; }
171 
172   private:
173 
174     PortfolioDetail m_portfolioDetail;
175 
176     Aws::Vector<Tag> m_tags;
177 
178     Aws::Vector<TagOptionDetail> m_tagOptions;
179 
180     Aws::Vector<BudgetDetail> m_budgets;
181   };
182 
183 } // namespace Model
184 } // namespace ServiceCatalog
185 } // namespace Aws
186