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/macie2/Macie2_EXPORTS.h>
8 #include <aws/macie2/model/TimeRange.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/macie2/model/UsageTotal.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 template<typename RESULT_TYPE>
16 class AmazonWebServiceResult;
17 
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23 } // namespace Json
24 } // namespace Utils
25 namespace Macie2
26 {
27 namespace Model
28 {
29   class AWS_MACIE2_API GetUsageTotalsResult
30   {
31   public:
32     GetUsageTotalsResult();
33     GetUsageTotalsResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
34     GetUsageTotalsResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35 
36 
37     /**
38      * <p>The inclusive time period that the usage data applies to. Possible values
39      * are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS,
40      * for the preceding 30 days.</p>
41      */
GetTimeRange()42     inline const TimeRange& GetTimeRange() const{ return m_timeRange; }
43 
44     /**
45      * <p>The inclusive time period that the usage data applies to. Possible values
46      * are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS,
47      * for the preceding 30 days.</p>
48      */
SetTimeRange(const TimeRange & value)49     inline void SetTimeRange(const TimeRange& value) { m_timeRange = value; }
50 
51     /**
52      * <p>The inclusive time period that the usage data applies to. Possible values
53      * are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS,
54      * for the preceding 30 days.</p>
55      */
SetTimeRange(TimeRange && value)56     inline void SetTimeRange(TimeRange&& value) { m_timeRange = std::move(value); }
57 
58     /**
59      * <p>The inclusive time period that the usage data applies to. Possible values
60      * are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS,
61      * for the preceding 30 days.</p>
62      */
WithTimeRange(const TimeRange & value)63     inline GetUsageTotalsResult& WithTimeRange(const TimeRange& value) { SetTimeRange(value); return *this;}
64 
65     /**
66      * <p>The inclusive time period that the usage data applies to. Possible values
67      * are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS,
68      * for the preceding 30 days.</p>
69      */
WithTimeRange(TimeRange && value)70     inline GetUsageTotalsResult& WithTimeRange(TimeRange&& value) { SetTimeRange(std::move(value)); return *this;}
71 
72 
73     /**
74      * <p>An array of objects that contains the results of the query. Each object
75      * contains the data for a specific usage metric.</p>
76      */
GetUsageTotals()77     inline const Aws::Vector<UsageTotal>& GetUsageTotals() const{ return m_usageTotals; }
78 
79     /**
80      * <p>An array of objects that contains the results of the query. Each object
81      * contains the data for a specific usage metric.</p>
82      */
SetUsageTotals(const Aws::Vector<UsageTotal> & value)83     inline void SetUsageTotals(const Aws::Vector<UsageTotal>& value) { m_usageTotals = value; }
84 
85     /**
86      * <p>An array of objects that contains the results of the query. Each object
87      * contains the data for a specific usage metric.</p>
88      */
SetUsageTotals(Aws::Vector<UsageTotal> && value)89     inline void SetUsageTotals(Aws::Vector<UsageTotal>&& value) { m_usageTotals = std::move(value); }
90 
91     /**
92      * <p>An array of objects that contains the results of the query. Each object
93      * contains the data for a specific usage metric.</p>
94      */
WithUsageTotals(const Aws::Vector<UsageTotal> & value)95     inline GetUsageTotalsResult& WithUsageTotals(const Aws::Vector<UsageTotal>& value) { SetUsageTotals(value); return *this;}
96 
97     /**
98      * <p>An array of objects that contains the results of the query. Each object
99      * contains the data for a specific usage metric.</p>
100      */
WithUsageTotals(Aws::Vector<UsageTotal> && value)101     inline GetUsageTotalsResult& WithUsageTotals(Aws::Vector<UsageTotal>&& value) { SetUsageTotals(std::move(value)); return *this;}
102 
103     /**
104      * <p>An array of objects that contains the results of the query. Each object
105      * contains the data for a specific usage metric.</p>
106      */
AddUsageTotals(const UsageTotal & value)107     inline GetUsageTotalsResult& AddUsageTotals(const UsageTotal& value) { m_usageTotals.push_back(value); return *this; }
108 
109     /**
110      * <p>An array of objects that contains the results of the query. Each object
111      * contains the data for a specific usage metric.</p>
112      */
AddUsageTotals(UsageTotal && value)113     inline GetUsageTotalsResult& AddUsageTotals(UsageTotal&& value) { m_usageTotals.push_back(std::move(value)); return *this; }
114 
115   private:
116 
117     TimeRange m_timeRange;
118 
119     Aws::Vector<UsageTotal> m_usageTotals;
120   };
121 
122 } // namespace Model
123 } // namespace Macie2
124 } // namespace Aws
125