aws-sdk-transfer 1.32.0 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,26 +19,34 @@ module Aws::Transfer
19
19
  Arn = Shapes::StringShape.new(name: 'Arn')
20
20
  Certificate = Shapes::StringShape.new(name: 'Certificate')
21
21
  ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
22
+ CreateAccessRequest = Shapes::StructureShape.new(name: 'CreateAccessRequest')
23
+ CreateAccessResponse = Shapes::StructureShape.new(name: 'CreateAccessResponse')
22
24
  CreateServerRequest = Shapes::StructureShape.new(name: 'CreateServerRequest')
23
25
  CreateServerResponse = Shapes::StructureShape.new(name: 'CreateServerResponse')
24
26
  CreateUserRequest = Shapes::StructureShape.new(name: 'CreateUserRequest')
25
27
  CreateUserResponse = Shapes::StructureShape.new(name: 'CreateUserResponse')
26
28
  DateImported = Shapes::TimestampShape.new(name: 'DateImported')
29
+ DeleteAccessRequest = Shapes::StructureShape.new(name: 'DeleteAccessRequest')
27
30
  DeleteServerRequest = Shapes::StructureShape.new(name: 'DeleteServerRequest')
28
31
  DeleteSshPublicKeyRequest = Shapes::StructureShape.new(name: 'DeleteSshPublicKeyRequest')
29
32
  DeleteUserRequest = Shapes::StructureShape.new(name: 'DeleteUserRequest')
33
+ DescribeAccessRequest = Shapes::StructureShape.new(name: 'DescribeAccessRequest')
34
+ DescribeAccessResponse = Shapes::StructureShape.new(name: 'DescribeAccessResponse')
30
35
  DescribeSecurityPolicyRequest = Shapes::StructureShape.new(name: 'DescribeSecurityPolicyRequest')
31
36
  DescribeSecurityPolicyResponse = Shapes::StructureShape.new(name: 'DescribeSecurityPolicyResponse')
32
37
  DescribeServerRequest = Shapes::StructureShape.new(name: 'DescribeServerRequest')
33
38
  DescribeServerResponse = Shapes::StructureShape.new(name: 'DescribeServerResponse')
34
39
  DescribeUserRequest = Shapes::StructureShape.new(name: 'DescribeUserRequest')
35
40
  DescribeUserResponse = Shapes::StructureShape.new(name: 'DescribeUserResponse')
41
+ DescribedAccess = Shapes::StructureShape.new(name: 'DescribedAccess')
36
42
  DescribedSecurityPolicy = Shapes::StructureShape.new(name: 'DescribedSecurityPolicy')
37
43
  DescribedServer = Shapes::StructureShape.new(name: 'DescribedServer')
38
44
  DescribedUser = Shapes::StructureShape.new(name: 'DescribedUser')
45
+ DirectoryId = Shapes::StringShape.new(name: 'DirectoryId')
39
46
  Domain = Shapes::StringShape.new(name: 'Domain')
40
47
  EndpointDetails = Shapes::StructureShape.new(name: 'EndpointDetails')
41
48
  EndpointType = Shapes::StringShape.new(name: 'EndpointType')
49
+ ExternalId = Shapes::StringShape.new(name: 'ExternalId')
42
50
  Fips = Shapes::BooleanShape.new(name: 'Fips')
43
51
  HomeDirectory = Shapes::StringShape.new(name: 'HomeDirectory')
44
52
  HomeDirectoryMapEntry = Shapes::StructureShape.new(name: 'HomeDirectoryMapEntry')
@@ -53,6 +61,8 @@ module Aws::Transfer
53
61
  InternalServiceError = Shapes::StructureShape.new(name: 'InternalServiceError')
54
62
  InvalidNextTokenException = Shapes::StructureShape.new(name: 'InvalidNextTokenException')
55
63
  InvalidRequestException = Shapes::StructureShape.new(name: 'InvalidRequestException')
64
+ ListAccessesRequest = Shapes::StructureShape.new(name: 'ListAccessesRequest')
65
+ ListAccessesResponse = Shapes::StructureShape.new(name: 'ListAccessesResponse')
56
66
  ListSecurityPoliciesRequest = Shapes::StructureShape.new(name: 'ListSecurityPoliciesRequest')
57
67
  ListSecurityPoliciesResponse = Shapes::StructureShape.new(name: 'ListSecurityPoliciesResponse')
58
68
  ListServersRequest = Shapes::StructureShape.new(name: 'ListServersRequest')
@@ -61,6 +71,8 @@ module Aws::Transfer
61
71
  ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
62
72
  ListUsersRequest = Shapes::StructureShape.new(name: 'ListUsersRequest')
63
73
  ListUsersResponse = Shapes::StructureShape.new(name: 'ListUsersResponse')
74
+ ListedAccess = Shapes::StructureShape.new(name: 'ListedAccess')
75
+ ListedAccesses = Shapes::ListShape.new(name: 'ListedAccesses')
64
76
  ListedServer = Shapes::StructureShape.new(name: 'ListedServer')
65
77
  ListedServers = Shapes::ListShape.new(name: 'ListedServers')
66
78
  ListedUser = Shapes::StructureShape.new(name: 'ListedUser')
@@ -115,6 +127,8 @@ module Aws::Transfer
115
127
  TestIdentityProviderResponse = Shapes::StructureShape.new(name: 'TestIdentityProviderResponse')
116
128
  ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
117
129
  UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
130
+ UpdateAccessRequest = Shapes::StructureShape.new(name: 'UpdateAccessRequest')
131
+ UpdateAccessResponse = Shapes::StructureShape.new(name: 'UpdateAccessResponse')
118
132
  UpdateServerRequest = Shapes::StructureShape.new(name: 'UpdateServerRequest')
119
133
  UpdateServerResponse = Shapes::StructureShape.new(name: 'UpdateServerResponse')
120
134
  UpdateUserRequest = Shapes::StructureShape.new(name: 'UpdateUserRequest')
@@ -134,6 +148,20 @@ module Aws::Transfer
134
148
  ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: Message, required: true, location_name: "Message"))
135
149
  ConflictException.struct_class = Types::ConflictException
136
150
 
151
+ CreateAccessRequest.add_member(:home_directory, Shapes::ShapeRef.new(shape: HomeDirectory, location_name: "HomeDirectory"))
152
+ CreateAccessRequest.add_member(:home_directory_type, Shapes::ShapeRef.new(shape: HomeDirectoryType, location_name: "HomeDirectoryType"))
153
+ CreateAccessRequest.add_member(:home_directory_mappings, Shapes::ShapeRef.new(shape: HomeDirectoryMappings, location_name: "HomeDirectoryMappings"))
154
+ CreateAccessRequest.add_member(:policy, Shapes::ShapeRef.new(shape: Policy, location_name: "Policy"))
155
+ CreateAccessRequest.add_member(:posix_profile, Shapes::ShapeRef.new(shape: PosixProfile, location_name: "PosixProfile"))
156
+ CreateAccessRequest.add_member(:role, Shapes::ShapeRef.new(shape: Role, required: true, location_name: "Role"))
157
+ CreateAccessRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
158
+ CreateAccessRequest.add_member(:external_id, Shapes::ShapeRef.new(shape: ExternalId, required: true, location_name: "ExternalId"))
159
+ CreateAccessRequest.struct_class = Types::CreateAccessRequest
160
+
161
+ CreateAccessResponse.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
162
+ CreateAccessResponse.add_member(:external_id, Shapes::ShapeRef.new(shape: ExternalId, required: true, location_name: "ExternalId"))
163
+ CreateAccessResponse.struct_class = Types::CreateAccessResponse
164
+
137
165
  CreateServerRequest.add_member(:certificate, Shapes::ShapeRef.new(shape: Certificate, location_name: "Certificate"))
138
166
  CreateServerRequest.add_member(:domain, Shapes::ShapeRef.new(shape: Domain, location_name: "Domain"))
139
167
  CreateServerRequest.add_member(:endpoint_details, Shapes::ShapeRef.new(shape: EndpointDetails, location_name: "EndpointDetails"))
@@ -166,6 +194,10 @@ module Aws::Transfer
166
194
  CreateUserResponse.add_member(:user_name, Shapes::ShapeRef.new(shape: UserName, required: true, location_name: "UserName"))
167
195
  CreateUserResponse.struct_class = Types::CreateUserResponse
168
196
 
197
+ DeleteAccessRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
198
+ DeleteAccessRequest.add_member(:external_id, Shapes::ShapeRef.new(shape: ExternalId, required: true, location_name: "ExternalId"))
199
+ DeleteAccessRequest.struct_class = Types::DeleteAccessRequest
200
+
169
201
  DeleteServerRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
170
202
  DeleteServerRequest.struct_class = Types::DeleteServerRequest
171
203
 
@@ -178,6 +210,14 @@ module Aws::Transfer
178
210
  DeleteUserRequest.add_member(:user_name, Shapes::ShapeRef.new(shape: UserName, required: true, location_name: "UserName"))
179
211
  DeleteUserRequest.struct_class = Types::DeleteUserRequest
180
212
 
213
+ DescribeAccessRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
214
+ DescribeAccessRequest.add_member(:external_id, Shapes::ShapeRef.new(shape: ExternalId, required: true, location_name: "ExternalId"))
215
+ DescribeAccessRequest.struct_class = Types::DescribeAccessRequest
216
+
217
+ DescribeAccessResponse.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
218
+ DescribeAccessResponse.add_member(:access, Shapes::ShapeRef.new(shape: DescribedAccess, required: true, location_name: "Access"))
219
+ DescribeAccessResponse.struct_class = Types::DescribeAccessResponse
220
+
181
221
  DescribeSecurityPolicyRequest.add_member(:security_policy_name, Shapes::ShapeRef.new(shape: SecurityPolicyName, required: true, location_name: "SecurityPolicyName"))
182
222
  DescribeSecurityPolicyRequest.struct_class = Types::DescribeSecurityPolicyRequest
183
223
 
@@ -198,6 +238,15 @@ module Aws::Transfer
198
238
  DescribeUserResponse.add_member(:user, Shapes::ShapeRef.new(shape: DescribedUser, required: true, location_name: "User"))
199
239
  DescribeUserResponse.struct_class = Types::DescribeUserResponse
200
240
 
