'Creates |oauth1| request elements.'

@classmethod
def create_request_elements(cls, request_type, credentials, url, params=None, headers=None, body='', method='GET', verifier='', callback=''):

    params = (params or {})
    headers = (headers or {})
    consumer_key = (credentials.consumer_key or '')
    consumer_secret = (credentials.consumer_secret or '')
    token = (credentials.token or '')
    token_secret = (credentials.token_secret or '')
    (url, base_params) = cls._split_url(url)
    params.update(dict(base_params))
    if (request_type == cls.USER_AUTHORIZATION_REQUEST_TYPE):
        if token:
            params['oauth_token'] = token
        else:
            raise OAuth1Error('Credentials    with    valid    token    are    required    to    create    User    Authorization    URL!')
    else:
        if (request_type == cls.REQUEST_TOKEN_REQUEST_TYPE):
            if (consumer_key and consumer_secret and callback):
                params['oauth_consumer_key'] = consumer_key
                params['oauth_callback'] = callback
            else:
                raise OAuth1Error('Credentials    with    valid    consumer_key,    consumer_secret    and    callback    are    required    to    create    Request    Token    URL!')
        elif (request_type == cls.ACCESS_TOKEN_REQUEST_TYPE):
            if (consumer_key and consumer_secret and token and verifier):
                params['oauth_token'] = token
                params['oauth_consumer_key'] = consumer_key
                params['oauth_verifier'] = verifier
            else:
                raise OAuth1Error('Credentials    with    valid    consumer_key,    consumer_secret,    token    and    argument    verifier    are    required    to    create    Access    Token    URL!')
        elif (request_type == cls.PROTECTED_RESOURCE_REQUEST_TYPE):
            if (consumer_key and consumer_secret and token and token_secret):
                params['oauth_token'] = token
                params['oauth_consumer_key'] = consumer_key
            else:
                raise OAuth1Error(('Credentials    with    valid    consumer_key,    ' + 'consumer_secret,    token    and    token_secret    are    required    to    create    Protected    Resources    URL!'))
        params['oauth_signature_method'] = cls._signature_generator.method
        params['oauth_timestamp'] = str(int(time.time()))
        params['oauth_nonce'] = cls.csrf_generator(str(uuid.uuid4()))
        params['oauth_version'] = '1.0'
        params['oauth_signature'] = cls._signature_generator.create_signature(method, url, params, consumer_secret, token_secret)
    request_elements = core.RequestElements(url, method, params, headers, body)
    return cls._x_request_elements_filter(request_type, request_elements, credentials)
