/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.aliyuncs.config.transform.v20200907;

import java.util.ArrayList;
import java.util.List;

import com.aliyuncs.config.model.v20200907.GetResourceComplianceByConfigRuleResponse;
import com.aliyuncs.config.model.v20200907.GetResourceComplianceByConfigRuleResponse.ComplianceResult;
import com.aliyuncs.config.model.v20200907.GetResourceComplianceByConfigRuleResponse.ComplianceResult.CompliancesItem;
import com.aliyuncs.transform.UnmarshallerContext;


public class GetResourceComplianceByConfigRuleResponseUnmarshaller {

	public static GetResourceComplianceByConfigRuleResponse unmarshall(GetResourceComplianceByConfigRuleResponse getResourceComplianceByConfigRuleResponse, UnmarshallerContext _ctx) {
		
		getResourceComplianceByConfigRuleResponse.setRequestId(_ctx.stringValue("GetResourceComplianceByConfigRuleResponse.RequestId"));

		ComplianceResult complianceResult = new ComplianceResult();
		complianceResult.setTotalCount(_ctx.longValue("GetResourceComplianceByConfigRuleResponse.ComplianceResult.TotalCount"));

		List<CompliancesItem> compliances = new ArrayList<CompliancesItem>();
		for (int i = 0; i < _ctx.lengthValue("GetResourceComplianceByConfigRuleResponse.ComplianceResult.Compliances.Length"); i++) {
			CompliancesItem compliancesItem = new CompliancesItem();
			compliancesItem.setComplianceType(_ctx.stringValue("GetResourceComplianceByConfigRuleResponse.ComplianceResult.Compliances["+ i +"].ComplianceType"));
			compliancesItem.setCount(_ctx.integerValue("GetResourceComplianceByConfigRuleResponse.ComplianceResult.Compliances["+ i +"].Count"));

			compliances.add(compliancesItem);
		}
		complianceResult.setCompliances(compliances);
		getResourceComplianceByConfigRuleResponse.setComplianceResult(complianceResult);
	 
	 	return getResourceComplianceByConfigRuleResponse;
	}
}