def get_records(ShardIterator=None, Limit=None):
    """
    Retrieves the stream records from a given shard.
    Specify a shard iterator using the ShardIterator parameter. The shard iterator specifies the position in the shard from which you want to start reading stream records sequentially. If there are no stream records available in the portion of the shard that the iterator points to, GetRecords returns an empty list. Note that it might take multiple calls to get to a portion of the shard that contains stream records.
    See also: AWS API Documentation
    
    Examples
    The following example retrieves all the stream records from a shard.
    Expected Output:
    
    :example: response = client.get_records(
        ShardIterator='string',
        Limit=123
    )
    
    
    :type ShardIterator: string
    :param ShardIterator: [REQUIRED]
            A shard iterator that was retrieved from a previous GetShardIterator operation. This iterator can be used to access the stream records in this shard.
            

    :type Limit: integer
    :param Limit: The maximum number of records to return from the shard. The upper limit is 1000.

    :rtype: dict
    :return: {
        'Records': [
            {
                'eventID': 'string',
                'eventName': 'INSERT'|'MODIFY'|'REMOVE',
                'eventVersion': 'string',
                'eventSource': 'string',
                'awsRegion': 'string',
                'dynamodb': {
                    'ApproximateCreationDateTime': datetime(2015, 1, 1),
                    'Keys': {
                        'string': {
                            'S': 'string',
                            'N': 'string',
                            'B': b'bytes',
                            'SS': [
                                'string',
                            ],
                            'NS': [
                                'string',
                            ],
                            'BS': [
                                b'bytes',
                            ],
                            'M': {
                                'string': {'... recursive ...'}
                            },
                            'L': [
                                {'... recursive ...'},
                            ],
                            'NULL': True|False,
                            'BOOL': True|False
                        }
                    },
                    'NewImage': {
                        'string': {
                            'S': 'string',
                            'N': 'string',
                            'B': b'bytes',
                            'SS': [
                                'string',
                            ],
                            'NS': [
                                'string',
                            ],
                            'BS': [
                                b'bytes',
                            ],
                            'M': {
                                'string': {'... recursive ...'}
                            },
                            'L': [
                                {'... recursive ...'},
                            ],
                            'NULL': True|False,
                            'BOOL': True|False
                        }
                    },
                    'OldImage': {
                        'string': {
                            'S': 'string',
                            'N': 'string',
                            'B': b'bytes',
                            'SS': [
                                'string',
                            ],
                            'NS': [
                                'string',
                            ],
                            'BS': [
                                b'bytes',
                            ],
                            'M': {
                                'string': {'... recursive ...'}
                            },
                            'L': [
                                {'... recursive ...'},
                            ],
                            'NULL': True|False,
                            'BOOL': True|False
                        }
                    },
                    'SequenceNumber': 'string',
                    'SizeBytes': 123,
                    'StreamViewType': 'NEW_IMAGE'|'OLD_IMAGE'|'NEW_AND_OLD_IMAGES'|'KEYS_ONLY'
                },
                'userIdentity': {
                    'PrincipalId': 'string',
                    'Type': 'string'
                }
            },
        ],
        'NextShardIterator': 'string'
    }
    
    
    :returns: 
    INSERT - a new item was added to the table.
    MODIFY - one or more of an existing item's attributes were modified.
    REMOVE - the item was deleted from the table
    
    """
    pass
