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/globalaccelerator/GlobalAcceleratorRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/globalaccelerator/model/IpAddressType.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace GlobalAccelerator
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_GLOBALACCELERATOR_API UpdateCustomRoutingAcceleratorRequest : public GlobalAcceleratorRequest
23   {
24   public:
25     UpdateCustomRoutingAcceleratorRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "UpdateCustomRoutingAccelerator"; }
32 
33     Aws::String SerializePayload() const override;
34 
35     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
36 
37 
38     /**
39      * <p>The Amazon Resource Name (ARN) of the accelerator to update.</p>
40      */
GetAcceleratorArn()41     inline const Aws::String& GetAcceleratorArn() const{ return m_acceleratorArn; }
42 
43     /**
44      * <p>The Amazon Resource Name (ARN) of the accelerator to update.</p>
45      */
AcceleratorArnHasBeenSet()46     inline bool AcceleratorArnHasBeenSet() const { return m_acceleratorArnHasBeenSet; }
47 
48     /**
49      * <p>The Amazon Resource Name (ARN) of the accelerator to update.</p>
50      */
SetAcceleratorArn(const Aws::String & value)51     inline void SetAcceleratorArn(const Aws::String& value) { m_acceleratorArnHasBeenSet = true; m_acceleratorArn = value; }
52 
53     /**
54      * <p>The Amazon Resource Name (ARN) of the accelerator to update.</p>
55      */
SetAcceleratorArn(Aws::String && value)56     inline void SetAcceleratorArn(Aws::String&& value) { m_acceleratorArnHasBeenSet = true; m_acceleratorArn = std::move(value); }
57 
58     /**
59      * <p>The Amazon Resource Name (ARN) of the accelerator to update.</p>
60      */
SetAcceleratorArn(const char * value)61     inline void SetAcceleratorArn(const char* value) { m_acceleratorArnHasBeenSet = true; m_acceleratorArn.assign(value); }
62 
63     /**
64      * <p>The Amazon Resource Name (ARN) of the accelerator to update.</p>
65      */
WithAcceleratorArn(const Aws::String & value)66     inline UpdateCustomRoutingAcceleratorRequest& WithAcceleratorArn(const Aws::String& value) { SetAcceleratorArn(value); return *this;}
67 
68     /**
69      * <p>The Amazon Resource Name (ARN) of the accelerator to update.</p>
70      */
WithAcceleratorArn(Aws::String && value)71     inline UpdateCustomRoutingAcceleratorRequest& WithAcceleratorArn(Aws::String&& value) { SetAcceleratorArn(std::move(value)); return *this;}
72 
73     /**
74      * <p>The Amazon Resource Name (ARN) of the accelerator to update.</p>
75      */
WithAcceleratorArn(const char * value)76     inline UpdateCustomRoutingAcceleratorRequest& WithAcceleratorArn(const char* value) { SetAcceleratorArn(value); return *this;}
77 
78 
79     /**
80      * <p>The name of the accelerator. The name can have a maximum of 32 characters,
81      * must contain only alphanumeric characters or hyphens (-), and must not begin or
82      * end with a hyphen.</p>
83      */
GetName()84     inline const Aws::String& GetName() const{ return m_name; }
85 
86     /**
87      * <p>The name of the accelerator. The name can have a maximum of 32 characters,
88      * must contain only alphanumeric characters or hyphens (-), and must not begin or
89      * end with a hyphen.</p>
90      */
NameHasBeenSet()91     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
92 
93     /**
94      * <p>The name of the accelerator. The name can have a maximum of 32 characters,
95      * must contain only alphanumeric characters or hyphens (-), and must not begin or
96      * end with a hyphen.</p>
97      */
SetName(const Aws::String & value)98     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
99 
100     /**
101      * <p>The name of the accelerator. The name can have a maximum of 32 characters,
102      * must contain only alphanumeric characters or hyphens (-), and must not begin or
103      * end with a hyphen.</p>
104      */
SetName(Aws::String && value)105     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
106 
107     /**
108      * <p>The name of the accelerator. The name can have a maximum of 32 characters,
109      * must contain only alphanumeric characters or hyphens (-), and must not begin or
110      * end with a hyphen.</p>
111      */
SetName(const char * value)112     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
113 
114     /**
115      * <p>The name of the accelerator. The name can have a maximum of 32 characters,
116      * must contain only alphanumeric characters or hyphens (-), and must not begin or
117      * end with a hyphen.</p>
118      */
WithName(const Aws::String & value)119     inline UpdateCustomRoutingAcceleratorRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
120 
121     /**
122      * <p>The name of the accelerator. The name can have a maximum of 32 characters,
123      * must contain only alphanumeric characters or hyphens (-), and must not begin or
124      * end with a hyphen.</p>
125      */
WithName(Aws::String && value)126     inline UpdateCustomRoutingAcceleratorRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
127 
128     /**
129      * <p>The name of the accelerator. The name can have a maximum of 32 characters,
130      * must contain only alphanumeric characters or hyphens (-), and must not begin or
131      * end with a hyphen.</p>
132      */
WithName(const char * value)133     inline UpdateCustomRoutingAcceleratorRequest& WithName(const char* value) { SetName(value); return *this;}
134 
135 
136     /**
137      * <p>The value for the address type must be IPv4.</p>
138      */
GetIpAddressType()139     inline const IpAddressType& GetIpAddressType() const{ return m_ipAddressType; }
140 
141     /**
142      * <p>The value for the address type must be IPv4.</p>
143      */
IpAddressTypeHasBeenSet()144     inline bool IpAddressTypeHasBeenSet() const { return m_ipAddressTypeHasBeenSet; }
145 
146     /**
147      * <p>The value for the address type must be IPv4.</p>
148      */
SetIpAddressType(const IpAddressType & value)149     inline void SetIpAddressType(const IpAddressType& value) { m_ipAddressTypeHasBeenSet = true; m_ipAddressType = value; }
150 
151     /**
152      * <p>The value for the address type must be IPv4.</p>
153      */
SetIpAddressType(IpAddressType && value)154     inline void SetIpAddressType(IpAddressType&& value) { m_ipAddressTypeHasBeenSet = true; m_ipAddressType = std::move(value); }
155 
156     /**
157      * <p>The value for the address type must be IPv4.</p>
158      */
WithIpAddressType(const IpAddressType & value)159     inline UpdateCustomRoutingAcceleratorRequest& WithIpAddressType(const IpAddressType& value) { SetIpAddressType(value); return *this;}
160 
161     /**
162      * <p>The value for the address type must be IPv4.</p>
163      */
WithIpAddressType(IpAddressType && value)164     inline UpdateCustomRoutingAcceleratorRequest& WithIpAddressType(IpAddressType&& value) { SetIpAddressType(std::move(value)); return *this;}
165 
166 
167     /**
168      * <p>Indicates whether an accelerator is enabled. The value is true or false. The
169      * default value is true. </p> <p>If the value is set to true, the accelerator
170      * cannot be deleted. If set to false, the accelerator can be deleted.</p>
171      */
GetEnabled()172     inline bool GetEnabled() const{ return m_enabled; }
173 
174     /**
175      * <p>Indicates whether an accelerator is enabled. The value is true or false. The
176      * default value is true. </p> <p>If the value is set to true, the accelerator
177      * cannot be deleted. If set to false, the accelerator can be deleted.</p>
178      */
EnabledHasBeenSet()179     inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; }
180 
181     /**
182      * <p>Indicates whether an accelerator is enabled. The value is true or false. The
183      * default value is true. </p> <p>If the value is set to true, the accelerator
184      * cannot be deleted. If set to false, the accelerator can be deleted.</p>
185      */
SetEnabled(bool value)186     inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; }
187 
188     /**
189      * <p>Indicates whether an accelerator is enabled. The value is true or false. The
190      * default value is true. </p> <p>If the value is set to true, the accelerator
191      * cannot be deleted. If set to false, the accelerator can be deleted.</p>
192      */
WithEnabled(bool value)193     inline UpdateCustomRoutingAcceleratorRequest& WithEnabled(bool value) { SetEnabled(value); return *this;}
194 
195   private:
196 
197     Aws::String m_acceleratorArn;
198     bool m_acceleratorArnHasBeenSet;
199 
200     Aws::String m_name;
201     bool m_nameHasBeenSet;
202 
203     IpAddressType m_ipAddressType;
204     bool m_ipAddressTypeHasBeenSet;
205 
206     bool m_enabled;
207     bool m_enabledHasBeenSet;
208   };
209 
210 } // namespace Model
211 } // namespace GlobalAccelerator
212 } // namespace Aws
213