// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateAIRecommendationJob`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`ai_recommendation_job_name(impl Into<String>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::ai_recommendation_job_name) / [`set_ai_recommendation_job_name(Option<String>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_ai_recommendation_job_name):<br>required: **true**<br><p>The name of the AI recommendation job. The name must be unique within your Amazon Web Services account in the current Amazon Web Services Region.</p><br>
/// - [`model_source(AiModelSource)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::model_source) / [`set_model_source(Option<AiModelSource>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_model_source):<br>required: **true**<br><p>The source of the model to optimize. Specify the Amazon S3 location of the model artifacts.</p><br>
/// - [`output_config(AiRecommendationOutputConfig)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::output_config) / [`set_output_config(Option<AiRecommendationOutputConfig>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_output_config):<br>required: **true**<br><p>The output configuration for the recommendation job, including the Amazon S3 location for results and an optional model package group where the optimized model is registered.</p><br>
/// - [`ai_workload_config_identifier(impl Into<String>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::ai_workload_config_identifier) / [`set_ai_workload_config_identifier(Option<String>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_ai_workload_config_identifier):<br>required: **true**<br><p>The name or Amazon Resource Name (ARN) of the AI workload configuration to use for this recommendation job.</p><br>
/// - [`performance_target(AiRecommendationPerformanceTarget)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::performance_target) / [`set_performance_target(Option<AiRecommendationPerformanceTarget>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_performance_target):<br>required: **true**<br><p>The performance targets for the recommendation job. Specify constraints on metrics such as time to first token (<code>ttft-ms</code>), <code>throughput</code>, or <code>cost</code>.</p><br>
/// - [`role_arn(impl Into<String>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::role_arn) / [`set_role_arn(Option<String>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_role_arn):<br>required: **true**<br><p>The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker AI to perform tasks on your behalf.</p><br>
/// - [`inference_specification(AiRecommendationInferenceSpecification)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::inference_specification) / [`set_inference_specification(Option<AiRecommendationInferenceSpecification>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_inference_specification):<br>required: **false**<br><p>The inference framework configuration. Specify the framework (such as LMI or vLLM) for the recommendation job.</p><br>
/// - [`optimize_model(bool)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::optimize_model) / [`set_optimize_model(Option<bool>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_optimize_model):<br>required: **false**<br><p>Whether to allow model optimization techniques such as quantization, speculative decoding, and kernel tuning. The default is <code>true</code>.</p><br>
/// - [`compute_spec(AiRecommendationComputeSpec)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::compute_spec) / [`set_compute_spec(Option<AiRecommendationComputeSpec>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_compute_spec):<br>required: **false**<br><p>The compute resource specification for the recommendation job. You can specify up to 3 instance types to consider, and optionally provide capacity reservation configuration.</p><br>
/// - [`tags(Tag)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::set_tags):<br>required: **false**<br><p>The metadata that you apply to Amazon Web Services resources to help you categorize and organize them.</p><br>
/// - On success, responds with [`CreateAiRecommendationJobOutput`](crate::operation::create_ai_recommendation_job::CreateAiRecommendationJobOutput) with field(s):
/// - [`ai_recommendation_job_arn(Option<String>)`](crate::operation::create_ai_recommendation_job::CreateAiRecommendationJobOutput::ai_recommendation_job_arn): <p>The Amazon Resource Name (ARN) of the created recommendation job.</p>
/// - On failure, responds with [`SdkError<CreateAIRecommendationJobError>`](crate::operation::create_ai_recommendation_job::CreateAIRecommendationJobError)
pub fn create_ai_recommendation_job(&self) -> crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder {
crate::operation::create_ai_recommendation_job::builders::CreateAIRecommendationJobFluentBuilder::new(self.handle.clone())
}
}