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/es/ElasticsearchService_EXPORTS.h>
8 #include <aws/es/model/DomainInformation.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/es/model/InboundCrossClusterSearchConnectionStatus.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace ElasticsearchService
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Specifies details of an inbound connection.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/es-2015-01-01/InboundCrossClusterSearchConnection">AWS
31    * API Reference</a></p>
32    */
33   class AWS_ELASTICSEARCHSERVICE_API InboundCrossClusterSearchConnection
34   {
35   public:
36     InboundCrossClusterSearchConnection();
37     InboundCrossClusterSearchConnection(Aws::Utils::Json::JsonView jsonValue);
38     InboundCrossClusterSearchConnection& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>Specifies the <code><a>DomainInformation</a></code> for the source
44      * Elasticsearch domain.</p>
45      */
GetSourceDomainInfo()46     inline const DomainInformation& GetSourceDomainInfo() const{ return m_sourceDomainInfo; }
47 
48     /**
49      * <p>Specifies the <code><a>DomainInformation</a></code> for the source
50      * Elasticsearch domain.</p>
51      */
SourceDomainInfoHasBeenSet()52     inline bool SourceDomainInfoHasBeenSet() const { return m_sourceDomainInfoHasBeenSet; }
53 
54     /**
55      * <p>Specifies the <code><a>DomainInformation</a></code> for the source
56      * Elasticsearch domain.</p>
57      */
SetSourceDomainInfo(const DomainInformation & value)58     inline void SetSourceDomainInfo(const DomainInformation& value) { m_sourceDomainInfoHasBeenSet = true; m_sourceDomainInfo = value; }
59 
60     /**
61      * <p>Specifies the <code><a>DomainInformation</a></code> for the source
62      * Elasticsearch domain.</p>
63      */
SetSourceDomainInfo(DomainInformation && value)64     inline void SetSourceDomainInfo(DomainInformation&& value) { m_sourceDomainInfoHasBeenSet = true; m_sourceDomainInfo = std::move(value); }
65 
66     /**
67      * <p>Specifies the <code><a>DomainInformation</a></code> for the source
68      * Elasticsearch domain.</p>
69      */
WithSourceDomainInfo(const DomainInformation & value)70     inline InboundCrossClusterSearchConnection& WithSourceDomainInfo(const DomainInformation& value) { SetSourceDomainInfo(value); return *this;}
71 
72     /**
73      * <p>Specifies the <code><a>DomainInformation</a></code> for the source
74      * Elasticsearch domain.</p>
75      */
WithSourceDomainInfo(DomainInformation && value)76     inline InboundCrossClusterSearchConnection& WithSourceDomainInfo(DomainInformation&& value) { SetSourceDomainInfo(std::move(value)); return *this;}
77 
78 
79     /**
80      * <p>Specifies the <code><a>DomainInformation</a></code> for the destination
81      * Elasticsearch domain.</p>
82      */
GetDestinationDomainInfo()83     inline const DomainInformation& GetDestinationDomainInfo() const{ return m_destinationDomainInfo; }
84 
85     /**
86      * <p>Specifies the <code><a>DomainInformation</a></code> for the destination
87      * Elasticsearch domain.</p>
88      */
DestinationDomainInfoHasBeenSet()89     inline bool DestinationDomainInfoHasBeenSet() const { return m_destinationDomainInfoHasBeenSet; }
90 
91     /**
92      * <p>Specifies the <code><a>DomainInformation</a></code> for the destination
93      * Elasticsearch domain.</p>
94      */
SetDestinationDomainInfo(const DomainInformation & value)95     inline void SetDestinationDomainInfo(const DomainInformation& value) { m_destinationDomainInfoHasBeenSet = true; m_destinationDomainInfo = value; }
96 
97     /**
98      * <p>Specifies the <code><a>DomainInformation</a></code> for the destination
99      * Elasticsearch domain.</p>
100      */
SetDestinationDomainInfo(DomainInformation && value)101     inline void SetDestinationDomainInfo(DomainInformation&& value) { m_destinationDomainInfoHasBeenSet = true; m_destinationDomainInfo = std::move(value); }
102 
103     /**
104      * <p>Specifies the <code><a>DomainInformation</a></code> for the destination
105      * Elasticsearch domain.</p>
106      */
WithDestinationDomainInfo(const DomainInformation & value)107     inline InboundCrossClusterSearchConnection& WithDestinationDomainInfo(const DomainInformation& value) { SetDestinationDomainInfo(value); return *this;}
108 
109     /**
110      * <p>Specifies the <code><a>DomainInformation</a></code> for the destination
111      * Elasticsearch domain.</p>
112      */
WithDestinationDomainInfo(DomainInformation && value)113     inline InboundCrossClusterSearchConnection& WithDestinationDomainInfo(DomainInformation&& value) { SetDestinationDomainInfo(std::move(value)); return *this;}
114 
115 
116     /**
117      * <p>Specifies the connection id for the inbound cross-cluster search
118      * connection.</p>
119      */
GetCrossClusterSearchConnectionId()120     inline const Aws::String& GetCrossClusterSearchConnectionId() const{ return m_crossClusterSearchConnectionId; }
121 
122     /**
123      * <p>Specifies the connection id for the inbound cross-cluster search
124      * connection.</p>
125      */
CrossClusterSearchConnectionIdHasBeenSet()126     inline bool CrossClusterSearchConnectionIdHasBeenSet() const { return m_crossClusterSearchConnectionIdHasBeenSet; }
127 
128     /**
129      * <p>Specifies the connection id for the inbound cross-cluster search
130      * connection.</p>
131      */
SetCrossClusterSearchConnectionId(const Aws::String & value)132     inline void SetCrossClusterSearchConnectionId(const Aws::String& value) { m_crossClusterSearchConnectionIdHasBeenSet = true; m_crossClusterSearchConnectionId = value; }
133 
134     /**
135      * <p>Specifies the connection id for the inbound cross-cluster search
136      * connection.</p>
137      */
SetCrossClusterSearchConnectionId(Aws::String && value)138     inline void SetCrossClusterSearchConnectionId(Aws::String&& value) { m_crossClusterSearchConnectionIdHasBeenSet = true; m_crossClusterSearchConnectionId = std::move(value); }
139 
140     /**
141      * <p>Specifies the connection id for the inbound cross-cluster search
142      * connection.</p>
143      */
SetCrossClusterSearchConnectionId(const char * value)144     inline void SetCrossClusterSearchConnectionId(const char* value) { m_crossClusterSearchConnectionIdHasBeenSet = true; m_crossClusterSearchConnectionId.assign(value); }
145 
146     /**
147      * <p>Specifies the connection id for the inbound cross-cluster search
148      * connection.</p>
149      */
WithCrossClusterSearchConnectionId(const Aws::String & value)150     inline InboundCrossClusterSearchConnection& WithCrossClusterSearchConnectionId(const Aws::String& value) { SetCrossClusterSearchConnectionId(value); return *this;}
151 
152     /**
153      * <p>Specifies the connection id for the inbound cross-cluster search
154      * connection.</p>
155      */
WithCrossClusterSearchConnectionId(Aws::String && value)156     inline InboundCrossClusterSearchConnection& WithCrossClusterSearchConnectionId(Aws::String&& value) { SetCrossClusterSearchConnectionId(std::move(value)); return *this;}
157 
158     /**
159      * <p>Specifies the connection id for the inbound cross-cluster search
160      * connection.</p>
161      */
WithCrossClusterSearchConnectionId(const char * value)162     inline InboundCrossClusterSearchConnection& WithCrossClusterSearchConnectionId(const char* value) { SetCrossClusterSearchConnectionId(value); return *this;}
163 
164 
165     /**
166      * <p>Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code>
167      * for the outbound connection.</p>
168      */
GetConnectionStatus()169     inline const InboundCrossClusterSearchConnectionStatus& GetConnectionStatus() const{ return m_connectionStatus; }
170 
171     /**
172      * <p>Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code>
173      * for the outbound connection.</p>
174      */
ConnectionStatusHasBeenSet()175     inline bool ConnectionStatusHasBeenSet() const { return m_connectionStatusHasBeenSet; }
176 
177     /**
178      * <p>Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code>
179      * for the outbound connection.</p>
180      */
SetConnectionStatus(const InboundCrossClusterSearchConnectionStatus & value)181     inline void SetConnectionStatus(const InboundCrossClusterSearchConnectionStatus& value) { m_connectionStatusHasBeenSet = true; m_connectionStatus = value; }
182 
183     /**
184      * <p>Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code>
185      * for the outbound connection.</p>
186      */
SetConnectionStatus(InboundCrossClusterSearchConnectionStatus && value)187     inline void SetConnectionStatus(InboundCrossClusterSearchConnectionStatus&& value) { m_connectionStatusHasBeenSet = true; m_connectionStatus = std::move(value); }
188 
189     /**
190      * <p>Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code>
191      * for the outbound connection.</p>
192      */
WithConnectionStatus(const InboundCrossClusterSearchConnectionStatus & value)193     inline InboundCrossClusterSearchConnection& WithConnectionStatus(const InboundCrossClusterSearchConnectionStatus& value) { SetConnectionStatus(value); return *this;}
194 
195     /**
196      * <p>Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code>
197      * for the outbound connection.</p>
198      */
WithConnectionStatus(InboundCrossClusterSearchConnectionStatus && value)199     inline InboundCrossClusterSearchConnection& WithConnectionStatus(InboundCrossClusterSearchConnectionStatus&& value) { SetConnectionStatus(std::move(value)); return *this;}
200 
201   private:
202 
203     DomainInformation m_sourceDomainInfo;
204     bool m_sourceDomainInfoHasBeenSet;
205 
206     DomainInformation m_destinationDomainInfo;
207     bool m_destinationDomainInfoHasBeenSet;
208 
209     Aws::String m_crossClusterSearchConnectionId;
210     bool m_crossClusterSearchConnectionIdHasBeenSet;
211 
212     InboundCrossClusterSearchConnectionStatus m_connectionStatus;
213     bool m_connectionStatusHasBeenSet;
214   };
215 
216 } // namespace Model
217 } // namespace ElasticsearchService
218 } // namespace Aws
219