aws-sdk-transfer 1.32.0 → 1.36.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 343cf13d3b47110dd3d54870e1f25502b9601c9c6969b3dd22f97dcadda0267c
4
- data.tar.gz: e6143b4c7a8d6fd3c815c725a3a975c788fa2f6924b5a531151129feea7463fb
3
+ metadata.gz: a9baa4608d27a51c8aa6cf0a8f6411a715ef5f41a70bbda7e937c6f249a5e1d8
4
+ data.tar.gz: 80b8efecbf59d2e8628553f507b6ce15bc9aa2b05b952c8b268199ecaf60c578
5
5
  SHA512:
6
- metadata.gz: dd5dccaea84b58e9e5662fbceaa01fd1e2d7c8435b37ac8d4e56f2e155d8cc2a0d084656c175ed6062d6b654354f69bbd9ec3d6f9019ca5cd463489046eafff4
7
- data.tar.gz: 776d532922ec8fcb4e7ce961c9722a2ba0ca0209527967783cba61fc378bab3eb72856039b1840c87d8db9136f7a0bfdf00e8ef405ee6c5877dcb8807692fdd4
6
+ metadata.gz: fdad3229427d691f9acef92504fba9433075556d4ebda14d8f2c558b7c9768ea7e4c929daca80c94064b28cb98c915ab16690ca25aa0f866fee969a9a971394e
7
+ data.tar.gz: c99ba1a3bcccd3f5fa98b411200e2debe8b58d35a90b26676544d4473f7d81ef052e828be706457094b6f7c071da27165f54966a6cde459bc956cbc3cfbed87c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.36.0 (2021-07-28)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.35.0 (2021-06-24)
10
+ ------------------
11
+
12
+ * Feature - Customers can successfully use legacy clients with Transfer Family endpoints enabled for FTPS and FTP behind routers, firewalls, and load balancers by providing a Custom IP address used for data channel communication.
13
+
14
+ 1.34.0 (2021-06-09)
15
+ ------------------
16
+
17
+ * Feature - Documentation updates for the AWS Transfer Family service.
18
+
19
+ 1.33.0 (2021-05-25)
20
+ ------------------
21
+
22
+ * Feature - AWS Transfer Family customers can now use AWS Managed Active Directory or AD Connector to authenticate their end users, enabling seamless migration of file transfer workflows that rely on AD authentication, without changing end users' credentials or needing a custom authorizer.
23
+
4
24
  1.32.0 (2021-03-10)
5
25
  ------------------
6
26
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.32.0
1
+ 1.36.0
@@ -28,7 +28,7 @@ require_relative 'aws-sdk-transfer/customizations'
28
28
  # structure.
29
29
  #
30
30
  # transfer = Aws::Transfer::Client.new
31
- # resp = transfer.create_server(params)
31
+ # resp = transfer.create_access(params)
32
32
  #
33
33
  # See {Client} for more information.
34
34
  #
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-transfer/customizations'
48
48
  # @!group service
49
49
  module Aws::Transfer
50
50
 
51
- GEM_VERSION = '1.32.0'
51
+ GEM_VERSION = '1.36.0'
52
52
 
53
53
  end
@@ -337,26 +337,195 @@ module Aws::Transfer
337
337
 
338
338
  # @!group API Operations
339
339
 
340
- # Instantiates an autoscaling virtual server based on the selected file
341
- # transfer protocol in AWS. When you make updates to your file transfer
342
- # protocol-enabled server or when you work with users, use the
343
- # service-generated `ServerId` property that is assigned to the newly
344
- # created server.
340
+ # Used by administrators to choose which groups in the directory should
341
+ # have access to upload and download files over the enabled protocols
342
+ # using Amazon Web Services Transfer Family. For example, a Microsoft
343
+ # Active Directory might contain 50,000 users, but only a small fraction
344
+ # might need the ability to transfer files to the server. An
345
+ # administrator can use `CreateAccess` to limit the access to the
346
+ # correct set of users who need this ability.
347
+ #
348
+ # @option params [String] :home_directory
349
+ # The landing directory (folder) for a user when they log in to the
350
+ # server using the client.
351
+ #
352
+ # A `HomeDirectory` example is `/bucket_name/home/mydirectory`.
353
+ #
354
+ # @option params [String] :home_directory_type
355
+ # The type of landing directory (folder) you want your users' home
356
+ # directory to be when they log into the server. If you set it to
357
+ # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
358
+ # as is in their file transfer protocol clients. If you set it
359
+ # `LOGICAL`, you will need to provide mappings in the
360
+ # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
361
+ # paths visible to your users.
362
+ #
363
+ # @option params [Array<Types::HomeDirectoryMapEntry>] :home_directory_mappings
364
+ # Logical directory mappings that specify what Amazon S3 or Amazon EFS
365
+ # paths and keys should be visible to your user and how you want to make
366
+ # them visible. You must specify the `Entry` and `Target` pair, where
367
+ # `Entry` shows how the path is made visible and `Target` is the actual
368
+ # Amazon S3 or Amazon EFS path. If you only specify a target, it is
369
+ # displayed as is. You also must ensure that your Amazon Web Services
370
+ # Identity and Access Management (IAM) role provides access to paths in
371
+ # `Target`. This value can only be set when `HomeDirectoryType` is set
372
+ # to *LOGICAL*.
373
+ #
374
+ # The following is an `Entry` and `Target` pair example.
375
+ #
376
+ # `[ \{ "Entry": "your-personal-report.pdf", "Target":
377
+ # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
378
+ #
379
+ # In most cases, you can use this value instead of the scope-down policy
380
+ # to lock down your user to the designated home directory
381
+ # ("`chroot`"). To do this, you can set `Entry` to `/` and set
382
+ # `Target` to the `HomeDirectory` parameter value.
383
+ #
384
+ # The following is an `Entry` and `Target` pair example for `chroot`.
385
+ #
386
+ # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
387
+ #
388
+ # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
389
+ # or EFS, the entry is ignored. As a workaround, you can use the Amazon
390
+ # S3 API or EFS API to create 0 byte objects as place holders for your
391
+ # directory. If using the CLI, use the `s3api` or `efsapi` call instead
392
+ # of `s3` or `efs` so you can use the put-object operation. For example,
393
+ # you use the following: `aws s3api put-object --bucket bucketname --key
394
+ # path/to/folder/`. Make sure that the end of the key name ends in a `/`
395
+ # for it to be considered a folder.
396
+ #
397
+ # </note>
398
+ #
399
+ # @option params [String] :policy
400
+ # A scope-down policy for your user so that you can use the same IAM
401
+ # role across multiple users. This policy scopes down user access to
402
+ # portions of their Amazon S3 bucket. Variables that you can use inside
403
+ # this policy include `$\{Transfer:UserName\}`,
404
+ # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
405
+ #
406
+ # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does not
407
+ # use scope-down policies.
408
+ #
409
+ # For scope-down policies, Amazon Web Services Transfer Family stores
410
+ # the policy as a JSON blob, instead of the Amazon Resource Name (ARN)
411
+ # of the policy. You save the policy as a JSON blob and pass it in the
412
+ # `Policy` argument.
413
+ #
414
+ # For an example of a scope-down policy, see [Example scope-down
415
+ # policy][1].
416
+ #
417
+ # For more information, see [AssumeRole][2] in the *Amazon Web Services
418
+ # Security Token Service API Reference*.
419
+ #
420
+ # </note>
421
+ #
422
+ #
423
+ #
424
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
425
+ # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
426
+ #
427
+ # @option params [Types::PosixProfile] :posix_profile
428
+ # The full POSIX identity, including user ID (`Uid`), group ID (`Gid`),
429
+ # and any secondary groups IDs (`SecondaryGids`), that controls your
430
+ # users' access to your Amazon EFS file systems. The POSIX permissions
431
+ # that are set on files and directories in your file system determine
432
+ # the level of access your users get when transferring files into and
433
+ # out of your Amazon EFS file systems.
434
+ #
435
+ # @option params [required, String] :role
436
+ # Specifies the Amazon Resource Name (ARN) of the IAM role that controls
437
+ # your users' access to your Amazon S3 bucket or EFS file system. The
438
+ # policies attached to this role determine the level of access that you
439
+ # want to provide your users when transferring files into and out of
440
+ # your Amazon S3 bucket or EFS file system. The IAM role should also
441
+ # contain a trust relationship that allows the server to access your
442
+ # resources when servicing your users' transfer requests.
443
+ #
444
+ # @option params [required, String] :server_id
445
+ # A system-assigned unique identifier for a server instance. This is the
446
+ # specific server that you added your user to.
447
+ #
448
+ # @option params [required, String] :external_id
449
+ # A unique identifier that is required to identify specific groups
450
+ # within your directory. The users of the group that you associate have
451
+ # access to your Amazon S3 or Amazon EFS resources over the enabled
452
+ # protocols using Amazon Web Services Transfer Family. If you know the
453
+ # group name, you can view the SID values by running the following
454
+ # command using Windows PowerShell.
455
+ #
456
+ # `Get-ADGroup -Filter \{samAccountName -like "YourGroupName*"\}
457
+ # -Properties * | Select SamAccountName,ObjectSid`
458
+ #
459
+ # In that command, replace *YourGroupName* with the name of your Active
460
+ # Directory group.
461
+ #
462
+ # The regex used to validate this parameter is a string of characters
463
+ # consisting of uppercase and lowercase alphanumeric characters with no
464
+ # spaces. You can also include underscores or any of the following
465
+ # characters: =,.@:/-
466
+ #
467
+ # @return [Types::CreateAccessResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
468
+ #
469
+ # * {Types::CreateAccessResponse#server_id #server_id} => String
470
+ # * {Types::CreateAccessResponse#external_id #external_id} => String
471
+ #
472
+ # @example Request syntax with placeholder values
473
+ #
474
+ # resp = client.create_access({
475
+ # home_directory: "HomeDirectory",
476
+ # home_directory_type: "PATH", # accepts PATH, LOGICAL
477
+ # home_directory_mappings: [
478
+ # {
479
+ # entry: "MapEntry", # required
480
+ # target: "MapTarget", # required
481
+ # },
482
+ # ],
483
+ # policy: "Policy",
484
+ # posix_profile: {
485
+ # uid: 1, # required
486
+ # gid: 1, # required
487
+ # secondary_gids: [1],
488
+ # },
489
+ # role: "Role", # required
490
+ # server_id: "ServerId", # required
491
+ # external_id: "ExternalId", # required
492
+ # })
493
+ #
494
+ # @example Response structure
495
+ #
496
+ # resp.server_id #=> String
497
+ # resp.external_id #=> String
498
+ #
499
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateAccess AWS API Documentation
500
+ #
501
+ # @overload create_access(params = {})
502
+ # @param [Hash] params ({})
503
+ def create_access(params = {}, options = {})
504
+ req = build_request(:create_access, params)
505
+ req.send_request(options)
506
+ end
507
+
508
+ # Instantiates an auto-scaling virtual server based on the selected file
509
+ # transfer protocol in Amazon Web Services. When you make updates to
510
+ # your file transfer protocol-enabled server or when you work with
511
+ # users, use the service-generated `ServerId` property that is assigned
512
+ # to the newly created server.
345
513
  #
