Skip to main content

aws_sdk_codecommit/operation/
delete_file.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `DeleteFile`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct DeleteFile;
6impl DeleteFile {
7    /// Creates a new `DeleteFile`
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::delete_file::DeleteFileInput,
14    ) -> ::std::result::Result<
15        crate::operation::delete_file::DeleteFileOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::delete_file::DeleteFileError,
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::delete_file::DeleteFileError>()
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::delete_file::DeleteFileOutput>()
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::delete_file::DeleteFileInput,
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", "DeleteFile", 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.DeleteFile",
59                "rpc.service" = "CodeCommit",
60                "rpc.method" = "DeleteFile",
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 DeleteFile {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteFile");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            DeleteFileRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            DeleteFileResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("DeleteFile")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("DeleteFile", "CodeCommit"));
106        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
107        signing_options.double_uri_encode = true;
108        signing_options.content_sha256_header = false;
109        signing_options.normalize_uri_path = true;
110        signing_options.payload_override = None;
111
112        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
113            signing_options,
114            ..::std::default::Default::default()
115        });
116
117        ::std::option::Option::Some(cfg.freeze())
118    }
119
120    fn runtime_components(
121        &self,
122        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
123    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
124        #[allow(unused_mut)]
125        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("DeleteFile")
126            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
127                DeleteFileTelemetryInputCaptureInterceptor,
128            ))
129            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
130                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
131            ))
132            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
133                DeleteFileEndpointParamsInterceptor,
134            ))
135            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
136                crate::operation::delete_file::DeleteFileError,
137            >::new())
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
139                crate::operation::delete_file::DeleteFileError,
140            >::new())
141            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
142                crate::operation::delete_file::DeleteFileError,
143            >::new());
144
145        ::std::borrow::Cow::Owned(rcb)
146    }
147}
148
149#[derive(Debug)]
150struct DeleteFileTelemetryInputCaptureInterceptor;
151
152#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
153impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteFileTelemetryInputCaptureInterceptor {
154    fn name(&self) -> &'static str {
155        "DeleteFileTelemetryInputCaptureInterceptor"
156    }
157
158    fn read_before_execution(
159        &self,
160        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
161            '_,
162            ::aws_smithy_runtime_api::client::interceptors::context::Input,
163            ::aws_smithy_runtime_api::client::interceptors::context::Output,
164            ::aws_smithy_runtime_api::client::interceptors::context::Error,
165        >,
166        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
167    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
168        // Nothing to do unless the customer opted in by naming members to record.
169        let ::std::option::Option::Some(requested) = cfg
170            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
171            .filter(|r| !r.is_empty())
172        else {
173            return ::std::result::Result::Ok(());
174        };
175
176        let ::std::option::Option::Some(input) = context.input().downcast_ref::<DeleteFileInput>() else {
177            // A mismatched input is not this interceptor's concern; skip quietly.
178            return ::std::result::Result::Ok(());
179        };
180
181        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
182        if requested.should_capture("repositoryName") {
183            if let ::std::option::Option::Some(value) = input.repository_name.as_deref() {
184                captured.insert("repositoryName", value);
185            }
186        }
187        if requested.should_capture("branchName") {
188            if let ::std::option::Option::Some(value) = input.branch_name.as_deref() {
189                captured.insert("branchName", value);
190            }
191        }
192        if requested.should_capture("filePath") {
193            if let ::std::option::Option::Some(value) = input.file_path.as_deref() {
194                captured.insert("filePath", value);
195            }
196        }
197        if requested.should_capture("parentCommitId") {
198            if let ::std::option::Option::Some(value) = input.parent_commit_id.as_deref() {
199                captured.insert("parentCommitId", value);
200            }
201        }
202        if requested.should_capture("commitMessage") {
203            if let ::std::option::Option::Some(value) = input.commit_message.as_deref() {
204                captured.insert("commitMessage", value);
205            }
206        }
207        if requested.should_capture("name") {
208            if let ::std::option::Option::Some(value) = input.name.as_deref() {
209                captured.insert("name", value);
210            }
211        }
212        if requested.should_capture("email") {
213            if let ::std::option::Option::Some(value) = input.email.as_deref() {
214                captured.insert("email", value);
215            }
216        }
217
218        cfg.interceptor_state().store_put(captured);
219        ::std::result::Result::Ok(())
220    }
221}
222#[derive(Debug)]
223struct DeleteFileResponseDeserializer;
224impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteFileResponseDeserializer {
225    fn deserialize_nonstreaming_with_config(
226        &self,
227        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
228        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
229    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
230        let (success, status) = (response.status().is_success(), response.status().as_u16());
231        let headers = response.headers();
232        let body = response.body().bytes().expect("body loaded");
233        #[allow(unused_mut)]
234        let mut force_error = false;
235        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
236        let parse_result = if !success && status != 200 || force_error {
237            crate::protocol_serde::shape_delete_file::de_delete_file_http_error(status, headers, body)
238        } else {
239            crate::protocol_serde::shape_delete_file::de_delete_file_http_response(status, headers, body)
240        };
241        crate::protocol_serde::type_erase_result(parse_result)
242    }
243}
244#[derive(Debug)]
245struct DeleteFileRequestSerializer;
246impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteFileRequestSerializer {
247    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
248    fn serialize_input(
249        &self,
250        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
251        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
252    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
253        let input = input.downcast::<crate::operation::delete_file::DeleteFileInput>().expect("correct type");
254        let _header_serialization_settings = _cfg
255            .load::<crate::serialization_settings::HeaderSerializationSettings>()
256            .cloned()
257            .unwrap_or_default();
258        let mut request_builder = {
259            #[allow(clippy::uninlined_format_args)]
260            fn uri_base(
261                _input: &crate::operation::delete_file::DeleteFileInput,
262                output: &mut ::std::string::String,
263            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
264                use ::std::fmt::Write as _;
265                ::std::write!(output, "/").expect("formatting should succeed");
266                ::std::result::Result::Ok(())
267            }
268            #[allow(clippy::unnecessary_wraps)]
269            fn update_http_builder(
270                input: &crate::operation::delete_file::DeleteFileInput,
271                builder: ::http_1x::request::Builder,
272            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
273                let mut uri = ::std::string::String::new();
274                uri_base(input, &mut uri)?;
275                ::std::result::Result::Ok(builder.method("POST").uri(uri))
276            }
277            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
278            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
279            builder = _header_serialization_settings.set_default_header(
280                builder,
281                ::http_1x::header::HeaderName::from_static("x-amz-target"),
282                "CodeCommit_20150413.DeleteFile",
283            );
284            builder
285        };
286        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_delete_file::ser_delete_file_input(&input)?);
287        if let Some(content_length) = body.content_length() {
288            let content_length = content_length.to_string();
289            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
290        }
291        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
292    }
293}
294#[derive(Debug)]
295struct DeleteFileEndpointParamsInterceptor;
296
297#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
298impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteFileEndpointParamsInterceptor {
299    fn name(&self) -> &'static str {
300        "DeleteFileEndpointParamsInterceptor"
301    }
302
303    fn read_before_execution(
304        &self,
305        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
306            '_,
307            ::aws_smithy_runtime_api::client::interceptors::context::Input,
308            ::aws_smithy_runtime_api::client::interceptors::context::Output,
309            ::aws_smithy_runtime_api::client::interceptors::context::Error,
310        >,
311        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
312    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
313        let _input = context
314            .input()
315            .downcast_ref::<DeleteFileInput>()
316            .ok_or("failed to downcast to DeleteFileInput")?;
317
318        let params = crate::config::endpoint::Params::builder()
319            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
320            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
321            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
322            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
323            .build()
324            .map_err(|err| {
325                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
326            })?;
327        cfg.interceptor_state()
328            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
329        ::std::result::Result::Ok(())
330    }
331}
332
333// The get_* functions below are generated from JMESPath expressions in the
334// operationContextParams trait. They target the operation's input shape.
335
336/// Error type for the `DeleteFileError` operation.
337#[non_exhaustive]
338#[derive(::std::fmt::Debug)]
339pub enum DeleteFileError {
340    /// <p>The specified branch does not exist.</p>
341    BranchDoesNotExistException(crate::types::error::BranchDoesNotExistException),
342    /// <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>
343    BranchNameIsTagNameException(crate::types::error::BranchNameIsTagNameException),
344    /// <p>A branch name is required, but was not specified.</p>
345    BranchNameRequiredException(crate::types::error::BranchNameRequiredException),
346    /// <p>The commit message is too long. Provide a shorter string.</p>
347    CommitMessageLengthExceededException(crate::types::error::CommitMessageLengthExceededException),
348    /// <p>An encryption integrity check failed.</p>
349    EncryptionIntegrityChecksFailedException(crate::types::error::EncryptionIntegrityChecksFailedException),
350    /// <p>An encryption key could not be accessed.</p>
351    EncryptionKeyAccessDeniedException(crate::types::error::EncryptionKeyAccessDeniedException),
352    /// <p>The encryption key is disabled.</p>
353    EncryptionKeyDisabledException(crate::types::error::EncryptionKeyDisabledException),
354    /// <p>No encryption key was found.</p>
355    EncryptionKeyNotFoundException(crate::types::error::EncryptionKeyNotFoundException),
356    /// <p>The encryption key is not available.</p>
357    EncryptionKeyUnavailableException(crate::types::error::EncryptionKeyUnavailableException),
358    /// <p>The specified file does not exist. Verify that you have used the correct file name, full path, and extension.</p>
359    FileDoesNotExistException(crate::types::error::FileDoesNotExistException),
360    /// <p>The specified reference name is not valid.</p>
361    InvalidBranchNameException(crate::types::error::InvalidBranchNameException),
362    /// <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>
363    InvalidEmailException(crate::types::error::InvalidEmailException),
364    /// <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>
365    InvalidParentCommitIdException(crate::types::error::InvalidParentCommitIdException),
366    /// <p>The specified path is not valid.</p>
367    InvalidPathException(crate::types::error::InvalidPathException),
368    /// <p>A specified repository name is not valid.</p><note>
369    /// <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>
370    /// </note>
371    InvalidRepositoryNameException(crate::types::error::InvalidRepositoryNameException),
372    /// <p>The user name is not valid because it has exceeded the character limit for author names.</p>
373    NameLengthExceededException(crate::types::error::NameLengthExceededException),
374    /// <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>
375    ParentCommitDoesNotExistException(crate::types::error::ParentCommitDoesNotExistException),
376    /// <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>
377    ParentCommitIdOutdatedException(crate::types::error::ParentCommitIdOutdatedException),
378    /// <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>
379    ParentCommitIdRequiredException(crate::types::error::ParentCommitIdRequiredException),
380    /// <p>The folderPath for a location cannot be null.</p>
381    PathRequiredException(crate::types::error::PathRequiredException),
382    /// <p>The specified repository does not exist.</p>
383    RepositoryDoesNotExistException(crate::types::error::RepositoryDoesNotExistException),
384    /// <p>A repository name is required, but was not specified.</p>
385    RepositoryNameRequiredException(crate::types::error::RepositoryNameRequiredException),
386    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
387    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
388    variable wildcard pattern and check `.code()`:
389     \
390    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
391     \
392    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteFileError) for what information is available for the error.")]
393    Unhandled(crate::error::sealed_unhandled::Unhandled),
394}
395impl DeleteFileError {
396    /// Creates the `DeleteFileError::Unhandled` variant from any error type.
397    pub fn unhandled(
398        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
399    ) -> Self {
400        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
401            source: err.into(),
402            meta: ::std::default::Default::default(),
403        })
404    }
405
406    /// Creates the `DeleteFileError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
407    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
408        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
409            source: err.clone().into(),
410            meta: err,
411        })
412    }
413    ///
414    /// Returns error metadata, which includes the error code, message,
415    /// request ID, and potentially additional information.
416    ///
417    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
418        match self {
419            Self::BranchDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
420            Self::BranchNameIsTagNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
421            Self::BranchNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
422            Self::CommitMessageLengthExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
423            Self::EncryptionIntegrityChecksFailedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
424            Self::EncryptionKeyAccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
425            Self::EncryptionKeyDisabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
426            Self::EncryptionKeyNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
427            Self::EncryptionKeyUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
428            Self::FileDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
429            Self::InvalidBranchNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
430            Self::InvalidEmailException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
431            Self::InvalidParentCommitIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
432            Self::InvalidPathException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
433            Self::InvalidRepositoryNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
434            Self::NameLengthExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
435            Self::ParentCommitDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
436            Self::ParentCommitIdOutdatedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
437            Self::ParentCommitIdRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
438            Self::PathRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
439            Self::RepositoryDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
440            Self::RepositoryNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
441            Self::Unhandled(e) => &e.meta,
442        }
443    }
444    /// Returns `true` if the error kind is `DeleteFileError::BranchDoesNotExistException`.
445    pub fn is_branch_does_not_exist_exception(&self) -> bool {
446        matches!(self, Self::BranchDoesNotExistException(_))
447    }
448    /// Returns `true` if the error kind is `DeleteFileError::BranchNameIsTagNameException`.
449    pub fn is_branch_name_is_tag_name_exception(&self) -> bool {
450        matches!(self, Self::BranchNameIsTagNameException(_))
451    }
452    /// Returns `true` if the error kind is `DeleteFileError::BranchNameRequiredException`.
453    pub fn is_branch_name_required_exception(&self) -> bool {
454        matches!(self, Self::BranchNameRequiredException(_))
455    }
456    /// Returns `true` if the error kind is `DeleteFileError::CommitMessageLengthExceededException`.
457    pub fn is_commit_message_length_exceeded_exception(&self) -> bool {
458        matches!(self, Self::CommitMessageLengthExceededException(_))
459    }
460    /// Returns `true` if the error kind is `DeleteFileError::EncryptionIntegrityChecksFailedException`.
461    pub fn is_encryption_integrity_checks_failed_exception(&self) -> bool {
462        matches!(self, Self::EncryptionIntegrityChecksFailedException(_))
463    }
464    /// Returns `true` if the error kind is `DeleteFileError::EncryptionKeyAccessDeniedException`.
465    pub fn is_encryption_key_access_denied_exception(&self) -> bool {
466        matches!(self, Self::EncryptionKeyAccessDeniedException(_))
467    }
468    /// Returns `true` if the error kind is `DeleteFileError::EncryptionKeyDisabledException`.
469    pub fn is_encryption_key_disabled_exception(&self) -> bool {
470        matches!(self, Self::EncryptionKeyDisabledException(_))
471    }
472    /// Returns `true` if the error kind is `DeleteFileError::EncryptionKeyNotFoundException`.
473    pub fn is_encryption_key_not_found_exception(&self) -> bool {
474        matches!(self, Self::EncryptionKeyNotFoundException(_))
475    }
476    /// Returns `true` if the error kind is `DeleteFileError::EncryptionKeyUnavailableException`.
477    pub fn is_encryption_key_unavailable_exception(&self) -> bool {
478        matches!(self, Self::EncryptionKeyUnavailableException(_))
479    }
480    /// Returns `true` if the error kind is `DeleteFileError::FileDoesNotExistException`.
481    pub fn is_file_does_not_exist_exception(&self) -> bool {
482        matches!(self, Self::FileDoesNotExistException(_))
483    }
484    /// Returns `true` if the error kind is `DeleteFileError::InvalidBranchNameException`.
485    pub fn is_invalid_branch_name_exception(&self) -> bool {
486        matches!(self, Self::InvalidBranchNameException(_))
487    }
488    /// Returns `true` if the error kind is `DeleteFileError::InvalidEmailException`.
489    pub fn is_invalid_email_exception(&self) -> bool {
490        matches!(self, Self::InvalidEmailException(_))
491    }
492    /// Returns `true` if the error kind is `DeleteFileError::InvalidParentCommitIdException`.
493    pub fn is_invalid_parent_commit_id_exception(&self) -> bool {
494        matches!(self, Self::InvalidParentCommitIdException(_))
495    }
496    /// Returns `true` if the error kind is `DeleteFileError::InvalidPathException`.
497    pub fn is_invalid_path_exception(&self) -> bool {
498        matches!(self, Self::InvalidPathException(_))
499    }
500    /// Returns `true` if the error kind is `DeleteFileError::InvalidRepositoryNameException`.
501    pub fn is_invalid_repository_name_exception(&self) -> bool {
502        matches!(self, Self::InvalidRepositoryNameException(_))
503    }
504    /// Returns `true` if the error kind is `DeleteFileError::NameLengthExceededException`.
505    pub fn is_name_length_exceeded_exception(&self) -> bool {
506        matches!(self, Self::NameLengthExceededException(_))
507    }
508    /// Returns `true` if the error kind is `DeleteFileError::ParentCommitDoesNotExistException`.
509    pub fn is_parent_commit_does_not_exist_exception(&self) -> bool {
510        matches!(self, Self::ParentCommitDoesNotExistException(_))
511    }
512    /// Returns `true` if the error kind is `DeleteFileError::ParentCommitIdOutdatedException`.
513    pub fn is_parent_commit_id_outdated_exception(&self) -> bool {
514        matches!(self, Self::ParentCommitIdOutdatedException(_))
515    }
516    /// Returns `true` if the error kind is `DeleteFileError::ParentCommitIdRequiredException`.
517    pub fn is_parent_commit_id_required_exception(&self) -> bool {
518        matches!(self, Self::ParentCommitIdRequiredException(_))
519    }
520    /// Returns `true` if the error kind is `DeleteFileError::PathRequiredException`.
521    pub fn is_path_required_exception(&self) -> bool {
522        matches!(self, Self::PathRequiredException(_))
523    }
524    /// Returns `true` if the error kind is `DeleteFileError::RepositoryDoesNotExistException`.
525    pub fn is_repository_does_not_exist_exception(&self) -> bool {
526        matches!(self, Self::RepositoryDoesNotExistException(_))
527    }
528    /// Returns `true` if the error kind is `DeleteFileError::RepositoryNameRequiredException`.
529    pub fn is_repository_name_required_exception(&self) -> bool {
530        matches!(self, Self::RepositoryNameRequiredException(_))
531    }
532}
533impl ::std::error::Error for DeleteFileError {
534    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
535        match self {
536            Self::BranchDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
537            Self::BranchNameIsTagNameException(_inner) => ::std::option::Option::Some(_inner),
538            Self::BranchNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
539            Self::CommitMessageLengthExceededException(_inner) => ::std::option::Option::Some(_inner),
540            Self::EncryptionIntegrityChecksFailedException(_inner) => ::std::option::Option::Some(_inner),
541            Self::EncryptionKeyAccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
542            Self::EncryptionKeyDisabledException(_inner) => ::std::option::Option::Some(_inner),
543            Self::EncryptionKeyNotFoundException(_inner) => ::std::option::Option::Some(_inner),
544            Self::EncryptionKeyUnavailableException(_inner) => ::std::option::Option::Some(_inner),
545            Self::FileDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
546            Self::InvalidBranchNameException(_inner) => ::std::option::Option::Some(_inner),
547            Self::InvalidEmailException(_inner) => ::std::option::Option::Some(_inner),
548            Self::InvalidParentCommitIdException(_inner) => ::std::option::Option::Some(_inner),
549            Self::InvalidPathException(_inner) => ::std::option::Option::Some(_inner),
550            Self::InvalidRepositoryNameException(_inner) => ::std::option::Option::Some(_inner),
551            Self::NameLengthExceededException(_inner) => ::std::option::Option::Some(_inner),
552            Self::ParentCommitDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
553            Self::ParentCommitIdOutdatedException(_inner) => ::std::option::Option::Some(_inner),
554            Self::ParentCommitIdRequiredException(_inner) => ::std::option::Option::Some(_inner),
555            Self::PathRequiredException(_inner) => ::std::option::Option::Some(_inner),
556            Self::RepositoryDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
557            Self::RepositoryNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
558            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
559        }
560    }
561}
562impl ::std::fmt::Display for DeleteFileError {
563    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
564        match self {
565            Self::BranchDoesNotExistException(_inner) => _inner.fmt(f),
566            Self::BranchNameIsTagNameException(_inner) => _inner.fmt(f),
567            Self::BranchNameRequiredException(_inner) => _inner.fmt(f),
568            Self::CommitMessageLengthExceededException(_inner) => _inner.fmt(f),
569            Self::EncryptionIntegrityChecksFailedException(_inner) => _inner.fmt(f),
570            Self::EncryptionKeyAccessDeniedException(_inner) => _inner.fmt(f),
571            Self::EncryptionKeyDisabledException(_inner) => _inner.fmt(f),
572            Self::EncryptionKeyNotFoundException(_inner) => _inner.fmt(f),
573            Self::EncryptionKeyUnavailableException(_inner) => _inner.fmt(f),
574            Self::FileDoesNotExistException(_inner) => _inner.fmt(f),
575            Self::InvalidBranchNameException(_inner) => _inner.fmt(f),
576            Self::InvalidEmailException(_inner) => _inner.fmt(f),
577            Self::InvalidParentCommitIdException(_inner) => _inner.fmt(f),
578            Self::InvalidPathException(_inner) => _inner.fmt(f),
579            Self::InvalidRepositoryNameException(_inner) => _inner.fmt(f),
580            Self::NameLengthExceededException(_inner) => _inner.fmt(f),
581            Self::ParentCommitDoesNotExistException(_inner) => _inner.fmt(f),
582            Self::ParentCommitIdOutdatedException(_inner) => _inner.fmt(f),
583            Self::ParentCommitIdRequiredException(_inner) => _inner.fmt(f),
584            Self::PathRequiredException(_inner) => _inner.fmt(f),
585            Self::RepositoryDoesNotExistException(_inner) => _inner.fmt(f),
586            Self::RepositoryNameRequiredException(_inner) => _inner.fmt(f),
587            Self::Unhandled(_inner) => {
588                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
589                    write!(f, "unhandled error ({code})")
590                } else {
591                    f.write_str("unhandled error")
592                }
593            }
594        }
595    }
596}
597impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteFileError {
598    fn code(&self) -> ::std::option::Option<&str> {
599        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
600    }
601    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
602        ::std::option::Option::None
603    }
604}
605impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteFileError {
606    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
607        match self {
608            Self::BranchDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
609            Self::BranchNameIsTagNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
610            Self::BranchNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
611            Self::CommitMessageLengthExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
612            Self::EncryptionIntegrityChecksFailedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
613            Self::EncryptionKeyAccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
614            Self::EncryptionKeyDisabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
615            Self::EncryptionKeyNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
616            Self::EncryptionKeyUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
617            Self::FileDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
618            Self::InvalidBranchNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
619            Self::InvalidEmailException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
620            Self::InvalidParentCommitIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
621            Self::InvalidPathException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
622            Self::InvalidRepositoryNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
623            Self::NameLengthExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
624            Self::ParentCommitDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
625            Self::ParentCommitIdOutdatedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
626            Self::ParentCommitIdRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
627            Self::PathRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
628            Self::RepositoryDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
629            Self::RepositoryNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
630            Self::Unhandled(_inner) => &_inner.meta,
631        }
632    }
633}
634impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteFileError {
635    fn create_unhandled_error(
636        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
637        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
638    ) -> Self {
639        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
640            source,
641            meta: meta.unwrap_or_default(),
642        })
643    }
644}
645impl ::aws_types::request_id::RequestId for crate::operation::delete_file::DeleteFileError {
646    fn request_id(&self) -> Option<&str> {
647        self.meta().request_id()
648    }
649}
650
651pub use crate::operation::delete_file::_delete_file_input::DeleteFileInput;
652
653pub use crate::operation::delete_file::_delete_file_output::DeleteFileOutput;
654
655mod _delete_file_input;
656
657mod _delete_file_output;
658
659/// Builders
660pub mod builders;