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/Tag.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 template<typename RESULT_TYPE>
16 class AmazonWebServiceResult;
17 
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23 } // namespace Json
24 } // namespace Utils
25 namespace ServiceCatalog
26 {
27 namespace Model
28 {
29   class AWS_SERVICECATALOG_API UpdateProductResult
30   {
31   public:
32     UpdateProductResult();
33     UpdateProductResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
34     UpdateProductResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35 
36 
37     /**
38      * <p>Information about the product view.</p>
39      */
GetProductViewDetail()40     inline const ProductViewDetail& GetProductViewDetail() const{ return m_productViewDetail; }
41 
42     /**
43      * <p>Information about the product view.</p>
44      */
SetProductViewDetail(const ProductViewDetail & value)45     inline void SetProductViewDetail(const ProductViewDetail& value) { m_productViewDetail = value; }
46 
47     /**
48      * <p>Information about the product view.</p>
49      */
SetProductViewDetail(ProductViewDetail && value)50     inline void SetProductViewDetail(ProductViewDetail&& value) { m_productViewDetail = std::move(value); }
51 
52     /**
53      * <p>Information about the product view.</p>
54      */
WithProductViewDetail(const ProductViewDetail & value)55     inline UpdateProductResult& WithProductViewDetail(const ProductViewDetail& value) { SetProductViewDetail(value); return *this;}
56 
57     /**
58      * <p>Information about the product view.</p>
59      */
WithProductViewDetail(ProductViewDetail && value)60     inline UpdateProductResult& WithProductViewDetail(ProductViewDetail&& value) { SetProductViewDetail(std::move(value)); return *this;}
61 
62 
63     /**
64      * <p>Information about the tags associated with the product.</p>
65      */
GetTags()66     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
67 
68     /**
69      * <p>Information about the tags associated with the product.</p>
70      */
SetTags(const Aws::Vector<Tag> & value)71     inline void SetTags(const Aws::Vector<Tag>& value) { m_tags = value; }
72 
73     /**
74      * <p>Information about the tags associated with the product.</p>
75      */
SetTags(Aws::Vector<Tag> && value)76     inline void SetTags(Aws::Vector<Tag>&& value) { m_tags = std::move(value); }
77 
78     /**
79      * <p>Information about the tags associated with the product.</p>
80      */
WithTags(const Aws::Vector<Tag> & value)81     inline UpdateProductResult& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
82 
83     /**
84      * <p>Information about the tags associated with the product.</p>
85      */
WithTags(Aws::Vector<Tag> && value)86     inline UpdateProductResult& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
87 
88     /**
89      * <p>Information about the tags associated with the product.</p>
90      */
AddTags(const Tag & value)91     inline UpdateProductResult& AddTags(const Tag& value) { m_tags.push_back(value); return *this; }
92 
93     /**
94      * <p>Information about the tags associated with the product.</p>
95      */
AddTags(Tag && value)96     inline UpdateProductResult& AddTags(Tag&& value) { m_tags.push_back(std::move(value)); return *this; }
97 
98   private:
99 
100     ProductViewDetail m_productViewDetail;
101 
102     Aws::Vector<Tag> m_tags;
103   };
104 
105 } // namespace Model
106 } // namespace ServiceCatalog
107 } // namespace Aws
108