def cancel_steps(ClusterId=None, StepIds=None):
    """
    Cancels a pending step or steps in a running cluster. Available only in Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous; it does not guarantee a step will be canceled, even if the request is successfully submitted. You can only cancel steps that are in a PENDING state.
    See also: AWS API Documentation
    
    
    :example: response = client.cancel_steps(
        ClusterId='string',
        StepIds=[
            'string',
        ]
    )
    
    
    :type ClusterId: string
    :param ClusterId: The ClusterID for which specified steps will be canceled. Use RunJobFlow and ListClusters to get ClusterIDs.

    :type StepIds: list
    :param StepIds: The list of StepIDs to cancel. Use ListSteps to get steps and their states for the specified cluster.
            (string) --
            

    :rtype: dict
    :return: {
        'CancelStepsInfoList': [
            {
                'StepId': 'string',
                'Status': 'SUBMITTED'|'FAILED',
                'Reason': 'string'
            },
        ]
    }
    
    
    """
    pass
