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/servicediscovery/model/SOA.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 ServiceDiscovery
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>DNS properties for the public DNS namespace.</p><p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/PublicDnsPropertiesMutable">AWS
29    * API Reference</a></p>
30    */
31   class AWS_SERVICEDISCOVERY_API PublicDnsPropertiesMutable
32   {
33   public:
34     PublicDnsPropertiesMutable();
35     PublicDnsPropertiesMutable(Aws::Utils::Json::JsonView jsonValue);
36     PublicDnsPropertiesMutable& operator=(Aws::Utils::Json::JsonView jsonValue);
37     Aws::Utils::Json::JsonValue Jsonize() const;
38 
39 
40     /**
41      * <p>Start of Authority (SOA) record for the hosted zone for the public DNS
42      * namespace.</p>
43      */
GetSOA()44     inline const SOA& GetSOA() const{ return m_sOA; }
45 
46     /**
47      * <p>Start of Authority (SOA) record for the hosted zone for the public DNS
48      * namespace.</p>
49      */
SOAHasBeenSet()50     inline bool SOAHasBeenSet() const { return m_sOAHasBeenSet; }
51 
52     /**
53      * <p>Start of Authority (SOA) record for the hosted zone for the public DNS
54      * namespace.</p>
55      */
SetSOA(const SOA & value)56     inline void SetSOA(const SOA& value) { m_sOAHasBeenSet = true; m_sOA = value; }
57 
58     /**
59      * <p>Start of Authority (SOA) record for the hosted zone for the public DNS
60      * namespace.</p>
61      */
SetSOA(SOA && value)62     inline void SetSOA(SOA&& value) { m_sOAHasBeenSet = true; m_sOA = std::move(value); }
63 
64     /**
65      * <p>Start of Authority (SOA) record for the hosted zone for the public DNS
66      * namespace.</p>
67      */
WithSOA(const SOA & value)68     inline PublicDnsPropertiesMutable& WithSOA(const SOA& value) { SetSOA(value); return *this;}
69 
70     /**
71      * <p>Start of Authority (SOA) record for the hosted zone for the public DNS
72      * namespace.</p>
73      */
WithSOA(SOA && value)74     inline PublicDnsPropertiesMutable& WithSOA(SOA&& value) { SetSOA(std::move(value)); return *this;}
75 
76   private:
77 
78     SOA m_sOA;
79     bool m_sOAHasBeenSet;
80   };
81 
82 } // namespace Model
83 } // namespace ServiceDiscovery
84 } // namespace Aws
85