241
+ DescribedAccess.add_member(:home_directory, Shapes::ShapeRef.new(shape: HomeDirectory, location_name: "HomeDirectory"))
242
+ DescribedAccess.add_member(:home_directory_mappings, Shapes::ShapeRef.new(shape: HomeDirectoryMappings, location_name: "HomeDirectoryMappings"))
243
+ DescribedAccess.add_member(:home_directory_type, Shapes::ShapeRef.new(shape: HomeDirectoryType, location_name: "HomeDirectoryType"))
244
+ DescribedAccess.add_member(:policy, Shapes::ShapeRef.new(shape: Policy, location_name: "Policy"))
245
+ DescribedAccess.add_member(:posix_profile, Shapes::ShapeRef.new(shape: PosixProfile, location_name: "PosixProfile"))
246
+ DescribedAccess.add_member(:role, Shapes::ShapeRef.new(shape: Role, location_name: "Role"))
247
+ DescribedAccess.add_member(:external_id, Shapes::ShapeRef.new(shape: ExternalId, location_name: "ExternalId"))
248
+ DescribedAccess.struct_class = Types::DescribedAccess
249
+
201
250
  DescribedSecurityPolicy.add_member(:fips, Shapes::ShapeRef.new(shape: Fips, location_name: "Fips"))
202
251
  DescribedSecurityPolicy.add_member(:security_policy_name, Shapes::ShapeRef.new(shape: SecurityPolicyName, required: true, location_name: "SecurityPolicyName"))
203
252
  DescribedSecurityPolicy.add_member(:ssh_ciphers, Shapes::ShapeRef.new(shape: SecurityPolicyOptions, location_name: "SshCiphers"))
@@ -250,6 +299,7 @@ module Aws::Transfer
250
299
 
251
300
  IdentityProviderDetails.add_member(:url, Shapes::ShapeRef.new(shape: Url, location_name: "Url"))
252
301
  IdentityProviderDetails.add_member(:invocation_role, Shapes::ShapeRef.new(shape: Role, location_name: "InvocationRole"))
302
+ IdentityProviderDetails.add_member(:directory_id, Shapes::ShapeRef.new(shape: DirectoryId, location_name: "DirectoryId"))
253
303
  IdentityProviderDetails.struct_class = Types::IdentityProviderDetails
254
304
 
255
305
  ImportSshPublicKeyRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
@@ -271,6 +321,16 @@ module Aws::Transfer
271
321
  InvalidRequestException.add_member(:message, Shapes::ShapeRef.new(shape: Message, required: true, location_name: "Message"))
272
322
  InvalidRequestException.struct_class = Types::InvalidRequestException
273
323
 
324
+ ListAccessesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
325
+ ListAccessesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
326
+ ListAccessesRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
327
+ ListAccessesRequest.struct_class = Types::ListAccessesRequest
328
+
329
+ ListAccessesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
330
+ ListAccessesResponse.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
331
+ ListAccessesResponse.add_member(:accesses, Shapes::ShapeRef.new(shape: ListedAccesses, required: true, location_name: "Accesses"))
332
+ ListAccessesResponse.struct_class = Types::ListAccessesResponse
333
+
274
334
  ListSecurityPoliciesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
275
335
  ListSecurityPoliciesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
276
336
  ListSecurityPoliciesRequest.struct_class = Types::ListSecurityPoliciesRequest
@@ -307,6 +367,14 @@ module Aws::Transfer
307
367
  ListUsersResponse.add_member(:users, Shapes::ShapeRef.new(shape: ListedUsers, required: true, location_name: "Users"))
308
368
  ListUsersResponse.struct_class = Types::ListUsersResponse
309
369
 
370
+ ListedAccess.add_member(:home_directory, Shapes::ShapeRef.new(shape: HomeDirectory, location_name: "HomeDirectory"))
371
+ ListedAccess.add_member(:home_directory_type, Shapes::ShapeRef.new(shape: HomeDirectoryType, location_name: "HomeDirectoryType"))
372
+ ListedAccess.add_member(:role, Shapes::ShapeRef.new(shape: Role, location_name: "Role"))
373
+ ListedAccess.add_member(:external_id, Shapes::ShapeRef.new(shape: ExternalId, location_name: "ExternalId"))
374
+ ListedAccess.struct_class = Types::ListedAccess
375
+
376
+ ListedAccesses.member = Shapes::ShapeRef.new(shape: ListedAccess)
377
+
310
378
  ListedServer.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "Arn"))
311
379
  ListedServer.add_member(:domain, Shapes::ShapeRef.new(shape: Domain, location_name: "Domain"))
312
380
  ListedServer.add_member(:identity_provider_type, Shapes::ShapeRef.new(shape: IdentityProviderType, location_name: "IdentityProviderType"))
@@ -404,6 +472,20 @@ module Aws::Transfer
404
472
  UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeys, required: true, location_name: "TagKeys"))
405
473
  UntagResourceRequest.struct_class = Types::UntagResourceRequest
406
474
 
475
+ UpdateAccessRequest.add_member(:home_directory, Shapes::ShapeRef.new(shape: HomeDirectory, location_name: "HomeDirectory"))
476
+ UpdateAccessRequest.add_member(:home_directory_type, Shapes::ShapeRef.new(shape: HomeDirectoryType, location_name: "HomeDirectoryType"))
477
+ UpdateAccessRequest.add_member(:home_directory_mappings, Shapes::ShapeRef.new(shape: HomeDirectoryMappings, location_name: "HomeDirectoryMappings"))
478
+ UpdateAccessRequest.add_member(:policy, Shapes::ShapeRef.new(shape: Policy, location_name: "Policy"))
479
+ UpdateAccessRequest.add_member(:posix_profile, Shapes::ShapeRef.new(shape: PosixProfile, location_name: "PosixProfile"))
480
+ UpdateAccessRequest.add_member(:role, Shapes::ShapeRef.new(shape: Role, location_name: "Role"))
481
+ UpdateAccessRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
482
+ UpdateAccessRequest.add_member(:external_id, Shapes::ShapeRef.new(shape: ExternalId, required: true, location_name: "ExternalId"))
483
+ UpdateAccessRequest.struct_class = Types::UpdateAccessRequest
484
+
485
+ UpdateAccessResponse.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
486
+ UpdateAccessResponse.add_member(:external_id, Shapes::ShapeRef.new(shape: ExternalId, required: true, location_name: "ExternalId"))
487
+ UpdateAccessResponse.struct_class = Types::UpdateAccessResponse
488
+
407
489
  UpdateServerRequest.add_member(:certificate, Shapes::ShapeRef.new(shape: Certificate, location_name: "Certificate"))
408
490
  UpdateServerRequest.add_member(:endpoint_details, Shapes::ShapeRef.new(shape: EndpointDetails, location_name: "EndpointDetails"))
409
491
  UpdateServerRequest.add_member(:endpoint_type, Shapes::ShapeRef.new(shape: EndpointType, location_name: "EndpointType"))
@@ -452,6 +534,19 @@ module Aws::Transfer
452
534
  "uid" => "transfer-2018-11-05",
453
535
  }
454
536
 
537
+ api.add_operation(:create_access, Seahorse::Model::Operation.new.tap do |o|
538
+ o.name = "CreateAccess"
539
+ o.http_method = "POST"
540
+ o.http_request_uri = "/"
541
+ o.input = Shapes::ShapeRef.new(shape: CreateAccessRequest)
542
+ o.output = Shapes::ShapeRef.new(shape: CreateAccessResponse)
543
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
544
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceError)
545
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
546
+ o.errors << Shapes::ShapeRef.new(shape: ResourceExistsException)
547
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
548
+ end)
549
+
455
550
  api.add_operation(:create_server, Seahorse::Model::Operation.new.tap do |o|
456
551
  o.name = "CreateServer"
457
552
  o.http_method = "POST"
@@ -479,6 +574,18 @@ module Aws::Transfer
479
574
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
480
575
  end)
481
576
 
577
+ api.add_operation(:delete_access, Seahorse::Model::Operation.new.tap do |o|
578
+ o.name = "DeleteAccess"
579
+ o.http_method = "POST"
580
+ o.http_request_uri = "/"
581
+ o.input = Shapes::ShapeRef.new(shape: DeleteAccessRequest)
582
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
583
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
584
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceError)
585
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
586
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
587
+ end)
588
+
482
589
  api.add_operation(:delete_server, Seahorse::Model::Operation.new.tap do |o|
483
590
  o.name = "DeleteServer"
484
591
  o.http_method = "POST"
@@ -517,6 +624,18 @@ module Aws::Transfer
517
624
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
518
625
  end)
519
626
 
627
+ api.add_operation(:describe_access, Seahorse::Model::Operation.new.tap do |o|
628
+ o.name = "DescribeAccess"
629
+ o.http_method = "POST"
630
+ o.http_request_uri = "/"
631
+ o.input = Shapes::ShapeRef.new(shape: DescribeAccessRequest)
632
+ o.output = Shapes::ShapeRef.new(shape: DescribeAccessResponse)
633
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
634
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceError)
635
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
636
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
637
+ end)
638
+
520
639
  api.add_operation(:describe_security_policy, Seahorse::Model::Operation.new.tap do |o|
521
640
  o.name = "DescribeSecurityPolicy"
522
641
  o.http_method = "POST"
@@ -567,6 +686,25 @@ module Aws::Transfer
567
686
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
568
687
  end)
569
688
 
689
+ api.add_operation(:list_accesses, Seahorse::Model::Operation.new.tap do |o|
690
+ o.name = "ListAccesses"
691
+ o.http_method = "POST"
692
+ o.http_request_uri = "/"
693
+ o.input = Shapes::ShapeRef.new(shape: ListAccessesRequest)
694
+ o.output = Shapes::ShapeRef.new(shape: ListAccessesResponse)
695
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
696
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceError)
697
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
698
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
699
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
700
+ o[:pager] = Aws::Pager.new(
701
+ limit_key: "max_results",
702
+ tokens: {
703
+ "next_token" => "next_token"
704
+ }
705
+ )
706
+ end)
707
+
570
708
  api.add_operation(:list_security_policies, Seahorse::Model::Operation.new.tap do |o|
571
709
  o.name = "ListSecurityPolicies"
572
710
  o.http_method = "POST"
@@ -702,6 +840,19 @@ module Aws::Transfer
702
840
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
703
841
  end)
704
842
 
