def convert_to_tf_type()

in rostran/providers/terraform/template_blocks.py [0:0]


def convert_to_tf_type(value: Any, type_: Optional[str] = None) -> TerraformType:
    if isinstance(value, TerraformType):
        return value
    if type_ is None:
        if isinstance(value, str):
            return QuotedString(value)
        elif isinstance(value, bool):
            return BooleanType(value)
        elif isinstance(value, (int, float)):
            return NumberType(value)
        elif value is None:
            return NullType()
        elif isinstance(value, (dict, list)):
            return JsonType(value)
        return LiteralType(value)

    if type_ == "string":
        return QuotedString(value)
    elif type_ == "number":
        return NumberType(value)
    elif type_ == "boolean":
        return BooleanType(value)
    elif type_ == "null":
        return NullType()
    elif type_ in ("json", "dict", "list"):
        return JsonType(value)
    elif type_ == "comment":
        return CommentType(value)
    elif type_:
        return LiteralType(value)