class Builder {

        /**
         * Utility constructor.
         */
        private Builder() {
        }

        /**
         * Creates new {@link KillArgs} and enabling {@literal SKIPME YES}.
         *
         * @return new {@link KillArgs} with {@literal SKIPME YES} enabled.
         * @see KillArgs#skipme()
         */
        public static KillArgs skipme() {
            return new KillArgs().skipme();
        }

        /**
         * Creates new {@link KillArgs} setting {@literal ADDR} (Remote Address).
         *
         * @param addr must not be {@code null}.
         * @return new {@link KillArgs} with {@literal ADDR} set.
         * @see KillArgs#addr(String)
         */
        public static KillArgs addr(String addr) {
            return new KillArgs().addr(addr);
        }

        /**
         * Creates new {@link KillArgs} setting {@literal LADDR} (Local Address).
         *
         * @param laddr must not be {@code null}.
         * @return new {@link KillArgs} with {@literal LADDR} set.
         * @see KillArgs#laddr(String)
         */
        public static KillArgs laddr(String laddr) {
            return new KillArgs().laddr(laddr);
        }

        /**
         * Creates new {@link KillArgs} setting {@literal ID}.
         *
         * @param id client id.
         * @return new {@link KillArgs} with {@literal ID} set.
         * @see KillArgs#id(long)
         */
        public static KillArgs id(long id) {
            return new KillArgs().id(id);
        }

        /**
         * Creates new {@link KillArgs} setting {@literal TYPE PUBSUB}.
         *
         * @return new {@link KillArgs} with {@literal TYPE PUBSUB} set.
         * @see KillArgs#type(Type)
         */
        public static KillArgs typePubsub() {
            return new KillArgs().type(Type.PUBSUB);
        }

        /**
         * Creates new {@link KillArgs} setting {@literal TYPE NORMAL}.
         *
         * @return new {@link KillArgs} with {@literal TYPE NORMAL} set.
         * @see KillArgs#type(Type)
         */
        public static KillArgs typeNormal() {
            return new KillArgs().type(Type.NORMAL);
        }

        /**
         * Creates new {@link KillArgs} setting {@literal TYPE MASTER}.
         *
         * @return new {@link KillArgs} with {@literal TYPE MASTER} set.
         * @see KillArgs#type(Type)
         * @since 5.0.4
         */
        public static KillArgs typeMaster() {
            return new KillArgs().type(Type.MASTER);
        }

        /**
         * Creates new {@link KillArgs} setting {@literal TYPE SLAVE}.
         *
         * @return new {@link KillArgs} with {@literal TYPE SLAVE} set.
         * @see KillArgs#type(Type)
         */
        public static KillArgs typeSlave() {
            return new KillArgs().type(Type.SLAVE);
        }

        /**
         * Creates new {@link KillArgs} setting {@literal USER}.
         *
         * @return new {@link KillArgs} with {@literal USER} set.
         * @see KillArgs#user(String)
         * @since 6.1
         */
        public static KillArgs user(String username) {
            return new KillArgs().user(username);
        }
    }

    /**
     * By default this option is enabled, that is, the client calling the command will not get killed, however setting this
     * option to no will have the effect of also killing the client calling the command.
     *
     * @return {@code this} {@link MigrateArgs}.
     */
    public KillArgs skipme() {
        return this.skipme(true);
    }

    /**
     * By default this option is enabled, that is, the client calling the command will not get killed, however setting this
     * option to no will have the effect of also killing the client calling the command.
     *
     * @param state
     * @return {@code this} {@link KillArgs}.
     */
    public KillArgs skipme(boolean state) {

        this.skipme = state;
        return this;
    }

    /**
     * Kill the client at {@code addr} (Remote Address).
     *
     * @param addr must not be {@code null}.
     * @return {@code this} {@link KillArgs}.
     */
    public KillArgs addr(String addr) {

        LettuceAssert.notNull(addr, "Client address must not be null");

        this.addr = addr;
        return this;
    }

    /**
     * Kill the client at {@code laddr} (Local Address).
     *
     * @param laddr must not be {@code null}.
     * @return {@code this} {@link KillArgs}.
     * @since 6.1
     */
    public KillArgs laddr(String laddr) {<FILL_FUNCTION_BODY>


        LettuceAssert.notNull(laddr, "Local client address must not be null");

        this.laddr = laddr;
        return this;
    
<no_super_class>