843
+ api.add_operation(:update_access, Seahorse::Model::Operation.new.tap do |o|
844
+ o.name = "UpdateAccess"
845
+ o.http_method = "POST"
846
+ o.http_request_uri = "/"
847
+ o.input = Shapes::ShapeRef.new(shape: UpdateAccessRequest)
848
+ o.output = Shapes::ShapeRef.new(shape: UpdateAccessResponse)
849
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
850
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceError)
851
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
852
+ o.errors << Shapes::ShapeRef.new(shape: ResourceExistsException)
853
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
854
+ end)
855
+
705
856
  api.add_operation(:update_server, Seahorse::Model::Operation.new.tap do |o|
706
857
  o.name = "UpdateServer"
707
858
  o.http_method = "POST"
@@ -38,6 +38,194 @@ module Aws::Transfer
38
38
  include Aws::Structure
39
39
  end
40
40
 
41
+ # @note When making an API call, you may pass CreateAccessRequest
42
+ # data as a hash:
43
+ #
44
+ # {
45
+ # home_directory: "HomeDirectory",
46
+ # home_directory_type: "PATH", # accepts PATH, LOGICAL
47
+ # home_directory_mappings: [
48
+ # {
49
+ # entry: "MapEntry", # required
50
+ # target: "MapTarget", # required
51
+ # },
52
+ # ],
53
+ # policy: "Policy",
54
+ # posix_profile: {
55
+ # uid: 1, # required
56
+ # gid: 1, # required
57
+ # secondary_gids: [1],
58
+ # },
59
+ # role: "Role", # required
60
+ # server_id: "ServerId", # required
61
+ # external_id: "ExternalId", # required
62
+ # }
63
+ #
64
+ # @!attribute [rw] home_directory
65
+ # The landing directory (folder) for a user when they log in to the
66
+ # server using the client.
67
+ #
68
+ # A `HomeDirectory` example is `/directory_name/home/mydirectory`.
69
+ # @return [String]
70
+ #
71
+ # @!attribute [rw] home_directory_type
72
+ # The type of landing directory (folder) that you want your users'
73
+ # home directory to be when they log in to the server. If you set it
74
+ # to `PATH`, the user will see the absolute Amazon S3 bucket paths as
75
+ # is in their file transfer protocol clients. If you set it `LOGICAL`,
76
+ # you must provide mappings in the `HomeDirectoryMappings` for how you
77
+ # want to make Amazon S3 paths visible to your users.
78
+ # @return [String]
79
+ #
80
+ # @!attribute [rw] home_directory_mappings
81
+ # Logical directory mappings that specify what Amazon S3 or Amazon EFS
82
+ # paths and keys should be visible to your user and how you want to
83
+ # make them visible. You must specify the `Entry` and `Target` pair,
84
+ # where `Entry` shows how the path is made visible and `Target` is the
85
+ # actual Amazon S3 or Amazon EFS path. If you only specify a target,
86
+ # it will be displayed as is. You also must ensure that your AWS
87
+ # Identity and Access Management (IAM) role provides access to paths
88
+ # in `Target`. This value can only be set when `HomeDirectoryType` is
89
+ # set to *LOGICAL*.
90
+ #
91
+ # The following is an `Entry` and `Target` pair example.
92
+ #
93
+ # `[ \{ "Entry": "your-personal-report.pdf", "Target":
94
+ # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
95
+ #
96
+ # In most cases, you can use this value instead of the scope-down
97
+ # policy to lock down your user to the designated home directory
98
+ # ("`chroot`"). To do this, you can set `Entry` to `/` and set
99
+ # `Target` to the `HomeDirectory` parameter value.
100
+ #
101
+ # The following is an `Entry` and `Target` pair example for `chroot`.
102
+ #
103
+ # `[ \{ "Entry": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
104
+ #
105
+ # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
106
+ # S3 or Amazon EFS, the entry will be ignored. As a workaround, you
107
+ # can use the Amazon S3 API or EFS API to create 0-byte objects as
108
+ # place holders for your directory. If using the AWS CLI, use the
109
+ # `s3api` or `efsapi` call instead of `s3` or `efs` so you can use the
110
+ # `put-object` operation. For example, you can use the following.
111
+ #
112
+ # `aws s3api put-object --bucket bucketname --key path/to/folder/`
113
+ #
114
+ # The end of the key name must end in a `/` for it to be considered a
115
+ # folder.
116
+ #
117
+ # </note>
118
+ #
119
+ # Required: No
120
+ # @return [Array<Types::HomeDirectoryMapEntry>]
121
+ #
122
+ # @!attribute [rw] policy
123
+ # A scope-down policy for your user so that you can use the same IAM
124
+ # role across multiple users. This policy scopes down user access to
125
+ # portions of their Amazon S3 bucket. Variables that you can use
126
+ # inside this policy include `$\{Transfer:UserName\}`,
127
+ # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
128
+ #
129
+ # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does
130
+ # not use scope down policy.
131
+ #
132
+ # For scope-down policies, AWS Transfer Family stores the policy as a
133
+ # JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
134
+ # You save the policy as a JSON blob and pass it in the `Policy`
135
+ # argument.
136
+ #
137
+ # For an example of a scope-down policy, see [Example scope-down
138
+ # policy][1].
139
+ #
140
+ # For more information, see [AssumeRole][2] in the *AWS Security Token
141
+ # Service API Reference*.
142
+ #
143
+ # </note>
144
+ #
145
+ #
146
+ #
147
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
148
+ # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
149
+ # @return [String]
150
+ #
151
+ # @!attribute [rw] posix_profile
152
+ # The full POSIX identity, including user ID (`Uid`), group ID
153
+ # (`Gid`), and any secondary groups IDs (`SecondaryGids`), that
154
+ # controls your users' access to your Amazon EFS file systems. The
155
+ # POSIX permissions that are set on files and directories in your file
156
+ # system determine the level of access your users get when
157
+ # transferring files into and out of your Amazon EFS file systems.
158
+ # @return [Types::PosixProfile]
159
+ #
160
+ # @!attribute [rw] role
161
+ # Specifies the IAM role that controls your users' access to your
162
+ # Amazon S3 bucket or EFS file system. The policies attached to this
163
+ # role determine the level of access that you want to provide your
164
+ # users when transferring files into and out of your Amazon S3 bucket
165
+ # or EFS file system. The IAM role should also contain a trust
166
+ # relationship that allows the server to access your resources when
167
+ # servicing your users' transfer requests.
168
+ # @return [String]
169
+ #
170
+ # @!attribute [rw] server_id
171
+ # A system-assigned unique identifier for a server instance. This is
172
+ # the specific server that you added your user to.
173
+ # @return [String]
174
+ #
175
+ # @!attribute [rw] external_id
176
+ # A unique identifier that is required to identify specific groups
177
+ # within your directory. The users of the group that you associate
178
+ # have access to your Amazon S3 or Amazon EFS resources over the
179
+ # enabled protocols using AWS Transfer Family. If you know the group
180
+ # name, you can view the SID values by running the following command
181
+ # using Windows PowerShell.
182
+ #
183
+ # `Get-ADGroup -Filter \{samAccountName -like "YourGroupName*"\}
184
+ # -Properties * | Select SamaccountName,ObjectSid`
185
+ #
186
+ # In that command, replace *YourGroupName* with the name of your
187
+ # Active Directory group.
188
+ #
189
+ # The regex used to validate this parameter is a string of characters
190
+ # consisting of uppercase and lowercase alphanumeric characters with
191
+ # no spaces. You can also include underscores or any of the following
192
+ # characters: =,.@:/-
193
+ # @return [String]
194
+ #
195
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateAccessRequest AWS API Documentation
196
+ #
197
+ class CreateAccessRequest < Struct.new(
198
+ :home_directory,
199
+ :home_directory_type,
200
+ :home_directory_mappings,
201
+ :policy,
202
+ :posix_profile,
203
+ :role,
204
+ :server_id,
205
+ :external_id)
206
+ SENSITIVE = []
207
+ include Aws::Structure
208
+ end
209
+
210
+ # @!attribute [rw] server_id
211
+ # The ID of the server that the user is attached to.
212
+ # @return [String]
213
+ #
214
+ # @!attribute [rw] external_id
215
+ # The external ID of the group whose users have access to your Amazon
216
+ # S3 or Amazon EFS resources over the enabled protocols using AWS
217
+ # Transfer Family.
218
+ # @return [String]
219
+ #
220
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateAccessResponse AWS API Documentation
221
+ #
222
+ class CreateAccessResponse < Struct.new(
223
+ :server_id,
224
+ :external_id)
225
+ SENSITIVE = []
226
+ include Aws::Structure
227
+ end
228
+
41
229
  # @note When making an API call, you may pass CreateServerRequest
42
230
  # data as a hash:
43
231
  #
@@ -56,8 +244,9 @@ module Aws::Transfer
56
244
  # identity_provider_details: {
57
245
  # url: "Url",
58
246
  # invocation_role: "Role",
247
+ # directory_id: "DirectoryId",
59
248
  # },
60
- # identity_provider_type: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, API_GATEWAY
249
+ # identity_provider_type: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, API_GATEWAY, AWS_DIRECTORY_SERVICE
61
250
  # logging_role: "Role",
62
251
  # protocols: ["SFTP"], # accepts SFTP, FTP, FTPS
63
252
  # security_policy_name: "SecurityPolicyName",
@@ -110,24 +299,44 @@ module Aws::Transfer
110
299
  # @return [String]
111
300
  #
112
301
  # @!attribute [rw] domain
302
+ # The domain of the storage system that is used for file transfers.
303
+ # There are two domains available: Amazon Simple Storage Service
304
+ # (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default
305
+ # value is S3.
306
+ #
307
+ # <note markdown="1"> After the server is created, the domain cannot be changed.
308
+ #
309
+ # </note>
113
310
  # @return [String]
114
311
  #
115
312
  # @!attribute [rw] endpoint_details
116
313
  # The virtual private cloud (VPC) endpoint settings that are
117
314
  # configured for your server. When you host your endpoint within your
118
315
  # VPC, you can make it accessible only to resources within your VPC,
119
- # or you can attach Elastic IPs and make it accessible to clients over
120
- # the internet. Your VPC's default security groups are automatically
121
- # assigned to your endpoint.
316
+ # or you can attach Elastic IP addresses and make it accessible to
317
+ # clients over the internet. Your VPC's default security groups are
318
+ # automatically assigned to your endpoint.
122
319
  # @return [Types::EndpointDetails]
123
320
  #
124
321
  # @!attribute [rw] endpoint_type
125
- # The type of VPC endpoint that you want your server to connect to.
126
- # You can choose to connect to the public internet or a VPC endpoint.
127
- # With a VPC endpoint, you can restrict access to your server and
128
- # resources only within your VPC.
129
- #
130
- # <note markdown="1"> It is recommended that you use `VPC` as the `EndpointType`. With
322
+ # The type of endpoint that you want your server to use. You can
323
+ # choose to make your server's endpoint publicly accessible (PUBLIC)
324
+ # or host it inside your VPC. With an endpoint that is hosted in a
325
+ # VPC, you can restrict access to your server and resources only
326
+ # within your VPC or choose to make it internet facing by attaching
327
+ # Elastic IP addresses directly to it.
328
+ #
329
+ # <note markdown="1"> After March 31, 2021, you won't be able to create a server using
330
+ # `EndpointType=VPC_ENDPOINT` in your AWS account if your account
331
+ # hasn't already done so before March 31, 2021. If you have already
332
+ # created servers with `EndpointType=VPC_ENDPOINT` in your AWS account
333
+ # on or before March 31, 2021, you will not be affected. After this
334
+ # date, use `EndpointType`=`VPC`.
335
+ #
336
+ # For more information, see
337
+ # https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
338
+ #
339
+ # It is recommended that you use `VPC` as the `EndpointType`. With
131
340
  # this endpoint type, you have the option to directly associate up to
132
341
  # three Elastic IPv4 addresses (BYO IP included) with your server's
133
342
  # endpoint and use VPC security groups to restrict traffic by the
@@ -154,20 +363,26 @@ module Aws::Transfer
154
363
  # @return [String]
155
364
  #
156
365
  # @!attribute [rw] identity_provider_details
157
- # Required when `IdentityProviderType` is set to `API_GATEWAY`.
158
- # Accepts an array containing all of the information required to call
159
- # a customer-supplied authentication API, including the API Gateway
160
- # URL. Not required when `IdentityProviderType` is set to
161
- # `SERVICE_MANAGED`.
366
+ # Required when `IdentityProviderType` is set to
367
+ # `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`. Accepts an array
368
+ # containing all of the information required to use a directory in
369
+ # `AWS_DIRECTORY_SERVICE` or invoke a customer-supplied authentication
370
+ # API, including the API Gateway URL. Not required when
371
+ # `IdentityProviderType` is set to `SERVICE_MANAGED`.
162
372
  # @return [Types::IdentityProviderDetails]
163
373
  #
164
374
  # @!attribute [rw] identity_provider_type
165
375
  # Specifies the mode of authentication for a server. The default value
166
376
  # is `SERVICE_MANAGED`, which allows you to store and access user
167
- # credentials within the AWS Transfer Family service. Use the
168
- # `API_GATEWAY` value to integrate with an identity provider of your
169
- # choosing. The `API_GATEWAY` setting requires you to provide an API
170
- # Gateway endpoint URL to call for authentication using the
377
+ # credentials within the AWS Transfer Family service. Use
378
+ # `AWS_DIRECTORY_SERVICE` to provide access to Active Directory groups
379
+ # in AWS Managed Active Directory or Microsoft Active Directory in
380
+ # your on-premises environment or in AWS using AD Connectors. This
381
+ # option also requires you to provide a Directory ID using the
382
+ # `IdentityProviderDetails` parameter. Use the `API_GATEWAY` value to
383
+ # integrate with an identity provider of your choosing. The
384
+ # `API_GATEWAY` setting requires you to provide an API Gateway
385
+ # endpoint URL to call for authentication using the
171
386
  # `IdentityProviderDetails` parameter.
172
387
  # @return [String]
173
388
  #
@@ -195,7 +410,7 @@ module Aws::Transfer
195
410
  #
196
411
  # If `Protocol` includes either `FTP` or `FTPS`, then the
197
412
  # `EndpointType` must be `VPC` and the `IdentityProviderType` must be
198
- # `API_GATEWAY`.
413
+ # `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`.
199
414
  #
200
415
  # If `Protocol` includes `FTP`, then `AddressAllocationIds` cannot be
201
416
  # associated.
@@ -280,8 +495,7 @@ module Aws::Transfer
280
495
  # The landing directory (folder) for a user when they log in to the
281
496
  # server using the client.
282
497
  #
283
- # An example is <i>
284
- # <code>your-Amazon-S3-bucket-name&gt;/home/username</code> </i>.
498
+ # A `HomeDirectory` example is `/bucket_name/home/mydirectory`.
285
499
  # @return [String]
286
500
  #
287
501
  # @!attribute [rw] home_directory_type
@@ -294,32 +508,37 @@ module Aws::Transfer
294
508
  # @return [String]
295
509
  #
296
510
  # @!attribute [rw] home_directory_mappings
297
- # Logical directory mappings that specify what Amazon S3 paths and
298
- # keys should be visible to your user and how you want to make them
299
- # visible. You will need to specify the "`Entry`" and "`Target`"
511
+ # Logical directory mappings that specify what Amazon S3 or EFS paths
512
+ # and keys should be visible to your user and how you want to make
513
+ # them visible. You will need to specify the `Entry` and `Target`
300
514
  # pair, where `Entry` shows how the path is made visible and `Target`
301
- # is the actual Amazon S3 path. If you only specify a target, it will
302
- # be displayed as is. You will need to also make sure that your IAM
303
- # role provides access to paths in `Target`. The following is an
304
- # example.
515
+ # is the actual Amazon S3 or EFS path. If you only specify a target,
516
+ # it will be displayed as is. You will need to also make sure that
517
+ # your IAM role provides access to paths in `Target`. This value can
518
+ # only be set when `HomeDirectoryType` is set to `LOGICAL`.
305
519
  #
306
- # `'[ "/bucket2/documentation", \{ "Entry":
307
- # "your-personal-report.pdf", "Target":
308
- # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]'`
520
+ # The following is an `Entry` and `Target` pair example.
521
+ #
522
+ # `[ \{ "Entry": "your-personal-report.pdf", "Target":
523
+ # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
309
524
  #
310
525
  # In most cases, you can use this value instead of the scope-down
311
526
  # policy to lock your user down to the designated home directory
312
- # ("chroot"). To do this, you can set `Entry` to '/' and set
527
+ # ("`chroot`"). To do this, you can set `Entry` to `/` and set
313
528
  # `Target` to the HomeDirectory parameter value.
314
529
  #
530
+ # The following is an `Entry` and `Target` pair example for `chroot`.
531
+ #
532
+ # `[ \{ "Entry": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
533
+ #
315
534
  # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
316
- # S3, the entry will be ignored. As a workaround, you can use the
317
- # Amazon S3 API to create 0 byte objects as place holders for your
318
- # directory. If using the CLI, use the `s3api` call instead of `s3` so
319
- # you can use the put-object operation. For example, you use the
320
- # following: `aws s3api put-object --bucket bucketname --key
321
- # path/to/folder/`. Make sure that the end of the key name ends in a
322
- # '/' for it to be considered a folder.
535
+ # S3 or EFS, the entry will be ignored. As a workaround, you can use
536
+ # the Amazon S3 API or EFS API to create 0 byte objects as place
537
+ # holders for your directory. If using the CLI, use the `s3api` or
538
+ # `efsapi` call instead of `s3` or `efs` so you can use the put-object
539
+ # operation. For example, you use the following: `aws s3api put-object
540
+ # --bucket bucketname --key path/to/folder/`. Make sure that the end
541
+ # of the key name ends in a `/` for it to be considered a folder.
323
542
  #
324
543
  # </note>
325
544
  # @return [Array<Types::HomeDirectoryMapEntry>]
@@ -331,12 +550,15 @@ module Aws::Transfer
331
550
  # inside this policy include `$\{Transfer:UserName\}`,
332
551
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
333
552
  #
334
- # <note markdown="1"> For scope-down policies, AWS Transfer Family stores the policy as a
553
+ # <note markdown="1"> This only applies when domain of ServerId is S3. EFS does not use
554
+ # scope down policy.
555
+ #
556
+ # For scope-down policies, AWS Transfer Family stores the policy as a
335
557
  # JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
336
558
  # You save the policy as a JSON blob and pass it in the `Policy`
337
559
  # argument.
338
560
  #
339
- # For an example of a scope-down policy, see [Creating a scope-down
561
+ # For an example of a scope-down policy, see [Example scope-down
340
562
  # policy][1].
341
563
  #
342
564
  # For more information, see [AssumeRole][2] in the *AWS Security Token
@@ -346,20 +568,27 @@ module Aws::Transfer
346
568
  #
347
569
  #
348
570
  #
349
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down
571
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
350
572
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
351
573
  # @return [String]
352
574
  #
353
575
  # @!attribute [rw] posix_profile
576
+ # Specifies the full POSIX identity, including user ID (`Uid`), group
577
+ # ID (`Gid`), and any secondary groups IDs (`SecondaryGids`), that
578
+ # controls your users' access to your Amazon EFS file systems. The
579
+ # POSIX permissions that are set on files and directories in Amazon
580
+ # EFS determine the level of access your users get when transferring
581
+ # files into and out of your Amazon EFS file systems.
354
582
  # @return [Types::PosixProfile]
355
583
  #
356
584
  # @!attribute [rw] role
357
- # The IAM role that controls your users' access to your Amazon S3
358
- # bucket. The policies attached to this role will determine the level
359
- # of access you want to provide your users when transferring files
360
- # into and out of your Amazon S3 bucket or buckets. The IAM role
361
- # should also contain a trust relationship that allows the server to
362
- # access your resources when servicing your users' transfer requests.
585
+ # Specifies the IAM role that controls your users' access to your
586
+ # Amazon S3 bucket or EFS file system. The policies attached to this
587
+ # role will determine the level of access you want to provide your
588
+ # users when transferring files into and out of your Amazon S3 bucket
589
+ # or EFS file system. The IAM role should also contain a trust
590
+ # relationship that allows the server to access your resources when
591
+ # servicing your users' transfer requests.
363
592
  # @return [String]
364
593
  #
365
594
  # @!attribute [rw] server_id
@@ -421,6 +650,48 @@ module Aws::Transfer
421
650
  include Aws::Structure
422
651
  end
423
652
 
653
+ # @note When making an API call, you may pass DeleteAccessRequest
654
+ # data as a hash:
655
+ #
656
+ # {
657
+ # server_id: "ServerId", # required
658
+ # external_id: "ExternalId", # required
659
+ # }
660
+ #
661
+ # @!attribute [rw] server_id
662
+ # A system-assigned unique identifier for a server that has this user
663
+ # assigned.
664
+ # @return [String]
665
+ #
666
+ # @!attribute [rw] external_id
667
+ # A unique identifier that is required to identify specific groups
668
+ # within your directory. The users of the group that you associate
669
+ # have access to your Amazon S3 or Amazon EFS resources over the
670
+ # enabled protocols using AWS Transfer Family. If you know the group
671
+ # name, you can view the SID values by running the following command
672
+ # using Windows PowerShell.
673
+ #
674
+ # `Get-ADGroup -Filter \{samAccountName -like "YourGroupName*"\}
675
+ # -Properties * | Select SamaccountName,ObjectSid`
676
+ #
677
+ # In that command, replace *YourGroupName* with the name of your
678
+ # Active Directory group.
679
+ #
680
+ # The regex used to validate this parameter is a string of characters
681
+ # consisting of uppercase and lowercase alphanumeric characters with
682
+ # no spaces. You can also include underscores or any of the following
683
+ # characters: =,.@:/-
684
+ # @return [String]
685
+ #
686
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteAccessRequest AWS API Documentation
687
+ #
688
+ class DeleteAccessRequest < Struct.new(
689
+ :server_id,
690
+ :external_id)
691
+ SENSITIVE = []
692
+ include Aws::Structure
693
+ end
694
+
424
695
  # @note When making an API call, you may pass DeleteServerRequest
425
696
  # data as a hash:
426
697
  #
@@ -500,6 +771,66 @@ module Aws::Transfer
500
771
  include Aws::Structure
501
772
  end
502
773
 
774
+ # @note When making an API call, you may pass DescribeAccessRequest
775
+ # data as a hash:
776
+ #
777
+ # {
778
+ # server_id: "ServerId", # required
779
+ # external_id: "ExternalId", # required
780
+ # }
781
+ #
782
+ # @!attribute [rw] server_id
783
+ # A system-assigned unique identifier for a server that has this
784
+ # access assigned.
785
+ # @return [String]
786
+ #
787
+ # @!attribute [rw] external_id
788
+ # A unique identifier that is required to identify specific groups
789
+ # within your directory. The users of the group you associate have
790
+ # access to your Amazon S3 or Amazon EFS resources over the enabled
791
+ # protocols using AWS Transfer Family. If you know the group name, you
792
+ # can view the SID values by running the following command using
793
+ # Windows PowerShell.
794
+ #
795
+ # `Get-ADGroup -Filter \{samAccountName -like "YourGroupName*"\}
796
+ # -Properties * | Select SamaccountName,ObjectSid`
797
+ #
798
+ # In that command, replace *YourGroupName* with the name of your
799
+ # Active Directory group.
800
+ #
801
+ # The regex used to validate this parameter is a string of characters
802
+ # consisting of uppercase and lowercase alphanumeric characters with
803
+ # no spaces. You can also include underscores or any of the following
804
+ # characters: =,.@:/-
805
+ # @return [String]
806
+ #
807
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeAccessRequest AWS API Documentation
808
+ #
809
+ class DescribeAccessRequest < Struct.new(
810
+ :server_id,
811
+ :external_id)
812
+ SENSITIVE = []
813
+ include Aws::Structure
814
+ end
815
+
816
+ # @!attribute [rw] server_id
817
+ # A system-assigned unique identifier for a server that has this
818
+ # access assigned.
819
+ # @return [String]
820
+ #
821
+ # @!attribute [rw] access
822
+ # The external ID of the server that the access is attached to.
823
+ # @return [Types::DescribedAccess]
824
+ #
825
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeAccessResponse AWS API Documentation
826
+ #
827
+ class DescribeAccessResponse < Struct.new(
828
+ :server_id,
829
+ :access)
830
+ SENSITIVE = []
831
+ include Aws::Structure
832
+ end
833
+
503
834
  # @note When making an API call, you may pass DescribeSecurityPolicyRequest
504
835
  # data as a hash:
505
836
  #
@@ -611,6 +942,100 @@ module Aws::Transfer
611
942
  include Aws::Structure
612
943
  end
613
944
 
945
+ # Describes the properties of the access that was specified.
946
+ #
947
+ # @!attribute [rw] home_directory
948
+ # Specifies the landing directory (or folder), which is the location
949
+ # that files are written to or read from in an Amazon S3 bucket, for
950
+ # the described access.
951
+ # @return [String]
952
+ #
953
+ # @!attribute [rw] home_directory_mappings
954
+ # Specifies the logical directory mappings that specify what Amazon S3
955
+ # or Amazon EFS paths and keys should be visible to the associated
956
+ # access and how you want to make them visible. You must specify the
957
+ # "`Entry`" and "`Target`" pair, where `Entry` shows how the path
958
+ # is made visible and `Target` is the actual Amazon S3 or EFS path. If
959
+ # you only specify a target, it will be displayed as is. You also must
960
+ # ensure that your AWS Identity and Access Management (IAM) role
961
+ # provides access to paths in `Target`.
962
+ #
963
+ # In most cases, you can use this value instead of the scope-down
964
+ # policy to lock down the associated access to the designated home
965
+ # directory ("`chroot`"). To do this, you can set `Entry` to '/'
966
+ # and set `Target` to the `HomeDirectory` parameter value.
967
+ # @return [Array<Types::HomeDirectoryMapEntry>]
968
+ #
969
+ # @!attribute [rw] home_directory_type
970
+ # The type of landing directory (folder) that you want your users'
971
+ # home directory to be when they log in to the server. If you set it
972
+ # to `PATH`, the user will see the absolute Amazon S3 bucket paths as
973
+ # is in their file transfer protocol clients. If you set it to
974
+ # `LOGICAL`, you must provide mappings in the `HomeDirectoryMappings`
975
+ # for how you want to make Amazon S3 paths visible to your users.
976
+ # @return [String]
977
+ #
978
+ # @!attribute [rw] policy
979
+ # A scope-down policy for your user so that you can use the same AWS
980
+ # Identity and Access Management (IAM) role across multiple users.
981
+ # This policy scopes down user access to portions of their Amazon S3
982
+ # bucket. Variables that you can use inside this policy include
983
+ # `$\{Transfer:UserName\}`, `$\{Transfer:HomeDirectory\}`, and
984
+ # `$\{Transfer:HomeBucket\}`.
985
+ # @return [String]
986
+ #
987
+ # @!attribute [rw] posix_profile
988
+ # The full POSIX identity, including user ID (`Uid`), group ID
989
+ # (`Gid`), and any secondary groups IDs (`SecondaryGids`), that
990
+ # controls your users' access to your Amazon EFS file systems. The
991
+ # POSIX permissions that are set on files and directories in your file
992
+ # system determine the level of access your users get when
993
+ # transferring files into and out of your Amazon EFS file systems.
994
+ # @return [Types::PosixProfile]
995
+ #
996
+ # @!attribute [rw] role
997
+ # The IAM role that controls access to your Amazon S3 bucket from the
998
+ # specified associated access. The policies attached to this role will
999
+ # determine the level of access that you want to provide the
1000
+ # associated access when transferring files into and out of your
1001
+ # Amazon S3 bucket or buckets. The IAM role should also contain a
1002
+ # trust relationship that allows a server to access your resources
1003
+ # when servicing transfer requests for the associated access.
1004
+ # @return [String]
1005
+ #
1006
+ # @!attribute [rw] external_id
1007
+ # A unique identifier that might be required when you assume a role in
1008
+ # another account. Think of the `ExternalID` as a group membership
1009
+ # mechanism that uses a unique identifier (often a SID, but could be a
1010
+ # group name or something else) as a basis. If the administrator of
1011
+ # the account to which the role belongs provided you with an external
1012
+ # ID, then provide that value in the `ExternalId` parameter. A
1013
+ # cross-account role is usually set up to trust everyone in an
1014
+ # account. Therefore, the administrator of the trusting account might
1015
+ # send an external ID to the administrator of the trusted account.
1016
+ # That way, only someone with the ID can assume the role, rather than
1017
+ # everyone in the account.
1018
+ #
1019
+ # The regex used to validate this parameter is a string of characters
1020
+ # consisting of uppercase and lowercase alphanumeric characters with
1021
+ # no spaces. You can also include underscores or any of the following
1022
+ # characters: =,.@:/-
1023
+ # @return [String]
1024
+ #
1025
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribedAccess AWS API Documentation
1026
+ #
1027
+ class DescribedAccess < Struct.new(
1028
+ :home_directory,
1029
+ :home_directory_mappings,
1030
+ :home_directory_type,
1031
+ :policy,
1032
+ :posix_profile,
1033
+ :role,
1034
+ :external_id)
1035
+ SENSITIVE = []
1036
+ include Aws::Structure
1037
+ end
1038
+
614
1039
  # Describes the properties of a security policy that was specified. For
615
1040
  # more information about security policies, see [Working with security
616
1041
  # policies][1].
@@ -677,6 +1102,8 @@ module Aws::Transfer
677
1102
  # @return [String]
678
1103
  #
679
1104
  # @!attribute [rw] domain
1105
+ # Specifies the domain of the storage system that is used for file
1106
+ # transfers.
680
1107
  # @return [String]
681
1108
  #
682
1109
  # @!attribute [rw] endpoint_details
@@ -699,23 +1126,26 @@ module Aws::Transfer
699
1126
  # @!attribute [rw] identity_provider_details
700
1127
  # Specifies information to call a customer-supplied authentication
701
1128
  # API. This field is not populated when the `IdentityProviderType` of
702
- # a server is `SERVICE_MANAGED`.
1129
+ # a server is `AWS_DIRECTORY_SERVICE` or `SERVICE_MANAGED`.
703
1130
  # @return [Types::IdentityProviderDetails]
704
1131
  #
705
1132
  # @!attribute [rw] identity_provider_type
706
1133
  # Specifies the mode of authentication method enabled for this
707
- # service. A value of `SERVICE_MANAGED` means that you are using this
708
- # server to store and access user credentials within the service. A
709
- # value of `API_GATEWAY` indicates that you have integrated an API
710
- # Gateway endpoint that will be invoked for authenticating your user
711
- # into the service.
1134
+ # service. A value of `AWS_DIRECTORY_SERVICE` means that you are
1135
+ # providing access to Active Directory groups in AWS Managed Active
1136
+ # Directory or Microsoft Active Directory in your on-premises
1137
+ # environment or in AWS using AD Connectors. A value of
1138
+ # `SERVICE_MANAGED` means that you are using this server to store and
1139
+ # access user credentials within the service. A value of `API_GATEWAY`
1140
+ # indicates that you have integrated an API Gateway endpoint that will
1141
+ # be invoked for authenticating your user into the service.
712
1142
  # @return [String]
713
1143
  #
714
1144
  # @!attribute [rw] logging_role
715
1145
  # Specifies the AWS Identity and Access Management (IAM) role that
716
1146
  # allows a server to turn on Amazon CloudWatch logging for Amazon S3
717
- # events. When set, user activity can be viewed in your CloudWatch
718
- # logs.
1147
+ # or Amazon EFS events. When set, user activity can be viewed in your
1148
+ # CloudWatch logs.
719
1149
  # @return [String]
720
1150
  #
721
1151
  # @!attribute [rw] protocols
@@ -802,17 +1232,17 @@ module Aws::Transfer
802
1232
  #
803
1233
  # @!attribute [rw] home_directory_mappings
804
1234
  # Specifies the logical directory mappings that specify what Amazon S3
805
- # paths and keys should be visible to your user and how you want to
806
- # make them visible. You will need to specify the "`Entry`" and
807
- # "`Target`" pair, where `Entry` shows how the path is made visible
808
- # and `Target` is the actual Amazon S3 path. If you only specify a
809
- # target, it will be displayed as is. You will need to also make sure
810
- # that your AWS Identity and Access Management (IAM) role provides
811
- # access to paths in `Target`.
1235
+ # or EFS paths and keys should be visible to your user and how you
1236
+ # want to make them visible. You will need to specify the "`Entry`"
1237
+ # and "`Target`" pair, where `Entry` shows how the path is made
1238
+ # visible and `Target` is the actual Amazon S3 or EFS path. If you
1239
+ # only specify a target, it will be displayed as is. You will need to
1240
+ # also make sure that your AWS Identity and Access Management (IAM)
1241
+ # role provides access to paths in `Target`.
812
1242
  #
813
1243
  # In most cases, you can use this value instead of the scope-down
814
1244
  # policy to lock your user down to the designated home directory
815
- # ("chroot"). To do this, you can set `Entry` to '/' and set
1245
+ # ("`chroot`"). To do this, you can set `Entry` to '/' and set
816
1246
  # `Target` to the HomeDirectory parameter value.
817
1247
  # @return [Array<Types::HomeDirectoryMapEntry>]
818
1248
  #
@@ -820,10 +1250,10 @@ module Aws::Transfer
820
1250
  # Specifies the type of landing directory (folder) you mapped for your
821
1251
  # users to see when they log into the file transfer protocol-enabled
822
1252
  # server. If you set it to `PATH`, the user will see the absolute
823
- # Amazon S3 bucket paths as is in their file transfer protocol
1253
+ # Amazon S3 bucket or EFS paths as is in their file transfer protocol
824
1254
  # clients. If you set it `LOGICAL`, you will need to provide mappings
825
- # in the `HomeDirectoryMappings` for how you want to make Amazon S3
826
- # paths visible to your users.
1255
+ # in the `HomeDirectoryMappings` for how you want to make Amazon S3 or
1256
+ # EFS paths visible to your users.
827
1257
  # @return [String]
828
1258
  #
829
1259
  # @!attribute [rw] policy
@@ -831,13 +1261,20 @@ module Aws::Transfer
831
1261
  # @return [String]
832
1262
  #
833
1263
  # @!attribute [rw] posix_profile
1264
+ # Specifies the full POSIX identity, including user ID (`Uid`), group
1265
+ # ID (`Gid`), and any secondary groups IDs (`SecondaryGids`), that
1266
+ # controls your users' access to your Amazon Elastic File System
1267
+ # (Amazon EFS) file systems. The POSIX permissions that are set on
1268
+ # files and directories in your file system determine the level of
1269
+ # access your users get when transferring files into and out of your
1270
+ # Amazon EFS file systems.
834
1271
  # @return [Types::PosixProfile]
835
1272
  #
836
1273
  # @!attribute [rw] role
837
- # Specifies the IAM role that controls your users' access to your
838
- # Amazon S3 bucket. The policies attached to this role will determine
839
- # the level of access you want to provide your users when transferring
840
- # files into and out of your Amazon S3 bucket or buckets. The IAM role
1274
+ # The IAM role that controls your users' access to your Amazon S3
1275
+ # bucket. The policies attached to this role will determine the level
1276
+ # of access you want to provide your users when transferring files
1277
+ # into and out of your Amazon S3 bucket or buckets. The IAM role
841
1278
  # should also contain a trust relationship that allows a server to
842
1279
  # access your resources when servicing your users' transfer requests.
843
1280
  # @return [String]
@@ -879,7 +1316,19 @@ module Aws::Transfer
879
1316
  # for your file transfer protocol-enabled server. With a VPC endpoint,
880
1317
  # you can restrict access to your server and resources only within your
881
1318
  # VPC. To control incoming internet traffic, invoke the `UpdateServer`
882
- # API and attach an Elastic IP to your server's endpoint.
1319
+ # API and attach an Elastic IP address to your server's endpoint.
1320
+ #
1321
+ # <note markdown="1"> After March 31, 2021, you won't be able to create a server using
1322
+ # `EndpointType=VPC_ENDPOINT` in your AWS account if your account
1323
+ # hasn't already done so before March 31, 2021. If you have already
1324
+ # created servers with `EndpointType=VPC_ENDPOINT` in your AWS account
1325
+ # on or before March 31, 2021, you will not be affected. After this
1326
+ # date, use `EndpointType`=`VPC`.
1327
+ #
1328
+ # For more information, see
1329
+ # https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
1330
+ #
1331
+ # </note>
883
1332
  #
884
1333
  # @note When making an API call, you may pass EndpointDetails
885
1334
  # data as a hash:
@@ -917,6 +1366,9 @@ module Aws::Transfer
917
1366
  # <note markdown="1"> This property can only be set when `EndpointType` is set to
918
1367
  # `VPC_ENDPOINT`.
919
1368
  #
1369
+ # For more information, see
1370
+ # https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
1371
+ #
920
1372
  # </note>
921
1373
  # @return [String]
922
1374
  #
@@ -934,11 +1386,18 @@ module Aws::Transfer
934
1386
  #
935
1387
  # <note markdown="1"> This property can only be set when `EndpointType` is set to `VPC`.
936
1388
  #
937
- # You can only edit the `SecurityGroupIds` property in the
938
- # `UpdateServer` API and only if you are changing the `EndpointType`
939
- # from `PUBLIC` or `VPC_ENDPOINT` to `VPC`.
1389
+ # You can edit the `SecurityGroupIds` property in the
1390
+ # [UpdateServer][1] API only if you are changing the `EndpointType`
1391
+ # from `PUBLIC` or `VPC_ENDPOINT` to `VPC`. To change security groups
1392
+ # associated with your server's VPC endpoint after creation, use the
1393
+ # Amazon EC2 [ModifyVpcEndpoint][2] API.
940
1394
  #
941
1395
  # </note>
1396
+ #
1397
+ #
1398
+ #
1399
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html
1400
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html
942
1401
  # @return [Array<String>]
943
1402
  #
944
1403
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/EndpointDetails AWS API Documentation
@@ -991,6 +1450,7 @@ module Aws::Transfer
991
1450
  # {
992
1451
  # url: "Url",
993
1452
  # invocation_role: "Role",
1453
+ # directory_id: "DirectoryId",
994
1454
  # }
995
1455
  #
996
1456
  # @!attribute [rw] url
@@ -1003,11 +1463,17 @@ module Aws::Transfer
1003
1463
  # account.
1004
1464
  # @return [String]
1005
1465
  #
1466
+ # @!attribute [rw] directory_id
1467
+ # The identifier of the AWS Directory Service directory that you want
1468
+ # to stop sharing.
1469
+ # @return [String]
1470
+ #
1006
1471
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/IdentityProviderDetails AWS API Documentation
1007
1472
  #
1008
1473
  class IdentityProviderDetails < Struct.new(
1009
1474
  :url,
1010
- :invocation_role)
1475
+ :invocation_role,
1476
+ :directory_id)
1011
1477
  SENSITIVE = []
