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/core/utils/memory/stl/AWSString.h>
9 #include <aws/medialive/model/AudioSelectorSettings.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace MediaLive
23 {
24 namespace Model
25 {
26 
27   /**
28    * Audio Selector<p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/AudioSelector">AWS
30    * API Reference</a></p>
31    */
32   class AWS_MEDIALIVE_API AudioSelector
33   {
34   public:
35     AudioSelector();
36     AudioSelector(Aws::Utils::Json::JsonView jsonValue);
37     AudioSelector& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * The name of this AudioSelector. AudioDescriptions will use this name to uniquely
43      * identify this Selector.  Selector names should be unique per input.
44      */
GetName()45     inline const Aws::String& GetName() const{ return m_name; }
46 
47     /**
48      * The name of this AudioSelector. AudioDescriptions will use this name to uniquely
49      * identify this Selector.  Selector names should be unique per input.
50      */
NameHasBeenSet()51     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
52 
53     /**
54      * The name of this AudioSelector. AudioDescriptions will use this name to uniquely
55      * identify this Selector.  Selector names should be unique per input.
56      */
SetName(const Aws::String & value)57     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
58 
59     /**
60      * The name of this AudioSelector. AudioDescriptions will use this name to uniquely
61      * identify this Selector.  Selector names should be unique per input.
62      */
SetName(Aws::String && value)63     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
64 
65     /**
66      * The name of this AudioSelector. AudioDescriptions will use this name to uniquely
67      * identify this Selector.  Selector names should be unique per input.
68      */
SetName(const char * value)69     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
70 
71     /**
72      * The name of this AudioSelector. AudioDescriptions will use this name to uniquely
73      * identify this Selector.  Selector names should be unique per input.
74      */
WithName(const Aws::String & value)75     inline AudioSelector& WithName(const Aws::String& value) { SetName(value); return *this;}
76 
77     /**
78      * The name of this AudioSelector. AudioDescriptions will use this name to uniquely
79      * identify this Selector.  Selector names should be unique per input.
80      */
WithName(Aws::String && value)81     inline AudioSelector& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
82 
83     /**
84      * The name of this AudioSelector. AudioDescriptions will use this name to uniquely
85      * identify this Selector.  Selector names should be unique per input.
86      */
WithName(const char * value)87     inline AudioSelector& WithName(const char* value) { SetName(value); return *this;}
88 
89 
90     /**
91      * The audio selector settings.
92      */
GetSelectorSettings()93     inline const AudioSelectorSettings& GetSelectorSettings() const{ return m_selectorSettings; }
94 
95     /**
96      * The audio selector settings.
97      */
SelectorSettingsHasBeenSet()98     inline bool SelectorSettingsHasBeenSet() const { return m_selectorSettingsHasBeenSet; }
99 
100     /**
101      * The audio selector settings.
102      */
SetSelectorSettings(const AudioSelectorSettings & value)103     inline void SetSelectorSettings(const AudioSelectorSettings& value) { m_selectorSettingsHasBeenSet = true; m_selectorSettings = value; }
104 
105     /**
106      * The audio selector settings.
107      */
SetSelectorSettings(AudioSelectorSettings && value)108     inline void SetSelectorSettings(AudioSelectorSettings&& value) { m_selectorSettingsHasBeenSet = true; m_selectorSettings = std::move(value); }
109 
110     /**
111      * The audio selector settings.
112      */
WithSelectorSettings(const AudioSelectorSettings & value)113     inline AudioSelector& WithSelectorSettings(const AudioSelectorSettings& value) { SetSelectorSettings(value); return *this;}
114 
115     /**
116      * The audio selector settings.
117      */
WithSelectorSettings(AudioSelectorSettings && value)118     inline AudioSelector& WithSelectorSettings(AudioSelectorSettings&& value) { SetSelectorSettings(std::move(value)); return *this;}
119 
120   private:
121 
122     Aws::String m_name;
123     bool m_nameHasBeenSet;
124 
125     AudioSelectorSettings m_selectorSettings;
126     bool m_selectorSettingsHasBeenSet;
127   };
128 
129 } // namespace Model
130 } // namespace MediaLive
131 } // namespace Aws
132