aws-sdk-ecs 1.110.0

AWS SDK for Amazon EC2 Container Service
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// Matcher union: {"output":{"path":"failures[].reason","expected":"MISSING","comparator":"anyStringEquals"}}
pub(crate) fn match_describe_services_499ce94a3ac316e04(
    _result: ::std::result::Result<
        &crate::operation::describe_services::DescribeServicesOutput,
        &crate::operation::describe_services::DescribeServicesError,
    >,
) -> bool {
    fn path_traversal<'a>(
        _output: &'a crate::operation::describe_services::DescribeServicesOutput,
    ) -> ::std::option::Option<::std::vec::Vec<&'a ::std::string::String>> {
        let _fld_1 = _output.failures.as_ref()?;
        let _prj_3 = _fld_1
            .iter()
            .flat_map(|v| {
                #[allow(clippy::let_and_return)]
                fn map(_v: &crate::types::Failure) -> ::std::option::Option<&::std::string::String> {
                    let _fld_2 = _v.reason.as_ref();
                    _fld_2
                }
                map(v)
            })
            .collect::<::std::vec::Vec<_>>();
        ::std::option::Option::Some(_prj_3)
    }
    _result
        .as_ref()
        .ok()
        .and_then(|output| path_traversal(output))
        .map(|value| {
            value.iter().any(|value| {
                let _tmp_2 = value.as_str();
                let right = "MISSING";
                let _cmp_1 = _tmp_2 == right;
                _cmp_1
            })
        })
        .unwrap_or_default()
}

/// Matcher union: {"output":{"path":"services[].status","expected":"INACTIVE","comparator":"anyStringEquals"}}
pub(crate) fn match_describe_services_8f2b7a2837e52f740(
    _result: ::std::result::Result<
        &crate::operation::describe_services::DescribeServicesOutput,
        &crate::operation::describe_services::DescribeServicesError,
    >,
) -> bool {
    fn path_traversal<'a>(
        _output: &'a crate::operation::describe_services::DescribeServicesOutput,
    ) -> ::std::option::Option<::std::vec::Vec<&'a ::std::string::String>> {
        let _fld_1 = _output.services.as_ref()?;
        let _prj_3 = _fld_1
            .iter()
            .flat_map(|v| {
                #[allow(clippy::let_and_return)]
                fn map(_v: &crate::types::Service) -> ::std::option::Option<&::std::string::String> {
                    let _fld_2 = _v.status.as_ref();
                    _fld_2
                }
                map(v)
            })
            .collect::<::std::vec::Vec<_>>();
        ::std::option::Option::Some(_prj_3)
    }
    _result
        .as_ref()
        .ok()
        .and_then(|output| path_traversal(output))
        .map(|value| {
            value.iter().any(|value| {
                let _tmp_2 = value.as_str();
                let right = "INACTIVE";
                let _cmp_1 = _tmp_2 == right;
                _cmp_1
            })
        })
        .unwrap_or_default()
}

/// Matcher union: {"output":{"path":"services[].status","expected":"DRAINING","comparator":"anyStringEquals"}}
pub(crate) fn match_describe_services_3aec8b75baa95f8d0(
    _result: ::std::result::Result<
        &crate::operation::describe_services::DescribeServicesOutput,
        &crate::operation::describe_services::DescribeServicesError,
    >,
) -> bool {
    fn path_traversal<'a>(
        _output: &'a crate::operation::describe_services::DescribeServicesOutput,
    ) -> ::std::option::Option<::std::vec::Vec<&'a ::std::string::String>> {
        let _fld_1 = _output.services.as_ref()?;
        let _prj_3 = _fld_1
            .iter()
            .flat_map(|v| {
                #[allow(clippy::let_and_return)]
                fn map(_v: &crate::types::Service) -> ::std::option::Option<&::std::string::String> {
                    let _fld_2 = _v.status.as_ref();
                    _fld_2
                }
                map(v)
            })
            .collect::<::std::vec::Vec<_>>();
        ::std::option::Option::Some(_prj_3)
    }
    _result
        .as_ref()
        .ok()
        .and_then(|output| path_traversal(output))
        .map(|value| {
            value.iter().any(|value| {
                let _tmp_2 = value.as_str();
                let right = "DRAINING";
                let _cmp_1 = _tmp_2 == right;
                _cmp_1
            })
        })
        .unwrap_or_default()
}