1012
1478
  include Aws::Structure
1013
1479
  end
@@ -1110,6 +1576,68 @@ module Aws::Transfer
1110
1576
  include Aws::Structure
1111
1577
  end
1112
1578
 
1579
+ # @note When making an API call, you may pass ListAccessesRequest
1580
+ # data as a hash:
1581
+ #
1582
+ # {
1583
+ # max_results: 1,
1584
+ # next_token: "NextToken",
1585
+ # server_id: "ServerId", # required
1586
+ # }
1587
+ #
1588
+ # @!attribute [rw] max_results
1589
+ # Specifies the maximum number of access SIDs to return.
1590
+ # @return [Integer]
1591
+ #
1592
+ # @!attribute [rw] next_token
1593
+ # When you can get additional results from the `ListAccesses` call, a
1594
+ # `NextToken` parameter is returned in the output. You can then pass
1595
+ # in a subsequent command to the `NextToken` parameter to continue
1596
+ # listing additional accesses.
1597
+ # @return [String]
1598
+ #
1599
+ # @!attribute [rw] server_id
1600
+ # A system-assigned unique identifier for a server that has users
1601
+ # assigned to it.
1602
+ # @return [String]
1603
+ #
1604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListAccessesRequest AWS API Documentation
1605
+ #
1606
+ class ListAccessesRequest < Struct.new(
1607
+ :max_results,
1608
+ :next_token,
1609
+ :server_id)
1610
+ SENSITIVE = []
1611
+ include Aws::Structure
1612
+ end
1613
+
1614
+ # @!attribute [rw] next_token
1615
+ # When you can get additional results from the `ListAccesses` call, a
1616
+ # `NextToken` parameter is returned in the output. You can then pass
1617
+ # in a subsequent command to the `NextToken` parameter to continue
1618
+ # listing additional accesses.
1619
+ # @return [String]
1620
+ #
1621
+ # @!attribute [rw] server_id
1622
+ # A system-assigned unique identifier for a server that has users
1623
+ # assigned to it.
1624
+ # @return [String]
1625
+ #
1626
+ # @!attribute [rw] accesses
1627
+ # Returns the accesses and their properties for the `ServerId` value
1628
+ # that you specify.
1629
+ # @return [Array<Types::ListedAccess>]
1630
+ #
1631
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListAccessesResponse AWS API Documentation
1632
+ #
1633
+ class ListAccessesResponse < Struct.new(
1634
+ :next_token,
1635
+ :server_id,
1636
+ :accesses)
1637
+ SENSITIVE = []
1638
+ include Aws::Structure
1639
+ end
1640
+
1113
1641
  # @note When making an API call, you may pass ListSecurityPoliciesRequest
