/**
         * Countries Supported:
         *     AU - Australia
         *     AT - Austria
         *     CA - Canada
         *     CZ - Czech Republic
         *     EU - European Union *
         *     FR - France
         *     DE - Germany
         *     GB - Great Britain
         *     GR - Greece
         *     IE - Ireland
         *     IL - Israel
         *     IT - Italy
         *     JP - Japan
         *     NL - Netherlands
         *     NZ - New Zealand (Aotearoa)
         *     PL - Poland
         *     PT - Portugal
         *     RU - Russian Federation
         *     SG - Singapore
         *     ZA - South Africa
         *     ES - Spain
         *     CH - Switzerland
         *     US - United States
         *     * technically a group of countries
         *
         *
         *
         *
         *
         */
        public GetUserAgreementResponse GetUserAgreement(GetUserAgreementRequest getUserAgreementRequest, string apiUserName)
        {
            string  response = Call("GetUserAgreement", getUserAgreementRequest.ToNVPString(""), apiUserName);
            NVPUtil util     = new NVPUtil();

            return(GetUserAgreementResponse.CreateInstance(util.ParseNVPString(response), "", -1));
        }
        /// <summary>
        /// Countries Supported:
        /// AU - Australia
        /// AT - Austria
        /// CA
        /// - Canada
        /// CZ - Czech Republic
        /// EU - European Union *
        /// FR - France
        /// DE -
        /// Germany
        /// GB - Great Britain
        /// GR - Greece
        /// IE - Ireland
        /// IL - Israel
        /// IT -
        /// Italy
        /// JP - Japan
        /// NL - Netherlands
        /// NZ - New Zealand (Aotearoa)
        /// PL -
        /// Poland
        /// PT - Portugal
        /// RU - Russian Federation
        /// SG - Singapore
        /// ZA - South
        /// Africa
        /// ES - Spain
        /// CH - Switzerland
        /// US - United States
        /// * technically a
        /// group of countries
        ///
        ///
        ///
        ///
        ///
        /// </summary>
        ///<param name="getUserAgreementRequest"></param>
        ///<param name="credential">An explicit ICredential object that you want to authenticate this call against</param>
        public GetUserAgreementResponse GetUserAgreement(GetUserAgreementRequest getUserAgreementRequest, ICredential credential)
        {
            IAPICallPreHandler apiCallPreHandler = new PlatformAPICallPreHandler(this.config, getUserAgreementRequest.ToNVPString(string.Empty), ServiceName, "GetUserAgreement", credential);

            ((PlatformAPICallPreHandler)apiCallPreHandler).SDKName    = SDKName;
            ((PlatformAPICallPreHandler)apiCallPreHandler).SDKVersion = SDKVersion;
            ((PlatformAPICallPreHandler)apiCallPreHandler).PortName   = "AdaptiveAccounts";

            NVPUtil util = new NVPUtil();

            return(GetUserAgreementResponse.CreateInstance(util.ParseNVPString(Call(apiCallPreHandler)), string.Empty, -1));
        }