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

A service configuration associated with a resource group. The configuration * options are determined by the Amazon Web Services service that defines the * Type, and specifies which resources can be included in the group. * You can add a service configuration when you create the group by using * CreateGroup, or later by using the PutGroupConfiguration * operation. For details about group service configuration syntax, see Service * configurations for resource groups.

See Also:

AWS * API Reference

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

The configuration currently associated with the group and in effect.

*/ inline const Aws::Vector& GetConfiguration() const{ return m_configuration; } /** *

The configuration currently associated with the group and in effect.

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

The configuration currently associated with the group and in effect.

*/ inline void SetConfiguration(const Aws::Vector& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

The configuration currently associated with the group and in effect.

*/ inline void SetConfiguration(Aws::Vector&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

The configuration currently associated with the group and in effect.

*/ inline GroupConfiguration& WithConfiguration(const Aws::Vector& value) { SetConfiguration(value); return *this;} /** *

The configuration currently associated with the group and in effect.

*/ inline GroupConfiguration& WithConfiguration(Aws::Vector&& value) { SetConfiguration(std::move(value)); return *this;} /** *

The configuration currently associated with the group and in effect.

*/ inline GroupConfiguration& AddConfiguration(const GroupConfigurationItem& value) { m_configurationHasBeenSet = true; m_configuration.push_back(value); return *this; } /** *

The configuration currently associated with the group and in effect.

*/ inline GroupConfiguration& AddConfiguration(GroupConfigurationItem&& value) { m_configurationHasBeenSet = true; m_configuration.push_back(std::move(value)); return *this; } /** *

If present, the new configuration that is in the process of being applied to * the group.

*/ inline const Aws::Vector& GetProposedConfiguration() const{ return m_proposedConfiguration; } /** *

If present, the new configuration that is in the process of being applied to * the group.

*/ inline bool ProposedConfigurationHasBeenSet() const { return m_proposedConfigurationHasBeenSet; } /** *

If present, the new configuration that is in the process of being applied to * the group.

*/ inline void SetProposedConfiguration(const Aws::Vector& value) { m_proposedConfigurationHasBeenSet = true; m_proposedConfiguration = value; } /** *

If present, the new configuration that is in the process of being applied to * the group.

*/ inline void SetProposedConfiguration(Aws::Vector&& value) { m_proposedConfigurationHasBeenSet = true; m_proposedConfiguration = std::move(value); } /** *

If present, the new configuration that is in the process of being applied to * the group.

*/ inline GroupConfiguration& WithProposedConfiguration(const Aws::Vector& value) { SetProposedConfiguration(value); return *this;} /** *

If present, the new configuration that is in the process of being applied to * the group.

*/ inline GroupConfiguration& WithProposedConfiguration(Aws::Vector&& value) { SetProposedConfiguration(std::move(value)); return *this;} /** *

If present, the new configuration that is in the process of being applied to * the group.

*/ inline GroupConfiguration& AddProposedConfiguration(const GroupConfigurationItem& value) { m_proposedConfigurationHasBeenSet = true; m_proposedConfiguration.push_back(value); return *this; } /** *

If present, the new configuration that is in the process of being applied to * the group.

*/ inline GroupConfiguration& AddProposedConfiguration(GroupConfigurationItem&& value) { m_proposedConfigurationHasBeenSet = true; m_proposedConfiguration.push_back(std::move(value)); return *this; } /** *

The current status of an attempt to update the group configuration.

*/ inline const GroupConfigurationStatus& GetStatus() const{ return m_status; } /** *

The current status of an attempt to update the group configuration.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The current status of an attempt to update the group configuration.

*/ inline void SetStatus(const GroupConfigurationStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The current status of an attempt to update the group configuration.

*/ inline void SetStatus(GroupConfigurationStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The current status of an attempt to update the group configuration.

*/ inline GroupConfiguration& WithStatus(const GroupConfigurationStatus& value) { SetStatus(value); return *this;} /** *

The current status of an attempt to update the group configuration.

*/ inline GroupConfiguration& WithStatus(GroupConfigurationStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

If present, the reason why a request to update the group configuration * failed.

*/ inline const Aws::String& GetFailureReason() const{ return m_failureReason; } /** *

If present, the reason why a request to update the group configuration * failed.

*/ inline bool FailureReasonHasBeenSet() const { return m_failureReasonHasBeenSet; } /** *

If present, the reason why a request to update the group configuration * failed.

*/ inline void SetFailureReason(const Aws::String& value) { m_failureReasonHasBeenSet = true; m_failureReason = value; } /** *

If present, the reason why a request to update the group configuration * failed.

*/ inline void SetFailureReason(Aws::String&& value) { m_failureReasonHasBeenSet = true; m_failureReason = std::move(value); } /** *

If present, the reason why a request to update the group configuration * failed.

*/ inline void SetFailureReason(const char* value) { m_failureReasonHasBeenSet = true; m_failureReason.assign(value); } /** *

If present, the reason why a request to update the group configuration * failed.

*/ inline GroupConfiguration& WithFailureReason(const Aws::String& value) { SetFailureReason(value); return *this;} /** *

If present, the reason why a request to update the group configuration * failed.

*/ inline GroupConfiguration& WithFailureReason(Aws::String&& value) { SetFailureReason(std::move(value)); return *this;} /** *

If present, the reason why a request to update the group configuration * failed.

*/ inline GroupConfiguration& WithFailureReason(const char* value) { SetFailureReason(value); return *this;} private: Aws::Vector m_configuration; bool m_configurationHasBeenSet = false; Aws::Vector m_proposedConfiguration; bool m_proposedConfigurationHasBeenSet = false; GroupConfigurationStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_failureReason; bool m_failureReasonHasBeenSet = false; }; } // namespace Model } // namespace ResourceGroups } // namespace Aws