aws_sdk_appsync/operation/create_resolver/_create_resolver_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateResolverInput {
6 /// <p>The ID for the GraphQL API for which the resolver is being created.</p>
7 pub api_id: ::std::option::Option<::std::string::String>,
8 /// <p>The name of the <code>Type</code>.</p>
9 pub type_name: ::std::option::Option<::std::string::String>,
10 /// <p>The name of the field to attach the resolver to.</p>
11 pub field_name: ::std::option::Option<::std::string::String>,
12 /// <p>The name of the data source for which the resolver is being created.</p>
13 pub data_source_name: ::std::option::Option<::std::string::String>,
14 /// <p>The mapping template to use for requests.</p>
15 /// <p>A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).</p>
16 /// <p>VTL request mapping templates are optional when using an Lambda data source. For all other data sources, VTL request and response mapping templates are required.</p>
17 pub request_mapping_template: ::std::option::Option<::std::string::String>,
18 /// <p>The mapping template to use for responses from the data source.</p>
19 pub response_mapping_template: ::std::option::Option<::std::string::String>,
20 /// <p>The resolver type.</p>
21 /// <ul>
22 /// <li>
23 /// <p><b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.</p></li>
24 /// <li>
25 /// <p><b>PIPELINE</b>: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of <code>Function</code> objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.</p></li>
26 /// </ul>
27 pub kind: ::std::option::Option<crate::types::ResolverKind>,
28 /// <p>The <code>PipelineConfig</code>.</p>
29 pub pipeline_config: ::std::option::Option<crate::types::PipelineConfig>,
30 /// <p>The <code>SyncConfig</code> for a resolver attached to a versioned data source.</p>
31 pub sync_config: ::std::option::Option<crate::types::SyncConfig>,
32 /// <p>The caching configuration for the resolver.</p>
33 pub caching_config: ::std::option::Option<crate::types::CachingConfig>,
34 /// <p>The maximum batching size for a resolver.</p>
35 pub max_batch_size: ::std::option::Option<i32>,
36 /// <p>Describes a runtime used by an Amazon Web Services AppSync pipeline resolver or Amazon Web Services AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.</p>
37 pub runtime: ::std::option::Option<crate::types::AppSyncRuntime>,
38 /// <p>The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>
39 pub code: ::std::option::Option<::std::string::String>,
40 /// <p>Enables or disables enhanced resolver metrics for specified resolvers. Note that <code>metricsConfig</code> won't be used unless the <code>resolverLevelMetricsBehavior</code> value is set to <code>PER_RESOLVER_METRICS</code>. If the <code>resolverLevelMetricsBehavior</code> is set to <code>FULL_REQUEST_RESOLVER_METRICS</code> instead, <code>metricsConfig</code> will be ignored. However, you can still set its value.</p>
41 /// <p><code>metricsConfig</code> can be <code>ENABLED</code> or <code>DISABLED</code>.</p>
42 pub metrics_config: ::std::option::Option<crate::types::ResolverLevelMetricsConfig>,
43}
44impl CreateResolverInput {
45 /// <p>The ID for the GraphQL API for which the resolver is being created.</p>
46 pub fn api_id(&self) -> ::std::option::Option<&str> {
47 self.api_id.as_deref()
48 }
49 /// <p>The name of the <code>Type</code>.</p>
50 pub fn type_name(&self) -> ::std::option::Option<&str> {
51 self.type_name.as_deref()
52 }
53 /// <p>The name of the field to attach the resolver to.</p>
54 pub fn field_name(&self) -> ::std::option::Option<&str> {
55 self.field_name.as_deref()
56 }
57 /// <p>The name of the data source for which the resolver is being created.</p>
58 pub fn data_source_name(&self) -> ::std::option::Option<&str> {
59 self.data_source_name.as_deref()
60 }
61 /// <p>The mapping template to use for requests.</p>
62 /// <p>A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).</p>
63 /// <p>VTL request mapping templates are optional when using an Lambda data source. For all other data sources, VTL request and response mapping templates are required.</p>
64 pub fn request_mapping_template(&self) -> ::std::option::Option<&str> {
65 self.request_mapping_template.as_deref()
66 }
67 /// <p>The mapping template to use for responses from the data source.</p>
68 pub fn response_mapping_template(&self) -> ::std::option::Option<&str> {
69 self.response_mapping_template.as_deref()
70 }
71 /// <p>The resolver type.</p>
72 /// <ul>
73 /// <li>
74 /// <p><b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.</p></li>
75 /// <li>
76 /// <p><b>PIPELINE</b>: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of <code>Function</code> objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.</p></li>
77 /// </ul>
78 pub fn kind(&self) -> ::std::option::Option<&crate::types::ResolverKind> {
79 self.kind.as_ref()
80 }
81 /// <p>The <code>PipelineConfig</code>.</p>
82 pub fn pipeline_config(&self) -> ::std::option::Option<&crate::types::PipelineConfig> {
83 self.pipeline_config.as_ref()
84 }
85 /// <p>The <code>SyncConfig</code> for a resolver attached to a versioned data source.</p>
86 pub fn sync_config(&self) -> ::std::option::Option<&crate::types::SyncConfig> {
87 self.sync_config.as_ref()
88 }
89 /// <p>The caching configuration for the resolver.</p>
90 pub fn caching_config(&self) -> ::std::option::Option<&crate::types::CachingConfig> {
91 self.caching_config.as_ref()
92 }
93 /// <p>The maximum batching size for a resolver.</p>
94 pub fn max_batch_size(&self) -> ::std::option::Option<i32> {
95 self.max_batch_size
96 }
97 /// <p>Describes a runtime used by an Amazon Web Services AppSync pipeline resolver or Amazon Web Services AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.</p>
98 pub fn runtime(&self) -> ::std::option::Option<&crate::types::AppSyncRuntime> {
99 self.runtime.as_ref()
100 }
101 /// <p>The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>
102 pub fn code(&self) -> ::std::option::Option<&str> {
103 self.code.as_deref()
104 }
105 /// <p>Enables or disables enhanced resolver metrics for specified resolvers. Note that <code>metricsConfig</code> won't be used unless the <code>resolverLevelMetricsBehavior</code> value is set to <code>PER_RESOLVER_METRICS</code>. If the <code>resolverLevelMetricsBehavior</code> is set to <code>FULL_REQUEST_RESOLVER_METRICS</code> instead, <code>metricsConfig</code> will be ignored. However, you can still set its value.</p>
106 /// <p><code>metricsConfig</code> can be <code>ENABLED</code> or <code>DISABLED</code>.</p>
107 pub fn metrics_config(&self) -> ::std::option::Option<&crate::types::ResolverLevelMetricsConfig> {
108 self.metrics_config.as_ref()
109 }
110}
111impl CreateResolverInput {
112 /// Creates a new builder-style object to manufacture [`CreateResolverInput`](crate::operation::create_resolver::CreateResolverInput).
113 pub fn builder() -> crate::operation::create_resolver::builders::CreateResolverInputBuilder {
114 crate::operation::create_resolver::builders::CreateResolverInputBuilder::default()
115 }
116}
117
118/// A builder for [`CreateResolverInput`](crate::operation::create_resolver::CreateResolverInput).
119#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
120#[non_exhaustive]
121pub struct CreateResolverInputBuilder {
122 pub(crate) api_id: ::std::option::Option<::std::string::String>,
123 pub(crate) type_name: ::std::option::Option<::std::string::String>,
124 pub(crate) field_name: ::std::option::Option<::std::string::String>,
125 pub(crate) data_source_name: ::std::option::Option<::std::string::String>,
126 pub(crate) request_mapping_template: ::std::option::Option<::std::string::String>,
127 pub(crate) response_mapping_template: ::std::option::Option<::std::string::String>,
128 pub(crate) kind: ::std::option::Option<crate::types::ResolverKind>,
129 pub(crate) pipeline_config: ::std::option::Option<crate::types::PipelineConfig>,
130 pub(crate) sync_config: ::std::option::Option<crate::types::SyncConfig>,
131 pub(crate) caching_config: ::std::option::Option<crate::types::CachingConfig>,
132 pub(crate) max_batch_size: ::std::option::Option<i32>,
133 pub(crate) runtime: ::std::option::Option<crate::types::AppSyncRuntime>,
134 pub(crate) code: ::std::option::Option<::std::string::String>,
135 pub(crate) metrics_config: ::std::option::Option<crate::types::ResolverLevelMetricsConfig>,
136}
137impl CreateResolverInputBuilder {
138 /// <p>The ID for the GraphQL API for which the resolver is being created.</p>
139 /// This field is required.
140 pub fn api_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141 self.api_id = ::std::option::Option::Some(input.into());
142 self
143 }
144 /// <p>The ID for the GraphQL API for which the resolver is being created.</p>
145 pub fn set_api_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146 self.api_id = input;
147 self
148 }
149 /// <p>The ID for the GraphQL API for which the resolver is being created.</p>
150 pub fn get_api_id(&self) -> &::std::option::Option<::std::string::String> {
151 &self.api_id
152 }
153 /// <p>The name of the <code>Type</code>.</p>
154 /// This field is required.
155 pub fn type_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
156 self.type_name = ::std::option::Option::Some(input.into());
157 self
158 }
159 /// <p>The name of the <code>Type</code>.</p>
160 pub fn set_type_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
161 self.type_name = input;
162 self
163 }
164 /// <p>The name of the <code>Type</code>.</p>
165 pub fn get_type_name(&self) -> &::std::option::Option<::std::string::String> {
166 &self.type_name
167 }
168 /// <p>The name of the field to attach the resolver to.</p>
169 /// This field is required.
170 pub fn field_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
171 self.field_name = ::std::option::Option::Some(input.into());
172 self
173 }
174 /// <p>The name of the field to attach the resolver to.</p>
175 pub fn set_field_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
176 self.field_name = input;
177 self
178 }
179 /// <p>The name of the field to attach the resolver to.</p>
180 pub fn get_field_name(&self) -> &::std::option::Option<::std::string::String> {
181 &self.field_name
182 }
183 /// <p>The name of the data source for which the resolver is being created.</p>
184 pub fn data_source_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
185 self.data_source_name = ::std::option::Option::Some(input.into());
186 self
187 }
188 /// <p>The name of the data source for which the resolver is being created.</p>
189 pub fn set_data_source_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
190 self.data_source_name = input;
191 self
192 }
193 /// <p>The name of the data source for which the resolver is being created.</p>
194 pub fn get_data_source_name(&self) -> &::std::option::Option<::std::string::String> {
195 &self.data_source_name
196 }
197 /// <p>The mapping template to use for requests.</p>
198 /// <p>A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).</p>
199 /// <p>VTL request mapping templates are optional when using an Lambda data source. For all other data sources, VTL request and response mapping templates are required.</p>
200 pub fn request_mapping_template(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
201 self.request_mapping_template = ::std::option::Option::Some(input.into());
202 self
203 }
204 /// <p>The mapping template to use for requests.</p>
205 /// <p>A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).</p>
206 /// <p>VTL request mapping templates are optional when using an Lambda data source. For all other data sources, VTL request and response mapping templates are required.</p>
207 pub fn set_request_mapping_template(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
208 self.request_mapping_template = input;
209 self
210 }
211 /// <p>The mapping template to use for requests.</p>
212 /// <p>A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).</p>
213 /// <p>VTL request mapping templates are optional when using an Lambda data source. For all other data sources, VTL request and response mapping templates are required.</p>
214 pub fn get_request_mapping_template(&self) -> &::std::option::Option<::std::string::String> {
215 &self.request_mapping_template
216 }
217 /// <p>The mapping template to use for responses from the data source.</p>
218 pub fn response_mapping_template(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
219 self.response_mapping_template = ::std::option::Option::Some(input.into());
220 self
221 }
222 /// <p>The mapping template to use for responses from the data source.</p>
223 pub fn set_response_mapping_template(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
224 self.response_mapping_template = input;
225 self
226 }
227 /// <p>The mapping template to use for responses from the data source.</p>
228 pub fn get_response_mapping_template(&self) -> &::std::option::Option<::std::string::String> {
229 &self.response_mapping_template
230 }
231 /// <p>The resolver type.</p>
232 /// <ul>
233 /// <li>
234 /// <p><b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.</p></li>
235 /// <li>
236 /// <p><b>PIPELINE</b>: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of <code>Function</code> objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.</p></li>
237 /// </ul>
238 pub fn kind(mut self, input: crate::types::ResolverKind) -> Self {
239 self.kind = ::std::option::Option::Some(input);
240 self
241 }
242 /// <p>The resolver type.</p>
243 /// <ul>
244 /// <li>
245 /// <p><b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.</p></li>
246 /// <li>
247 /// <p><b>PIPELINE</b>: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of <code>Function</code> objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.</p></li>
248 /// </ul>
249 pub fn set_kind(mut self, input: ::std::option::Option<crate::types::ResolverKind>) -> Self {
250 self.kind = input;
251 self
252 }
253 /// <p>The resolver type.</p>
254 /// <ul>
255 /// <li>
256 /// <p><b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.</p></li>
257 /// <li>
258 /// <p><b>PIPELINE</b>: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of <code>Function</code> objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.</p></li>
259 /// </ul>
260 pub fn get_kind(&self) -> &::std::option::Option<crate::types::ResolverKind> {
261 &self.kind
262 }
263 /// <p>The <code>PipelineConfig</code>.</p>
264 pub fn pipeline_config(mut self, input: crate::types::PipelineConfig) -> Self {
265 self.pipeline_config = ::std::option::Option::Some(input);
266 self
267 }
268 /// <p>The <code>PipelineConfig</code>.</p>
269 pub fn set_pipeline_config(mut self, input: ::std::option::Option<crate::types::PipelineConfig>) -> Self {
270 self.pipeline_config = input;
271 self
272 }
273 /// <p>The <code>PipelineConfig</code>.</p>
274 pub fn get_pipeline_config(&self) -> &::std::option::Option<crate::types::PipelineConfig> {
275 &self.pipeline_config
276 }
277 /// <p>The <code>SyncConfig</code> for a resolver attached to a versioned data source.</p>
278 pub fn sync_config(mut self, input: crate::types::SyncConfig) -> Self {
279 self.sync_config = ::std::option::Option::Some(input);
280 self
281 }
282 /// <p>The <code>SyncConfig</code> for a resolver attached to a versioned data source.</p>
283 pub fn set_sync_config(mut self, input: ::std::option::Option<crate::types::SyncConfig>) -> Self {
284 self.sync_config = input;
285 self
286 }
287 /// <p>The <code>SyncConfig</code> for a resolver attached to a versioned data source.</p>
288 pub fn get_sync_config(&self) -> &::std::option::Option<crate::types::SyncConfig> {
289 &self.sync_config
290 }
291 /// <p>The caching configuration for the resolver.</p>
292 pub fn caching_config(mut self, input: crate::types::CachingConfig) -> Self {
293 self.caching_config = ::std::option::Option::Some(input);
294 self
295 }
296 /// <p>The caching configuration for the resolver.</p>
297 pub fn set_caching_config(mut self, input: ::std::option::Option<crate::types::CachingConfig>) -> Self {
298 self.caching_config = input;
299 self
300 }
301 /// <p>The caching configuration for the resolver.</p>
302 pub fn get_caching_config(&self) -> &::std::option::Option<crate::types::CachingConfig> {
303 &self.caching_config
304 }
305 /// <p>The maximum batching size for a resolver.</p>
306 pub fn max_batch_size(mut self, input: i32) -> Self {
307 self.max_batch_size = ::std::option::Option::Some(input);
308 self
309 }
310 /// <p>The maximum batching size for a resolver.</p>
311 pub fn set_max_batch_size(mut self, input: ::std::option::Option<i32>) -> Self {
312 self.max_batch_size = input;
313 self
314 }
315 /// <p>The maximum batching size for a resolver.</p>
316 pub fn get_max_batch_size(&self) -> &::std::option::Option<i32> {
317 &self.max_batch_size
318 }
319 /// <p>Describes a runtime used by an Amazon Web Services AppSync pipeline resolver or Amazon Web Services AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.</p>
320 pub fn runtime(mut self, input: crate::types::AppSyncRuntime) -> Self {
321 self.runtime = ::std::option::Option::Some(input);
322 self
323 }
324 /// <p>Describes a runtime used by an Amazon Web Services AppSync pipeline resolver or Amazon Web Services AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.</p>
325 pub fn set_runtime(mut self, input: ::std::option::Option<crate::types::AppSyncRuntime>) -> Self {
326 self.runtime = input;
327 self
328 }
329 /// <p>Describes a runtime used by an Amazon Web Services AppSync pipeline resolver or Amazon Web Services AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.</p>
330 pub fn get_runtime(&self) -> &::std::option::Option<crate::types::AppSyncRuntime> {
331 &self.runtime
332 }
333 /// <p>The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>
334 pub fn code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
335 self.code = ::std::option::Option::Some(input.into());
336 self
337 }
338 /// <p>The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>
339 pub fn set_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
340 self.code = input;
341 self
342 }
343 /// <p>The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>
344 pub fn get_code(&self) -> &::std::option::Option<::std::string::String> {
345 &self.code
346 }
347 /// <p>Enables or disables enhanced resolver metrics for specified resolvers. Note that <code>metricsConfig</code> won't be used unless the <code>resolverLevelMetricsBehavior</code> value is set to <code>PER_RESOLVER_METRICS</code>. If the <code>resolverLevelMetricsBehavior</code> is set to <code>FULL_REQUEST_RESOLVER_METRICS</code> instead, <code>metricsConfig</code> will be ignored. However, you can still set its value.</p>
348 /// <p><code>metricsConfig</code> can be <code>ENABLED</code> or <code>DISABLED</code>.</p>
349 pub fn metrics_config(mut self, input: crate::types::ResolverLevelMetricsConfig) -> Self {
350 self.metrics_config = ::std::option::Option::Some(input);
351 self
352 }
353 /// <p>Enables or disables enhanced resolver metrics for specified resolvers. Note that <code>metricsConfig</code> won't be used unless the <code>resolverLevelMetricsBehavior</code> value is set to <code>PER_RESOLVER_METRICS</code>. If the <code>resolverLevelMetricsBehavior</code> is set to <code>FULL_REQUEST_RESOLVER_METRICS</code> instead, <code>metricsConfig</code> will be ignored. However, you can still set its value.</p>
354 /// <p><code>metricsConfig</code> can be <code>ENABLED</code> or <code>DISABLED</code>.</p>
355 pub fn set_metrics_config(mut self, input: ::std::option::Option<crate::types::ResolverLevelMetricsConfig>) -> Self {
356 self.metrics_config = input;
357 self
358 }
359 /// <p>Enables or disables enhanced resolver metrics for specified resolvers. Note that <code>metricsConfig</code> won't be used unless the <code>resolverLevelMetricsBehavior</code> value is set to <code>PER_RESOLVER_METRICS</code>. If the <code>resolverLevelMetricsBehavior</code> is set to <code>FULL_REQUEST_RESOLVER_METRICS</code> instead, <code>metricsConfig</code> will be ignored. However, you can still set its value.</p>
360 /// <p><code>metricsConfig</code> can be <code>ENABLED</code> or <code>DISABLED</code>.</p>
361 pub fn get_metrics_config(&self) -> &::std::option::Option<crate::types::ResolverLevelMetricsConfig> {
362 &self.metrics_config
363 }
364 /// Consumes the builder and constructs a [`CreateResolverInput`](crate::operation::create_resolver::CreateResolverInput).
365 pub fn build(
366 self,
367 ) -> ::std::result::Result<crate::operation::create_resolver::CreateResolverInput, ::aws_smithy_types::error::operation::BuildError> {
368 ::std::result::Result::Ok(crate::operation::create_resolver::CreateResolverInput {
369 api_id: self.api_id,
370 type_name: self.type_name,
371 field_name: self.field_name,
372 data_source_name: self.data_source_name,
373 request_mapping_template: self.request_mapping_template,
374 response_mapping_template: self.response_mapping_template,
375 kind: self.kind,
376 pipeline_config: self.pipeline_config,
377 sync_config: self.sync_config,
378 caching_config: self.caching_config,
379 max_batch_size: self.max_batch_size,
380 runtime: self.runtime,
381 code: self.code,
382 metrics_config: self.metrics_config,
383 })
384 }
385}