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