346
514
  # @option params [String] :certificate
347
- # The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM)
348
- # certificate. Required when `Protocols` is set to `FTPS`.
515
+ # The Amazon Resource Name (ARN) of the Amazon Web Services Certificate
516
+ # Manager (ACM) certificate. Required when `Protocols` is set to `FTPS`.
349
517
  #
350
518
  # To request a new public certificate, see [Request a public
351
- # certificate][1] in the <i> AWS Certificate Manager User Guide</i>.
519
+ # certificate][1] in the <i> Amazon Web Services Certificate Manager
520
+ # User Guide</i>.
352
521
  #
353
522
  # To import an existing certificate into ACM, see [Importing
354
- # certificates into ACM][2] in the <i> AWS Certificate Manager User
355
- # Guide</i>.
523
+ # certificates into ACM][2] in the <i> Amazon Web Services Certificate
524
+ # Manager User Guide</i>.
356
525
  #
357
526
  # To request a private certificate to use FTPS through private IP
358
- # addresses, see [Request a private certificate][3] in the <i> AWS
359
- # Certificate Manager User Guide</i>.
527
+ # addresses, see [Request a private certificate][3] in the <i> Amazon
528
+ # Web Services Certificate Manager User Guide</i>.
360
529
  #
361
530
  # Certificates with the following cryptographic algorithms and key sizes
362
531
  # are supported:
@@ -383,22 +552,42 @@ module Aws::Transfer
383
552
  # [3]: https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html
384
553
  #
385
554
  # @option params [String] :domain
555
+ # The domain of the storage system that is used for file transfers.
556
+ # There are two domains available: Amazon Simple Storage Service (Amazon
557
+ # S3) and Amazon Elastic File System (Amazon EFS). The default value is
558
+ # S3.
559
+ #
560
+ # <note markdown="1"> After the server is created, the domain cannot be changed.
561
+ #
562
+ # </note>
386
563
  #
387
564
  # @option params [Types::EndpointDetails] :endpoint_details
388
565
  # The virtual private cloud (VPC) endpoint settings that are configured
389
566
  # for your server. When you host your endpoint within your VPC, you can
390
567
  # make it accessible only to resources within your VPC, or you can
391
- # attach Elastic IPs and make it accessible to clients over the
568
+ # attach Elastic IP addresses and make it accessible to clients over the
392
569
  # internet. Your VPC's default security groups are automatically
393
570
  # assigned to your endpoint.
394
571
  #
395
572
  # @option params [String] :endpoint_type
396
- # The type of VPC endpoint that you want your server to connect to. You
397
- # can choose to connect to the public internet or a VPC endpoint. With a
398
- # VPC endpoint, you can restrict access to your server and resources
399
- # only within your VPC.
400
- #
401
- # <note markdown="1"> It is recommended that you use `VPC` as the `EndpointType`. With this
573
+ # The type of endpoint that you want your server to use. You can choose
574
+ # to make your server's endpoint publicly accessible (PUBLIC) or host
575
+ # it inside your VPC. With an endpoint that is hosted in a VPC, you can
576
+ # restrict access to your server and resources only within your VPC or
577
+ # choose to make it internet facing by attaching Elastic IP addresses
578
+ # directly to it.
579
+ #
580
+ # <note markdown="1"> After May 19, 2021, you won't be able to create a server using
581
+ # `EndpointType=VPC_ENDPOINT` in your Amazon Web Services account if
582
+ # your account hasn't already done so before May 19, 2021. If you have
583
+ # already created servers with `EndpointType=VPC_ENDPOINT` in your
584
+ # Amazon Web Services account on or before May 19, 2021, you will not be
585
+ # affected. After this date, use `EndpointType`=`VPC`.
586
+ #
587
+ # For more information, see
588
+ # https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
589
+ #
590
+ # It is recommended that you use `VPC` as the `EndpointType`. With this
402
591
  # endpoint type, you have the option to directly associate up to three
403
592
  # Elastic IPv4 addresses (BYO IP included) with your server's endpoint
404
593
  # and use VPC security groups to restrict traffic by the client's
@@ -416,30 +605,40 @@ module Aws::Transfer
416
605
  # Accidentally changing a server's host key can be disruptive.
417
606
  #
418
607
  # For more information, see [Change the host key for your SFTP-enabled
419
- # server][1] in the *AWS Transfer Family User Guide*.
608
+ # server][1] in the *Amazon Web Services Transfer Family User Guide*.
420
609
  #
421
610
  #
422
611
  #
423
612
  # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/edit-server-config.html#configuring-servers-change-host-key
424
613
  #
425
614
  # @option params [Types::IdentityProviderDetails] :identity_provider_details
426
- # Required when `IdentityProviderType` is set to `API_GATEWAY`. Accepts
427
- # an array containing all of the information required to call a
615
+ # Required when `IdentityProviderType` is set to `AWS_DIRECTORY_SERVICE`
616
+ # or `API_GATEWAY`. Accepts an array containing all of the information
617
+ # required to use a directory in `AWS_DIRECTORY_SERVICE` or invoke a
428
618
  # customer-supplied authentication API, including the API Gateway URL.