/// Matcher union: {"output":{"path":"length(services[?!(length(deployments) == `1` && runningCount == desiredCount)]) == `0`","expected":"true","comparator":"booleanEquals"}}
pub(crate) fn match_describe_services_714c843e63d34632d(
    _result: ::std::result::Result<
        &crate::operation::describe_services::DescribeServicesOutput,
        &crate::operation::describe_services::DescribeServicesError,
    >,
) -> bool {
    fn path_traversal<'a>(_output: &'a crate::operation::describe_services::DescribeServicesOutput) -> ::std::option::Option<bool> {
        let _fld_2 = _output.services.as_ref()?;
        let _fprj_12 = _fld_2
            .iter()
            .filter({
                fn filter(_v: &crate::types::Service) -> ::std::option::Option<bool> {
                    let _fld_4 = _v.deployments.as_ref()?;
                    let _ret_3 = _fld_4.len() as i64;
                    const _LIT_5: &f64 = &1.0;
                    let _tmp_15 = *_LIT_5;
                    let _tmp_16 = _tmp_15 as i64;
                    let _cmp_6 = _ret_3 == _tmp_16;
                    let _fld_7 = &_v.running_count;
                    let _tmp_17 = *_fld_7;
                    let _fld_8 = &_v.desired_count;
                    let _tmp_18 = *_fld_8;
                    let _cmp_9 = _tmp_17 == _tmp_18;
                    let _bo_10 = _cmp_6 && _cmp_9;
                    let _not_11 = !_bo_10;
                    ::std::option::Option::Some(_not_11)
                }
                |v| filter(v).unwrap_or_default()
            })
            .collect::<::std::vec::Vec<_>>();
        let _ret_1 = _fprj_12.len() as i64;
        const _LIT_13: &f64 = &0.0;
        let _tmp_19 = *_LIT_13;
        let _tmp_20 = _tmp_19 as i64;
        let _cmp_14 = _ret_1 == _tmp_20;
        ::std::option::Option::Some(_cmp_14)
    }
    _result
        .as_ref()
        .ok()
        .and_then(|output| path_traversal(output))
        .map(|value| {
            let right = true;
            let _cmp_1 = value == right;
            _cmp_1
        })
        .unwrap_or_default()
}

/// Matcher union: {"output":{"path":"tasks[].lastStatus","expected":"STOPPED","comparator":"anyStringEquals"}}
pub(crate) fn match_describe_tasks_78fef02bce63aae64(
    _result: ::std::result::Result<&crate::operation::describe_tasks::DescribeTasksOutput, &crate::operation::describe_tasks::DescribeTasksError>,
) -> bool {
    fn path_traversal<'a>(
        _output: &'a crate::operation::describe_tasks::DescribeTasksOutput,
    ) -> ::std::option::Option<::std::vec::Vec<&'a ::std::string::String>> {
        let _fld_1 = _output.tasks.as_ref()?;
        let _prj_3 = _fld_1
            .iter()
            .flat_map(|v| {
                #[allow(clippy::let_and_return)]
                fn map(_v: &crate::types::Task) -> ::std::option::Option<&::std::string::String> {
                    let _fld_2 = _v.last_status.as_ref();
                    _fld_2
                }
                map(v)
            })
            .collect::<::std::vec::Vec<_>>();
        ::std::option::Option::Some(_prj_3)
    }
    _result
        .as_ref()
        .ok()
        .and_then(|output| path_traversal(output))
        .map(|value| {
            value.iter().any(|value| {
                let _tmp_2 = value.as_str();
                let right = "STOPPED";
                let _cmp_1 = _tmp_2 == right;
                _cmp_1
            })
        })
        .unwrap_or_default()
}

