Repository: tenable/pytenable
Issue: Impossible Parameters for Plugin Scan

**Describe the bug**
Not clear how to launch plugin scans using sc.scans.create()
On one hand, it requires a policy_id. However when supplying a policy_id, it states that plugin_id and policy_id can't be simultaneously specified.

**To Reproduce**
```
sc.scans.create('test', 1, targets=['192.168.1.1'], plugin_id=155000)
restfly.errors.APIError: [403: POST] https://REDACTED:443/rest/scan body=b'{"type":"regular","response":"","error_code":146,"error_msg":"Please specify a valid Policy.\\\\n","warnings":[],"timestamp":1646329819}\\n'
```

```
sc.scans.create('test', 1, targets=['192.168.1.1'], policy_id=1000002, plugin_id=155000)
restfly.errors.UnexpectedValueError: specify either a plugin_id or a policy_id for a scan, not both.
```

**System Information (please complete the following information):**
TenableCore
Tenable.sc 5.20
pyTenable 1.4.3
Python 3.8.10

**Additional context**
Similar issue posted here: https://community.tenable.com/s/question/0D53a000087kUQNCA2/when-using-the-tenablesc-api-getting-conflicting-errors-trying-to-create-scan-with-pluginid


Changed files:
tests/sc/test_scans.py, tenable/sc/scans.py

diff --git a/tenable/sc/scans.py b/tenable/sc/scans.py
index 115cbe5..596029e 100644
--- a/tenable/sc/scans.py
+++ b/tenable/sc/scans.py
@@ -163,23 +163,7 @@ class ScanAPI(SCEndpoint):
                 for i in self._check('creds', kw['creds'], list)]
             del(kw['creds'])
 
-        # Lastly, we need to handle the scan types automatically...
-        if 'plugin_id' in kw and 'policy_id' in kw:
-            # if both are specified, something is wrong here and we should throw
-            # an exception.
-            raise UnexpectedValueError(
-                'specify either a plugin_id or a policy_id for a scan, not both.')
-
-        elif 'plugin_id' in kw:
-            # If just the plugin_id is specified, then we are safe to assume
-            # that this is a plugin-based scan.  set the pluginID attribute as
-            # the API would expect and remove the snake cased variant that was
-            # inputted.
-            kw['type'] = 'plugin'
-            kw['pluginID'] = self._check('plugin_id', kw['plugin_id'], int)
-            del(kw['plugin_id'])
-
-        elif 'policy_id' in kw:
+        if 'policy_id' in kw:
             # If just the policy_id is specified, then we are safe to assume
             # that this is a policy-based scan.  set the policy id attribute
             # within the policy document as the API would expect and remove the
@@ -249,8 +233,6 @@ class ScanAPI(SCEndpoint):
                 The default is ``3600`` seconds.
             policy_id (int, optional):
                 The policy id to use for a policy-based scan.
-            plugin_id (int, optional):
-                The plugin id to use for a plugin-based scan.
             reports (list, optional):
                 What reports should be run upon completion of the scan?  Each
                 report dictionary requires an id for the report definition and
@@ -297,8 +279,6 @@ class ScanAPI(SCEndpoint):
         # which of the values is defined.
         if 'policy_id' in kw:
             kw['type'] = 'policy'
-        elif 'plugin_id' in kw:
-            kw['type'] = 'plugin'
 
         scan = self._constructor(**kw)
         return self._api.post('scan', json=scan).json()['response']
diff --git a/tests/sc/test_scans.py b/tests/sc/test_scans.py
index fed8f0d..027faad 100644
--- a/tests/sc/test_scans.py
+++ b/tests/sc/test_scans.py
@@ -372,28 +372,17 @@ def test_scans_constructor_creds_success(security_center):
     assert resp == {'credentials': [{'id': 1}, {'id': 2}]}
 
 
-def test_scans_constructor_both_policy_and_plugin_unexpectedvalueerror(security_center):
-    '''
-    test scans constructor for 'both policy id and plugin id' unexpected value error
-    '''
-    with pytest.raises(UnexpectedValueError):
-        security_center.scans._constructor(plugin_id=1, policy_id=1)
-
-
-def test_scans_constructor_plugin_id_typeerror(security_center):
-    '''
-    test scans constructor for 'plugin id' type error
-    '''
-    with pytest.raises(TypeError):
-        security_center.scans._constructor(plugin_id='nope')
-
-
 def test_scans_constructor_plugin_id_success(security_center):
     '''
     test scans constructor for plugin id success
     '''
-    resp = security_center.scans._constructor(plugin_id=19506)
-    assert resp == {'type': 'plugin', 'pluginID': 19506}
+    resp = security_center.scans._constructor(policy_id=19506)
+    assert resp == {
+        'type': 'policy',
+        'policy': {
+            'id': 19506
+        }
+    }
 
 
 def test_scans_constructor_policy_id_typeerror(security_center):