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/ec2/EC2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/ec2/model/DnsNameState.h>
12 #include <aws/ec2/model/ServiceTypeDetail.h>
13 #include <aws/ec2/model/PrivateDnsDetails.h>
14 #include <aws/ec2/model/Tag.h>
15 #include <utility>
16 
17 namespace Aws
18 {
19 namespace Utils
20 {
21 namespace Xml
22 {
23   class XmlNode;
24 } // namespace Xml
25 } // namespace Utils
26 namespace EC2
27 {
28 namespace Model
29 {
30 
31   /**
32    * <p>Describes a VPC endpoint service.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ServiceDetail">AWS
34    * API Reference</a></p>
35    */
36   class AWS_EC2_API ServiceDetail
37   {
38   public:
39     ServiceDetail();
40     ServiceDetail(const Aws::Utils::Xml::XmlNode& xmlNode);
41     ServiceDetail& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
42 
43     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
44     void OutputToStream(Aws::OStream& oStream, const char* location) const;
45 
46 
47     /**
48      * <p>The Amazon Resource Name (ARN) of the service.</p>
49      */
GetServiceName()50     inline const Aws::String& GetServiceName() const{ return m_serviceName; }
51 
52     /**
53      * <p>The Amazon Resource Name (ARN) of the service.</p>
54      */
ServiceNameHasBeenSet()55     inline bool ServiceNameHasBeenSet() const { return m_serviceNameHasBeenSet; }
56 
57     /**
58      * <p>The Amazon Resource Name (ARN) of the service.</p>
59      */
SetServiceName(const Aws::String & value)60     inline void SetServiceName(const Aws::String& value) { m_serviceNameHasBeenSet = true; m_serviceName = value; }
61 
62     /**
63      * <p>The Amazon Resource Name (ARN) of the service.</p>
64      */
SetServiceName(Aws::String && value)65     inline void SetServiceName(Aws::String&& value) { m_serviceNameHasBeenSet = true; m_serviceName = std::move(value); }
66 
67     /**
68      * <p>The Amazon Resource Name (ARN) of the service.</p>
69      */
SetServiceName(const char * value)70     inline void SetServiceName(const char* value) { m_serviceNameHasBeenSet = true; m_serviceName.assign(value); }
71 
72     /**
73      * <p>The Amazon Resource Name (ARN) of the service.</p>
74      */
WithServiceName(const Aws::String & value)75     inline ServiceDetail& WithServiceName(const Aws::String& value) { SetServiceName(value); return *this;}
76 
77     /**
78      * <p>The Amazon Resource Name (ARN) of the service.</p>
79      */
WithServiceName(Aws::String && value)80     inline ServiceDetail& WithServiceName(Aws::String&& value) { SetServiceName(std::move(value)); return *this;}
81 
82     /**
83      * <p>The Amazon Resource Name (ARN) of the service.</p>
84      */
WithServiceName(const char * value)85     inline ServiceDetail& WithServiceName(const char* value) { SetServiceName(value); return *this;}
86 
87 
88     /**
89      * <p>The ID of the endpoint service.</p>
90      */
GetServiceId()91     inline const Aws::String& GetServiceId() const{ return m_serviceId; }
92 
93     /**
94      * <p>The ID of the endpoint service.</p>
95      */
ServiceIdHasBeenSet()96     inline bool ServiceIdHasBeenSet() const { return m_serviceIdHasBeenSet; }
97 
98     /**
99      * <p>The ID of the endpoint service.</p>
100      */
SetServiceId(const Aws::String & value)101     inline void SetServiceId(const Aws::String& value) { m_serviceIdHasBeenSet = true; m_serviceId = value; }
102 
103     /**
104      * <p>The ID of the endpoint service.</p>
105      */
SetServiceId(Aws::String && value)106     inline void SetServiceId(Aws::String&& value) { m_serviceIdHasBeenSet = true; m_serviceId = std::move(value); }
107 
108     /**
109      * <p>The ID of the endpoint service.</p>
110      */
SetServiceId(const char * value)111     inline void SetServiceId(const char* value) { m_serviceIdHasBeenSet = true; m_serviceId.assign(value); }
112 
113     /**
114      * <p>The ID of the endpoint service.</p>
115      */
WithServiceId(const Aws::String & value)116     inline ServiceDetail& WithServiceId(const Aws::String& value) { SetServiceId(value); return *this;}
117 
118     /**
119      * <p>The ID of the endpoint service.</p>
120      */
WithServiceId(Aws::String && value)121     inline ServiceDetail& WithServiceId(Aws::String&& value) { SetServiceId(std::move(value)); return *this;}
122 
123     /**
124      * <p>The ID of the endpoint service.</p>
125      */
WithServiceId(const char * value)126     inline ServiceDetail& WithServiceId(const char* value) { SetServiceId(value); return *this;}
127 
128 
129     /**
130      * <p>The type of service.</p>
131      */
GetServiceType()132     inline const Aws::Vector<ServiceTypeDetail>& GetServiceType() const{ return m_serviceType; }
133 
134     /**
135      * <p>The type of service.</p>
136      */
ServiceTypeHasBeenSet()137     inline bool ServiceTypeHasBeenSet() const { return m_serviceTypeHasBeenSet; }
138 
139     /**
140      * <p>The type of service.</p>
141      */
SetServiceType(const Aws::Vector<ServiceTypeDetail> & value)142     inline void SetServiceType(const Aws::Vector<ServiceTypeDetail>& value) { m_serviceTypeHasBeenSet = true; m_serviceType = value; }
143 
144     /**
145      * <p>The type of service.</p>
146      */
SetServiceType(Aws::Vector<ServiceTypeDetail> && value)147     inline void SetServiceType(Aws::Vector<ServiceTypeDetail>&& value) { m_serviceTypeHasBeenSet = true; m_serviceType = std::move(value); }
148 
149     /**
150      * <p>The type of service.</p>
151      */
WithServiceType(const Aws::Vector<ServiceTypeDetail> & value)152     inline ServiceDetail& WithServiceType(const Aws::Vector<ServiceTypeDetail>& value) { SetServiceType(value); return *this;}
153 
154     /**
155      * <p>The type of service.</p>
156      */
WithServiceType(Aws::Vector<ServiceTypeDetail> && value)157     inline ServiceDetail& WithServiceType(Aws::Vector<ServiceTypeDetail>&& value) { SetServiceType(std::move(value)); return *this;}
158 
159     /**
160      * <p>The type of service.</p>
161      */
AddServiceType(const ServiceTypeDetail & value)162     inline ServiceDetail& AddServiceType(const ServiceTypeDetail& value) { m_serviceTypeHasBeenSet = true; m_serviceType.push_back(value); return *this; }
163 
164     /**
165      * <p>The type of service.</p>
166      */
AddServiceType(ServiceTypeDetail && value)167     inline ServiceDetail& AddServiceType(ServiceTypeDetail&& value) { m_serviceTypeHasBeenSet = true; m_serviceType.push_back(std::move(value)); return *this; }
168 
169 
170     /**
171      * <p>The Availability Zones in which the service is available.</p>
172      */
GetAvailabilityZones()173     inline const Aws::Vector<Aws::String>& GetAvailabilityZones() const{ return m_availabilityZones; }
174 
175     /**
176      * <p>The Availability Zones in which the service is available.</p>
177      */
AvailabilityZonesHasBeenSet()178     inline bool AvailabilityZonesHasBeenSet() const { return m_availabilityZonesHasBeenSet; }
179 
180     /**
181      * <p>The Availability Zones in which the service is available.</p>
182      */
SetAvailabilityZones(const Aws::Vector<Aws::String> & value)183     inline void SetAvailabilityZones(const Aws::Vector<Aws::String>& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = value; }
184 
185     /**
186      * <p>The Availability Zones in which the service is available.</p>
187      */
SetAvailabilityZones(Aws::Vector<Aws::String> && value)188     inline void SetAvailabilityZones(Aws::Vector<Aws::String>&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = std::move(value); }
189 
190     /**
191      * <p>The Availability Zones in which the service is available.</p>
192      */
WithAvailabilityZones(const Aws::Vector<Aws::String> & value)193     inline ServiceDetail& WithAvailabilityZones(const Aws::Vector<Aws::String>& value) { SetAvailabilityZones(value); return *this;}
194 
195     /**
196      * <p>The Availability Zones in which the service is available.</p>
197      */
WithAvailabilityZones(Aws::Vector<Aws::String> && value)198     inline ServiceDetail& WithAvailabilityZones(Aws::Vector<Aws::String>&& value) { SetAvailabilityZones(std::move(value)); return *this;}
199 
200     /**
201      * <p>The Availability Zones in which the service is available.</p>
202      */
AddAvailabilityZones(const Aws::String & value)203     inline ServiceDetail& AddAvailabilityZones(const Aws::String& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; }
204 
205     /**
206      * <p>The Availability Zones in which the service is available.</p>
207      */
AddAvailabilityZones(Aws::String && value)208     inline ServiceDetail& AddAvailabilityZones(Aws::String&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(std::move(value)); return *this; }
209 
210     /**
211      * <p>The Availability Zones in which the service is available.</p>
212      */
AddAvailabilityZones(const char * value)213     inline ServiceDetail& AddAvailabilityZones(const char* value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; }
214 
215 
216     /**
217      * <p>The Amazon Web Services account ID of the service owner.</p>
218      */
GetOwner()219     inline const Aws::String& GetOwner() const{ return m_owner; }
220 
221     /**
222      * <p>The Amazon Web Services account ID of the service owner.</p>
223      */
OwnerHasBeenSet()224     inline bool OwnerHasBeenSet() const { return m_ownerHasBeenSet; }
225 
226     /**
227      * <p>The Amazon Web Services account ID of the service owner.</p>
228      */
SetOwner(const Aws::String & value)229     inline void SetOwner(const Aws::String& value) { m_ownerHasBeenSet = true; m_owner = value; }
230 
231     /**
232      * <p>The Amazon Web Services account ID of the service owner.</p>
233      */
SetOwner(Aws::String && value)234     inline void SetOwner(Aws::String&& value) { m_ownerHasBeenSet = true; m_owner = std::move(value); }
235 
236     /**
237      * <p>The Amazon Web Services account ID of the service owner.</p>
238      */
SetOwner(const char * value)239     inline void SetOwner(const char* value) { m_ownerHasBeenSet = true; m_owner.assign(value); }
240 
241     /**
242      * <p>The Amazon Web Services account ID of the service owner.</p>
243      */
WithOwner(const Aws::String & value)244     inline ServiceDetail& WithOwner(const Aws::String& value) { SetOwner(value); return *this;}
245 
246     /**
247      * <p>The Amazon Web Services account ID of the service owner.</p>
248      */
WithOwner(Aws::String && value)249     inline ServiceDetail& WithOwner(Aws::String&& value) { SetOwner(std::move(value)); return *this;}
250 
251     /**
252      * <p>The Amazon Web Services account ID of the service owner.</p>
253      */
WithOwner(const char * value)254     inline ServiceDetail& WithOwner(const char* value) { SetOwner(value); return *this;}
255 
256 
257     /**
258      * <p>The DNS names for the service.</p>
259      */
GetBaseEndpointDnsNames()260     inline const Aws::Vector<Aws::String>& GetBaseEndpointDnsNames() const{ return m_baseEndpointDnsNames; }
261 
262     /**
263      * <p>The DNS names for the service.</p>
264      */
BaseEndpointDnsNamesHasBeenSet()265     inline bool BaseEndpointDnsNamesHasBeenSet() const { return m_baseEndpointDnsNamesHasBeenSet; }
266 
267     /**
268      * <p>The DNS names for the service.</p>
269      */
SetBaseEndpointDnsNames(const Aws::Vector<Aws::String> & value)270     inline void SetBaseEndpointDnsNames(const Aws::Vector<Aws::String>& value) { m_baseEndpointDnsNamesHasBeenSet = true; m_baseEndpointDnsNames = value; }
271 
272     /**
273      * <p>The DNS names for the service.</p>
274      */
SetBaseEndpointDnsNames(Aws::Vector<Aws::String> && value)275     inline void SetBaseEndpointDnsNames(Aws::Vector<Aws::String>&& value) { m_baseEndpointDnsNamesHasBeenSet = true; m_baseEndpointDnsNames = std::move(value); }
276 
277     /**
278      * <p>The DNS names for the service.</p>
279      */
WithBaseEndpointDnsNames(const Aws::Vector<Aws::String> & value)280     inline ServiceDetail& WithBaseEndpointDnsNames(const Aws::Vector<Aws::String>& value) { SetBaseEndpointDnsNames(value); return *this;}
281 
282     /**
283      * <p>The DNS names for the service.</p>
284      */
WithBaseEndpointDnsNames(Aws::Vector<Aws::String> && value)285     inline ServiceDetail& WithBaseEndpointDnsNames(Aws::Vector<Aws::String>&& value) { SetBaseEndpointDnsNames(std::move(value)); return *this;}
286 
287     /**
288      * <p>The DNS names for the service.</p>
289      */
AddBaseEndpointDnsNames(const Aws::String & value)290     inline ServiceDetail& AddBaseEndpointDnsNames(const Aws::String& value) { m_baseEndpointDnsNamesHasBeenSet = true; m_baseEndpointDnsNames.push_back(value); return *this; }
291 
292     /**
293      * <p>The DNS names for the service.</p>
294      */
AddBaseEndpointDnsNames(Aws::String && value)295     inline ServiceDetail& AddBaseEndpointDnsNames(Aws::String&& value) { m_baseEndpointDnsNamesHasBeenSet = true; m_baseEndpointDnsNames.push_back(std::move(value)); return *this; }
296 
297     /**
298      * <p>The DNS names for the service.</p>
299      */
AddBaseEndpointDnsNames(const char * value)300     inline ServiceDetail& AddBaseEndpointDnsNames(const char* value) { m_baseEndpointDnsNamesHasBeenSet = true; m_baseEndpointDnsNames.push_back(value); return *this; }
301 
302 
303     /**
304      * <p>The private DNS name for the service.</p>
305      */
GetPrivateDnsName()306     inline const Aws::String& GetPrivateDnsName() const{ return m_privateDnsName; }
307 
308     /**
309      * <p>The private DNS name for the service.</p>
310      */
PrivateDnsNameHasBeenSet()311     inline bool PrivateDnsNameHasBeenSet() const { return m_privateDnsNameHasBeenSet; }
312 
313     /**
314      * <p>The private DNS name for the service.</p>
315      */
SetPrivateDnsName(const Aws::String & value)316     inline void SetPrivateDnsName(const Aws::String& value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName = value; }
317 
318     /**
319      * <p>The private DNS name for the service.</p>
320      */
SetPrivateDnsName(Aws::String && value)321     inline void SetPrivateDnsName(Aws::String&& value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName = std::move(value); }
322 
323     /**
324      * <p>The private DNS name for the service.</p>
325      */
SetPrivateDnsName(const char * value)326     inline void SetPrivateDnsName(const char* value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName.assign(value); }
327 
328     /**
329      * <p>The private DNS name for the service.</p>
330      */
WithPrivateDnsName(const Aws::String & value)331     inline ServiceDetail& WithPrivateDnsName(const Aws::String& value) { SetPrivateDnsName(value); return *this;}
332 
333     /**
334      * <p>The private DNS name for the service.</p>
335      */
WithPrivateDnsName(Aws::String && value)336     inline ServiceDetail& WithPrivateDnsName(Aws::String&& value) { SetPrivateDnsName(std::move(value)); return *this;}
337 
338     /**
339      * <p>The private DNS name for the service.</p>
340      */
WithPrivateDnsName(const char * value)341     inline ServiceDetail& WithPrivateDnsName(const char* value) { SetPrivateDnsName(value); return *this;}
342 
343 
344     /**
345      * <p>The private DNS names assigned to the VPC endpoint service. </p>
346      */
GetPrivateDnsNames()347     inline const Aws::Vector<PrivateDnsDetails>& GetPrivateDnsNames() const{ return m_privateDnsNames; }
348 
349     /**
350      * <p>The private DNS names assigned to the VPC endpoint service. </p>
351      */
PrivateDnsNamesHasBeenSet()352     inline bool PrivateDnsNamesHasBeenSet() const { return m_privateDnsNamesHasBeenSet; }
353 
354     /**
355      * <p>The private DNS names assigned to the VPC endpoint service. </p>
356      */
SetPrivateDnsNames(const Aws::Vector<PrivateDnsDetails> & value)357     inline void SetPrivateDnsNames(const Aws::Vector<PrivateDnsDetails>& value) { m_privateDnsNamesHasBeenSet = true; m_privateDnsNames = value; }
358 
359     /**
360      * <p>The private DNS names assigned to the VPC endpoint service. </p>
361      */
SetPrivateDnsNames(Aws::Vector<PrivateDnsDetails> && value)362     inline void SetPrivateDnsNames(Aws::Vector<PrivateDnsDetails>&& value) { m_privateDnsNamesHasBeenSet = true; m_privateDnsNames = std::move(value); }
363 
364     /**
365      * <p>The private DNS names assigned to the VPC endpoint service. </p>
366      */
WithPrivateDnsNames(const Aws::Vector<PrivateDnsDetails> & value)367     inline ServiceDetail& WithPrivateDnsNames(const Aws::Vector<PrivateDnsDetails>& value) { SetPrivateDnsNames(value); return *this;}
368 
369     /**
370      * <p>The private DNS names assigned to the VPC endpoint service. </p>
371      */
WithPrivateDnsNames(Aws::Vector<PrivateDnsDetails> && value)372     inline ServiceDetail& WithPrivateDnsNames(Aws::Vector<PrivateDnsDetails>&& value) { SetPrivateDnsNames(std::move(value)); return *this;}
373 
374     /**
375      * <p>The private DNS names assigned to the VPC endpoint service. </p>
376      */
AddPrivateDnsNames(const PrivateDnsDetails & value)377     inline ServiceDetail& AddPrivateDnsNames(const PrivateDnsDetails& value) { m_privateDnsNamesHasBeenSet = true; m_privateDnsNames.push_back(value); return *this; }
378 
379     /**
380      * <p>The private DNS names assigned to the VPC endpoint service. </p>
381      */
AddPrivateDnsNames(PrivateDnsDetails && value)382     inline ServiceDetail& AddPrivateDnsNames(PrivateDnsDetails&& value) { m_privateDnsNamesHasBeenSet = true; m_privateDnsNames.push_back(std::move(value)); return *this; }
383 
384 
385     /**
386      * <p>Indicates whether the service supports endpoint policies.</p>
387      */
GetVpcEndpointPolicySupported()388     inline bool GetVpcEndpointPolicySupported() const{ return m_vpcEndpointPolicySupported; }
389 
390     /**
391      * <p>Indicates whether the service supports endpoint policies.</p>
392      */
VpcEndpointPolicySupportedHasBeenSet()393     inline bool VpcEndpointPolicySupportedHasBeenSet() const { return m_vpcEndpointPolicySupportedHasBeenSet; }
394 
395     /**
396      * <p>Indicates whether the service supports endpoint policies.</p>
397      */
SetVpcEndpointPolicySupported(bool value)398     inline void SetVpcEndpointPolicySupported(bool value) { m_vpcEndpointPolicySupportedHasBeenSet = true; m_vpcEndpointPolicySupported = value; }
399 
400     /**
401      * <p>Indicates whether the service supports endpoint policies.</p>
402      */
WithVpcEndpointPolicySupported(bool value)403     inline ServiceDetail& WithVpcEndpointPolicySupported(bool value) { SetVpcEndpointPolicySupported(value); return *this;}
404 
405 
406     /**
407      * <p>Indicates whether VPC endpoint connection requests to the service must be
408      * accepted by the service owner.</p>
409      */
GetAcceptanceRequired()410     inline bool GetAcceptanceRequired() const{ return m_acceptanceRequired; }
411 
412     /**
413      * <p>Indicates whether VPC endpoint connection requests to the service must be
414      * accepted by the service owner.</p>
415      */
AcceptanceRequiredHasBeenSet()416     inline bool AcceptanceRequiredHasBeenSet() const { return m_acceptanceRequiredHasBeenSet; }
417 
418     /**
419      * <p>Indicates whether VPC endpoint connection requests to the service must be
420      * accepted by the service owner.</p>
421      */
SetAcceptanceRequired(bool value)422     inline void SetAcceptanceRequired(bool value) { m_acceptanceRequiredHasBeenSet = true; m_acceptanceRequired = value; }
423 
424     /**
425      * <p>Indicates whether VPC endpoint connection requests to the service must be
426      * accepted by the service owner.</p>
427      */
WithAcceptanceRequired(bool value)428     inline ServiceDetail& WithAcceptanceRequired(bool value) { SetAcceptanceRequired(value); return *this;}
429 
430 
431     /**
432      * <p>Indicates whether the service manages its VPC endpoints. Management of the
433      * service VPC endpoints using the VPC endpoint API is restricted.</p>
434      */
GetManagesVpcEndpoints()435     inline bool GetManagesVpcEndpoints() const{ return m_managesVpcEndpoints; }
436 
437     /**
438      * <p>Indicates whether the service manages its VPC endpoints. Management of the
439      * service VPC endpoints using the VPC endpoint API is restricted.</p>
440      */
ManagesVpcEndpointsHasBeenSet()441     inline bool ManagesVpcEndpointsHasBeenSet() const { return m_managesVpcEndpointsHasBeenSet; }
442 
443     /**
444      * <p>Indicates whether the service manages its VPC endpoints. Management of the
445      * service VPC endpoints using the VPC endpoint API is restricted.</p>
446      */
SetManagesVpcEndpoints(bool value)447     inline void SetManagesVpcEndpoints(bool value) { m_managesVpcEndpointsHasBeenSet = true; m_managesVpcEndpoints = value; }
448 
449     /**
450      * <p>Indicates whether the service manages its VPC endpoints. Management of the
451      * service VPC endpoints using the VPC endpoint API is restricted.</p>
452      */
WithManagesVpcEndpoints(bool value)453     inline ServiceDetail& WithManagesVpcEndpoints(bool value) { SetManagesVpcEndpoints(value); return *this;}
454 
455 
456     /**
457      * <p>Any tags assigned to the service.</p>
458      */
GetTags()459     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
460 
461     /**
462      * <p>Any tags assigned to the service.</p>
463      */
TagsHasBeenSet()464     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
465 
466     /**
467      * <p>Any tags assigned to the service.</p>
468      */
SetTags(const Aws::Vector<Tag> & value)469     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
470 
471     /**
472      * <p>Any tags assigned to the service.</p>
473      */
SetTags(Aws::Vector<Tag> && value)474     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
475 
476     /**
477      * <p>Any tags assigned to the service.</p>
478      */
WithTags(const Aws::Vector<Tag> & value)479     inline ServiceDetail& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
480 
481     /**
482      * <p>Any tags assigned to the service.</p>
483      */
WithTags(Aws::Vector<Tag> && value)484     inline ServiceDetail& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
485 
486     /**
487      * <p>Any tags assigned to the service.</p>
488      */
AddTags(const Tag & value)489     inline ServiceDetail& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
490 
491     /**
492      * <p>Any tags assigned to the service.</p>
493      */
AddTags(Tag && value)494     inline ServiceDetail& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
495 
496 
497     /**
498      * <p>The verification state of the VPC endpoint service.</p> <p>Consumers of the
499      * endpoint service cannot use the private name when the state is not
500      * <code>verified</code>.</p>
501      */
GetPrivateDnsNameVerificationState()502     inline const DnsNameState& GetPrivateDnsNameVerificationState() const{ return m_privateDnsNameVerificationState; }
503 
504     /**
505      * <p>The verification state of the VPC endpoint service.</p> <p>Consumers of the
506      * endpoint service cannot use the private name when the state is not
507      * <code>verified</code>.</p>
508      */
PrivateDnsNameVerificationStateHasBeenSet()509     inline bool PrivateDnsNameVerificationStateHasBeenSet() const { return m_privateDnsNameVerificationStateHasBeenSet; }
510 
511     /**
512      * <p>The verification state of the VPC endpoint service.</p> <p>Consumers of the
513      * endpoint service cannot use the private name when the state is not
514      * <code>verified</code>.</p>
515      */
SetPrivateDnsNameVerificationState(const DnsNameState & value)516     inline void SetPrivateDnsNameVerificationState(const DnsNameState& value) { m_privateDnsNameVerificationStateHasBeenSet = true; m_privateDnsNameVerificationState = value; }
517 
518     /**
519      * <p>The verification state of the VPC endpoint service.</p> <p>Consumers of the
520      * endpoint service cannot use the private name when the state is not
521      * <code>verified</code>.</p>
522      */
SetPrivateDnsNameVerificationState(DnsNameState && value)523     inline void SetPrivateDnsNameVerificationState(DnsNameState&& value) { m_privateDnsNameVerificationStateHasBeenSet = true; m_privateDnsNameVerificationState = std::move(value); }
524 
525     /**
526      * <p>The verification state of the VPC endpoint service.</p> <p>Consumers of the
527      * endpoint service cannot use the private name when the state is not
528      * <code>verified</code>.</p>
529      */
WithPrivateDnsNameVerificationState(const DnsNameState & value)530     inline ServiceDetail& WithPrivateDnsNameVerificationState(const DnsNameState& value) { SetPrivateDnsNameVerificationState(value); return *this;}
531 
532     /**
533      * <p>The verification state of the VPC endpoint service.</p> <p>Consumers of the
534      * endpoint service cannot use the private name when the state is not
535      * <code>verified</code>.</p>
536      */
WithPrivateDnsNameVerificationState(DnsNameState && value)537     inline ServiceDetail& WithPrivateDnsNameVerificationState(DnsNameState&& value) { SetPrivateDnsNameVerificationState(std::move(value)); return *this;}
538 
539   private:
540 
541     Aws::String m_serviceName;
542     bool m_serviceNameHasBeenSet;
543 
544     Aws::String m_serviceId;
545     bool m_serviceIdHasBeenSet;
546 
547     Aws::Vector<ServiceTypeDetail> m_serviceType;
548     bool m_serviceTypeHasBeenSet;
549 
550     Aws::Vector<Aws::String> m_availabilityZones;
551     bool m_availabilityZonesHasBeenSet;
552 
553     Aws::String m_owner;
554     bool m_ownerHasBeenSet;
555 
556     Aws::Vector<Aws::String> m_baseEndpointDnsNames;
557     bool m_baseEndpointDnsNamesHasBeenSet;
558 
559     Aws::String m_privateDnsName;
560     bool m_privateDnsNameHasBeenSet;
561 
562     Aws::Vector<PrivateDnsDetails> m_privateDnsNames;
563     bool m_privateDnsNamesHasBeenSet;
564 
565     bool m_vpcEndpointPolicySupported;
566     bool m_vpcEndpointPolicySupportedHasBeenSet;
567 
568     bool m_acceptanceRequired;
569     bool m_acceptanceRequiredHasBeenSet;
570 
571     bool m_managesVpcEndpoints;
572     bool m_managesVpcEndpointsHasBeenSet;
573 
574     Aws::Vector<Tag> m_tags;
575     bool m_tagsHasBeenSet;
576 
577     DnsNameState m_privateDnsNameVerificationState;
578     bool m_privateDnsNameVerificationStateHasBeenSet;
579   };
580 
581 } // namespace Model
582 } // namespace EC2
583 } // namespace Aws
584