aws_sdk_storagegateway/operation/update_snapshot_schedule/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_snapshot_schedule::_update_snapshot_schedule_output::UpdateSnapshotScheduleOutputBuilder;
3
4pub use crate::operation::update_snapshot_schedule::_update_snapshot_schedule_input::UpdateSnapshotScheduleInputBuilder;
5
6impl crate::operation::update_snapshot_schedule::builders::UpdateSnapshotScheduleInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_snapshot_schedule();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateSnapshotSchedule`.
24///
25/// <p>Updates a snapshot schedule configured for a gateway volume. This operation is only supported in the cached volume and stored volume gateway types.</p>
26/// <p>The default snapshot schedule for volume is once every 24 hours, starting at the creation time of the volume. You can use this API to change the snapshot schedule configured for the volume.</p>
27/// <p>In the request you must identify the gateway volume whose snapshot schedule you want to update, and the schedule information, including when you want the snapshot to begin on a day and the frequency (in hours) of snapshots.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct UpdateSnapshotScheduleFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::update_snapshot_schedule::builders::UpdateSnapshotScheduleInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleOutput,
37        crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleError,
38    > for UpdateSnapshotScheduleFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleOutput,
46            crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl UpdateSnapshotScheduleFluentBuilder {
53    /// Creates a new `UpdateSnapshotScheduleFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the UpdateSnapshotSchedule as a reference.
62    pub fn as_input(&self) -> &crate::operation::update_snapshot_schedule::builders::UpdateSnapshotScheduleInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::update_snapshot_schedule::UpdateSnapshotSchedule::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::update_snapshot_schedule::UpdateSnapshotSchedule::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleOutput,
99        crate::operation::update_snapshot_schedule::UpdateSnapshotScheduleError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    /// <p>The Amazon Resource Name (ARN) of the volume. Use the <code>ListVolumes</code> operation to return a list of gateway volumes.</p>
114    pub fn volume_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.volume_arn(input.into());
116        self
117    }
118    /// <p>The Amazon Resource Name (ARN) of the volume. Use the <code>ListVolumes</code> operation to return a list of gateway volumes.</p>
119    pub fn set_volume_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_volume_arn(input);
121        self
122    }
123    /// <p>The Amazon Resource Name (ARN) of the volume. Use the <code>ListVolumes</code> operation to return a list of gateway volumes.</p>
124    pub fn get_volume_arn(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_volume_arn()
126    }
127    /// <p>The hour of the day at which the snapshot schedule begins represented as <i>hh</i>, where <i>hh</i> is the hour (0 to 23). The hour of the day is in the time zone of the gateway.</p>
128    pub fn start_at(mut self, input: i32) -> Self {
129        self.inner = self.inner.start_at(input);
130        self
131    }
132    /// <p>The hour of the day at which the snapshot schedule begins represented as <i>hh</i>, where <i>hh</i> is the hour (0 to 23). The hour of the day is in the time zone of the gateway.</p>
133    pub fn set_start_at(mut self, input: ::std::option::Option<i32>) -> Self {
134        self.inner = self.inner.set_start_at(input);
135        self
136    }
137    /// <p>The hour of the day at which the snapshot schedule begins represented as <i>hh</i>, where <i>hh</i> is the hour (0 to 23). The hour of the day is in the time zone of the gateway.</p>
138    pub fn get_start_at(&self) -> &::std::option::Option<i32> {
139        self.inner.get_start_at()
140    }
141    /// <p>Frequency of snapshots. Specify the number of hours between snapshots.</p>
142    pub fn recurrence_in_hours(mut self, input: i32) -> Self {
143        self.inner = self.inner.recurrence_in_hours(input);
144        self
145    }
146    /// <p>Frequency of snapshots. Specify the number of hours between snapshots.</p>
147    pub fn set_recurrence_in_hours(mut self, input: ::std::option::Option<i32>) -> Self {
148        self.inner = self.inner.set_recurrence_in_hours(input);
149        self
150    }
151    /// <p>Frequency of snapshots. Specify the number of hours between snapshots.</p>
152    pub fn get_recurrence_in_hours(&self) -> &::std::option::Option<i32> {
153        self.inner.get_recurrence_in_hours()
154    }
155    /// <p>Optional description of the snapshot that overwrites the existing description.</p>
156    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157        self.inner = self.inner.description(input.into());
158        self
159    }
160    /// <p>Optional description of the snapshot that overwrites the existing description.</p>
161    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
162        self.inner = self.inner.set_description(input);
163        self
164    }
165    /// <p>Optional description of the snapshot that overwrites the existing description.</p>
166    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
167        self.inner.get_description()
168    }
169    ///
170    /// Appends an item to `Tags`.
171    ///
172    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
173    ///
174    /// <p>A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair.</p><note>
175    /// <p>Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256.</p>
176    /// </note>
177    pub fn tags(mut self, input: crate::types::Tag) -> Self {
178        self.inner = self.inner.tags(input);
179        self
180    }
181    /// <p>A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair.</p><note>
182    /// <p>Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256.</p>
183    /// </note>
184    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
185        self.inner = self.inner.set_tags(input);
186        self
187    }
188    /// <p>A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair.</p><note>
189    /// <p>Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256.</p>
190    /// </note>
191    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
192        self.inner.get_tags()
193    }
194}