/** * 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 ServerlessApplicationRepository { namespace Model { /** *

Policy statement applied to the application.

See Also:

AWS * API Reference

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

For the list of actions supported for this operation, see Application * Permissions.

*/ inline const Aws::Vector& GetActions() const{ return m_actions; } /** *

For the list of actions supported for this operation, see Application * Permissions.

*/ inline bool ActionsHasBeenSet() const { return m_actionsHasBeenSet; } /** *

For the list of actions supported for this operation, see Application * Permissions.

*/ inline void SetActions(const Aws::Vector& value) { m_actionsHasBeenSet = true; m_actions = value; } /** *

For the list of actions supported for this operation, see Application * Permissions.

*/ inline void SetActions(Aws::Vector&& value) { m_actionsHasBeenSet = true; m_actions = std::move(value); } /** *

For the list of actions supported for this operation, see Application * Permissions.

*/ inline ApplicationPolicyStatement& WithActions(const Aws::Vector& value) { SetActions(value); return *this;} /** *

For the list of actions supported for this operation, see Application * Permissions.

*/ inline ApplicationPolicyStatement& WithActions(Aws::Vector&& value) { SetActions(std::move(value)); return *this;} /** *

For the list of actions supported for this operation, see Application * Permissions.

*/ inline ApplicationPolicyStatement& AddActions(const Aws::String& value) { m_actionsHasBeenSet = true; m_actions.push_back(value); return *this; } /** *

For the list of actions supported for this operation, see Application * Permissions.

*/ inline ApplicationPolicyStatement& AddActions(Aws::String&& value) { m_actionsHasBeenSet = true; m_actions.push_back(std::move(value)); return *this; } /** *

For the list of actions supported for this operation, see Application * Permissions.

*/ inline ApplicationPolicyStatement& AddActions(const char* value) { m_actionsHasBeenSet = true; m_actions.push_back(value); return *this; } /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline const Aws::Vector& GetPrincipalOrgIDs() const{ return m_principalOrgIDs; } /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline bool PrincipalOrgIDsHasBeenSet() const { return m_principalOrgIDsHasBeenSet; } /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline void SetPrincipalOrgIDs(const Aws::Vector& value) { m_principalOrgIDsHasBeenSet = true; m_principalOrgIDs = value; } /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline void SetPrincipalOrgIDs(Aws::Vector&& value) { m_principalOrgIDsHasBeenSet = true; m_principalOrgIDs = std::move(value); } /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline ApplicationPolicyStatement& WithPrincipalOrgIDs(const Aws::Vector& value) { SetPrincipalOrgIDs(value); return *this;} /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline ApplicationPolicyStatement& WithPrincipalOrgIDs(Aws::Vector&& value) { SetPrincipalOrgIDs(std::move(value)); return *this;} /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline ApplicationPolicyStatement& AddPrincipalOrgIDs(const Aws::String& value) { m_principalOrgIDsHasBeenSet = true; m_principalOrgIDs.push_back(value); return *this; } /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline ApplicationPolicyStatement& AddPrincipalOrgIDs(Aws::String&& value) { m_principalOrgIDsHasBeenSet = true; m_principalOrgIDs.push_back(std::move(value)); return *this; } /** *

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID * global condition key.

*/ inline ApplicationPolicyStatement& AddPrincipalOrgIDs(const char* value) { m_principalOrgIDsHasBeenSet = true; m_principalOrgIDs.push_back(value); return *this; } /** *

An array of AWS account IDs, or * to make the application public.

*/ inline const Aws::Vector& GetPrincipals() const{ return m_principals; } /** *

An array of AWS account IDs, or * to make the application public.

*/ inline bool PrincipalsHasBeenSet() const { return m_principalsHasBeenSet; } /** *

An array of AWS account IDs, or * to make the application public.

*/ inline void SetPrincipals(const Aws::Vector& value) { m_principalsHasBeenSet = true; m_principals = value; } /** *

An array of AWS account IDs, or * to make the application public.

*/ inline void SetPrincipals(Aws::Vector&& value) { m_principalsHasBeenSet = true; m_principals = std::move(value); } /** *

An array of AWS account IDs, or * to make the application public.

*/ inline ApplicationPolicyStatement& WithPrincipals(const Aws::Vector& value) { SetPrincipals(value); return *this;} /** *

An array of AWS account IDs, or * to make the application public.

*/ inline ApplicationPolicyStatement& WithPrincipals(Aws::Vector&& value) { SetPrincipals(std::move(value)); return *this;} /** *

An array of AWS account IDs, or * to make the application public.

*/ inline ApplicationPolicyStatement& AddPrincipals(const Aws::String& value) { m_principalsHasBeenSet = true; m_principals.push_back(value); return *this; } /** *

An array of AWS account IDs, or * to make the application public.

*/ inline ApplicationPolicyStatement& AddPrincipals(Aws::String&& value) { m_principalsHasBeenSet = true; m_principals.push_back(std::move(value)); return *this; } /** *

An array of AWS account IDs, or * to make the application public.

*/ inline ApplicationPolicyStatement& AddPrincipals(const char* value) { m_principalsHasBeenSet = true; m_principals.push_back(value); return *this; } /** *

A unique ID for the statement.

*/ inline const Aws::String& GetStatementId() const{ return m_statementId; } /** *

A unique ID for the statement.

*/ inline bool StatementIdHasBeenSet() const { return m_statementIdHasBeenSet; } /** *

A unique ID for the statement.

*/ inline void SetStatementId(const Aws::String& value) { m_statementIdHasBeenSet = true; m_statementId = value; } /** *

A unique ID for the statement.

*/ inline void SetStatementId(Aws::String&& value) { m_statementIdHasBeenSet = true; m_statementId = std::move(value); } /** *

A unique ID for the statement.

*/ inline void SetStatementId(const char* value) { m_statementIdHasBeenSet = true; m_statementId.assign(value); } /** *

A unique ID for the statement.

*/ inline ApplicationPolicyStatement& WithStatementId(const Aws::String& value) { SetStatementId(value); return *this;} /** *

A unique ID for the statement.

*/ inline ApplicationPolicyStatement& WithStatementId(Aws::String&& value) { SetStatementId(std::move(value)); return *this;} /** *

A unique ID for the statement.

*/ inline ApplicationPolicyStatement& WithStatementId(const char* value) { SetStatementId(value); return *this;} private: Aws::Vector m_actions; bool m_actionsHasBeenSet = false; Aws::Vector m_principalOrgIDs; bool m_principalOrgIDsHasBeenSet = false; Aws::Vector m_principals; bool m_principalsHasBeenSet = false; Aws::String m_statementId; bool m_statementIdHasBeenSet = false; }; } // namespace Model } // namespace ServerlessApplicationRepository } // namespace Aws