aws_sdk_mediatailor/operation/create_prefetch_schedule/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_prefetch_schedule::_create_prefetch_schedule_output::CreatePrefetchScheduleOutputBuilder;
3
4pub use crate::operation::create_prefetch_schedule::_create_prefetch_schedule_input::CreatePrefetchScheduleInputBuilder;
5
6impl crate::operation::create_prefetch_schedule::builders::CreatePrefetchScheduleInputBuilder {
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::create_prefetch_schedule::CreatePrefetchScheduleOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_prefetch_schedule::CreatePrefetchScheduleError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_prefetch_schedule();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreatePrefetchSchedule`.
24///
25/// <p>Creates a prefetch schedule for a playback configuration. A prefetch schedule allows you to tell MediaTailor to fetch and prepare certain ads before an ad break happens. For more information about ad prefetching, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/prefetching-ads.html">Using ad prefetching</a> in the <i>MediaTailor User Guide</i>.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreatePrefetchScheduleFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_prefetch_schedule::builders::CreatePrefetchScheduleInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_prefetch_schedule::CreatePrefetchScheduleOutput,
35        crate::operation::create_prefetch_schedule::CreatePrefetchScheduleError,
36    > for CreatePrefetchScheduleFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_prefetch_schedule::CreatePrefetchScheduleOutput,
44            crate::operation::create_prefetch_schedule::CreatePrefetchScheduleError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreatePrefetchScheduleFluentBuilder {
51    /// Creates a new `CreatePrefetchScheduleFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreatePrefetchSchedule as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_prefetch_schedule::builders::CreatePrefetchScheduleInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_prefetch_schedule::CreatePrefetchScheduleOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_prefetch_schedule::CreatePrefetchScheduleError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_prefetch_schedule::CreatePrefetchSchedule::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_prefetch_schedule::CreatePrefetchSchedule::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_prefetch_schedule::CreatePrefetchScheduleOutput,
97        crate::operation::create_prefetch_schedule::CreatePrefetchScheduleError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The configuration settings for how and when MediaTailor consumes prefetched ads from the ad decision server for single prefetch schedules. Each consumption configuration contains an end time and an optional start time that define the <i>consumption window</i>. Prefetch schedules automatically expire no earlier than seven days after the end time.</p>
112    pub fn consumption(mut self, input: crate::types::PrefetchConsumption) -> Self {
113        self.inner = self.inner.consumption(input);
114        self
115    }
116    /// <p>The configuration settings for how and when MediaTailor consumes prefetched ads from the ad decision server for single prefetch schedules. Each consumption configuration contains an end time and an optional start time that define the <i>consumption window</i>. Prefetch schedules automatically expire no earlier than seven days after the end time.</p>
117    pub fn set_consumption(mut self, input: ::std::option::Option<crate::types::PrefetchConsumption>) -> Self {
118        self.inner = self.inner.set_consumption(input);
119        self
120    }
121    /// <p>The configuration settings for how and when MediaTailor consumes prefetched ads from the ad decision server for single prefetch schedules. Each consumption configuration contains an end time and an optional start time that define the <i>consumption window</i>. Prefetch schedules automatically expire no earlier than seven days after the end time.</p>
122    pub fn get_consumption(&self) -> &::std::option::Option<crate::types::PrefetchConsumption> {
123        self.inner.get_consumption()
124    }
125    /// <p>The name to assign to the schedule request.</p>
126    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.name(input.into());
128        self
129    }
130    /// <p>The name to assign to the schedule request.</p>
131    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_name(input);
133        self
134    }
135    /// <p>The name to assign to the schedule request.</p>
136    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_name()
138    }
139    /// <p>The name to assign to the playback configuration.</p>
140    pub fn playback_configuration_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.playback_configuration_name(input.into());
142        self
143    }
144    /// <p>The name to assign to the playback configuration.</p>
145    pub fn set_playback_configuration_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146        self.inner = self.inner.set_playback_configuration_name(input);
147        self
148    }
149    /// <p>The name to assign to the playback configuration.</p>
150    pub fn get_playback_configuration_name(&self) -> &::std::option::Option<::std::string::String> {
151        self.inner.get_playback_configuration_name()
152    }
153    /// <p>The configuration settings for retrieval of prefetched ads from the ad decision server. Only one set of prefetched ads will be retrieved and subsequently consumed for each ad break.</p>
154    pub fn retrieval(mut self, input: crate::types::PrefetchRetrieval) -> Self {
155        self.inner = self.inner.retrieval(input);
156        self
157    }
158    /// <p>The configuration settings for retrieval of prefetched ads from the ad decision server. Only one set of prefetched ads will be retrieved and subsequently consumed for each ad break.</p>
159    pub fn set_retrieval(mut self, input: ::std::option::Option<crate::types::PrefetchRetrieval>) -> Self {
160        self.inner = self.inner.set_retrieval(input);
161        self
162    }
163    /// <p>The configuration settings for retrieval of prefetched ads from the ad decision server. Only one set of prefetched ads will be retrieved and subsequently consumed for each ad break.</p>
164    pub fn get_retrieval(&self) -> &::std::option::Option<crate::types::PrefetchRetrieval> {
165        self.inner.get_retrieval()
166    }
167    /// <p>The configuration that defines how and when MediaTailor performs ad prefetching in a live event.</p>
168    pub fn recurring_prefetch_configuration(mut self, input: crate::types::RecurringPrefetchConfiguration) -> Self {
169        self.inner = self.inner.recurring_prefetch_configuration(input);
170        self
171    }
172    /// <p>The configuration that defines how and when MediaTailor performs ad prefetching in a live event.</p>
173    pub fn set_recurring_prefetch_configuration(mut self, input: ::std::option::Option<crate::types::RecurringPrefetchConfiguration>) -> Self {
174        self.inner = self.inner.set_recurring_prefetch_configuration(input);
175        self
176    }
177    /// <p>The configuration that defines how and when MediaTailor performs ad prefetching in a live event.</p>
178    pub fn get_recurring_prefetch_configuration(&self) -> &::std::option::Option<crate::types::RecurringPrefetchConfiguration> {
179        self.inner.get_recurring_prefetch_configuration()
180    }
181    /// <p>The frequency that MediaTailor creates prefetch schedules. <code>SINGLE</code> indicates that this schedule applies to one ad break. <code>RECURRING</code> indicates that MediaTailor automatically creates a schedule for each ad avail in a live event.</p>
182    /// <p>For more information about the prefetch types and when you might use each, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/prefetching-ads.html">Prefetching ads in Elemental MediaTailor.</a></p>
183    pub fn schedule_type(mut self, input: crate::types::PrefetchScheduleType) -> Self {
184        self.inner = self.inner.schedule_type(input);
185        self
186    }
187    /// <p>The frequency that MediaTailor creates prefetch schedules. <code>SINGLE</code> indicates that this schedule applies to one ad break. <code>RECURRING</code> indicates that MediaTailor automatically creates a schedule for each ad avail in a live event.</p>
188    /// <p>For more information about the prefetch types and when you might use each, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/prefetching-ads.html">Prefetching ads in Elemental MediaTailor.</a></p>
189    pub fn set_schedule_type(mut self, input: ::std::option::Option<crate::types::PrefetchScheduleType>) -> Self {
190        self.inner = self.inner.set_schedule_type(input);
191        self
192    }
193    /// <p>The frequency that MediaTailor creates prefetch schedules. <code>SINGLE</code> indicates that this schedule applies to one ad break. <code>RECURRING</code> indicates that MediaTailor automatically creates a schedule for each ad avail in a live event.</p>
194    /// <p>For more information about the prefetch types and when you might use each, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/prefetching-ads.html">Prefetching ads in Elemental MediaTailor.</a></p>
195    pub fn get_schedule_type(&self) -> &::std::option::Option<crate::types::PrefetchScheduleType> {
196        self.inner.get_schedule_type()
197    }
198    /// <p>An optional stream identifier that MediaTailor uses to prefetch ads for multiple streams that use the same playback configuration. If <code>StreamId</code> is specified, MediaTailor returns all of the prefetch schedules with an exact match on <code>StreamId</code>. If not specified, MediaTailor returns all of the prefetch schedules for the playback configuration, regardless of <code>StreamId</code>.</p>
199    pub fn stream_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
200        self.inner = self.inner.stream_id(input.into());
201        self
202    }
203    /// <p>An optional stream identifier that MediaTailor uses to prefetch ads for multiple streams that use the same playback configuration. If <code>StreamId</code> is specified, MediaTailor returns all of the prefetch schedules with an exact match on <code>StreamId</code>. If not specified, MediaTailor returns all of the prefetch schedules for the playback configuration, regardless of <code>StreamId</code>.</p>
204    pub fn set_stream_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
205        self.inner = self.inner.set_stream_id(input);
206        self
207    }
208    /// <p>An optional stream identifier that MediaTailor uses to prefetch ads for multiple streams that use the same playback configuration. If <code>StreamId</code> is specified, MediaTailor returns all of the prefetch schedules with an exact match on <code>StreamId</code>. If not specified, MediaTailor returns all of the prefetch schedules for the playback configuration, regardless of <code>StreamId</code>.</p>
209    pub fn get_stream_id(&self) -> &::std::option::Option<::std::string::String> {
210        self.inner.get_stream_id()
211    }
212}