function bucketGetLifecycle(authInfo, request, log, callback) {
    log.debug('processing request', { method: 'bucketGetLifecycle' });
    const { bucketName, headers, method } = request;
    const metadataValParams = {
        authInfo,
        bucketName,
        requestType: request.apiMethods || 'bucketGetLifecycle',
        request,
    };
    return standardMetadataValidateBucket(metadataValParams, request.actionImplicitDenies, log, (err, bucket) => {
        const corsHeaders = collectCorsHeaders(headers.origin, method, bucket);
        if (err) {
            log.debug('error processing request', {
                error: err,
                method: 'bucketGetLifecycle',
            });
            monitoring.promMetrics(
                'GET', bucketName, err.code, 'getBucketLifecycle');
            return callback(err, null, corsHeaders);
        }
        const lifecycleConfig = bucket.getLifecycleConfiguration();
        if (!lifecycleConfig) {
            log.debug('error processing request', {
                error: errors.NoSuchLifecycleConfiguration,
                method: 'bucketGetLifecycle',
            });
            monitoring.promMetrics(
                'GET', bucketName, 404, 'getBucketLifecycle');
            return callback(errors.NoSuchLifecycleConfiguration, null,
                corsHeaders);
        }
        const xml = LifecycleConfiguration.getConfigXml(lifecycleConfig);
        pushMetric('getBucketLifecycle', log, {
            authInfo,
            bucket: bucketName,
        });
        monitoring.promMetrics('GET', bucketName, '200', 'getBucketLifecycle');
        return callback(null, xml, corsHeaders);
    });
}
bucketGetLifecycle - Get the bucket lifecycle configuration
@param {AuthInfo} authInfo - Instance of AuthInfo class with requester's info
@param {object} request - http request object
@param {object} log - Werelogs logger
@param {function} callback - callback to server
@return {undefined}