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/servicediscovery/ServiceDiscovery_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/servicediscovery/model/DnsRecord.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace ServiceDiscovery
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>A complex type that contains information about changes to the Route 53 DNS
29    * records that Cloud Map creates when you register an instance.</p><p><h3>See
30    * Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DnsConfigChange">AWS
32    * API Reference</a></p>
33    */
34   class AWS_SERVICEDISCOVERY_API DnsConfigChange
35   {
36   public:
37     DnsConfigChange();
38     DnsConfigChange(Aws::Utils::Json::JsonView jsonValue);
39     DnsConfigChange& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>An array that contains one <code>DnsRecord</code> object for each Route 53
45      * record that you want Cloud Map to create when you register an instance.</p>
46      */
GetDnsRecords()47     inline const Aws::Vector<DnsRecord>& GetDnsRecords() const{ return m_dnsRecords; }
48 
49     /**
50      * <p>An array that contains one <code>DnsRecord</code> object for each Route 53
51      * record that you want Cloud Map to create when you register an instance.</p>
52      */
DnsRecordsHasBeenSet()53     inline bool DnsRecordsHasBeenSet() const { return m_dnsRecordsHasBeenSet; }
54 
55     /**
56      * <p>An array that contains one <code>DnsRecord</code> object for each Route 53
57      * record that you want Cloud Map to create when you register an instance.</p>
58      */
SetDnsRecords(const Aws::Vector<DnsRecord> & value)59     inline void SetDnsRecords(const Aws::Vector<DnsRecord>& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords = value; }
60 
61     /**
62      * <p>An array that contains one <code>DnsRecord</code> object for each Route 53
63      * record that you want Cloud Map to create when you register an instance.</p>
64      */
SetDnsRecords(Aws::Vector<DnsRecord> && value)65     inline void SetDnsRecords(Aws::Vector<DnsRecord>&& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords = std::move(value); }
66 
67     /**
68      * <p>An array that contains one <code>DnsRecord</code> object for each Route 53
69      * record that you want Cloud Map to create when you register an instance.</p>
70      */
WithDnsRecords(const Aws::Vector<DnsRecord> & value)71     inline DnsConfigChange& WithDnsRecords(const Aws::Vector<DnsRecord>& value) { SetDnsRecords(value); return *this;}
72 
73     /**
74      * <p>An array that contains one <code>DnsRecord</code> object for each Route 53
75      * record that you want Cloud Map to create when you register an instance.</p>
76      */
WithDnsRecords(Aws::Vector<DnsRecord> && value)77     inline DnsConfigChange& WithDnsRecords(Aws::Vector<DnsRecord>&& value) { SetDnsRecords(std::move(value)); return *this;}
78 
79     /**
80      * <p>An array that contains one <code>DnsRecord</code> object for each Route 53
81      * record that you want Cloud Map to create when you register an instance.</p>
82      */
AddDnsRecords(const DnsRecord & value)83     inline DnsConfigChange& AddDnsRecords(const DnsRecord& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords.push_back(value); return *this; }
84 
85     /**
86      * <p>An array that contains one <code>DnsRecord</code> object for each Route 53
87      * record that you want Cloud Map to create when you register an instance.</p>
88      */
AddDnsRecords(DnsRecord && value)89     inline DnsConfigChange& AddDnsRecords(DnsRecord&& value) { m_dnsRecordsHasBeenSet = true; m_dnsRecords.push_back(std::move(value)); return *this; }
90 
91   private:
92 
93     Aws::Vector<DnsRecord> m_dnsRecords;
94     bool m_dnsRecordsHasBeenSet;
95   };
96 
97 } // namespace Model
98 } // namespace ServiceDiscovery
99 } // namespace Aws
100