/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ServiceCatalog { namespace Model { /** *

Information about the portfolio share.

See Also:

AWS * API Reference

*/ class PortfolioShareDetail { public: AWS_SERVICECATALOG_API PortfolioShareDetail(); AWS_SERVICECATALOG_API PortfolioShareDetail(Aws::Utils::Json::JsonView jsonValue); AWS_SERVICECATALOG_API PortfolioShareDetail& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SERVICECATALOG_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The identifier of the recipient entity that received the portfolio share. The * recipient entity can be one of the following:

1. An external account.

*

2. An organziation member account.

3. An organzational unit (OU).

*

4. The organization itself. (This shares with every account in the * organization).

*/ inline const Aws::String& GetPrincipalId() const{ return m_principalId; } /** *

The identifier of the recipient entity that received the portfolio share. The * recipient entity can be one of the following:

1. An external account.

*

2. An organziation member account.

3. An organzational unit (OU).

*

4. The organization itself. (This shares with every account in the * organization).

*/ inline bool PrincipalIdHasBeenSet() const { return m_principalIdHasBeenSet; } /** *

The identifier of the recipient entity that received the portfolio share. The * recipient entity can be one of the following:

1. An external account.

*

2. An organziation member account.

3. An organzational unit (OU).

*

4. The organization itself. (This shares with every account in the * organization).

*/ inline void SetPrincipalId(const Aws::String& value) { m_principalIdHasBeenSet = true; m_principalId = value; } /** *

The identifier of the recipient entity that received the portfolio share. The * recipient entity can be one of the following:

1. An external account.

*

2. An organziation member account.

3. An organzational unit (OU).

*

4. The organization itself. (This shares with every account in the * organization).

*/ inline void SetPrincipalId(Aws::String&& value) { m_principalIdHasBeenSet = true; m_principalId = std::move(value); } /** *

The identifier of the recipient entity that received the portfolio share. The * recipient entity can be one of the following:

1. An external account.

*

2. An organziation member account.

3. An organzational unit (OU).

*

4. The organization itself. (This shares with every account in the * organization).

*/ inline void SetPrincipalId(const char* value) { m_principalIdHasBeenSet = true; m_principalId.assign(value); } /** *

The identifier of the recipient entity that received the portfolio share. The * recipient entity can be one of the following:

1. An external account.

*

2. An organziation member account.

3. An organzational unit (OU).

*

4. The organization itself. (This shares with every account in the * organization).

*/ inline PortfolioShareDetail& WithPrincipalId(const Aws::String& value) { SetPrincipalId(value); return *this;} /** *

The identifier of the recipient entity that received the portfolio share. The * recipient entity can be one of the following:

1. An external account.

*

2. An organziation member account.

3. An organzational unit (OU).

*

4. The organization itself. (This shares with every account in the * organization).

*/ inline PortfolioShareDetail& WithPrincipalId(Aws::String&& value) { SetPrincipalId(std::move(value)); return *this;} /** *

The identifier of the recipient entity that received the portfolio share. The * recipient entity can be one of the following:

1. An external account.

*

2. An organziation member account.

3. An organzational unit (OU).

*

4. The organization itself. (This shares with every account in the * organization).

*/ inline PortfolioShareDetail& WithPrincipalId(const char* value) { SetPrincipalId(value); return *this;} /** *

The type of the portfolio share.

*/ inline const DescribePortfolioShareType& GetType() const{ return m_type; } /** *

The type of the portfolio share.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of the portfolio share.

*/ inline void SetType(const DescribePortfolioShareType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of the portfolio share.

*/ inline void SetType(DescribePortfolioShareType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of the portfolio share.

*/ inline PortfolioShareDetail& WithType(const DescribePortfolioShareType& value) { SetType(value); return *this;} /** *

The type of the portfolio share.

*/ inline PortfolioShareDetail& WithType(DescribePortfolioShareType&& value) { SetType(std::move(value)); return *this;} /** *

Indicates whether the shared portfolio is imported by the recipient account. * If the recipient is in an organization node, the share is automatically * imported, and the field is always set to true.

*/ inline bool GetAccepted() const{ return m_accepted; } /** *

Indicates whether the shared portfolio is imported by the recipient account. * If the recipient is in an organization node, the share is automatically * imported, and the field is always set to true.

*/ inline bool AcceptedHasBeenSet() const { return m_acceptedHasBeenSet; } /** *

Indicates whether the shared portfolio is imported by the recipient account. * If the recipient is in an organization node, the share is automatically * imported, and the field is always set to true.

*/ inline void SetAccepted(bool value) { m_acceptedHasBeenSet = true; m_accepted = value; } /** *

Indicates whether the shared portfolio is imported by the recipient account. * If the recipient is in an organization node, the share is automatically * imported, and the field is always set to true.

*/ inline PortfolioShareDetail& WithAccepted(bool value) { SetAccepted(value); return *this;} /** *

Indicates whether TagOptions sharing is enabled or disabled for the portfolio * share.

*/ inline bool GetShareTagOptions() const{ return m_shareTagOptions; } /** *

Indicates whether TagOptions sharing is enabled or disabled for the portfolio * share.

*/ inline bool ShareTagOptionsHasBeenSet() const { return m_shareTagOptionsHasBeenSet; } /** *

Indicates whether TagOptions sharing is enabled or disabled for the portfolio * share.

*/ inline void SetShareTagOptions(bool value) { m_shareTagOptionsHasBeenSet = true; m_shareTagOptions = value; } /** *

Indicates whether TagOptions sharing is enabled or disabled for the portfolio * share.

*/ inline PortfolioShareDetail& WithShareTagOptions(bool value) { SetShareTagOptions(value); return *this;} /** *

Indicates if Principal sharing is enabled or disabled for the * portfolio share.

*/ inline bool GetSharePrincipals() const{ return m_sharePrincipals; } /** *

Indicates if Principal sharing is enabled or disabled for the * portfolio share.

*/ inline bool SharePrincipalsHasBeenSet() const { return m_sharePrincipalsHasBeenSet; } /** *

Indicates if Principal sharing is enabled or disabled for the * portfolio share.

*/ inline void SetSharePrincipals(bool value) { m_sharePrincipalsHasBeenSet = true; m_sharePrincipals = value; } /** *

Indicates if Principal sharing is enabled or disabled for the * portfolio share.

*/ inline PortfolioShareDetail& WithSharePrincipals(bool value) { SetSharePrincipals(value); return *this;} private: Aws::String m_principalId; bool m_principalIdHasBeenSet = false; DescribePortfolioShareType m_type; bool m_typeHasBeenSet = false; bool m_accepted; bool m_acceptedHasBeenSet = false; bool m_shareTagOptions; bool m_shareTagOptionsHasBeenSet = false; bool m_sharePrincipals; bool m_sharePrincipalsHasBeenSet = false; }; } // namespace Model } // namespace ServiceCatalog } // namespace Aws