def list_tapes(TapeARNs=None, Marker=None, Limit=None):
    """
    Lists virtual tapes in your virtual tape library (VTL) and your virtual tape shelf (VTS). You specify the tapes to list by specifying one or more tape Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation lists all virtual tapes in both your VTL and VTS.
    This operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the Limit parameter in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a Marker element that you can use in your subsequent request to retrieve the next set of tapes. This operation is only supported in the tape gateway architecture.
    See also: AWS API Documentation
    
    
    :example: response = client.list_tapes(
        TapeARNs=[
            'string',
        ],
        Marker='string',
        Limit=123
    )
    
    
    :type TapeARNs: list
    :param TapeARNs: The Amazon Resource Name (ARN) of each of the tapes you want to list. If you don't specify a tape ARN, the response lists all tapes in both your VTL and VTS.
            (string) --
            

    :type Marker: string
    :param Marker: A string that indicates the position at which to begin the returned list of tapes.

    :type Limit: integer
    :param Limit: An optional number limit for the tapes in the list returned by this call.

    :rtype: dict
    :return: {
        'TapeInfos': [
            {
                'TapeARN': 'string',
                'TapeBarcode': 'string',
                'TapeSizeInBytes': 123,
                'TapeStatus': 'string',
                'GatewayARN': 'string'
            },
        ],
        'Marker': 'string'
    }
    
    
    :returns: 
    ListTapesOutput$Marker
    ListTapesOutput$VolumeInfos
    
    """
    pass
