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/iotthingsgraph/IoTThingsGraph_EXPORTS.h>
8 #include <aws/iotthingsgraph/IoTThingsGraphRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/iotthingsgraph/model/DefinitionDocument.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace IoTThingsGraph
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_IOTTHINGSGRAPH_API UpdateSystemTemplateRequest : public IoTThingsGraphRequest
23   {
24   public:
25     UpdateSystemTemplateRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "UpdateSystemTemplate"; }
32 
33     Aws::String SerializePayload() const override;
34 
35     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
36 
37 
38     /**
39      * <p>The ID of the system to be updated.</p> <p>The ID should be in the following
40      * format.</p> <p> <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code>
41      * </p>
42      */
GetId()43     inline const Aws::String& GetId() const{ return m_id; }
44 
45     /**
46      * <p>The ID of the system to be updated.</p> <p>The ID should be in the following
47      * format.</p> <p> <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code>
48      * </p>
49      */
IdHasBeenSet()50     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
51 
52     /**
53      * <p>The ID of the system to be updated.</p> <p>The ID should be in the following
54      * format.</p> <p> <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code>
55      * </p>
56      */
SetId(const Aws::String & value)57     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
58 
59     /**
60      * <p>The ID of the system to be updated.</p> <p>The ID should be in the following
61      * format.</p> <p> <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code>
62      * </p>
63      */
SetId(Aws::String && value)64     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
65 
66     /**
67      * <p>The ID of the system to be updated.</p> <p>The ID should be in the following
68      * format.</p> <p> <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code>
69      * </p>
70      */
SetId(const char * value)71     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
72 
73     /**
74      * <p>The ID of the system to be updated.</p> <p>The ID should be in the following
75      * format.</p> <p> <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code>
76      * </p>
77      */
WithId(const Aws::String & value)78     inline UpdateSystemTemplateRequest& WithId(const Aws::String& value) { SetId(value); return *this;}
79 
80     /**
81      * <p>The ID of the system to be updated.</p> <p>The ID should be in the following
82      * format.</p> <p> <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code>
83      * </p>
84      */
WithId(Aws::String && value)85     inline UpdateSystemTemplateRequest& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
86 
87     /**
88      * <p>The ID of the system to be updated.</p> <p>The ID should be in the following
89      * format.</p> <p> <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code>
90      * </p>
91      */
WithId(const char * value)92     inline UpdateSystemTemplateRequest& WithId(const char* value) { SetId(value); return *this;}
93 
94 
95     /**
96      * <p>The <code>DefinitionDocument</code> that contains the updated system
97      * definition.</p>
98      */
GetDefinition()99     inline const DefinitionDocument& GetDefinition() const{ return m_definition; }
100 
101     /**
102      * <p>The <code>DefinitionDocument</code> that contains the updated system
103      * definition.</p>
104      */
DefinitionHasBeenSet()105     inline bool DefinitionHasBeenSet() const { return m_definitionHasBeenSet; }
106 
107     /**
108      * <p>The <code>DefinitionDocument</code> that contains the updated system
109      * definition.</p>
110      */
SetDefinition(const DefinitionDocument & value)111     inline void SetDefinition(const DefinitionDocument& value) { m_definitionHasBeenSet = true; m_definition = value; }
112 
113     /**
114      * <p>The <code>DefinitionDocument</code> that contains the updated system
115      * definition.</p>
116      */
SetDefinition(DefinitionDocument && value)117     inline void SetDefinition(DefinitionDocument&& value) { m_definitionHasBeenSet = true; m_definition = std::move(value); }
118 
119     /**
120      * <p>The <code>DefinitionDocument</code> that contains the updated system
121      * definition.</p>
122      */
WithDefinition(const DefinitionDocument & value)123     inline UpdateSystemTemplateRequest& WithDefinition(const DefinitionDocument& value) { SetDefinition(value); return *this;}
124 
125     /**
126      * <p>The <code>DefinitionDocument</code> that contains the updated system
127      * definition.</p>
128      */
WithDefinition(DefinitionDocument && value)129     inline UpdateSystemTemplateRequest& WithDefinition(DefinitionDocument&& value) { SetDefinition(std::move(value)); return *this;}
130 
131 
132     /**
133      * <p>The version of the user's namespace. Defaults to the latest version of the
134      * user's namespace.</p> <p>If no value is specified, the latest version is used by
135      * default.</p>
136      */
GetCompatibleNamespaceVersion()137     inline long long GetCompatibleNamespaceVersion() const{ return m_compatibleNamespaceVersion; }
138 
139     /**
140      * <p>The version of the user's namespace. Defaults to the latest version of the
141      * user's namespace.</p> <p>If no value is specified, the latest version is used by
142      * default.</p>
143      */
CompatibleNamespaceVersionHasBeenSet()144     inline bool CompatibleNamespaceVersionHasBeenSet() const { return m_compatibleNamespaceVersionHasBeenSet; }
145 
146     /**
147      * <p>The version of the user's namespace. Defaults to the latest version of the
148      * user's namespace.</p> <p>If no value is specified, the latest version is used by
149      * default.</p>
150      */
SetCompatibleNamespaceVersion(long long value)151     inline void SetCompatibleNamespaceVersion(long long value) { m_compatibleNamespaceVersionHasBeenSet = true; m_compatibleNamespaceVersion = value; }
152 
153     /**
154      * <p>The version of the user's namespace. Defaults to the latest version of the
155      * user's namespace.</p> <p>If no value is specified, the latest version is used by
156      * default.</p>
157      */
WithCompatibleNamespaceVersion(long long value)158     inline UpdateSystemTemplateRequest& WithCompatibleNamespaceVersion(long long value) { SetCompatibleNamespaceVersion(value); return *this;}
159 
160   private:
161 
162     Aws::String m_id;
163     bool m_idHasBeenSet;
164 
165     DefinitionDocument m_definition;
166     bool m_definitionHasBeenSet;
167 
168     long long m_compatibleNamespaceVersion;
169     bool m_compatibleNamespaceVersionHasBeenSet;
170   };
171 
172 } // namespace Model
173 } // namespace IoTThingsGraph
174 } // namespace Aws
175