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/route53/Route53_EXPORTS.h>
8 #include <aws/route53/Route53Request.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/route53/model/VPC.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Route53
16 {
17 namespace Model
18 {
19 
20   /**
21    * <p>A complex type that contains information about the request to associate a VPC
22    * with a private hosted zone.</p><p><h3>See Also:</h3>   <a
23    * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AssociateVPCWithHostedZoneRequest">AWS
24    * API Reference</a></p>
25    */
26   class AWS_ROUTE53_API AssociateVPCWithHostedZoneRequest : public Route53Request
27   {
28   public:
29     AssociateVPCWithHostedZoneRequest();
30 
31     // Service request name is the Operation name which will send this request out,
32     // each operation should has unique request name, so that we can get operation's name from this request.
33     // Note: this is not true for response, multiple operations may have the same response name,
34     // so we can not get operation's name from response.
GetServiceRequestName()35     inline virtual const char* GetServiceRequestName() const override { return "AssociateVPCWithHostedZone"; }
36 
37     Aws::String SerializePayload() const override;
38 
39 
40     /**
41      * <p>The ID of the private hosted zone that you want to associate an Amazon VPC
42      * with.</p> <p>Note that you can't associate a VPC with a hosted zone that doesn't
43      * have an existing VPC association.</p>
44      */
GetHostedZoneId()45     inline const Aws::String& GetHostedZoneId() const{ return m_hostedZoneId; }
46 
47     /**
48      * <p>The ID of the private hosted zone that you want to associate an Amazon VPC
49      * with.</p> <p>Note that you can't associate a VPC with a hosted zone that doesn't
50      * have an existing VPC association.</p>
51      */
HostedZoneIdHasBeenSet()52     inline bool HostedZoneIdHasBeenSet() const { return m_hostedZoneIdHasBeenSet; }
53 
54     /**
55      * <p>The ID of the private hosted zone that you want to associate an Amazon VPC
56      * with.</p> <p>Note that you can't associate a VPC with a hosted zone that doesn't
57      * have an existing VPC association.</p>
58      */
SetHostedZoneId(const Aws::String & value)59     inline void SetHostedZoneId(const Aws::String& value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId = value; }
60 
61     /**
62      * <p>The ID of the private hosted zone that you want to associate an Amazon VPC
63      * with.</p> <p>Note that you can't associate a VPC with a hosted zone that doesn't
64      * have an existing VPC association.</p>
65      */
SetHostedZoneId(Aws::String && value)66     inline void SetHostedZoneId(Aws::String&& value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId = std::move(value); }
67 
68     /**
69      * <p>The ID of the private hosted zone that you want to associate an Amazon VPC
70      * with.</p> <p>Note that you can't associate a VPC with a hosted zone that doesn't
71      * have an existing VPC association.</p>
72      */
SetHostedZoneId(const char * value)73     inline void SetHostedZoneId(const char* value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId.assign(value); }
74 
75     /**
76      * <p>The ID of the private hosted zone that you want to associate an Amazon VPC
77      * with.</p> <p>Note that you can't associate a VPC with a hosted zone that doesn't
78      * have an existing VPC association.</p>
79      */
WithHostedZoneId(const Aws::String & value)80     inline AssociateVPCWithHostedZoneRequest& WithHostedZoneId(const Aws::String& value) { SetHostedZoneId(value); return *this;}
81 
82     /**
83      * <p>The ID of the private hosted zone that you want to associate an Amazon VPC
84      * with.</p> <p>Note that you can't associate a VPC with a hosted zone that doesn't
85      * have an existing VPC association.</p>
86      */
WithHostedZoneId(Aws::String && value)87     inline AssociateVPCWithHostedZoneRequest& WithHostedZoneId(Aws::String&& value) { SetHostedZoneId(std::move(value)); return *this;}
88 
89     /**
90      * <p>The ID of the private hosted zone that you want to associate an Amazon VPC
91      * with.</p> <p>Note that you can't associate a VPC with a hosted zone that doesn't
92      * have an existing VPC association.</p>
93      */
WithHostedZoneId(const char * value)94     inline AssociateVPCWithHostedZoneRequest& WithHostedZoneId(const char* value) { SetHostedZoneId(value); return *this;}
95 
96 
97     /**
98      * <p>A complex type that contains information about the VPC that you want to
99      * associate with a private hosted zone.</p>
100      */
GetVPC()101     inline const VPC& GetVPC() const{ return m_vPC; }
102 
103     /**
104      * <p>A complex type that contains information about the VPC that you want to
105      * associate with a private hosted zone.</p>
106      */
VPCHasBeenSet()107     inline bool VPCHasBeenSet() const { return m_vPCHasBeenSet; }
108 
109     /**
110      * <p>A complex type that contains information about the VPC that you want to
111      * associate with a private hosted zone.</p>
112      */
SetVPC(const VPC & value)113     inline void SetVPC(const VPC& value) { m_vPCHasBeenSet = true; m_vPC = value; }
114 
115     /**
116      * <p>A complex type that contains information about the VPC that you want to
117      * associate with a private hosted zone.</p>
118      */
SetVPC(VPC && value)119     inline void SetVPC(VPC&& value) { m_vPCHasBeenSet = true; m_vPC = std::move(value); }
120 
121     /**
122      * <p>A complex type that contains information about the VPC that you want to
123      * associate with a private hosted zone.</p>
124      */
WithVPC(const VPC & value)125     inline AssociateVPCWithHostedZoneRequest& WithVPC(const VPC& value) { SetVPC(value); return *this;}
126 
127     /**
128      * <p>A complex type that contains information about the VPC that you want to
129      * associate with a private hosted zone.</p>
130      */
WithVPC(VPC && value)131     inline AssociateVPCWithHostedZoneRequest& WithVPC(VPC&& value) { SetVPC(std::move(value)); return *this;}
132 
133 
134     /**
135      * <p> <i>Optional:</i> A comment about the association request.</p>
136      */
GetComment()137     inline const Aws::String& GetComment() const{ return m_comment; }
138 
139     /**
140      * <p> <i>Optional:</i> A comment about the association request.</p>
141      */
CommentHasBeenSet()142     inline bool CommentHasBeenSet() const { return m_commentHasBeenSet; }
143 
144     /**
145      * <p> <i>Optional:</i> A comment about the association request.</p>
146      */
SetComment(const Aws::String & value)147     inline void SetComment(const Aws::String& value) { m_commentHasBeenSet = true; m_comment = value; }
148 
149     /**
150      * <p> <i>Optional:</i> A comment about the association request.</p>
151      */
SetComment(Aws::String && value)152     inline void SetComment(Aws::String&& value) { m_commentHasBeenSet = true; m_comment = std::move(value); }
153 
154     /**
155      * <p> <i>Optional:</i> A comment about the association request.</p>
156      */
SetComment(const char * value)157     inline void SetComment(const char* value) { m_commentHasBeenSet = true; m_comment.assign(value); }
158 
159     /**
160      * <p> <i>Optional:</i> A comment about the association request.</p>
161      */
WithComment(const Aws::String & value)162     inline AssociateVPCWithHostedZoneRequest& WithComment(const Aws::String& value) { SetComment(value); return *this;}
163 
164     /**
165      * <p> <i>Optional:</i> A comment about the association request.</p>
166      */
WithComment(Aws::String && value)167     inline AssociateVPCWithHostedZoneRequest& WithComment(Aws::String&& value) { SetComment(std::move(value)); return *this;}
168 
169     /**
170      * <p> <i>Optional:</i> A comment about the association request.</p>
171      */
WithComment(const char * value)172     inline AssociateVPCWithHostedZoneRequest& WithComment(const char* value) { SetComment(value); return *this;}
173 
174   private:
175 
176     Aws::String m_hostedZoneId;
177     bool m_hostedZoneIdHasBeenSet;
178 
179     VPC m_vPC;
180     bool m_vPCHasBeenSet;
181 
182     Aws::String m_comment;
183     bool m_commentHasBeenSet;
184   };
185 
186 } // namespace Model
187 } // namespace Route53
188 } // namespace Aws
189