def describe_change_set(ChangeSetName=None, StackName=None, NextToken=None):
    """
    Returns the inputs for the change set and a list of changes that AWS CloudFormation will make if you execute the change set. For more information, see Updating Stacks Using Change Sets in the AWS CloudFormation User Guide.
    See also: AWS API Documentation
    
    
    :example: response = client.describe_change_set(
        ChangeSetName='string',
        StackName='string',
        NextToken='string'
    )
    
    
    :type ChangeSetName: string
    :param ChangeSetName: [REQUIRED]
            The name or Amazon Resource Name (ARN) of the change set that you want to describe.
            

    :type StackName: string
    :param StackName: If you specified the name of a change set, specify the stack name or ID (ARN) of the change set you want to describe.

    :type NextToken: string
    :param NextToken: A string (provided by the DescribeChangeSet response output) that identifies the next page of information that you want to retrieve.

    :rtype: dict
    :return: {
        'ChangeSetName': 'string',
        'ChangeSetId': 'string',
        'StackId': 'string',
        'StackName': 'string',
        'Description': 'string',
        'Parameters': [
            {
                'ParameterKey': 'string',
                'ParameterValue': 'string',
                'UsePreviousValue': True|False
            },
        ],
        'CreationTime': datetime(2015, 1, 1),
        'ExecutionStatus': 'UNAVAILABLE'|'AVAILABLE'|'EXECUTE_IN_PROGRESS'|'EXECUTE_COMPLETE'|'EXECUTE_FAILED'|'OBSOLETE',
        'Status': 'CREATE_PENDING'|'CREATE_IN_PROGRESS'|'CREATE_COMPLETE'|'DELETE_COMPLETE'|'FAILED',
        'StatusReason': 'string',
        'NotificationARNs': [
            'string',
        ],
        'Capabilities': [
            'CAPABILITY_IAM'|'CAPABILITY_NAMED_IAM',
        ],
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'Changes': [
            {
                'Type': 'Resource',
                'ResourceChange': {
                    'Action': 'Add'|'Modify'|'Remove',
                    'LogicalResourceId': 'string',
                    'PhysicalResourceId': 'string',
                    'ResourceType': 'string',
                    'Replacement': 'True'|'False'|'Conditional',
                    'Scope': [
                        'Properties'|'Metadata'|'CreationPolicy'|'UpdatePolicy'|'DeletionPolicy'|'Tags',
                    ],
                    'Details': [
                        {
                            'Target': {
                                'Attribute': 'Properties'|'Metadata'|'CreationPolicy'|'UpdatePolicy'|'DeletionPolicy'|'Tags',
                                'Name': 'string',
                                'RequiresRecreation': 'Never'|'Conditionally'|'Always'
                            },
                            'Evaluation': 'Static'|'Dynamic',
                            'ChangeSource': 'ResourceReference'|'ParameterReference'|'ResourceAttribute'|'DirectModification'|'Automatic',
                            'CausingEntity': 'string'
                        },
                    ]
                }
            },
        ],
        'NextToken': 'string'
    }
    
    
    :returns: 
    (string) --
    
    """
    pass
