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/app_stream.py
| def drain_session_instance(
self,
*,
config_overrides: Optional[AppStreamClientConfig] = 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.
"""
def _handler(
req: "OperationRequest[capo_appstream.types.drain_session_instance_request.DrainSessionInstanceRequest]",
) -> OperationResponse[
"capo_appstream.types.drain_session_instance_result.DrainSessionInstanceResult"
]:
import capo_appstream._operations.photon_admin_proxy_service.drain_session_instance
output, http_response = (
capo_appstream._operations.photon_admin_proxy_service.drain_session_instance.drain_session_instance(
req.options, req.input
)
)
return OperationResponse(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 = execute_pipeline(
OperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
response.response.close()
return response.output
|