Skip to main content

aws_sdk_codecommit/operation/
merge_pull_request_by_fast_forward.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `MergePullRequestByFastForward`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct MergePullRequestByFastForward;
6impl MergePullRequestByFastForward {
7    /// Creates a new `MergePullRequestByFastForward`
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::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardInput,
14    ) -> ::std::result::Result<
15        crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardError,
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::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardError>()
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::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardOutput>()
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::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardInput,
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            "CodeCommit",
56            "MergePullRequestByFastForward",
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            "CodeCommit.MergePullRequestByFastForward",
65            "rpc.service" = "CodeCommit",
66            "rpc.method" = "MergePullRequestByFastForward",
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 MergePullRequestByFastForward {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("MergePullRequestByFastForward");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            MergePullRequestByFastForwardRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            MergePullRequestByFastForwardResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("MergePullRequestByFastForward")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "MergePullRequestByFastForward",
113            "CodeCommit",
114        ));
115        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
116        signing_options.double_uri_encode = true;
117        signing_options.content_sha256_header = false;
118        signing_options.normalize_uri_path = true;
119        signing_options.payload_override = None;
120
121        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
122            signing_options,
123            ..::std::default::Default::default()
124        });
125
126        ::std::option::Option::Some(cfg.freeze())
127    }
128
129    fn runtime_components(
130        &self,
131        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
132    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
133        #[allow(unused_mut)]
134        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("MergePullRequestByFastForward")
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
137            ))
138            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
139                MergePullRequestByFastForwardEndpointParamsInterceptor,
140            ))
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
142                crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardError,
143            >::new())
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
145                crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardError,
146            >::new())
147            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
148                crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardError,
149            >::new());
150
151        ::std::borrow::Cow::Owned(rcb)
152    }
153}
154
155#[derive(Debug)]
156struct MergePullRequestByFastForwardResponseDeserializer;
157impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for MergePullRequestByFastForwardResponseDeserializer {
158    fn deserialize_nonstreaming_with_config(
159        &self,
160        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
161        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
162    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
163        let (success, status) = (response.status().is_success(), response.status().as_u16());
164        let headers = response.headers();
165        let body = response.body().bytes().expect("body loaded");
166        #[allow(unused_mut)]
167        let mut force_error = false;
168        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
169        let parse_result = if !success && status != 200 || force_error {
170            crate::protocol_serde::shape_merge_pull_request_by_fast_forward::de_merge_pull_request_by_fast_forward_http_error(status, headers, body)
171        } else {
172            crate::protocol_serde::shape_merge_pull_request_by_fast_forward::de_merge_pull_request_by_fast_forward_http_response(
173                status, headers, body,
174            )
175        };
176        crate::protocol_serde::type_erase_result(parse_result)
177    }
178}
179#[derive(Debug)]
180struct MergePullRequestByFastForwardRequestSerializer;
181impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for MergePullRequestByFastForwardRequestSerializer {
182    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
183    fn serialize_input(
184        &self,
185        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
186        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
187    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
188        let input = input
189            .downcast::<crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardInput>()
190            .expect("correct type");
191        let _header_serialization_settings = _cfg
192            .load::<crate::serialization_settings::HeaderSerializationSettings>()
193            .cloned()
194            .unwrap_or_default();
195        let mut request_builder = {
196            #[allow(clippy::uninlined_format_args)]
197            fn uri_base(
198                _input: &crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardInput,
199                output: &mut ::std::string::String,
200            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
201                use ::std::fmt::Write as _;
202                ::std::write!(output, "/").expect("formatting should succeed");
203                ::std::result::Result::Ok(())
204            }
205            #[allow(clippy::unnecessary_wraps)]
206            fn update_http_builder(
207                input: &crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardInput,
208                builder: ::http_1x::request::Builder,
209            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
210                let mut uri = ::std::string::String::new();
211                uri_base(input, &mut uri)?;
212                ::std::result::Result::Ok(builder.method("POST").uri(uri))
213            }
214            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
215            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
216            builder = _header_serialization_settings.set_default_header(
217                builder,
218                ::http_1x::header::HeaderName::from_static("x-amz-target"),
219                "CodeCommit_20150413.MergePullRequestByFastForward",
220            );
221            builder
222        };
223        let body = ::aws_smithy_types::body::SdkBody::from(
224            crate::protocol_serde::shape_merge_pull_request_by_fast_forward::ser_merge_pull_request_by_fast_forward_input(&input)?,
225        );
226        if let Some(content_length) = body.content_length() {
227            let content_length = content_length.to_string();
228            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
229        }
230        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
231    }
232}
233#[derive(Debug)]
234struct MergePullRequestByFastForwardEndpointParamsInterceptor;
235
236#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
237impl ::aws_smithy_runtime_api::client::interceptors::Intercept for MergePullRequestByFastForwardEndpointParamsInterceptor {
238    fn name(&self) -> &'static str {
239        "MergePullRequestByFastForwardEndpointParamsInterceptor"
240    }
241
242    fn read_before_execution(
243        &self,
244        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
245            '_,
246            ::aws_smithy_runtime_api::client::interceptors::context::Input,
247            ::aws_smithy_runtime_api::client::interceptors::context::Output,
248            ::aws_smithy_runtime_api::client::interceptors::context::Error,
249        >,
250        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
251    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
252        let _input = context
253            .input()
254            .downcast_ref::<MergePullRequestByFastForwardInput>()
255            .ok_or("failed to downcast to MergePullRequestByFastForwardInput")?;
256
257        let params = crate::config::endpoint::Params::builder()
258            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
259            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
260            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
261            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
262            .build()
263            .map_err(|err| {
264                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
265            })?;
266        cfg.interceptor_state()
267            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
268        ::std::result::Result::Ok(())
269    }
270}
271
272// The get_* functions below are generated from JMESPath expressions in the
273// operationContextParams trait. They target the operation's input shape.
274
275/// Error type for the `MergePullRequestByFastForwardError` operation.
276#[non_exhaustive]
277#[derive(::std::fmt::Debug)]
278pub enum MergePullRequestByFastForwardError {
279    /// <p>The merge cannot be completed because the target branch has been modified. Another user might have modified the target branch while the merge was in progress. Wait a few minutes, and then try again.</p>
280    ConcurrentReferenceUpdateException(crate::types::error::ConcurrentReferenceUpdateException),
281    /// <p>An encryption integrity check failed.</p>
282    EncryptionIntegrityChecksFailedException(crate::types::error::EncryptionIntegrityChecksFailedException),
283    /// <p>An encryption key could not be accessed.</p>
284    EncryptionKeyAccessDeniedException(crate::types::error::EncryptionKeyAccessDeniedException),
285    /// <p>The encryption key is disabled.</p>
286    EncryptionKeyDisabledException(crate::types::error::EncryptionKeyDisabledException),
287    /// <p>No encryption key was found.</p>
288    EncryptionKeyNotFoundException(crate::types::error::EncryptionKeyNotFoundException),
289    /// <p>The encryption key is not available.</p>
290    EncryptionKeyUnavailableException(crate::types::error::EncryptionKeyUnavailableException),
291    /// <p>The specified commit ID is not valid.</p>
292    InvalidCommitIdException(crate::types::error::InvalidCommitIdException),
293    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
294    InvalidPullRequestIdException(crate::types::error::InvalidPullRequestIdException),
295    /// <p>A specified repository name is not valid.</p><note>
296    /// <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p>
297    /// </note>
298    InvalidRepositoryNameException(crate::types::error::InvalidRepositoryNameException),
299    /// <p>The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.</p>
300    ManualMergeRequiredException(crate::types::error::ManualMergeRequiredException),
301    /// <p>The pull request status cannot be updated because it is already closed.</p>
302    PullRequestAlreadyClosedException(crate::types::error::PullRequestAlreadyClosedException),
303    /// <p>The pull request cannot be merged because one or more approval rules applied to the pull request have conditions that have not been met.</p>
304    PullRequestApprovalRulesNotSatisfiedException(crate::types::error::PullRequestApprovalRulesNotSatisfiedException),
305    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
306    PullRequestDoesNotExistException(crate::types::error::PullRequestDoesNotExistException),
307    /// <p>A pull request ID is required, but none was provided.</p>
308    PullRequestIdRequiredException(crate::types::error::PullRequestIdRequiredException),
309    /// <p>The specified reference does not exist. You must provide a full commit ID.</p>
310    ReferenceDoesNotExistException(crate::types::error::ReferenceDoesNotExistException),
311    /// <p>The specified repository does not exist.</p>
312    RepositoryDoesNotExistException(crate::types::error::RepositoryDoesNotExistException),
313    /// <p>A repository name is required, but was not specified.</p>
314    RepositoryNameRequiredException(crate::types::error::RepositoryNameRequiredException),
315    /// <p>The repository does not contain any pull requests with that pull request ID. Use GetPullRequest to verify the correct repository name for the pull request ID.</p>
316    RepositoryNotAssociatedWithPullRequestException(crate::types::error::RepositoryNotAssociatedWithPullRequestException),
317    /// <p>The tip of the source branch in the destination repository does not match the tip of the source branch specified in your request. The pull request might have been updated. Make sure that you have the latest changes.</p>
318    TipOfSourceReferenceIsDifferentException(crate::types::error::TipOfSourceReferenceIsDifferentException),
319    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
320    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
321    variable wildcard pattern and check `.code()`:
322     \
323    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
324     \
325    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-MergePullRequestByFastForwardError) for what information is available for the error.")]
326    Unhandled(crate::error::sealed_unhandled::Unhandled),
327}
328impl MergePullRequestByFastForwardError {
329    /// Creates the `MergePullRequestByFastForwardError::Unhandled` variant from any error type.
330    pub fn unhandled(
331        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
332    ) -> Self {
333        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
334            source: err.into(),
335            meta: ::std::default::Default::default(),
336        })
337    }
338
339    /// Creates the `MergePullRequestByFastForwardError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
340    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
341        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
342            source: err.clone().into(),
343            meta: err,
344        })
345    }
346    ///
347    /// Returns error metadata, which includes the error code, message,
348    /// request ID, and potentially additional information.
349    ///
350    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
351        match self {
352            Self::ConcurrentReferenceUpdateException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
353            Self::EncryptionIntegrityChecksFailedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
354            Self::EncryptionKeyAccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
355            Self::EncryptionKeyDisabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
356            Self::EncryptionKeyNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
357            Self::EncryptionKeyUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
358            Self::InvalidCommitIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
359            Self::InvalidPullRequestIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
360            Self::InvalidRepositoryNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
361            Self::ManualMergeRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
362            Self::PullRequestAlreadyClosedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
363            Self::PullRequestApprovalRulesNotSatisfiedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
364            Self::PullRequestDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
365            Self::PullRequestIdRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
366            Self::ReferenceDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
367            Self::RepositoryDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
368            Self::RepositoryNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
369            Self::RepositoryNotAssociatedWithPullRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
370            Self::TipOfSourceReferenceIsDifferentException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
371            Self::Unhandled(e) => &e.meta,
372        }
373    }
374    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::ConcurrentReferenceUpdateException`.
375    pub fn is_concurrent_reference_update_exception(&self) -> bool {
376        matches!(self, Self::ConcurrentReferenceUpdateException(_))
377    }
378    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::EncryptionIntegrityChecksFailedException`.
379    pub fn is_encryption_integrity_checks_failed_exception(&self) -> bool {
380        matches!(self, Self::EncryptionIntegrityChecksFailedException(_))
381    }
382    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::EncryptionKeyAccessDeniedException`.
383    pub fn is_encryption_key_access_denied_exception(&self) -> bool {
384        matches!(self, Self::EncryptionKeyAccessDeniedException(_))
385    }
386    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::EncryptionKeyDisabledException`.
387    pub fn is_encryption_key_disabled_exception(&self) -> bool {
388        matches!(self, Self::EncryptionKeyDisabledException(_))
389    }
390    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::EncryptionKeyNotFoundException`.
391    pub fn is_encryption_key_not_found_exception(&self) -> bool {
392        matches!(self, Self::EncryptionKeyNotFoundException(_))
393    }
394    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::EncryptionKeyUnavailableException`.
395    pub fn is_encryption_key_unavailable_exception(&self) -> bool {
396        matches!(self, Self::EncryptionKeyUnavailableException(_))
397    }
398    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::InvalidCommitIdException`.
399    pub fn is_invalid_commit_id_exception(&self) -> bool {
400        matches!(self, Self::InvalidCommitIdException(_))
401    }
402    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::InvalidPullRequestIdException`.
403    pub fn is_invalid_pull_request_id_exception(&self) -> bool {
404        matches!(self, Self::InvalidPullRequestIdException(_))
405    }
406    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::InvalidRepositoryNameException`.
407    pub fn is_invalid_repository_name_exception(&self) -> bool {
408        matches!(self, Self::InvalidRepositoryNameException(_))
409    }
410    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::ManualMergeRequiredException`.
411    pub fn is_manual_merge_required_exception(&self) -> bool {
412        matches!(self, Self::ManualMergeRequiredException(_))
413    }
414    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::PullRequestAlreadyClosedException`.
415    pub fn is_pull_request_already_closed_exception(&self) -> bool {
416        matches!(self, Self::PullRequestAlreadyClosedException(_))
417    }
418    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::PullRequestApprovalRulesNotSatisfiedException`.
419    pub fn is_pull_request_approval_rules_not_satisfied_exception(&self) -> bool {
420        matches!(self, Self::PullRequestApprovalRulesNotSatisfiedException(_))
421    }
422    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::PullRequestDoesNotExistException`.
423    pub fn is_pull_request_does_not_exist_exception(&self) -> bool {
424        matches!(self, Self::PullRequestDoesNotExistException(_))
425    }
426    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::PullRequestIdRequiredException`.
427    pub fn is_pull_request_id_required_exception(&self) -> bool {
428        matches!(self, Self::PullRequestIdRequiredException(_))
429    }
430    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::ReferenceDoesNotExistException`.
431    pub fn is_reference_does_not_exist_exception(&self) -> bool {
432        matches!(self, Self::ReferenceDoesNotExistException(_))
433    }
434    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::RepositoryDoesNotExistException`.
435    pub fn is_repository_does_not_exist_exception(&self) -> bool {
436        matches!(self, Self::RepositoryDoesNotExistException(_))
437    }
438    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::RepositoryNameRequiredException`.
439    pub fn is_repository_name_required_exception(&self) -> bool {
440        matches!(self, Self::RepositoryNameRequiredException(_))
441    }
442    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::RepositoryNotAssociatedWithPullRequestException`.
443    pub fn is_repository_not_associated_with_pull_request_exception(&self) -> bool {
444        matches!(self, Self::RepositoryNotAssociatedWithPullRequestException(_))
445    }
446    /// Returns `true` if the error kind is `MergePullRequestByFastForwardError::TipOfSourceReferenceIsDifferentException`.
447    pub fn is_tip_of_source_reference_is_different_exception(&self) -> bool {
448        matches!(self, Self::TipOfSourceReferenceIsDifferentException(_))
449    }
450}
451impl ::std::error::Error for MergePullRequestByFastForwardError {
452    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
453        match self {
454            Self::ConcurrentReferenceUpdateException(_inner) => ::std::option::Option::Some(_inner),
455            Self::EncryptionIntegrityChecksFailedException(_inner) => ::std::option::Option::Some(_inner),
456            Self::EncryptionKeyAccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
457            Self::EncryptionKeyDisabledException(_inner) => ::std::option::Option::Some(_inner),
458            Self::EncryptionKeyNotFoundException(_inner) => ::std::option::Option::Some(_inner),
459            Self::EncryptionKeyUnavailableException(_inner) => ::std::option::Option::Some(_inner),
460            Self::InvalidCommitIdException(_inner) => ::std::option::Option::Some(_inner),
461            Self::InvalidPullRequestIdException(_inner) => ::std::option::Option::Some(_inner),
462            Self::InvalidRepositoryNameException(_inner) => ::std::option::Option::Some(_inner),
463            Self::ManualMergeRequiredException(_inner) => ::std::option::Option::Some(_inner),
464            Self::PullRequestAlreadyClosedException(_inner) => ::std::option::Option::Some(_inner),
465            Self::PullRequestApprovalRulesNotSatisfiedException(_inner) => ::std::option::Option::Some(_inner),
466            Self::PullRequestDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
467            Self::PullRequestIdRequiredException(_inner) => ::std::option::Option::Some(_inner),
468            Self::ReferenceDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
469            Self::RepositoryDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
470            Self::RepositoryNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
471            Self::RepositoryNotAssociatedWithPullRequestException(_inner) => ::std::option::Option::Some(_inner),
472            Self::TipOfSourceReferenceIsDifferentException(_inner) => ::std::option::Option::Some(_inner),
473            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
474        }
475    }
476}
477impl ::std::fmt::Display for MergePullRequestByFastForwardError {
478    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
479        match self {
480            Self::ConcurrentReferenceUpdateException(_inner) => _inner.fmt(f),
481            Self::EncryptionIntegrityChecksFailedException(_inner) => _inner.fmt(f),
482            Self::EncryptionKeyAccessDeniedException(_inner) => _inner.fmt(f),
483            Self::EncryptionKeyDisabledException(_inner) => _inner.fmt(f),
484            Self::EncryptionKeyNotFoundException(_inner) => _inner.fmt(f),
485            Self::EncryptionKeyUnavailableException(_inner) => _inner.fmt(f),
486            Self::InvalidCommitIdException(_inner) => _inner.fmt(f),
487            Self::InvalidPullRequestIdException(_inner) => _inner.fmt(f),
488            Self::InvalidRepositoryNameException(_inner) => _inner.fmt(f),
489            Self::ManualMergeRequiredException(_inner) => _inner.fmt(f),
490            Self::PullRequestAlreadyClosedException(_inner) => _inner.fmt(f),
491            Self::PullRequestApprovalRulesNotSatisfiedException(_inner) => _inner.fmt(f),
492            Self::PullRequestDoesNotExistException(_inner) => _inner.fmt(f),
493            Self::PullRequestIdRequiredException(_inner) => _inner.fmt(f),
494            Self::ReferenceDoesNotExistException(_inner) => _inner.fmt(f),
495            Self::RepositoryDoesNotExistException(_inner) => _inner.fmt(f),
496            Self::RepositoryNameRequiredException(_inner) => _inner.fmt(f),
497            Self::RepositoryNotAssociatedWithPullRequestException(_inner) => _inner.fmt(f),
498            Self::TipOfSourceReferenceIsDifferentException(_inner) => _inner.fmt(f),
499            Self::Unhandled(_inner) => {
500                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
501                    write!(f, "unhandled error ({code})")
502                } else {
503                    f.write_str("unhandled error")
504                }
505            }
506        }
507    }
508}
509impl ::aws_smithy_types::retry::ProvideErrorKind for MergePullRequestByFastForwardError {
510    fn code(&self) -> ::std::option::Option<&str> {
511        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
512    }
513    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
514        ::std::option::Option::None
515    }
516}
517impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for MergePullRequestByFastForwardError {
518    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
519        match self {
520            Self::ConcurrentReferenceUpdateException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
521            Self::EncryptionIntegrityChecksFailedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
522            Self::EncryptionKeyAccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
523            Self::EncryptionKeyDisabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
524            Self::EncryptionKeyNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
525            Self::EncryptionKeyUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
526            Self::InvalidCommitIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
527            Self::InvalidPullRequestIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
528            Self::InvalidRepositoryNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
529            Self::ManualMergeRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
530            Self::PullRequestAlreadyClosedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
531            Self::PullRequestApprovalRulesNotSatisfiedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
532            Self::PullRequestDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
533            Self::PullRequestIdRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
534            Self::ReferenceDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
535            Self::RepositoryDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
536            Self::RepositoryNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
537            Self::RepositoryNotAssociatedWithPullRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
538            Self::TipOfSourceReferenceIsDifferentException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
539            Self::Unhandled(_inner) => &_inner.meta,
540        }
541    }
542}
543impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for MergePullRequestByFastForwardError {
544    fn create_unhandled_error(
545        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
546        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
547    ) -> Self {
548        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
549            source,
550            meta: meta.unwrap_or_default(),
551        })
552    }
553}
554impl ::aws_types::request_id::RequestId for crate::operation::merge_pull_request_by_fast_forward::MergePullRequestByFastForwardError {
555    fn request_id(&self) -> Option<&str> {
556        self.meta().request_id()
557    }
558}
559
560pub use crate::operation::merge_pull_request_by_fast_forward::_merge_pull_request_by_fast_forward_input::MergePullRequestByFastForwardInput;
561
562pub use crate::operation::merge_pull_request_by_fast_forward::_merge_pull_request_by_fast_forward_output::MergePullRequestByFastForwardOutput;
563
564mod _merge_pull_request_by_fast_forward_input;
565
566mod _merge_pull_request_by_fast_forward_output;
567
568/// Builders
569pub mod builders;