/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes the options for a transit gateway multicast domain.

See * Also:

AWS * API Reference

*/ class TransitGatewayMulticastDomainOptions { public: AWS_EC2_API TransitGatewayMulticastDomainOptions(); AWS_EC2_API TransitGatewayMulticastDomainOptions(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API TransitGatewayMulticastDomainOptions& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

Indicates whether Internet Group Management Protocol (IGMP) version 2 is * turned on for the transit gateway multicast domain.

*/ inline const Igmpv2SupportValue& GetIgmpv2Support() const{ return m_igmpv2Support; } /** *

Indicates whether Internet Group Management Protocol (IGMP) version 2 is * turned on for the transit gateway multicast domain.

*/ inline bool Igmpv2SupportHasBeenSet() const { return m_igmpv2SupportHasBeenSet; } /** *

Indicates whether Internet Group Management Protocol (IGMP) version 2 is * turned on for the transit gateway multicast domain.

*/ inline void SetIgmpv2Support(const Igmpv2SupportValue& value) { m_igmpv2SupportHasBeenSet = true; m_igmpv2Support = value; } /** *

Indicates whether Internet Group Management Protocol (IGMP) version 2 is * turned on for the transit gateway multicast domain.

*/ inline void SetIgmpv2Support(Igmpv2SupportValue&& value) { m_igmpv2SupportHasBeenSet = true; m_igmpv2Support = std::move(value); } /** *

Indicates whether Internet Group Management Protocol (IGMP) version 2 is * turned on for the transit gateway multicast domain.

*/ inline TransitGatewayMulticastDomainOptions& WithIgmpv2Support(const Igmpv2SupportValue& value) { SetIgmpv2Support(value); return *this;} /** *

Indicates whether Internet Group Management Protocol (IGMP) version 2 is * turned on for the transit gateway multicast domain.

*/ inline TransitGatewayMulticastDomainOptions& WithIgmpv2Support(Igmpv2SupportValue&& value) { SetIgmpv2Support(std::move(value)); return *this;} /** *

Indicates whether support for statically configuring transit gateway * multicast group sources is turned on.

*/ inline const StaticSourcesSupportValue& GetStaticSourcesSupport() const{ return m_staticSourcesSupport; } /** *

Indicates whether support for statically configuring transit gateway * multicast group sources is turned on.

*/ inline bool StaticSourcesSupportHasBeenSet() const { return m_staticSourcesSupportHasBeenSet; } /** *

Indicates whether support for statically configuring transit gateway * multicast group sources is turned on.

*/ inline void SetStaticSourcesSupport(const StaticSourcesSupportValue& value) { m_staticSourcesSupportHasBeenSet = true; m_staticSourcesSupport = value; } /** *

Indicates whether support for statically configuring transit gateway * multicast group sources is turned on.

*/ inline void SetStaticSourcesSupport(StaticSourcesSupportValue&& value) { m_staticSourcesSupportHasBeenSet = true; m_staticSourcesSupport = std::move(value); } /** *

Indicates whether support for statically configuring transit gateway * multicast group sources is turned on.

*/ inline TransitGatewayMulticastDomainOptions& WithStaticSourcesSupport(const StaticSourcesSupportValue& value) { SetStaticSourcesSupport(value); return *this;} /** *

Indicates whether support for statically configuring transit gateway * multicast group sources is turned on.

*/ inline TransitGatewayMulticastDomainOptions& WithStaticSourcesSupport(StaticSourcesSupportValue&& value) { SetStaticSourcesSupport(std::move(value)); return *this;} /** *

Indicates whether to automatically cross-account subnet associations that are * associated with the transit gateway multicast domain.

*/ inline const AutoAcceptSharedAssociationsValue& GetAutoAcceptSharedAssociations() const{ return m_autoAcceptSharedAssociations; } /** *

Indicates whether to automatically cross-account subnet associations that are * associated with the transit gateway multicast domain.

*/ inline bool AutoAcceptSharedAssociationsHasBeenSet() const { return m_autoAcceptSharedAssociationsHasBeenSet; } /** *

Indicates whether to automatically cross-account subnet associations that are * associated with the transit gateway multicast domain.

*/ inline void SetAutoAcceptSharedAssociations(const AutoAcceptSharedAssociationsValue& value) { m_autoAcceptSharedAssociationsHasBeenSet = true; m_autoAcceptSharedAssociations = value; } /** *

Indicates whether to automatically cross-account subnet associations that are * associated with the transit gateway multicast domain.

*/ inline void SetAutoAcceptSharedAssociations(AutoAcceptSharedAssociationsValue&& value) { m_autoAcceptSharedAssociationsHasBeenSet = true; m_autoAcceptSharedAssociations = std::move(value); } /** *

Indicates whether to automatically cross-account subnet associations that are * associated with the transit gateway multicast domain.

*/ inline TransitGatewayMulticastDomainOptions& WithAutoAcceptSharedAssociations(const AutoAcceptSharedAssociationsValue& value) { SetAutoAcceptSharedAssociations(value); return *this;} /** *

Indicates whether to automatically cross-account subnet associations that are * associated with the transit gateway multicast domain.

*/ inline TransitGatewayMulticastDomainOptions& WithAutoAcceptSharedAssociations(AutoAcceptSharedAssociationsValue&& value) { SetAutoAcceptSharedAssociations(std::move(value)); return *this;} private: Igmpv2SupportValue m_igmpv2Support; bool m_igmpv2SupportHasBeenSet = false; StaticSourcesSupportValue m_staticSourcesSupport; bool m_staticSourcesSupportHasBeenSet = false; AutoAcceptSharedAssociationsValue m_autoAcceptSharedAssociations; bool m_autoAcceptSharedAssociationsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws