1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/shield/Shield_EXPORTS.h>
8 #include <aws/shield/model/ProtectionGroupPatternTypeLimits.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace Shield
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Limits settings on protection groups for your subscription. </p><p><h3>See
28    * Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupLimits">AWS
30    * API Reference</a></p>
31    */
32   class AWS_SHIELD_API ProtectionGroupLimits
33   {
34   public:
35     ProtectionGroupLimits();
36     ProtectionGroupLimits(Aws::Utils::Json::JsonView jsonValue);
37     ProtectionGroupLimits& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The maximum number of protection groups that you can have at one time. </p>
43      */
GetMaxProtectionGroups()44     inline long long GetMaxProtectionGroups() const{ return m_maxProtectionGroups; }
45 
46     /**
47      * <p>The maximum number of protection groups that you can have at one time. </p>
48      */
MaxProtectionGroupsHasBeenSet()49     inline bool MaxProtectionGroupsHasBeenSet() const { return m_maxProtectionGroupsHasBeenSet; }
50 
51     /**
52      * <p>The maximum number of protection groups that you can have at one time. </p>
53      */
SetMaxProtectionGroups(long long value)54     inline void SetMaxProtectionGroups(long long value) { m_maxProtectionGroupsHasBeenSet = true; m_maxProtectionGroups = value; }
55 
56     /**
57      * <p>The maximum number of protection groups that you can have at one time. </p>
58      */
WithMaxProtectionGroups(long long value)59     inline ProtectionGroupLimits& WithMaxProtectionGroups(long long value) { SetMaxProtectionGroups(value); return *this;}
60 
61 
62     /**
63      * <p>Limits settings by pattern type in the protection groups for your
64      * subscription. </p>
65      */
GetPatternTypeLimits()66     inline const ProtectionGroupPatternTypeLimits& GetPatternTypeLimits() const{ return m_patternTypeLimits; }
67 
68     /**
69      * <p>Limits settings by pattern type in the protection groups for your
70      * subscription. </p>
71      */
PatternTypeLimitsHasBeenSet()72     inline bool PatternTypeLimitsHasBeenSet() const { return m_patternTypeLimitsHasBeenSet; }
73 
74     /**
75      * <p>Limits settings by pattern type in the protection groups for your
76      * subscription. </p>
77      */
SetPatternTypeLimits(const ProtectionGroupPatternTypeLimits & value)78     inline void SetPatternTypeLimits(const ProtectionGroupPatternTypeLimits& value) { m_patternTypeLimitsHasBeenSet = true; m_patternTypeLimits = value; }
79 
80     /**
81      * <p>Limits settings by pattern type in the protection groups for your
82      * subscription. </p>
83      */
SetPatternTypeLimits(ProtectionGroupPatternTypeLimits && value)84     inline void SetPatternTypeLimits(ProtectionGroupPatternTypeLimits&& value) { m_patternTypeLimitsHasBeenSet = true; m_patternTypeLimits = std::move(value); }
85 
86     /**
87      * <p>Limits settings by pattern type in the protection groups for your
88      * subscription. </p>
89      */
WithPatternTypeLimits(const ProtectionGroupPatternTypeLimits & value)90     inline ProtectionGroupLimits& WithPatternTypeLimits(const ProtectionGroupPatternTypeLimits& value) { SetPatternTypeLimits(value); return *this;}
91 
92     /**
93      * <p>Limits settings by pattern type in the protection groups for your
94      * subscription. </p>
95      */
WithPatternTypeLimits(ProtectionGroupPatternTypeLimits && value)96     inline ProtectionGroupLimits& WithPatternTypeLimits(ProtectionGroupPatternTypeLimits&& value) { SetPatternTypeLimits(std::move(value)); return *this;}
97 
98   private:
99 
100     long long m_maxProtectionGroups;
101     bool m_maxProtectionGroupsHasBeenSet;
102 
103     ProtectionGroupPatternTypeLimits m_patternTypeLimits;
104     bool m_patternTypeLimitsHasBeenSet;
105   };
106 
107 } // namespace Model
108 } // namespace Shield
109 } // namespace Aws
110