docs: def _validate_query_parameters(self, query, action_spec):
          """Check the query parameter for the action specification.
  
          Args:
              query: query parameter to check.
              action_spec: specification of the action.
  
          Returns:
              True if the query is valid.
          """
          processed_params = []
          for param_name, param_value in query.items():
              if param_name in action_spec['parameters'].keys():
                  processed_params.append(param_name)
  
                  # Check array
                  if action_spec['parameters'][param_name]['type'] == 'array':
                      if not isinstance(param_value, list):  # Not an array
                          return False
                      else:
                          for i in param_value:  # Check type of all elements in array
                              if not self.check_type(i, action_spec['parameters'][param_name]['items']['type']):
                                  return False
  
                  elif not self.check_type(param_value, action_spec['parameters'][param_name]['type']):
                      return False
  
          # Check required
          if not all(param in processed_params for param, spec in action_spec['parameters'].items()
                     if spec['in'] == 'query' and 'required' in spec and spec['required']):
              return False
          return True