def set_setting(self, setting, value):
if setting not in self._expected_settings + self._optional_settings:<EOL><INDENT>raise exceptions.ConfigurationError(<EOL>"<STR_LIT>".format(setting)<EOL>)<EOL><DEDENT>if setting == '<STR_LIT>':<EOL><INDENT>self._set_hostname(value)<EOL><DEDENT>elif setting == '<STR_LIT:port>':<EOL><INDENT>self._set_port(value)<EOL><DEDENT>elif setting == '<STR_LIT>':<EOL><INDENT>self._set_certificate_path(value)<EOL><DEDENT>elif setting == '<STR_LIT>':<EOL><INDENT>self._set_key_path(value)<EOL><DEDENT>elif setting == '<STR_LIT>':<EOL><INDENT>self._set_ca_path(value)<EOL><DEDENT>elif setting == '<STR_LIT>':<EOL><INDENT>self._set_auth_suite(value)<EOL><DEDENT>elif setting == '<STR_LIT>':<EOL><INDENT>self._set_policy_path(value)<EOL><DEDENT>elif setting == '<STR_LIT>':<EOL><INDENT>self._set_enable_tls_client_auth(value)<EOL><DEDENT>elif setting == '<STR_LIT>':<EOL><INDENT>self._set_tls_cipher_suites(value)<EOL><DEDENT>elif setting == '<STR_LIT>':<EOL><INDENT>self._set_logging_level(value)<EOL><DEDENT>else:<EOL><INDENT>self._set_database_path(value)<EOL><DEDENT>
Set a specific setting value.

This will overwrite the current setting value for the specified
setting.

Args:
    setting (string): The name of the setting to set (e.g.,
        'certificate_path', 'hostname'). Required.
    value (misc): The value of the setting to set. Type varies based
        on setting. Required.
Raises:
    ConfigurationError: Raised if the setting is not supported or if
        the setting value is invalid.