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/sagemaker/SageMaker_EXPORTS.h>
8 #include <aws/sagemaker/SageMakerRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/sagemaker/model/ArtifactSource.h>
11 #include <aws/core/utils/memory/stl/AWSMap.h>
12 #include <aws/sagemaker/model/MetadataProperties.h>
13 #include <aws/core/utils/memory/stl/AWSVector.h>
14 #include <aws/sagemaker/model/Tag.h>
15 #include <utility>
16 
17 namespace Aws
18 {
19 namespace SageMaker
20 {
21 namespace Model
22 {
23 
24   /**
25    */
26   class AWS_SAGEMAKER_API CreateArtifactRequest : public SageMakerRequest
27   {
28   public:
29     CreateArtifactRequest();
30 
31     // Service request name is the Operation name which will send this request out,
32     // each operation should has unique request name, so that we can get operation's name from this request.
33     // Note: this is not true for response, multiple operations may have the same response name,
34     // so we can not get operation's name from response.
GetServiceRequestName()35     inline virtual const char* GetServiceRequestName() const override { return "CreateArtifact"; }
36 
37     Aws::String SerializePayload() const override;
38 
39     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
40 
41 
42     /**
43      * <p>The name of the artifact. Must be unique to your account in an Amazon Web
44      * Services Region.</p>
45      */
GetArtifactName()46     inline const Aws::String& GetArtifactName() const{ return m_artifactName; }
47 
48     /**
49      * <p>The name of the artifact. Must be unique to your account in an Amazon Web
50      * Services Region.</p>
51      */
ArtifactNameHasBeenSet()52     inline bool ArtifactNameHasBeenSet() const { return m_artifactNameHasBeenSet; }
53 
54     /**
55      * <p>The name of the artifact. Must be unique to your account in an Amazon Web
56      * Services Region.</p>
57      */
SetArtifactName(const Aws::String & value)58     inline void SetArtifactName(const Aws::String& value) { m_artifactNameHasBeenSet = true; m_artifactName = value; }
59 
60     /**
61      * <p>The name of the artifact. Must be unique to your account in an Amazon Web
62      * Services Region.</p>
63      */
SetArtifactName(Aws::String && value)64     inline void SetArtifactName(Aws::String&& value) { m_artifactNameHasBeenSet = true; m_artifactName = std::move(value); }
65 
66     /**
67      * <p>The name of the artifact. Must be unique to your account in an Amazon Web
68      * Services Region.</p>
69      */
SetArtifactName(const char * value)70     inline void SetArtifactName(const char* value) { m_artifactNameHasBeenSet = true; m_artifactName.assign(value); }
71 
72     /**
73      * <p>The name of the artifact. Must be unique to your account in an Amazon Web
74      * Services Region.</p>
75      */
WithArtifactName(const Aws::String & value)76     inline CreateArtifactRequest& WithArtifactName(const Aws::String& value) { SetArtifactName(value); return *this;}
77 
78     /**
79      * <p>The name of the artifact. Must be unique to your account in an Amazon Web
80      * Services Region.</p>
81      */
WithArtifactName(Aws::String && value)82     inline CreateArtifactRequest& WithArtifactName(Aws::String&& value) { SetArtifactName(std::move(value)); return *this;}
83 
84     /**
85      * <p>The name of the artifact. Must be unique to your account in an Amazon Web
86      * Services Region.</p>
87      */
WithArtifactName(const char * value)88     inline CreateArtifactRequest& WithArtifactName(const char* value) { SetArtifactName(value); return *this;}
89 
90 
91     /**
92      * <p>The ID, ID type, and URI of the source.</p>
93      */
GetSource()94     inline const ArtifactSource& GetSource() const{ return m_source; }
95 
96     /**
97      * <p>The ID, ID type, and URI of the source.</p>
98      */
SourceHasBeenSet()99     inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; }
100 
101     /**
102      * <p>The ID, ID type, and URI of the source.</p>
103      */
SetSource(const ArtifactSource & value)104     inline void SetSource(const ArtifactSource& value) { m_sourceHasBeenSet = true; m_source = value; }
105 
106     /**
107      * <p>The ID, ID type, and URI of the source.</p>
108      */
SetSource(ArtifactSource && value)109     inline void SetSource(ArtifactSource&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); }
110 
111     /**
112      * <p>The ID, ID type, and URI of the source.</p>
113      */
WithSource(const ArtifactSource & value)114     inline CreateArtifactRequest& WithSource(const ArtifactSource& value) { SetSource(value); return *this;}
115 
116     /**
117      * <p>The ID, ID type, and URI of the source.</p>
118      */
WithSource(ArtifactSource && value)119     inline CreateArtifactRequest& WithSource(ArtifactSource&& value) { SetSource(std::move(value)); return *this;}
120 
121 
122     /**
123      * <p>The artifact type.</p>
124      */
GetArtifactType()125     inline const Aws::String& GetArtifactType() const{ return m_artifactType; }
126 
127     /**
128      * <p>The artifact type.</p>
129      */
ArtifactTypeHasBeenSet()130     inline bool ArtifactTypeHasBeenSet() const { return m_artifactTypeHasBeenSet; }
131 
132     /**
133      * <p>The artifact type.</p>
134      */
SetArtifactType(const Aws::String & value)135     inline void SetArtifactType(const Aws::String& value) { m_artifactTypeHasBeenSet = true; m_artifactType = value; }
136 
137     /**
138      * <p>The artifact type.</p>
139      */
SetArtifactType(Aws::String && value)140     inline void SetArtifactType(Aws::String&& value) { m_artifactTypeHasBeenSet = true; m_artifactType = std::move(value); }
141 
142     /**
143      * <p>The artifact type.</p>
144      */
SetArtifactType(const char * value)145     inline void SetArtifactType(const char* value) { m_artifactTypeHasBeenSet = true; m_artifactType.assign(value); }
146 
147     /**
148      * <p>The artifact type.</p>
149      */
WithArtifactType(const Aws::String & value)150     inline CreateArtifactRequest& WithArtifactType(const Aws::String& value) { SetArtifactType(value); return *this;}
151 
152     /**
153      * <p>The artifact type.</p>
154      */
WithArtifactType(Aws::String && value)155     inline CreateArtifactRequest& WithArtifactType(Aws::String&& value) { SetArtifactType(std::move(value)); return *this;}
156 
157     /**
158      * <p>The artifact type.</p>
159      */
WithArtifactType(const char * value)160     inline CreateArtifactRequest& WithArtifactType(const char* value) { SetArtifactType(value); return *this;}
161 
162 
163     /**
164      * <p>A list of properties to add to the artifact.</p>
165      */
GetProperties()166     inline const Aws::Map<Aws::String, Aws::String>& GetProperties() const{ return m_properties; }
167 
168     /**
169      * <p>A list of properties to add to the artifact.</p>
170      */
PropertiesHasBeenSet()171     inline bool PropertiesHasBeenSet() const { return m_propertiesHasBeenSet; }
172 
173     /**
174      * <p>A list of properties to add to the artifact.</p>
175      */
SetProperties(const Aws::Map<Aws::String,Aws::String> & value)176     inline void SetProperties(const Aws::Map<Aws::String, Aws::String>& value) { m_propertiesHasBeenSet = true; m_properties = value; }
177 
178     /**
179      * <p>A list of properties to add to the artifact.</p>
180      */
SetProperties(Aws::Map<Aws::String,Aws::String> && value)181     inline void SetProperties(Aws::Map<Aws::String, Aws::String>&& value) { m_propertiesHasBeenSet = true; m_properties = std::move(value); }
182 
183     /**
184      * <p>A list of properties to add to the artifact.</p>
185      */
WithProperties(const Aws::Map<Aws::String,Aws::String> & value)186     inline CreateArtifactRequest& WithProperties(const Aws::Map<Aws::String, Aws::String>& value) { SetProperties(value); return *this;}
187 
188     /**
189      * <p>A list of properties to add to the artifact.</p>
190      */
WithProperties(Aws::Map<Aws::String,Aws::String> && value)191     inline CreateArtifactRequest& WithProperties(Aws::Map<Aws::String, Aws::String>&& value) { SetProperties(std::move(value)); return *this;}
192 
193     /**
194      * <p>A list of properties to add to the artifact.</p>
195      */
AddProperties(const Aws::String & key,const Aws::String & value)196     inline CreateArtifactRequest& AddProperties(const Aws::String& key, const Aws::String& value) { m_propertiesHasBeenSet = true; m_properties.emplace(key, value); return *this; }
197 
198     /**
199      * <p>A list of properties to add to the artifact.</p>
200      */
AddProperties(Aws::String && key,const Aws::String & value)201     inline CreateArtifactRequest& AddProperties(Aws::String&& key, const Aws::String& value) { m_propertiesHasBeenSet = true; m_properties.emplace(std::move(key), value); return *this; }
202 
203     /**
204      * <p>A list of properties to add to the artifact.</p>
205      */
AddProperties(const Aws::String & key,Aws::String && value)206     inline CreateArtifactRequest& AddProperties(const Aws::String& key, Aws::String&& value) { m_propertiesHasBeenSet = true; m_properties.emplace(key, std::move(value)); return *this; }
207 
208     /**
209      * <p>A list of properties to add to the artifact.</p>
210      */
AddProperties(Aws::String && key,Aws::String && value)211     inline CreateArtifactRequest& AddProperties(Aws::String&& key, Aws::String&& value) { m_propertiesHasBeenSet = true; m_properties.emplace(std::move(key), std::move(value)); return *this; }
212 
213     /**
214      * <p>A list of properties to add to the artifact.</p>
215      */
AddProperties(const char * key,Aws::String && value)216     inline CreateArtifactRequest& AddProperties(const char* key, Aws::String&& value) { m_propertiesHasBeenSet = true; m_properties.emplace(key, std::move(value)); return *this; }
217 
218     /**
219      * <p>A list of properties to add to the artifact.</p>
220      */
AddProperties(Aws::String && key,const char * value)221     inline CreateArtifactRequest& AddProperties(Aws::String&& key, const char* value) { m_propertiesHasBeenSet = true; m_properties.emplace(std::move(key), value); return *this; }
222 
223     /**
224      * <p>A list of properties to add to the artifact.</p>
225      */
AddProperties(const char * key,const char * value)226     inline CreateArtifactRequest& AddProperties(const char* key, const char* value) { m_propertiesHasBeenSet = true; m_properties.emplace(key, value); return *this; }
227 
228 
229 
GetMetadataProperties()230     inline const MetadataProperties& GetMetadataProperties() const{ return m_metadataProperties; }
231 
232 
MetadataPropertiesHasBeenSet()233     inline bool MetadataPropertiesHasBeenSet() const { return m_metadataPropertiesHasBeenSet; }
234 
235 
SetMetadataProperties(const MetadataProperties & value)236     inline void SetMetadataProperties(const MetadataProperties& value) { m_metadataPropertiesHasBeenSet = true; m_metadataProperties = value; }
237 
238 
SetMetadataProperties(MetadataProperties && value)239     inline void SetMetadataProperties(MetadataProperties&& value) { m_metadataPropertiesHasBeenSet = true; m_metadataProperties = std::move(value); }
240 
241 
WithMetadataProperties(const MetadataProperties & value)242     inline CreateArtifactRequest& WithMetadataProperties(const MetadataProperties& value) { SetMetadataProperties(value); return *this;}
243 
244 
WithMetadataProperties(MetadataProperties && value)245     inline CreateArtifactRequest& WithMetadataProperties(MetadataProperties&& value) { SetMetadataProperties(std::move(value)); return *this;}
246 
247 
248     /**
249      * <p>A list of tags to apply to the artifact.</p>
250      */
GetTags()251     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
252 
253     /**
254      * <p>A list of tags to apply to the artifact.</p>
255      */
TagsHasBeenSet()256     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
257 
258     /**
259      * <p>A list of tags to apply to the artifact.</p>
260      */
SetTags(const Aws::Vector<Tag> & value)261     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
262 
263     /**
264      * <p>A list of tags to apply to the artifact.</p>
265      */
SetTags(Aws::Vector<Tag> && value)266     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
267 
268     /**
269      * <p>A list of tags to apply to the artifact.</p>
270      */
WithTags(const Aws::Vector<Tag> & value)271     inline CreateArtifactRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
272 
273     /**
274      * <p>A list of tags to apply to the artifact.</p>
275      */
WithTags(Aws::Vector<Tag> && value)276     inline CreateArtifactRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
277 
278     /**
279      * <p>A list of tags to apply to the artifact.</p>
280      */
AddTags(const Tag & value)281     inline CreateArtifactRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
282 
283     /**
284      * <p>A list of tags to apply to the artifact.</p>
285      */
AddTags(Tag && value)286     inline CreateArtifactRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
287 
288   private:
289 
290     Aws::String m_artifactName;
291     bool m_artifactNameHasBeenSet;
292 
293     ArtifactSource m_source;
294     bool m_sourceHasBeenSet;
295 
296     Aws::String m_artifactType;
297     bool m_artifactTypeHasBeenSet;
298 
299     Aws::Map<Aws::String, Aws::String> m_properties;
300     bool m_propertiesHasBeenSet;
301 
302     MetadataProperties m_metadataProperties;
303     bool m_metadataPropertiesHasBeenSet;
304 
305     Aws::Vector<Tag> m_tags;
306     bool m_tagsHasBeenSet;
307   };
308 
309 } // namespace Model
310 } // namespace SageMaker
311 } // namespace Aws
312