Skip to content

create_location_efs

create_location_efs(
    efs_filesystem_arn: EfsFilesystemArn,
    ec2_config: Ec2Config,
    *,
    config_overrides: Optional[DataSyncClientConfig] = None,
    subdirectory: Optional[EfsSubdirectory] = None,
    tags: Optional[InputTagList] = None,
    access_point_arn: Optional[EfsAccessPointArn] = None,
    file_system_access_role_arn: Optional[IamRoleArn] = None,
    in_transit_encryption: Optional[EfsInTransitEncryption] = None,
) -> CreateLocationEfsResponse

Creates a transfer location for an Amazon EFS file system. DataSync can use this location as a source or destination for transferring data.

Before you begin, make sure that you understand how DataSync accesses Amazon EFS file systems.

Parameters:

  • subdirectory (Optional[EfsSubdirectory], default: None ) –

    Specifies a mount path for your Amazon EFS file system. This is where DataSync reads or writes data on your file system (depending on if this is a source or destination location).

    By default, DataSync uses the root directory (or access point if you provide one by using AccessPointArn). You can also include subdirectories using forward slashes (for example, /path/to/folder).

  • efs_filesystem_arn (EfsFilesystemArn) –

    Specifies the ARN for your Amazon EFS file system.

  • ec2_config (Ec2Config) –

    Specifies the subnet and security groups DataSync uses to connect to one of your Amazon EFS file system's mount targets.

  • tags (Optional[InputTagList], default: None ) –

    Specifies the key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.

  • access_point_arn (Optional[EfsAccessPointArn], default: None ) –

    Specifies the Amazon Resource Name (ARN) of the access point that DataSync uses to mount your Amazon EFS file system.

    For more information, see Accessing restricted file systems.

  • file_system_access_role_arn (Optional[IamRoleArn], default: None ) –

    Specifies an Identity and Access Management (IAM) role that allows DataSync to access your Amazon EFS file system.

    For information on creating this role, see Creating a DataSync IAM role for file system access.

  • in_transit_encryption (Optional[EfsInTransitEncryption], default: None ) –

    Specifies whether you want DataSync to use Transport Layer Security (TLS) 1.2 encryption when it transfers data to or from your Amazon EFS file system.

    If you specify an access point using AccessPointArn or an IAM role using FileSystemAccessRoleArn, you must set this parameter to TLS1_2.

Raises:

Source code in docs_src/capo_datasync/_services/data_sync.py
def create_location_efs(
    self,
    efs_filesystem_arn: "capo_datasync.types.efs_filesystem_arn.EfsFilesystemArn",
    ec2_config: "capo_datasync.types.ec2_config.Ec2Config",
    *,
    config_overrides: Optional[DataSyncClientConfig] = None,
    subdirectory: Optional[
        "capo_datasync.types.efs_subdirectory.EfsSubdirectory"
    ] = None,
    tags: Optional["capo_datasync.types.input_tag_list.InputTagList"] = None,
    access_point_arn: Optional[
        "capo_datasync.types.efs_access_point_arn.EfsAccessPointArn"
    ] = None,
    file_system_access_role_arn: Optional[
        "capo_datasync.types.iam_role_arn.IamRoleArn"
    ] = None,
    in_transit_encryption: Optional[
        "capo_datasync.types.efs_in_transit_encryption.EfsInTransitEncryption"
    ] = None,
) -> "capo_datasync.types.create_location_efs_response.CreateLocationEfsResponse":
    """<p>Creates a transfer <i>location</i> for an Amazon EFS file system. DataSync can use this location as a source or destination for transferring data.</p> <p>Before you begin, make sure that you understand how DataSync <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-efs-location.html#create-efs-location-access">accesses Amazon EFS file systems</a>.</p>

    Args:
        subdirectory: <p>Specifies a mount path for your Amazon EFS file system. This is where DataSync reads or writes data on your file system (depending on if this is a source or destination location).</p> <p>By default, DataSync uses the root directory (or <a href="https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html">access point</a> if you provide one by using <code>AccessPointArn</code>). You can also include subdirectories using forward slashes (for example, <code>/path/to/folder</code>).</p>
        efs_filesystem_arn: <p>Specifies the ARN for your Amazon EFS file system.</p>
        ec2_config: <p>Specifies the subnet and security groups DataSync uses to connect to one of your Amazon EFS file system's <a href="https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html">mount targets</a>.</p>
        tags: <p>Specifies the key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.</p>
        access_point_arn: <p>Specifies the Amazon Resource Name (ARN) of the access point that DataSync uses to mount your Amazon EFS file system.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-efs-location.html#create-efs-location-iam">Accessing restricted file systems</a>.</p>
        file_system_access_role_arn: <p>Specifies an Identity and Access Management (IAM) role that allows DataSync to access your Amazon EFS file system.</p> <p>For information on creating this role, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-efs-location.html#create-efs-location-iam-role">Creating a DataSync IAM role for file system access</a>.</p>
        in_transit_encryption: <p>Specifies whether you want DataSync to use Transport Layer Security (TLS) 1.2 encryption when it transfers data to or from your Amazon EFS file system.</p> <p>If you specify an access point using <code>AccessPointArn</code> or an IAM role using <code>FileSystemAccessRoleArn</code>, you must set this parameter to <code>TLS1_2</code>.</p>

    Raises:
        capo_datasync.errors.internal_exception.InternalException: <p>This exception is thrown when an error occurs in the DataSync service.</p>
        capo_datasync.errors.invalid_request_exception.InvalidRequestException: <p>This exception is thrown when the client submits a malformed request.</p>
        capo_datasync.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_datasync.types.create_location_efs_request.CreateLocationEfsRequest]",
    ) -> OperationResponse[
        "capo_datasync.types.create_location_efs_response.CreateLocationEfsResponse"
    ]:
        import capo_datasync._operations.fmrs_service.create_location_efs

        output, http_response = (
            capo_datasync._operations.fmrs_service.create_location_efs.create_location_efs(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateLocationEfs")
    )
    input_: capo_datasync.types.create_location_efs_request.CreateLocationEfsRequest = {
        "efs_filesystem_arn": efs_filesystem_arn,
        "ec2_config": ec2_config,
    }
    if subdirectory is not None:
        input_["subdirectory"] = subdirectory
    if tags is not None:
        input_["tags"] = tags
    if access_point_arn is not None:
        input_["access_point_arn"] = access_point_arn
    if file_system_access_role_arn is not None:
        input_["file_system_access_role_arn"] = file_system_access_role_arn
    if in_transit_encryption is not None:
        input_["in_transit_encryption"] = in_transit_encryption

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output