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