Skip to main content

aws_sdk_codecommit/operation/
create_commit.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateCommit`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateCommit;
6impl CreateCommit {
7    /// Creates a new `CreateCommit`
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::create_commit::CreateCommitInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_commit::CreateCommitOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_commit::CreateCommitError,
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::create_commit::CreateCommitError>()
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::create_commit::CreateCommitOutput>()
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::create_commit::CreateCommitInput,
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("CodeCommit", "CreateCommit", input, runtime_plugins, stop_point)
55            // Create a parent span for the entire operation. Includes a random, internal-only,
56            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
57            .instrument(::tracing::debug_span!(
58                "CodeCommit.CreateCommit",
59                "rpc.service" = "CodeCommit",
60                "rpc.method" = "CreateCommit",
61                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
62                "rpc.system" = "aws-api",
63            ))
64            .await
65    }
66
67    pub(crate) fn operation_runtime_plugins(
68        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
69        client_config: &crate::config::Config,
70        config_override: ::std::option::Option<crate::config::Builder>,
71    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
72        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
73
74        if let ::std::option::Option::Some(config_override) = config_override {
75            for plugin in config_override.runtime_plugins.iter().cloned() {
76                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
77            }
78            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
79                config_override,
80                client_config.config.clone(),
81                &client_config.runtime_components,
82            ));
83        }
84        runtime_plugins
85    }
86}
87impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateCommit {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateCommit");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            CreateCommitRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            CreateCommitResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("CreateCommit")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
106            "CreateCommit",
107            "CodeCommit",
108        ));
109        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
110        signing_options.double_uri_encode = true;
111        signing_options.content_sha256_header = false;
112        signing_options.normalize_uri_path = true;
113        signing_options.payload_override = None;
114
115        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
116            signing_options,
117            ..::std::default::Default::default()
118        });
119
120        ::std::option::Option::Some(cfg.freeze())
121    }
122
123    fn runtime_components(
124        &self,
125        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
126    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
127        #[allow(unused_mut)]
128        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateCommit")
129            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
130                CreateCommitTelemetryInputCaptureInterceptor,
131            ))
132            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
133                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
134            ))
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                CreateCommitEndpointParamsInterceptor,
137            ))
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
139                crate::operation::create_commit::CreateCommitError,
140            >::new())
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
142                crate::operation::create_commit::CreateCommitError,
143            >::new())
144            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
145                crate::operation::create_commit::CreateCommitError,
146            >::new())
147            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
148                crate::operation::create_commit::CreateCommitError,
149            >::new());
150
151        ::std::borrow::Cow::Owned(rcb)
152    }
153}
154
155#[derive(Debug)]
156struct CreateCommitTelemetryInputCaptureInterceptor;
157
158#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
159impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateCommitTelemetryInputCaptureInterceptor {
160    fn name(&self) -> &'static str {
161        "CreateCommitTelemetryInputCaptureInterceptor"
162    }
163
164    fn read_before_execution(
165        &self,
166        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
167            '_,
168            ::aws_smithy_runtime_api::client::interceptors::context::Input,
169            ::aws_smithy_runtime_api::client::interceptors::context::Output,
170            ::aws_smithy_runtime_api::client::interceptors::context::Error,
171        >,
172        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
173    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
174        // Nothing to do unless the customer opted in by naming members to record.
175        let ::std::option::Option::Some(requested) = cfg
176            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
177            .filter(|r| !r.is_empty())
178        else {
179            return ::std::result::Result::Ok(());
180        };
181
182        let ::std::option::Option::Some(input) = context.input().downcast_ref::<CreateCommitInput>() else {
183            // A mismatched input is not this interceptor's concern; skip quietly.
184            return ::std::result::Result::Ok(());
185        };
186
187        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
188        if requested.should_capture("repositoryName") {
189            if let ::std::option::Option::Some(value) = input.repository_name.as_deref() {
190                captured.insert("repositoryName", value);
191            }
192        }
193        if requested.should_capture("branchName") {
194            if let ::std::option::Option::Some(value) = input.branch_name.as_deref() {
195                captured.insert("branchName", value);
196            }
197        }
198        if requested.should_capture("parentCommitId") {
199            if let ::std::option::Option::Some(value) = input.parent_commit_id.as_deref() {
200                captured.insert("parentCommitId", value);
201            }
202        }
203        if requested.should_capture("authorName") {
204            if let ::std::option::Option::Some(value) = input.author_name.as_deref() {
205                captured.insert("authorName", value);
206            }
207        }
208        if requested.should_capture("email") {
209            if let ::std::option::Option::Some(value) = input.email.as_deref() {
210                captured.insert("email", value);
211            }
212        }
213        if requested.should_capture("commitMessage") {
214            if let ::std::option::Option::Some(value) = input.commit_message.as_deref() {
215                captured.insert("commitMessage", value);
216            }
217        }
218
219        cfg.interceptor_state().store_put(captured);
220        ::std::result::Result::Ok(())
221    }
222}
223#[derive(Debug)]
224struct CreateCommitResponseDeserializer;
225impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateCommitResponseDeserializer {
226    fn deserialize_nonstreaming_with_config(
227        &self,
228        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
229        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
230    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
231        let (success, status) = (response.status().is_success(), response.status().as_u16());
232        let headers = response.headers();
233        let body = response.body().bytes().expect("body loaded");
234        #[allow(unused_mut)]
235        let mut force_error = false;
236        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
237        let parse_result = if !success && status != 200 || force_error {
238            crate::protocol_serde::shape_create_commit::de_create_commit_http_error(status, headers, body)
239        } else {
240            crate::protocol_serde::shape_create_commit::de_create_commit_http_response(status, headers, body)
241        };
242        crate::protocol_serde::type_erase_result(parse_result)
243    }
244}
245#[derive(Debug)]
246struct CreateCommitRequestSerializer;
247impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateCommitRequestSerializer {
248    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
249    fn serialize_input(
250        &self,
251        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
252        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
253    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
254        let input = input
255            .downcast::<crate::operation::create_commit::CreateCommitInput>()
256            .expect("correct type");
257        let _header_serialization_settings = _cfg
258            .load::<crate::serialization_settings::HeaderSerializationSettings>()
259            .cloned()
260            .unwrap_or_default();
261        let mut request_builder = {
262            #[allow(clippy::uninlined_format_args)]
263            fn uri_base(
264                _input: &crate::operation::create_commit::CreateCommitInput,
265                output: &mut ::std::string::String,
266            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
267                use ::std::fmt::Write as _;
268                ::std::write!(output, "/").expect("formatting should succeed");
269                ::std::result::Result::Ok(())
270            }
271            #[allow(clippy::unnecessary_wraps)]
272            fn update_http_builder(
273                input: &crate::operation::create_commit::CreateCommitInput,
274                builder: ::http_1x::request::Builder,
275            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
276                let mut uri = ::std::string::String::new();
277                uri_base(input, &mut uri)?;
278                ::std::result::Result::Ok(builder.method("POST").uri(uri))
279            }
280            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
281            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
282            builder = _header_serialization_settings.set_default_header(
283                builder,
284                ::http_1x::header::HeaderName::from_static("x-amz-target"),
285                "CodeCommit_20150413.CreateCommit",
286            );
287            builder
288        };
289        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_commit::ser_create_commit_input(&input)?);
290        if let Some(content_length) = body.content_length() {
291            let content_length = content_length.to_string();
292            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
293        }
294        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
295    }
296}
297#[derive(Debug)]
298struct CreateCommitEndpointParamsInterceptor;
299
300#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
301impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateCommitEndpointParamsInterceptor {
302    fn name(&self) -> &'static str {
303        "CreateCommitEndpointParamsInterceptor"
304    }
305
306    fn read_before_execution(
307        &self,
308        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
309            '_,
310            ::aws_smithy_runtime_api::client::interceptors::context::Input,
311            ::aws_smithy_runtime_api::client::interceptors::context::Output,
312            ::aws_smithy_runtime_api::client::interceptors::context::Error,
313        >,
314        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
315    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
316        let _input = context
317            .input()
318            .downcast_ref::<CreateCommitInput>()
319            .ok_or("failed to downcast to CreateCommitInput")?;
320
321        let params = crate::config::endpoint::Params::builder()
322            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
323            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
324            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
325            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
326            .build()
327            .map_err(|err| {
328                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
329            })?;
330        cfg.interceptor_state()
331            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
332        ::std::result::Result::Ok(())
333    }
334}
335
336// The get_* functions below are generated from JMESPath expressions in the
337// operationContextParams trait. They target the operation's input shape.
338
339/// Error type for the `CreateCommitError` operation.
340#[non_exhaustive]
341#[derive(::std::fmt::Debug)]
342pub enum CreateCommitError {
343    /// <p>The specified branch does not exist.</p>
344    BranchDoesNotExistException(crate::types::error::BranchDoesNotExistException),
345    /// <p>The specified branch name is not valid because it is a tag name. Enter the name of a branch in the repository. For a list of valid branch names, use <code>ListBranches</code>.</p>
346    BranchNameIsTagNameException(crate::types::error::BranchNameIsTagNameException),
347    /// <p>A branch name is required, but was not specified.</p>
348    BranchNameRequiredException(crate::types::error::BranchNameRequiredException),
349    /// <p>The commit message is too long. Provide a shorter string.</p>
350    CommitMessageLengthExceededException(crate::types::error::CommitMessageLengthExceededException),
351    /// <p>A file cannot be added to the repository because the specified path name has the same name as a file that already exists in this repository. Either provide a different name for the file, or specify a different path for the file.</p>
352    DirectoryNameConflictsWithFileNameException(crate::types::error::DirectoryNameConflictsWithFileNameException),
353    /// <p>An encryption integrity check failed.</p>
354    EncryptionIntegrityChecksFailedException(crate::types::error::EncryptionIntegrityChecksFailedException),
355    /// <p>An encryption key could not be accessed.</p>
356    EncryptionKeyAccessDeniedException(crate::types::error::EncryptionKeyAccessDeniedException),
357    /// <p>The encryption key is disabled.</p>
358    EncryptionKeyDisabledException(crate::types::error::EncryptionKeyDisabledException),
359    /// <p>No encryption key was found.</p>
360    EncryptionKeyNotFoundException(crate::types::error::EncryptionKeyNotFoundException),
361    /// <p>The encryption key is not available.</p>
362    EncryptionKeyUnavailableException(crate::types::error::EncryptionKeyUnavailableException),
363    /// <p>The commit cannot be created because both a source file and file content have been specified for the same file. You cannot provide both. Either specify a source file or provide the file content directly.</p>
364    FileContentAndSourceFileSpecifiedException(crate::types::error::FileContentAndSourceFileSpecifiedException),
365    /// <p>The file cannot be added because it is too large. The maximum file size is 6 MB, and the combined file content change size is 7 MB. Consider making these changes using a Git client.</p>
366    FileContentSizeLimitExceededException(crate::types::error::FileContentSizeLimitExceededException),
367    /// <p>The specified file does not exist. Verify that you have used the correct file name, full path, and extension.</p>
368    FileDoesNotExistException(crate::types::error::FileDoesNotExistException),
369    /// <p>The commit cannot be created because no files have been specified as added, updated, or changed (PutFile or DeleteFile) for the commit.</p>
370    FileEntryRequiredException(crate::types::error::FileEntryRequiredException),
371    /// <p>The commit cannot be created because no file mode has been specified. A file mode is required to update mode permissions for a file.</p>
372    FileModeRequiredException(crate::types::error::FileModeRequiredException),
373    /// <p>A file cannot be added to the repository because the specified file name has the same name as a directory in this repository. Either provide another name for the file, or add the file in a directory that does not match the file name.</p>
374    FileNameConflictsWithDirectoryNameException(crate::types::error::FileNameConflictsWithDirectoryNameException),
375    /// <p>The commit cannot be created because a specified file path points to a submodule. Verify that the destination files have valid file paths that do not point to a submodule.</p>
376    FilePathConflictsWithSubmodulePathException(crate::types::error::FilePathConflictsWithSubmodulePathException),
377    /// <p>The commit cannot be created because at least one of the overall changes in the commit results in a folder whose contents exceed the limit of 6 MB. Either reduce the number and size of your changes, or split the changes across multiple folders.</p>
378    FolderContentSizeLimitExceededException(crate::types::error::FolderContentSizeLimitExceededException),
379    /// <p>The specified reference name is not valid.</p>
380    InvalidBranchNameException(crate::types::error::InvalidBranchNameException),
381    /// <p>The specified deletion parameter is not valid.</p>
382    InvalidDeletionParameterException(crate::types::error::InvalidDeletionParameterException),
383    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
384    InvalidEmailException(crate::types::error::InvalidEmailException),
385    /// <p>The specified file mode permission is not valid. For a list of valid file mode permissions, see <code>PutFile</code>.</p>
386    InvalidFileModeException(crate::types::error::InvalidFileModeException),
387    /// <p>The parent commit ID is not valid. The commit ID cannot be empty, and must match the head commit ID for the branch of the repository where you want to add or update a file.</p>
388    InvalidParentCommitIdException(crate::types::error::InvalidParentCommitIdException),
389    /// <p>The specified path is not valid.</p>
390    InvalidPathException(crate::types::error::InvalidPathException),
391    /// <p>A specified repository name is not valid.</p><note>
392    /// <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>
393    /// </note>
394    InvalidRepositoryNameException(crate::types::error::InvalidRepositoryNameException),
395    /// <p>The number of specified files to change as part of this commit exceeds the maximum number of files that can be changed in a single commit. Consider using a Git client for these changes.</p>
396    MaximumFileEntriesExceededException(crate::types::error::MaximumFileEntriesExceededException),
397    /// <p>The user name is not valid because it has exceeded the character limit for author names.</p>
398    NameLengthExceededException(crate::types::error::NameLengthExceededException),
399    /// <p>The commit cannot be created because no changes will be made to the repository as a result of this commit. A commit must contain at least one change.</p>
400    NoChangeException(crate::types::error::NoChangeException),
401    /// <p>The parent commit ID is not valid because it does not exist. The specified parent commit ID does not exist in the specified branch of the repository.</p>
402    ParentCommitDoesNotExistException(crate::types::error::ParentCommitDoesNotExistException),
403    /// <p>The file could not be added because the provided parent commit ID is not the current tip of the specified branch. To view the full commit ID of the current head of the branch, use <code>GetBranch</code>.</p>
404    ParentCommitIdOutdatedException(crate::types::error::ParentCommitIdOutdatedException),
405    /// <p>A parent commit ID is required. To view the full commit ID of a branch in a repository, use <code>GetBranch</code> or a Git command (for example, git pull or git log).</p>
406    ParentCommitIdRequiredException(crate::types::error::ParentCommitIdRequiredException),
407    /// <p>The folderPath for a location cannot be null.</p>
408    PathRequiredException(crate::types::error::PathRequiredException),
409    /// <p>The commit cannot be created because one or more files specified in the commit reference both a file and a folder.</p>
410    PutFileEntryConflictException(crate::types::error::PutFileEntryConflictException),
411    /// <p>The specified repository does not exist.</p>
412    RepositoryDoesNotExistException(crate::types::error::RepositoryDoesNotExistException),
413    /// <p>A repository name is required, but was not specified.</p>
414    RepositoryNameRequiredException(crate::types::error::RepositoryNameRequiredException),
415    /// <p>The commit cannot be created because one of the changes specifies copying or moving a .gitkeep file.</p>
416    RestrictedSourceFileException(crate::types::error::RestrictedSourceFileException),
417    /// <p>The commit cannot be created because one or more changes in this commit duplicate actions in the same file path. For example, you cannot make the same delete request to the same file in the same file path twice, or make a delete request and a move request to the same file as part of the same commit.</p>
418    SamePathRequestException(crate::types::error::SamePathRequestException),
419    /// <p>The commit cannot be created because no source files or file content have been specified for the commit.</p>
420    SourceFileOrContentRequiredException(crate::types::error::SourceFileOrContentRequiredException),
421    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
422    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
423    variable wildcard pattern and check `.code()`:
424     \
425    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
426     \
427    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateCommitError) for what information is available for the error.")]
428    Unhandled(crate::error::sealed_unhandled::Unhandled),
429}
430impl CreateCommitError {
431    /// Creates the `CreateCommitError::Unhandled` variant from any error type.
432    pub fn unhandled(
433        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
434    ) -> Self {
435        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
436            source: err.into(),
437            meta: ::std::default::Default::default(),
438        })
439    }
440
441    /// Creates the `CreateCommitError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
442    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
443        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
444            source: err.clone().into(),
445            meta: err,
446        })
447    }
448    ///
449    /// Returns error metadata, which includes the error code, message,
450    /// request ID, and potentially additional information.
451    ///
452    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
453        match self {
454            Self::BranchDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
455            Self::BranchNameIsTagNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
456            Self::BranchNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
457            Self::CommitMessageLengthExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
458            Self::DirectoryNameConflictsWithFileNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
459            Self::EncryptionIntegrityChecksFailedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
460            Self::EncryptionKeyAccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
461            Self::EncryptionKeyDisabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
462            Self::EncryptionKeyNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
463            Self::EncryptionKeyUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
464            Self::FileContentAndSourceFileSpecifiedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
465            Self::FileContentSizeLimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
466            Self::FileDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
467            Self::FileEntryRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
468            Self::FileModeRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
469            Self::FileNameConflictsWithDirectoryNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
470            Self::FilePathConflictsWithSubmodulePathException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
471            Self::FolderContentSizeLimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
472            Self::InvalidBranchNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
473            Self::InvalidDeletionParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
474            Self::InvalidEmailException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
475            Self::InvalidFileModeException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
476            Self::InvalidParentCommitIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
477            Self::InvalidPathException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
478            Self::InvalidRepositoryNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
479            Self::MaximumFileEntriesExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
480            Self::NameLengthExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
481            Self::NoChangeException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
482            Self::ParentCommitDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
483            Self::ParentCommitIdOutdatedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
484            Self::ParentCommitIdRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
485            Self::PathRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
486            Self::PutFileEntryConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
487            Self::RepositoryDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
488            Self::RepositoryNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
489            Self::RestrictedSourceFileException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
490            Self::SamePathRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
491            Self::SourceFileOrContentRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
492            Self::Unhandled(e) => &e.meta,
493        }
494    }
495    /// Returns `true` if the error kind is `CreateCommitError::BranchDoesNotExistException`.
496    pub fn is_branch_does_not_exist_exception(&self) -> bool {
497        matches!(self, Self::BranchDoesNotExistException(_))
498    }
499    /// Returns `true` if the error kind is `CreateCommitError::BranchNameIsTagNameException`.
500    pub fn is_branch_name_is_tag_name_exception(&self) -> bool {
501        matches!(self, Self::BranchNameIsTagNameException(_))
502    }
503    /// Returns `true` if the error kind is `CreateCommitError::BranchNameRequiredException`.
504    pub fn is_branch_name_required_exception(&self) -> bool {
505        matches!(self, Self::BranchNameRequiredException(_))
506    }
507    /// Returns `true` if the error kind is `CreateCommitError::CommitMessageLengthExceededException`.
508    pub fn is_commit_message_length_exceeded_exception(&self) -> bool {
509        matches!(self, Self::CommitMessageLengthExceededException(_))
510    }
511    /// Returns `true` if the error kind is `CreateCommitError::DirectoryNameConflictsWithFileNameException`.
512    pub fn is_directory_name_conflicts_with_file_name_exception(&self) -> bool {
513        matches!(self, Self::DirectoryNameConflictsWithFileNameException(_))
514    }
515    /// Returns `true` if the error kind is `CreateCommitError::EncryptionIntegrityChecksFailedException`.
516    pub fn is_encryption_integrity_checks_failed_exception(&self) -> bool {
517        matches!(self, Self::EncryptionIntegrityChecksFailedException(_))
518    }
519    /// Returns `true` if the error kind is `CreateCommitError::EncryptionKeyAccessDeniedException`.
520    pub fn is_encryption_key_access_denied_exception(&self) -> bool {
521        matches!(self, Self::EncryptionKeyAccessDeniedException(_))
522    }
523    /// Returns `true` if the error kind is `CreateCommitError::EncryptionKeyDisabledException`.
524    pub fn is_encryption_key_disabled_exception(&self) -> bool {
525        matches!(self, Self::EncryptionKeyDisabledException(_))
526    }
527    /// Returns `true` if the error kind is `CreateCommitError::EncryptionKeyNotFoundException`.
528    pub fn is_encryption_key_not_found_exception(&self) -> bool {
529        matches!(self, Self::EncryptionKeyNotFoundException(_))
530    }
531    /// Returns `true` if the error kind is `CreateCommitError::EncryptionKeyUnavailableException`.
532    pub fn is_encryption_key_unavailable_exception(&self) -> bool {
533        matches!(self, Self::EncryptionKeyUnavailableException(_))
534    }
535    /// Returns `true` if the error kind is `CreateCommitError::FileContentAndSourceFileSpecifiedException`.
536    pub fn is_file_content_and_source_file_specified_exception(&self) -> bool {
537        matches!(self, Self::FileContentAndSourceFileSpecifiedException(_))
538    }
539    /// Returns `true` if the error kind is `CreateCommitError::FileContentSizeLimitExceededException`.
540    pub fn is_file_content_size_limit_exceeded_exception(&self) -> bool {
541        matches!(self, Self::FileContentSizeLimitExceededException(_))
542    }
543    /// Returns `true` if the error kind is `CreateCommitError::FileDoesNotExistException`.
544    pub fn is_file_does_not_exist_exception(&self) -> bool {
545        matches!(self, Self::FileDoesNotExistException(_))
546    }
547    /// Returns `true` if the error kind is `CreateCommitError::FileEntryRequiredException`.
548    pub fn is_file_entry_required_exception(&self) -> bool {
549        matches!(self, Self::FileEntryRequiredException(_))
550    }
551    /// Returns `true` if the error kind is `CreateCommitError::FileModeRequiredException`.
552    pub fn is_file_mode_required_exception(&self) -> bool {
553        matches!(self, Self::FileModeRequiredException(_))
554    }
555    /// Returns `true` if the error kind is `CreateCommitError::FileNameConflictsWithDirectoryNameException`.
556    pub fn is_file_name_conflicts_with_directory_name_exception(&self) -> bool {
557        matches!(self, Self::FileNameConflictsWithDirectoryNameException(_))
558    }
559    /// Returns `true` if the error kind is `CreateCommitError::FilePathConflictsWithSubmodulePathException`.
560    pub fn is_file_path_conflicts_with_submodule_path_exception(&self) -> bool {
561        matches!(self, Self::FilePathConflictsWithSubmodulePathException(_))
562    }
563    /// Returns `true` if the error kind is `CreateCommitError::FolderContentSizeLimitExceededException`.
564    pub fn is_folder_content_size_limit_exceeded_exception(&self) -> bool {
565        matches!(self, Self::FolderContentSizeLimitExceededException(_))
566    }
567    /// Returns `true` if the error kind is `CreateCommitError::InvalidBranchNameException`.
568    pub fn is_invalid_branch_name_exception(&self) -> bool {
569        matches!(self, Self::InvalidBranchNameException(_))
570    }
571    /// Returns `true` if the error kind is `CreateCommitError::InvalidDeletionParameterException`.
572    pub fn is_invalid_deletion_parameter_exception(&self) -> bool {
573        matches!(self, Self::InvalidDeletionParameterException(_))
574    }
575    /// Returns `true` if the error kind is `CreateCommitError::InvalidEmailException`.
576    pub fn is_invalid_email_exception(&self) -> bool {
577        matches!(self, Self::InvalidEmailException(_))
578    }
579    /// Returns `true` if the error kind is `CreateCommitError::InvalidFileModeException`.
580    pub fn is_invalid_file_mode_exception(&self) -> bool {
581        matches!(self, Self::InvalidFileModeException(_))
582    }
583    /// Returns `true` if the error kind is `CreateCommitError::InvalidParentCommitIdException`.
584    pub fn is_invalid_parent_commit_id_exception(&self) -> bool {
585        matches!(self, Self::InvalidParentCommitIdException(_))
586    }
587    /// Returns `true` if the error kind is `CreateCommitError::InvalidPathException`.
588    pub fn is_invalid_path_exception(&self) -> bool {
589        matches!(self, Self::InvalidPathException(_))
590    }
591    /// Returns `true` if the error kind is `CreateCommitError::InvalidRepositoryNameException`.
592    pub fn is_invalid_repository_name_exception(&self) -> bool {
593        matches!(self, Self::InvalidRepositoryNameException(_))
594    }
595    /// Returns `true` if the error kind is `CreateCommitError::MaximumFileEntriesExceededException`.
596    pub fn is_maximum_file_entries_exceeded_exception(&self) -> bool {
597        matches!(self, Self::MaximumFileEntriesExceededException(_))
598    }
599    /// Returns `true` if the error kind is `CreateCommitError::NameLengthExceededException`.
600    pub fn is_name_length_exceeded_exception(&self) -> bool {
601        matches!(self, Self::NameLengthExceededException(_))
602    }
603    /// Returns `true` if the error kind is `CreateCommitError::NoChangeException`.
604    pub fn is_no_change_exception(&self) -> bool {
605        matches!(self, Self::NoChangeException(_))
606    }
607    /// Returns `true` if the error kind is `CreateCommitError::ParentCommitDoesNotExistException`.
608    pub fn is_parent_commit_does_not_exist_exception(&self) -> bool {
609        matches!(self, Self::ParentCommitDoesNotExistException(_))
610    }
611    /// Returns `true` if the error kind is `CreateCommitError::ParentCommitIdOutdatedException`.
612    pub fn is_parent_commit_id_outdated_exception(&self) -> bool {
613        matches!(self, Self::ParentCommitIdOutdatedException(_))
614    }
615    /// Returns `true` if the error kind is `CreateCommitError::ParentCommitIdRequiredException`.
616    pub fn is_parent_commit_id_required_exception(&self) -> bool {
617        matches!(self, Self::ParentCommitIdRequiredException(_))
618    }
619    /// Returns `true` if the error kind is `CreateCommitError::PathRequiredException`.
620    pub fn is_path_required_exception(&self) -> bool {
621        matches!(self, Self::PathRequiredException(_))
622    }
623    /// Returns `true` if the error kind is `CreateCommitError::PutFileEntryConflictException`.
624    pub fn is_put_file_entry_conflict_exception(&self) -> bool {
625        matches!(self, Self::PutFileEntryConflictException(_))
626    }
627    /// Returns `true` if the error kind is `CreateCommitError::RepositoryDoesNotExistException`.
628    pub fn is_repository_does_not_exist_exception(&self) -> bool {
629        matches!(self, Self::RepositoryDoesNotExistException(_))
630    }
631    /// Returns `true` if the error kind is `CreateCommitError::RepositoryNameRequiredException`.
632    pub fn is_repository_name_required_exception(&self) -> bool {
633        matches!(self, Self::RepositoryNameRequiredException(_))
634    }
635    /// Returns `true` if the error kind is `CreateCommitError::RestrictedSourceFileException`.
636    pub fn is_restricted_source_file_exception(&self) -> bool {
637        matches!(self, Self::RestrictedSourceFileException(_))
638    }
639    /// Returns `true` if the error kind is `CreateCommitError::SamePathRequestException`.
640    pub fn is_same_path_request_exception(&self) -> bool {
641        matches!(self, Self::SamePathRequestException(_))
642    }
643    /// Returns `true` if the error kind is `CreateCommitError::SourceFileOrContentRequiredException`.
644    pub fn is_source_file_or_content_required_exception(&self) -> bool {
645        matches!(self, Self::SourceFileOrContentRequiredException(_))
646    }
647}
648impl ::std::error::Error for CreateCommitError {
649    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
650        match self {
651            Self::BranchDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
652            Self::BranchNameIsTagNameException(_inner) => ::std::option::Option::Some(_inner),
653            Self::BranchNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
654            Self::CommitMessageLengthExceededException(_inner) => ::std::option::Option::Some(_inner),
655            Self::DirectoryNameConflictsWithFileNameException(_inner) => ::std::option::Option::Some(_inner),
656            Self::EncryptionIntegrityChecksFailedException(_inner) => ::std::option::Option::Some(_inner),
657            Self::EncryptionKeyAccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
658            Self::EncryptionKeyDisabledException(_inner) => ::std::option::Option::Some(_inner),
659            Self::EncryptionKeyNotFoundException(_inner) => ::std::option::Option::Some(_inner),
660            Self::EncryptionKeyUnavailableException(_inner) => ::std::option::Option::Some(_inner),
661            Self::FileContentAndSourceFileSpecifiedException(_inner) => ::std::option::Option::Some(_inner),
662            Self::FileContentSizeLimitExceededException(_inner) => ::std::option::Option::Some(_inner),
663            Self::FileDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
664            Self::FileEntryRequiredException(_inner) => ::std::option::Option::Some(_inner),
665            Self::FileModeRequiredException(_inner) => ::std::option::Option::Some(_inner),
666            Self::FileNameConflictsWithDirectoryNameException(_inner) => ::std::option::Option::Some(_inner),
667            Self::FilePathConflictsWithSubmodulePathException(_inner) => ::std::option::Option::Some(_inner),
668            Self::FolderContentSizeLimitExceededException(_inner) => ::std::option::Option::Some(_inner),
669            Self::InvalidBranchNameException(_inner) => ::std::option::Option::Some(_inner),
670            Self::InvalidDeletionParameterException(_inner) => ::std::option::Option::Some(_inner),
671            Self::InvalidEmailException(_inner) => ::std::option::Option::Some(_inner),
672            Self::InvalidFileModeException(_inner) => ::std::option::Option::Some(_inner),
673            Self::InvalidParentCommitIdException(_inner) => ::std::option::Option::Some(_inner),
674            Self::InvalidPathException(_inner) => ::std::option::Option::Some(_inner),
675            Self::InvalidRepositoryNameException(_inner) => ::std::option::Option::Some(_inner),
676            Self::MaximumFileEntriesExceededException(_inner) => ::std::option::Option::Some(_inner),
677            Self::NameLengthExceededException(_inner) => ::std::option::Option::Some(_inner),
678            Self::NoChangeException(_inner) => ::std::option::Option::Some(_inner),
679            Self::ParentCommitDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
680            Self::ParentCommitIdOutdatedException(_inner) => ::std::option::Option::Some(_inner),
681            Self::ParentCommitIdRequiredException(_inner) => ::std::option::Option::Some(_inner),
682            Self::PathRequiredException(_inner) => ::std::option::Option::Some(_inner),
683            Self::PutFileEntryConflictException(_inner) => ::std::option::Option::Some(_inner),
684            Self::RepositoryDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
685            Self::RepositoryNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
686            Self::RestrictedSourceFileException(_inner) => ::std::option::Option::Some(_inner),
687            Self::SamePathRequestException(_inner) => ::std::option::Option::Some(_inner),
688            Self::SourceFileOrContentRequiredException(_inner) => ::std::option::Option::Some(_inner),
689            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
690        }
691    }
692}
693impl ::std::fmt::Display for CreateCommitError {
694    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
695        match self {
696            Self::BranchDoesNotExistException(_inner) => _inner.fmt(f),
697            Self::BranchNameIsTagNameException(_inner) => _inner.fmt(f),
698            Self::BranchNameRequiredException(_inner) => _inner.fmt(f),
699            Self::CommitMessageLengthExceededException(_inner) => _inner.fmt(f),
700            Self::DirectoryNameConflictsWithFileNameException(_inner) => _inner.fmt(f),
701            Self::EncryptionIntegrityChecksFailedException(_inner) => _inner.fmt(f),
702            Self::EncryptionKeyAccessDeniedException(_inner) => _inner.fmt(f),
703            Self::EncryptionKeyDisabledException(_inner) => _inner.fmt(f),
704            Self::EncryptionKeyNotFoundException(_inner) => _inner.fmt(f),
705            Self::EncryptionKeyUnavailableException(_inner) => _inner.fmt(f),
706            Self::FileContentAndSourceFileSpecifiedException(_inner) => _inner.fmt(f),
707            Self::FileContentSizeLimitExceededException(_inner) => _inner.fmt(f),
708            Self::FileDoesNotExistException(_inner) => _inner.fmt(f),
709            Self::FileEntryRequiredException(_inner) => _inner.fmt(f),
710            Self::FileModeRequiredException(_inner) => _inner.fmt(f),
711            Self::FileNameConflictsWithDirectoryNameException(_inner) => _inner.fmt(f),
712            Self::FilePathConflictsWithSubmodulePathException(_inner) => _inner.fmt(f),
713            Self::FolderContentSizeLimitExceededException(_inner) => _inner.fmt(f),
714            Self::InvalidBranchNameException(_inner) => _inner.fmt(f),
715            Self::InvalidDeletionParameterException(_inner) => _inner.fmt(f),
716            Self::InvalidEmailException(_inner) => _inner.fmt(f),
717            Self::InvalidFileModeException(_inner) => _inner.fmt(f),
718            Self::InvalidParentCommitIdException(_inner) => _inner.fmt(f),
719            Self::InvalidPathException(_inner) => _inner.fmt(f),
720            Self::InvalidRepositoryNameException(_inner) => _inner.fmt(f),
721            Self::MaximumFileEntriesExceededException(_inner) => _inner.fmt(f),
722            Self::NameLengthExceededException(_inner) => _inner.fmt(f),
723            Self::NoChangeException(_inner) => _inner.fmt(f),
724            Self::ParentCommitDoesNotExistException(_inner) => _inner.fmt(f),
725            Self::ParentCommitIdOutdatedException(_inner) => _inner.fmt(f),
726            Self::ParentCommitIdRequiredException(_inner) => _inner.fmt(f),
727            Self::PathRequiredException(_inner) => _inner.fmt(f),
728            Self::PutFileEntryConflictException(_inner) => _inner.fmt(f),
729            Self::RepositoryDoesNotExistException(_inner) => _inner.fmt(f),
730            Self::RepositoryNameRequiredException(_inner) => _inner.fmt(f),
731            Self::RestrictedSourceFileException(_inner) => _inner.fmt(f),
732            Self::SamePathRequestException(_inner) => _inner.fmt(f),
733            Self::SourceFileOrContentRequiredException(_inner) => _inner.fmt(f),
734            Self::Unhandled(_inner) => {
735                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
736                    write!(f, "unhandled error ({code})")
737                } else {
738                    f.write_str("unhandled error")
739                }
740            }
741        }
742    }
743}
744impl ::aws_smithy_types::retry::ProvideErrorKind for CreateCommitError {
745    fn code(&self) -> ::std::option::Option<&str> {
746        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
747    }
748    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
749        ::std::option::Option::None
750    }
751}
752impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateCommitError {
753    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
754        match self {
755            Self::BranchDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
756            Self::BranchNameIsTagNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
757            Self::BranchNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
758            Self::CommitMessageLengthExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
759            Self::DirectoryNameConflictsWithFileNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
760            Self::EncryptionIntegrityChecksFailedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
761            Self::EncryptionKeyAccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
762            Self::EncryptionKeyDisabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
763            Self::EncryptionKeyNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
764            Self::EncryptionKeyUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
765            Self::FileContentAndSourceFileSpecifiedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
766            Self::FileContentSizeLimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
767            Self::FileDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
768            Self::FileEntryRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
769            Self::FileModeRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
770            Self::FileNameConflictsWithDirectoryNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
771            Self::FilePathConflictsWithSubmodulePathException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
772            Self::FolderContentSizeLimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
773            Self::InvalidBranchNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
774            Self::InvalidDeletionParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
775            Self::InvalidEmailException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
776            Self::InvalidFileModeException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
777            Self::InvalidParentCommitIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
778            Self::InvalidPathException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
779            Self::InvalidRepositoryNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
780            Self::MaximumFileEntriesExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
781            Self::NameLengthExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
782            Self::NoChangeException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
783            Self::ParentCommitDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
784            Self::ParentCommitIdOutdatedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
785            Self::ParentCommitIdRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
786            Self::PathRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
787            Self::PutFileEntryConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
788            Self::RepositoryDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
789            Self::RepositoryNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
790            Self::RestrictedSourceFileException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
791            Self::SamePathRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
792            Self::SourceFileOrContentRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
793            Self::Unhandled(_inner) => &_inner.meta,
794        }
795    }
796}
797impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateCommitError {
798    fn create_unhandled_error(
799        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
800        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
801    ) -> Self {
802        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
803            source,
804            meta: meta.unwrap_or_default(),
805        })
806    }
807}
808impl ::aws_types::request_id::RequestId for crate::operation::create_commit::CreateCommitError {
809    fn request_id(&self) -> Option<&str> {
810        self.meta().request_id()
811    }
812}
813
814pub use crate::operation::create_commit::_create_commit_input::CreateCommitInput;
815
816pub use crate::operation::create_commit::_create_commit_output::CreateCommitOutput;
817
818mod _create_commit_input;
819
820mod _create_commit_output;
821
822/// Builders
823pub mod builders;