aws_sdk_transfer/operation/start_directory_listing/builders.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::start_directory_listing::_start_directory_listing_output::StartDirectoryListingOutputBuilder;
pub use crate::operation::start_directory_listing::_start_directory_listing_input::StartDirectoryListingInputBuilder;
impl crate::operation::start_directory_listing::builders::StartDirectoryListingInputBuilder {
/// Sends a request with this input using the given client.
pub async fn send_with(
self,
client: &crate::Client,
) -> ::std::result::Result<
crate::operation::start_directory_listing::StartDirectoryListingOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::start_directory_listing::StartDirectoryListingError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let mut fluent_builder = client.start_directory_listing();
fluent_builder.inner = self;
fluent_builder.send().await
}
}
/// Fluent builder constructing a request to `StartDirectoryListing`.
///
/// <p>Retrieves a list of the contents of a directory from a remote SFTP server. You specify the connector ID, the output path, and the remote directory path. You can also specify the optional <code>MaxItems</code> value to control the maximum number of items that are listed from the remote directory. This API returns a list of all files and directories in the remote directory (up to the maximum value), but does not return files or folders in sub-directories. That is, it only returns a list of files and directories one-level deep.</p>
/// <p>After you receive the listing file, you can provide the files that you want to transfer to the <code>RetrieveFilePaths</code> parameter of the <code>StartFileTransfer</code> API call.</p>
/// <p>The naming convention for the output file is <code> <i>connector-ID</i>-<i>listing-ID</i>.json</code>. The output file contains the following information:</p>
/// <ul>
/// <li>
/// <p><code>filePath</code>: the complete path of a remote file, relative to the directory of the listing request for your SFTP connector on the remote server.</p></li>
/// <li>
/// <p><code>modifiedTimestamp</code>: the last time the file was modified, in UTC time format. This field is optional. If the remote file attributes don't contain a timestamp, it is omitted from the file listing.</p></li>
/// <li>
/// <p><code>size</code>: the size of the file, in bytes. This field is optional. If the remote file attributes don't contain a file size, it is omitted from the file listing.</p></li>
/// <li>
/// <p><code>path</code>: the complete path of a remote directory, relative to the directory of the listing request for your SFTP connector on the remote server.</p></li>
/// <li>
/// <p><code>truncated</code>: a flag indicating whether the list output contains all of the items contained in the remote directory or not. If your <code>Truncated</code> output value is true, you can increase the value provided in the optional <code>max-items</code> input attribute to be able to list more items (up to the maximum allowed list size of 10,000 items).</p></li>
/// </ul>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct StartDirectoryListingFluentBuilder {
handle: ::std::sync::Arc<crate::client::Handle>,
inner: crate::operation::start_directory_listing::builders::StartDirectoryListingInputBuilder,
config_override: ::std::option::Option<crate::config::Builder>,
}
impl
crate::client::customize::internal::CustomizableSend<
crate::operation::start_directory_listing::StartDirectoryListingOutput,
crate::operation::start_directory_listing::StartDirectoryListingError,
> for StartDirectoryListingFluentBuilder
{
fn send(
self,
config_override: crate::config::Builder,
) -> crate::client::customize::internal::BoxFuture<
crate::client::customize::internal::SendResult<
crate::operation::start_directory_listing::StartDirectoryListingOutput,
crate::operation::start_directory_listing::StartDirectoryListingError,
>,
> {
::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
}
}
impl StartDirectoryListingFluentBuilder {
/// Creates a new `StartDirectoryListingFluentBuilder`.
pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
Self {
handle,
inner: ::std::default::Default::default(),
config_override: ::std::option::Option::None,
}
}
/// Access the StartDirectoryListing as a reference.
pub fn as_input(&self) -> &crate::operation::start_directory_listing::builders::StartDirectoryListingInputBuilder {
&self.inner
}
/// Sends the request and returns the response.
///
/// If an error occurs, an `SdkError` will be returned with additional details that
/// can be matched against.
///
/// By default, any retryable failures will be retried twice. Retry behavior
/// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
/// set when configuring the client.
pub async fn send(
self,
) -> ::std::result::Result<
crate::operation::start_directory_listing::StartDirectoryListingOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::start_directory_listing::StartDirectoryListingError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let input = self
.inner
.build()
.map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
let runtime_plugins = crate::operation::start_directory_listing::StartDirectoryListing::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
self.config_override,
);
crate::operation::start_directory_listing::StartDirectoryListing::orchestrate(&runtime_plugins, input).await
}
/// Consumes this builder, creating a customizable operation that can be modified before being sent.
pub fn customize(
self,
) -> crate::client::customize::CustomizableOperation<
crate::operation::start_directory_listing::StartDirectoryListingOutput,
crate::operation::start_directory_listing::StartDirectoryListingError,
Self,
> {
crate::client::customize::CustomizableOperation::new(self)
}
pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
self.set_config_override(::std::option::Option::Some(config_override.into()));
self
}
pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
self.config_override = config_override;
self
}
/// <p>The unique identifier for the connector.</p>
pub fn connector_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.connector_id(input.into());
self
}
/// <p>The unique identifier for the connector.</p>
pub fn set_connector_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_connector_id(input);
self
}
/// <p>The unique identifier for the connector.</p>
pub fn get_connector_id(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_connector_id()
}
/// <p>Specifies the directory on the remote SFTP server for which you want to list its contents.</p>
pub fn remote_directory_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.remote_directory_path(input.into());
self
}
/// <p>Specifies the directory on the remote SFTP server for which you want to list its contents.</p>
pub fn set_remote_directory_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_remote_directory_path(input);
self
}
/// <p>Specifies the directory on the remote SFTP server for which you want to list its contents.</p>
pub fn get_remote_directory_path(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_remote_directory_path()
}
/// <p>An optional parameter where you can specify the maximum number of file/directory names to retrieve. The default value is 1,000.</p>
pub fn max_items(mut self, input: i32) -> Self {
self.inner = self.inner.max_items(input);
self
}
/// <p>An optional parameter where you can specify the maximum number of file/directory names to retrieve. The default value is 1,000.</p>
pub fn set_max_items(mut self, input: ::std::option::Option<i32>) -> Self {
self.inner = self.inner.set_max_items(input);
self
}
/// <p>An optional parameter where you can specify the maximum number of file/directory names to retrieve. The default value is 1,000.</p>
pub fn get_max_items(&self) -> &::std::option::Option<i32> {
self.inner.get_max_items()
}
/// <p>Specifies the path (bucket and prefix) in Amazon S3 storage to store the results of the directory listing.</p>
pub fn output_directory_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.output_directory_path(input.into());
self
}
/// <p>Specifies the path (bucket and prefix) in Amazon S3 storage to store the results of the directory listing.</p>
pub fn set_output_directory_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_output_directory_path(input);
self
}
/// <p>Specifies the path (bucket and prefix) in Amazon S3 storage to store the results of the directory listing.</p>
pub fn get_output_directory_path(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_output_directory_path()
}
}