Delete Cloud Formation stacks

def delete(stack_ref: List[str],
           region: str, dry_run: bool, force: bool, remote: str):
    """Delete Cloud Formation stacks"""
    lizzy = setup_lizzy_client(remote)
    stack_refs = get_stack_refs(stack_ref)
    all_with_version = all(stack.version is not None
                           for stack in stack_refs)

    # this is misleading but it's the current behaviour of senza
    # TODO Lizzy list (stack_refs) to see if it actually matches more than one stack
    # to match senza behaviour
    if (not all_with_version and not dry_run and not force):
        fatal_error(
            'Error: {} matching stacks found. '.format(len(stack_refs)) +
            'Please use the "--force" flag if you really want to delete multiple stacks.')

    # TODO pass force option to agent

    output = ''
    for stack in stack_refs:
        if stack.version is not None:
            stack_id = '{stack.name}-{stack.version}'.format(stack=stack)
        else:
            stack_id = stack.name

        with Action("Requesting stack '{stack_id}' deletion..",
                    stack_id=stack_id):
            output = lizzy.delete(stack_id, region=region, dry_run=dry_run)

    print(output)