aws_sdk_verifiedpermissions/operation/
get_identity_source.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `GetIdentitySource`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct GetIdentitySource;
6impl GetIdentitySource {
7    /// Creates a new `GetIdentitySource`
8    pub fn new() -> Self {
9        Self
10    }
11    pub(crate) async fn orchestrate(
12        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
13        input: crate::operation::get_identity_source::GetIdentitySourceInput,
14    ) -> ::std::result::Result<
15        crate::operation::get_identity_source::GetIdentitySourceOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::get_identity_source::GetIdentitySourceError,
18            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
19        >,
20    > {
21        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<
22            ::aws_smithy_runtime_api::client::interceptors::context::Error,
23            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
24        >| {
25            err.map_service_error(|err| {
26                err.downcast::<crate::operation::get_identity_source::GetIdentitySourceError>()
27                    .expect("correct error type")
28            })
29        };
30        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
31            .await
32            .map_err(map_err)?;
33        let output = context.finalize().map_err(map_err)?;
34        ::std::result::Result::Ok(
35            output
36                .downcast::<crate::operation::get_identity_source::GetIdentitySourceOutput>()
37                .expect("correct output type"),
38        )
39    }
40
41    pub(crate) async fn orchestrate_with_stop_point(
42        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
43        input: crate::operation::get_identity_source::GetIdentitySourceInput,
44        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
45    ) -> ::std::result::Result<
46        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
47        ::aws_smithy_runtime_api::client::result::SdkError<
48            ::aws_smithy_runtime_api::client::interceptors::context::Error,
49            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
50        >,
51    > {
52        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
53        use ::tracing::Instrument;
54        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point(
55            "VerifiedPermissions",
56            "GetIdentitySource",
57            input,
58            runtime_plugins,
59            stop_point,
60        )
61        // Create a parent span for the entire operation. Includes a random, internal-only,
62        // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
63        .instrument(::tracing::debug_span!(
64            "VerifiedPermissions.GetIdentitySource",
65            "rpc.service" = "VerifiedPermissions",
66            "rpc.method" = "GetIdentitySource",
67            "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
68            "rpc.system" = "aws-api",
69        ))
70        .await
71    }
72
73    pub(crate) fn operation_runtime_plugins(
74        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
75        client_config: &crate::config::Config,
76        config_override: ::std::option::Option<crate::config::Builder>,
77    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
78        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
79
80        if let ::std::option::Option::Some(config_override) = config_override {
81            for plugin in config_override.runtime_plugins.iter().cloned() {
82                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
83            }
84            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
85                config_override,
86                client_config.config.clone(),
87                &client_config.runtime_components,
88            ));
89        }
90        runtime_plugins
91    }
92}
93impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for GetIdentitySource {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("GetIdentitySource");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            GetIdentitySourceRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            GetIdentitySourceResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("GetIdentitySource")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::SensitiveOutput);
112        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
113            "GetIdentitySource",
114            "VerifiedPermissions",
115        ));
116        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
117        signing_options.double_uri_encode = true;
118        signing_options.content_sha256_header = false;
119        signing_options.normalize_uri_path = true;
120        signing_options.payload_override = None;
121
122        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
123            signing_options,
124            ..::std::default::Default::default()
125        });
126
127        ::std::option::Option::Some(cfg.freeze())
128    }
129
130    fn runtime_components(
131        &self,
132        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
133    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
134        #[allow(unused_mut)]
135        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("GetIdentitySource")
136            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
137            .with_interceptor(GetIdentitySourceEndpointParamsInterceptor)
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
139                crate::operation::get_identity_source::GetIdentitySourceError,
140            >::new())
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
142                crate::operation::get_identity_source::GetIdentitySourceError,
143            >::new())
144            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
145                crate::operation::get_identity_source::GetIdentitySourceError,
146            >::new());
147
148        ::std::borrow::Cow::Owned(rcb)
149    }
150}
151
152#[derive(Debug)]
153struct GetIdentitySourceResponseDeserializer;
154impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for GetIdentitySourceResponseDeserializer {
155    fn deserialize_nonstreaming(
156        &self,
157        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
158    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
159        let (success, status) = (response.status().is_success(), response.status().as_u16());
160        let headers = response.headers();
161        let body = response.body().bytes().expect("body loaded");
162        #[allow(unused_mut)]
163        let mut force_error = false;
164        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
165        let parse_result = if !success && status != 200 || force_error {
166            crate::protocol_serde::shape_get_identity_source::de_get_identity_source_http_error(status, headers, body)
167        } else {
168            crate::protocol_serde::shape_get_identity_source::de_get_identity_source_http_response(status, headers, body)
169        };
170        crate::protocol_serde::type_erase_result(parse_result)
171    }
172}
173#[derive(Debug)]
174struct GetIdentitySourceRequestSerializer;
175impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for GetIdentitySourceRequestSerializer {
176    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
177    fn serialize_input(
178        &self,
179        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
180        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
181    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
182        let input = input
183            .downcast::<crate::operation::get_identity_source::GetIdentitySourceInput>()
184            .expect("correct type");
185        let _header_serialization_settings = _cfg
186            .load::<crate::serialization_settings::HeaderSerializationSettings>()
187            .cloned()
188            .unwrap_or_default();
189        let mut request_builder = {
190            #[allow(clippy::uninlined_format_args)]
191            fn uri_base(
192                _input: &crate::operation::get_identity_source::GetIdentitySourceInput,
193                output: &mut ::std::string::String,
194            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
195                use ::std::fmt::Write as _;
196                ::std::write!(output, "/").expect("formatting should succeed");
197                ::std::result::Result::Ok(())
198            }
199            #[allow(clippy::unnecessary_wraps)]
200            fn update_http_builder(
201                input: &crate::operation::get_identity_source::GetIdentitySourceInput,
202                builder: ::http::request::Builder,
203            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
204                let mut uri = ::std::string::String::new();
205                uri_base(input, &mut uri)?;
206                ::std::result::Result::Ok(builder.method("POST").uri(uri))
207            }
208            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
209            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
210            builder = _header_serialization_settings.set_default_header(
211                builder,
212                ::http::header::HeaderName::from_static("x-amz-target"),
213                "VerifiedPermissions.GetIdentitySource",
214            );
215            builder
216        };
217        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_get_identity_source::ser_get_identity_source_input(&input)?);
218        if let Some(content_length) = body.content_length() {
219            let content_length = content_length.to_string();
220            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
221        }
222        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
223    }
224}
225#[derive(Debug)]
226struct GetIdentitySourceEndpointParamsInterceptor;
227
228impl ::aws_smithy_runtime_api::client::interceptors::Intercept for GetIdentitySourceEndpointParamsInterceptor {
229    fn name(&self) -> &'static str {
230        "GetIdentitySourceEndpointParamsInterceptor"
231    }
232
233    fn read_before_execution(
234        &self,
235        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
236            '_,
237            ::aws_smithy_runtime_api::client::interceptors::context::Input,
238            ::aws_smithy_runtime_api::client::interceptors::context::Output,
239            ::aws_smithy_runtime_api::client::interceptors::context::Error,
240        >,
241        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
242    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
243        let _input = context
244            .input()
245            .downcast_ref::<GetIdentitySourceInput>()
246            .ok_or("failed to downcast to GetIdentitySourceInput")?;
247
248        let params = crate::config::endpoint::Params::builder()
249            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
250            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
251            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
252            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
253            .build()
254            .map_err(|err| {
255                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
256            })?;
257        cfg.interceptor_state()
258            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
259        ::std::result::Result::Ok(())
260    }
261}
262
263// The get_* functions below are generated from JMESPath expressions in the
264// operationContextParams trait. They target the operation's input shape.
265
266/// Error type for the `GetIdentitySourceError` operation.
267#[non_exhaustive]
268#[derive(::std::fmt::Debug)]
269pub enum GetIdentitySourceError {
270    /// <p>The request failed because it references a resource that doesn't exist.</p>
271    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
272    /// <p>You don't have sufficient access to perform this action.</p>
273    AccessDeniedException(crate::types::error::AccessDeniedException),
274    /// <p>The request failed because of an internal error. Try your request again later</p>
275    InternalServerException(crate::types::error::InternalServerException),
276    /// <p>The request failed because it exceeded a throttling quota.</p>
277    ThrottlingException(crate::types::error::ThrottlingException),
278    /// <p>The request failed because one or more input parameters don't satisfy their constraint requirements. The output is provided as a list of fields and a reason for each field that isn't valid.</p>
279    /// <p>The possible reasons include the following:</p>
280    /// <ul>
281    /// <li>
282    /// <p><b>UnrecognizedEntityType</b></p>
283    /// <p>The policy includes an entity type that isn't found in the schema.</p></li>
284    /// <li>
285    /// <p><b>UnrecognizedActionId</b></p>
286    /// <p>The policy includes an action id that isn't found in the schema.</p></li>
287    /// <li>
288    /// <p><b>InvalidActionApplication</b></p>
289    /// <p>The policy includes an action that, according to the schema, doesn't support the specified principal and resource.</p></li>
290    /// <li>
291    /// <p><b>UnexpectedType</b></p>
292    /// <p>The policy included an operand that isn't a valid type for the specified operation.</p></li>
293    /// <li>
294    /// <p><b>IncompatibleTypes</b></p>
295    /// <p>The types of elements included in a <code>set</code>, or the types of expressions used in an <code>if...then...else</code> clause aren't compatible in this context.</p></li>
296    /// <li>
297    /// <p><b>MissingAttribute</b></p>
298    /// <p>The policy attempts to access a record or entity attribute that isn't specified in the schema. Test for the existence of the attribute first before attempting to access its value. For more information, see the <a href="https://docs.cedarpolicy.com/policies/syntax-operators.html#has-presence-of-attribute-test">has (presence of attribute test) operator</a> in the <i>Cedar Policy Language Guide</i>.</p></li>
299    /// <li>
300    /// <p><b>UnsafeOptionalAttributeAccess</b></p>
301    /// <p>The policy attempts to access a record or entity attribute that is optional and isn't guaranteed to be present. Test for the existence of the attribute first before attempting to access its value. For more information, see the <a href="https://docs.cedarpolicy.com/policies/syntax-operators.html#has-presence-of-attribute-test">has (presence of attribute test) operator</a> in the <i>Cedar Policy Language Guide</i>.</p></li>
302    /// <li>
303    /// <p><b>ImpossiblePolicy</b></p>
304    /// <p>Cedar has determined that a policy condition always evaluates to false. If the policy is always false, it can never apply to any query, and so it can never affect an authorization decision.</p></li>
305    /// <li>
306    /// <p><b>WrongNumberArguments</b></p>
307    /// <p>The policy references an extension type with the wrong number of arguments.</p></li>
308    /// <li>
309    /// <p><b>FunctionArgumentValidationError</b></p>
310    /// <p>Cedar couldn't parse the argument passed to an extension type. For example, a string that is to be parsed as an IPv4 address can contain only digits and the period character.</p></li>
311    /// </ul>
312    ValidationException(crate::types::error::ValidationException),
313    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
314    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
315    variable wildcard pattern and check `.code()`:
316     \
317    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
318     \
319    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-GetIdentitySourceError) for what information is available for the error.")]
320    Unhandled(crate::error::sealed_unhandled::Unhandled),
321}
322impl GetIdentitySourceError {
323    /// Creates the `GetIdentitySourceError::Unhandled` variant from any error type.
324    pub fn unhandled(
325        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
326    ) -> Self {
327        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
328            source: err.into(),
329            meta: ::std::default::Default::default(),
330        })
331    }
332
333    /// Creates the `GetIdentitySourceError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
334    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
335        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
336            source: err.clone().into(),
337            meta: err,
338        })
339    }
340    ///
341    /// Returns error metadata, which includes the error code, message,
342    /// request ID, and potentially additional information.
343    ///
344    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
345        match self {
346            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
347            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
348            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
349            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
350            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
351            Self::Unhandled(e) => &e.meta,
352        }
353    }
354    /// Returns `true` if the error kind is `GetIdentitySourceError::ResourceNotFoundException`.
355    pub fn is_resource_not_found_exception(&self) -> bool {
356        matches!(self, Self::ResourceNotFoundException(_))
357    }
358    /// Returns `true` if the error kind is `GetIdentitySourceError::AccessDeniedException`.
359    pub fn is_access_denied_exception(&self) -> bool {
360        matches!(self, Self::AccessDeniedException(_))
361    }
362    /// Returns `true` if the error kind is `GetIdentitySourceError::InternalServerException`.
363    pub fn is_internal_server_exception(&self) -> bool {
364        matches!(self, Self::InternalServerException(_))
365    }
366    /// Returns `true` if the error kind is `GetIdentitySourceError::ThrottlingException`.
367    pub fn is_throttling_exception(&self) -> bool {
368        matches!(self, Self::ThrottlingException(_))
369    }
370    /// Returns `true` if the error kind is `GetIdentitySourceError::ValidationException`.
371    pub fn is_validation_exception(&self) -> bool {
372        matches!(self, Self::ValidationException(_))
373    }
374}
375impl ::std::error::Error for GetIdentitySourceError {
376    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
377        match self {
378            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
379            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
380            Self::InternalServerException(_inner) => ::std::option::Option::Some(_inner),
381            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
382            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
383            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
384        }
385    }
386}
387impl ::std::fmt::Display for GetIdentitySourceError {
388    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
389        match self {
390            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
391            Self::AccessDeniedException(_inner) => _inner.fmt(f),
392            Self::InternalServerException(_inner) => _inner.fmt(f),
393            Self::ThrottlingException(_inner) => _inner.fmt(f),
394            Self::ValidationException(_inner) => _inner.fmt(f),
395            Self::Unhandled(_inner) => {
396                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
397                    write!(f, "unhandled error ({code})")
398                } else {
399                    f.write_str("unhandled error")
400                }
401            }
402        }
403    }
404}
405impl ::aws_smithy_types::retry::ProvideErrorKind for GetIdentitySourceError {
406    fn code(&self) -> ::std::option::Option<&str> {
407        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
408    }
409    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
410        match self {
411            Self::InternalServerException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
412            Self::ThrottlingException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
413            _ => ::std::option::Option::None,
414        }
415    }
416}
417impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for GetIdentitySourceError {
418    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
419        match self {
420            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
421            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
422            Self::InternalServerException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
423            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
424            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
425            Self::Unhandled(_inner) => &_inner.meta,
426        }
427    }
428}
429impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for GetIdentitySourceError {
430    fn create_unhandled_error(
431        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
432        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
433    ) -> Self {
434        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
435            source,
436            meta: meta.unwrap_or_default(),
437        })
438    }
439}
440impl ::aws_types::request_id::RequestId for crate::operation::get_identity_source::GetIdentitySourceError {
441    fn request_id(&self) -> Option<&str> {
442        self.meta().request_id()
443    }
444}
445
446pub use crate::operation::get_identity_source::_get_identity_source_output::GetIdentitySourceOutput;
447
448pub use crate::operation::get_identity_source::_get_identity_source_input::GetIdentitySourceInput;
449
450mod _get_identity_source_input;
451
452mod _get_identity_source_output;
453
454/// Builders
455pub mod builders;