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/s3-crt/S3Crt_EXPORTS.h>
8 #include <aws/s3-crt/model/AnalyticsS3ExportFileFormat.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Xml
17 {
18   class XmlNode;
19 } // namespace Xml
20 } // namespace Utils
21 namespace S3Crt
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Contains information about where to publish the analytics
28    * results.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsS3BucketDestination">AWS
30    * API Reference</a></p>
31    */
32   class AWS_S3CRT_API AnalyticsS3BucketDestination
33   {
34   public:
35     AnalyticsS3BucketDestination();
36     AnalyticsS3BucketDestination(const Aws::Utils::Xml::XmlNode& xmlNode);
37     AnalyticsS3BucketDestination& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
38 
39     void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const;
40 
41 
42     /**
43      * <p>Specifies the file format used when exporting data to Amazon S3.</p>
44      */
GetFormat()45     inline const AnalyticsS3ExportFileFormat& GetFormat() const{ return m_format; }
46 
47     /**
48      * <p>Specifies the file format used when exporting data to Amazon S3.</p>
49      */
FormatHasBeenSet()50     inline bool FormatHasBeenSet() const { return m_formatHasBeenSet; }
51 
52     /**
53      * <p>Specifies the file format used when exporting data to Amazon S3.</p>
54      */
SetFormat(const AnalyticsS3ExportFileFormat & value)55     inline void SetFormat(const AnalyticsS3ExportFileFormat& value) { m_formatHasBeenSet = true; m_format = value; }
56 
57     /**
58      * <p>Specifies the file format used when exporting data to Amazon S3.</p>
59      */
SetFormat(AnalyticsS3ExportFileFormat && value)60     inline void SetFormat(AnalyticsS3ExportFileFormat&& value) { m_formatHasBeenSet = true; m_format = std::move(value); }
61 
62     /**
63      * <p>Specifies the file format used when exporting data to Amazon S3.</p>
64      */
WithFormat(const AnalyticsS3ExportFileFormat & value)65     inline AnalyticsS3BucketDestination& WithFormat(const AnalyticsS3ExportFileFormat& value) { SetFormat(value); return *this;}
66 
67     /**
68      * <p>Specifies the file format used when exporting data to Amazon S3.</p>
69      */
WithFormat(AnalyticsS3ExportFileFormat && value)70     inline AnalyticsS3BucketDestination& WithFormat(AnalyticsS3ExportFileFormat&& value) { SetFormat(std::move(value)); return *this;}
71 
72 
73     /**
74      * <p>The account ID that owns the destination S3 bucket. If no account ID is
75      * provided, the owner is not validated before exporting data.</p>  <p>
76      * Although this value is optional, we strongly recommend that you set it to help
77      * prevent problems if the destination bucket ownership changes. </p>
78      */
GetBucketAccountId()79     inline const Aws::String& GetBucketAccountId() const{ return m_bucketAccountId; }
80 
81     /**
82      * <p>The account ID that owns the destination S3 bucket. If no account ID is
83      * provided, the owner is not validated before exporting data.</p>  <p>
84      * Although this value is optional, we strongly recommend that you set it to help
85      * prevent problems if the destination bucket ownership changes. </p>
86      */
BucketAccountIdHasBeenSet()87     inline bool BucketAccountIdHasBeenSet() const { return m_bucketAccountIdHasBeenSet; }
88 
89     /**
90      * <p>The account ID that owns the destination S3 bucket. If no account ID is
91      * provided, the owner is not validated before exporting data.</p>  <p>
92      * Although this value is optional, we strongly recommend that you set it to help
93      * prevent problems if the destination bucket ownership changes. </p>
94      */
SetBucketAccountId(const Aws::String & value)95     inline void SetBucketAccountId(const Aws::String& value) { m_bucketAccountIdHasBeenSet = true; m_bucketAccountId = value; }
96 
97     /**
98      * <p>The account ID that owns the destination S3 bucket. If no account ID is
99      * provided, the owner is not validated before exporting data.</p>  <p>
100      * Although this value is optional, we strongly recommend that you set it to help
101      * prevent problems if the destination bucket ownership changes. </p>
102      */
SetBucketAccountId(Aws::String && value)103     inline void SetBucketAccountId(Aws::String&& value) { m_bucketAccountIdHasBeenSet = true; m_bucketAccountId = std::move(value); }
104 
105     /**
106      * <p>The account ID that owns the destination S3 bucket. If no account ID is
107      * provided, the owner is not validated before exporting data.</p>  <p>
108      * Although this value is optional, we strongly recommend that you set it to help
109      * prevent problems if the destination bucket ownership changes. </p>
110      */
SetBucketAccountId(const char * value)111     inline void SetBucketAccountId(const char* value) { m_bucketAccountIdHasBeenSet = true; m_bucketAccountId.assign(value); }
112 
113     /**
114      * <p>The account ID that owns the destination S3 bucket. If no account ID is
115      * provided, the owner is not validated before exporting data.</p>  <p>
116      * Although this value is optional, we strongly recommend that you set it to help
117      * prevent problems if the destination bucket ownership changes. </p>
118      */
WithBucketAccountId(const Aws::String & value)119     inline AnalyticsS3BucketDestination& WithBucketAccountId(const Aws::String& value) { SetBucketAccountId(value); return *this;}
120 
121     /**
122      * <p>The account ID that owns the destination S3 bucket. If no account ID is
123      * provided, the owner is not validated before exporting data.</p>  <p>
124      * Although this value is optional, we strongly recommend that you set it to help
125      * prevent problems if the destination bucket ownership changes. </p>
126      */
WithBucketAccountId(Aws::String && value)127     inline AnalyticsS3BucketDestination& WithBucketAccountId(Aws::String&& value) { SetBucketAccountId(std::move(value)); return *this;}
128 
129     /**
130      * <p>The account ID that owns the destination S3 bucket. If no account ID is
131      * provided, the owner is not validated before exporting data.</p>  <p>
132      * Although this value is optional, we strongly recommend that you set it to help
133      * prevent problems if the destination bucket ownership changes. </p>
134      */
WithBucketAccountId(const char * value)135     inline AnalyticsS3BucketDestination& WithBucketAccountId(const char* value) { SetBucketAccountId(value); return *this;}
136 
137 
138     /**
139      * <p>The Amazon Resource Name (ARN) of the bucket to which data is exported.</p>
140      */
GetBucket()141     inline const Aws::String& GetBucket() const{ return m_bucket; }
142 
143     /**
144      * <p>The Amazon Resource Name (ARN) of the bucket to which data is exported.</p>
145      */
BucketHasBeenSet()146     inline bool BucketHasBeenSet() const { return m_bucketHasBeenSet; }
147 
148     /**
149      * <p>The Amazon Resource Name (ARN) of the bucket to which data is exported.</p>
150      */
SetBucket(const Aws::String & value)151     inline void SetBucket(const Aws::String& value) { m_bucketHasBeenSet = true; m_bucket = value; }
152 
153     /**
154      * <p>The Amazon Resource Name (ARN) of the bucket to which data is exported.</p>
155      */
SetBucket(Aws::String && value)156     inline void SetBucket(Aws::String&& value) { m_bucketHasBeenSet = true; m_bucket = std::move(value); }
157 
158     /**
159      * <p>The Amazon Resource Name (ARN) of the bucket to which data is exported.</p>
160      */
SetBucket(const char * value)161     inline void SetBucket(const char* value) { m_bucketHasBeenSet = true; m_bucket.assign(value); }
162 
163     /**
164      * <p>The Amazon Resource Name (ARN) of the bucket to which data is exported.</p>
165      */
WithBucket(const Aws::String & value)166     inline AnalyticsS3BucketDestination& WithBucket(const Aws::String& value) { SetBucket(value); return *this;}
167 
168     /**
169      * <p>The Amazon Resource Name (ARN) of the bucket to which data is exported.</p>
170      */
WithBucket(Aws::String && value)171     inline AnalyticsS3BucketDestination& WithBucket(Aws::String&& value) { SetBucket(std::move(value)); return *this;}
172 
173     /**
174      * <p>The Amazon Resource Name (ARN) of the bucket to which data is exported.</p>
175      */
WithBucket(const char * value)176     inline AnalyticsS3BucketDestination& WithBucket(const char* value) { SetBucket(value); return *this;}
177 
178 
179     /**
180      * <p>The prefix to use when exporting data. The prefix is prepended to all
181      * results.</p>
182      */
GetPrefix()183     inline const Aws::String& GetPrefix() const{ return m_prefix; }
184 
185     /**
186      * <p>The prefix to use when exporting data. The prefix is prepended to all
187      * results.</p>
188      */
PrefixHasBeenSet()189     inline bool PrefixHasBeenSet() const { return m_prefixHasBeenSet; }
190 
191     /**
192      * <p>The prefix to use when exporting data. The prefix is prepended to all
193      * results.</p>
194      */
SetPrefix(const Aws::String & value)195     inline void SetPrefix(const Aws::String& value) { m_prefixHasBeenSet = true; m_prefix = value; }
196 
197     /**
198      * <p>The prefix to use when exporting data. The prefix is prepended to all
199      * results.</p>
200      */
SetPrefix(Aws::String && value)201     inline void SetPrefix(Aws::String&& value) { m_prefixHasBeenSet = true; m_prefix = std::move(value); }
202 
203     /**
204      * <p>The prefix to use when exporting data. The prefix is prepended to all
205      * results.</p>
206      */
SetPrefix(const char * value)207     inline void SetPrefix(const char* value) { m_prefixHasBeenSet = true; m_prefix.assign(value); }
208 
209     /**
210      * <p>The prefix to use when exporting data. The prefix is prepended to all
211      * results.</p>
212      */
WithPrefix(const Aws::String & value)213     inline AnalyticsS3BucketDestination& WithPrefix(const Aws::String& value) { SetPrefix(value); return *this;}
214 
215     /**
216      * <p>The prefix to use when exporting data. The prefix is prepended to all
217      * results.</p>
218      */
WithPrefix(Aws::String && value)219     inline AnalyticsS3BucketDestination& WithPrefix(Aws::String&& value) { SetPrefix(std::move(value)); return *this;}
220 
221     /**
222      * <p>The prefix to use when exporting data. The prefix is prepended to all
223      * results.</p>
224      */
WithPrefix(const char * value)225     inline AnalyticsS3BucketDestination& WithPrefix(const char* value) { SetPrefix(value); return *this;}
226 
227   private:
228 
229     AnalyticsS3ExportFileFormat m_format;
230     bool m_formatHasBeenSet;
231 
232     Aws::String m_bucketAccountId;
233     bool m_bucketAccountIdHasBeenSet;
234 
235     Aws::String m_bucket;
236     bool m_bucketHasBeenSet;
237 
238     Aws::String m_prefix;
239     bool m_prefixHasBeenSet;
240   };
241 
242 } // namespace Model
243 } // namespace S3Crt
244 } // namespace Aws
245