aws-sdk-ebs 0.24.0

AWS SDK for Amazon Elastic Block Store
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub fn add_headers_complete_snapshot(
    input: &crate::input::CompleteSnapshotInput,
    mut builder: http::request::Builder,
) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::error::BuildError> {
    if let Some(inner_1) = &input.changed_blocks_count {
        let mut encoder = aws_smithy_types::primitive::Encoder::from(*inner_1);
        let formatted_2 = encoder.encode();
        if !formatted_2.is_empty() {
            let header_value = formatted_2;
            let header_value =
                http::header::HeaderValue::try_from(&*header_value).map_err(|err| {
                    aws_smithy_http::operation::error::BuildError::invalid_field(
                        "changed_blocks_count",
                        format!(
                            "`{}` cannot be used as a header value: {}",
                            &header_value, err
                        ),
                    )
                })?;
            builder = builder.header("x-amz-ChangedBlocksCount", header_value);
        }
    }
    if let Some(inner_3) = &input.checksum {
        let formatted_4 = inner_3.as_str();
        if !formatted_4.is_empty() {
            let header_value = formatted_4;
            let header_value =
                http::header::HeaderValue::try_from(&*header_value).map_err(|err| {
                    aws_smithy_http::operation::error::BuildError::invalid_field(
                        "checksum",
                        format!(
                            "`{}` cannot be used as a header value: {}",
                            &header_value, err
                        ),
                    )
                })?;
            builder = builder.header("x-amz-Checksum", header_value);
        }
    }
    if let Some(inner_5) = &input.checksum_algorithm {
        let formatted_6 = inner_5.as_str();
        if !formatted_6.is_empty() {
            let header_value = formatted_6;
            let header_value =
                http::header::HeaderValue::try_from(&*header_value).map_err(|err| {
                    aws_smithy_http::operation::error::BuildError::invalid_field(
                        "checksum_algorithm",
                        format!(
                            "`{}` cannot be used as a header value: {}",
                            &header_value, err
                        ),
                    )
                })?;
            builder = builder.header("x-amz-Checksum-Algorithm", header_value);
        }
    }
    if let Some(inner_7) = &input.checksum_aggregation_method {
        let formatted_8 = inner_7.as_str();
        if !formatted_8.is_empty() {
            let header_value = formatted_8;
            let header_value =
                http::header::HeaderValue::try_from(&*header_value).map_err(|err| {
                    aws_smithy_http::operation::error::BuildError::invalid_field(
                        "checksum_aggregation_method",
                        format!(
                            "`{}` cannot be used as a header value: {}",
                            &header_value, err
                        ),
                    )
                })?;
            builder = builder.header("x-amz-Checksum-Aggregation-Method", header_value);
        }
    }
    Ok(builder)
}

