/// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            GetServiceSettingsResponse response = new GetServiceSettingsResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("EnableCrossAccountsDiscovery", targetDepth))
                {
                    var unmarshaller = BoolUnmarshaller.Instance;
                    response.EnableCrossAccountsDiscovery = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("LicenseManagerResourceShareArn", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.LicenseManagerResourceShareArn = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("OrganizationConfiguration", targetDepth))
                {
                    var unmarshaller = OrganizationConfigurationUnmarshaller.Instance;
                    response.OrganizationConfiguration = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("S3BucketArn", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.S3BucketArn = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("SnsTopicArn", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.SnsTopicArn = unmarshaller.Unmarshall(context);
                    continue;
                }
            }

            return(response);
        }
        public static GetServiceSettingsResponse Unmarshall(UnmarshallerContext _ctx)
        {
            GetServiceSettingsResponse getServiceSettingsResponse = new GetServiceSettingsResponse();

            getServiceSettingsResponse.HttpResponse = _ctx.HttpResponse;
            getServiceSettingsResponse.RequestId    = _ctx.StringValue("GetServiceSettings.RequestId");

            List <GetServiceSettingsResponse.GetServiceSettings_ServiceSetting> getServiceSettingsResponse_serviceSettings = new List <GetServiceSettingsResponse.GetServiceSettings_ServiceSetting>();

            for (int i = 0; i < _ctx.Length("GetServiceSettings.ServiceSettings.Length"); i++)
            {
                GetServiceSettingsResponse.GetServiceSettings_ServiceSetting serviceSetting = new GetServiceSettingsResponse.GetServiceSettings_ServiceSetting();
                serviceSetting.DeliveryOssEnabled     = _ctx.BooleanValue("GetServiceSettings.ServiceSettings[" + i + "].DeliveryOssEnabled");
                serviceSetting.DeliveryOssBucketName  = _ctx.StringValue("GetServiceSettings.ServiceSettings[" + i + "].DeliveryOssBucketName");
                serviceSetting.DeliveryOssKeyPrefix   = _ctx.StringValue("GetServiceSettings.ServiceSettings[" + i + "].DeliveryOssKeyPrefix");
                serviceSetting.DeliverySlsEnabled     = _ctx.BooleanValue("GetServiceSettings.ServiceSettings[" + i + "].DeliverySlsEnabled");
                serviceSetting.DeliverySlsProjectName = _ctx.StringValue("GetServiceSettings.ServiceSettings[" + i + "].DeliverySlsProjectName");

                getServiceSettingsResponse_serviceSettings.Add(serviceSetting);
            }
            getServiceSettingsResponse.ServiceSettings = getServiceSettingsResponse_serviceSettings;

            return(getServiceSettingsResponse);
        }