Repository: getmoto/moto

Issue:
Support service API call "describe_cases" requires caseIdList argument
## Description

The moto support service `describe_cases` requires a `caseIdList` argument, but this is actually an optional argument per the AWS CLI.  This "requirement" means there isn't a good way to get a list of the case IDs.

Per the AWS CLI:  https://awscli.amazonaws.com/v2/documentation/api/latest/reference/support/describe-cases.html

## Environment

moto version 2.0.3 (released today)

## To Reproduce

In Window 1:
```
python -m pip install moto[server]
moto_server support
```

In Window 2:
```
# Create a case:
export AWS_ACCESS_KEY_ID=test; export AWS_SECRET_ACCESS_KEY=test; aws --endpoint-url="http://localhost:5000" support create-case --subject "Moto test" --communication-body "This is a test, this is a test ..."

# List the case:
export AWS_ACCESS_KEY_ID=test; export AWS_SECRET_ACCESS_KEY=test; aws --endpoint-url="http://localhost:5000" support describe-cases --after-time "2021-03-29-T01:00:00.001Z"
```

Note:  instead of `after-time`,  one of the other arguments (other than case-id-list) could be used, e.g. `language`.

## Expected to happen

Expected to see a list of cases that were created after the given `after-time`.

## Actually happened

```
An error occurred (500) when calling the DescribeCases operation (reached max retries: 2): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>
```

## Notes

The problem can be seen here in `moto/support/models.py(202)describe_cases()`:
```
def describe_cases(
       self,
       case_id_list,
       display_id,
       after_time,
       before_time,
       language,
      include_communications,
):
      cases = []
	
      for case in case_id_list:     <-----------------------------------
            self.advance_case_status(case)
```


Discussion:

Resolving patch:
diff --git a/moto/support/models.py b/moto/support/models.py
--- a/moto/support/models.py
+++ b/moto/support/models.py
@@ -198,8 +198,9 @@ def describe_cases(
         include_communications,
     ):
         cases = []
+        requested_case_ids = case_id_list or self.cases.keys()
 
-        for case in case_id_list:
+        for case in requested_case_ids:
             self.advance_case_status(case)
             self.advance_case_severity_codes(case)
             formatted_case = {


Test patch:
diff --git a/tests/test_support/test_support.py b/tests/test_support/test_support.py
--- a/tests/test_support/test_support.py
+++ b/tests/test_support/test_support.py
@@ -396,6 +396,33 @@ def test_support_created_case_can_be_described_without_max_results_or_next_token
     actual_case_id.should.equal(value)
 
 
+@mock_support
+def test_support_created_case_can_be_described_without_params():
+    """
+    On creating a support request it can be described
+    """
+
+    client = boto3.client("support", "us-east-1")
+
+    describe_cases_response = client.describe_cases()
+    describe_cases_response["cases"].should.equal([])
+
+    client.create_case(
+        subject="test_subject",
+        serviceCode="test_service_code",
+        severityCode="low",
+        categoryCode="test_category_code",
+        communicationBody="test_communication_body",
+        ccEmailAddresses=["test_email_cc",],
+        language="test_language",
+        issueType="test_issue_type",
+        attachmentSetId="test_attachment_set_id",
+    )
+
+    describe_cases_response = client.describe_cases()
+    describe_cases_response["cases"].should.have.length_of(1)
+
+
 @mock_support
 def test_support_created_case_cc_email_correct():
     """