def validate_create_request(self, request_json):
        try:
            json_dict = json.loads(request_json)
        except __HOLE__:  # data was invalid JSON
            return False

        try:
            # require top-level fields
            self.require_context(
                json_dict,
                ['configuration', 'group_id', 'group_context', 'content'],
                ValueError())

            # require configuration options
            configuration = json_dict['configuration']
            self.require_context(
                configuration,
                ['task_type', 'task_batch_size', 'num_assignments',
                 'callback_url'],
                ValueError())

        except ValueError:
            return False

        # Require at least one record for crowd processing.
        content = json_dict['content']
        point_identifiers = content.keys()
        if len(point_identifiers) == 0:
            return False

        # Do crowd-specific validation
        crowd_config = configuration.get(self.crowd_name, {})
        return self.validate_configuration(crowd_config)

    # Get the appropriate model class
dataset/ETHPy150Open amplab/ampcrowd/ampcrowd/basecrowd/interface.py/CrowdInterface.validate_create_request