def list_command_invocations(CommandId=None, InstanceId=None, MaxResults=
    None, NextToken=None, Filters=None, Details=None):
    """
    An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user executes SendCommand against three instances, then a command invocation is created for each requested instance ID. ListCommandInvocations provide status about command execution.
    See also: AWS API Documentation
    
    
    :example: response = client.list_command_invocations(
        CommandId='string',
        InstanceId='string',
        MaxResults=123,
        NextToken='string',
        Filters=[
            {
                'key': 'InvokedAfter'|'InvokedBefore'|'Status',
                'value': 'string'
            },
        ],
        Details=True|False
    )
    
    
    :type CommandId: string
    :param CommandId: (Optional) The invocations for a specific command ID.

    :type InstanceId: string
    :param InstanceId: (Optional) The command execution details for a specific instance ID.

    :type MaxResults: integer
    :param MaxResults: (Optional) The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

    :type NextToken: string
    :param NextToken: (Optional) The token for the next set of items to return. (You received this token from a previous call.)

    :type Filters: list
    :param Filters: (Optional) One or more filters. Use a filter to return a more specific list of results.
            (dict) --Describes a command filter.
            key (string) -- [REQUIRED]The name of the filter. For example, requested date and time.
            value (string) -- [REQUIRED]The filter value. For example: June 30, 2015.
            
            

    :type Details: boolean
    :param Details: (Optional) If set this returns the response of the command executions and any command output. By default this is set to False.

    :rtype: dict
    :return: {
        'CommandInvocations': [
            {
                'CommandId': 'string',
                'InstanceId': 'string',
                'InstanceName': 'string',
                'Comment': 'string',
                'DocumentName': 'string',
                'RequestedDateTime': datetime(2015, 1, 1),
                'Status': 'Pending'|'InProgress'|'Delayed'|'Success'|'Cancelled'|'TimedOut'|'Failed'|'Cancelling',
                'StatusDetails': 'string',
                'TraceOutput': 'string',
                'StandardOutputUrl': 'string',
                'StandardErrorUrl': 'string',
                'CommandPlugins': [
                    {
                        'Name': 'string',
                        'Status': 'Pending'|'InProgress'|'Success'|'TimedOut'|'Cancelled'|'Failed',
                        'StatusDetails': 'string',
                        'ResponseCode': 123,
                        'ResponseStartDateTime': datetime(2015, 1, 1),
                        'ResponseFinishDateTime': datetime(2015, 1, 1),
                        'Output': 'string',
                        'StandardOutputUrl': 'string',
                        'StandardErrorUrl': 'string',
                        'OutputS3Region': 'string',
                        'OutputS3BucketName': 'string',
                        'OutputS3KeyPrefix': 'string'
                    },
                ],
                'ServiceRole': 'string',
                'NotificationConfig': {
                    'NotificationArn': 'string',
                    'NotificationEvents': [
                        'All'|'InProgress'|'Success'|'TimedOut'|'Cancelled'|'Failed',
                    ],
                    'NotificationType': 'Command'|'Invocation'
                }
            },
        ],
        'NextToken': 'string'
    }
    
    
    :returns: 
    Pending: The command has not been sent to the instance.
    In Progress: The command has been sent to the instance but has not reached a terminal state.
    Success: The execution of the command or plugin was successfully completed. This is a terminal state.
    Delivery Timed Out: The command was not delivered to the instance before the delivery timeout expired. Delivery timeouts do not count against the parent command's MaxErrors limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.
    Execution Timed Out: Command execution started on the instance, but the execution was not complete before the execution timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.
    Failed: The command was not successful on the instance. For a plugin, this indicates that the result code was not zero. For a command invocation, this indicates that the result code for one or more plugins was not zero. Invocation failures count against the MaxErrors limit of the parent command. This is a terminal state.
    Canceled: The command was terminated before it was completed. This is a terminal state.
    Undeliverable: The command can't be delivered to the instance. The instance might not exist or might not be responding. Undeliverable invocations don't count against the parent command's MaxErrors limit and don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.
    Terminated: The parent command exceeded its MaxErrors limit and subsequent command invocations were canceled by the system. This is a terminal state.
    
    """
    pass
