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

An object that contains the endpoint configuration for the * SINGLE_MASTER channel type.

See Also:

AWS * API Reference

*/ class SingleMasterChannelEndpointConfiguration { public: AWS_KINESISVIDEO_API SingleMasterChannelEndpointConfiguration(); AWS_KINESISVIDEO_API SingleMasterChannelEndpointConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_KINESISVIDEO_API SingleMasterChannelEndpointConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_KINESISVIDEO_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

This property is used to determine the nature of communication over this * SINGLE_MASTER signaling channel. If WSS is specified, * this API returns a websocket endpoint. If HTTPS is specified, this * API returns an HTTPS endpoint.

*/ inline const Aws::Vector& GetProtocols() const{ return m_protocols; } /** *

This property is used to determine the nature of communication over this * SINGLE_MASTER signaling channel. If WSS is specified, * this API returns a websocket endpoint. If HTTPS is specified, this * API returns an HTTPS endpoint.

*/ inline bool ProtocolsHasBeenSet() const { return m_protocolsHasBeenSet; } /** *

This property is used to determine the nature of communication over this * SINGLE_MASTER signaling channel. If WSS is specified, * this API returns a websocket endpoint. If HTTPS is specified, this * API returns an HTTPS endpoint.

*/ inline void SetProtocols(const Aws::Vector& value) { m_protocolsHasBeenSet = true; m_protocols = value; } /** *

This property is used to determine the nature of communication over this * SINGLE_MASTER signaling channel. If WSS is specified, * this API returns a websocket endpoint. If HTTPS is specified, this * API returns an HTTPS endpoint.

*/ inline void SetProtocols(Aws::Vector&& value) { m_protocolsHasBeenSet = true; m_protocols = std::move(value); } /** *

This property is used to determine the nature of communication over this * SINGLE_MASTER signaling channel. If WSS is specified, * this API returns a websocket endpoint. If HTTPS is specified, this * API returns an HTTPS endpoint.

*/ inline SingleMasterChannelEndpointConfiguration& WithProtocols(const Aws::Vector& value) { SetProtocols(value); return *this;} /** *

This property is used to determine the nature of communication over this * SINGLE_MASTER signaling channel. If WSS is specified, * this API returns a websocket endpoint. If HTTPS is specified, this * API returns an HTTPS endpoint.

*/ inline SingleMasterChannelEndpointConfiguration& WithProtocols(Aws::Vector&& value) { SetProtocols(std::move(value)); return *this;} /** *

This property is used to determine the nature of communication over this * SINGLE_MASTER signaling channel. If WSS is specified, * this API returns a websocket endpoint. If HTTPS is specified, this * API returns an HTTPS endpoint.

*/ inline SingleMasterChannelEndpointConfiguration& AddProtocols(const ChannelProtocol& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(value); return *this; } /** *

This property is used to determine the nature of communication over this * SINGLE_MASTER signaling channel. If WSS is specified, * this API returns a websocket endpoint. If HTTPS is specified, this * API returns an HTTPS endpoint.

*/ inline SingleMasterChannelEndpointConfiguration& AddProtocols(ChannelProtocol&& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(std::move(value)); return *this; } /** *

This property is used to determine messaging permissions in this * SINGLE_MASTER signaling channel. If MASTER is * specified, this API returns an endpoint that a client can use to receive offers * from and send answers to any of the viewers on this signaling channel. If * VIEWER is specified, this API returns an endpoint that a client can * use only to send offers to another MASTER client on this signaling * channel.

*/ inline const ChannelRole& GetRole() const{ return m_role; } /** *

This property is used to determine messaging permissions in this * SINGLE_MASTER signaling channel. If MASTER is * specified, this API returns an endpoint that a client can use to receive offers * from and send answers to any of the viewers on this signaling channel. If * VIEWER is specified, this API returns an endpoint that a client can * use only to send offers to another MASTER client on this signaling * channel.

*/ inline bool RoleHasBeenSet() const { return m_roleHasBeenSet; } /** *

This property is used to determine messaging permissions in this * SINGLE_MASTER signaling channel. If MASTER is * specified, this API returns an endpoint that a client can use to receive offers * from and send answers to any of the viewers on this signaling channel. If * VIEWER is specified, this API returns an endpoint that a client can * use only to send offers to another MASTER client on this signaling * channel.

*/ inline void SetRole(const ChannelRole& value) { m_roleHasBeenSet = true; m_role = value; } /** *

This property is used to determine messaging permissions in this * SINGLE_MASTER signaling channel. If MASTER is * specified, this API returns an endpoint that a client can use to receive offers * from and send answers to any of the viewers on this signaling channel. If * VIEWER is specified, this API returns an endpoint that a client can * use only to send offers to another MASTER client on this signaling * channel.

*/ inline void SetRole(ChannelRole&& value) { m_roleHasBeenSet = true; m_role = std::move(value); } /** *

This property is used to determine messaging permissions in this * SINGLE_MASTER signaling channel. If MASTER is * specified, this API returns an endpoint that a client can use to receive offers * from and send answers to any of the viewers on this signaling channel. If * VIEWER is specified, this API returns an endpoint that a client can * use only to send offers to another MASTER client on this signaling * channel.

*/ inline SingleMasterChannelEndpointConfiguration& WithRole(const ChannelRole& value) { SetRole(value); return *this;} /** *

This property is used to determine messaging permissions in this * SINGLE_MASTER signaling channel. If MASTER is * specified, this API returns an endpoint that a client can use to receive offers * from and send answers to any of the viewers on this signaling channel. If * VIEWER is specified, this API returns an endpoint that a client can * use only to send offers to another MASTER client on this signaling * channel.

*/ inline SingleMasterChannelEndpointConfiguration& WithRole(ChannelRole&& value) { SetRole(std::move(value)); return *this;} private: Aws::Vector m_protocols; bool m_protocolsHasBeenSet = false; ChannelRole m_role; bool m_roleHasBeenSet = false; }; } // namespace Model } // namespace KinesisVideo } // namespace Aws