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/core/utils/memory/stl/AWSString.h>
9 #include <aws/servicecatalog/model/DescribePortfolioShareType.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace ServiceCatalog
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Information about the portfolio share.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/PortfolioShareDetail">AWS
30    * API Reference</a></p>
31    */
32   class AWS_SERVICECATALOG_API PortfolioShareDetail
33   {
34   public:
35     PortfolioShareDetail();
36     PortfolioShareDetail(Aws::Utils::Json::JsonView jsonValue);
37     PortfolioShareDetail& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The identifier of the recipient entity that received the portfolio share. The
43      * recipient entities can be one of the following: </p> <p>1. An external
44      * account.</p> <p>2. An organziation member account.</p> <p>3. An organzational
45      * unit (OU).</p> <p>4. The organization itself. (This shares with every account in
46      * the organization).</p>
47      */
GetPrincipalId()48     inline const Aws::String& GetPrincipalId() const{ return m_principalId; }
49 
50     /**
51      * <p>The identifier of the recipient entity that received the portfolio share. The
52      * recipient entities can be one of the following: </p> <p>1. An external
53      * account.</p> <p>2. An organziation member account.</p> <p>3. An organzational
54      * unit (OU).</p> <p>4. The organization itself. (This shares with every account in
55      * the organization).</p>
56      */
PrincipalIdHasBeenSet()57     inline bool PrincipalIdHasBeenSet() const { return m_principalIdHasBeenSet; }
58 
59     /**
60      * <p>The identifier of the recipient entity that received the portfolio share. The
61      * recipient entities can be one of the following: </p> <p>1. An external
62      * account.</p> <p>2. An organziation member account.</p> <p>3. An organzational
63      * unit (OU).</p> <p>4. The organization itself. (This shares with every account in
64      * the organization).</p>
65      */
SetPrincipalId(const Aws::String & value)66     inline void SetPrincipalId(const Aws::String& value) { m_principalIdHasBeenSet = true; m_principalId = value; }
67 
68     /**
69      * <p>The identifier of the recipient entity that received the portfolio share. The
70      * recipient entities can be one of the following: </p> <p>1. An external
71      * account.</p> <p>2. An organziation member account.</p> <p>3. An organzational
72      * unit (OU).</p> <p>4. The organization itself. (This shares with every account in
73      * the organization).</p>
74      */
SetPrincipalId(Aws::String && value)75     inline void SetPrincipalId(Aws::String&& value) { m_principalIdHasBeenSet = true; m_principalId = std::move(value); }
76 
77     /**
78      * <p>The identifier of the recipient entity that received the portfolio share. The
79      * recipient entities can be one of the following: </p> <p>1. An external
80      * account.</p> <p>2. An organziation member account.</p> <p>3. An organzational
81      * unit (OU).</p> <p>4. The organization itself. (This shares with every account in
82      * the organization).</p>
83      */
SetPrincipalId(const char * value)84     inline void SetPrincipalId(const char* value) { m_principalIdHasBeenSet = true; m_principalId.assign(value); }
85 
86     /**
87      * <p>The identifier of the recipient entity that received the portfolio share. The
88      * recipient entities can be one of the following: </p> <p>1. An external
89      * account.</p> <p>2. An organziation member account.</p> <p>3. An organzational
90      * unit (OU).</p> <p>4. The organization itself. (This shares with every account in
91      * the organization).</p>
92      */
WithPrincipalId(const Aws::String & value)93     inline PortfolioShareDetail& WithPrincipalId(const Aws::String& value) { SetPrincipalId(value); return *this;}
94 
95     /**
96      * <p>The identifier of the recipient entity that received the portfolio share. The
97      * recipient entities can be one of the following: </p> <p>1. An external
98      * account.</p> <p>2. An organziation member account.</p> <p>3. An organzational
99      * unit (OU).</p> <p>4. The organization itself. (This shares with every account in
100      * the organization).</p>
101      */
WithPrincipalId(Aws::String && value)102     inline PortfolioShareDetail& WithPrincipalId(Aws::String&& value) { SetPrincipalId(std::move(value)); return *this;}
103 
104     /**
105      * <p>The identifier of the recipient entity that received the portfolio share. The
106      * recipient entities can be one of the following: </p> <p>1. An external
107      * account.</p> <p>2. An organziation member account.</p> <p>3. An organzational
108      * unit (OU).</p> <p>4. The organization itself. (This shares with every account in
109      * the organization).</p>
110      */
WithPrincipalId(const char * value)111     inline PortfolioShareDetail& WithPrincipalId(const char* value) { SetPrincipalId(value); return *this;}
112 
113 
114     /**
115      * <p>The type of the portfolio share.</p>
116      */
GetType()117     inline const DescribePortfolioShareType& GetType() const{ return m_type; }
118 
119     /**
120      * <p>The type of the portfolio share.</p>
121      */
TypeHasBeenSet()122     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
123 
124     /**
125      * <p>The type of the portfolio share.</p>
126      */
SetType(const DescribePortfolioShareType & value)127     inline void SetType(const DescribePortfolioShareType& value) { m_typeHasBeenSet = true; m_type = value; }
128 
129     /**
130      * <p>The type of the portfolio share.</p>
131      */
SetType(DescribePortfolioShareType && value)132     inline void SetType(DescribePortfolioShareType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
133 
134     /**
135      * <p>The type of the portfolio share.</p>
136      */
WithType(const DescribePortfolioShareType & value)137     inline PortfolioShareDetail& WithType(const DescribePortfolioShareType& value) { SetType(value); return *this;}
138 
139     /**
140      * <p>The type of the portfolio share.</p>
141      */
WithType(DescribePortfolioShareType && value)142     inline PortfolioShareDetail& WithType(DescribePortfolioShareType&& value) { SetType(std::move(value)); return *this;}
143 
144 
145     /**
146      * <p>Indicates whether the shared portfolio is imported by the recipient account.
147      * If the recipient is in an organization node, the share is automatically
148      * imported, and the field is always set to true.</p>
149      */
GetAccepted()150     inline bool GetAccepted() const{ return m_accepted; }
151 
152     /**
153      * <p>Indicates whether the shared portfolio is imported by the recipient account.
154      * If the recipient is in an organization node, the share is automatically
155      * imported, and the field is always set to true.</p>
156      */
AcceptedHasBeenSet()157     inline bool AcceptedHasBeenSet() const { return m_acceptedHasBeenSet; }
158 
159     /**
160      * <p>Indicates whether the shared portfolio is imported by the recipient account.
161      * If the recipient is in an organization node, the share is automatically
162      * imported, and the field is always set to true.</p>
163      */
SetAccepted(bool value)164     inline void SetAccepted(bool value) { m_acceptedHasBeenSet = true; m_accepted = value; }
165 
166     /**
167      * <p>Indicates whether the shared portfolio is imported by the recipient account.
168      * If the recipient is in an organization node, the share is automatically
169      * imported, and the field is always set to true.</p>
170      */
WithAccepted(bool value)171     inline PortfolioShareDetail& WithAccepted(bool value) { SetAccepted(value); return *this;}
172 
173 
174     /**
175      * <p>Indicates whether TagOptions sharing is enabled or disabled for the portfolio
176      * share.</p>
177      */
GetShareTagOptions()178     inline bool GetShareTagOptions() const{ return m_shareTagOptions; }
179 
180     /**
181      * <p>Indicates whether TagOptions sharing is enabled or disabled for the portfolio
182      * share.</p>
183      */
ShareTagOptionsHasBeenSet()184     inline bool ShareTagOptionsHasBeenSet() const { return m_shareTagOptionsHasBeenSet; }
185 
186     /**
187      * <p>Indicates whether TagOptions sharing is enabled or disabled for the portfolio
188      * share.</p>
189      */
SetShareTagOptions(bool value)190     inline void SetShareTagOptions(bool value) { m_shareTagOptionsHasBeenSet = true; m_shareTagOptions = value; }
191 
192     /**
193      * <p>Indicates whether TagOptions sharing is enabled or disabled for the portfolio
194      * share.</p>
195      */
WithShareTagOptions(bool value)196     inline PortfolioShareDetail& WithShareTagOptions(bool value) { SetShareTagOptions(value); return *this;}
197 
198   private:
199 
200     Aws::String m_principalId;
201     bool m_principalIdHasBeenSet;
202 
203     DescribePortfolioShareType m_type;
204     bool m_typeHasBeenSet;
205 
206     bool m_accepted;
207     bool m_acceptedHasBeenSet;
208 
209     bool m_shareTagOptions;
210     bool m_shareTagOptionsHasBeenSet;
211   };
212 
213 } // namespace Model
214 } // namespace ServiceCatalog
215 } // namespace Aws
216