async fn describe_table_restore_status(
        &self,
        input: DescribeTableRestoreStatusMessage,
    ) -> Result<TableRestoreStatusMessage, RusotoError<DescribeTableRestoreStatusError>> {
        let mut request = SignedRequest::new("POST", "redshift", &self.region, "/");
        let params = self.new_params("DescribeTableRestoreStatus");
        let mut params = params;
        DescribeTableRestoreStatusMessageSerializer::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, DescribeTableRestoreStatusError::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 = TableRestoreStatusMessageDeserializer::deserialize(
                "DescribeTableRestoreStatusResult",
                stack,
            )?;
            skip_tree(stack);
            xml_util::end_element(actual_tag_name, stack)?;
            Ok(result)
        })
        .await?;

        drop(response); // parse non-payload
        Ok(result)
    }
<p>Lists the status of one or more table restore requests made using the <a>RestoreTableFromClusterSnapshot</a> API action. If you don't specify a value for the <code>TableRestoreRequestId</code> parameter, then <code>DescribeTableRestoreStatus</code> returns the status of all table restore requests ordered by the date and time of the request in ascending order. Otherwise <code>DescribeTableRestoreStatus</code> returns the status of the table specified by <code>TableRestoreRequestId</code>.</p>
rusoto/services/redshift/src/generated.rs