async fn delete_cluster_snapshot(
        &self,
        input: DeleteClusterSnapshotMessage,
    ) -> Result<DeleteClusterSnapshotResult, RusotoError<DeleteClusterSnapshotError>> {
        let mut request = SignedRequest::new("POST", "redshift", &self.region, "/");
        let params = self.new_params("DeleteClusterSnapshot");
        let mut params = params;
        DeleteClusterSnapshotMessageSerializer::serialize(&mut params, "", &input);
        request.set_payload(Some(serde_urlencoded::to_string(&params).unwrap()));
        request.set_content_type("application/x-www-form-urlencoded".to_owned());

        let response = self
            .sign_and_dispatch(request, DeleteClusterSnapshotError::from_response)
            .await?;

        let mut response = response;
        let result = xml_util::parse_response(&mut response, |actual_tag_name, stack| {
            xml_util::start_element(actual_tag_name, stack)?;
            let result = DeleteClusterSnapshotResultDeserializer::deserialize(
                "DeleteClusterSnapshotResult",
                stack,
            )?;
            skip_tree(stack);
            xml_util::end_element(actual_tag_name, stack)?;
            Ok(result)
        })
        .await?;

        drop(response); // parse non-payload
        Ok(result)
    }
<p>Deletes the specified manual snapshot. The snapshot must be in the <code>available</code> state, with no other users authorized to access the snapshot. </p> <p>Unlike automated snapshots, manual snapshots are retained even after you delete your cluster. Amazon Redshift does not delete your manual snapshots. You must delete manual snapshot explicitly to avoid getting charged. If other accounts are authorized to access the snapshot, you must revoke all of the authorizations before you can delete the snapshot.</p>
rusoto/services/redshift/src/generated.rs