429
619
  # Not required when `IdentityProviderType` is set to `SERVICE_MANAGED`.
430
620
  #
431
621
  # @option params [String] :identity_provider_type
432
622
  # Specifies the mode of authentication for a server. The default value
433
623
  # is `SERVICE_MANAGED`, which allows you to store and access user
434
- # credentials within the AWS Transfer Family service. Use the
435
- # `API_GATEWAY` value to integrate with an identity provider of your
436
- # choosing. The `API_GATEWAY` setting requires you to provide an API
437
- # Gateway endpoint URL to call for authentication using the
624
+ # credentials within the Amazon Web Services Transfer Family service.
625
+ #
626
+ # Use `AWS_DIRECTORY_SERVICE` to provide access to Active Directory
627
+ # groups in Amazon Web Services Managed Active Directory or Microsoft
628
+ # Active Directory in your on-premises environment or in Amazon Web
629
+ # Services using AD Connectors. This option also requires you to provide
630
+ # a Directory ID using the `IdentityProviderDetails` parameter.
631
+ #
632
+ # Use the `API_GATEWAY` value to integrate with an identity provider of
633
+ # your choosing. The `API_GATEWAY` setting requires you to provide an
634
+ # API Gateway endpoint URL to call for authentication using the
438
635
  # `IdentityProviderDetails` parameter.
439
636
  #
440
637
  # @option params [String] :logging_role
441
- # Allows the service to write your users' activity to your Amazon
442
- # CloudWatch logs for monitoring and auditing purposes.
638
+ # Specifies the Amazon Resource Name (ARN) of the Amazon Web Services
639
+ # Identity and Access Management (IAM) role that allows a server to turn
640
+ # on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When
641
+ # set, user activity can be viewed in your CloudWatch logs.
443
642
  #
444
643
  # @option params [Array<String>] :protocols
445
644
  # Specifies the file transfer protocol or protocols over which your file
@@ -454,12 +653,13 @@ module Aws::Transfer
454
653
  #
455
654
  # * `FTP` (File Transfer Protocol): Unencrypted file transfer
456
655
  #
457
- # <note markdown="1"> If you select `FTPS`, you must choose a certificate stored in AWS
458
- # Certificate Manager (ACM) which will be used to identify your server
459
- # when clients connect to it over FTPS.
656
+ # <note markdown="1"> If you select `FTPS`, you must choose a certificate stored in Amazon
657
+ # Web Services Certificate Manager (ACM) which is used to identify your
658
+ # server when clients connect to it over FTPS.
460
659
  #
461
660
  # If `Protocol` includes either `FTP` or `FTPS`, then the `EndpointType`
462
- # must be `VPC` and the `IdentityProviderType` must be `API_GATEWAY`.
661
+ # must be `VPC` and the `IdentityProviderType` must be
662
+ # `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`.
463
663
  #
464
664
  # If `Protocol` includes `FTP`, then `AddressAllocationIds` cannot be
465
665
  # associated.
@@ -498,8 +698,9 @@ module Aws::Transfer
498
698
  # identity_provider_details: {
499
699
  # url: "Url",
500
700
  # invocation_role: "Role",
701
+ # directory_id: "DirectoryId",
501
702
  # },
502
- # identity_provider_type: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, API_GATEWAY
703
+ # identity_provider_type: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, API_GATEWAY, AWS_DIRECTORY_SERVICE
503
704
  # logging_role: "Role",
504
705
  # protocols: ["SFTP"], # accepts SFTP, FTP, FTPS
505
706
  # security_policy_name: "SecurityPolicyName",
@@ -529,86 +730,103 @@ module Aws::Transfer
529
730
  # servers that have the `IdentityProviderType` set to `SERVICE_MANAGED`.
530
731
  # Using parameters for `CreateUser`, you can specify the user name, set
531
732
  # the home directory, store the user's public key, and assign the
532
- # user's AWS Identity and Access Management (IAM) role. You can also
533
- # optionally add a scope-down policy, and assign metadata with tags that
534
- # can be used to group and search for users.
733
+ # user's Amazon Web Services Identity and Access Management (IAM) role.
734
+ # You can also optionally add a scope-down policy, and assign metadata
735
+ # with tags that can be used to group and search for users.
535
736
  #
536
737
  # @option params [String] :home_directory
537
738
  # The landing directory (folder) for a user when they log in to the
538
739
  # server using the client.
539
740
  #
540
- # An example is <i>
541
- # <code>your-Amazon-S3-bucket-name&gt;/home/username</code> </i>.
741
+ # A `HomeDirectory` example is `/bucket_name/home/mydirectory`.
542
742
  #
543
743
  # @option params [String] :home_directory_type
544
744
  # The type of landing directory (folder) you want your users' home
545
745
  # directory to be when they log into the server. If you set it to
546
- # `PATH`, the user will see the absolute Amazon S3 bucket paths as is in
547
- # their file transfer protocol clients. If you set it `LOGICAL`, you
548
- # will need to provide mappings in the `HomeDirectoryMappings` for how
549
- # you want to make Amazon S3 paths visible to your users.
746
+ # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
747
+ # as is in their file transfer protocol clients. If you set it
748
+ # `LOGICAL`, you will need to provide mappings in the
749
+ # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
750
+ # paths visible to your users.
550
751
  #
551
752
  # @option params [Array<Types::HomeDirectoryMapEntry>] :home_directory_mappings
552
- # Logical directory mappings that specify what Amazon S3 paths and keys
553
- # should be visible to your user and how you want to make them visible.
554
- # You will need to specify the "`Entry`" and "`Target`" pair, where
753
+ # Logical directory mappings that specify what Amazon S3 or Amazon EFS
754
+ # paths and keys should be visible to your user and how you want to make
755
+ # them visible. You must specify the `Entry` and `Target` pair, where
555
756
  # `Entry` shows how the path is made visible and `Target` is the actual
556
- # Amazon S3 path. If you only specify a target, it will be displayed as
557
- # is. You will need to also make sure that your IAM role provides access
558
- # to paths in `Target`. The following is an example.
757
+ # Amazon S3 or Amazon EFS path. If you only specify a target, it is
758
+ # displayed as is. You also must ensure that your Amazon Web Services
759
+ # Identity and Access Management (IAM) role provides access to paths in
760
+ # `Target`. This value can only be set when `HomeDirectoryType` is set
761
+ # to *LOGICAL*.
559
762
  #
560
- # `'[ "/bucket2/documentation", \{ "Entry": "your-personal-report.pdf",
561
- # "Target": "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \}
562
- # ]'`
763
+ # The following is an `Entry` and `Target` pair example.
764
+ #
765
+ # `[ \{ "Entry": "your-personal-report.pdf", "Target":
766
+ # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
563
767
  #
564
768
  # In most cases, you can use this value instead of the scope-down policy
565
- # to lock your user down to the designated home directory ("chroot").
566
- # To do this, you can set `Entry` to '/' and set `Target` to the
567
- # HomeDirectory parameter value.
568
- #
569
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
570
- # S3, the entry will be ignored. As a workaround, you can use the Amazon
571
- # S3 API to create 0 byte objects as place holders for your directory.
572
- # If using the CLI, use the `s3api` call instead of `s3` so you can use
573
- # the put-object operation. For example, you use the following: `aws
574
- # s3api put-object --bucket bucketname --key path/to/folder/`. Make sure
575
- # that the end of the key name ends in a '/' for it to be considered a
576
- # folder.
769
+ # to lock your user down to the designated home directory
770
+ # ("`chroot`"). To do this, you can set `Entry` to `/` and set
771
+ # `Target` to the HomeDirectory parameter value.
772
+ #
773
+ # The following is an `Entry` and `Target` pair example for `chroot`.
774
+ #
775
+ # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
776
+ #
777
+ # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
778
+ # or EFS, the entry is ignored. As a workaround, you can use the Amazon
779
+ # S3 API or EFS API to create 0 byte objects as place holders for your
780
+ # directory. If using the CLI, use the `s3api` or `efsapi` call instead
781
+ # of `s3` or `efs` so you can use the put-object operation. For example,
782
+ # you use the following: `aws s3api put-object --bucket bucketname --key
783
+ # path/to/folder/`. Make sure that the end of the key name ends in a `/`
784
+ # for it to be considered a folder.
577
785
  #
