public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            DescribeIdentityPoolResponse describeIdentityPoolResponse = new DescribeIdentityPoolResponse();

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

            while (context.ReadAtDepth(currentDepth))
            {
                if (context.TestExpression("AllowUnauthenticatedIdentities", currentDepth))
                {
                    BoolUnmarshaller instance = BoolUnmarshaller.Instance;
                    describeIdentityPoolResponse.AllowUnauthenticatedIdentities = instance.Unmarshall(context);
                }
                else if (context.TestExpression("CognitoIdentityProviders", currentDepth))
                {
                    ListUnmarshaller <CognitoIdentityProviderInfo, CognitoIdentityProviderInfoUnmarshaller> listUnmarshaller = new ListUnmarshaller <CognitoIdentityProviderInfo, CognitoIdentityProviderInfoUnmarshaller>(CognitoIdentityProviderInfoUnmarshaller.Instance);
                    describeIdentityPoolResponse.CognitoIdentityProviders = listUnmarshaller.Unmarshall(context);
                }
                else if (context.TestExpression("DeveloperProviderName", currentDepth))
                {
                    StringUnmarshaller instance2 = StringUnmarshaller.Instance;
                    describeIdentityPoolResponse.DeveloperProviderName = instance2.Unmarshall(context);
                }
                else if (context.TestExpression("IdentityPoolId", currentDepth))
                {
                    StringUnmarshaller instance3 = StringUnmarshaller.Instance;
                    describeIdentityPoolResponse.IdentityPoolId = instance3.Unmarshall(context);
                }
                else if (context.TestExpression("IdentityPoolName", currentDepth))
                {
                    StringUnmarshaller instance4 = StringUnmarshaller.Instance;
                    describeIdentityPoolResponse.IdentityPoolName = instance4.Unmarshall(context);
                }
                else if (context.TestExpression("OpenIdConnectProviderARNs", currentDepth))
                {
                    ListUnmarshaller <string, StringUnmarshaller> listUnmarshaller2 = new ListUnmarshaller <string, StringUnmarshaller>(StringUnmarshaller.Instance);
                    describeIdentityPoolResponse.OpenIdConnectProviderARNs = listUnmarshaller2.Unmarshall(context);
                }
                else if (context.TestExpression("SamlProviderARNs", currentDepth))
                {
                    ListUnmarshaller <string, StringUnmarshaller> listUnmarshaller3 = new ListUnmarshaller <string, StringUnmarshaller>(StringUnmarshaller.Instance);
                    describeIdentityPoolResponse.SamlProviderARNs = listUnmarshaller3.Unmarshall(context);
                }
                else if (context.TestExpression("SupportedLoginProviders", currentDepth))
                {
                    DictionaryUnmarshaller <string, string, StringUnmarshaller, StringUnmarshaller> dictionaryUnmarshaller = new DictionaryUnmarshaller <string, string, StringUnmarshaller, StringUnmarshaller>(StringUnmarshaller.Instance, StringUnmarshaller.Instance);
                    describeIdentityPoolResponse.SupportedLoginProviders = dictionaryUnmarshaller.Unmarshall(context);
                }
            }
            return(describeIdentityPoolResponse);
        }
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            DescribeIdentityPoolResponse response = new DescribeIdentityPoolResponse();

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

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("AllowUnauthenticatedIdentities", targetDepth))
                {
                    var unmarshaller = BoolUnmarshaller.Instance;
                    response.AllowUnauthenticatedIdentities = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("DeveloperProviderName", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.DeveloperProviderName = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("IdentityPoolId", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.IdentityPoolId = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("IdentityPoolName", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.IdentityPoolName = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("OpenIdConnectProviderARNs", targetDepth))
                {
                    var unmarshaller = new ListUnmarshaller <string, StringUnmarshaller>(StringUnmarshaller.Instance);
                    response.OpenIdConnectProviderARNs = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("SupportedLoginProviders", targetDepth))
                {
                    var unmarshaller = new DictionaryUnmarshaller <string, string, StringUnmarshaller, StringUnmarshaller>(StringUnmarshaller.Instance, StringUnmarshaller.Instance);
                    response.SupportedLoginProviders = unmarshaller.Unmarshall(context);
                    continue;
                }
            }


            return(response);
        }