Class DataAdapterClient

java.lang.Object
io.getlime.security.powerauth.lib.dataadapter.client.DataAdapterClient

public class DataAdapterClient
extends Object
Data Adapter Client provides methods for communication with the Data Adapter. It uses the RestClient class to handle REST API calls.
Author:
Roman Strobl, roman.strobl@wultra.com
  • Constructor Summary

    Constructors
    Constructor Description
    DataAdapterClient​(com.wultra.core.rest.client.base.RestClientConfiguration restClientConfiguration)
    Create a new client with provided base URL.
    DataAdapterClient​(String serviceBaseUrl)
    Create a new client with provided base URL.
  • Method Summary

    Modifier and Type Method Description
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserAuthenticationResponse> authenticateUser​(String userId, String organizationId, String password, io.getlime.security.powerauth.lib.dataadapter.model.entity.AuthenticationContext authenticationContext, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Perform authentication with provided username and password.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateSmsAuthorizationResponse> createAndSendAuthorizationSms​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String lang, boolean resend)
    Create and send authorization SMS message with new OTP authorization code.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateConsentFormResponse> createConsentForm​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String lang)
    Create OAuth 2.0 consent form.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateImplicitLoginOperationResponse> createImplicitLoginOperation​(String clientId, String[] scopes)
    Create a new login operation from the OAuth 2.0 login context.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.DecorateOperationFormDataResponse> decorateOperationFormData​(String userId, String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Decorate operation form data.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.AfsResponse> executeAfsAction​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, io.getlime.security.powerauth.lib.dataadapter.model.request.AfsRequestParameters afsRequestParameters, Map<String,​Object> extras)
    Execute an anti-fraud system action with information about current step and retrieve response which can override authentication instruments used in current authentication step.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse> fetchUserDetail​(String userId, String organizationId)
    Obtain user details for given user ID.
    io.getlime.core.rest.model.base.response.Response formDataChangedNotification​(io.getlime.security.powerauth.lib.dataadapter.model.entity.FormDataChange formDataChange, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Send a notification about form data change.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.GetPAOperationMappingResponse> getPAOperationMapping​(String userId, String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Get the operation mapping from Next Step operation to PowerAuth operation.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitAuthMethodResponse> initAuthMethod​(String userId, String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Initialize an authentication method.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitConsentFormResponse> initConsentForm​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Initialize OAuth 2.0 consent form.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse> lookupUser​(String username, String organizationId, String clientCertificate, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Lookup user account.
    io.getlime.core.rest.model.base.response.Response operationChangedNotification​(io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationChange operationChange, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Send a notification about operation change.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.SaveConsentFormResponse> saveConsentForm​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, List<io.getlime.security.powerauth.lib.dataadapter.model.entity.ConsentOption> options)
    Save options selected by the user in the OAuth 2.0 consent form.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.SendAuthorizationSmsResponse> sendAuthorizationSms​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String messageId, String authorizationCode, String lang, boolean resend)
    Send authorization SMS message with existing OTP authorization code.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.ValidateConsentFormResponse> validateConsentForm​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String lang, List<io.getlime.security.powerauth.lib.dataadapter.model.entity.ConsentOption> options)
    Validate options selected by the user in the OAuth 2.0 consent form.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifySmsAuthorizationResponse> verifyAuthorizationSms​(String messageId, String authorizationCode, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Verify OTP authorization code for previously generated SMS message.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifySmsAndPasswordResponse> verifyAuthorizationSmsAndPassword​(String messageId, String authorizationCode, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, String password, io.getlime.security.powerauth.lib.dataadapter.model.entity.AuthenticationContext authenticationContext, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Verify OTP authorization code for previously generated SMS message together with user password.
    io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifyCertificateResponse> verifyClientCertificate​(String userId, String organizationId, String clientCertificate, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)
    Verify client TLS certificate.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DataAdapterClient

      public DataAdapterClient​(String serviceBaseUrl) throws DataAdapterClientErrorException
      Create a new client with provided base URL.
      Parameters:
      serviceBaseUrl - REST service base URL.
      Throws:
      DataAdapterClientErrorException - Thrown when REST client initialization fails.
    • DataAdapterClient

      public DataAdapterClient​(com.wultra.core.rest.client.base.RestClientConfiguration restClientConfiguration) throws DataAdapterClientErrorException
      Create a new client with provided base URL.
      Parameters:
      restClientConfiguration - REST service client configuration.
      Throws:
      DataAdapterClientErrorException - Thrown when REST client initialization fails.
  • Method Details

    • lookupUser

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse> lookupUser​(String username, String organizationId, String clientCertificate, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Lookup user account.
      Parameters:
      username - Username for user account which is being looked up.
      organizationId - Organization ID for which the user ID is assigned to.
      clientCertificate - Client TLS certificate.
      operationContext - Operation context.
      Returns:
      Response with user details.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails or user does not exist.
    • authenticateUser

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserAuthenticationResponse> authenticateUser​(String userId, String organizationId, String password, io.getlime.security.powerauth.lib.dataadapter.model.entity.AuthenticationContext authenticationContext, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Perform authentication with provided username and password.
      Parameters:
      userId - User ID of user who is being authenticated.
      organizationId - Organization ID.
      password - Password for this authentication request, optionally encrypted.
      authenticationContext - Authentication context.
      operationContext - Operation context.
      Returns:
      Authentication response is returned in case of successful authentication.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails or authentication fails.
    • fetchUserDetail

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse> fetchUserDetail​(String userId, String organizationId) throws DataAdapterClientErrorException
      Obtain user details for given user ID.
      Parameters:
      userId - User ID for the user to be obtained.
      organizationId - Organization ID.
      Returns:
      A response with user details.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails or user does not exist.
    • initAuthMethod

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitAuthMethodResponse> initAuthMethod​(String userId, String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Initialize an authentication method.
      Parameters:
      userId - User ID.
      organizationId - Organization ID.
      authMethod - Authentication method.
      operationContext - Operation context.
      Returns:
      Response with user details.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • createAndSendAuthorizationSms

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateSmsAuthorizationResponse> createAndSendAuthorizationSms​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String lang, boolean resend) throws DataAdapterClientErrorException
      Create and send authorization SMS message with new OTP authorization code.
      Parameters:
      userId - User ID.
      organizationId - Organization ID.
      accountStatus - User account status.
      authMethod - Authentication method.
      operationContext - Operation context.
      lang - Language for i18n.
      resend - Whether SMS is being resent.
      Returns:
      Response with generated messageId.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails or SMS could not be delivered.
    • sendAuthorizationSms

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.SendAuthorizationSmsResponse> sendAuthorizationSms​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String messageId, String authorizationCode, String lang, boolean resend) throws DataAdapterClientErrorException
      Send authorization SMS message with existing OTP authorization code.
      Parameters:
      userId - User ID.
      organizationId - Organization ID.
      accountStatus - User account status.
      authMethod - Authentication method.
      operationContext - Operation context.
      messageId - Message ID.
      authorizationCode - SMS OTP authorization code.
      lang - Language for i18n.
      resend - Whether SMS is being resent.
      Returns:
      Response with generated messageId.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails or SMS could not be delivered.
    • verifyAuthorizationSms

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifySmsAuthorizationResponse> verifyAuthorizationSms​(String messageId, String authorizationCode, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Verify OTP authorization code for previously generated SMS message.
      Parameters:
      messageId - Message ID.
      authorizationCode - User entered authorization code.
      userId - User ID.
      organizationId - Organization ID.
      accountStatus - User account status.
      operationContext - Operation context.
      Returns:
      Empty response returned when action succeeds.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails or SMS code authorization fails.
    • verifyAuthorizationSmsAndPassword

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifySmsAndPasswordResponse> verifyAuthorizationSmsAndPassword​(String messageId, String authorizationCode, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, String password, io.getlime.security.powerauth.lib.dataadapter.model.entity.AuthenticationContext authenticationContext, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Verify OTP authorization code for previously generated SMS message together with user password.
      Parameters:
      messageId - Message ID.
      authorizationCode - User entered authorization code.
      userId - User ID for this authentication request.
      organizationId - Organization ID for this authentication request.
      password - Password for this authentication request, optionally encrypted.
      accountStatus - Current user account status.
      authenticationContext - Authentication context.
      operationContext - Operation context.
      Returns:
      Empty response returned when action succeeds.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails or authentication/authorization fails.
    • createImplicitLoginOperation

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateImplicitLoginOperationResponse> createImplicitLoginOperation​(String clientId, String[] scopes) throws DataAdapterClientErrorException
      Create a new login operation from the OAuth 2.0 login context.
      Parameters:
      clientId - OAuth 2.0 Client ID.
      scopes - OAuth 2.0 Scopes.
      Returns:
      Information about a new operation.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • getPAOperationMapping

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.GetPAOperationMappingResponse> getPAOperationMapping​(String userId, String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Get the operation mapping from Next Step operation to PowerAuth operation.
      Parameters:
      userId - User ID of the user for this request.
      organizationId - Organization ID for this request.
      authMethod - Authentication method.
      operationContext - Operation context.
      Returns:
      Operation mapping from Next Step operation to PowerAuth operation.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • verifyClientCertificate

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifyCertificateResponse> verifyClientCertificate​(String userId, String organizationId, String clientCertificate, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Verify client TLS certificate.
      Parameters:
      userId - User ID for this authentication request.
      organizationId - Organization ID for this authentication request.
      clientCertificate - Client TLS certificate.
      authMethod - Authentication method.
      accountStatus - Current user account status.
      operationContext - Operation context.
      Returns:
      Empty response returned when action succeeds.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails or authentication/authorization fails.
    • decorateOperationFormData

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.DecorateOperationFormDataResponse> decorateOperationFormData​(String userId, String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Decorate operation form data.
      Parameters:
      userId - User ID of the user for this request.
      organizationId - Organization ID for this request.
      operationContext - Operation context.
      authMethod - Authentication method.
      Returns:
      Decorated operation form data.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • formDataChangedNotification

      public io.getlime.core.rest.model.base.response.Response formDataChangedNotification​(io.getlime.security.powerauth.lib.dataadapter.model.entity.FormDataChange formDataChange, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Send a notification about form data change.
      Parameters:
      formDataChange - Operation form data change.
      userId - User ID.
      organizationId - Organization ID.
      operationContext - Operation context.
      Returns:
      Object response.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • operationChangedNotification

      public io.getlime.core.rest.model.base.response.Response operationChangedNotification​(io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationChange operationChange, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Send a notification about operation change.
      Parameters:
      operationChange - Operation change.
      userId - User ID.
      organizationId - Organization ID.
      operationContext - Operation context.
      Returns:
      Object response.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • initConsentForm

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitConsentFormResponse> initConsentForm​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorException
      Initialize OAuth 2.0 consent form.
      Parameters:
      userId - User ID.
      organizationId - Organization ID.
      operationContext - Operation context.
      Returns:
      Response with information whether consent form should be displayed
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • createConsentForm

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateConsentFormResponse> createConsentForm​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String lang) throws DataAdapterClientErrorException
      Create OAuth 2.0 consent form.
      Parameters:
      userId - User ID.
      organizationId - Organization ID.
      operationContext - Operation context.
      lang - Language of the text in the consent form.
      Returns:
      Consent form with text and options to select by the user.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • validateConsentForm

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.ValidateConsentFormResponse> validateConsentForm​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String lang, List<io.getlime.security.powerauth.lib.dataadapter.model.entity.ConsentOption> options) throws DataAdapterClientErrorException
      Validate options selected by the user in the OAuth 2.0 consent form.
      Parameters:
      userId - User ID.
      organizationId - Organization ID.
      operationContext - Operation context.
      lang - Language of the text in the consent form.
      options - Consent options selected by the user.
      Returns:
      Consent form validation result.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • saveConsentForm

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.SaveConsentFormResponse> saveConsentForm​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, List<io.getlime.security.powerauth.lib.dataadapter.model.entity.ConsentOption> options) throws DataAdapterClientErrorException
      Save options selected by the user in the OAuth 2.0 consent form.
      Parameters:
      userId - User ID.
      organizationId - Organization ID.
      operationContext - Operation context.
      options - Consent options selected by the user.
      Returns:
      Response with indication whether consent form was successfully saved.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.
    • executeAfsAction

      public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.AfsResponse> executeAfsAction​(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, io.getlime.security.powerauth.lib.dataadapter.model.request.AfsRequestParameters afsRequestParameters, Map<String,​Object> extras) throws DataAdapterClientErrorException
      Execute an anti-fraud system action with information about current step and retrieve response which can override authentication instruments used in current authentication step.
      Parameters:
      userId - User ID.
      organizationId - Organization ID.
      operationContext - Operation context.
      afsRequestParameters - Request parameters for AFS.
      extras - Extra parameters for AFS.
      Returns:
      Response with indication whether consent form was successfully saved.
      Throws:
      DataAdapterClientErrorException - Thrown when client request fails.