578
786
  # </note>
579
787
  #
580
788
  # @option params [String] :policy
581
- # A scope-down policy for your user so you can use the same IAM role
582
- # across multiple users. This policy scopes down user access to portions
583
- # of their Amazon S3 bucket. Variables that you can use inside this
584
- # policy include `$\{Transfer:UserName\}`,
789
+ # A scope-down policy for your user so that you can use the same IAM
790
+ # role across multiple users. This policy scopes down user access to
791
+ # portions of their Amazon S3 bucket. Variables that you can use inside
792
+ # this policy include `$\{Transfer:UserName\}`,
585
793
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
586
794
  #
587
- # <note markdown="1"> For scope-down policies, AWS Transfer Family stores the policy as a
588
- # JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
589
- # You save the policy as a JSON blob and pass it in the `Policy`
590
- # argument.
795
+ # <note markdown="1"> This only applies when domain of ServerId is S3. EFS does not use
796
+ # scope down policy.
591
797
  #
592
- # For an example of a scope-down policy, see [Creating a scope-down
798
+ # For scope-down policies, Amazon Web Services Transfer Family stores
799
+ # the policy as a JSON blob, instead of the Amazon Resource Name (ARN)
800
+ # of the policy. You save the policy as a JSON blob and pass it in the
801
+ # `Policy` argument.
802
+ #
803
+ # For an example of a scope-down policy, see [Example scope-down
593
804
  # policy][1].
594
805
  #
595
- # For more information, see [AssumeRole][2] in the *AWS Security Token
596
- # Service API Reference*.
806
+ # For more information, see [AssumeRole][2] in the *Amazon Web Services
807
+ # Security Token Service API Reference*.
597
808
  #
598
809
  # </note>
599
810
  #
600
811
  #
601
812
  #
602
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down
813
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
603
814
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
604
815
  #
605
816
  # @option params [Types::PosixProfile] :posix_profile
817
+ # Specifies the full POSIX identity, including user ID (`Uid`), group ID
818
+ # (`Gid`), and any secondary groups IDs (`SecondaryGids`), that controls
819
+ # your users' access to your Amazon EFS file systems. The POSIX
820
+ # permissions that are set on files and directories in Amazon EFS
821
+ # determine the level of access your users get when transferring files
822
+ # into and out of your Amazon EFS file systems.
606
823
  #
607
824
  # @option params [required, String] :role
608
- # The IAM role that controls your users' access to your Amazon S3
609
- # bucket. The policies attached to this role will determine the level of
610
- # access you want to provide your users when transferring files into and
611
- # out of your Amazon S3 bucket or buckets. The IAM role should also
825
+ # Specifies the Amazon Resource Name (ARN) of the IAM role that controls
826
+ # your users' access to your Amazon S3 bucket or EFS file system. The
827
+ # policies attached to this role determine the level of access that you
828
+ # want to provide your users when transferring files into and out of
829
+ # your Amazon S3 bucket or EFS file system. The IAM role should also
612
830
  # contain a trust relationship that allows the server to access your
613
831
  # resources when servicing your users' transfer requests.
614
832
  #
@@ -680,6 +898,50 @@ module Aws::Transfer
680
898
  req.send_request(options)
681
899
  end
682
900
 
901
+ # Allows you to delete the access specified in the `ServerID` and
902
+ # `ExternalID` parameters.
903
+ #
904
+ # @option params [required, String] :server_id
905
+ # A system-assigned unique identifier for a server that has this user
906
+ # assigned.
907
+ #
908
+ # @option params [required, String] :external_id
909
+ # A unique identifier that is required to identify specific groups
910
+ # within your directory. The users of the group that you associate have
911
+ # access to your Amazon S3 or Amazon EFS resources over the enabled
912
+ # protocols using Amazon Web Services Transfer Family. If you know the
913
+ # group name, you can view the SID values by running the following
914
+ # command using Windows PowerShell.
915
+ #
916
+ # `Get-ADGroup -Filter \{samAccountName -like "YourGroupName*"\}
917
+ # -Properties * | Select SamAccountName,ObjectSid`
918
+ #
919
+ # In that command, replace *YourGroupName* with the name of your Active
920
+ # Directory group.
921
+ #
922
+ # The regex used to validate this parameter is a string of characters
923
+ # consisting of uppercase and lowercase alphanumeric characters with no
924
+ # spaces. You can also include underscores or any of the following
925
+ # characters: =,.@:/-
926
+ #
927
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
928
+ #
929
+ # @example Request syntax with placeholder values
930
+ #
931
+ # resp = client.delete_access({
932
+ # server_id: "ServerId", # required
933
+ # external_id: "ExternalId", # required
934
+ # })
935
+ #
936
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteAccess AWS API Documentation
937
+ #
938
+ # @overload delete_access(params = {})
939
+ # @param [Hash] params ({})
940
+ def delete_access(params = {}, options = {})
941
+ req = build_request(:delete_access, params)
942
+ req.send_request(options)
943
+ end
944
+
683
945
  # Deletes the file transfer protocol-enabled server that you specify.
684
946
  #
685
947
  # No response returns from this operation.
@@ -773,6 +1035,73 @@ module Aws::Transfer
773
1035
  req.send_request(options)
774
1036
  end
775
1037
 
1038
+ # Describes the access that is assigned to the specific file transfer
1039
+ # protocol-enabled server, as identified by its `ServerId` property and
1040
+ # its `ExternalID`.
1041
+ #
1042
+ # The response from this call returns the properties of the access that
1043
+ # is associated with the `ServerId` value that was specified.
1044
+ #
1045
+ # @option params [required, String] :server_id
1046
+ # A system-assigned unique identifier for a server that has this access
1047
+ # assigned.
1048
+ #
1049
+ # @option params [required, String] :external_id
1050
+ # A unique identifier that is required to identify specific groups
1051
+ # within your directory. The users of the group that you associate have
1052
+ # access to your Amazon S3 or Amazon EFS resources over the enabled
1053
+ # protocols using Amazon Web Services Transfer Family. If you know the
1054
+ # group name, you can view the SID values by running the following
1055
+ # command using Windows PowerShell.
1056
+ #
1057
+ # `Get-ADGroup -Filter \{samAccountName -like "YourGroupName*"\}
1058
+ # -Properties * | Select SamAccountName,ObjectSid`
1059
+ #
1060
+ # In that command, replace *YourGroupName* with the name of your Active
1061
+ # Directory group.
1062
+ #
1063
+ # The regex used to validate this parameter is a string of characters
1064
+ # consisting of uppercase and lowercase alphanumeric characters with no
1065
+ # spaces. You can also include underscores or any of the following
1066
+ # characters: =,.@:/-
1067
+ #
1068
+ # @return [Types::DescribeAccessResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1069
+ #
1070
+ # * {Types::DescribeAccessResponse#server_id #server_id} => String
1071
+ # * {Types::DescribeAccessResponse#access #access} => Types::DescribedAccess
1072
+ #
1073
+ # @example Request syntax with placeholder values
1074
+ #
1075
+ # resp = client.describe_access({
1076
+ # server_id: "ServerId", # required
1077
+ # external_id: "ExternalId", # required
1078
+ # })
1079
+ #
1080
+ # @example Response structure
1081
+ #
1082
+ # resp.server_id #=> String
1083
+ # resp.access.home_directory #=> String
1084
+ # resp.access.home_directory_mappings #=> Array
1085
+ # resp.access.home_directory_mappings[0].entry #=> String
1086
+ # resp.access.home_directory_mappings[0].target #=> String
1087
+ # resp.access.home_directory_type #=> String, one of "PATH", "LOGICAL"
1088
+ # resp.access.policy #=> String
1089
+ # resp.access.posix_profile.uid #=> Integer
1090
+ # resp.access.posix_profile.gid #=> Integer
1091
+ # resp.access.posix_profile.secondary_gids #=> Array
1092
+ # resp.access.posix_profile.secondary_gids[0] #=> Integer
1093
+ # resp.access.role #=> String
1094
+ # resp.access.external_id #=> String
1095
+ #
1096
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeAccess AWS API Documentation
1097
+ #
1098
+ # @overload describe_access(params = {})
1099
+ # @param [Hash] params ({})
1100
+ def describe_access(params = {}, options = {})
1101
+ req = build_request(:describe_access, params)
1102
+ req.send_request(options)
1103
+ end
1104
+
776
1105
  # Describes the security policy that is attached to your file transfer
