def get_template(StackName=None, ChangeSetName=None, TemplateStage=None):
    """
    Returns the template body for a specified stack. You can get the template for running or deleted stacks.
    For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted.
    See also: AWS API Documentation
    
    
    :example: response = client.get_template(
        StackName='string',
        ChangeSetName='string',
        TemplateStage='Original'|'Processed'
    )
    
    
    :type StackName: string
    :param StackName: The name or the unique stack ID that is associated with the stack, which are not always interchangeable:
            Running stacks: You can specify either the stack's name or its unique stack ID.
            Deleted stacks: You must specify the unique stack ID.
            Default: There is no default value.
            

    :type ChangeSetName: string
    :param ChangeSetName: The name or Amazon Resource Name (ARN) of a change set for which AWS CloudFormation returns the associated template. If you specify a name, you must also specify the StackName .

    :type TemplateStage: string
    :param TemplateStage: For templates that include transforms, the stage of the template that AWS CloudFormation returns. To get the user-submitted template, specify Original . To get the template after AWS CloudFormation has processed all transforms, specify Processed .
            If the template doesn't include transforms, Original and Processed return the same template. By default, AWS CloudFormation specifies Original .
            

    :rtype: dict
    :return: {
        'TemplateBody': {},
        'StagesAvailable': [
            'Original'|'Processed',
        ]
    }
    
    
    :returns: 
    (string) --
    
    """
    pass
