@staticmethod
def get_option(options, option_name, profile, region):
    """Get an option from more precise to more general."""
    result = options
    if isinstance(result, str):
        return result
    result = options.get(profile, {}).get(region, {})
    if isinstance(result, dict):
        result = result.get(option_name)
    if isinstance(result, str):
        return result
    result = options.get(profile, {})
    if isinstance(result, dict):
        result = result.get(option_name)
    if isinstance(result, str):
        return result
    result = options.get(region, {})
    if isinstance(result, dict):
        result = result.get(option_name)
    if isinstance(result, str):
        return result
    result = options
    if isinstance(result, dict):
        result = result.get(option_name)
    return None
