Drains the instance hosting the specified streaming session. The instance stops accepting new sessions while existing sessions continue uninterrupted. Once all sessions end, the instance is reclaimed and replaced. This only applies to multi-session fleets.
Parameters:
-
session_id
(Optional[String], default:
None
)
–
The identifier of the streaming session.
Raises:
Source code in docs_src/capo_appstream/_services/async_app_stream.py
| async def drain_session_instance(
self,
*,
config_overrides: Optional[AsyncAppStreamClientConfig] = None,
session_id: Optional["capo_appstream.types.string.String"] = None,
) -> (
"capo_appstream.types.drain_session_instance_result.DrainSessionInstanceResult"
):
"""<p>Drains the instance hosting the specified streaming session. The instance stops accepting new sessions while existing sessions continue uninterrupted. Once all sessions end, the instance is reclaimed and replaced. This only applies to multi-session fleets.</p>
Args:
session_id: <p>The identifier of the streaming session.</p>
Raises:
capo_appstream.errors.concurrent_modification_exception.ConcurrentModificationException: <p>An API error occurred. Wait a few minutes and try again.</p>
capo_appstream.errors.operation_not_permitted_exception.OperationNotPermittedException: <p>The attempted operation is not permitted.</p>
capo_appstream.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource was not found.</p>
capo_appstream.errors.UnknownServiceError: The service returned an error code this client does not model.
"""
async def _handler(
req: "AsyncOperationRequest[capo_appstream.types.drain_session_instance_request.DrainSessionInstanceRequest]",
) -> AsyncOperationResponse[
"capo_appstream.types.drain_session_instance_result.DrainSessionInstanceResult"
]:
import capo_appstream._operations.photon_admin_proxy_service.drain_session_instance
(
output,
http_response,
) = await capo_appstream._operations.photon_admin_proxy_service.drain_session_instance.async_drain_session_instance(
req.options, req.input
)
return AsyncOperationResponse(output=output, response=http_response)
interceptors_, options_ = self.operation_options(
config_overrides, OperationLogging("DrainSessionInstance")
)
input_: capo_appstream.types.drain_session_instance_request.DrainSessionInstanceRequest = {}
if session_id is not None:
input_["session_id"] = session_id
response = await aexecute_pipeline(
AsyncOperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
await response.response.aclose()
return response.output
|