/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace ServiceCatalog { namespace Model { /** */ class CreatePortfolioShareRequest : public ServiceCatalogRequest { public: AWS_SERVICECATALOG_API CreatePortfolioShareRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreatePortfolioShare"; } AWS_SERVICECATALOG_API Aws::String SerializePayload() const override; AWS_SERVICECATALOG_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The language code.

  • jp - Japanese

  • *
  • zh - Chinese

*/ inline const Aws::String& GetAcceptLanguage() const{ return m_acceptLanguage; } /** *

The language code.

  • jp - Japanese

  • *
  • zh - Chinese

*/ inline bool AcceptLanguageHasBeenSet() const { return m_acceptLanguageHasBeenSet; } /** *

The language code.

  • jp - Japanese

  • *
  • zh - Chinese

*/ inline void SetAcceptLanguage(const Aws::String& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = value; } /** *

The language code.

  • jp - Japanese

  • *
  • zh - Chinese

*/ inline void SetAcceptLanguage(Aws::String&& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = std::move(value); } /** *

The language code.

  • jp - Japanese

  • *
  • zh - Chinese

*/ inline void SetAcceptLanguage(const char* value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage.assign(value); } /** *

The language code.

  • jp - Japanese

  • *
  • zh - Chinese

*/ inline CreatePortfolioShareRequest& WithAcceptLanguage(const Aws::String& value) { SetAcceptLanguage(value); return *this;} /** *

The language code.

  • jp - Japanese

  • *
  • zh - Chinese

*/ inline CreatePortfolioShareRequest& WithAcceptLanguage(Aws::String&& value) { SetAcceptLanguage(std::move(value)); return *this;} /** *

The language code.

  • jp - Japanese

  • *
  • zh - Chinese

*/ inline CreatePortfolioShareRequest& WithAcceptLanguage(const char* value) { SetAcceptLanguage(value); return *this;} /** *

The portfolio identifier.

*/ inline const Aws::String& GetPortfolioId() const{ return m_portfolioId; } /** *

The portfolio identifier.

*/ inline bool PortfolioIdHasBeenSet() const { return m_portfolioIdHasBeenSet; } /** *

The portfolio identifier.

*/ inline void SetPortfolioId(const Aws::String& value) { m_portfolioIdHasBeenSet = true; m_portfolioId = value; } /** *

The portfolio identifier.

*/ inline void SetPortfolioId(Aws::String&& value) { m_portfolioIdHasBeenSet = true; m_portfolioId = std::move(value); } /** *

The portfolio identifier.

*/ inline void SetPortfolioId(const char* value) { m_portfolioIdHasBeenSet = true; m_portfolioId.assign(value); } /** *

The portfolio identifier.

*/ inline CreatePortfolioShareRequest& WithPortfolioId(const Aws::String& value) { SetPortfolioId(value); return *this;} /** *

The portfolio identifier.

*/ inline CreatePortfolioShareRequest& WithPortfolioId(Aws::String&& value) { SetPortfolioId(std::move(value)); return *this;} /** *

The portfolio identifier.

*/ inline CreatePortfolioShareRequest& WithPortfolioId(const char* value) { SetPortfolioId(value); return *this;} /** *

The Amazon Web Services account ID. For example, * 123456789012.

*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *

The Amazon Web Services account ID. For example, * 123456789012.

*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *

The Amazon Web Services account ID. For example, * 123456789012.

*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *

The Amazon Web Services account ID. For example, * 123456789012.

*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *

The Amazon Web Services account ID. For example, * 123456789012.

*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *

The Amazon Web Services account ID. For example, * 123456789012.

*/ inline CreatePortfolioShareRequest& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *

The Amazon Web Services account ID. For example, * 123456789012.

*/ inline CreatePortfolioShareRequest& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *

The Amazon Web Services account ID. For example, * 123456789012.

*/ inline CreatePortfolioShareRequest& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *

The organization node to whom you are going to share. When you pass * OrganizationNode, it creates PortfolioShare for all of * the Amazon Web Services accounts that are associated to the * OrganizationNode. The output returns a * PortfolioShareToken, which enables the administrator to monitor the * status of the PortfolioShare creation process.

*/ inline const OrganizationNode& GetOrganizationNode() const{ return m_organizationNode; } /** *

The organization node to whom you are going to share. When you pass * OrganizationNode, it creates PortfolioShare for all of * the Amazon Web Services accounts that are associated to the * OrganizationNode. The output returns a * PortfolioShareToken, which enables the administrator to monitor the * status of the PortfolioShare creation process.

*/ inline bool OrganizationNodeHasBeenSet() const { return m_organizationNodeHasBeenSet; } /** *

The organization node to whom you are going to share. When you pass * OrganizationNode, it creates PortfolioShare for all of * the Amazon Web Services accounts that are associated to the * OrganizationNode. The output returns a * PortfolioShareToken, which enables the administrator to monitor the * status of the PortfolioShare creation process.

*/ inline void SetOrganizationNode(const OrganizationNode& value) { m_organizationNodeHasBeenSet = true; m_organizationNode = value; } /** *

The organization node to whom you are going to share. When you pass * OrganizationNode, it creates PortfolioShare for all of * the Amazon Web Services accounts that are associated to the * OrganizationNode. The output returns a * PortfolioShareToken, which enables the administrator to monitor the * status of the PortfolioShare creation process.

*/ inline void SetOrganizationNode(OrganizationNode&& value) { m_organizationNodeHasBeenSet = true; m_organizationNode = std::move(value); } /** *

The organization node to whom you are going to share. When you pass * OrganizationNode, it creates PortfolioShare for all of * the Amazon Web Services accounts that are associated to the * OrganizationNode. The output returns a * PortfolioShareToken, which enables the administrator to monitor the * status of the PortfolioShare creation process.

*/ inline CreatePortfolioShareRequest& WithOrganizationNode(const OrganizationNode& value) { SetOrganizationNode(value); return *this;} /** *

The organization node to whom you are going to share. When you pass * OrganizationNode, it creates PortfolioShare for all of * the Amazon Web Services accounts that are associated to the * OrganizationNode. The output returns a * PortfolioShareToken, which enables the administrator to monitor the * status of the PortfolioShare creation process.

*/ inline CreatePortfolioShareRequest& WithOrganizationNode(OrganizationNode&& value) { SetOrganizationNode(std::move(value)); return *this;} /** *

Enables or disables TagOptions sharing when creating the * portfolio share. If this flag is not provided, TagOptions sharing is * disabled.

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

Enables or disables TagOptions sharing when creating the * portfolio share. If this flag is not provided, TagOptions sharing is * disabled.

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

Enables or disables TagOptions sharing when creating the * portfolio share. If this flag is not provided, TagOptions sharing is * disabled.

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

Enables or disables TagOptions sharing when creating the * portfolio share. If this flag is not provided, TagOptions sharing is * disabled.

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

Enables or disables Principal sharing when creating the * portfolio share. If this flag is not provided, principal sharing is disabled. *

When you enable Principal Name Sharing for a portfolio share, the share * recipient account end users with a principal that matches any of the associated * IAM patterns can provision products from the portfolio. Once shared, the share * recipient can view associations of PrincipalType: * IAM_PATTERN on their portfolio. You can create the principals in * the recipient account before or after creating the share.

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

Enables or disables Principal sharing when creating the * portfolio share. If this flag is not provided, principal sharing is disabled. *

When you enable Principal Name Sharing for a portfolio share, the share * recipient account end users with a principal that matches any of the associated * IAM patterns can provision products from the portfolio. Once shared, the share * recipient can view associations of PrincipalType: * IAM_PATTERN on their portfolio. You can create the principals in * the recipient account before or after creating the share.

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

Enables or disables Principal sharing when creating the * portfolio share. If this flag is not provided, principal sharing is disabled. *

When you enable Principal Name Sharing for a portfolio share, the share * recipient account end users with a principal that matches any of the associated * IAM patterns can provision products from the portfolio. Once shared, the share * recipient can view associations of PrincipalType: * IAM_PATTERN on their portfolio. You can create the principals in * the recipient account before or after creating the share.

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

Enables or disables Principal sharing when creating the * portfolio share. If this flag is not provided, principal sharing is disabled. *

When you enable Principal Name Sharing for a portfolio share, the share * recipient account end users with a principal that matches any of the associated * IAM patterns can provision products from the portfolio. Once shared, the share * recipient can view associations of PrincipalType: * IAM_PATTERN on their portfolio. You can create the principals in * the recipient account before or after creating the share.

*/ inline CreatePortfolioShareRequest& WithSharePrincipals(bool value) { SetSharePrincipals(value); return *this;} private: Aws::String m_acceptLanguage; bool m_acceptLanguageHasBeenSet = false; Aws::String m_portfolioId; bool m_portfolioIdHasBeenSet = false; Aws::String m_accountId; bool m_accountIdHasBeenSet = false; OrganizationNode m_organizationNode; bool m_organizationNodeHasBeenSet = false; bool m_shareTagOptions; bool m_shareTagOptionsHasBeenSet = false; bool m_sharePrincipals; bool m_sharePrincipalsHasBeenSet = false; }; } // namespace Model } // namespace ServiceCatalog } // namespace Aws