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()
    }
}