/// Matcher union: {"output":{"path":"failures[].reason","expected":"MISSING","comparator":"anyStringEquals"}}
pub(crate) fn match_describe_tasks_499ce94a3ac316e04(
    _result: ::std::result::Result<&crate::operation::describe_tasks::DescribeTasksOutput, &crate::operation::describe_tasks::DescribeTasksError>,
) -> bool {
    fn path_traversal<'a>(
        _output: &'a crate::operation::describe_tasks::DescribeTasksOutput,
    ) -> ::std::option::Option<::std::vec::Vec<&'a ::std::string::String>> {
        let _fld_1 = _output.failures.as_ref()?;
        let _prj_3 = _fld_1
            .iter()
            .flat_map(|v| {
                #[allow(clippy::let_and_return)]
                fn map(_v: &crate::types::Failure) -> ::std::option::Option<&::std::string::String> {
                    let _fld_2 = _v.reason.as_ref();
                    _fld_2
                }
                map(v)
            })
            .collect::<::std::vec::Vec<_>>();
        ::std::option::Option::Some(_prj_3)
    }
    _result
        .as_ref()
        .ok()
        .and_then(|output| path_traversal(output))
        .map(|value| {
            value.iter().any(|value| {
                let _tmp_2 = value.as_str();
                let right = "MISSING";
                let _cmp_1 = _tmp_2 == right;
                _cmp_1
            })
        })
        .unwrap_or_default()
}

/// Matcher union: {"output":{"path":"tasks[].lastStatus","expected":"RUNNING","comparator":"allStringEquals"}}
pub(crate) fn match_describe_tasks_cb151b89a14ade877(
    _result: ::std::result::Result<&crate::operation::describe_tasks::DescribeTasksOutput, &crate::operation::describe_tasks::DescribeTasksError>,
) -> bool {
    fn path_traversal<'a>(
        _output: &'a crate::operation::describe_tasks::DescribeTasksOutput,
    ) -> ::std::option::Option<::std::vec::Vec<&'a ::std::string::String>> {
        let _fld_1 = _output.tasks.as_ref()?;
        let _prj_3 = _fld_1
            .iter()
            .flat_map(|v| {
                #[allow(clippy::let_and_return)]
                fn map(_v: &crate::types::Task) -> ::std::option::Option<&::std::string::String> {
                    let _fld_2 = _v.last_status.as_ref();
                    _fld_2
                }
                map(v)
            })
            .collect::<::std::vec::Vec<_>>();
        ::std::option::Option::Some(_prj_3)
    }
    _result
        .as_ref()
        .ok()
        .and_then(|output| path_traversal(output))
        .map(|value| {
            !value.is_empty()
                && value.iter().all(|value| {
                    let _tmp_2 = value.as_str();
                    let right = "RUNNING";
                    let _cmp_1 = _tmp_2 == right;
                    _cmp_1
                })
        })
        .unwrap_or_default()
}

/// Matcher union: {"output":{"path":"tasks[].lastStatus","expected":"STOPPED","comparator":"allStringEquals"}}
pub(crate) fn match_describe_tasks_2f43971f90a3d02d9(
    _result: ::std::result::Result<&crate::operation::describe_tasks::DescribeTasksOutput, &crate::operation::describe_tasks::DescribeTasksError>,
) -> bool {
    fn path_traversal<'a>(
        _output: &'a crate::operation::describe_tasks::DescribeTasksOutput,
    ) -> ::std::option::Option<::std::vec::Vec<&'a ::std::string::String>> {
        let _fld_1 = _output.tasks.as_ref()?;
        let _prj_3 = _fld_1
            .iter()
            .flat_map(|v| {
                #[allow(clippy::let_and_return)]
                fn map(_v: &crate::types::Task) -> ::std::option::Option<&::std::string::String> {
                    let _fld_2 = _v.last_status.as_ref();
                    _fld_2
                }
                map(v)
            })
            .collect::<::std::vec::Vec<_>>();
        ::std::option::Option::Some(_prj_3)
    }
    _result
        .as_ref()
        .ok()
        .and_then(|output| path_traversal(output))
        .map(|value| {
            !value.is_empty()
                && value.iter().all(|value| {
                    let _tmp_2 = value.as_str();
                    let right = "STOPPED";
                    let _cmp_1 = _tmp_2 == right;
                    _cmp_1
                })
        })
        .unwrap_or_default()
}