-
Notifications
You must be signed in to change notification settings - Fork 133
/
transfer.ex
321 lines (264 loc) · 11.8 KB
/
transfer.ex
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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
# WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
# See https://github.com/aws-beam/aws-codegen for more details.
defmodule AWS.Transfer do
@moduledoc """
Amazon Web Services Transfer Family is a fully managed service that enables the
transfer of files over the File Transfer Protocol (FTP), File Transfer Protocol
over SSL (FTPS), or Secure Shell (SSH) File Transfer Protocol (SFTP) directly
into and out of Amazon Simple Storage Service (Amazon S3).
Amazon Web Services helps you seamlessly migrate your file transfer workflows to
Amazon Web Services Transfer Family by integrating with existing authentication
systems, and providing DNS routing with Amazon Route 53 so nothing changes for
your customers and partners, or their applications. With your data in Amazon S3,
you can use it with Amazon Web Services services for processing, analytics,
machine learning, and archiving. Getting started with Amazon Web Services
Transfer Family is easy since there is no infrastructure to buy and set up.
"""
alias AWS.Client
alias AWS.Request
def metadata do
%AWS.ServiceMetadata{
abbreviation: "AWS Transfer",
api_version: "2018-11-05",
content_type: "application/x-amz-json-1.1",
credential_scope: nil,
endpoint_prefix: "transfer",
global?: false,
protocol: "json",
service_id: "Transfer",
signature_version: "v4",
signing_name: "transfer",
target_prefix: "TransferService"
}
end
@doc """
Used by administrators to choose which groups in the directory should have
access to upload and download files over the enabled protocols using Amazon Web
Services Transfer Family.
For example, a Microsoft Active Directory might contain 50,000 users, but only a
small fraction might need the ability to transfer files to the server. An
administrator can use `CreateAccess` to limit the access to the correct set of
users who need this ability.
"""
def create_access(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "CreateAccess", input, options)
end
@doc """
Instantiates an auto-scaling virtual server based on the selected file transfer
protocol in Amazon Web Services.
When you make updates to your file transfer protocol-enabled server or when you
work with users, use the service-generated `ServerId` property that is assigned
to the newly created server.
"""
def create_server(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "CreateServer", input, options)
end
@doc """
Creates a user and associates them with an existing file transfer
protocol-enabled server.
You can only create and associate users with servers that have the
`IdentityProviderType` set to `SERVICE_MANAGED`. Using parameters for
`CreateUser`, you can specify the user name, set the home directory, store the
user's public key, and assign the user's Amazon Web Services Identity and Access
Management (IAM) role. You can also optionally add a scope-down policy, and
assign metadata with tags that can be used to group and search for users.
"""
def create_user(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "CreateUser", input, options)
end
@doc """
Allows you to delete the access specified in the `ServerID` and `ExternalID`
parameters.
"""
def delete_access(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "DeleteAccess", input, options)
end
@doc """
Deletes the file transfer protocol-enabled server that you specify.
No response returns from this operation.
"""
def delete_server(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "DeleteServer", input, options)
end
@doc """
Deletes a user's Secure Shell (SSH) public key.
No response is returned from this operation.
"""
def delete_ssh_public_key(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "DeleteSshPublicKey", input, options)
end
@doc """
Deletes the user belonging to a file transfer protocol-enabled server you
specify.
No response returns from this operation.
When you delete a user from a server, the user's information is lost.
"""
def delete_user(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "DeleteUser", input, options)
end
@doc """
Describes the access that is assigned to the specific file transfer
protocol-enabled server, as identified by its `ServerId` property and its
`ExternalID`.
The response from this call returns the properties of the access that is
associated with the `ServerId` value that was specified.
"""
def describe_access(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "DescribeAccess", input, options)
end
@doc """
Describes the security policy that is attached to your file transfer
protocol-enabled server.
The response contains a description of the security policy's properties. For
more information about security policies, see [Working with security policies](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html).
"""
def describe_security_policy(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "DescribeSecurityPolicy", input, options)
end
@doc """
Describes a file transfer protocol-enabled server that you specify by passing
the `ServerId` parameter.
The response contains a description of a server's properties. When you set
`EndpointType` to VPC, the response will contain the `EndpointDetails`.
"""
def describe_server(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "DescribeServer", input, options)
end
@doc """
Describes the user assigned to the specific file transfer protocol-enabled
server, as identified by its `ServerId` property.
The response from this call returns the properties of the user associated with
the `ServerId` value that was specified.
"""
def describe_user(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "DescribeUser", input, options)
end
@doc """
Adds a Secure Shell (SSH) public key to a user account identified by a
`UserName` value assigned to the specific file transfer protocol-enabled server,
identified by `ServerId`.
The response returns the `UserName` value, the `ServerId` value, and the name of
the `SshPublicKeyId`.
"""
def import_ssh_public_key(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "ImportSshPublicKey", input, options)
end
@doc """
Lists the details for all the accesses you have on your server.
"""
def list_accesses(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "ListAccesses", input, options)
end
@doc """
Lists the security policies that are attached to your file transfer
protocol-enabled servers.
"""
def list_security_policies(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "ListSecurityPolicies", input, options)
end
@doc """
Lists the file transfer protocol-enabled servers that are associated with your
Amazon Web Services account.
"""
def list_servers(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "ListServers", input, options)
end
@doc """
Lists all of the tags associated with the Amazon Resource Name (ARN) that you
specify.
The resource can be a user, server, or role.
"""
def list_tags_for_resource(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "ListTagsForResource", input, options)
end
@doc """
Lists the users for a file transfer protocol-enabled server that you specify by
passing the `ServerId` parameter.
"""
def list_users(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "ListUsers", input, options)
end
@doc """
Changes the state of a file transfer protocol-enabled server from `OFFLINE` to
`ONLINE`.
It has no impact on a server that is already `ONLINE`. An `ONLINE` server can
accept and process file transfer jobs.
The state of `STARTING` indicates that the server is in an intermediate state,
either not fully able to respond, or not fully online. The values of
`START_FAILED` can indicate an error condition.
No response is returned from this call.
"""
def start_server(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "StartServer", input, options)
end
@doc """
Changes the state of a file transfer protocol-enabled server from `ONLINE` to
`OFFLINE`.
An `OFFLINE` server cannot accept and process file transfer jobs. Information
tied to your server, such as server and user properties, are not affected by
stopping your server.
Stopping the server will not reduce or impact your file transfer protocol
endpoint billing; you must delete the server to stop being billed.
The state of `STOPPING` indicates that the server is in an intermediate state,
either not fully able to respond, or not fully offline. The values of
`STOP_FAILED` can indicate an error condition.
No response is returned from this call.
"""
def stop_server(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "StopServer", input, options)
end
@doc """
Attaches a key-value pair to a resource, as identified by its Amazon Resource
Name (ARN).
Resources are users, servers, roles, and other entities.
There is no response returned from this call.
"""
def tag_resource(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "TagResource", input, options)
end
@doc """
If the `IdentityProviderType` of a file transfer protocol-enabled server is
`AWS_DIRECTORY_SERVICE` or `API_Gateway`, tests whether your identity provider
is set up successfully.
We highly recommend that you call this operation to test your authentication
method as soon as you create your server. By doing so, you can troubleshoot
issues with the identity provider integration to ensure that your users can
successfully use the service.
"""
def test_identity_provider(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "TestIdentityProvider", input, options)
end
@doc """
Detaches a key-value pair from a resource, as identified by its Amazon Resource
Name (ARN).
Resources are users, servers, roles, and other entities.
No response is returned from this call.
"""
def untag_resource(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "UntagResource", input, options)
end
@doc """
Allows you to update parameters for the access specified in the `ServerID` and
`ExternalID` parameters.
"""
def update_access(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "UpdateAccess", input, options)
end
@doc """
Updates the file transfer protocol-enabled server's properties after that server
has been created.
The `UpdateServer` call returns the `ServerId` of the server you updated.
"""
def update_server(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "UpdateServer", input, options)
end
@doc """
Assigns new properties to a user.
Parameters you pass modify any or all of the following: the home directory,
role, and policy for the `UserName` and `ServerId` you specify.
The response returns the `ServerId` and the `UserName` for the updated user.
"""
def update_user(%Client{} = client, input, options \\ []) do
Request.request_post(client, metadata(), "UpdateUser", input, options)
end
end