def METHOD_NAME(self, action_name, action_version, action_config):
    data = self.default.copy()
    data.update(action_config)
    if not action_config.get("generate", True):
        return None
    definitions_keys = set()
    for schema_key in ("request", "response"):
        if schema_key in action_config:
            try:
                schema = action_config[schema_key]
                refs = self._expand_schema_references_with_definitions(schema)
                self._resolve_schema_references(schema, refs=refs)
                definitions_keys.update(refs)
            except ValueError as ex:
                name = "%s.%s/%.1f/%s" % (
                    self.name,
                    action_name,
                    action_version,
                    schema_key,
                )
                raise ValueError("%s in %s" % (str(ex), name))
    return Action(
        name=action_name,
        version=action_version,
        definitions_keys=list(definitions_keys),
        service=self.name,
        **(
            {
                key: value
                for key, value in data.items()
                if key in attr.fields_dict(Action)
            }
        )
    )