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/securityhub/SecurityHub_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.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 SecurityHub
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Data about a queue.</p><p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsSqsQueueDetails">AWS
29    * API Reference</a></p>
30    */
31   class AWS_SECURITYHUB_API AwsSqsQueueDetails
32   {
33   public:
34     AwsSqsQueueDetails();
35     AwsSqsQueueDetails(Aws::Utils::Json::JsonView jsonValue);
36     AwsSqsQueueDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
37     Aws::Utils::Json::JsonValue Jsonize() const;
38 
39 
40     /**
41      * <p>The length of time, in seconds, for which Amazon SQS can reuse a data key to
42      * encrypt or decrypt messages before calling KMS again.</p>
43      */
GetKmsDataKeyReusePeriodSeconds()44     inline int GetKmsDataKeyReusePeriodSeconds() const{ return m_kmsDataKeyReusePeriodSeconds; }
45 
46     /**
47      * <p>The length of time, in seconds, for which Amazon SQS can reuse a data key to
48      * encrypt or decrypt messages before calling KMS again.</p>
49      */
KmsDataKeyReusePeriodSecondsHasBeenSet()50     inline bool KmsDataKeyReusePeriodSecondsHasBeenSet() const { return m_kmsDataKeyReusePeriodSecondsHasBeenSet; }
51 
52     /**
53      * <p>The length of time, in seconds, for which Amazon SQS can reuse a data key to
54      * encrypt or decrypt messages before calling KMS again.</p>
55      */
SetKmsDataKeyReusePeriodSeconds(int value)56     inline void SetKmsDataKeyReusePeriodSeconds(int value) { m_kmsDataKeyReusePeriodSecondsHasBeenSet = true; m_kmsDataKeyReusePeriodSeconds = value; }
57 
58     /**
59      * <p>The length of time, in seconds, for which Amazon SQS can reuse a data key to
60      * encrypt or decrypt messages before calling KMS again.</p>
61      */
WithKmsDataKeyReusePeriodSeconds(int value)62     inline AwsSqsQueueDetails& WithKmsDataKeyReusePeriodSeconds(int value) { SetKmsDataKeyReusePeriodSeconds(value); return *this;}
63 
64 
65     /**
66      * <p>The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS
67      * key.</p>
68      */
GetKmsMasterKeyId()69     inline const Aws::String& GetKmsMasterKeyId() const{ return m_kmsMasterKeyId; }
70 
71     /**
72      * <p>The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS
73      * key.</p>
74      */
KmsMasterKeyIdHasBeenSet()75     inline bool KmsMasterKeyIdHasBeenSet() const { return m_kmsMasterKeyIdHasBeenSet; }
76 
77     /**
78      * <p>The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS
79      * key.</p>
80      */
SetKmsMasterKeyId(const Aws::String & value)81     inline void SetKmsMasterKeyId(const Aws::String& value) { m_kmsMasterKeyIdHasBeenSet = true; m_kmsMasterKeyId = value; }
82 
83     /**
84      * <p>The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS
85      * key.</p>
86      */
SetKmsMasterKeyId(Aws::String && value)87     inline void SetKmsMasterKeyId(Aws::String&& value) { m_kmsMasterKeyIdHasBeenSet = true; m_kmsMasterKeyId = std::move(value); }
88 
89     /**
90      * <p>The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS
91      * key.</p>
92      */
SetKmsMasterKeyId(const char * value)93     inline void SetKmsMasterKeyId(const char* value) { m_kmsMasterKeyIdHasBeenSet = true; m_kmsMasterKeyId.assign(value); }
94 
95     /**
96      * <p>The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS
97      * key.</p>
98      */
WithKmsMasterKeyId(const Aws::String & value)99     inline AwsSqsQueueDetails& WithKmsMasterKeyId(const Aws::String& value) { SetKmsMasterKeyId(value); return *this;}
100 
101     /**
102      * <p>The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS
103      * key.</p>
104      */
WithKmsMasterKeyId(Aws::String && value)105     inline AwsSqsQueueDetails& WithKmsMasterKeyId(Aws::String&& value) { SetKmsMasterKeyId(std::move(value)); return *this;}
106 
107     /**
108      * <p>The ID of an Amazon Web Services managed key for Amazon SQS or a custom KMS
109      * key.</p>
110      */
WithKmsMasterKeyId(const char * value)111     inline AwsSqsQueueDetails& WithKmsMasterKeyId(const char* value) { SetKmsMasterKeyId(value); return *this;}
112 
113 
114     /**
115      * <p>The name of the new queue.</p>
116      */
GetQueueName()117     inline const Aws::String& GetQueueName() const{ return m_queueName; }
118 
119     /**
120      * <p>The name of the new queue.</p>
121      */
QueueNameHasBeenSet()122     inline bool QueueNameHasBeenSet() const { return m_queueNameHasBeenSet; }
123 
124     /**
125      * <p>The name of the new queue.</p>
126      */
SetQueueName(const Aws::String & value)127     inline void SetQueueName(const Aws::String& value) { m_queueNameHasBeenSet = true; m_queueName = value; }
128 
129     /**
130      * <p>The name of the new queue.</p>
131      */
SetQueueName(Aws::String && value)132     inline void SetQueueName(Aws::String&& value) { m_queueNameHasBeenSet = true; m_queueName = std::move(value); }
133 
134     /**
135      * <p>The name of the new queue.</p>
136      */
SetQueueName(const char * value)137     inline void SetQueueName(const char* value) { m_queueNameHasBeenSet = true; m_queueName.assign(value); }
138 
139     /**
140      * <p>The name of the new queue.</p>
141      */
WithQueueName(const Aws::String & value)142     inline AwsSqsQueueDetails& WithQueueName(const Aws::String& value) { SetQueueName(value); return *this;}
143 
144     /**
145      * <p>The name of the new queue.</p>
146      */
WithQueueName(Aws::String && value)147     inline AwsSqsQueueDetails& WithQueueName(Aws::String&& value) { SetQueueName(std::move(value)); return *this;}
148 
149     /**
150      * <p>The name of the new queue.</p>
151      */
WithQueueName(const char * value)152     inline AwsSqsQueueDetails& WithQueueName(const char* value) { SetQueueName(value); return *this;}
153 
154 
155     /**
156      * <p>The ARN of the dead-letter queue to which Amazon SQS moves messages after the
157      * value of <code>maxReceiveCount</code> is exceeded. </p>
158      */
GetDeadLetterTargetArn()159     inline const Aws::String& GetDeadLetterTargetArn() const{ return m_deadLetterTargetArn; }
160 
161     /**
162      * <p>The ARN of the dead-letter queue to which Amazon SQS moves messages after the
163      * value of <code>maxReceiveCount</code> is exceeded. </p>
164      */
DeadLetterTargetArnHasBeenSet()165     inline bool DeadLetterTargetArnHasBeenSet() const { return m_deadLetterTargetArnHasBeenSet; }
166 
167     /**
168      * <p>The ARN of the dead-letter queue to which Amazon SQS moves messages after the
169      * value of <code>maxReceiveCount</code> is exceeded. </p>
170      */
SetDeadLetterTargetArn(const Aws::String & value)171     inline void SetDeadLetterTargetArn(const Aws::String& value) { m_deadLetterTargetArnHasBeenSet = true; m_deadLetterTargetArn = value; }
172 
173     /**
174      * <p>The ARN of the dead-letter queue to which Amazon SQS moves messages after the
175      * value of <code>maxReceiveCount</code> is exceeded. </p>
176      */
SetDeadLetterTargetArn(Aws::String && value)177     inline void SetDeadLetterTargetArn(Aws::String&& value) { m_deadLetterTargetArnHasBeenSet = true; m_deadLetterTargetArn = std::move(value); }
178 
179     /**
180      * <p>The ARN of the dead-letter queue to which Amazon SQS moves messages after the
181      * value of <code>maxReceiveCount</code> is exceeded. </p>
182      */
SetDeadLetterTargetArn(const char * value)183     inline void SetDeadLetterTargetArn(const char* value) { m_deadLetterTargetArnHasBeenSet = true; m_deadLetterTargetArn.assign(value); }
184 
185     /**
186      * <p>The ARN of the dead-letter queue to which Amazon SQS moves messages after the
187      * value of <code>maxReceiveCount</code> is exceeded. </p>
188      */
WithDeadLetterTargetArn(const Aws::String & value)189     inline AwsSqsQueueDetails& WithDeadLetterTargetArn(const Aws::String& value) { SetDeadLetterTargetArn(value); return *this;}
190 
191     /**
192      * <p>The ARN of the dead-letter queue to which Amazon SQS moves messages after the
193      * value of <code>maxReceiveCount</code> is exceeded. </p>
194      */
WithDeadLetterTargetArn(Aws::String && value)195     inline AwsSqsQueueDetails& WithDeadLetterTargetArn(Aws::String&& value) { SetDeadLetterTargetArn(std::move(value)); return *this;}
196 
197     /**
198      * <p>The ARN of the dead-letter queue to which Amazon SQS moves messages after the
199      * value of <code>maxReceiveCount</code> is exceeded. </p>
200      */
WithDeadLetterTargetArn(const char * value)201     inline AwsSqsQueueDetails& WithDeadLetterTargetArn(const char* value) { SetDeadLetterTargetArn(value); return *this;}
202 
203   private:
204 
205     int m_kmsDataKeyReusePeriodSeconds;
206     bool m_kmsDataKeyReusePeriodSecondsHasBeenSet;
207 
208     Aws::String m_kmsMasterKeyId;
209     bool m_kmsMasterKeyIdHasBeenSet;
210 
211     Aws::String m_queueName;
212     bool m_queueNameHasBeenSet;
213 
214     Aws::String m_deadLetterTargetArn;
215     bool m_deadLetterTargetArnHasBeenSet;
216   };
217 
218 } // namespace Model
219 } // namespace SecurityHub
220 } // namespace Aws
221