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