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/S3Location.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Xml
16 {
17   class XmlNode;
18 } // namespace Xml
19 } // namespace Utils
20 namespace S3Crt
21 {
22 namespace Model
23 {
24 
25   /**
26    * <p>Describes the location where the restore job's output is
27    * stored.</p><p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OutputLocation">AWS
29    * API Reference</a></p>
30    */
31   class AWS_S3CRT_API OutputLocation
32   {
33   public:
34     OutputLocation();
35     OutputLocation(const Aws::Utils::Xml::XmlNode& xmlNode);
36     OutputLocation& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
37 
38     void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const;
39 
40 
41     /**
42      * <p>Describes an S3 location that will receive the results of the restore
43      * request.</p>
44      */
GetS3()45     inline const S3Location& GetS3() const{ return m_s3; }
46 
47     /**
48      * <p>Describes an S3 location that will receive the results of the restore
49      * request.</p>
50      */
S3HasBeenSet()51     inline bool S3HasBeenSet() const { return m_s3HasBeenSet; }
52 
53     /**
54      * <p>Describes an S3 location that will receive the results of the restore
55      * request.</p>
56      */
SetS3(const S3Location & value)57     inline void SetS3(const S3Location& value) { m_s3HasBeenSet = true; m_s3 = value; }
58 
59     /**
60      * <p>Describes an S3 location that will receive the results of the restore
61      * request.</p>
62      */
SetS3(S3Location && value)63     inline void SetS3(S3Location&& value) { m_s3HasBeenSet = true; m_s3 = std::move(value); }
64 
65     /**
66      * <p>Describes an S3 location that will receive the results of the restore
67      * request.</p>
68      */
WithS3(const S3Location & value)69     inline OutputLocation& WithS3(const S3Location& value) { SetS3(value); return *this;}
70 
71     /**
72      * <p>Describes an S3 location that will receive the results of the restore
73      * request.</p>
74      */
WithS3(S3Location && value)75     inline OutputLocation& WithS3(S3Location&& value) { SetS3(std::move(value)); return *this;}
76 
77   private:
78 
79     S3Location m_s3;
80     bool m_s3HasBeenSet;
81   };
82 
83 } // namespace Model
84 } // namespace S3Crt
85 } // namespace Aws
86