pub fn add_headers_put_snapshot_block(
    input: &crate::input::PutSnapshotBlockInput,
    mut builder: http::request::Builder,
) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::error::BuildError> {
    if let Some(inner_9) = &input.data_length {
        let mut encoder = aws_smithy_types::primitive::Encoder::from(*inner_9);
        let formatted_10 = encoder.encode();
        if !formatted_10.is_empty() {
            let header_value = formatted_10;
            let header_value =
                http::header::HeaderValue::try_from(&*header_value).map_err(|err| {
                    aws_smithy_http::operation::error::BuildError::invalid_field(
                        "data_length",
                        format!(
                            "`{}` cannot be used as a header value: {}",
                            &header_value, err
                        ),
                    )
                })?;
            builder = builder.header("x-amz-Data-Length", header_value);
        }
    }
    if let Some(inner_11) = &input.progress {
        let mut encoder = aws_smithy_types::primitive::Encoder::from(*inner_11);
        let formatted_12 = encoder.encode();
        if !formatted_12.is_empty() {
            let header_value = formatted_12;
            let header_value =
                http::header::HeaderValue::try_from(&*header_value).map_err(|err| {
                    aws_smithy_http::operation::error::BuildError::invalid_field(
                        "progress",
                        format!(
                            "`{}` cannot be used as a header value: {}",
                            &header_value, err
                        ),
                    )
                })?;
            builder = builder.header("x-amz-Progress", header_value);
        }
    }
    if let Some(inner_13) = &input.checksum {
        let formatted_14 = inner_13.as_str();
        if !formatted_14.is_empty() {
            let header_value = formatted_14;
            let header_value =
                http::header::HeaderValue::try_from(&*header_value).map_err(|err| {
                    aws_smithy_http::operation::error::BuildError::invalid_field(
                        "checksum",
                        format!(
                            "`{}` cannot be used as a header value: {}",
                            &header_value, err
                        ),
                    )
                })?;
            builder = builder.header("x-amz-Checksum", header_value);
        }
    }
    if let Some(inner_15) = &input.checksum_algorithm {
        let formatted_16 = inner_15.as_str();
        if !formatted_16.is_empty() {
            let header_value = formatted_16;
            let header_value =
                http::header::HeaderValue::try_from(&*header_value).map_err(|err| {
                    aws_smithy_http::operation::error::BuildError::invalid_field(
                        "checksum_algorithm",
                        format!(
                            "`{}` cannot be used as a header value: {}",
                            &header_value, err
                        ),
                    )
                })?;
            builder = builder.header("x-amz-Checksum-Algorithm", header_value);
        }
    }
    Ok(builder)
}

pub fn deser_payload_get_snapshot_block_get_snapshot_block_output_block_data(
    body: &mut aws_smithy_http::body::SdkBody,
) -> std::result::Result<
    aws_smithy_http::byte_stream::ByteStream,
    crate::error::GetSnapshotBlockError,
> {
    // replace the body with an empty body
    let body = std::mem::replace(body, aws_smithy_http::body::SdkBody::taken());
    Ok(aws_smithy_http::byte_stream::ByteStream::new(body))
}

pub(crate) fn deser_header_get_snapshot_block_get_snapshot_block_output_checksum(
    header_map: &http::HeaderMap,
) -> std::result::Result<
    std::option::Option<std::string::String>,
    aws_smithy_http::header::ParseError,
> {
    let headers = header_map.get_all("x-amz-Checksum").iter();
    aws_smithy_http::header::one_or_none(headers)
}

pub(crate) fn deser_header_get_snapshot_block_get_snapshot_block_output_checksum_algorithm(
    header_map: &http::HeaderMap,
) -> std::result::Result<
    std::option::Option<crate::model::ChecksumAlgorithm>,
    aws_smithy_http::header::ParseError,
> {
    let headers = header_map.get_all("x-amz-Checksum-Algorithm").iter();
    aws_smithy_http::header::one_or_none(headers)
}

pub(crate) fn deser_header_get_snapshot_block_get_snapshot_block_output_data_length(
    header_map: &http::HeaderMap,
) -> std::result::Result<std::option::Option<i32>, aws_smithy_http::header::ParseError> {
    let headers = header_map.get_all("x-amz-Data-Length").iter();
    let var_17 = aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
    if var_17.len() > 1 {
        Err(aws_smithy_http::header::ParseError::new(format!(
            "expected one item but found {}",
            var_17.len()
        )))
    } else {
        let mut var_17 = var_17;
        Ok(var_17.pop())
    }
}

pub(crate) fn deser_header_put_snapshot_block_put_snapshot_block_output_checksum(
    header_map: &http::HeaderMap,
) -> std::result::Result<
    std::option::Option<std::string::String>,
    aws_smithy_http::header::ParseError,
> {
    let headers = header_map.get_all("x-amz-Checksum").iter();
    aws_smithy_http::header::one_or_none(headers)
}

pub(crate) fn deser_header_put_snapshot_block_put_snapshot_block_output_checksum_algorithm(
    header_map: &http::HeaderMap,
) -> std::result::Result<
    std::option::Option<crate::model::ChecksumAlgorithm>,
    aws_smithy_http::header::ParseError,
> {
    let headers = header_map.get_all("x-amz-Checksum-Algorithm").iter();
    aws_smithy_http::header::one_or_none(headers)
}