def get_command_invocation(CommandId=None, InstanceId=None, PluginName=None):
    """
    Returns detailed information about command execution for an invocation or plugin.
    See also: AWS API Documentation
    
    
    :example: response = client.get_command_invocation(
        CommandId='string',
        InstanceId='string',
        PluginName='string'
    )
    
    
    :type CommandId: string
    :param CommandId: [REQUIRED]
            (Required) The parent command ID of the invocation plugin.
            

    :type InstanceId: string
    :param InstanceId: [REQUIRED]
            (Required) The ID of the managed instance targeted by the command. A managed instance can be an Amazon EC2 instance or an instance in your hybrid environment that is configured for Systems Manager.
            

    :type PluginName: string
    :param PluginName: (Optional) The name of the plugin for which you want detailed results. If the document contains only one plugin, the name can be omitted and the details will be returned.

    :rtype: dict
    :return: {
        'CommandId': 'string',
        'InstanceId': 'string',
        'Comment': 'string',
        'DocumentName': 'string',
        'PluginName': 'string',
        'ResponseCode': 123,
        'ExecutionStartDateTime': 'string',
        'ExecutionElapsedTime': 'string',
        'ExecutionEndDateTime': 'string',
        'Status': 'Pending'|'InProgress'|'Delayed'|'Success'|'Cancelled'|'TimedOut'|'Failed'|'Cancelling',
        'StatusDetails': 'string',
        'StandardOutputContent': 'string',
        'StandardOutputUrl': 'string',
        'StandardErrorContent': 'string',
        'StandardErrorUrl': '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.
    Delayed: The system attempted to send the command to the target, but the target was not available. The instance might not be available because of network issues, the instance was stopped, etc. The system will try to deliver the command again.
    Success: The command or plugin was executed successfully. 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: The command started to execute on the instance, but the execution was not complete before the timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.
    Failed: The command wasn't executed successfully 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
