# frozen_string_literal: truemoduleForemanSaltmoduleApimoduleV2# API controller for Salt VariablesclassSaltVariablesController<::ForemanSalt::Api::V2::BaseControllerinclude::ForemanSalt::Concerns::SaltVariableParameterswrap_parameters:salt_variable,:include=>salt_variable_params_filter.accessible_attributes(parameter_filter_context)+['salt_state_id']before_action:find_resource,:only=>[:show,:destroy,:update]api:GET,'/salt_variables/:id',N_('Show variable')param:id,:identifier,:required=>truedefshow;endapi:GET,'/salt_variables',N_('List Salt variables')param_group:search_and_pagination,::Api::V2::BaseControllerdefindex@salt_variables=resource_scope_for_indexendapi:DELETE,'/salt_variables/:id',N_('Deletes Salt variable')param:id,:identifier,:required=>truedefdestroy@salt_variable.destroyrender'foreman_salt/api/v2/salt_variables/destroy'enddef_param_group:salt_variabledoparam:salt_variable,Hash,:required=>true,:action_aware=>truedoparam:variable,String,:required=>true,:desc=>N_("Name of variable")param:salt_state_id,:number,:required=>true,:desc=>N_("State ID")param:default_value,:any_type,:of=>LookupKey::KEY_TYPES,:desc=>N_("Default value of variable")param:hidden_value,:bool,:desc=>N_("When enabled the parameter is hidden in the UI")param:override_value_order,String,:desc=>N_("The order in which values are resolved")param:description,String,:desc=>N_("Description of variable")param:validator_type,LookupKey::VALIDATOR_TYPES,:desc=>N_("Types of validation values")param:validator_rule,String,:desc=>N_("Used to enforce certain values for the parameter values")param:variable_type,LookupKey::KEY_TYPES,:desc=>N_("Types of variable values")param:merge_overrides,:bool,:desc=>N_("Merge all matching values (only array/hash type)")param:merge_default,:bool,:desc=>N_("Include default value when merging all matching values")param:avoid_duplicates,:bool,:desc=>N_("Remove duplicate values (only array type)")endendapi:POST,'/salt_variables',N_('Create Salt variable')param_group:salt_variable,:as=>:createdefcreateparams[:salt_variable][:salt_module_id]=params[:salt_variable].delete(:salt_state_id)ifparams[:salt_variable]@salt_variable=SaltVariable.new(salt_variable_params)process_response@salt_variable.saveendapi:PUT,'/salt_variables/:id',N_('Updates Salt variable')param:id,:identifier,:required=>trueparam_group:salt_variable,:as=>:updatedefupdate@salt_variable.update!(salt_variable_params)render'foreman_salt/api/v2/salt_variables/show'enddefcontroller_permission'salt_variables'enddefresource_classForemanSalt::SaltVariableendendendendend