:doc:`KinesisVideo <../../kinesisvideo>` / Client / get_signaling_channel_endpoint

******************************
get_signaling_channel_endpoint
******************************



.. py:method:: KinesisVideo.Client.get_signaling_channel_endpoint(**kwargs)

  

  Provides an endpoint for the specified signaling channel to send and receive messages. This API uses the ``SingleMasterChannelEndpointConfiguration`` input parameter, which consists of the ``Protocols`` and ``Role`` properties.

   

  ``Protocols`` is used to determine the communication mechanism. For example, if you specify ``WSS`` as the protocol, this API produces a secure websocket endpoint. If you specify ``HTTPS`` as the protocol, this API generates an HTTPS endpoint. If you specify ``WEBRTC`` as the protocol, but the signaling channel isn't configured for ingestion, you will receive the error ``InvalidArgumentException``.

   

  ``Role`` determines the messaging permissions. A ``MASTER`` role results in this API generating an endpoint that a client can use to communicate with any of the viewers on the channel. A ``VIEWER`` role results in this API generating an endpoint that a client can use to communicate only with a ``MASTER``.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/GetSignalingChannelEndpoint>`_  


  **Request Syntax**
  ::

    response = client.get_signaling_channel_endpoint(
        ChannelARN='string',
        SingleMasterChannelEndpointConfiguration={
            'Protocols': [
                'WSS'|'HTTPS'|'WEBRTC',
            ],
            'Role': 'MASTER'|'VIEWER'
        }
    )
    
  :type ChannelARN: string
  :param ChannelARN: **[REQUIRED]** 

    The Amazon Resource Name (ARN) of the signalling channel for which you want to get an endpoint.

    

  
  :type SingleMasterChannelEndpointConfiguration: dict
  :param SingleMasterChannelEndpointConfiguration: 

    A structure containing the endpoint configuration for the ``SINGLE_MASTER`` channel type.

    

  
    - **Protocols** *(list) --* 

      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.

      

    
      - *(string) --* 

      
  
    - **Role** *(string) --* 

      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.

      

    
  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'ResourceEndpointList': [
              {
                  'Protocol': 'WSS'|'HTTPS'|'WEBRTC',
                  'ResourceEndpoint': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ResourceEndpointList** *(list) --* 

        A list of endpoints for the specified signaling channel.

        
        

        - *(dict) --* 

          An object that describes the endpoint of the signaling channel returned by the ``GetSignalingChannelEndpoint`` API.

           

          The media server endpoint will correspond to the ``WEBRTC`` Protocol.

          
          

          - **Protocol** *(string) --* 

            The protocol of the signaling channel returned by the ``GetSignalingChannelEndpoint`` API.

            
          

          - **ResourceEndpoint** *(string) --* 

            The endpoint of the signaling channel returned by the ``GetSignalingChannelEndpoint`` API.

            
      
    
  
  **Exceptions**
  
  *   :py:class:`KinesisVideo.Client.exceptions.InvalidArgumentException`

  
  *   :py:class:`KinesisVideo.Client.exceptions.ClientLimitExceededException`

  
  *   :py:class:`KinesisVideo.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`KinesisVideo.Client.exceptions.ResourceInUseException`

  
  *   :py:class:`KinesisVideo.Client.exceptions.AccessDeniedException`

  