1114
1642
  # data as a hash:
1115
1643
  #
@@ -1335,6 +1863,64 @@ module Aws::Transfer
1335
1863
  include Aws::Structure
1336
1864
  end
1337
1865
 
1866
+ # Lists the properties for one or more specified associated accesses.
1867
+ #
1868
+ # @!attribute [rw] home_directory
1869
+ # Specifies the landing directory (or folder), which is the location
1870
+ # that files are written to or read from in an Amazon S3 bucket, for
1871
+ # the described access.
1872
+ # @return [String]
1873
+ #
1874
+ # @!attribute [rw] home_directory_type
1875
+ # The type of landing directory (folder) that you want your users'
1876
+ # home directory to be when they log in to the server. If you set it
1877
+ # to `PATH`, the user will see the absolute Amazon S3 bucket paths as
1878
+ # is in their file transfer protocol clients. If you set it to
1879
+ # `LOGICAL`, you must provide mappings in the `HomeDirectoryMappings`
1880
+ # for how you want to make Amazon S3 paths visible to your users.
1881
+ # @return [String]
1882
+ #
1883
+ # @!attribute [rw] role
1884
+ # The AWS Identity and Access Management (IAM) role that controls
1885
+ # access to your Amazon S3 bucket from the specified associated
1886
+ # access. The policies attached to this role will determine the level
1887
+ # of access that you want to provide the associated access when
1888
+ # transferring files into and out of your Amazon S3 bucket or buckets.
1889
+ # The IAM role should also contain a trust relationship that allows a
1890
+ # server to access your resources when servicing transfer requests for
1891
+ # the associated access.
1892
+ # @return [String]
1893
+ #
1894
+ # @!attribute [rw] external_id
1895
+ # A unique identifier that might be required when you assume a role in
1896
+ # another account. Think of the `ExternalID` as a group membership
1897
+ # mechanism that uses a unique identifier (often a SID, but could be a
1898
+ # group name or something else) as a basis. If the administrator of
1899
+ # the account to which the role belongs provided you with an external
1900
+ # ID, then provide that value in the `ExternalId` parameter. A
1901
+ # cross-account role is usually set up to trust everyone in an
1902
+ # account. Therefore, the administrator of the trusting account might
1903
+ # send an external ID to the administrator of the trusted account.
1904
+ # That way, only someone with the ID can assume the role, rather than
1905
+ # everyone in the account.
1906
+ #
1907
+ # The regex used to validate this parameter is a string of characters
1908
+ # consisting of uppercase and lowercase alphanumeric characters with
1909
+ # no spaces. You can also include underscores or any of the following
1910
+ # characters: =,.@:/-
1911
+ # @return [String]
1912
+ #
1913
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListedAccess AWS API Documentation
1914
+ #
1915
+ class ListedAccess < Struct.new(
1916
+ :home_directory,
1917
+ :home_directory_type,
1918
+ :role,
1919
+ :external_id)
1920
+ SENSITIVE = []
1921
+ include Aws::Structure
1922
+ end
1923
+
1338
1924
  # Returns properties of a file transfer protocol-enabled server that was
