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

Specifies how many protections of a given type you can create.

See * Also:

AWS API * Reference

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

The type of protection.

*/ inline const Aws::String& GetType() const{ return m_type; } /** *

The type of protection.

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

The type of protection.

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

The type of protection.

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

The type of protection.

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } /** *

The type of protection.

*/ inline Limit& WithType(const Aws::String& value) { SetType(value); return *this;} /** *

The type of protection.

*/ inline Limit& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} /** *

The type of protection.

*/ inline Limit& WithType(const char* value) { SetType(value); return *this;} /** *

The maximum number of protections that can be created for the specified * Type.

*/ inline long long GetMax() const{ return m_max; } /** *

The maximum number of protections that can be created for the specified * Type.

*/ inline bool MaxHasBeenSet() const { return m_maxHasBeenSet; } /** *

The maximum number of protections that can be created for the specified * Type.

*/ inline void SetMax(long long value) { m_maxHasBeenSet = true; m_max = value; } /** *

The maximum number of protections that can be created for the specified * Type.

*/ inline Limit& WithMax(long long value) { SetMax(value); return *this;} private: Aws::String m_type; bool m_typeHasBeenSet = false; long long m_max; bool m_maxHasBeenSet = false; }; } // namespace Model } // namespace Shield } // namespace Aws