def create_request_parameters(parent, request_model, params=None, index=None):
    if params is None:
        params = {}

    for param in request_model.params:
        source = param.source
        target = param.target

        if source == 'identifier':
            # Resource identifier, e.g. queue.url
            value = getattr(parent, xform_name(param.name))
        elif source == 'data':
            # If this is a data member then it may incur a load
            # action before returning the value.
            value = get_data_member(parent, param.path)
        elif source in ['string', 'integer', 'boolean']:
            # These are hard-coded values in the definition
            value = param.value
        elif source == 'input':
            # This is provided by the user, so ignore it here
            continue
        else:
            raise NotImplementedError(
                'Unsupported source type: {0}'.format(source))

        build_param_structure(params, target, value, index)

    return params
Test if a previous upload fault is detected in calling .put.
dataset/ETHPy150Open boto/boto3/boto3/resources/params.py/create_request_parameters--crossover with--dataset/ETHPy150Open wal-e/wal-e/tests/test_tar_upload_pool.py/test_fault_midstream