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
27
28
29
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`CreateOTAUpdate`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`ota_update_id(impl Into<String>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::ota_update_id) / [`set_ota_update_id(Option<String>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_ota_update_id):<br>required: **true**<br><p>The ID of the OTA update to be created.</p><br>
    ///   - [`description(impl Into<String>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_description):<br>required: **false**<br><p>The description of the OTA update.</p><br>
    ///   - [`targets(impl Into<String>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::targets) / [`set_targets(Option<Vec::<String>>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_targets):<br>required: **true**<br><p>The devices targeted to receive OTA updates.</p><br>
    ///   - [`protocols(Protocol)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::protocols) / [`set_protocols(Option<Vec::<Protocol>>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_protocols):<br>required: **false**<br><p>The protocol used to transfer the OTA update image. Valid values are [HTTP], [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device can choose the protocol.</p><br>
    ///   - [`target_selection(TargetSelection)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::target_selection) / [`set_target_selection(Option<TargetSelection>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_target_selection):<br>required: **false**<br><p>Specifies whether the update will continue to run (CONTINUOUS), or will be complete after all the things specified as targets have completed the update (SNAPSHOT). If continuous, the update may also be run on a thing when a change is detected in a target. For example, an update will run on a thing when the thing is added to a target group, even after the update was completed by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.</p><br>
    ///   - [`aws_job_executions_rollout_config(AwsJobExecutionsRolloutConfig)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::aws_job_executions_rollout_config) / [`set_aws_job_executions_rollout_config(Option<AwsJobExecutionsRolloutConfig>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_aws_job_executions_rollout_config):<br>required: **false**<br><p>Configuration for the rollout of OTA updates.</p><br>
    ///   - [`aws_job_presigned_url_config(AwsJobPresignedUrlConfig)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::aws_job_presigned_url_config) / [`set_aws_job_presigned_url_config(Option<AwsJobPresignedUrlConfig>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_aws_job_presigned_url_config):<br>required: **false**<br><p>Configuration information for pre-signed URLs.</p><br>
    ///   - [`aws_job_abort_config(AwsJobAbortConfig)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::aws_job_abort_config) / [`set_aws_job_abort_config(Option<AwsJobAbortConfig>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_aws_job_abort_config):<br>required: **false**<br><p>The criteria that determine when and how a job abort takes place.</p><br>
    ///   - [`aws_job_timeout_config(AwsJobTimeoutConfig)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::aws_job_timeout_config) / [`set_aws_job_timeout_config(Option<AwsJobTimeoutConfig>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_aws_job_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>
    ///   - [`files(OtaUpdateFile)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::files) / [`set_files(Option<Vec::<OtaUpdateFile>>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_files):<br>required: **true**<br><p>The files to be streamed by the OTA update.</p><br>
    ///   - [`role_arn(impl Into<String>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::role_arn) / [`set_role_arn(Option<String>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_role_arn):<br>required: **true**<br><p>The IAM role that grants Amazon Web Services IoT Core access to the Amazon S3, IoT jobs and Amazon Web Services Code Signing resources to create an OTA update job.</p><br>
    ///   - [`additional_parameters(impl Into<String>, impl Into<String>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::additional_parameters) / [`set_additional_parameters(Option<HashMap::<String, String>>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_additional_parameters):<br>required: **false**<br><p>A list of additional OTA update parameters, which are name-value pairs. They won't be sent to devices as a part of the Job document.</p><br>
    ///   - [`tags(Tag)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::set_tags):<br>required: **false**<br><p>Metadata which can be used to manage updates.</p><br>
    /// - On success, responds with [`CreateOtaUpdateOutput`](crate::operation::create_ota_update::CreateOtaUpdateOutput) with field(s):
    ///   - [`ota_update_id(Option<String>)`](crate::operation::create_ota_update::CreateOtaUpdateOutput::ota_update_id): <p>The OTA update ID.</p>
    ///   - [`aws_iot_job_id(Option<String>)`](crate::operation::create_ota_update::CreateOtaUpdateOutput::aws_iot_job_id): <p>The IoT job ID associated with the OTA update.</p>
    ///   - [`ota_update_arn(Option<String>)`](crate::operation::create_ota_update::CreateOtaUpdateOutput::ota_update_arn): <p>The OTA update ARN.</p>
    ///   - [`aws_iot_job_arn(Option<String>)`](crate::operation::create_ota_update::CreateOtaUpdateOutput::aws_iot_job_arn): <p>The IoT job ARN associated with the OTA update.</p>
    ///   - [`ota_update_status(Option<OtaUpdateStatus>)`](crate::operation::create_ota_update::CreateOtaUpdateOutput::ota_update_status): <p>The OTA update status.</p>
    /// - On failure, responds with [`SdkError<CreateOTAUpdateError>`](crate::operation::create_ota_update::CreateOTAUpdateError)
    pub fn create_ota_update(&self) -> crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder {
        crate::operation::create_ota_update::builders::CreateOTAUpdateFluentBuilder::new(self.handle.clone())
    }
}