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);
        }