777
1106
  # protocol-enabled server. The response contains a description of the
778
1107
  # security policy's properties. For more information about security
@@ -842,6 +1171,7 @@ module Aws::Transfer
842
1171
  #
843
1172
  # resp.server.arn #=> String
844
1173
  # resp.server.certificate #=> String
1174
+ # resp.server.protocol_details.passive_ip #=> String
845
1175
  # resp.server.domain #=> String, one of "S3", "EFS"
846
1176
  # resp.server.endpoint_details.address_allocation_ids #=> Array
847
1177
  # resp.server.endpoint_details.address_allocation_ids[0] #=> String
@@ -855,7 +1185,8 @@ module Aws::Transfer
855
1185
  # resp.server.host_key_fingerprint #=> String
856
1186
  # resp.server.identity_provider_details.url #=> String
857
1187
  # resp.server.identity_provider_details.invocation_role #=> String
858
- # resp.server.identity_provider_type #=> String, one of "SERVICE_MANAGED", "API_GATEWAY"
1188
+ # resp.server.identity_provider_details.directory_id #=> String
1189
+ # resp.server.identity_provider_type #=> String, one of "SERVICE_MANAGED", "API_GATEWAY", "AWS_DIRECTORY_SERVICE"
859
1190
  # resp.server.logging_role #=> String
860
1191
  # resp.server.protocols #=> Array
861
1192
  # resp.server.protocols[0] #=> String, one of "SFTP", "FTP", "FTPS"
@@ -888,8 +1219,8 @@ module Aws::Transfer
888
1219
  #
889
1220
  # @option params [required, String] :user_name
890
1221
  # The name of the user assigned to one or more servers. User names are
891
- # part of the sign-in credentials to use the AWS Transfer Family service
892
- # and perform file transfer tasks.
1222
+ # part of the sign-in credentials to use the Amazon Web Services
1223
+ # Transfer Family service and perform file transfer tasks.
893
1224
  #
894
1225
  # @return [Types::DescribeUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
895
1226
  #
@@ -981,6 +1312,56 @@ module Aws::Transfer
981
1312
  req.send_request(options)
982
1313
  end
983
1314
 
1315
+ # Lists the details for all the accesses you have on your server.
1316
+ #
1317
+ # @option params [Integer] :max_results
1318
+ # Specifies the maximum number of access SIDs to return.
1319
+ #
1320
+ # @option params [String] :next_token
1321
+ # When you can get additional results from the `ListAccesses` call, a
1322
+ # `NextToken` parameter is returned in the output. You can then pass in
1323
+ # a subsequent command to the `NextToken` parameter to continue listing
1324
+ # additional accesses.
1325
+ #
1326
+ # @option params [required, String] :server_id
1327
+ # A system-assigned unique identifier for a server that has users
1328
+ # assigned to it.
1329
+ #
1330
+ # @return [Types::ListAccessesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1331
+ #
1332
+ # * {Types::ListAccessesResponse#next_token #next_token} => String
1333
+ # * {Types::ListAccessesResponse#server_id #server_id} => String
1334
+ # * {Types::ListAccessesResponse#accesses #accesses} => Array&lt;Types::ListedAccess&gt;
1335
+ #
1336
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1337
+ #
1338
+ # @example Request syntax with placeholder values
1339
+ #
1340
+ # resp = client.list_accesses({
1341
+ # max_results: 1,
1342
+ # next_token: "NextToken",
1343
+ # server_id: "ServerId", # required
1344
+ # })
1345
+ #
1346
+ # @example Response structure
1347
+ #
1348
+ # resp.next_token #=> String
1349
+ # resp.server_id #=> String
1350
+ # resp.accesses #=> Array
1351
+ # resp.accesses[0].home_directory #=> String
1352
+ # resp.accesses[0].home_directory_type #=> String, one of "PATH", "LOGICAL"
1353
+ # resp.accesses[0].role #=> String
1354
+ # resp.accesses[0].external_id #=> String
1355
+ #
1356
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListAccesses AWS API Documentation
1357
+ #
1358
+ # @overload list_accesses(params = {})
1359
+ # @param [Hash] params ({})
1360
+ def list_accesses(params = {}, options = {})
1361
+ req = build_request(:list_accesses, params)
1362
+ req.send_request(options)
1363
+ end
1364
+
984
1365
  # Lists the security policies that are attached to your file transfer
985
1366
  # protocol-enabled servers.
986
1367
  #
@@ -1024,7 +1405,7 @@ module Aws::Transfer
1024
1405
  end
1025
1406
 
1026
1407
  # Lists the file transfer protocol-enabled servers that are associated
1027
- # with your AWS account.
1408
+ # with your Amazon Web Services account.
1028
1409
  #
1029
1410
  # @option params [Integer] :max_results
1030
1411
  # Specifies the number of servers to return as a response to the
@@ -1056,7 +1437,7 @@ module Aws::Transfer
1056
1437
  # resp.servers #=> Array
1057
1438
  # resp.servers[0].arn #=> String
1058
1439
  # resp.servers[0].domain #=> String, one of "S3", "EFS"
1059
- # resp.servers[0].identity_provider_type #=> String, one of "SERVICE_MANAGED", "API_GATEWAY"
1440
+ # resp.servers[0].identity_provider_type #=> String, one of "SERVICE_MANAGED", "API_GATEWAY", "AWS_DIRECTORY_SERVICE"
1060
1441
  # resp.servers[0].endpoint_type #=> String, one of "PUBLIC", "VPC", "VPC_ENDPOINT"
1061
1442
  # resp.servers[0].logging_role #=> String
1062
1443
  # resp.servers[0].server_id #=> String
@@ -1072,13 +1453,13 @@ module Aws::Transfer
1072
1453
  req.send_request(options)
1073
1454
  end
1074
1455
 
1075
- # Lists all of the tags associated with the Amazon Resource Number (ARN)
1076
- # you specify. The resource can be a user, server, or role.
1456
+ # Lists all of the tags associated with the Amazon Resource Name (ARN)
1457
+ # that you specify. The resource can be a user, server, or role.
1077
1458
  #
1078
1459
  # @option params [required, String] :arn
1079
1460
  # Requests the tags associated with a particular Amazon Resource Name
1080
- # (ARN). An ARN is an identifier for a specific AWS resource, such as a
1081
- # server, user, or role.
1461
+ # (ARN). An ARN is an identifier for a specific Amazon Web Services
1462
+ # resource, such as a server, user, or role.
1082
1463
  #
1083
1464
  # @option params [Integer] :max_results
1084
1465
  # Specifies the number of tags to return as a response to the
@@ -1252,8 +1633,8 @@ module Aws::Transfer
1252
1633
  # There is no response returned from this call.
1253
1634
  #
1254
1635
  # @option params [required, String] :arn
1255
- # An Amazon Resource Name (ARN) for a specific AWS resource, such as a
1256
- # server, user, or role.
1636
+ # An Amazon Resource Name (ARN) for a specific Amazon Web Services
1637
+ # resource, such as a server, user, or role.
1257
1638
  #
1258
1639
  # @option params [required, Array<Types::Tag>] :tags
1259
1640
  # Key-value pairs assigned to ARNs that you can use to group and search
@@ -1284,11 +1665,12 @@ module Aws::Transfer
1284
1665
  end
1285
1666
 
1286
1667
  # If the `IdentityProviderType` of a file transfer protocol-enabled
1287
- # server is `API_Gateway`, tests whether your API Gateway is set up
1288
- # successfully. We highly recommend that you call this operation to test
1289
- # your authentication method as soon as you create your server. By doing
1290
- # so, you can troubleshoot issues with the API Gateway integration to
1291
- # ensure that your users can successfully use the service.
1668
+ # server is `AWS_DIRECTORY_SERVICE` or `API_Gateway`, tests whether your
1669
+ # identity provider is set up successfully. We highly recommend that you
1670
+ # call this operation to test your authentication method as soon as you
1671
+ # create your server. By doing so, you can troubleshoot issues with the
1672
+ # identity provider integration to ensure that your users can
1673
+ # successfully use the service.
1292
1674
  #
