public T openBlock(
            String textBeforeNewline,
            String textAfterNewline,
            Object arg1,
            Object arg2,
            Object arg3,
            Object arg4,
            Object arg5,
            Runnable f
    ) {
        return openBlock(textBeforeNewline, textAfterNewline, new Object[] {arg1, arg2, arg3, arg4, arg5}, f);
    }
Opens a block of syntax by writing {@code textBeforeNewline}, a newline, then
indenting, then executes the given {@code Runnable}, then closes the block of
syntax by writing a newline, dedenting, then writing {@code textAfterNewline}.

@param textBeforeNewline Text to write before writing a newline and indenting.
@param textAfterNewline Text to write after writing a newline and indenting.
@param arg1 First positional argument to substitute into {@code textBeforeNewline}.
@param arg2 Second positional argument to substitute into {@code textBeforeNewline}.
@param arg3 Third positional argument to substitute into {@code textBeforeNewline}.
@param arg4 Fourth positional argument to substitute into {@code textBeforeNewline}.
@param arg5 Fifth positional argument to substitute into {@code textBeforeNewline}.
@param f Runnable function to execute inside of the block.
@return Returns this.
smithy-utils/src/main/java/software/amazon/smithy/utils/AbstractCodeWriter.java