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/globalaccelerator/GlobalAccelerator_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/globalaccelerator/model/ByoipCidrState.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/globalaccelerator/model/ByoipCidrEvent.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace GlobalAccelerator
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Information about an IP address range that is provisioned for use with your
31    * AWS resources through bring your own IP address (BYOIP).</p> <p>The following
32    * describes each BYOIP <code>State</code> that your IP address range can be
33    * in.</p> <ul> <li> <p> <b>PENDING_PROVISIONING</b> — You’ve submitted a request
34    * to provision an IP address range but it is not yet provisioned with AWS Global
35    * Accelerator.</p> </li> <li> <p> <b>READY</b> — The address range is provisioned
36    * with AWS Global Accelerator and can be advertised.</p> </li> <li> <p>
37    * <b>PENDING_ADVERTISING</b> — You’ve submitted a request for AWS Global
38    * Accelerator to advertise an address range but it is not yet being
39    * advertised.</p> </li> <li> <p> <b>ADVERTISING</b> — The address range is being
40    * advertised by AWS Global Accelerator.</p> </li> <li> <p>
41    * <b>PENDING_WITHDRAWING</b> — You’ve submitted a request to withdraw an address
42    * range from being advertised but it is still being advertised by AWS Global
43    * Accelerator.</p> </li> <li> <p> <b>PENDING_DEPROVISIONING</b> — You’ve submitted
44    * a request to deprovision an address range from AWS Global Accelerator but it is
45    * still provisioned.</p> </li> <li> <p> <b>DEPROVISIONED</b> — The address range
46    * is deprovisioned from AWS Global Accelerator.</p> </li> <li> <p>
47    * <b>FAILED_PROVISION </b> — The request to provision the address range from AWS
48    * Global Accelerator was not successful. Please make sure that you provide all of
49    * the correct information, and try again. If the request fails a second time,
50    * contact AWS support.</p> </li> <li> <p> <b>FAILED_ADVERTISING</b> — The request
51    * for AWS Global Accelerator to advertise the address range was not successful.
52    * Please make sure that you provide all of the correct information, and try again.
53    * If the request fails a second time, contact AWS support.</p> </li> <li> <p>
54    * <b>FAILED_WITHDRAW</b> — The request to withdraw the address range from
55    * advertising by AWS Global Accelerator was not successful. Please make sure that
56    * you provide all of the correct information, and try again. If the request fails
57    * a second time, contact AWS support.</p> </li> <li> <p> <b>FAILED_DEPROVISION
58    * </b> — The request to deprovision the address range from AWS Global Accelerator
59    * was not successful. Please make sure that you provide all of the correct
60    * information, and try again. If the request fails a second time, contact AWS
61    * support.</p> </li> </ul><p><h3>See Also:</h3>   <a
62    * href="http://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/ByoipCidr">AWS
63    * API Reference</a></p>
64    */
65   class AWS_GLOBALACCELERATOR_API ByoipCidr
66   {
67   public:
68     ByoipCidr();
69     ByoipCidr(Aws::Utils::Json::JsonView jsonValue);
70     ByoipCidr& operator=(Aws::Utils::Json::JsonView jsonValue);
71     Aws::Utils::Json::JsonValue Jsonize() const;
72 
73 
74     /**
75      * <p>The address range, in CIDR notation.</p>
76      */
GetCidr()77     inline const Aws::String& GetCidr() const{ return m_cidr; }
78 
79     /**
80      * <p>The address range, in CIDR notation.</p>
81      */
CidrHasBeenSet()82     inline bool CidrHasBeenSet() const { return m_cidrHasBeenSet; }
83 
84     /**
85      * <p>The address range, in CIDR notation.</p>
86      */
SetCidr(const Aws::String & value)87     inline void SetCidr(const Aws::String& value) { m_cidrHasBeenSet = true; m_cidr = value; }
88 
89     /**
90      * <p>The address range, in CIDR notation.</p>
91      */
SetCidr(Aws::String && value)92     inline void SetCidr(Aws::String&& value) { m_cidrHasBeenSet = true; m_cidr = std::move(value); }
93 
94     /**
95      * <p>The address range, in CIDR notation.</p>
96      */
SetCidr(const char * value)97     inline void SetCidr(const char* value) { m_cidrHasBeenSet = true; m_cidr.assign(value); }
98 
99     /**
100      * <p>The address range, in CIDR notation.</p>
101      */
WithCidr(const Aws::String & value)102     inline ByoipCidr& WithCidr(const Aws::String& value) { SetCidr(value); return *this;}
103 
104     /**
105      * <p>The address range, in CIDR notation.</p>
106      */
WithCidr(Aws::String && value)107     inline ByoipCidr& WithCidr(Aws::String&& value) { SetCidr(std::move(value)); return *this;}
108 
109     /**
110      * <p>The address range, in CIDR notation.</p>
111      */
WithCidr(const char * value)112     inline ByoipCidr& WithCidr(const char* value) { SetCidr(value); return *this;}
113 
114 
115     /**
116      * <p>The state of the address pool.</p>
117      */
GetState()118     inline const ByoipCidrState& GetState() const{ return m_state; }
119 
120     /**
121      * <p>The state of the address pool.</p>
122      */
StateHasBeenSet()123     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
124 
125     /**
126      * <p>The state of the address pool.</p>
127      */
SetState(const ByoipCidrState & value)128     inline void SetState(const ByoipCidrState& value) { m_stateHasBeenSet = true; m_state = value; }
129 
130     /**
131      * <p>The state of the address pool.</p>
132      */
SetState(ByoipCidrState && value)133     inline void SetState(ByoipCidrState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
134 
135     /**
136      * <p>The state of the address pool.</p>
137      */
WithState(const ByoipCidrState & value)138     inline ByoipCidr& WithState(const ByoipCidrState& value) { SetState(value); return *this;}
139 
140     /**
141      * <p>The state of the address pool.</p>
142      */
WithState(ByoipCidrState && value)143     inline ByoipCidr& WithState(ByoipCidrState&& value) { SetState(std::move(value)); return *this;}
144 
145 
146     /**
147      * <p>A history of status changes for an IP address range that you bring to AWS
148      * Global Accelerator through bring your own IP address (BYOIP).</p>
149      */
GetEvents()150     inline const Aws::Vector<ByoipCidrEvent>& GetEvents() const{ return m_events; }
151 
152     /**
153      * <p>A history of status changes for an IP address range that you bring to AWS
154      * Global Accelerator through bring your own IP address (BYOIP).</p>
155      */
EventsHasBeenSet()156     inline bool EventsHasBeenSet() const { return m_eventsHasBeenSet; }
157 
158     /**
159      * <p>A history of status changes for an IP address range that you bring to AWS
160      * Global Accelerator through bring your own IP address (BYOIP).</p>
161      */
SetEvents(const Aws::Vector<ByoipCidrEvent> & value)162     inline void SetEvents(const Aws::Vector<ByoipCidrEvent>& value) { m_eventsHasBeenSet = true; m_events = value; }
163 
164     /**
165      * <p>A history of status changes for an IP address range that you bring to AWS
166      * Global Accelerator through bring your own IP address (BYOIP).</p>
167      */
SetEvents(Aws::Vector<ByoipCidrEvent> && value)168     inline void SetEvents(Aws::Vector<ByoipCidrEvent>&& value) { m_eventsHasBeenSet = true; m_events = std::move(value); }
169 
170     /**
171      * <p>A history of status changes for an IP address range that you bring to AWS
172      * Global Accelerator through bring your own IP address (BYOIP).</p>
173      */
WithEvents(const Aws::Vector<ByoipCidrEvent> & value)174     inline ByoipCidr& WithEvents(const Aws::Vector<ByoipCidrEvent>& value) { SetEvents(value); return *this;}
175 
176     /**
177      * <p>A history of status changes for an IP address range that you bring to AWS
178      * Global Accelerator through bring your own IP address (BYOIP).</p>
179      */
WithEvents(Aws::Vector<ByoipCidrEvent> && value)180     inline ByoipCidr& WithEvents(Aws::Vector<ByoipCidrEvent>&& value) { SetEvents(std::move(value)); return *this;}
181 
182     /**
183      * <p>A history of status changes for an IP address range that you bring to AWS
184      * Global Accelerator through bring your own IP address (BYOIP).</p>
185      */
AddEvents(const ByoipCidrEvent & value)186     inline ByoipCidr& AddEvents(const ByoipCidrEvent& value) { m_eventsHasBeenSet = true; m_events.push_back(value); return *this; }
187 
188     /**
189      * <p>A history of status changes for an IP address range that you bring to AWS
190      * Global Accelerator through bring your own IP address (BYOIP).</p>
191      */
AddEvents(ByoipCidrEvent && value)192     inline ByoipCidr& AddEvents(ByoipCidrEvent&& value) { m_eventsHasBeenSet = true; m_events.push_back(std::move(value)); return *this; }
193 
194   private:
195 
196     Aws::String m_cidr;
197     bool m_cidrHasBeenSet;
198 
199     ByoipCidrState m_state;
200     bool m_stateHasBeenSet;
201 
202     Aws::Vector<ByoipCidrEvent> m_events;
203     bool m_eventsHasBeenSet;
204   };
205 
206 } // namespace Model
207 } // namespace GlobalAccelerator
208 } // namespace Aws
209