:doc:`S3 <../../s3>` / Client / get_bucket_ownership_controls

*****************************
get_bucket_ownership_controls
*****************************



.. py:method:: S3.Client.get_bucket_ownership_controls(**kwargs)

  

  .. note::

    

    This operation is not supported for directory buckets.

    

   

  Retrieves ``OwnershipControls`` for an Amazon S3 bucket. To use this operation, you must have the ``s3:GetBucketOwnershipControls`` permission. For more information about Amazon S3 permissions, see `Specifying permissions in a policy <https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html>`__.

   

  .. note::

    

    A bucket doesn't have ``OwnershipControls`` settings in the following cases:

     

    
    * The bucket was created before the ``BucketOwnerEnforced`` ownership setting was introduced and you've never explicitly applied this value
     
    * You've manually deleted the bucket ownership control value using the ``DeleteBucketOwnershipControls`` API operation.
    

     

    By default, Amazon S3 sets ``OwnershipControls`` for all newly created buckets.

    

   

  For information about Amazon S3 Object Ownership, see `Using Object Ownership <https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html>`__.

   

  The following operations are related to ``GetBucketOwnershipControls``:

   

  
  *  PutBucketOwnershipControls
   
  *  DeleteBucketOwnershipControls
  

   

  .. warning::

     

    You must URL encode any signed header values that contain spaces. For example, if your header value is ``my file.txt``, containing two spaces after ``my``, you must URL encode this value to ``my%20%20file.txt``.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls>`_  


  **Request Syntax**
  ::

    response = client.get_bucket_ownership_controls(
        Bucket='string',
        ExpectedBucketOwner='string'
    )
    
  :type Bucket: string
  :param Bucket: **[REQUIRED]** 

    The name of the Amazon S3 bucket whose ``OwnershipControls`` you want to retrieve.

    

  
  :type ExpectedBucketOwner: string
  :param ExpectedBucketOwner: 

    The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code ``403 Forbidden`` (access denied).

    

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

    
    ::

      {
          'OwnershipControls': {
              'Rules': [
                  {
                      'ObjectOwnership': 'BucketOwnerPreferred'|'ObjectWriter'|'BucketOwnerEnforced'
                  },
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **OwnershipControls** *(dict) --* 

        The ``OwnershipControls`` (BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter) currently in effect for this Amazon S3 bucket.

        
        

        - **Rules** *(list) --* 

          The container element for an ownership control rule.

          
          

          - *(dict) --* 

            The container element for an ownership control rule.

            
            

            - **ObjectOwnership** *(string) --* 

              The container element for object ownership for a bucket's ownership controls.

               

              ``BucketOwnerPreferred`` - Objects uploaded to the bucket change ownership to the bucket owner if the objects are uploaded with the ``bucket-owner-full-control`` canned ACL.

               

              ``ObjectWriter`` - The uploading account will own the object if the object is uploaded with the ``bucket-owner-full-control`` canned ACL.

               

              ``BucketOwnerEnforced`` - Access control lists (ACLs) are disabled and no longer affect permissions. The bucket owner automatically owns and has full control over every object in the bucket. The bucket only accepts PUT requests that don't specify an ACL or specify bucket owner full control ACLs (such as the predefined ``bucket-owner-full-control`` canned ACL or a custom ACL in XML format that grants the same permissions).

               

              By default, ``ObjectOwnership`` is set to ``BucketOwnerEnforced`` and ACLs are disabled. We recommend keeping ACLs disabled, except in uncommon use cases where you must control access for each object individually. For more information about S3 Object Ownership, see `Controlling ownership of objects and disabling ACLs for your bucket <https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html>`__ in the *Amazon S3 User Guide*.

               

              .. note::

                

                This functionality is not supported for directory buckets. Directory buckets use the bucket owner enforced setting for S3 Object Ownership.

                

              
        
      
    
  