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/ssm/SSMRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/ssm/model/InventorySchemaDeleteOption.h>
11 #include <utility>
12 #include <aws/core/utils/UUID.h>
13 
14 namespace Aws
15 {
16 namespace SSM
17 {
18 namespace Model
19 {
20 
21   /**
22    */
23   class AWS_SSM_API DeleteInventoryRequest : public SSMRequest
24   {
25   public:
26     DeleteInventoryRequest();
27 
28     // Service request name is the Operation name which will send this request out,
29     // each operation should has unique request name, so that we can get operation's name from this request.
30     // Note: this is not true for response, multiple operations may have the same response name,
31     // so we can not get operation's name from response.
GetServiceRequestName()32     inline virtual const char* GetServiceRequestName() const override { return "DeleteInventory"; }
33 
34     Aws::String SerializePayload() const override;
35 
36     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
37 
38 
39     /**
40      * <p>The name of the custom inventory type for which you want to delete either all
41      * previously collected data or the inventory type itself. </p>
42      */
GetTypeName()43     inline const Aws::String& GetTypeName() const{ return m_typeName; }
44 
45     /**
46      * <p>The name of the custom inventory type for which you want to delete either all
47      * previously collected data or the inventory type itself. </p>
48      */
TypeNameHasBeenSet()49     inline bool TypeNameHasBeenSet() const { return m_typeNameHasBeenSet; }
50 
51     /**
52      * <p>The name of the custom inventory type for which you want to delete either all
53      * previously collected data or the inventory type itself. </p>
54      */
SetTypeName(const Aws::String & value)55     inline void SetTypeName(const Aws::String& value) { m_typeNameHasBeenSet = true; m_typeName = value; }
56 
57     /**
58      * <p>The name of the custom inventory type for which you want to delete either all
59      * previously collected data or the inventory type itself. </p>
60      */
SetTypeName(Aws::String && value)61     inline void SetTypeName(Aws::String&& value) { m_typeNameHasBeenSet = true; m_typeName = std::move(value); }
62 
63     /**
64      * <p>The name of the custom inventory type for which you want to delete either all
65      * previously collected data or the inventory type itself. </p>
66      */
SetTypeName(const char * value)67     inline void SetTypeName(const char* value) { m_typeNameHasBeenSet = true; m_typeName.assign(value); }
68 
69     /**
70      * <p>The name of the custom inventory type for which you want to delete either all
71      * previously collected data or the inventory type itself. </p>
72      */
WithTypeName(const Aws::String & value)73     inline DeleteInventoryRequest& WithTypeName(const Aws::String& value) { SetTypeName(value); return *this;}
74 
75     /**
76      * <p>The name of the custom inventory type for which you want to delete either all
77      * previously collected data or the inventory type itself. </p>
78      */
WithTypeName(Aws::String && value)79     inline DeleteInventoryRequest& WithTypeName(Aws::String&& value) { SetTypeName(std::move(value)); return *this;}
80 
81     /**
82      * <p>The name of the custom inventory type for which you want to delete either all
83      * previously collected data or the inventory type itself. </p>
84      */
WithTypeName(const char * value)85     inline DeleteInventoryRequest& WithTypeName(const char* value) { SetTypeName(value); return *this;}
86 
87 
88     /**
89      * <p>Use the <code>SchemaDeleteOption</code> to delete a custom inventory type
90      * (schema). If you don't choose this option, the system only deletes existing
91      * inventory data associated with the custom inventory type. Choose one of the
92      * following options:</p> <p>DisableSchema: If you choose this option, the system
93      * ignores all inventory data for the specified version, and any earlier versions.
94      * To enable this schema again, you must call the <code>PutInventory</code>
95      * operation for a version greater than the disabled version.</p> <p>DeleteSchema:
96      * This option deletes the specified custom type from the Inventory service. You
97      * can recreate the schema later, if you want.</p>
98      */
GetSchemaDeleteOption()99     inline const InventorySchemaDeleteOption& GetSchemaDeleteOption() const{ return m_schemaDeleteOption; }
100 
101     /**
102      * <p>Use the <code>SchemaDeleteOption</code> to delete a custom inventory type
103      * (schema). If you don't choose this option, the system only deletes existing
104      * inventory data associated with the custom inventory type. Choose one of the
105      * following options:</p> <p>DisableSchema: If you choose this option, the system
106      * ignores all inventory data for the specified version, and any earlier versions.
107      * To enable this schema again, you must call the <code>PutInventory</code>
108      * operation for a version greater than the disabled version.</p> <p>DeleteSchema:
109      * This option deletes the specified custom type from the Inventory service. You
110      * can recreate the schema later, if you want.</p>
111      */
SchemaDeleteOptionHasBeenSet()112     inline bool SchemaDeleteOptionHasBeenSet() const { return m_schemaDeleteOptionHasBeenSet; }
113 
114     /**
115      * <p>Use the <code>SchemaDeleteOption</code> to delete a custom inventory type
116      * (schema). If you don't choose this option, the system only deletes existing
117      * inventory data associated with the custom inventory type. Choose one of the
118      * following options:</p> <p>DisableSchema: If you choose this option, the system
119      * ignores all inventory data for the specified version, and any earlier versions.
120      * To enable this schema again, you must call the <code>PutInventory</code>
121      * operation for a version greater than the disabled version.</p> <p>DeleteSchema:
122      * This option deletes the specified custom type from the Inventory service. You
123      * can recreate the schema later, if you want.</p>
124      */
SetSchemaDeleteOption(const InventorySchemaDeleteOption & value)125     inline void SetSchemaDeleteOption(const InventorySchemaDeleteOption& value) { m_schemaDeleteOptionHasBeenSet = true; m_schemaDeleteOption = value; }
126 
127     /**
128      * <p>Use the <code>SchemaDeleteOption</code> to delete a custom inventory type
129      * (schema). If you don't choose this option, the system only deletes existing
130      * inventory data associated with the custom inventory type. Choose one of the
131      * following options:</p> <p>DisableSchema: If you choose this option, the system
132      * ignores all inventory data for the specified version, and any earlier versions.
133      * To enable this schema again, you must call the <code>PutInventory</code>
134      * operation for a version greater than the disabled version.</p> <p>DeleteSchema:
135      * This option deletes the specified custom type from the Inventory service. You
136      * can recreate the schema later, if you want.</p>
137      */
SetSchemaDeleteOption(InventorySchemaDeleteOption && value)138     inline void SetSchemaDeleteOption(InventorySchemaDeleteOption&& value) { m_schemaDeleteOptionHasBeenSet = true; m_schemaDeleteOption = std::move(value); }
139 
140     /**
141      * <p>Use the <code>SchemaDeleteOption</code> to delete a custom inventory type
142      * (schema). If you don't choose this option, the system only deletes existing
143      * inventory data associated with the custom inventory type. Choose one of the
144      * following options:</p> <p>DisableSchema: If you choose this option, the system
145      * ignores all inventory data for the specified version, and any earlier versions.
146      * To enable this schema again, you must call the <code>PutInventory</code>
147      * operation for a version greater than the disabled version.</p> <p>DeleteSchema:
148      * This option deletes the specified custom type from the Inventory service. You
149      * can recreate the schema later, if you want.</p>
150      */
WithSchemaDeleteOption(const InventorySchemaDeleteOption & value)151     inline DeleteInventoryRequest& WithSchemaDeleteOption(const InventorySchemaDeleteOption& value) { SetSchemaDeleteOption(value); return *this;}
152 
153     /**
154      * <p>Use the <code>SchemaDeleteOption</code> to delete a custom inventory type
155      * (schema). If you don't choose this option, the system only deletes existing
156      * inventory data associated with the custom inventory type. Choose one of the
157      * following options:</p> <p>DisableSchema: If you choose this option, the system
158      * ignores all inventory data for the specified version, and any earlier versions.
159      * To enable this schema again, you must call the <code>PutInventory</code>
160      * operation for a version greater than the disabled version.</p> <p>DeleteSchema:
161      * This option deletes the specified custom type from the Inventory service. You
162      * can recreate the schema later, if you want.</p>
163      */
WithSchemaDeleteOption(InventorySchemaDeleteOption && value)164     inline DeleteInventoryRequest& WithSchemaDeleteOption(InventorySchemaDeleteOption&& value) { SetSchemaDeleteOption(std::move(value)); return *this;}
165 
166 
167     /**
168      * <p>Use this option to view a summary of the deletion request without deleting
169      * any data or the data type. This option is useful when you only want to
170      * understand what will be deleted. Once you validate that the data to be deleted
171      * is what you intend to delete, you can run the same command without specifying
172      * the <code>DryRun</code> option.</p>
173      */
GetDryRun()174     inline bool GetDryRun() const{ return m_dryRun; }
175 
176     /**
177      * <p>Use this option to view a summary of the deletion request without deleting
178      * any data or the data type. This option is useful when you only want to
179      * understand what will be deleted. Once you validate that the data to be deleted
180      * is what you intend to delete, you can run the same command without specifying
181      * the <code>DryRun</code> option.</p>
182      */
DryRunHasBeenSet()183     inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; }
184 
185     /**
186      * <p>Use this option to view a summary of the deletion request without deleting
187      * any data or the data type. This option is useful when you only want to
188      * understand what will be deleted. Once you validate that the data to be deleted
189      * is what you intend to delete, you can run the same command without specifying
190      * the <code>DryRun</code> option.</p>
191      */
SetDryRun(bool value)192     inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; }
193 
194     /**
195      * <p>Use this option to view a summary of the deletion request without deleting
196      * any data or the data type. This option is useful when you only want to
197      * understand what will be deleted. Once you validate that the data to be deleted
198      * is what you intend to delete, you can run the same command without specifying
199      * the <code>DryRun</code> option.</p>
200      */
WithDryRun(bool value)201     inline DeleteInventoryRequest& WithDryRun(bool value) { SetDryRun(value); return *this;}
202 
203 
204     /**
205      * <p>User-provided idempotency token.</p>
206      */
GetClientToken()207     inline const Aws::String& GetClientToken() const{ return m_clientToken; }
208 
209     /**
210      * <p>User-provided idempotency token.</p>
211      */
ClientTokenHasBeenSet()212     inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
213 
214     /**
215      * <p>User-provided idempotency token.</p>
216      */
SetClientToken(const Aws::String & value)217     inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; }
218 
219     /**
220      * <p>User-provided idempotency token.</p>
221      */
SetClientToken(Aws::String && value)222     inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); }
223 
224     /**
225      * <p>User-provided idempotency token.</p>
226      */
SetClientToken(const char * value)227     inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); }
228 
229     /**
230      * <p>User-provided idempotency token.</p>
231      */
WithClientToken(const Aws::String & value)232     inline DeleteInventoryRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;}
233 
234     /**
235      * <p>User-provided idempotency token.</p>
236      */
WithClientToken(Aws::String && value)237     inline DeleteInventoryRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;}
238 
239     /**
240      * <p>User-provided idempotency token.</p>
241      */
WithClientToken(const char * value)242     inline DeleteInventoryRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;}
243 
244   private:
245 
246     Aws::String m_typeName;
247     bool m_typeNameHasBeenSet;
248 
249     InventorySchemaDeleteOption m_schemaDeleteOption;
250     bool m_schemaDeleteOptionHasBeenSet;
251 
252     bool m_dryRun;
253     bool m_dryRunHasBeenSet;
254 
255     Aws::String m_clientToken;
256     bool m_clientTokenHasBeenSet;
257   };
258 
259 } // namespace Model
260 } // namespace SSM
261 } // namespace Aws
262