1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`CreateJobTemplate`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_template_id(impl Into<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::job_template_id) / [`set_job_template_id(Option<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_job_template_id):<br>required: **true**<br><p>A unique identifier for the job template. We recommend using a UUID. Alpha-numeric characters, "-", and "_" are valid for use here.</p><br>
    ///   - [`job_arn(impl Into<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::job_arn) / [`set_job_arn(Option<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_job_arn):<br>required: **false**<br><p>The ARN of the job to use as the basis for the job template.</p><br>
    ///   - [`document_source(impl Into<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::document_source) / [`set_document_source(Option<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_document_source):<br>required: **false**<br><p>An S3 link, or S3 object URL, to the job document. The link is an Amazon S3 object URL and is required if you don't specify a value for <code>document</code>.</p> <p>For example, <code>--document-source https://s3.<i>region-code</i>.amazonaws.com/example-firmware/device-firmware.1.0</code></p> <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html">Methods for accessing a bucket</a>.</p><br>
    ///   - [`document(impl Into<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::document) / [`set_document(Option<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_document):<br>required: **false**<br><p>The job document. Required if you don't specify a value for <code>documentSource</code>.</p><br>
    ///   - [`description(impl Into<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_description):<br>required: **true**<br><p>A description of the job document.</p><br>
    ///   - [`presigned_url_config(PresignedUrlConfig)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::presigned_url_config) / [`set_presigned_url_config(Option<PresignedUrlConfig>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_presigned_url_config):<br>required: **false**<br><p>Configuration for pre-signed S3 URLs.</p><br>
    ///   - [`job_executions_rollout_config(JobExecutionsRolloutConfig)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::job_executions_rollout_config) / [`set_job_executions_rollout_config(Option<JobExecutionsRolloutConfig>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_job_executions_rollout_config):<br>required: **false**<br><p>Allows you to create a staged rollout of a job.</p><br>
    ///   - [`abort_config(AbortConfig)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::abort_config) / [`set_abort_config(Option<AbortConfig>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_abort_config):<br>required: **false**<br><p>The criteria that determine when and how a job abort takes place.</p><br>
    ///   - [`timeout_config(TimeoutConfig)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::timeout_config) / [`set_timeout_config(Option<TimeoutConfig>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_timeout_config):<br>required: **false**<br><p>Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to <code>TIMED_OUT</code>.</p><br>
    ///   - [`tags(Tag)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_tags):<br>required: **false**<br><p>Metadata that can be used to manage the job template.</p><br>
    ///   - [`job_executions_retry_config(JobExecutionsRetryConfig)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::job_executions_retry_config) / [`set_job_executions_retry_config(Option<JobExecutionsRetryConfig>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_job_executions_retry_config):<br>required: **false**<br><p>Allows you to create the criteria to retry a job.</p><br>
    ///   - [`maintenance_windows(MaintenanceWindow)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::maintenance_windows) / [`set_maintenance_windows(Option<Vec::<MaintenanceWindow>>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_maintenance_windows):<br>required: **false**<br><p>Allows you to configure an optional maintenance window for the rollout of a job document to all devices in the target group for a job.</p><br>
    ///   - [`destination_package_versions(impl Into<String>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::destination_package_versions) / [`set_destination_package_versions(Option<Vec::<String>>)`](crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::set_destination_package_versions):<br>required: **false**<br><p>The package version Amazon Resource Names (ARNs) that are installed on the device when the job successfully completes.</p> <p><b>Note:</b>The following Length Constraints relates to a single ARN. Up to 25 package version ARNs are allowed.</p><br>
    /// - On success, responds with [`CreateJobTemplateOutput`](crate::operation::create_job_template::CreateJobTemplateOutput) with field(s):
    ///   - [`job_template_arn(Option<String>)`](crate::operation::create_job_template::CreateJobTemplateOutput::job_template_arn): <p>The ARN of the job template.</p>
    ///   - [`job_template_id(Option<String>)`](crate::operation::create_job_template::CreateJobTemplateOutput::job_template_id): <p>The unique identifier of the job template.</p>
    /// - On failure, responds with [`SdkError<CreateJobTemplateError>`](crate::operation::create_job_template::CreateJobTemplateError)
    pub fn create_job_template(&self) -> crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder {
        crate::operation::create_job_template::builders::CreateJobTemplateFluentBuilder::new(self.handle.clone())
    }
}