Updates the existing signaling channel. This is an asynchronous operation and takes time to complete.
If the MessageTtlSeconds value is updated (either increased or reduced), it only applies to new messages sent via this channel after it's been updated. Existing messages are still expired as per the previous MessageTtlSeconds value.
Parameters:
-
channel_arn
(ResourceARN)
–
The Amazon Resource Name (ARN) of the signaling channel that you want to update.
-
current_version
(Version)
–
The current version of the signaling channel that you want to update.
-
single_master_configuration
(Optional[SingleMasterConfiguration], default:
None
)
–
The structure containing the configuration for the SINGLE_MASTER type of the signaling channel that you want to update. This parameter and the channel message's time-to-live are required for channels with 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 :
-
The DescribeMediaStorageConfiguration API to determine what the stream given channel is mapped to.
-
The DescribeMappedResourceConfiguration API to determine the channel that the given stream is mapped to.
-
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.
-
VersionMismatchException
–
The stream version that you specified is not the latest version. To get the latest version, use the DescribeStream API.
-
UnknownServiceError
–
The service returned an error code this client does not model.
Source code in docs_src/capo_kinesis_video/_services/async_kinesis_video.py
| async def update_signaling_channel(
self,
channel_arn: "capo_kinesis_video.types.resource_arn.ResourceARN",
current_version: "capo_kinesis_video.types.version.Version",
*,
config_overrides: Optional[AsyncKinesisVideoClientConfig] = None,
single_master_configuration: Optional[
"capo_kinesis_video.types.single_master_configuration.SingleMasterConfiguration"
] = None,
) -> "capo_kinesis_video.types.update_signaling_channel_output.UpdateSignalingChannelOutput":
"""<p>Updates the existing signaling channel. This is an asynchronous operation and takes time to complete. </p> <p>If the <code>MessageTtlSeconds</code> value is updated (either increased or reduced), it only applies to new messages sent via this channel after it's been updated. Existing messages are still expired as per the previous <code>MessageTtlSeconds</code> value.</p>
Args:
channel_arn: <p>The Amazon Resource Name (ARN) of the signaling channel that you want to update.</p>
current_version: <p>The current version of the signaling channel that you want to update.</p>
single_master_configuration: <p>The structure containing the configuration for the <code>SINGLE_MASTER</code> type of the signaling channel that you want to update. This parameter and the channel message's time-to-live are required for channels with 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.version_mismatch_exception.VersionMismatchException: <p>The stream version that you specified is not the latest version. To get the latest version, use the <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html">DescribeStream</a> API.</p>
capo_kinesis_video.errors.UnknownServiceError: The service returned an error code this client does not model.
"""
async def _handler(
req: "AsyncOperationRequest[capo_kinesis_video.types.update_signaling_channel_input.UpdateSignalingChannelInput]",
) -> AsyncOperationResponse[
"capo_kinesis_video.types.update_signaling_channel_output.UpdateSignalingChannelOutput"
]:
import capo_kinesis_video._operations.kinesis_video_20170930.update_signaling_channel
(
output,
http_response,
) = await capo_kinesis_video._operations.kinesis_video_20170930.update_signaling_channel.async_update_signaling_channel(
req.options, req.input
)
return AsyncOperationResponse(output=output, response=http_response)
interceptors_, options_ = self.operation_options(
config_overrides, OperationLogging("UpdateSignalingChannel")
)
input_: capo_kinesis_video.types.update_signaling_channel_input.UpdateSignalingChannelInput = {
"channel_arn": channel_arn,
"current_version": current_version,
}
if single_master_configuration is not None:
input_["single_master_configuration"] = single_master_configuration
response = await aexecute_pipeline(
AsyncOperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
await response.response.aclose()
return response.output
|