// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`StartSession`](crate::operation::start_session::builders::StartSessionFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`name(impl Into<String>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::set_name):<br>required: **false**<br><p>An optional name for the session.</p><br>
/// - [`cluster_id(impl Into<String>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::cluster_id) / [`set_cluster_id(Option<String>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::set_cluster_id):<br>required: **true**<br><p>The ID of the cluster on which to start the session.</p><br>
/// - [`execution_role_arn(impl Into<String>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::execution_role_arn) / [`set_execution_role_arn(Option<String>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::set_execution_role_arn):<br>required: **false**<br><p>The execution role ARN for the session. Amazon EMR uses this role to access Amazon Web Services resources on your behalf during session execution.</p><br>
/// - [`engine_configurations(Configuration)`](crate::operation::start_session::builders::StartSessionFluentBuilder::engine_configurations) / [`set_engine_configurations(Option<Vec::<Configuration>>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::set_engine_configurations):<br>required: **false**<br><p>The configuration overrides for the session. Only runtime configuration overrides are supported.</p><br>
/// - [`monitoring_configuration(SessionMonitoringConfiguration)`](crate::operation::start_session::builders::StartSessionFluentBuilder::monitoring_configuration) / [`set_monitoring_configuration(Option<SessionMonitoringConfiguration>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::set_monitoring_configuration):<br>required: **false**<br><p>The monitoring configuration that controls where session logs are published, such as Amazon S3, CloudWatch, or managed logging.</p><br>
/// - [`session_idle_timeout_in_minutes(i64)`](crate::operation::start_session::builders::StartSessionFluentBuilder::session_idle_timeout_in_minutes) / [`set_session_idle_timeout_in_minutes(Option<i64>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::set_session_idle_timeout_in_minutes):<br>required: **false**<br><p>The idle timeout, in minutes. If the session is idle for this duration, Amazon EMR EC2 automatically terminates it.</p><br>
/// - [`client_request_token(impl Into<String>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::client_request_token) / [`set_client_request_token(Option<String>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::set_client_request_token):<br>required: **false**<br><p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client request token, the service returns the original response without performing the operation again.</p><br>
/// - [`tags(Tag)`](crate::operation::start_session::builders::StartSessionFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::start_session::builders::StartSessionFluentBuilder::set_tags):<br>required: **false**<br><p>The tags to assign to the session.</p><br>
/// - On success, responds with [`StartSessionOutput`](crate::operation::start_session::StartSessionOutput) with field(s):
/// - [`id(Option<String>)`](crate::operation::start_session::StartSessionOutput::id): <p>The output contains the ID of the session.</p>
/// - [`cluster_id(Option<String>)`](crate::operation::start_session::StartSessionOutput::cluster_id): <p>The ID of the cluster that the session was started on.</p>
/// - [`arn(Option<String>)`](crate::operation::start_session::StartSessionOutput::arn): <p>The output contains the ARN of the session.</p>
/// - [`account_id(Option<String>)`](crate::operation::start_session::StartSessionOutput::account_id): <p>The Amazon Web Services account ID that owns the session.</p>
/// - [`state(Option<SessionState>)`](crate::operation::start_session::StartSessionOutput::state): <p>The state of the session at the time the request returned. When a session is first created, it enters the <code>SUBMITTED</code> state.</p>
/// - On failure, responds with [`SdkError<StartSessionError>`](crate::operation::start_session::StartSessionError)
pub fn start_session(&self) -> crate::operation::start_session::builders::StartSessionFluentBuilder {
crate::operation::start_session::builders::StartSessionFluentBuilder::new(self.handle.clone())
}
}