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/license-manager/LicenseManager_EXPORTS.h>
8 #include <aws/license-manager/model/ReportFrequencyType.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 LicenseManager
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Details about how frequently reports are generated.</p><p><h3>See Also:</h3>
28    * <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/license-manager-2018-08-01/ReportFrequency">AWS
30    * API Reference</a></p>
31    */
32   class AWS_LICENSEMANAGER_API ReportFrequency
33   {
34   public:
35     ReportFrequency();
36     ReportFrequency(Aws::Utils::Json::JsonView jsonValue);
37     ReportFrequency& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>Number of times within the frequency period that a report is generated. The
43      * only supported value is <code>1</code>.</p>
44      */
GetValue()45     inline int GetValue() const{ return m_value; }
46 
47     /**
48      * <p>Number of times within the frequency period that a report is generated. The
49      * only supported value is <code>1</code>.</p>
50      */
ValueHasBeenSet()51     inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; }
52 
53     /**
54      * <p>Number of times within the frequency period that a report is generated. The
55      * only supported value is <code>1</code>.</p>
56      */
SetValue(int value)57     inline void SetValue(int value) { m_valueHasBeenSet = true; m_value = value; }
58 
59     /**
60      * <p>Number of times within the frequency period that a report is generated. The
61      * only supported value is <code>1</code>.</p>
62      */
WithValue(int value)63     inline ReportFrequency& WithValue(int value) { SetValue(value); return *this;}
64 
65 
66     /**
67      * <p>Time period between each report. The period can be daily, weekly, or
68      * monthly.</p>
69      */
GetPeriod()70     inline const ReportFrequencyType& GetPeriod() const{ return m_period; }
71 
72     /**
73      * <p>Time period between each report. The period can be daily, weekly, or
74      * monthly.</p>
75      */
PeriodHasBeenSet()76     inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; }
77 
78     /**
79      * <p>Time period between each report. The period can be daily, weekly, or
80      * monthly.</p>
81      */
SetPeriod(const ReportFrequencyType & value)82     inline void SetPeriod(const ReportFrequencyType& value) { m_periodHasBeenSet = true; m_period = value; }
83 
84     /**
85      * <p>Time period between each report. The period can be daily, weekly, or
86      * monthly.</p>
87      */
SetPeriod(ReportFrequencyType && value)88     inline void SetPeriod(ReportFrequencyType&& value) { m_periodHasBeenSet = true; m_period = std::move(value); }
89 
90     /**
91      * <p>Time period between each report. The period can be daily, weekly, or
92      * monthly.</p>
93      */
WithPeriod(const ReportFrequencyType & value)94     inline ReportFrequency& WithPeriod(const ReportFrequencyType& value) { SetPeriod(value); return *this;}
95 
96     /**
97      * <p>Time period between each report. The period can be daily, weekly, or
98      * monthly.</p>
99      */
WithPeriod(ReportFrequencyType && value)100     inline ReportFrequency& WithPeriod(ReportFrequencyType&& value) { SetPeriod(std::move(value)); return *this;}
101 
102   private:
103 
104     int m_value;
105     bool m_valueHasBeenSet;
106 
107     ReportFrequencyType m_period;
108     bool m_periodHasBeenSet;
109   };
110 
111 } // namespace Model
112 } // namespace LicenseManager
113 } // namespace Aws
114