We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
About option of win_package
I found two issue.

I think Product-ID parameter is not "product_id" , is it "productid"?
Also , it seems the required columns is "yes".

```
fatal: [10.1.1.6]: FAILED! => {"changed": false, "failed": true, "msg": "Missing required argument: productid"
```

Therefore , it take a mistake about "ProductId" below an example on document of win_package:

```
# Playbook example
  - name: Install the vc thingy
    win_package:
      name="Microsoft Visual C thingy"
      path="http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe"
      ProductId="{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}"
      Arguments="/install /passive /norestart"
```


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `windows/win_package.py`
Content:
```
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3 
4 # (c) 2014, Trond Hindenes <trond@hindenes.com>, and others
5 #
6 # This file is part of Ansible
7 #
8 # Ansible is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
12 #
13 # Ansible is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
20 
21 # this is a windows documentation stub.  actual code lives in the .ps1
22 # file of the same name
23 
24 DOCUMENTATION = '''
25 ---
26 module: win_package
27 version_added: "1.7"
28 short_description: Installs/Uninstalls a installable package, either from local file system or url
29 description:
30      - Installs or uninstalls a package
31 options:
32   path:
33     description:
34       - Location of the package to be installed (either on file system, network share or url)
35     required: true
36     default: null
37     aliases: []
38   name:
39     description:
40       - name of the package. Just for logging reasons, will use the value of path if name isn't specified
41     required: false
42     default: null
43     aliases: []
44   product_id:
45     description:
46       - product id of the installed package (used for checking if already installed)
47     required: false
48     default: null
49     aliases: []
50   arguments:
51     description:
52       - Any arguments the installer needs
53     default: null
54     aliases: []
55   state:
56     description:
57       - Install or Uninstall
58     choices:
59       - present
60       - absent
61     default: present
62     aliases: [ensure]
63   user_name:
64     description:
65       - Username of an account with access to the package if its located on a file share. Only needed if the winrm user doesn't have access to the package. Also specify user_password for this to function properly.
66     default: null
67     aliases: []
68   user_password:
69     description:
70       - Password of an account with access to the package if its located on a file share. Only needed if the winrm user doesn't have access to the package. Also specify user_name for this to function properly.
71     default: null
72     aliases: []
73 author: Trond Hindenes
74 '''
75 
76 EXAMPLES = '''
77 # Playbook example
78   - name: Install the vc thingy
79     win_package:
80       name="Microsoft Visual C thingy"
81       path="http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe"
82       ProductId="{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}"
83       Arguments="/install /passive /norestart"
84 
85 
86 '''
87 
88
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/windows/win_package.py b/windows/win_package.py
--- a/windows/win_package.py
+++ b/windows/win_package.py
@@ -25,6 +25,7 @@
 ---
 module: win_package
 version_added: "1.7"
+author: Trond Hindenes
 short_description: Installs/Uninstalls a installable package, either from local file system or url
 description:
      - Installs or uninstalls a package
@@ -44,9 +45,9 @@
   product_id:
     description:
       - product id of the installed package (used for checking if already installed)
-    required: false
+    required: true
     default: null
-    aliases: []
+    aliases: [productid]
   arguments:
     description:
       - Any arguments the installer needs
@@ -79,7 +80,7 @@
     win_package:
       name="Microsoft Visual C thingy"
       path="http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe"
-      ProductId="{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}"
+      Product_Id="{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}"
       Arguments="/install /passive /norestart"

{"golden_diff": "diff --git a/windows/win_package.py b/windows/win_package.py\n--- a/windows/win_package.py\n+++ b/windows/win_package.py\n@@ -25,6 +25,7 @@\n ---\n module: win_package\n version_added: \"1.7\"\n+author: Trond Hindenes\n short_description: Installs/Uninstalls a installable package, either from local file system or url\n description:\n      - Installs or uninstalls a package\n@@ -44,9 +45,9 @@\n   product_id:\n     description:\n       - product id of the installed package (used for checking if already installed)\n-    required: false\n+    required: true\n     default: null\n-    aliases: []\n+    aliases: [productid]\n   arguments:\n     description:\n       - Any arguments the installer needs\n@@ -79,7 +80,7 @@\n     win_package:\n       name=\"Microsoft Visual C thingy\"\n       path=\"http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe\"\n-      ProductId=\"{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}\"\n+      Product_Id=\"{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}\"\n       Arguments=\"/install /passive /norestart\"\n", "issue": "About option of win_package\nI found two issue.\n\nI think Product-ID parameter is not \"product_id\" , is it \"productid\"?\nAlso , it seems the required columns is \"yes\".\n\n```\nfatal: [10.1.1.6]: FAILED! => {\"changed\": false, \"failed\": true, \"msg\": \"Missing required argument: productid\"\n```\n\nTherefore , it take a mistake about \"ProductId\" below an example on document of win_package:\n\n```\n# Playbook example\n  - name: Install the vc thingy\n    win_package:\n      name=\"Microsoft Visual C thingy\"\n      path=\"http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe\"\n      ProductId=\"{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}\"\n      Arguments=\"/install /passive /norestart\"\n```\n\n", "before_files": [{"content": "#!/usr/bin/python\n# -*- coding: utf-8 -*-\n\n# (c) 2014, Trond Hindenes <trond@hindenes.com>, and others\n#\n# This file is part of Ansible\n#\n# Ansible is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# Ansible is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with Ansible.  If not, see <http://www.gnu.org/licenses/>.\n\n# this is a windows documentation stub.  actual code lives in the .ps1\n# file of the same name\n\nDOCUMENTATION = '''\n---\nmodule: win_package\nversion_added: \"1.7\"\nshort_description: Installs/Uninstalls a installable package, either from local file system or url\ndescription:\n     - Installs or uninstalls a package\noptions:\n  path:\n    description:\n      - Location of the package to be installed (either on file system, network share or url)\n    required: true\n    default: null\n    aliases: []\n  name:\n    description:\n      - name of the package. Just for logging reasons, will use the value of path if name isn't specified\n    required: false\n    default: null\n    aliases: []\n  product_id:\n    description:\n      - product id of the installed package (used for checking if already installed)\n    required: false\n    default: null\n    aliases: []\n  arguments:\n    description:\n      - Any arguments the installer needs\n    default: null\n    aliases: []\n  state:\n    description:\n      - Install or Uninstall\n    choices:\n      - present\n      - absent\n    default: present\n    aliases: [ensure]\n  user_name:\n    description:\n      - Username of an account with access to the package if its located on a file share. Only needed if the winrm user doesn't have access to the package. Also specify user_password for this to function properly.\n    default: null\n    aliases: []\n  user_password:\n    description:\n      - Password of an account with access to the package if its located on a file share. Only needed if the winrm user doesn't have access to the package. Also specify user_name for this to function properly.\n    default: null\n    aliases: []\nauthor: Trond Hindenes\n'''\n\nEXAMPLES = '''\n# Playbook example\n  - name: Install the vc thingy\n    win_package:\n      name=\"Microsoft Visual C thingy\"\n      path=\"http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe\"\n      ProductId=\"{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}\"\n      Arguments=\"/install /passive /norestart\"\n\n\n'''\n\n", "path": "windows/win_package.py"}], "after_files": [{"content": "#!/usr/bin/python\n# -*- coding: utf-8 -*-\n\n# (c) 2014, Trond Hindenes <trond@hindenes.com>, and others\n#\n# This file is part of Ansible\n#\n# Ansible is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# Ansible is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with Ansible.  If not, see <http://www.gnu.org/licenses/>.\n\n# this is a windows documentation stub.  actual code lives in the .ps1\n# file of the same name\n\nDOCUMENTATION = '''\n---\nmodule: win_package\nversion_added: \"1.7\"\nauthor: Trond Hindenes\nshort_description: Installs/Uninstalls a installable package, either from local file system or url\ndescription:\n     - Installs or uninstalls a package\noptions:\n  path:\n    description:\n      - Location of the package to be installed (either on file system, network share or url)\n    required: true\n    default: null\n    aliases: []\n  name:\n    description:\n      - name of the package. Just for logging reasons, will use the value of path if name isn't specified\n    required: false\n    default: null\n    aliases: []\n  product_id:\n    description:\n      - product id of the installed package (used for checking if already installed)\n    required: true\n    default: null\n    aliases: [productid]\n  arguments:\n    description:\n      - Any arguments the installer needs\n    default: null\n    aliases: []\n  state:\n    description:\n      - Install or Uninstall\n    choices:\n      - present\n      - absent\n    default: present\n    aliases: [ensure]\n  user_name:\n    description:\n      - Username of an account with access to the package if its located on a file share. Only needed if the winrm user doesn't have access to the package. Also specify user_password for this to function properly.\n    default: null\n    aliases: []\n  user_password:\n    description:\n      - Password of an account with access to the package if its located on a file share. Only needed if the winrm user doesn't have access to the package. Also specify user_name for this to function properly.\n    default: null\n    aliases: []\nauthor: Trond Hindenes\n'''\n\nEXAMPLES = '''\n# Playbook example\n  - name: Install the vc thingy\n    win_package:\n      name=\"Microsoft Visual C thingy\"\n      path=\"http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe\"\n      Product_Id=\"{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}\"\n      Arguments=\"/install /passive /norestart\"\n\n\n'''\n\n", "path": "windows/win_package.py"}]}