# sfn-execution-searcher

Automate searching through [AWS Step Functions](https://aws.amazon.com/step-functions/) executions using [boto3](https://pypi.org/project/boto3/) and [list_executions()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/stepfunctions.html#SFN.Client.list_executions).

```
usage: search.py [-h] [--status {RUNNING,SUCCEEDED,FAILED,TIMED_OUT,ABORTED}] [--start-date START_DATE] [--start-date-fmt START_DATE_FMT] [--end-date END_DATE] [--end-date-fmt END_DATE_FMT] [--match MATCH]
                 [--match-type {CONTAINS,STARTSWITH,ENDSWITH,NOT_CONTAINS,NOT_STARTSWITH,NOT_ENDSWITH}] [--match-loc {NAME,INPUT,OUTPUT,CAUSE,ERROR}] [--max-results MAX_RESULTS]
                 sfn_name

positional arguments:
  sfn_name              Name of SFN to search executions

optional arguments:
  -h, --help            show this help message and exit
  --status {RUNNING,SUCCEEDED,FAILED,TIMED_OUT,ABORTED}
                        Filter in executions of status type (default: None)
  --start-date START_DATE
                        Ignore until this date + time (default: None)
  --start-date-fmt START_DATE_FMT
                        Format for --start-date using datetime.strptime (default: %Y-%m-%d)
  --end-date END_DATE   Search until this date + time (default: None)
  --end-date-fmt END_DATE_FMT
                        Format for --end-date using datetime.strptime (default: %Y-%m-%d)
  --match MATCH         Match value, use "|" as "OR" statement (default: None)
  --match-type {CONTAINS,STARTSWITH,ENDSWITH,NOT_CONTAINS,NOT_STARTSWITH,NOT_ENDSWITH}
                        Matching strategy (default: CONTAINS)
  --match-loc {NAME,INPUT,OUTPUT,CAUSE,ERROR}
                        Data to examine for match (default: NAME)
  --max-results MAX_RESULTS
                        Exit after finding number of matches (default: None)
```
