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/medialive/MediaLive_EXPORTS.h>
8 #include <aws/medialive/MediaLiveRequest.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/medialive/model/MultiplexSettings.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <aws/core/utils/memory/stl/AWSMap.h>
13 #include <utility>
14 #include <aws/core/utils/UUID.h>
15 
16 namespace Aws
17 {
18 namespace MediaLive
19 {
20 namespace Model
21 {
22 
23   /**
24    * A request to create a multiplex.<p><h3>See Also:</h3>   <a
25    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/CreateMultiplexRequest">AWS
26    * API Reference</a></p>
27    */
28   class AWS_MEDIALIVE_API CreateMultiplexRequest : public MediaLiveRequest
29   {
30   public:
31     CreateMultiplexRequest();
32 
33     // Service request name is the Operation name which will send this request out,
34     // each operation should has unique request name, so that we can get operation's name from this request.
35     // Note: this is not true for response, multiple operations may have the same response name,
36     // so we can not get operation's name from response.
GetServiceRequestName()37     inline virtual const char* GetServiceRequestName() const override { return "CreateMultiplex"; }
38 
39     Aws::String SerializePayload() const override;
40 
41 
42     /**
43      * A list of availability zones for the multiplex. You must specify exactly two.
44      */
GetAvailabilityZones()45     inline const Aws::Vector<Aws::String>& GetAvailabilityZones() const{ return m_availabilityZones; }
46 
47     /**
48      * A list of availability zones for the multiplex. You must specify exactly two.
49      */
AvailabilityZonesHasBeenSet()50     inline bool AvailabilityZonesHasBeenSet() const { return m_availabilityZonesHasBeenSet; }
51 
52     /**
53      * A list of availability zones for the multiplex. You must specify exactly two.
54      */
SetAvailabilityZones(const Aws::Vector<Aws::String> & value)55     inline void SetAvailabilityZones(const Aws::Vector<Aws::String>& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = value; }
56 
57     /**
58      * A list of availability zones for the multiplex. You must specify exactly two.
59      */
SetAvailabilityZones(Aws::Vector<Aws::String> && value)60     inline void SetAvailabilityZones(Aws::Vector<Aws::String>&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = std::move(value); }
61 
62     /**
63      * A list of availability zones for the multiplex. You must specify exactly two.
64      */
WithAvailabilityZones(const Aws::Vector<Aws::String> & value)65     inline CreateMultiplexRequest& WithAvailabilityZones(const Aws::Vector<Aws::String>& value) { SetAvailabilityZones(value); return *this;}
66 
67     /**
68      * A list of availability zones for the multiplex. You must specify exactly two.
69      */
WithAvailabilityZones(Aws::Vector<Aws::String> && value)70     inline CreateMultiplexRequest& WithAvailabilityZones(Aws::Vector<Aws::String>&& value) { SetAvailabilityZones(std::move(value)); return *this;}
71 
72     /**
73      * A list of availability zones for the multiplex. You must specify exactly two.
74      */
AddAvailabilityZones(const Aws::String & value)75     inline CreateMultiplexRequest& AddAvailabilityZones(const Aws::String& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; }
76 
77     /**
78      * A list of availability zones for the multiplex. You must specify exactly two.
79      */
AddAvailabilityZones(Aws::String && value)80     inline CreateMultiplexRequest& AddAvailabilityZones(Aws::String&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(std::move(value)); return *this; }
81 
82     /**
83      * A list of availability zones for the multiplex. You must specify exactly two.
84      */
AddAvailabilityZones(const char * value)85     inline CreateMultiplexRequest& AddAvailabilityZones(const char* value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; }
86 
87 
88     /**
89      * Configuration for a multiplex event.
90      */
GetMultiplexSettings()91     inline const MultiplexSettings& GetMultiplexSettings() const{ return m_multiplexSettings; }
92 
93     /**
94      * Configuration for a multiplex event.
95      */
MultiplexSettingsHasBeenSet()96     inline bool MultiplexSettingsHasBeenSet() const { return m_multiplexSettingsHasBeenSet; }
97 
98     /**
99      * Configuration for a multiplex event.
100      */
SetMultiplexSettings(const MultiplexSettings & value)101     inline void SetMultiplexSettings(const MultiplexSettings& value) { m_multiplexSettingsHasBeenSet = true; m_multiplexSettings = value; }
102 
103     /**
104      * Configuration for a multiplex event.
105      */
SetMultiplexSettings(MultiplexSettings && value)106     inline void SetMultiplexSettings(MultiplexSettings&& value) { m_multiplexSettingsHasBeenSet = true; m_multiplexSettings = std::move(value); }
107 
108     /**
109      * Configuration for a multiplex event.
110      */
WithMultiplexSettings(const MultiplexSettings & value)111     inline CreateMultiplexRequest& WithMultiplexSettings(const MultiplexSettings& value) { SetMultiplexSettings(value); return *this;}
112 
113     /**
114      * Configuration for a multiplex event.
115      */
WithMultiplexSettings(MultiplexSettings && value)116     inline CreateMultiplexRequest& WithMultiplexSettings(MultiplexSettings&& value) { SetMultiplexSettings(std::move(value)); return *this;}
117 
118 
119     /**
120      * Name of multiplex.
121      */
GetName()122     inline const Aws::String& GetName() const{ return m_name; }
123 
124     /**
125      * Name of multiplex.
126      */
NameHasBeenSet()127     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
128 
129     /**
130      * Name of multiplex.
131      */
SetName(const Aws::String & value)132     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
133 
134     /**
135      * Name of multiplex.
136      */
SetName(Aws::String && value)137     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
138 
139     /**
140      * Name of multiplex.
141      */
SetName(const char * value)142     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
143 
144     /**
145      * Name of multiplex.
146      */
WithName(const Aws::String & value)147     inline CreateMultiplexRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
148 
149     /**
150      * Name of multiplex.
151      */
WithName(Aws::String && value)152     inline CreateMultiplexRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
153 
154     /**
155      * Name of multiplex.
156      */
WithName(const char * value)157     inline CreateMultiplexRequest& WithName(const char* value) { SetName(value); return *this;}
158 
159 
160     /**
161      * Unique request ID. This prevents retries from creating multiple
162 resources.
163 
164      */
GetRequestId()165     inline const Aws::String& GetRequestId() const{ return m_requestId; }
166 
167     /**
168      * Unique request ID. This prevents retries from creating multiple
169 resources.
170 
171      */
RequestIdHasBeenSet()172     inline bool RequestIdHasBeenSet() const { return m_requestIdHasBeenSet; }
173 
174     /**
175      * Unique request ID. This prevents retries from creating multiple
176 resources.
177 
178      */
SetRequestId(const Aws::String & value)179     inline void SetRequestId(const Aws::String& value) { m_requestIdHasBeenSet = true; m_requestId = value; }
180 
181     /**
182      * Unique request ID. This prevents retries from creating multiple
183 resources.
184 
185      */
SetRequestId(Aws::String && value)186     inline void SetRequestId(Aws::String&& value) { m_requestIdHasBeenSet = true; m_requestId = std::move(value); }
187 
188     /**
189      * Unique request ID. This prevents retries from creating multiple
190 resources.
191 
192      */
SetRequestId(const char * value)193     inline void SetRequestId(const char* value) { m_requestIdHasBeenSet = true; m_requestId.assign(value); }
194 
195     /**
196      * Unique request ID. This prevents retries from creating multiple
197 resources.
198 
199      */
WithRequestId(const Aws::String & value)200     inline CreateMultiplexRequest& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;}
201 
202     /**
203      * Unique request ID. This prevents retries from creating multiple
204 resources.
205 
206      */
WithRequestId(Aws::String && value)207     inline CreateMultiplexRequest& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;}
208 
209     /**
210      * Unique request ID. This prevents retries from creating multiple
211 resources.
212 
213      */
WithRequestId(const char * value)214     inline CreateMultiplexRequest& WithRequestId(const char* value) { SetRequestId(value); return *this;}
215 
216 
217     /**
218      * A collection of key-value pairs.
219      */
GetTags()220     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
221 
222     /**
223      * A collection of key-value pairs.
224      */
TagsHasBeenSet()225     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
226 
227     /**
228      * A collection of key-value pairs.
229      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)230     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
231 
232     /**
233      * A collection of key-value pairs.
234      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)235     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
236 
237     /**
238      * A collection of key-value pairs.
239      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)240     inline CreateMultiplexRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
241 
242     /**
243      * A collection of key-value pairs.
244      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)245     inline CreateMultiplexRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
246 
247     /**
248      * A collection of key-value pairs.
249      */
AddTags(const Aws::String & key,const Aws::String & value)250     inline CreateMultiplexRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
251 
252     /**
253      * A collection of key-value pairs.
254      */
AddTags(Aws::String && key,const Aws::String & value)255     inline CreateMultiplexRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
256 
257     /**
258      * A collection of key-value pairs.
259      */
AddTags(const Aws::String & key,Aws::String && value)260     inline CreateMultiplexRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
261 
262     /**
263      * A collection of key-value pairs.
264      */
AddTags(Aws::String && key,Aws::String && value)265     inline CreateMultiplexRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
266 
267     /**
268      * A collection of key-value pairs.
269      */
AddTags(const char * key,Aws::String && value)270     inline CreateMultiplexRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
271 
272     /**
273      * A collection of key-value pairs.
274      */
AddTags(Aws::String && key,const char * value)275     inline CreateMultiplexRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
276 
277     /**
278      * A collection of key-value pairs.
279      */
AddTags(const char * key,const char * value)280     inline CreateMultiplexRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
281 
282   private:
283 
284     Aws::Vector<Aws::String> m_availabilityZones;
285     bool m_availabilityZonesHasBeenSet;
286 
287     MultiplexSettings m_multiplexSettings;
288     bool m_multiplexSettingsHasBeenSet;
289 
290     Aws::String m_name;
291     bool m_nameHasBeenSet;
292 
293     Aws::String m_requestId;
294     bool m_requestIdHasBeenSet;
295 
296     Aws::Map<Aws::String, Aws::String> m_tags;
297     bool m_tagsHasBeenSet;
298   };
299 
300 } // namespace Model
301 } // namespace MediaLive
302 } // namespace Aws
303