Skip to content

get_signaling_channel_endpoint

get_signaling_channel_endpoint(
    channel_arn: ResourceARN,
    *,
    config_overrides: Optional[KinesisVideoClientConfig] = None,
    single_master_channel_endpoint_configuration: Optional[
        SingleMasterChannelEndpointConfiguration
    ] = None,
) -> GetSignalingChannelEndpointOutput

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.

Parameters:

  • channel_arn (ResourceARN) –

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

  • single_master_channel_endpoint_configuration (Optional[SingleMasterChannelEndpointConfiguration], default: None ) –

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

Raises:

  • AccessDeniedException –

    You do not have required permissions to perform this operation.

  • ClientLimitExceededException –

    Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.

  • InvalidArgumentException –

    The value for this input parameter is invalid.

  • ResourceInUseException –

    When the input StreamARN or ChannelARN in CLOUD_STORAGE_MODE is already mapped to a different Kinesis Video Stream resource, or if the provided input StreamARN or ChannelARN is not in Active status, try one of the following :

    1. The DescribeMediaStorageConfiguration API to determine what the stream given channel is mapped to.

    2. The DescribeMappedResourceConfiguration API to determine the channel that the given stream is mapped to.

    3. The DescribeStream or DescribeSignalingChannel API to determine the status of the resource.

  • ResourceNotFoundException –

    Amazon Kinesis Video Streams can't find the stream that you specified.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_kinesis_video/_services/kinesis_video.py
def get_signaling_channel_endpoint(
    self,
    channel_arn: "capo_kinesis_video.types.resource_arn.ResourceARN",
    *,
    config_overrides: Optional[KinesisVideoClientConfig] = None,
    single_master_channel_endpoint_configuration: Optional[
        "capo_kinesis_video.types.single_master_channel_endpoint_configuration.SingleMasterChannelEndpointConfiguration"
    ] = None,
) -> "capo_kinesis_video.types.get_signaling_channel_endpoint_output.GetSignalingChannelEndpointOutput":
    """<p>Provides an endpoint for the specified signaling channel to send and receive messages. This API uses the <code>SingleMasterChannelEndpointConfiguration</code> input parameter, which consists of the <code>Protocols</code> and <code>Role</code> properties.</p> <p> <code>Protocols</code> is used to determine the communication mechanism. For example, if you specify <code>WSS</code> as the protocol, this API produces a secure websocket endpoint. If you specify <code>HTTPS</code> as the protocol, this API generates an HTTPS endpoint. If you specify <code>WEBRTC</code> as the protocol, but the signaling channel isn't configured for ingestion, you will receive the error <code>InvalidArgumentException</code>.</p> <p> <code>Role</code> determines the messaging permissions. A <code>MASTER</code> role results in this API generating an endpoint that a client can use to communicate with any of the viewers on the channel. A <code>VIEWER</code> role results in this API generating an endpoint that a client can use to communicate only with a <code>MASTER</code>. </p>

    Args:
        channel_arn: <p>The Amazon Resource Name (ARN) of the signalling channel for which you want to get an endpoint.</p>
        single_master_channel_endpoint_configuration: <p>A structure containing the endpoint configuration for the <code>SINGLE_MASTER</code> channel type.</p>

    Raises:
        capo_kinesis_video.errors.access_denied_exception.AccessDeniedException: <p>You do not have required permissions to perform this operation.</p>
        capo_kinesis_video.errors.client_limit_exceeded_exception.ClientLimitExceededException: <p>Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.</p>
        capo_kinesis_video.errors.invalid_argument_exception.InvalidArgumentException: <p>The value for this input parameter is invalid.</p>
        capo_kinesis_video.errors.resource_in_use_exception.ResourceInUseException: <p>When the input <code>StreamARN</code> or <code>ChannelARN</code> in <code>CLOUD_STORAGE_MODE</code> is already mapped to a different Kinesis Video Stream resource, or if the provided input <code>StreamARN</code> or <code>ChannelARN</code> is not in Active status, try one of the following : </p> <ol> <li> <p>The <code>DescribeMediaStorageConfiguration</code> API to determine what the stream given channel is mapped to. </p> </li> <li> <p>The <code>DescribeMappedResourceConfiguration</code> API to determine the channel that the given stream is mapped to. </p> </li> <li> <p>The <code>DescribeStream</code> or <code>DescribeSignalingChannel</code> API to determine the status of the resource. </p> </li> </ol>
        capo_kinesis_video.errors.resource_not_found_exception.ResourceNotFoundException: <p>Amazon Kinesis Video Streams can't find the stream that you specified.</p>
        capo_kinesis_video.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_kinesis_video.types.get_signaling_channel_endpoint_input.GetSignalingChannelEndpointInput]",
    ) -> OperationResponse[
        "capo_kinesis_video.types.get_signaling_channel_endpoint_output.GetSignalingChannelEndpointOutput"
    ]:
        import capo_kinesis_video._operations.kinesis_video_20170930.get_signaling_channel_endpoint

        output, http_response = (
            capo_kinesis_video._operations.kinesis_video_20170930.get_signaling_channel_endpoint.get_signaling_channel_endpoint(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("GetSignalingChannelEndpoint")
    )
    input_: capo_kinesis_video.types.get_signaling_channel_endpoint_input.GetSignalingChannelEndpointInput = {
        "channel_arn": channel_arn
    }
    if single_master_channel_endpoint_configuration is not None:
        input_["single_master_channel_endpoint_configuration"] = (
            single_master_channel_endpoint_configuration
        )

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output