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/connect/Connect_EXPORTS.h>
8 #include <aws/connect/ConnectRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/core/utils/memory/stl/AWSMap.h>
12 #include <aws/connect/model/HoursOfOperationConfig.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Connect
18 {
19 namespace Model
20 {
21 
22   /**
23    */
24   class AWS_CONNECT_API CreateHoursOfOperationRequest : public ConnectRequest
25   {
26   public:
27     CreateHoursOfOperationRequest();
28 
29     // Service request name is the Operation name which will send this request out,
30     // each operation should has unique request name, so that we can get operation's name from this request.
31     // Note: this is not true for response, multiple operations may have the same response name,
32     // so we can not get operation's name from response.
GetServiceRequestName()33     inline virtual const char* GetServiceRequestName() const override { return "CreateHoursOfOperation"; }
34 
35     Aws::String SerializePayload() const override;
36 
37 
38     /**
39      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
40      * the ARN of the instance.</p>
41      */
GetInstanceId()42     inline const Aws::String& GetInstanceId() const{ return m_instanceId; }
43 
44     /**
45      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
46      * the ARN of the instance.</p>
47      */
InstanceIdHasBeenSet()48     inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; }
49 
50     /**
51      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
52      * the ARN of the instance.</p>
53      */
SetInstanceId(const Aws::String & value)54     inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; }
55 
56     /**
57      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
58      * the ARN of the instance.</p>
59      */
SetInstanceId(Aws::String && value)60     inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); }
61 
62     /**
63      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
64      * the ARN of the instance.</p>
65      */
SetInstanceId(const char * value)66     inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); }
67 
68     /**
69      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
70      * the ARN of the instance.</p>
71      */
WithInstanceId(const Aws::String & value)72     inline CreateHoursOfOperationRequest& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;}
73 
74     /**
75      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
76      * the ARN of the instance.</p>
77      */
WithInstanceId(Aws::String && value)78     inline CreateHoursOfOperationRequest& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;}
79 
80     /**
81      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
82      * the ARN of the instance.</p>
83      */
WithInstanceId(const char * value)84     inline CreateHoursOfOperationRequest& WithInstanceId(const char* value) { SetInstanceId(value); return *this;}
85 
86 
87     /**
88      * <p>The name of the hours of operation.</p>
89      */
GetName()90     inline const Aws::String& GetName() const{ return m_name; }
91 
92     /**
93      * <p>The name of the hours of operation.</p>
94      */
NameHasBeenSet()95     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
96 
97     /**
98      * <p>The name of the hours of operation.</p>
99      */
SetName(const Aws::String & value)100     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
101 
102     /**
103      * <p>The name of the hours of operation.</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 hours of operation.</p>
109      */
SetName(const char * value)110     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
111 
112     /**
113      * <p>The name of the hours of operation.</p>
114      */
WithName(const Aws::String & value)115     inline CreateHoursOfOperationRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
116 
117     /**
118      * <p>The name of the hours of operation.</p>
119      */
WithName(Aws::String && value)120     inline CreateHoursOfOperationRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
121 
122     /**
123      * <p>The name of the hours of operation.</p>
124      */
WithName(const char * value)125     inline CreateHoursOfOperationRequest& WithName(const char* value) { SetName(value); return *this;}
126 
127 
128     /**
129      * <p>The description of the hours of operation.</p>
130      */
GetDescription()131     inline const Aws::String& GetDescription() const{ return m_description; }
132 
133     /**
134      * <p>The description of the hours of operation.</p>
135      */
DescriptionHasBeenSet()136     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
137 
138     /**
139      * <p>The description of the hours of operation.</p>
140      */
SetDescription(const Aws::String & value)141     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
142 
143     /**
144      * <p>The description of the hours of operation.</p>
145      */
SetDescription(Aws::String && value)146     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
147 
148     /**
149      * <p>The description of the hours of operation.</p>
150      */
SetDescription(const char * value)151     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
152 
153     /**
154      * <p>The description of the hours of operation.</p>
155      */
WithDescription(const Aws::String & value)156     inline CreateHoursOfOperationRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
157 
158     /**
159      * <p>The description of the hours of operation.</p>
160      */
WithDescription(Aws::String && value)161     inline CreateHoursOfOperationRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
162 
163     /**
164      * <p>The description of the hours of operation.</p>
165      */
WithDescription(const char * value)166     inline CreateHoursOfOperationRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
167 
168 
169     /**
170      * <p>The time zone of the hours of operation.</p>
171      */
GetTimeZone()172     inline const Aws::String& GetTimeZone() const{ return m_timeZone; }
173 
174     /**
175      * <p>The time zone of the hours of operation.</p>
176      */
TimeZoneHasBeenSet()177     inline bool TimeZoneHasBeenSet() const { return m_timeZoneHasBeenSet; }
178 
179     /**
180      * <p>The time zone of the hours of operation.</p>
181      */
SetTimeZone(const Aws::String & value)182     inline void SetTimeZone(const Aws::String& value) { m_timeZoneHasBeenSet = true; m_timeZone = value; }
183 
184     /**
185      * <p>The time zone of the hours of operation.</p>
186      */
SetTimeZone(Aws::String && value)187     inline void SetTimeZone(Aws::String&& value) { m_timeZoneHasBeenSet = true; m_timeZone = std::move(value); }
188 
189     /**
190      * <p>The time zone of the hours of operation.</p>
191      */
SetTimeZone(const char * value)192     inline void SetTimeZone(const char* value) { m_timeZoneHasBeenSet = true; m_timeZone.assign(value); }
193 
194     /**
195      * <p>The time zone of the hours of operation.</p>
196      */
WithTimeZone(const Aws::String & value)197     inline CreateHoursOfOperationRequest& WithTimeZone(const Aws::String& value) { SetTimeZone(value); return *this;}
198 
199     /**
200      * <p>The time zone of the hours of operation.</p>
201      */
WithTimeZone(Aws::String && value)202     inline CreateHoursOfOperationRequest& WithTimeZone(Aws::String&& value) { SetTimeZone(std::move(value)); return *this;}
203 
204     /**
205      * <p>The time zone of the hours of operation.</p>
206      */
WithTimeZone(const char * value)207     inline CreateHoursOfOperationRequest& WithTimeZone(const char* value) { SetTimeZone(value); return *this;}
208 
209 
210     /**
211      * <p>Configuration information for the hours of operation: day, start time, and
212      * end time.</p>
213      */
GetConfig()214     inline const Aws::Vector<HoursOfOperationConfig>& GetConfig() const{ return m_config; }
215 
216     /**
217      * <p>Configuration information for the hours of operation: day, start time, and
218      * end time.</p>
219      */
ConfigHasBeenSet()220     inline bool ConfigHasBeenSet() const { return m_configHasBeenSet; }
221 
222     /**
223      * <p>Configuration information for the hours of operation: day, start time, and
224      * end time.</p>
225      */
SetConfig(const Aws::Vector<HoursOfOperationConfig> & value)226     inline void SetConfig(const Aws::Vector<HoursOfOperationConfig>& value) { m_configHasBeenSet = true; m_config = value; }
227 
228     /**
229      * <p>Configuration information for the hours of operation: day, start time, and
230      * end time.</p>
231      */
SetConfig(Aws::Vector<HoursOfOperationConfig> && value)232     inline void SetConfig(Aws::Vector<HoursOfOperationConfig>&& value) { m_configHasBeenSet = true; m_config = std::move(value); }
233 
234     /**
235      * <p>Configuration information for the hours of operation: day, start time, and
236      * end time.</p>
237      */
WithConfig(const Aws::Vector<HoursOfOperationConfig> & value)238     inline CreateHoursOfOperationRequest& WithConfig(const Aws::Vector<HoursOfOperationConfig>& value) { SetConfig(value); return *this;}
239 
240     /**
241      * <p>Configuration information for the hours of operation: day, start time, and
242      * end time.</p>
243      */
WithConfig(Aws::Vector<HoursOfOperationConfig> && value)244     inline CreateHoursOfOperationRequest& WithConfig(Aws::Vector<HoursOfOperationConfig>&& value) { SetConfig(std::move(value)); return *this;}
245 
246     /**
247      * <p>Configuration information for the hours of operation: day, start time, and
248      * end time.</p>
249      */
AddConfig(const HoursOfOperationConfig & value)250     inline CreateHoursOfOperationRequest& AddConfig(const HoursOfOperationConfig& value) { m_configHasBeenSet = true; m_config.push_back(value); return *this; }
251 
252     /**
253      * <p>Configuration information for the hours of operation: day, start time, and
254      * end time.</p>
255      */
AddConfig(HoursOfOperationConfig && value)256     inline CreateHoursOfOperationRequest& AddConfig(HoursOfOperationConfig&& value) { m_configHasBeenSet = true; m_config.push_back(std::move(value)); return *this; }
257 
258 
259     /**
260      * <p>One or more tags.</p>
261      */
GetTags()262     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
263 
264     /**
265      * <p>One or more tags.</p>
266      */
TagsHasBeenSet()267     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
268 
269     /**
270      * <p>One or more tags.</p>
271      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)272     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
273 
274     /**
275      * <p>One or more tags.</p>
276      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)277     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
278 
279     /**
280      * <p>One or more tags.</p>
281      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)282     inline CreateHoursOfOperationRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
283 
284     /**
285      * <p>One or more tags.</p>
286      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)287     inline CreateHoursOfOperationRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
288 
289     /**
290      * <p>One or more tags.</p>
291      */
AddTags(const Aws::String & key,const Aws::String & value)292     inline CreateHoursOfOperationRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
293 
294     /**
295      * <p>One or more tags.</p>
296      */
AddTags(Aws::String && key,const Aws::String & value)297     inline CreateHoursOfOperationRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
298 
299     /**
300      * <p>One or more tags.</p>
301      */
AddTags(const Aws::String & key,Aws::String && value)302     inline CreateHoursOfOperationRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
303 
304     /**
305      * <p>One or more tags.</p>
306      */
AddTags(Aws::String && key,Aws::String && value)307     inline CreateHoursOfOperationRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
308 
309     /**
310      * <p>One or more tags.</p>
311      */
AddTags(const char * key,Aws::String && value)312     inline CreateHoursOfOperationRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
313 
314     /**
315      * <p>One or more tags.</p>
316      */
AddTags(Aws::String && key,const char * value)317     inline CreateHoursOfOperationRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
318 
319     /**
320      * <p>One or more tags.</p>
321      */
AddTags(const char * key,const char * value)322     inline CreateHoursOfOperationRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
323 
324   private:
325 
326     Aws::String m_instanceId;
327     bool m_instanceIdHasBeenSet;
328 
329     Aws::String m_name;
330     bool m_nameHasBeenSet;
331 
332     Aws::String m_description;
333     bool m_descriptionHasBeenSet;
334 
335     Aws::String m_timeZone;
336     bool m_timeZoneHasBeenSet;
337 
338     Aws::Vector<HoursOfOperationConfig> m_config;
339     bool m_configHasBeenSet;
340 
341     Aws::Map<Aws::String, Aws::String> m_tags;
342     bool m_tagsHasBeenSet;
343   };
344 
345 } // namespace Model
346 } // namespace Connect
347 } // namespace Aws
348