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/mediaconvert/MediaConvert_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.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 MediaConvert
23 {
24 namespace Model
25 {
26 
27   /**
28    * Specify the details for each additional HLS manifest that you want the service
29    * to generate for this output group. Each manifest can reference a different
30    * subset of outputs in the group.<p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/HlsAdditionalManifest">AWS
32    * API Reference</a></p>
33    */
34   class AWS_MEDIACONVERT_API HlsAdditionalManifest
35   {
36   public:
37     HlsAdditionalManifest();
38     HlsAdditionalManifest(Aws::Utils::Json::JsonView jsonValue);
39     HlsAdditionalManifest& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * Specify a name modifier that the service adds to the name of this manifest to
45      * make it different from the file names of the other main manifests in the output
46      * group. For example, say that the default main manifest for your HLS group is
47      * film-name.m3u8. If you enter "-no-premium" for this setting, then the file name
48      * the service generates for this top-level manifest is film-name-no-premium.m3u8.
49      * For HLS output groups, specify a manifestNameModifier that is different from the
50      * nameModifier of the output. The service uses the output name modifier to create
51      * unique names for the individual variant manifests.
52      */
GetManifestNameModifier()53     inline const Aws::String& GetManifestNameModifier() const{ return m_manifestNameModifier; }
54 
55     /**
56      * Specify a name modifier that the service adds to the name of this manifest to
57      * make it different from the file names of the other main manifests in the output
58      * group. For example, say that the default main manifest for your HLS group is
59      * film-name.m3u8. If you enter "-no-premium" for this setting, then the file name
60      * the service generates for this top-level manifest is film-name-no-premium.m3u8.
61      * For HLS output groups, specify a manifestNameModifier that is different from the
62      * nameModifier of the output. The service uses the output name modifier to create
63      * unique names for the individual variant manifests.
64      */
ManifestNameModifierHasBeenSet()65     inline bool ManifestNameModifierHasBeenSet() const { return m_manifestNameModifierHasBeenSet; }
66 
67     /**
68      * Specify a name modifier that the service adds to the name of this manifest to
69      * make it different from the file names of the other main manifests in the output
70      * group. For example, say that the default main manifest for your HLS group is
71      * film-name.m3u8. If you enter "-no-premium" for this setting, then the file name
72      * the service generates for this top-level manifest is film-name-no-premium.m3u8.
73      * For HLS output groups, specify a manifestNameModifier that is different from the
74      * nameModifier of the output. The service uses the output name modifier to create
75      * unique names for the individual variant manifests.
76      */
SetManifestNameModifier(const Aws::String & value)77     inline void SetManifestNameModifier(const Aws::String& value) { m_manifestNameModifierHasBeenSet = true; m_manifestNameModifier = value; }
78 
79     /**
80      * Specify a name modifier that the service adds to the name of this manifest to
81      * make it different from the file names of the other main manifests in the output
82      * group. For example, say that the default main manifest for your HLS group is
83      * film-name.m3u8. If you enter "-no-premium" for this setting, then the file name
84      * the service generates for this top-level manifest is film-name-no-premium.m3u8.
85      * For HLS output groups, specify a manifestNameModifier that is different from the
86      * nameModifier of the output. The service uses the output name modifier to create
87      * unique names for the individual variant manifests.
88      */
SetManifestNameModifier(Aws::String && value)89     inline void SetManifestNameModifier(Aws::String&& value) { m_manifestNameModifierHasBeenSet = true; m_manifestNameModifier = std::move(value); }
90 
91     /**
92      * Specify a name modifier that the service adds to the name of this manifest to
93      * make it different from the file names of the other main manifests in the output
94      * group. For example, say that the default main manifest for your HLS group is
95      * film-name.m3u8. If you enter "-no-premium" for this setting, then the file name
96      * the service generates for this top-level manifest is film-name-no-premium.m3u8.
97      * For HLS output groups, specify a manifestNameModifier that is different from the
98      * nameModifier of the output. The service uses the output name modifier to create
99      * unique names for the individual variant manifests.
100      */
SetManifestNameModifier(const char * value)101     inline void SetManifestNameModifier(const char* value) { m_manifestNameModifierHasBeenSet = true; m_manifestNameModifier.assign(value); }
102 
103     /**
104      * Specify a name modifier that the service adds to the name of this manifest to
105      * make it different from the file names of the other main manifests in the output
106      * group. For example, say that the default main manifest for your HLS group is
107      * film-name.m3u8. If you enter "-no-premium" for this setting, then the file name
108      * the service generates for this top-level manifest is film-name-no-premium.m3u8.
109      * For HLS output groups, specify a manifestNameModifier that is different from the
110      * nameModifier of the output. The service uses the output name modifier to create
111      * unique names for the individual variant manifests.
112      */
WithManifestNameModifier(const Aws::String & value)113     inline HlsAdditionalManifest& WithManifestNameModifier(const Aws::String& value) { SetManifestNameModifier(value); return *this;}
114 
115     /**
116      * Specify a name modifier that the service adds to the name of this manifest to
117      * make it different from the file names of the other main manifests in the output
118      * group. For example, say that the default main manifest for your HLS group is
119      * film-name.m3u8. If you enter "-no-premium" for this setting, then the file name
120      * the service generates for this top-level manifest is film-name-no-premium.m3u8.
121      * For HLS output groups, specify a manifestNameModifier that is different from the
122      * nameModifier of the output. The service uses the output name modifier to create
123      * unique names for the individual variant manifests.
124      */
WithManifestNameModifier(Aws::String && value)125     inline HlsAdditionalManifest& WithManifestNameModifier(Aws::String&& value) { SetManifestNameModifier(std::move(value)); return *this;}
126 
127     /**
128      * Specify a name modifier that the service adds to the name of this manifest to
129      * make it different from the file names of the other main manifests in the output
130      * group. For example, say that the default main manifest for your HLS group is
131      * film-name.m3u8. If you enter "-no-premium" for this setting, then the file name
132      * the service generates for this top-level manifest is film-name-no-premium.m3u8.
133      * For HLS output groups, specify a manifestNameModifier that is different from the
134      * nameModifier of the output. The service uses the output name modifier to create
135      * unique names for the individual variant manifests.
136      */
WithManifestNameModifier(const char * value)137     inline HlsAdditionalManifest& WithManifestNameModifier(const char* value) { SetManifestNameModifier(value); return *this;}
138 
139 
140     /**
141      * Specify the outputs that you want this additional top-level manifest to
142      * reference.
143      */
GetSelectedOutputs()144     inline const Aws::Vector<Aws::String>& GetSelectedOutputs() const{ return m_selectedOutputs; }
145 
146     /**
147      * Specify the outputs that you want this additional top-level manifest to
148      * reference.
149      */
SelectedOutputsHasBeenSet()150     inline bool SelectedOutputsHasBeenSet() const { return m_selectedOutputsHasBeenSet; }
151 
152     /**
153      * Specify the outputs that you want this additional top-level manifest to
154      * reference.
155      */
SetSelectedOutputs(const Aws::Vector<Aws::String> & value)156     inline void SetSelectedOutputs(const Aws::Vector<Aws::String>& value) { m_selectedOutputsHasBeenSet = true; m_selectedOutputs = value; }
157 
158     /**
159      * Specify the outputs that you want this additional top-level manifest to
160      * reference.
161      */
SetSelectedOutputs(Aws::Vector<Aws::String> && value)162     inline void SetSelectedOutputs(Aws::Vector<Aws::String>&& value) { m_selectedOutputsHasBeenSet = true; m_selectedOutputs = std::move(value); }
163 
164     /**
165      * Specify the outputs that you want this additional top-level manifest to
166      * reference.
167      */
WithSelectedOutputs(const Aws::Vector<Aws::String> & value)168     inline HlsAdditionalManifest& WithSelectedOutputs(const Aws::Vector<Aws::String>& value) { SetSelectedOutputs(value); return *this;}
169 
170     /**
171      * Specify the outputs that you want this additional top-level manifest to
172      * reference.
173      */
WithSelectedOutputs(Aws::Vector<Aws::String> && value)174     inline HlsAdditionalManifest& WithSelectedOutputs(Aws::Vector<Aws::String>&& value) { SetSelectedOutputs(std::move(value)); return *this;}
175 
176     /**
177      * Specify the outputs that you want this additional top-level manifest to
178      * reference.
179      */
AddSelectedOutputs(const Aws::String & value)180     inline HlsAdditionalManifest& AddSelectedOutputs(const Aws::String& value) { m_selectedOutputsHasBeenSet = true; m_selectedOutputs.push_back(value); return *this; }
181 
182     /**
183      * Specify the outputs that you want this additional top-level manifest to
184      * reference.
185      */
AddSelectedOutputs(Aws::String && value)186     inline HlsAdditionalManifest& AddSelectedOutputs(Aws::String&& value) { m_selectedOutputsHasBeenSet = true; m_selectedOutputs.push_back(std::move(value)); return *this; }
187 
188     /**
189      * Specify the outputs that you want this additional top-level manifest to
190      * reference.
191      */
AddSelectedOutputs(const char * value)192     inline HlsAdditionalManifest& AddSelectedOutputs(const char* value) { m_selectedOutputsHasBeenSet = true; m_selectedOutputs.push_back(value); return *this; }
193 
194   private:
195 
196     Aws::String m_manifestNameModifier;
197     bool m_manifestNameModifierHasBeenSet;
198 
199     Aws::Vector<Aws::String> m_selectedOutputs;
200     bool m_selectedOutputsHasBeenSet;
201   };
202 
203 } // namespace Model
204 } // namespace MediaConvert
205 } // namespace Aws
206