1339
1925
  # specified.
1340
1926
  #
@@ -1344,13 +1930,15 @@ module Aws::Transfer
1344
1930
  # @return [String]
1345
1931
  #
1346
1932
  # @!attribute [rw] domain
1933
+ # Specifies the domain of the storage system that is used for file
1934
+ # transfers.
1347
1935
  # @return [String]
1348
1936
  #
1349
1937
  # @!attribute [rw] identity_provider_type
1350
1938
  # Specifies the authentication method used to validate a user for a
1351
- # server that was specified. This can include Secure Shell (SSH), user
1352
- # name and password combinations, or your own custom authentication
1353
- # method. Valid values include `SERVICE_MANAGED` or `API_GATEWAY`.
1939
+ # server that was specified. This can include Secure Shell (SSH),
1940
+ # Active Directory groups, user name and password combinations, or
1941
+ # your own custom authentication method.
1354
1942
  # @return [String]
1355
1943
  #
1356
1944
  # @!attribute [rw] endpoint_type
@@ -1429,6 +2017,16 @@ module Aws::Transfer
1429
2017
  # behalf. It allows the server to inherit the trust relationship that
1430
2018
  # enables that user to perform file operations to their Amazon S3
1431
2019
  # bucket.
2020
+ #
2021
+ # <note markdown="1"> The IAM role that controls your users' access to your Amazon S3
2022
+ # bucket for servers with `Domain=S3`, or your EFS file system for
2023
+ # servers with `Domain=EFS`.
2024
+ #
2025
+ # The policies attached to this role determine the level of access you
2026
+ # want to provide your users when transferring files into and out of
2027
+ # your S3 buckets or EFS file systems.
2028
+ #
2029
+ # </note>
1432
2030
  # @return [String]