1293
1675
  # @option params [required, String] :server_id
1294
1676
  # A system-assigned identifier for a specific server. That server's
@@ -1355,8 +1737,8 @@ module Aws::Transfer
1355
1737
  #
1356
1738
  # @option params [required, String] :arn
1357
1739
  # The value of the resource that will have the tag removed. An Amazon
1358
- # Resource Name (ARN) is an identifier for a specific AWS resource, such
1359
- # as a server, user, or role.
1740
+ # Resource Name (ARN) is an identifier for a specific Amazon Web
1741
+ # Services resource, such as a server, user, or role.
1360
1742
  #
1361
1743
  # @option params [required, Array<String>] :tag_keys
1362
1744
  # TagKeys are key-value pairs assigned to ARNs that can be used to group
@@ -1381,6 +1763,169 @@ module Aws::Transfer
1381
1763
  req.send_request(options)
1382
1764
  end
1383
1765
 
1766
+ # Allows you to update parameters for the access specified in the
1767
+ # `ServerID` and `ExternalID` parameters.
1768
+ #
1769
+ # @option params [String] :home_directory
1770
+ # The landing directory (folder) for a user when they log in to the
1771
+ # server using the client.
1772
+ #
1773
+ # A `HomeDirectory` example is `/bucket_name/home/mydirectory`.
1774
+ #
1775
+ # @option params [String] :home_directory_type
1776
+ # The type of landing directory (folder) you want your users' home
1777
+ # directory to be when they log into the server. If you set it to
1778
+ # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
1779
+ # as is in their file transfer protocol clients. If you set it
1780
+ # `LOGICAL`, you will need to provide mappings in the
1781
+ # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
1782
+ # paths visible to your users.
1783
+ #
1784
+ # @option params [Array<Types::HomeDirectoryMapEntry>] :home_directory_mappings
1785
+ # Logical directory mappings that specify what Amazon S3 or Amazon EFS
1786
+ # paths and keys should be visible to your user and how you want to make
1787
+ # them visible. You must specify the `Entry` and `Target` pair, where
1788
+ # `Entry` shows how the path is made visible and `Target` is the actual
1789
+ # Amazon S3 or Amazon EFS path. If you only specify a target, it is
1790
+ # displayed as is. You also must ensure that your Amazon Web Services
1791
+ # Identity and Access Management (IAM) role provides access to paths in
1792
+ # `Target`. This value can only be set when `HomeDirectoryType` is set
1793
+ # to *LOGICAL*.
1794
+ #
1795
+ # The following is an `Entry` and `Target` pair example.
1796
+ #
1797
+ # `[ \{ "Entry": "your-personal-report.pdf", "Target":
1798
+ # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
1799
+ #
1800
+ # In most cases, you can use this value instead of the scope-down policy
1801
+ # to lock down your user to the designated home directory
1802
+ # ("`chroot`"). To do this, you can set `Entry` to `/` and set
1803
+ # `Target` to the `HomeDirectory` parameter value.
1804
+ #
1805
+ # The following is an `Entry` and `Target` pair example for `chroot`.
1806
+ #
1807
+ # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
1808
+ #
1809
+ # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
1810
+ # or EFS, the entry is ignored. As a workaround, you can use the Amazon
1811
+ # S3 API or EFS API to create 0 byte objects as place holders for your
1812
+ # directory. If using the CLI, use the `s3api` or `efsapi` call instead
1813
+ # of `s3` or `efs` so you can use the put-object operation. For example,
1814
+ # you use the following: `aws s3api put-object --bucket bucketname --key
1815
+ # path/to/folder/`. Make sure that the end of the key name ends in a `/`
1816
+ # for it to be considered a folder.
1817
+ #
1818
+ # </note>
1819
+ #
1820
+ # @option params [String] :policy
1821
+ # A scope-down policy for your user so that you can use the same IAM
1822
+ # role across multiple users. This policy scopes down user access to
1823
+ # portions of their Amazon S3 bucket. Variables that you can use inside
1824
+ # this policy include `$\{Transfer:UserName\}`,
1825
+ # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
1826
+ #
1827
+ # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does not
1828
+ # use scope down policy.
1829
+ #
1830
+ # For scope-down policies, Amazon Web ServicesTransfer Family stores the
1831
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
1832
+ # the policy. You save the policy as a JSON blob and pass it in the
1833
+ # `Policy` argument.
1834
+ #
1835
+ # For an example of a scope-down policy, see [Example scope-down
1836
+ # policy][1].
1837
+ #
1838
+ # For more information, see [AssumeRole][2] in the *Amazon Web
1839
+ # ServicesSecurity Token Service API Reference*.
1840
+ #
1841
+ # </note>
1842
+ #
1843
+ #
1844
+ #
1845
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
1846
+ # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
1847
+ #
1848
+ # @option params [Types::PosixProfile] :posix_profile
1849
+ # The full POSIX identity, including user ID (`Uid`), group ID (`Gid`),
1850
+ # and any secondary groups IDs (`SecondaryGids`), that controls your
1851
+ # users' access to your Amazon EFS file systems. The POSIX permissions
1852
+ # that are set on files and directories in your file system determine
1853
+ # the level of access your users get when transferring files into and
1854
+ # out of your Amazon EFS file systems.
1855
+ #
1856
+ # @option params [String] :role
1857
+ # Specifies the Amazon Resource Name (ARN) of the IAM role that controls
1858
+ # your users' access to your Amazon S3 bucket or EFS file system. The
1859
+ # policies attached to this role determine the level of access that you
1860
+ # want to provide your users when transferring files into and out of
1861
+ # your Amazon S3 bucket or EFS file system. The IAM role should also
1862
+ # contain a trust relationship that allows the server to access your
1863
+ # resources when servicing your users' transfer requests.
1864
+ #
1865
+ # @option params [required, String] :server_id
1866
+ # A system-assigned unique identifier for a server instance. This is the
1867
+ # specific server that you added your user to.
1868
+ #
1869
+ # @option params [required, String] :external_id
1870
+ # A unique identifier that is required to identify specific groups
1871
+ # within your directory. The users of the group that you associate have
1872
+ # access to your Amazon S3 or Amazon EFS resources over the enabled
1873
+ # protocols using Amazon Web Services Transfer Family. If you know the
1874
+ # group name, you can view the SID values by running the following
1875
+ # command using Windows PowerShell.
1876
+ #
1877
+ # `Get-ADGroup -Filter \{samAccountName -like "YourGroupName*"\}
1878
+ # -Properties * | Select SamAccountName,ObjectSid`
1879
+ #
1880
+ # In that command, replace *YourGroupName* with the name of your Active
1881
+ # Directory group.
1882
+ #
1883
+ # The regex used to validate this parameter is a string of characters
1884
+ # consisting of uppercase and lowercase alphanumeric characters with no
1885
+ # spaces. You can also include underscores or any of the following
1886
+ # characters: =,.@:/-
1887
+ #
1888
+ # @return [Types::UpdateAccessResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1889
+ #
1890
+ # * {Types::UpdateAccessResponse#server_id #server_id} => String
1891
+ # * {Types::UpdateAccessResponse#external_id #external_id} => String
1892
+ #
1893
+ # @example Request syntax with placeholder values
1894
+ #
1895
+ # resp = client.update_access({
1896
+ # home_directory: "HomeDirectory",
1897
+ # home_directory_type: "PATH", # accepts PATH, LOGICAL
1898
+ # home_directory_mappings: [
1899
+ # {
1900
+ # entry: "MapEntry", # required
1901
+ # target: "MapTarget", # required
1902
+ # },
1903
+ # ],
1904
+ # policy: "Policy",
1905
+ # posix_profile: {
1906
+ # uid: 1, # required
1907
+ # gid: 1, # required
1908
+ # secondary_gids: [1],
1909
+ # },
1910
+ # role: "Role",
1911
+ # server_id: "ServerId", # required
1912
+ # external_id: "ExternalId", # required
1913
+ # })
1914
+ #
1915
+ # @example Response structure
1916
+ #
1917
+ # resp.server_id #=> String
1918
+ # resp.external_id #=> String
1919
+ #
1920
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateAccess AWS API Documentation
1921
+ #
1922
+ # @overload update_access(params = {})
1923
+ # @param [Hash] params ({})
1924
+ def update_access(params = {}, options = {})
1925
+ req = build_request(:update_access, params)
1926
+ req.send_request(options)
1927
+ end
1928
+
1384
1929
  # Updates the file transfer protocol-enabled server's properties after
