def describe_application(ApplicationName=None):
    """
    Returns information about a specific Amazon Kinesis Analytics application.
    If you want to retrieve a list of all applications in your account, use the  ListApplications operation.
    This operation requires permissions to perform the kinesisanalytics:DescribeApplication action. You can use DescribeApplication to get the current application versionId, which you need to call other operations such as Update .
    See also: AWS API Documentation
    
    
    :example: response = client.describe_application(
        ApplicationName='string'
    )
    
    
    :type ApplicationName: string
    :param ApplicationName: [REQUIRED]
            Name of the application.
            

    :rtype: dict
    :return: {
        'ApplicationDetail': {
            'ApplicationName': 'string',
            'ApplicationDescription': 'string',
            'ApplicationARN': 'string',
            'ApplicationStatus': 'DELETING'|'STARTING'|'STOPPING'|'READY'|'RUNNING'|'UPDATING',
            'CreateTimestamp': datetime(2015, 1, 1),
            'LastUpdateTimestamp': datetime(2015, 1, 1),
            'InputDescriptions': [
                {
                    'InputId': 'string',
                    'NamePrefix': 'string',
                    'InAppStreamNames': [
                        'string',
                    ],
                    'KinesisStreamsInputDescription': {
                        'ResourceARN': 'string',
                        'RoleARN': 'string'
                    },
                    'KinesisFirehoseInputDescription': {
                        'ResourceARN': 'string',
                        'RoleARN': 'string'
                    },
                    'InputSchema': {
                        'RecordFormat': {
                            'RecordFormatType': 'JSON'|'CSV',
                            'MappingParameters': {
                                'JSONMappingParameters': {
                                    'RecordRowPath': 'string'
                                },
                                'CSVMappingParameters': {
                                    'RecordRowDelimiter': 'string',
                                    'RecordColumnDelimiter': 'string'
                                }
                            }
                        },
                        'RecordEncoding': 'string',
                        'RecordColumns': [
                            {
                                'Name': 'string',
                                'Mapping': 'string',
                                'SqlType': 'string'
                            },
                        ]
                    },
                    'InputParallelism': {
                        'Count': 123
                    },
                    'InputStartingPositionConfiguration': {
                        'InputStartingPosition': 'NOW'|'TRIM_HORIZON'|'LAST_STOPPED_POINT'
                    }
                },
            ],
            'OutputDescriptions': [
                {
                    'OutputId': 'string',
                    'Name': 'string',
                    'KinesisStreamsOutputDescription': {
                        'ResourceARN': 'string',
                        'RoleARN': 'string'
                    },
                    'KinesisFirehoseOutputDescription': {
                        'ResourceARN': 'string',
                        'RoleARN': 'string'
                    },
                    'DestinationSchema': {
                        'RecordFormatType': 'JSON'|'CSV'
                    }
                },
            ],
            'ReferenceDataSourceDescriptions': [
                {
                    'ReferenceId': 'string',
                    'TableName': 'string',
                    'S3ReferenceDataSourceDescription': {
                        'BucketARN': 'string',
                        'FileKey': 'string',
                        'ReferenceRoleARN': 'string'
                    },
                    'ReferenceSchema': {
                        'RecordFormat': {
                            'RecordFormatType': 'JSON'|'CSV',
                            'MappingParameters': {
                                'JSONMappingParameters': {
                                    'RecordRowPath': 'string'
                                },
                                'CSVMappingParameters': {
                                    'RecordRowDelimiter': 'string',
                                    'RecordColumnDelimiter': 'string'
                                }
                            }
                        },
                        'RecordEncoding': 'string',
                        'RecordColumns': [
                            {
                                'Name': 'string',
                                'Mapping': 'string',
                                'SqlType': 'string'
                            },
                        ]
                    }
                },
            ],
            'ApplicationCode': 'string',
            'ApplicationVersionId': 123
        }
    }
    
    
    :returns: 
    LATEST - Start reading just after the most recent record in the stream.
    TRIM_HORIZON - Start reading at the last untrimmed record in the stream, which is the oldest record available in the stream. This option is not available for an Amazon Kinesis Firehose delivery stream.
    LAST_STOPPED_POINT - Resume reading from where the application last stopped reading.
    
    """
    pass
