'Takes a set of configuration settings and either a
configuration template or environment, and determines whether
those values are valid.  This action returns a list of messages
indicating any errors or warnings associated with the selection
of option values.
:type application_name: string
:param application_name: The name of the application that the
configuration template or environment belongs to.
:type template_name: string
:param template_name: The name of the configuration template to
validate the settings against.  Condition: You cannot specify both
this and an environment name.
:type environment_name: string
:param environment_name: The name of the environment to validate the
settings against.  Condition: You cannot specify both this and a
configuration template name.
:type option_settings: list
:param option_settings: A list of the options and desired values to
evaluate.
:raises: InsufficientPrivilegesException'

def validate_configuration_settings(self, application_name, option_settings, template_name=None, environment_name=None):

    params = {'ApplicationName': application_name}
    self._build_list_params(params, option_settings, 'OptionSettings.member', ('Namespace', 'OptionName', 'Value'))
    if template_name:
        params['TemplateName'] = template_name
    if environment_name:
        params['EnvironmentName'] = environment_name
    return self._get_response('ValidateConfigurationSettings', params)