1433
2031
  #
1434
2032
  # @!attribute [rw] ssh_public_key_count
@@ -1454,6 +2052,13 @@ module Aws::Transfer
1454
2052
  include Aws::Structure
1455
2053
  end
1456
2054
 
2055
+ # The full POSIX identity, including user ID (`Uid`), group ID (`Gid`),
2056
+ # and any secondary groups IDs (`SecondaryGids`), that controls your
2057
+ # users' access to your Amazon EFS file systems. The POSIX permissions
2058
+ # that are set on files and directories in your file system determine
2059
+ # the level of access your users get when transferring files into and
2060
+ # out of your Amazon EFS file systems.
2061
+ #
1457
2062
  # @note When making an API call, you may pass PosixProfile
1458
2063
  # data as a hash:
1459
2064
  #
@@ -1464,12 +2069,16 @@ module Aws::Transfer
1464
2069
  # }
1465
2070
  #
1466
2071
  # @!attribute [rw] uid
2072
+ # The POSIX user ID used for all EFS operations by this user.
1467
2073
  # @return [Integer]
1468
2074
  #
1469
2075
  # @!attribute [rw] gid
2076
+ # The POSIX group ID used for all EFS operations by this user.
1470
2077
  # @return [Integer]
1471
2078
  #
1472
2079
  # @!attribute [rw] secondary_gids
2080
+ # The secondary POSIX group IDs used for all EFS operations by this
2081
+ # user.
1473
2082
  # @return [Array<Integer>]
1474
2083
  #
1475
2084
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/PosixProfile AWS API Documentation
@@ -1798,6 +2407,194 @@ module Aws::Transfer
1798
2407
  include Aws::Structure
1799
2408
  end
1800
2409
 
2410
+ # @note When making an API call, you may pass UpdateAccessRequest
2411
+ # data as a hash:
2412
+ #
2413
+ # {
2414
+ # home_directory: "HomeDirectory",
2415
+ # home_directory_type: "PATH", # accepts PATH, LOGICAL
2416
+ # home_directory_mappings: [
2417
+ # {
2418
+ # entry: "MapEntry", # required
2419
+ # target: "MapTarget", # required
2420
+ # },
2421
+ # ],
2422
+ # policy: "Policy",
2423
+ # posix_profile: {
2424
+ # uid: 1, # required
2425
+ # gid: 1, # required
2426
+ # secondary_gids: [1],
2427
+ # },
2428
+ # role: "Role",
2429
+ # server_id: "ServerId", # required
2430
+ # external_id: "ExternalId", # required
2431
+ # }
2432
+ #
2433
+ # @!attribute [rw] home_directory
2434
+ # The landing directory (folder) for a user when they log in to the
2435
+ # server using the client.
2436
+ #
2437
+ # A `HomeDirectory` example is `/directory_name/home/mydirectory`.
2438
+ # @return [String]
2439
+ #
2440
+ # @!attribute [rw] home_directory_type
2441
+ # The type of landing directory (folder) that you want your users'
2442
+ # home directory to be when they log in to the server. If you set it
2443
+ # to `PATH`, the user will see the absolute Amazon S3 bucket paths as
2444
+ # is in their file transfer protocol clients. If you set it `LOGICAL`,
2445
+ # you must provide mappings in the `HomeDirectoryMappings` for how you
2446
+ # want to make Amazon S3 paths visible to your users.
2447
+ # @return [String]
2448
+ #
2449
+ # @!attribute [rw] home_directory_mappings
2450
+ # Logical directory mappings that specify what Amazon S3 or Amazon EFS
2451
+ # paths and keys should be visible to your user and how you want to
2452
+ # make them visible. You must specify the `Entry` and `Target` pair,
2453
+ # where `Entry` shows how the path is made visible and `Target` is the
2454
+ # actual Amazon S3 or Amazon EFS path. If you only specify a target,
2455
+ # it will be displayed as is. You also must ensure that your AWS
2456
+ # Identity and Access Management (IAM) role provides access to paths
2457
+ # in `Target`. This value can only be set when `HomeDirectoryType` is
2458
+ # set to *LOGICAL*.
2459
+ #
2460
+ # The following is an `Entry` and `Target` pair example.
2461
+ #
2462
+ # `[ \{ "Entry": "your-personal-report.pdf", "Target":
2463
+ # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
2464
+ #
2465
+ # In most cases, you can use this value instead of the scope-down
2466
+ # policy to lock down your user to the designated home directory
2467
+ # ("`chroot`"). To do this, you can set `Entry` to `/` and set
2468
+ # `Target` to the `HomeDirectory` parameter value.
2469
+ #
2470
+ # The following is an `Entry` and `Target` pair example for `chroot`.
2471
+ #
2472
+ # `[ \{ "Entry": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
2473
+ #
2474
+ # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
2475
+ # S3 or Amazon EFS, the entry will be ignored. As a workaround, you
2476
+ # can use the Amazon S3 API or EFS API to create 0-byte objects as
2477
+ # place holders for your directory. If using the AWS CLI, use the
2478
+ # `s3api` or `efsapi` call instead of `s3` or `efs` so you can use the
2479
+ # `put-object` operation. For example, you can use the following.
2480
+ #
2481
+ # `aws s3api put-object --bucket bucketname --key path/to/folder/`
2482
+ #
2483
+ # The end of the key name must end in a `/` for it to be considered a
2484
+ # folder.
2485
+ #
2486
+ # </note>
2487
+ #
2488
+ # Required: No
2489
+ # @return [Array<Types::HomeDirectoryMapEntry>]
2490
+ #
2491
+ # @!attribute [rw] policy
2492
+ # A scope-down policy for your user so that you can use the same IAM
2493
+ # role across multiple users. This policy scopes down user access to
2494
+ # portions of their Amazon S3 bucket. Variables that you can use
2495
+ # inside this policy include `$\{Transfer:UserName\}`,
2496
+ # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
2497
+ #
2498
+ # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does
2499
+ # not use scope down policy.
2500
+ #
2501
+ # For scope-down policies, AWS Transfer Family stores the policy as a
2502
+ # JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
2503
+ # You save the policy as a JSON blob and pass it in the `Policy`
2504
+ # argument.
2505
+ #
2506
+ # For an example of a scope-down policy, see [Example scope-down
2507
+ # policy][1].
2508
+ #
2509
+ # For more information, see [AssumeRole][2] in the *AWS Security Token
2510
+ # Service API Reference*.
2511
+ #
2512
+ # </note>
2513
+ #
2514
+ #
2515
+ #
2516
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
2517
+ # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
2518
+ # @return [String]
2519
+ #
2520
+ # @!attribute [rw] posix_profile
2521
+ # The full POSIX identity, including user ID (`Uid`), group ID
2522
+ # (`Gid`), and any secondary groups IDs (`SecondaryGids`), that
2523
+ # controls your users' access to your Amazon EFS file systems. The
2524
+ # POSIX permissions that are set on files and directories in your file
2525
+ # system determine the level of access your users get when
2526
+ # transferring files into and out of your Amazon EFS file systems.
2527
+ # @return [Types::PosixProfile]
2528
+ #
2529
+ # @!attribute [rw] role
2530
+ # Specifies the IAM role that controls your users' access to your
2531
+ # Amazon S3 bucket or EFS file system. The policies attached to this
2532
+ # role determine the level of access that you want to provide your
2533
+ # users when transferring files into and out of your Amazon S3 bucket
2534
+ # or EFS file system. The IAM role should also contain a trust
2535
+ # relationship that allows the server to access your resources when
2536
+ # servicing your users' transfer requests.
2537
+ # @return [String]
2538
+ #
2539
+ # @!attribute [rw] server_id
2540
+ # A system-assigned unique identifier for a server instance. This is
2541
+ # the specific server that you added your user to.
2542
+ # @return [String]
2543
+ #
2544
+ # @!attribute [rw] external_id
2545
+ # A unique identifier that is required to identify specific groups
2546
+ # within your directory. The users of the group that you associate
2547
+ # have access to your Amazon S3 or Amazon EFS resources over the
2548
+ # enabled protocols using AWS Transfer Family. If you know the group
2549
+ # name, you can view the SID values by running the following command
2550
+ # using Windows PowerShell.
2551
+ #
2552
+ # `Get-ADGroup -Filter \{samAccountName -like "YourGroupName*"\}
2553
+ # -Properties * | Select SamaccountName,ObjectSid`
2554
+ #
2555
+ # In that command, replace *YourGroupName* with the name of your
2556
+ # Active Directory group.
2557
+ #
2558
+ # The regex used to validate this parameter is a string of characters
2559
+ # consisting of uppercase and lowercase alphanumeric characters with
2560
+ # no spaces. You can also include underscores or any of the following
2561
+ # characters: =,.@:/-
2562
+ # @return [String]
2563
+ #
2564
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateAccessRequest AWS API Documentation
2565
+ #
2566
+ class UpdateAccessRequest < Struct.new(
2567
+ :home_directory,
2568
+ :home_directory_type,
2569
+ :home_directory_mappings,
2570
+ :policy,
2571
+ :posix_profile,
2572
+ :role,
2573
+ :server_id,
2574
+ :external_id)
2575
+ SENSITIVE = []
2576
+ include Aws::Structure
2577
+ end
2578
+
2579
+ # @!attribute [rw] server_id
2580
+ # The ID of the server that the user is attached to.
2581
+ # @return [String]
2582
+ #
2583
+ # @!attribute [rw] external_id
2584
+ # The external ID of the group whose users have access to your Amazon
2585
+ # S3 or Amazon EFS resources over the enabled protocols using AWS
2586
+ # Transfer Family.
2587
+ # @return [String]
2588
+ #
2589
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateAccessResponse AWS API Documentation
2590
+ #
2591
+ class UpdateAccessResponse < Struct.new(
2592
+ :server_id,
2593
+ :external_id)
2594
+ SENSITIVE = []
2595
+ include Aws::Structure
2596
+ end
2597
+
1801
2598
  # @note When making an API call, you may pass UpdateServerRequest