1385
1930
  # that server has been created.
1386
1931
  #
@@ -1388,19 +1933,20 @@ module Aws::Transfer
1388
1933
  # updated.
1389
1934
  #
1390
1935
  # @option params [String] :certificate
1391
- # The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM)
1392
- # certificate. Required when `Protocols` is set to `FTPS`.
1936
+ # The Amazon Resource Name (ARN) of the Amazon Web ServicesCertificate
1937
+ # Manager (ACM) certificate. Required when `Protocols` is set to `FTPS`.
1393
1938
  #
1394
1939
  # To request a new public certificate, see [Request a public
1395
- # certificate][1] in the <i> AWS Certificate Manager User Guide</i>.
1940
+ # certificate][1] in the <i> Amazon Web ServicesCertificate Manager User
1941
+ # Guide</i>.
1396
1942
  #
1397
1943
  # To import an existing certificate into ACM, see [Importing
1398
- # certificates into ACM][2] in the <i> AWS Certificate Manager User
1399
- # Guide</i>.
1944
+ # certificates into ACM][2] in the <i> Amazon Web ServicesCertificate
1945
+ # Manager User Guide</i>.
1400
1946
  #
1401
1947
  # To request a private certificate to use FTPS through private IP
1402
- # addresses, see [Request a private certificate][3] in the <i> AWS
1403
- # Certificate Manager User Guide</i>.
1948
+ # addresses, see [Request a private certificate][3] in the <i> Amazon
1949
+ # Web ServicesCertificate Manager User Guide</i>.
1404
1950
  #
1405
1951
  # Certificates with the following cryptographic algorithms and key sizes
1406
1952
  # are supported:
@@ -1426,20 +1972,40 @@ module Aws::Transfer
1426
1972
  # [2]: https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html
1427
1973
  # [3]: https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html
1428
1974
  #
1975
+ # @option params [Types::ProtocolDetails] :protocol_details
1976
+ # The protocol settings that are configured for your server.
1977
+ #
1978
+ # Use the `PassiveIp` parameter to indicate passive mode (for FTP and
1979
+ # FTPS protocols). Enter a single dotted-quad IPv4 address, such as the
1980
+ # external IP address of a firewall, router, or load balancer.
1981
+ #
1429
1982
  # @option params [Types::EndpointDetails] :endpoint_details
1430
1983
  # The virtual private cloud (VPC) endpoint settings that are configured
1431
- # for your server. With a VPC endpoint, you can restrict access to your
1432
- # server to resources only within your VPC. To control incoming internet
1433
- # traffic, you will need to associate one or more Elastic IP addresses
1434
- # with your server's endpoint.
1984
+ # for your server. When you host your endpoint within your VPC, you can
1985
+ # make it accessible only to resources within your VPC, or you can
1986
+ # attach Elastic IP addresses and make it accessible to clients over the
1987
+ # internet. Your VPC's default security groups are automatically
1988
+ # assigned to your endpoint.
1435
1989
  #
1436
1990
  # @option params [String] :endpoint_type
1437
- # The type of endpoint that you want your server to connect to. You can
1438
- # choose to connect to the public internet or a VPC endpoint. With a VPC
1439
- # endpoint, you can restrict access to your server and resources only
1440
- # within your VPC.
1441
- #
1442
- # <note markdown="1"> It is recommended that you use `VPC` as the `EndpointType`. With this
1991
+ # The type of endpoint that you want your server to use. You can choose
1992
+ # to make your server's endpoint publicly accessible (PUBLIC) or host
1993
+ # it inside your VPC. With an endpoint that is hosted in a VPC, you can
1994
+ # restrict access to your server and resources only within your VPC or
1995
+ # choose to make it internet facing by attaching Elastic IP addresses
1996
+ # directly to it.
1997
+ #
1998
+ # <note markdown="1"> After May 19, 2021, you won't be able to create a server using
1999
+ # `EndpointType=VPC_ENDPOINT` in your Amazon Web Servicesaccount if your
2000
+ # account hasn't already done so before May 19, 2021. If you have
2001
+ # already created servers with `EndpointType=VPC_ENDPOINT` in your
2002
+ # Amazon Web Servicesaccount on or before May 19, 2021, you will not be
2003
+ # affected. After this date, use `EndpointType`=`VPC`.
2004
+ #
2005
+ # For more information, see
2006
+ # https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
2007
+ #
2008
+ # It is recommended that you use `VPC` as the `EndpointType`. With this
1443
2009
  # endpoint type, you have the option to directly associate up to three
1444
2010
  # Elastic IPv4 addresses (BYO IP included) with your server's endpoint
1445
2011
  # and use VPC security groups to restrict traffic by the client's
@@ -1457,7 +2023,7 @@ module Aws::Transfer
1457
2023
  # changing a server's host key can be disruptive.
1458
2024
  #
1459
2025
  # For more information, see [Change the host key for your SFTP-enabled
1460
- # server][1] in the *AWS Transfer Family User Guide*.
2026
+ # server][1] in the *Amazon Web ServicesTransfer Family User Guide*.
1461
2027
  #
1462
2028
  #
1463
2029
  #
@@ -1468,9 +2034,10 @@ module Aws::Transfer
1468
2034
  # customer's authentication API method.
1469
2035
  #
1470
2036
  # @option params [String] :logging_role
1471
- # Changes the AWS Identity and Access Management (IAM) role that allows
1472
- # Amazon S3 events to be logged in Amazon CloudWatch, turning logging on
1473
- # or off.
2037
+ # Specifies the Amazon Resource Name (ARN) of the Amazon Web Services
2038
+ # Identity and Access Management (IAM) role that allows a server to turn
2039
+ # on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When
2040
+ # set, user activity can be viewed in your CloudWatch logs.
1474
2041
  #
1475
2042
  # @option params [Array<String>] :protocols
1476
2043
  # Specifies the file transfer protocol or protocols over which your file
@@ -1485,12 +2052,13 @@ module Aws::Transfer
1485
2052
  #
1486
2053
  # * File Transfer Protocol (FTP): Unencrypted file transfer
1487
2054
  #
1488
- # <note markdown="1"> If you select `FTPS`, you must choose a certificate stored in AWS
1489
- # Certificate Manager (ACM) which will be used to identify your server
1490
- # when clients connect to it over FTPS.
2055
+ # <note markdown="1"> If you select `FTPS`, you must choose a certificate stored in Amazon
2056
+ # Web ServicesCertificate Manager (ACM) which will be used to identify
2057
+ # your server when clients connect to it over FTPS.
1491
2058
  #
1492
2059
  # If `Protocol` includes either `FTP` or `FTPS`, then the `EndpointType`
1493
- # must be `VPC` and the `IdentityProviderType` must be `API_GATEWAY`.
2060
+ # must be `VPC` and the `IdentityProviderType` must be
2061
+ # `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`.
1494
2062
  #
1495
2063
  # If `Protocol` includes `FTP`, then `AddressAllocationIds` cannot be
1496
2064
  # associated.
@@ -1517,6 +2085,9 @@ module Aws::Transfer
1517
2085
  #
1518
2086
  # resp = client.update_server({
1519
2087
  # certificate: "Certificate",
2088
+ # protocol_details: {
2089
+ # passive_ip: "PassiveIp",
2090
+ # },
1520
2091
  # endpoint_details: {
1521
2092
  # address_allocation_ids: ["AddressAllocationId"],
1522
2093
  # subnet_ids: ["SubnetId"],
@@ -1529,6 +2100,7 @@ module Aws::Transfer
1529
2100
  # identity_provider_details: {
1530
2101
  # url: "Url",
1531
2102
  # invocation_role: "Role",
