def _transform_parameters()

in rostran/providers/ros/template.py [0:0]


    def _transform_parameters(self) -> List[tf.Variable]:
        tf_vars = []
        for name, value in self.parameters.items():
            tf_name = self.get_tf_params(camel_to_snake(name))
            value = value.copy()
            param_type = value.pop("Type", None)
            tf_value = dict()
            if param_type == "String":
                tf_value["type"] = "string"
            elif param_type == "Number":
                tf_value["type"] = "number"
            elif param_type == "Boolean":
                tf_value["type"] = "bool"
            elif param_type == "CommaDelimitedList":
                tf_value["type"] = "list(any)"
            else:
                msg = f"The params type {param_type} is not supported, may be ignored when referenced by a resource."
                tf_value["comment-type"] = tf.CommentType(msg)
                tf_value["type"] = "any"

            param_default = value.pop("Default", None)
            if param_default:
                if param_type in ("String", "Number", "Boolean"):
                    tf_value["default"] = tf.convert_to_tf_type(param_default, param_type.lower())
                else:
                    tf_value["default"] = self.resolve_values(param_default)

            param_sensitive = value.pop("NoEcho", None)
            if param_sensitive:
                tf_value["sensitive"] = tf.BooleanType(True)

            required = value.pop("Required", None)
            if required:
                tf_value["nullable"] = tf.BooleanType(False)

            if value:
                value = json.dumps(value, indent=2, ensure_ascii=False)
                value = textwrap.indent(value, "  ")
                if "${" in value:
                    value = value.replace("${", "$${")
                tf_value["description"] = f"<<EOT\n{value}\n  EOT"
            var_block = tf.Variable(tf_name, tf_value)
            tf_vars.append(var_block)
        return tf_vars