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/config/ConfigService_EXPORTS.h>
8 #include <aws/config/model/ResourceType.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace ConfigService
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>The details that identify a resource that is discovered by Config, including
30    * the resource type, ID, and (if available) the custom resource
31    * name.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ResourceIdentifier">AWS
33    * API Reference</a></p>
34    */
35   class AWS_CONFIGSERVICE_API ResourceIdentifier
36   {
37   public:
38     ResourceIdentifier();
39     ResourceIdentifier(Aws::Utils::Json::JsonView jsonValue);
40     ResourceIdentifier& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The type of resource.</p>
46      */
GetResourceType()47     inline const ResourceType& GetResourceType() const{ return m_resourceType; }
48 
49     /**
50      * <p>The type of resource.</p>
51      */
ResourceTypeHasBeenSet()52     inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; }
53 
54     /**
55      * <p>The type of resource.</p>
56      */
SetResourceType(const ResourceType & value)57     inline void SetResourceType(const ResourceType& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; }
58 
59     /**
60      * <p>The type of resource.</p>
61      */
SetResourceType(ResourceType && value)62     inline void SetResourceType(ResourceType&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); }
63 
64     /**
65      * <p>The type of resource.</p>
66      */
WithResourceType(const ResourceType & value)67     inline ResourceIdentifier& WithResourceType(const ResourceType& value) { SetResourceType(value); return *this;}
68 
69     /**
70      * <p>The type of resource.</p>
71      */
WithResourceType(ResourceType && value)72     inline ResourceIdentifier& WithResourceType(ResourceType&& value) { SetResourceType(std::move(value)); return *this;}
73 
74 
75     /**
76      * <p>The ID of the resource (for example, <code>sg-xxxxxx</code>).</p>
77      */
GetResourceId()78     inline const Aws::String& GetResourceId() const{ return m_resourceId; }
79 
80     /**
81      * <p>The ID of the resource (for example, <code>sg-xxxxxx</code>).</p>
82      */
ResourceIdHasBeenSet()83     inline bool ResourceIdHasBeenSet() const { return m_resourceIdHasBeenSet; }
84 
85     /**
86      * <p>The ID of the resource (for example, <code>sg-xxxxxx</code>).</p>
87      */
SetResourceId(const Aws::String & value)88     inline void SetResourceId(const Aws::String& value) { m_resourceIdHasBeenSet = true; m_resourceId = value; }
89 
90     /**
91      * <p>The ID of the resource (for example, <code>sg-xxxxxx</code>).</p>
92      */
SetResourceId(Aws::String && value)93     inline void SetResourceId(Aws::String&& value) { m_resourceIdHasBeenSet = true; m_resourceId = std::move(value); }
94 
95     /**
96      * <p>The ID of the resource (for example, <code>sg-xxxxxx</code>).</p>
97      */
SetResourceId(const char * value)98     inline void SetResourceId(const char* value) { m_resourceIdHasBeenSet = true; m_resourceId.assign(value); }
99 
100     /**
101      * <p>The ID of the resource (for example, <code>sg-xxxxxx</code>).</p>
102      */
WithResourceId(const Aws::String & value)103     inline ResourceIdentifier& WithResourceId(const Aws::String& value) { SetResourceId(value); return *this;}
104 
105     /**
106      * <p>The ID of the resource (for example, <code>sg-xxxxxx</code>).</p>
107      */
WithResourceId(Aws::String && value)108     inline ResourceIdentifier& WithResourceId(Aws::String&& value) { SetResourceId(std::move(value)); return *this;}
109 
110     /**
111      * <p>The ID of the resource (for example, <code>sg-xxxxxx</code>).</p>
112      */
WithResourceId(const char * value)113     inline ResourceIdentifier& WithResourceId(const char* value) { SetResourceId(value); return *this;}
114 
115 
116     /**
117      * <p>The custom name of the resource (if available).</p>
118      */
GetResourceName()119     inline const Aws::String& GetResourceName() const{ return m_resourceName; }
120 
121     /**
122      * <p>The custom name of the resource (if available).</p>
123      */
ResourceNameHasBeenSet()124     inline bool ResourceNameHasBeenSet() const { return m_resourceNameHasBeenSet; }
125 
126     /**
127      * <p>The custom name of the resource (if available).</p>
128      */
SetResourceName(const Aws::String & value)129     inline void SetResourceName(const Aws::String& value) { m_resourceNameHasBeenSet = true; m_resourceName = value; }
130 
131     /**
132      * <p>The custom name of the resource (if available).</p>
133      */
SetResourceName(Aws::String && value)134     inline void SetResourceName(Aws::String&& value) { m_resourceNameHasBeenSet = true; m_resourceName = std::move(value); }
135 
136     /**
137      * <p>The custom name of the resource (if available).</p>
138      */
SetResourceName(const char * value)139     inline void SetResourceName(const char* value) { m_resourceNameHasBeenSet = true; m_resourceName.assign(value); }
140 
141     /**
142      * <p>The custom name of the resource (if available).</p>
143      */
WithResourceName(const Aws::String & value)144     inline ResourceIdentifier& WithResourceName(const Aws::String& value) { SetResourceName(value); return *this;}
145 
146     /**
147      * <p>The custom name of the resource (if available).</p>
148      */
WithResourceName(Aws::String && value)149     inline ResourceIdentifier& WithResourceName(Aws::String&& value) { SetResourceName(std::move(value)); return *this;}
150 
151     /**
152      * <p>The custom name of the resource (if available).</p>
153      */
WithResourceName(const char * value)154     inline ResourceIdentifier& WithResourceName(const char* value) { SetResourceName(value); return *this;}
155 
156 
157     /**
158      * <p>The time that the resource was deleted.</p>
159      */
GetResourceDeletionTime()160     inline const Aws::Utils::DateTime& GetResourceDeletionTime() const{ return m_resourceDeletionTime; }
161 
162     /**
163      * <p>The time that the resource was deleted.</p>
164      */
ResourceDeletionTimeHasBeenSet()165     inline bool ResourceDeletionTimeHasBeenSet() const { return m_resourceDeletionTimeHasBeenSet; }
166 
167     /**
168      * <p>The time that the resource was deleted.</p>
169      */
SetResourceDeletionTime(const Aws::Utils::DateTime & value)170     inline void SetResourceDeletionTime(const Aws::Utils::DateTime& value) { m_resourceDeletionTimeHasBeenSet = true; m_resourceDeletionTime = value; }
171 
172     /**
173      * <p>The time that the resource was deleted.</p>
174      */
SetResourceDeletionTime(Aws::Utils::DateTime && value)175     inline void SetResourceDeletionTime(Aws::Utils::DateTime&& value) { m_resourceDeletionTimeHasBeenSet = true; m_resourceDeletionTime = std::move(value); }
176 
177     /**
178      * <p>The time that the resource was deleted.</p>
179      */
WithResourceDeletionTime(const Aws::Utils::DateTime & value)180     inline ResourceIdentifier& WithResourceDeletionTime(const Aws::Utils::DateTime& value) { SetResourceDeletionTime(value); return *this;}
181 
182     /**
183      * <p>The time that the resource was deleted.</p>
184      */
WithResourceDeletionTime(Aws::Utils::DateTime && value)185     inline ResourceIdentifier& WithResourceDeletionTime(Aws::Utils::DateTime&& value) { SetResourceDeletionTime(std::move(value)); return *this;}
186 
187   private:
188 
189     ResourceType m_resourceType;
190     bool m_resourceTypeHasBeenSet;
191 
192     Aws::String m_resourceId;
193     bool m_resourceIdHasBeenSet;
194 
195     Aws::String m_resourceName;
196     bool m_resourceNameHasBeenSet;
197 
198     Aws::Utils::DateTime m_resourceDeletionTime;
199     bool m_resourceDeletionTimeHasBeenSet;
200   };
201 
202 } // namespace Model
203 } // namespace ConfigService
204 } // namespace Aws
205