def describe_volume_status(DryRun=None, VolumeIds=None, Filters=None,
    NextToken=None, MaxResults=None):
    """
    Describes the status of the specified volumes. Volume status provides the result of the checks performed on your volumes to determine events that can impair the performance of your volumes. The performance of a volume can be affected if an issue occurs on the volume's underlying host. If the volume's underlying host experiences a power outage or system issue, after the system is restored, there could be data inconsistencies on the volume. Volume events notify you if this occurs. Volume actions notify you if any action needs to be taken in response to the event.
    The DescribeVolumeStatus operation provides the following information about the specified volumes:
    See also: AWS API Documentation
    
    Examples
    This example describes the status for the volume vol-1234567890abcdef0.
    Expected Output:
    This example describes the status for all volumes that are impaired. In this example output, there are no impaired volumes.
    Expected Output:
    
    :example: response = client.describe_volume_status(
        DryRun=True|False,
        VolumeIds=[
            'string',
        ],
        Filters=[
            {
                'Name': 'string',
                'Values': [
                    'string',
                ]
            },
        ],
        NextToken='string',
        MaxResults=123
    )
    
    
    :type DryRun: boolean
    :param DryRun: Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation . Otherwise, it is UnauthorizedOperation .

    :type VolumeIds: list
    :param VolumeIds: One or more volume IDs.
            Default: Describes all your volumes.
            (string) --
            

    :type Filters: list
    :param Filters: One or more filters.
            action.code - The action code for the event (for example, enable-volume-io ).
            action.description - A description of the action.
            action.event-id - The event ID associated with the action.
            availability-zone - The Availability Zone of the instance.
            event.description - A description of the event.
            event.event-id - The event ID.
            event.event-type - The event type (for io-enabled : passed | failed ; for io-performance : io-performance:degraded | io-performance:severely-degraded | io-performance:stalled ).
            event.not-after - The latest end time for the event.
            event.not-before - The earliest start time for the event.
            volume-status.details-name - The cause for volume-status.status (io-enabled | io-performance ).
            volume-status.details-status - The status of volume-status.details-name (for io-enabled : passed | failed ; for io-performance : normal | degraded | severely-degraded | stalled ).
            volume-status.status - The status of the volume (ok | impaired | warning | insufficient-data ).
            (dict) --A filter name and value pair that is used to return a more specific list of results. Filters can be used to match a set of resources by various criteria, such as tags, attributes, or IDs.
            Name (string) --The name of the filter. Filter names are case-sensitive.
            Values (list) --One or more filter values. Filter values are case-sensitive.
            (string) --
            
            

    :type NextToken: string
    :param NextToken: The NextToken value to include in a future DescribeVolumeStatus request. When the results of the request exceed MaxResults , this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

    :type MaxResults: integer
    :param MaxResults: The maximum number of volume results returned by DescribeVolumeStatus in paginated output. When this parameter is used, the request only returns MaxResults results in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another request with the returned NextToken value. This value can be between 5 and 1000; if MaxResults is given a value larger than 1000, only 1000 results are returned. If this parameter is not used, then DescribeVolumeStatus returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.

    :rtype: dict
    :return: {
        'VolumeStatuses': [
            {
                'VolumeId': 'string',
                'AvailabilityZone': 'string',
                'VolumeStatus': {
                    'Status': 'ok'|'impaired'|'insufficient-data',
                    'Details': [
                        {
                            'Name': 'io-enabled'|'io-performance',
                            'Status': 'string'
                        },
                    ]
                },
                'Events': [
                    {
                        'EventType': 'string',
                        'Description': 'string',
                        'NotBefore': datetime(2015, 1, 1),
                        'NotAfter': datetime(2015, 1, 1),
                        'EventId': 'string'
                    },
                ],
                'Actions': [
                    {
                        'Code': 'string',
                        'Description': 'string',
                        'EventType': 'string',
                        'EventId': 'string'
                    },
                ]
            },
        ],
        'NextToken': 'string'
    }
    
    
    """
    pass
