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

Contains information about which resources to include or exclude from a * backup plan using their tags. Conditions are case sensitive.

See * Also:

AWS * API Reference

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

Filters the values of your tagged resources for only those resources that you * tagged with the same value. Also called "exact matching."

*/ inline const Aws::Vector& GetStringEquals() const{ return m_stringEquals; } /** *

Filters the values of your tagged resources for only those resources that you * tagged with the same value. Also called "exact matching."

*/ inline bool StringEqualsHasBeenSet() const { return m_stringEqualsHasBeenSet; } /** *

Filters the values of your tagged resources for only those resources that you * tagged with the same value. Also called "exact matching."

*/ inline void SetStringEquals(const Aws::Vector& value) { m_stringEqualsHasBeenSet = true; m_stringEquals = value; } /** *

Filters the values of your tagged resources for only those resources that you * tagged with the same value. Also called "exact matching."

*/ inline void SetStringEquals(Aws::Vector&& value) { m_stringEqualsHasBeenSet = true; m_stringEquals = std::move(value); } /** *

Filters the values of your tagged resources for only those resources that you * tagged with the same value. Also called "exact matching."

*/ inline Conditions& WithStringEquals(const Aws::Vector& value) { SetStringEquals(value); return *this;} /** *

Filters the values of your tagged resources for only those resources that you * tagged with the same value. Also called "exact matching."

*/ inline Conditions& WithStringEquals(Aws::Vector&& value) { SetStringEquals(std::move(value)); return *this;} /** *

Filters the values of your tagged resources for only those resources that you * tagged with the same value. Also called "exact matching."

*/ inline Conditions& AddStringEquals(const ConditionParameter& value) { m_stringEqualsHasBeenSet = true; m_stringEquals.push_back(value); return *this; } /** *

Filters the values of your tagged resources for only those resources that you * tagged with the same value. Also called "exact matching."

*/ inline Conditions& AddStringEquals(ConditionParameter&& value) { m_stringEqualsHasBeenSet = true; m_stringEquals.push_back(std::move(value)); return *this; } /** *

Filters the values of your tagged resources for only those resources that you * tagged that do not have the same value. Also called "negated matching."

*/ inline const Aws::Vector& GetStringNotEquals() const{ return m_stringNotEquals; } /** *

Filters the values of your tagged resources for only those resources that you * tagged that do not have the same value. Also called "negated matching."

*/ inline bool StringNotEqualsHasBeenSet() const { return m_stringNotEqualsHasBeenSet; } /** *

Filters the values of your tagged resources for only those resources that you * tagged that do not have the same value. Also called "negated matching."

*/ inline void SetStringNotEquals(const Aws::Vector& value) { m_stringNotEqualsHasBeenSet = true; m_stringNotEquals = value; } /** *

Filters the values of your tagged resources for only those resources that you * tagged that do not have the same value. Also called "negated matching."

*/ inline void SetStringNotEquals(Aws::Vector&& value) { m_stringNotEqualsHasBeenSet = true; m_stringNotEquals = std::move(value); } /** *

Filters the values of your tagged resources for only those resources that you * tagged that do not have the same value. Also called "negated matching."

*/ inline Conditions& WithStringNotEquals(const Aws::Vector& value) { SetStringNotEquals(value); return *this;} /** *

Filters the values of your tagged resources for only those resources that you * tagged that do not have the same value. Also called "negated matching."

*/ inline Conditions& WithStringNotEquals(Aws::Vector&& value) { SetStringNotEquals(std::move(value)); return *this;} /** *

Filters the values of your tagged resources for only those resources that you * tagged that do not have the same value. Also called "negated matching."

*/ inline Conditions& AddStringNotEquals(const ConditionParameter& value) { m_stringNotEqualsHasBeenSet = true; m_stringNotEquals.push_back(value); return *this; } /** *

Filters the values of your tagged resources for only those resources that you * tagged that do not have the same value. Also called "negated matching."

*/ inline Conditions& AddStringNotEquals(ConditionParameter&& value) { m_stringNotEqualsHasBeenSet = true; m_stringNotEquals.push_back(std::move(value)); return *this; } /** *

Filters the values of your tagged resources for matching tag values with the * use of a wildcard character (*) anywhere in the string. For example, "prod*" or * "*rod*" matches the tag value "production".

*/ inline const Aws::Vector& GetStringLike() const{ return m_stringLike; } /** *

Filters the values of your tagged resources for matching tag values with the * use of a wildcard character (*) anywhere in the string. For example, "prod*" or * "*rod*" matches the tag value "production".

*/ inline bool StringLikeHasBeenSet() const { return m_stringLikeHasBeenSet; } /** *

Filters the values of your tagged resources for matching tag values with the * use of a wildcard character (*) anywhere in the string. For example, "prod*" or * "*rod*" matches the tag value "production".

*/ inline void SetStringLike(const Aws::Vector& value) { m_stringLikeHasBeenSet = true; m_stringLike = value; } /** *

Filters the values of your tagged resources for matching tag values with the * use of a wildcard character (*) anywhere in the string. For example, "prod*" or * "*rod*" matches the tag value "production".

*/ inline void SetStringLike(Aws::Vector&& value) { m_stringLikeHasBeenSet = true; m_stringLike = std::move(value); } /** *

Filters the values of your tagged resources for matching tag values with the * use of a wildcard character (*) anywhere in the string. For example, "prod*" or * "*rod*" matches the tag value "production".

*/ inline Conditions& WithStringLike(const Aws::Vector& value) { SetStringLike(value); return *this;} /** *

Filters the values of your tagged resources for matching tag values with the * use of a wildcard character (*) anywhere in the string. For example, "prod*" or * "*rod*" matches the tag value "production".

*/ inline Conditions& WithStringLike(Aws::Vector&& value) { SetStringLike(std::move(value)); return *this;} /** *

Filters the values of your tagged resources for matching tag values with the * use of a wildcard character (*) anywhere in the string. For example, "prod*" or * "*rod*" matches the tag value "production".

*/ inline Conditions& AddStringLike(const ConditionParameter& value) { m_stringLikeHasBeenSet = true; m_stringLike.push_back(value); return *this; } /** *

Filters the values of your tagged resources for matching tag values with the * use of a wildcard character (*) anywhere in the string. For example, "prod*" or * "*rod*" matches the tag value "production".

*/ inline Conditions& AddStringLike(ConditionParameter&& value) { m_stringLikeHasBeenSet = true; m_stringLike.push_back(std::move(value)); return *this; } /** *

Filters the values of your tagged resources for non-matching tag values with * the use of a wildcard character (*) anywhere in the string.

*/ inline const Aws::Vector& GetStringNotLike() const{ return m_stringNotLike; } /** *

Filters the values of your tagged resources for non-matching tag values with * the use of a wildcard character (*) anywhere in the string.

*/ inline bool StringNotLikeHasBeenSet() const { return m_stringNotLikeHasBeenSet; } /** *

Filters the values of your tagged resources for non-matching tag values with * the use of a wildcard character (*) anywhere in the string.

*/ inline void SetStringNotLike(const Aws::Vector& value) { m_stringNotLikeHasBeenSet = true; m_stringNotLike = value; } /** *

Filters the values of your tagged resources for non-matching tag values with * the use of a wildcard character (*) anywhere in the string.

*/ inline void SetStringNotLike(Aws::Vector&& value) { m_stringNotLikeHasBeenSet = true; m_stringNotLike = std::move(value); } /** *

Filters the values of your tagged resources for non-matching tag values with * the use of a wildcard character (*) anywhere in the string.

*/ inline Conditions& WithStringNotLike(const Aws::Vector& value) { SetStringNotLike(value); return *this;} /** *

Filters the values of your tagged resources for non-matching tag values with * the use of a wildcard character (*) anywhere in the string.

*/ inline Conditions& WithStringNotLike(Aws::Vector&& value) { SetStringNotLike(std::move(value)); return *this;} /** *

Filters the values of your tagged resources for non-matching tag values with * the use of a wildcard character (*) anywhere in the string.

*/ inline Conditions& AddStringNotLike(const ConditionParameter& value) { m_stringNotLikeHasBeenSet = true; m_stringNotLike.push_back(value); return *this; } /** *

Filters the values of your tagged resources for non-matching tag values with * the use of a wildcard character (*) anywhere in the string.

*/ inline Conditions& AddStringNotLike(ConditionParameter&& value) { m_stringNotLikeHasBeenSet = true; m_stringNotLike.push_back(std::move(value)); return *this; } private: Aws::Vector m_stringEquals; bool m_stringEqualsHasBeenSet = false; Aws::Vector m_stringNotEquals; bool m_stringNotEqualsHasBeenSet = false; Aws::Vector m_stringLike; bool m_stringLikeHasBeenSet = false; Aws::Vector m_stringNotLike; bool m_stringNotLikeHasBeenSet = false; }; } // namespace Model } // namespace Backup } // namespace Aws