def describe(Bucket,
             region=None, key=None, keyid=None, profile=None):
    '''
    Given a bucket name describe its properties.

    Returns a dictionary of interesting properties.

    CLI Example:

    .. code-block:: bash

        salt myminion boto_s3_bucket.describe mybucket

    '''

    try:
        conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)
        result = {}
        for key, query in {
                'ACL': conn.get_bucket_acl,
                'CORS': conn.get_bucket_cors,
                'LifecycleConfiguration': conn.get_bucket_lifecycle_configuration,
                'Location': conn.get_bucket_location,
                'Logging': conn.get_bucket_logging,
                'NotificationConfiguration': conn.get_bucket_notification_configuration,
                'Policy': conn.get_bucket_policy,
                'Replication': conn.get_bucket_replication,
                'RequestPayment': conn.get_bucket_request_payment,
                'Versioning': conn.get_bucket_versioning,
                'Website': conn.get_bucket_website}.iteritems():
            try:
                data = query(Bucket=Bucket)
            except ClientError as e:
                if e.response.get('Error', {}).get('Code') in (
                            'NoSuchLifecycleConfiguration',
                            'NoSuchCORSConfiguration',
                            'NoSuchBucketPolicy',
                            'NoSuchWebsiteConfiguration',
                            'ReplicationConfigurationNotFoundError',
                            'NoSuchTagSet',
                            ):
                    continue
                raise
            if 'ResponseMetadata' in data:
                del data['ResponseMetadata']
            result[key] = data

        tags = {}
        try:
            data = conn.get_bucket_tagging(Bucket=Bucket)
            for tagdef in data.get('TagSet'):
                tags[tagdef.get('Key')] = tagdef.get('Value')
        except ClientError as e:
            if not e.response.get('Error', {}).get('Code') == 'NoSuchTagSet':
                raise
        if tags:
            result['Tagging'] = tags
        return {'bucket': result}
    except ClientError as e:
        err = __utils__['boto3.get_error'](e)
        if e.response.get('Error', {}).get('Code') == 'NoSuchBucket':
            return {'bucket': None}
        return {'error': __utils__['boto3.get_error'](e)}
dataset/ETHPy150Open saltstack/salt/salt/modules/boto_s3_bucket.py/describe/original