:doc:`LakeFormation <../../lakeformation>` / Client / register_resource

*****************
register_resource
*****************



.. py:method:: LakeFormation.Client.register_resource(**kwargs)

  

  Registers the resource as managed by the Data Catalog.

   

  To add or update data, Lake Formation needs read/write access to the chosen data location. Choose a role that you know has permission to do this, or choose the AWSServiceRoleForLakeFormationDataAccess service-linked role. When you register the first Amazon S3 path, the service-linked role and a new inline policy are created on your behalf. Lake Formation adds the first path to the inline policy and attaches it to the service-linked role. When you register subsequent paths, Lake Formation adds the path to the existing policy.

   

  The following request registers a new location and gives Lake Formation permission to use the service-linked role to access that location.

   

  ``ResourceArn = arn:aws:s3:::my-bucket/ UseServiceLinkedRole = true``

   

  If ``UseServiceLinkedRole`` is not set to true, you must provide or set the ``RoleArn``:

   

  ``arn:aws:iam::12345:role/my-data-access-role``

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RegisterResource>`_  


  **Request Syntax**
  ::

    response = client.register_resource(
        ResourceArn='string',
        UseServiceLinkedRole=True|False,
        RoleArn='string',
        WithFederation=True|False,
        HybridAccessEnabled=True|False,
        WithPrivilegedAccess=True|False,
        ExpectedResourceOwnerAccount='string'
    )
    
  :type ResourceArn: string
  :param ResourceArn: **[REQUIRED]** 

    The Amazon Resource Name (ARN) of the resource that you want to register.

    

  
  :type UseServiceLinkedRole: boolean
  :param UseServiceLinkedRole: 

    Designates an Identity and Access Management (IAM) service-linked role by registering this role with the Data Catalog. A service-linked role is a unique type of IAM role that is linked directly to Lake Formation.

     

    For more information, see `Using Service-Linked Roles for Lake Formation <https://docs.aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html>`__.

    

  
  :type RoleArn: string
  :param RoleArn: 

    The identifier for the role that registers the resource.

    

  
  :type WithFederation: boolean
  :param WithFederation: 

    Whether or not the resource is a federated resource.

    

  
  :type HybridAccessEnabled: boolean
  :param HybridAccessEnabled: 

    Specifies whether the data access of tables pointing to the location can be managed by both Lake Formation permissions as well as Amazon S3 bucket policies.

    

  
  :type WithPrivilegedAccess: boolean
  :param WithPrivilegedAccess: 

    Grants the calling principal the permissions to perform all supported Lake Formation operations on the registered data location.

    

  
  :type ExpectedResourceOwnerAccount: string
  :param ExpectedResourceOwnerAccount: 

    The Amazon Web Services account that owns the Glue tables associated with specific Amazon S3 locations.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`LakeFormation.Client.exceptions.InvalidInputException`

  
  *   :py:class:`LakeFormation.Client.exceptions.InternalServiceException`

  
  *   :py:class:`LakeFormation.Client.exceptions.OperationTimeoutException`

  
  *   :py:class:`LakeFormation.Client.exceptions.AlreadyExistsException`

  
  *   :py:class:`LakeFormation.Client.exceptions.EntityNotFoundException`

  
  *   :py:class:`LakeFormation.Client.exceptions.ResourceNumberLimitExceededException`

  
  *   :py:class:`LakeFormation.Client.exceptions.AccessDeniedException`

  