You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: apache_flink_jar_upload_exec.rb
    path of file: ./repos/metasploit-framework/modules/exploits/multi/http
    
    the code of the file until where you have to start completion: ##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Exploit::Remote
  Rank = ExcellentRanking

  include Msf::Exploit::Remote::HttpClient
  prepend Msf::Exploit::Remote::AutoCheck

  def initialize(info = {})
    super(
      update_info(
        info,
        'Name' => 'Apache Flink JAR Upload Java Code Execution',
        'Description' => %q{
          This module uses job functionality in Apache Flink dashboard web
          interface to upload and execute a JAR file, leading to remote
          execution of arbitrary Java code as the web server user.

          This module has been tested successfully on Apache Flink versions:
          1.9.3 on Ubuntu 18.04.4;
          1.11.2 on Ubuntu 18.04.4;
          1.9.3 on Windows 10; and
          1.11.2 on Windows 10.
        },
        'License' => MSF_LICENSE,
        'Author' => [
          'Henry Chen', # Initial technique d
    
  def initialize(info = {})
    super(
      update_info(
        info,
        'Name' => 'Apache Flink JAR Upload Java Code Execution',
        'Description' => %q{
          This module uses job functionality in Apache Flink dashboard web
          interface to upload and execute a JAR file, leading to remote
          execution of arbitrary Java code as the web server user.

          This module has been tested successfully on Apache Flink versions:
          1.9.3 on Ubuntu 18.04.4;
          1.11.2 on Ubuntu 18.04.4;
          1.9.3 on Windows 10; and
          1.11.2 on Windows 10.
        },
        'License' => MSF_LICENSE,
        'Author' => [
          'Henry Chen', # Initial technique demonstration and writeup
          'bigger.wing', # Python exploit
          'bcoles' # Metasploit module
        ],
        'References' => [
          ['EDB', '48978'],
          ['PACKETSTORM', '159779'],
          ['URL', 'https://github.com/biggerwing/apache-flink-unauthorized-upload-rce-'],
          ['URL', 'https://s.tencent.com/research/bsafe/841.html'],
          ['URL', 'https://cloud.tencent.com/developer/article/1540439'],
          ['URL', 'https://nsfocusglobal.com/advisory-apache-flink-remote-code-execution-vulnerability/'],
        ],
        'Platform' => 'java',
        'Arch' => [ARCH_JAVA],
        'Targets' => [
          ['Automatic', {}]
        ],
        'Privileged' => false,
        'DisclosureDate' => '2019-11-13',
        'DefaultTarget' => 0,
        'Notes' => {
          'SideEffects' => [ ARTIFACTS_ON_DISK, IOC_IN_LOGS],
          'Stability' => [ CRASH_SAFE ],
          'Reliability' => [ REPEATABLE_SESSION]
        }
      )
    )

    register_options([
      Opt::RPORT(8081)
    ])
  end