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 <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace MediaLive
22 {
23 namespace Model
24 {
25 
26   /**
27    * Maps a caption channel to an ISO 693-2 language code
28    * (http://www.loc.gov/standards/iso639-2), with an optional description.<p><h3>See
29    * Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/CaptionLanguageMapping">AWS
31    * API Reference</a></p>
32    */
33   class AWS_MEDIALIVE_API CaptionLanguageMapping
34   {
35   public:
36     CaptionLanguageMapping();
37     CaptionLanguageMapping(Aws::Utils::Json::JsonView jsonValue);
38     CaptionLanguageMapping& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * The closed caption channel being described by this CaptionLanguageMapping.  Each
44      * channel mapping must have a unique channel number (maximum of 4)
45      */
GetCaptionChannel()46     inline int GetCaptionChannel() const{ return m_captionChannel; }
47 
48     /**
49      * The closed caption channel being described by this CaptionLanguageMapping.  Each
50      * channel mapping must have a unique channel number (maximum of 4)
51      */
CaptionChannelHasBeenSet()52     inline bool CaptionChannelHasBeenSet() const { return m_captionChannelHasBeenSet; }
53 
54     /**
55      * The closed caption channel being described by this CaptionLanguageMapping.  Each
56      * channel mapping must have a unique channel number (maximum of 4)
57      */
SetCaptionChannel(int value)58     inline void SetCaptionChannel(int value) { m_captionChannelHasBeenSet = true; m_captionChannel = value; }
59 
60     /**
61      * The closed caption channel being described by this CaptionLanguageMapping.  Each
62      * channel mapping must have a unique channel number (maximum of 4)
63      */
WithCaptionChannel(int value)64     inline CaptionLanguageMapping& WithCaptionChannel(int value) { SetCaptionChannel(value); return *this;}
65 
66 
67     /**
68      * Three character ISO 639-2 language code (see
69      * http://www.loc.gov/standards/iso639-2)
70      */
GetLanguageCode()71     inline const Aws::String& GetLanguageCode() const{ return m_languageCode; }
72 
73     /**
74      * Three character ISO 639-2 language code (see
75      * http://www.loc.gov/standards/iso639-2)
76      */
LanguageCodeHasBeenSet()77     inline bool LanguageCodeHasBeenSet() const { return m_languageCodeHasBeenSet; }
78 
79     /**
80      * Three character ISO 639-2 language code (see
81      * http://www.loc.gov/standards/iso639-2)
82      */
SetLanguageCode(const Aws::String & value)83     inline void SetLanguageCode(const Aws::String& value) { m_languageCodeHasBeenSet = true; m_languageCode = value; }
84 
85     /**
86      * Three character ISO 639-2 language code (see
87      * http://www.loc.gov/standards/iso639-2)
88      */
SetLanguageCode(Aws::String && value)89     inline void SetLanguageCode(Aws::String&& value) { m_languageCodeHasBeenSet = true; m_languageCode = std::move(value); }
90 
91     /**
92      * Three character ISO 639-2 language code (see
93      * http://www.loc.gov/standards/iso639-2)
94      */
SetLanguageCode(const char * value)95     inline void SetLanguageCode(const char* value) { m_languageCodeHasBeenSet = true; m_languageCode.assign(value); }
96 
97     /**
98      * Three character ISO 639-2 language code (see
99      * http://www.loc.gov/standards/iso639-2)
100      */
WithLanguageCode(const Aws::String & value)101     inline CaptionLanguageMapping& WithLanguageCode(const Aws::String& value) { SetLanguageCode(value); return *this;}
102 
103     /**
104      * Three character ISO 639-2 language code (see
105      * http://www.loc.gov/standards/iso639-2)
106      */
WithLanguageCode(Aws::String && value)107     inline CaptionLanguageMapping& WithLanguageCode(Aws::String&& value) { SetLanguageCode(std::move(value)); return *this;}
108 
109     /**
110      * Three character ISO 639-2 language code (see
111      * http://www.loc.gov/standards/iso639-2)
112      */
WithLanguageCode(const char * value)113     inline CaptionLanguageMapping& WithLanguageCode(const char* value) { SetLanguageCode(value); return *this;}
114 
115 
116     /**
117      * Textual description of language
118      */
GetLanguageDescription()119     inline const Aws::String& GetLanguageDescription() const{ return m_languageDescription; }
120 
121     /**
122      * Textual description of language
123      */
LanguageDescriptionHasBeenSet()124     inline bool LanguageDescriptionHasBeenSet() const { return m_languageDescriptionHasBeenSet; }
125 
126     /**
127      * Textual description of language
128      */
SetLanguageDescription(const Aws::String & value)129     inline void SetLanguageDescription(const Aws::String& value) { m_languageDescriptionHasBeenSet = true; m_languageDescription = value; }
130 
131     /**
132      * Textual description of language
133      */
SetLanguageDescription(Aws::String && value)134     inline void SetLanguageDescription(Aws::String&& value) { m_languageDescriptionHasBeenSet = true; m_languageDescription = std::move(value); }
135 
136     /**
137      * Textual description of language
138      */
SetLanguageDescription(const char * value)139     inline void SetLanguageDescription(const char* value) { m_languageDescriptionHasBeenSet = true; m_languageDescription.assign(value); }
140 
141     /**
142      * Textual description of language
143      */
WithLanguageDescription(const Aws::String & value)144     inline CaptionLanguageMapping& WithLanguageDescription(const Aws::String& value) { SetLanguageDescription(value); return *this;}
145 
146     /**
147      * Textual description of language
148      */
WithLanguageDescription(Aws::String && value)149     inline CaptionLanguageMapping& WithLanguageDescription(Aws::String&& value) { SetLanguageDescription(std::move(value)); return *this;}
150 
151     /**
152      * Textual description of language
153      */
WithLanguageDescription(const char * value)154     inline CaptionLanguageMapping& WithLanguageDescription(const char* value) { SetLanguageDescription(value); return *this;}
155 
156   private:
157 
158     int m_captionChannel;
159     bool m_captionChannelHasBeenSet;
160 
161     Aws::String m_languageCode;
162     bool m_languageCodeHasBeenSet;
163 
164     Aws::String m_languageDescription;
165     bool m_languageDescriptionHasBeenSet;
166   };
167 
168 } // namespace Model
169 } // namespace MediaLive
170 } // namespace Aws
171