code: func (client *Client) RefreshAccessToken(refreshToken string) (RefreshedTokens, error) {
  	var values url.Values
  
  	switch client.config.UAAGrantType() {
  	case string(constant.GrantTypeClientCredentials):
  		values = client.clientCredentialRefreshBody()
  	case "", string(constant.GrantTypePassword): // CLI used to write empty string for grant type in the case of password; preserve compatibility with old config.json files
  		values = client.refreshTokenBody(refreshToken)
  	}
  
  	body := strings.NewReader(values.Encode())
  
  	request, err := client.newRequest(requestOptions{
  		RequestName: internal.PostOAuthTokenRequest,
  		Header:      http.Header{"Content-Type": {"application/x-www-form-urlencoded"}},
  		Body:        body,
  	})
  	if err != nil {
  		return RefreshedTokens{}, err
  	}
  
  	if client.config.UAAGrantType() != string(constant.GrantTypeClientCredentials) {
  		request.SetBasicAuth(client.config.UAAOAuthClient(), client.config.UAAOAuthClientSecret())
  	}
  
  	var refreshResponse RefreshedTokens
  	response := Response{
  		Result: &refreshResponse,
  	}
  
  	err = client.connection.Make(request, &response)
  	if err != nil {
  		return RefreshedTokens{}, err
  	}
  
  	return refreshResponse, nil
  }
docs: // RefreshAccessToken refreshes the current access token.