def describe_game_session_details(FleetId=None, GameSessionId=None, AliasId
    =None, StatusFilter=None, Limit=None, NextToken=None):
    """
    Retrieves properties, including the protection policy in force, for one or more game sessions. This action can be used in several ways: (1) provide a GameSessionId or GameSessionArn to request details for a specific game session; (2) provide either a FleetId or an AliasId to request properties for all game sessions running on a fleet.
    To get game session record(s), specify just one of the following: game session ID, fleet ID, or alias ID. You can filter this request by game session status. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a  GameSessionDetail object is returned for each session matching the request.
    See also: AWS API Documentation
    
    
    :example: response = client.describe_game_session_details(
        FleetId='string',
        GameSessionId='string',
        AliasId='string',
        StatusFilter='string',
        Limit=123,
        NextToken='string'
    )
    
    
    :type FleetId: string
    :param FleetId: Unique identifier for a fleet to retrieve all game sessions active on the fleet.

    :type GameSessionId: string
    :param GameSessionId: Unique identifier for the game session to retrieve.

    :type AliasId: string
    :param AliasId: Unique identifier for an alias associated with the fleet to retrieve all game sessions for.

    :type StatusFilter: string
    :param StatusFilter: Game session status to filter results on. Possible game session statuses include ACTIVE, TERMINATED , ACTIVATING and TERMINATING (the last two are transitory).

    :type Limit: integer
    :param Limit: Maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

    :type NextToken: string
    :param NextToken: Token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this action. To specify the start of the result set, do not specify a value.

    :rtype: dict
    :return: {
        'GameSessionDetails': [
            {
                'GameSession': {
                    'GameSessionId': 'string',
                    'Name': 'string',
                    'FleetId': 'string',
                    'CreationTime': datetime(2015, 1, 1),
                    'TerminationTime': datetime(2015, 1, 1),
                    'CurrentPlayerSessionCount': 123,
                    'MaximumPlayerSessionCount': 123,
                    'Status': 'ACTIVE'|'ACTIVATING'|'TERMINATED'|'TERMINATING'|'ERROR',
                    'GameProperties': [
                        {
                            'Key': 'string',
                            'Value': 'string'
                        },
                    ],
                    'IpAddress': 'string',
                    'Port': 123,
                    'PlayerSessionCreationPolicy': 'ACCEPT_ALL'|'DENY_ALL',
                    'CreatorId': 'string'
                },
                'ProtectionPolicy': 'NoProtection'|'FullProtection'
            },
        ],
        'NextToken': 'string'
    }
    
    
    :returns: 
    NoProtection  The game session can be terminated during a scale-down event.
    FullProtection  If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event.
    
    """
    pass