1802
2599
  # data as a hash:
1803
2600
  #
@@ -1815,6 +2612,7 @@ module Aws::Transfer
1815
2612
  # identity_provider_details: {
1816
2613
  # url: "Url",
1817
2614
  # invocation_role: "Role",
2615
+ # directory_id: "DirectoryId",
1818
2616
  # },
1819
2617
  # logging_role: "NullableRole",
1820
2618
  # protocols: ["SFTP"], # accepts SFTP, FTP, FTPS
@@ -1871,12 +2669,24 @@ module Aws::Transfer
1871
2669
  # @return [Types::EndpointDetails]
1872
2670
  #
1873
2671
  # @!attribute [rw] endpoint_type
1874
- # The type of endpoint that you want your server to connect to. You
1875
- # can choose to connect to the public internet or a VPC endpoint. With
1876
- # a VPC endpoint, you can restrict access to your server and resources
1877
- # only within your VPC.
1878
- #
1879
- # <note markdown="1"> It is recommended that you use `VPC` as the `EndpointType`. With
2672
+ # The type of endpoint that you want your server to use. You can
2673
+ # choose to make your server's endpoint publicly accessible (PUBLIC)
2674
+ # or host it inside your VPC. With an endpoint that is hosted in a
2675
+ # VPC, you can restrict access to your server and resources only
2676
+ # within your VPC or choose to make it internet facing by attaching
2677
+ # Elastic IP addresses directly to it.
2678
+ #
2679
+ # <note markdown="1"> After March 31, 2021, you won't be able to create a server using
2680
+ # `EndpointType=VPC_ENDPOINT` in your AWS account if your account
2681
+ # hasn't already done so before March 31, 2021. If you have already
2682
+ # created servers with `EndpointType=VPC_ENDPOINT` in your AWS account
2683
+ # on or before March 31, 2021, you will not be affected. After this
2684
+ # date, use `EndpointType`=`VPC`.
2685
+ #
2686
+ # For more information, see
2687
+ # https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
2688
+ #
2689
+ # It is recommended that you use `VPC` as the `EndpointType`. With
1880
2690
  # this endpoint type, you have the option to directly associate up to
1881
2691
  # three Elastic IPv4 addresses (BYO IP included) with your server's
1882
2692
  # endpoint and use VPC security groups to restrict traffic by the
@@ -1909,8 +2719,8 @@ module Aws::Transfer
1909
2719
  #
1910
2720
  # @!attribute [rw] logging_role
1911
2721
  # Changes the AWS Identity and Access Management (IAM) role that
1912
- # allows Amazon S3 events to be logged in Amazon CloudWatch, turning
1913
- # logging on or off.
2722
+ # allows Amazon S3 or Amazon EFS events to be logged in Amazon
2723
+ # CloudWatch, turning logging on or off.
1914
2724
  # @return [String]
1915
2725
  #
1916
2726
  # @!attribute [rw] protocols
@@ -1932,7 +2742,7 @@ module Aws::Transfer
1932
2742
  #
1933
2743
  # If `Protocol` includes either `FTP` or `FTPS`, then the
1934
2744
  # `EndpointType` must be `VPC` and the `IdentityProviderType` must be
1935
- # `API_GATEWAY`.
2745
+ # `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`.
1936
2746
  #
1937
2747
  # If `Protocol` includes `FTP`, then `AddressAllocationIds` cannot be
1938
2748
  # associated.
@@ -2016,39 +2826,40 @@ module Aws::Transfer
2016
2826
  # @!attribute [rw] home_directory_type
2017
2827
  # The type of landing directory (folder) you want your users' home
2018
2828
  # directory to be when they log into the server. If you set it to
2019
- # `PATH`, the user will see the absolute Amazon S3 bucket paths as is
2020
- # in their file transfer protocol clients. If you set it `LOGICAL`,
2021
- # you will need to provide mappings in the `HomeDirectoryMappings` for
2022
- # how you want to make Amazon S3 paths visible to your users.
2829
+ # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2830
+ # as is in their file transfer protocol clients. If you set it
2831
+ # `LOGICAL`, you will need to provide mappings in the
2832
+ # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2833
+ # paths visible to your users.
2023
2834
  # @return [String]
2024
2835
  #
2025
2836
  # @!attribute [rw] home_directory_mappings
2026
- # Logical directory mappings that specify what Amazon S3 paths and
2027
- # keys should be visible to your user and how you want to make them
2028
- # visible. You will need to specify the "`Entry`" and "`Target`"
2029
- # pair, where `Entry` shows how the path is made visible and `Target`
2030
- # is the actual Amazon S3 path. If you only specify a target, it will
2031
- # be displayed as is. You will need to also make sure that your IAM
2032
- # role provides access to paths in `Target`. The following is an
2033
- # example.
2837
+ # Logical directory mappings that specify what Amazon S3 or Amazon EFS
2838
+ # paths and keys should be visible to your user and how you want to
2839
+ # make them visible. You will need to specify the "`Entry`" and
2840
+ # "`Target`" pair, where `Entry` shows how the path is made visible
2841
+ # and `Target` is the actual Amazon S3 or Amazon EFS path. If you only
2842
+ # specify a target, it will be displayed as is. You will need to also
2843
+ # make sure that your IAM role provides access to paths in `Target`.
2844
+ # The following is an example.
2034
2845
  #
2035
2846
  # `'[ "/bucket2/documentation", \{ "Entry":
2036
2847
  # "your-personal-report.pdf", "Target":
2037
2848
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]'`
2038
2849
  #
2039
2850
  # In most cases, you can use this value instead of the scope-down
2040
- # policy to lock your user down to the designated home directory
2041
- # ("chroot"). To do this, you can set `Entry` to '/' and set
2851
+ # policy to lock down your user to the designated home directory
2852
+ # ("`chroot`"). To do this, you can set `Entry` to '/' and set
2042
2853
  # `Target` to the HomeDirectory parameter value.
2043
2854
  #
2044
2855
  # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
2045
- # S3, the entry will be ignored. As a workaround, you can use the
2046
- # Amazon S3 API to create 0 byte objects as place holders for your
2047
- # directory. If using the CLI, use the `s3api` call instead of `s3` so
2048
- # you can use the put-object operation. For example, you use the
2049
- # following: `aws s3api put-object --bucket bucketname --key
2050
- # path/to/folder/`. Make sure that the end of the key name ends in a /
2051
- # for it to be considered a folder.
2856
+ # S3 or EFS, the entry will be ignored. As a workaround, you can use
2857
+ # the Amazon S3 API or EFS API to create 0-byte objects as place
2858
+ # holders for your directory. If using the AWS CLI, use the `s3api` or
2859
+ # `efsapi` call instead of `s3` `efs` so you can use the put-object
2860
+ # operation. For example, you use the following: `aws s3api put-object
2861
+ # --bucket bucketname --key path/to/folder/`. Make sure that the end
2862
+ # of the key name ends in a / for it to be considered a folder.
2052
2863
  #
2053
2864
  # </note>
2054
2865
  # @return [Array<Types::HomeDirectoryMapEntry>]
@@ -2080,15 +2891,22 @@ module Aws::Transfer
2080
2891
  # @return [String]
2081
2892
  #
2082
2893
  # @!attribute [rw] posix_profile
2894
+ # Specifies the full POSIX identity, including user ID (`Uid`), group
2895
+ # ID (`Gid`), and any secondary groups IDs (`SecondaryGids`), that
2896
+ # controls your users' access to your Amazon Elastic File Systems
2897
+ # (Amazon EFS). The POSIX permissions that are set on files and
2898
+ # directories in your file system determines the level of access your
2899
+ # users get when transferring files into and out of your Amazon EFS
2900
+ # file systems.
2083
2901
  # @return [Types::PosixProfile]
2084
2902
  #
2085
2903
  # @!attribute [rw] role
2086
2904
  # The IAM role that controls your users' access to your Amazon S3
2087
- # bucket. The policies attached to this role will determine the level
2088
- # of access you want to provide your users when transferring files
2089
- # into and out of your Amazon S3 bucket or buckets. The IAM role
2090
- # should also contain a trust relationship that allows the server to
2091
- # access your resources when servicing your users' transfer requests.
2905
+ # bucket. The policies attached to this role determine the level of
2906
+ # access you want to provide your users when transferring files into
2907
+ # and out of your S3 bucket or buckets. The IAM role should also
2908
+ # contain a trust relationship that allows the server to access your
2909
+ # resources when servicing your users' transfer requests.
2092
2910
  # @return [String]
2093
2911
  #
2094
2912
  # @!attribute [rw] server_id