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/AWSString.h>
9 #include <aws/servicediscovery/model/SOA.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 the ID for the Route 53 hosted zone that Cloud
29    * Map creates when you create a namespace.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DnsProperties">AWS
31    * API Reference</a></p>
32    */
33   class AWS_SERVICEDISCOVERY_API DnsProperties
34   {
35   public:
36     DnsProperties();
37     DnsProperties(Aws::Utils::Json::JsonView jsonValue);
38     DnsProperties& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The ID for the Route 53 hosted zone that Cloud Map creates when you create a
44      * namespace.</p>
45      */
GetHostedZoneId()46     inline const Aws::String& GetHostedZoneId() const{ return m_hostedZoneId; }
47 
48     /**
49      * <p>The ID for the Route 53 hosted zone that Cloud Map creates when you create a
50      * namespace.</p>
51      */
HostedZoneIdHasBeenSet()52     inline bool HostedZoneIdHasBeenSet() const { return m_hostedZoneIdHasBeenSet; }
53 
54     /**
55      * <p>The ID for the Route 53 hosted zone that Cloud Map creates when you create a
56      * namespace.</p>
57      */
SetHostedZoneId(const Aws::String & value)58     inline void SetHostedZoneId(const Aws::String& value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId = value; }
59 
60     /**
61      * <p>The ID for the Route 53 hosted zone that Cloud Map creates when you create a
62      * namespace.</p>
63      */
SetHostedZoneId(Aws::String && value)64     inline void SetHostedZoneId(Aws::String&& value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId = std::move(value); }
65 
66     /**
67      * <p>The ID for the Route 53 hosted zone that Cloud Map creates when you create a
68      * namespace.</p>
69      */
SetHostedZoneId(const char * value)70     inline void SetHostedZoneId(const char* value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId.assign(value); }
71 
72     /**
73      * <p>The ID for the Route 53 hosted zone that Cloud Map creates when you create a
74      * namespace.</p>
75      */
WithHostedZoneId(const Aws::String & value)76     inline DnsProperties& WithHostedZoneId(const Aws::String& value) { SetHostedZoneId(value); return *this;}
77 
78     /**
79      * <p>The ID for the Route 53 hosted zone that Cloud Map creates when you create a
80      * namespace.</p>
81      */
WithHostedZoneId(Aws::String && value)82     inline DnsProperties& WithHostedZoneId(Aws::String&& value) { SetHostedZoneId(std::move(value)); return *this;}
83 
84     /**
85      * <p>The ID for the Route 53 hosted zone that Cloud Map creates when you create a
86      * namespace.</p>
87      */
WithHostedZoneId(const char * value)88     inline DnsProperties& WithHostedZoneId(const char* value) { SetHostedZoneId(value); return *this;}
89 
90 
91     /**
92      * <p>Start of Authority (SOA) record for the hosted zone.</p>
93      */
GetSOA()94     inline const SOA& GetSOA() const{ return m_sOA; }
95 
96     /**
97      * <p>Start of Authority (SOA) record for the hosted zone.</p>
98      */
SOAHasBeenSet()99     inline bool SOAHasBeenSet() const { return m_sOAHasBeenSet; }
100 
101     /**
102      * <p>Start of Authority (SOA) record for the hosted zone.</p>
103      */
SetSOA(const SOA & value)104     inline void SetSOA(const SOA& value) { m_sOAHasBeenSet = true; m_sOA = value; }
105 
106     /**
107      * <p>Start of Authority (SOA) record for the hosted zone.</p>
108      */
SetSOA(SOA && value)109     inline void SetSOA(SOA&& value) { m_sOAHasBeenSet = true; m_sOA = std::move(value); }
110 
111     /**
112      * <p>Start of Authority (SOA) record for the hosted zone.</p>
113      */
WithSOA(const SOA & value)114     inline DnsProperties& WithSOA(const SOA& value) { SetSOA(value); return *this;}
115 
116     /**
117      * <p>Start of Authority (SOA) record for the hosted zone.</p>
118      */
WithSOA(SOA && value)119     inline DnsProperties& WithSOA(SOA&& value) { SetSOA(std::move(value)); return *this;}
120 
121   private:
122 
123     Aws::String m_hostedZoneId;
124     bool m_hostedZoneIdHasBeenSet;
125 
126     SOA m_sOA;
127     bool m_sOAHasBeenSet;
128   };
129 
130 } // namespace Model
131 } // namespace ServiceDiscovery
132 } // namespace Aws
133