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/servicecatalog/model/ProvisioningArtifactDetail.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/servicecatalog/model/Tag.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 template<typename RESULT_TYPE>
17 class AmazonWebServiceResult;
18 
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24 } // namespace Json
25 } // namespace Utils
26 namespace ServiceCatalog
27 {
28 namespace Model
29 {
30   class AWS_SERVICECATALOG_API CreateProductResult
31   {
32   public:
33     CreateProductResult();
34     CreateProductResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35     CreateProductResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
36 
37 
38     /**
39      * <p>Information about the product view.</p>
40      */
GetProductViewDetail()41     inline const ProductViewDetail& GetProductViewDetail() const{ return m_productViewDetail; }
42 
43     /**
44      * <p>Information about the product view.</p>
45      */
SetProductViewDetail(const ProductViewDetail & value)46     inline void SetProductViewDetail(const ProductViewDetail& value) { m_productViewDetail = value; }
47 
48     /**
49      * <p>Information about the product view.</p>
50      */
SetProductViewDetail(ProductViewDetail && value)51     inline void SetProductViewDetail(ProductViewDetail&& value) { m_productViewDetail = std::move(value); }
52 
53     /**
54      * <p>Information about the product view.</p>
55      */
WithProductViewDetail(const ProductViewDetail & value)56     inline CreateProductResult& WithProductViewDetail(const ProductViewDetail& value) { SetProductViewDetail(value); return *this;}
57 
58     /**
59      * <p>Information about the product view.</p>
60      */
WithProductViewDetail(ProductViewDetail && value)61     inline CreateProductResult& WithProductViewDetail(ProductViewDetail&& value) { SetProductViewDetail(std::move(value)); return *this;}
62 
63 
64     /**
65      * <p>Information about the provisioning artifact. </p>
66      */
GetProvisioningArtifactDetail()67     inline const ProvisioningArtifactDetail& GetProvisioningArtifactDetail() const{ return m_provisioningArtifactDetail; }
68 
69     /**
70      * <p>Information about the provisioning artifact. </p>
71      */
SetProvisioningArtifactDetail(const ProvisioningArtifactDetail & value)72     inline void SetProvisioningArtifactDetail(const ProvisioningArtifactDetail& value) { m_provisioningArtifactDetail = value; }
73 
74     /**
75      * <p>Information about the provisioning artifact. </p>
76      */
SetProvisioningArtifactDetail(ProvisioningArtifactDetail && value)77     inline void SetProvisioningArtifactDetail(ProvisioningArtifactDetail&& value) { m_provisioningArtifactDetail = std::move(value); }
78 
79     /**
80      * <p>Information about the provisioning artifact. </p>
81      */
WithProvisioningArtifactDetail(const ProvisioningArtifactDetail & value)82     inline CreateProductResult& WithProvisioningArtifactDetail(const ProvisioningArtifactDetail& value) { SetProvisioningArtifactDetail(value); return *this;}
83 
84     /**
85      * <p>Information about the provisioning artifact. </p>
86      */
WithProvisioningArtifactDetail(ProvisioningArtifactDetail && value)87     inline CreateProductResult& WithProvisioningArtifactDetail(ProvisioningArtifactDetail&& value) { SetProvisioningArtifactDetail(std::move(value)); return *this;}
88 
89 
90     /**
91      * <p>Information about the tags associated with the product.</p>
92      */
GetTags()93     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
94 
95     /**
96      * <p>Information about the tags associated with the product.</p>
97      */
SetTags(const Aws::Vector<Tag> & value)98     inline void SetTags(const Aws::Vector<Tag>& value) { m_tags = value; }
99 
100     /**
101      * <p>Information about the tags associated with the product.</p>
102      */
SetTags(Aws::Vector<Tag> && value)103     inline void SetTags(Aws::Vector<Tag>&& value) { m_tags = std::move(value); }
104 
105     /**
106      * <p>Information about the tags associated with the product.</p>
107      */
WithTags(const Aws::Vector<Tag> & value)108     inline CreateProductResult& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
109 
110     /**
111      * <p>Information about the tags associated with the product.</p>
112      */
WithTags(Aws::Vector<Tag> && value)113     inline CreateProductResult& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
114 
115     /**
116      * <p>Information about the tags associated with the product.</p>
117      */
AddTags(const Tag & value)118     inline CreateProductResult& AddTags(const Tag& value) { m_tags.push_back(value); return *this; }
119 
120     /**
121      * <p>Information about the tags associated with the product.</p>
122      */
AddTags(Tag && value)123     inline CreateProductResult& AddTags(Tag&& value) { m_tags.push_back(std::move(value)); return *this; }
124 
125   private:
126 
127     ProductViewDetail m_productViewDetail;
128 
129     ProvisioningArtifactDetail m_provisioningArtifactDetail;
130 
131     Aws::Vector<Tag> m_tags;
132   };
133 
134 } // namespace Model
135 } // namespace ServiceCatalog
136 } // namespace Aws
137