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/ssm/SSM_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/ssm/model/DocumentParameterType.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 SSM
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Parameters specified in a System Manager document that run on the server when
29    * the command is run. </p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentParameter">AWS
31    * API Reference</a></p>
32    */
33   class AWS_SSM_API DocumentParameter
34   {
35   public:
36     DocumentParameter();
37     DocumentParameter(Aws::Utils::Json::JsonView jsonValue);
38     DocumentParameter& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The name of the parameter.</p>
44      */
GetName()45     inline const Aws::String& GetName() const{ return m_name; }
46 
47     /**
48      * <p>The name of the parameter.</p>
49      */
NameHasBeenSet()50     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
51 
52     /**
53      * <p>The name of the parameter.</p>
54      */
SetName(const Aws::String & value)55     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
56 
57     /**
58      * <p>The name of the parameter.</p>
59      */
SetName(Aws::String && value)60     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
61 
62     /**
63      * <p>The name of the parameter.</p>
64      */
SetName(const char * value)65     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
66 
67     /**
68      * <p>The name of the parameter.</p>
69      */
WithName(const Aws::String & value)70     inline DocumentParameter& WithName(const Aws::String& value) { SetName(value); return *this;}
71 
72     /**
73      * <p>The name of the parameter.</p>
74      */
WithName(Aws::String && value)75     inline DocumentParameter& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
76 
77     /**
78      * <p>The name of the parameter.</p>
79      */
WithName(const char * value)80     inline DocumentParameter& WithName(const char* value) { SetName(value); return *this;}
81 
82 
83     /**
84      * <p>The type of parameter. The type can be either String or StringList.</p>
85      */
GetType()86     inline const DocumentParameterType& GetType() const{ return m_type; }
87 
88     /**
89      * <p>The type of parameter. The type can be either String or StringList.</p>
90      */
TypeHasBeenSet()91     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
92 
93     /**
94      * <p>The type of parameter. The type can be either String or StringList.</p>
95      */
SetType(const DocumentParameterType & value)96     inline void SetType(const DocumentParameterType& value) { m_typeHasBeenSet = true; m_type = value; }
97 
98     /**
99      * <p>The type of parameter. The type can be either String or StringList.</p>
100      */
SetType(DocumentParameterType && value)101     inline void SetType(DocumentParameterType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
102 
103     /**
104      * <p>The type of parameter. The type can be either String or StringList.</p>
105      */
WithType(const DocumentParameterType & value)106     inline DocumentParameter& WithType(const DocumentParameterType& value) { SetType(value); return *this;}
107 
108     /**
109      * <p>The type of parameter. The type can be either String or StringList.</p>
110      */
WithType(DocumentParameterType && value)111     inline DocumentParameter& WithType(DocumentParameterType&& value) { SetType(std::move(value)); return *this;}
112 
113 
114     /**
115      * <p>A description of what the parameter does, how to use it, the default value,
116      * and whether or not the parameter is optional.</p>
117      */
GetDescription()118     inline const Aws::String& GetDescription() const{ return m_description; }
119 
120     /**
121      * <p>A description of what the parameter does, how to use it, the default value,
122      * and whether or not the parameter is optional.</p>
123      */
DescriptionHasBeenSet()124     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
125 
126     /**
127      * <p>A description of what the parameter does, how to use it, the default value,
128      * and whether or not the parameter is optional.</p>
129      */
SetDescription(const Aws::String & value)130     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
131 
132     /**
133      * <p>A description of what the parameter does, how to use it, the default value,
134      * and whether or not the parameter is optional.</p>
135      */
SetDescription(Aws::String && value)136     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
137 
138     /**
139      * <p>A description of what the parameter does, how to use it, the default value,
140      * and whether or not the parameter is optional.</p>
141      */
SetDescription(const char * value)142     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
143 
144     /**
145      * <p>A description of what the parameter does, how to use it, the default value,
146      * and whether or not the parameter is optional.</p>
147      */
WithDescription(const Aws::String & value)148     inline DocumentParameter& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
149 
150     /**
151      * <p>A description of what the parameter does, how to use it, the default value,
152      * and whether or not the parameter is optional.</p>
153      */
WithDescription(Aws::String && value)154     inline DocumentParameter& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
155 
156     /**
157      * <p>A description of what the parameter does, how to use it, the default value,
158      * and whether or not the parameter is optional.</p>
159      */
WithDescription(const char * value)160     inline DocumentParameter& WithDescription(const char* value) { SetDescription(value); return *this;}
161 
162 
163     /**
164      * <p>If specified, the default values for the parameters. Parameters without a
165      * default value are required. Parameters with a default value are optional.</p>
166      */
GetDefaultValue()167     inline const Aws::String& GetDefaultValue() const{ return m_defaultValue; }
168 
169     /**
170      * <p>If specified, the default values for the parameters. Parameters without a
171      * default value are required. Parameters with a default value are optional.</p>
172      */
DefaultValueHasBeenSet()173     inline bool DefaultValueHasBeenSet() const { return m_defaultValueHasBeenSet; }
174 
175     /**
176      * <p>If specified, the default values for the parameters. Parameters without a
177      * default value are required. Parameters with a default value are optional.</p>
178      */
SetDefaultValue(const Aws::String & value)179     inline void SetDefaultValue(const Aws::String& value) { m_defaultValueHasBeenSet = true; m_defaultValue = value; }
180 
181     /**
182      * <p>If specified, the default values for the parameters. Parameters without a
183      * default value are required. Parameters with a default value are optional.</p>
184      */
SetDefaultValue(Aws::String && value)185     inline void SetDefaultValue(Aws::String&& value) { m_defaultValueHasBeenSet = true; m_defaultValue = std::move(value); }
186 
187     /**
188      * <p>If specified, the default values for the parameters. Parameters without a
189      * default value are required. Parameters with a default value are optional.</p>
190      */
SetDefaultValue(const char * value)191     inline void SetDefaultValue(const char* value) { m_defaultValueHasBeenSet = true; m_defaultValue.assign(value); }
192 
193     /**
194      * <p>If specified, the default values for the parameters. Parameters without a
195      * default value are required. Parameters with a default value are optional.</p>
196      */
WithDefaultValue(const Aws::String & value)197     inline DocumentParameter& WithDefaultValue(const Aws::String& value) { SetDefaultValue(value); return *this;}
198 
199     /**
200      * <p>If specified, the default values for the parameters. Parameters without a
201      * default value are required. Parameters with a default value are optional.</p>
202      */
WithDefaultValue(Aws::String && value)203     inline DocumentParameter& WithDefaultValue(Aws::String&& value) { SetDefaultValue(std::move(value)); return *this;}
204 
205     /**
206      * <p>If specified, the default values for the parameters. Parameters without a
207      * default value are required. Parameters with a default value are optional.</p>
208      */
WithDefaultValue(const char * value)209     inline DocumentParameter& WithDefaultValue(const char* value) { SetDefaultValue(value); return *this;}
210 
211   private:
212 
213     Aws::String m_name;
214     bool m_nameHasBeenSet;
215 
216     DocumentParameterType m_type;
217     bool m_typeHasBeenSet;
218 
219     Aws::String m_description;
220     bool m_descriptionHasBeenSet;
221 
222     Aws::String m_defaultValue;
223     bool m_defaultValueHasBeenSet;
224   };
225 
226 } // namespace Model
227 } // namespace SSM
228 } // namespace Aws
229