2103
+ # directory_id: "DirectoryId",
1532
2104
  # },
1533
2105
  # logging_role: "NullableRole",
1534
2106
  # protocols: ["SFTP"], # accepts SFTP, FTP, FTPS
@@ -1557,65 +2129,76 @@ module Aws::Transfer
1557
2129
  # user.
1558
2130
  #
1559
2131
  # @option params [String] :home_directory
1560
- # Specifies the landing directory (folder) for a user when they log in
1561
- # to the server using their file transfer protocol client.
2132
+ # The landing directory (folder) for a user when they log in to the
2133
+ # server using the client.
1562
2134
  #
1563
- # An example is `your-Amazon-S3-bucket-name>/home/username`.
2135
+ # A `HomeDirectory` example is `/bucket_name/home/mydirectory`.
1564
2136
  #
1565
2137
  # @option params [String] :home_directory_type
1566
2138
  # The type of landing directory (folder) you want your users' home
1567
2139
  # directory to be when they log into the server. If you set it to
1568
- # `PATH`, the user will see the absolute Amazon S3 bucket paths as is in
1569
- # their file transfer protocol clients. If you set it `LOGICAL`, you
1570
- # will need to provide mappings in the `HomeDirectoryMappings` for how
1571
- # you want to make Amazon S3 paths visible to your users.
2140
+ # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2141
+ # as is in their file transfer protocol clients. If you set it
2142
+ # `LOGICAL`, you will need to provide mappings in the
2143
+ # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2144
+ # paths visible to your users.
1572
2145
  #
1573
2146
  # @option params [Array<Types::HomeDirectoryMapEntry>] :home_directory_mappings
1574
- # Logical directory mappings that specify what Amazon S3 paths and keys
1575
- # should be visible to your user and how you want to make them visible.
1576
- # You will need to specify the "`Entry`" and "`Target`" pair, where
2147
+ # Logical directory mappings that specify what Amazon S3 or Amazon EFS
2148
+ # paths and keys should be visible to your user and how you want to make
2149
+ # them visible. You must specify the `Entry` and `Target` pair, where
1577
2150
  # `Entry` shows how the path is made visible and `Target` is the actual
1578
- # Amazon S3 path. If you only specify a target, it will be displayed as
1579
- # is. You will need to also make sure that your IAM role provides access
1580
- # to paths in `Target`. The following is an example.
2151
+ # Amazon S3 or Amazon EFS path. If you only specify a target, it is
2152
+ # displayed as is. You also must ensure that your Amazon Web Services
2153
+ # Identity and Access Management (IAM) role provides access to paths in
2154
+ # `Target`. This value can only be set when `HomeDirectoryType` is set
2155
+ # to *LOGICAL*.
2156
+ #
2157
+ # The following is an `Entry` and `Target` pair example.
1581
2158
  #
1582
- # `'[ "/bucket2/documentation", \{ "Entry": "your-personal-report.pdf",
1583
- # "Target": "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \}
1584
- # ]'`
2159
+ # `[ \{ "Entry": "your-personal-report.pdf", "Target":
2160
+ # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
1585
2161
  #
1586
2162
  # In most cases, you can use this value instead of the scope-down policy
1587
- # to lock your user down to the designated home directory ("chroot").
1588
- # To do this, you can set `Entry` to '/' and set `Target` to the
1589
- # HomeDirectory parameter value.
1590
- #
1591
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
1592
- # S3, the entry will be ignored. As a workaround, you can use the Amazon
1593
- # S3 API to create 0 byte objects as place holders for your directory.
1594
- # If using the CLI, use the `s3api` call instead of `s3` so you can use
1595
- # the put-object operation. For example, you use the following: `aws
1596
- # s3api put-object --bucket bucketname --key path/to/folder/`. Make sure
1597
- # that the end of the key name ends in a / for it to be considered a
1598
- # folder.
2163
+ # to lock down your user to the designated home directory
2164
+ # ("`chroot`"). To do this, you can set `Entry` to '/' and set
2165
+ # `Target` to the HomeDirectory parameter value.
2166
+ #
2167
+ # The following is an `Entry` and `Target` pair example for `chroot`.
2168
+ #
2169
+ # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
2170
+ #
2171
+ # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
2172
+ # or EFS, the entry is ignored. As a workaround, you can use the Amazon
2173
+ # S3 API or EFS API to create 0 byte objects as place holders for your
2174
+ # directory. If using the CLI, use the `s3api` or `efsapi` call instead
2175
+ # of `s3` or `efs` so you can use the put-object operation. For example,
2176
+ # you use the following: `aws s3api put-object --bucket bucketname --key
2177
+ # path/to/folder/`. Make sure that the end of the key name ends in a `/`
2178
+ # for it to be considered a folder.
1599
2179
  #
1600
2180
  # </note>
1601
2181
  #
1602
2182
  # @option params [String] :policy
1603
- # Allows you to supply a scope-down policy for your user so you can use
1604
- # the same IAM role across multiple users. The policy scopes down user
1605
- # access to portions of your Amazon S3 bucket. Variables you can use
1606
- # inside this policy include `$\{Transfer:UserName\}`,
2183
+ # A scope-down policy for your user so that you can use the same IAM
2184
+ # role across multiple users. This policy scopes down user access to
2185
+ # portions of their Amazon S3 bucket. Variables that you can use inside
2186
+ # this policy include `$\{Transfer:UserName\}`,
1607
2187
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
1608
2188
  #
1609
- # <note markdown="1"> For scope-down policies, AWS Transfer Family stores the policy as a
1610
- # JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
1611
- # You save the policy as a JSON blob and pass it in the `Policy`
1612
- # argument.
2189
+ # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does not
2190
+ # use scope-down policies.
2191
+ #
2192
+ # For scope-down policies, Amazon Web ServicesTransfer Family stores the
2193
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
2194
+ # the policy. You save the policy as a JSON blob and pass it in the
2195
+ # `Policy` argument.
1613
2196
  #
1614
2197
  # For an example of a scope-down policy, see [Creating a scope-down
1615
2198
  # policy][1].
1616
2199
  #
1617
- # For more information, see [AssumeRole][2] in the *AWS Security Token
1618
- # Service API Reference*.
2200
+ # For more information, see [AssumeRole][2] in the *Amazon Web Services
2201
+ # Security Token Service API Reference*.
1619
2202
  #
1620
2203
  # </note>
1621
2204
  #
@@ -1625,12 +2208,19 @@ module Aws::Transfer
1625
2208
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
1626
2209
  #
1627
2210
  # @option params [Types::PosixProfile] :posix_profile
2211
+ # Specifies the full POSIX identity, including user ID (`Uid`), group ID
2212
+ # (`Gid`), and any secondary groups IDs (`SecondaryGids`), that controls
2213
+ # your users' access to your Amazon Elastic File Systems (Amazon EFS).
2214
+ # The POSIX permissions that are set on files and directories in your
2215
+ # file system determines the level of access your users get when
2216
+ # transferring files into and out of your Amazon EFS file systems.
1628
2217
  #
1629
2218
  # @option params [String] :role
1630
- # The IAM role that controls your users' access to your Amazon S3
1631
- # bucket. The policies attached to this role will determine the level of
1632
- # access you want to provide your users when transferring files into and
1633
- # out of your Amazon S3 bucket or buckets. The IAM role should also
2219
+ # Specifies the Amazon Resource Name (ARN) of the IAM role that controls
2220
+ # your users' access to your Amazon S3 bucket or EFS file system. The
2221
+ # policies attached to this role determine the level of access that you
2222
+ # want to provide your users when transferring files into and out of
2223
+ # your Amazon S3 bucket or EFS file system. The IAM role should also
1634
2224
  # contain a trust relationship that allows the server to access your
1635
2225
  # resources when servicing your users' transfer requests.
1636
2226
  #
@@ -1700,7 +2290,7 @@ module Aws::Transfer
1700
2290
  params: params,
1701
2291
  config: config)
1702
2292
  context[:gem_name] = 'aws-sdk-transfer'
1703
- context[:gem_version] = '1.32.0'
2293
+ context[:gem_version] = '1.36.0'
1704
2294
  Seahorse::Client::Request.new(handlers, context)
1705
2295
  end
1706
2296