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}