package com.bocloud.cmp.model.hmc;

import com.bocloud.cmp.model.hmc.sdk.module.AssociatedIPLConfiguration;
import com.bocloud.cmp.model.hmc.sdk.module.AssociatedSystemCapabilities;
import com.bocloud.cmp.model.hmc.sdk.module.AssociatedSystemIOConfiguration;
import com.bocloud.cmp.model.hmc.sdk.module.AssociatedSystemMemoryConfiguration;
import com.bocloud.cmp.model.hmc.sdk.module.AssociatedSystemProcessorConfiguration;
import com.bocloud.cmp.model.hmc.sdk.module.HostEthernetAdapterEntry;
import com.bocloud.cmp.model.hmc.sdk.module.LogicalPartitionEntry;
import com.bocloud.cmp.model.hmc.sdk.module.LogicalPartitionProfileEntry;
import com.bocloud.cmp.model.hmc.sdk.module.ManagedSystemEntry;
import com.bocloud.cmp.model.hmc.sdk.module.SharedProcessorPoolEntry;
import com.bocloud.cmp.model.hmc.sdk.module.VirtualIOServerEntry;
import com.bocloud.cmp.model.hmc.sdk.module.VirtualNetworkBridgeEntry;
import com.bocloud.cmp.model.hmc.sdk.module.VirtualSwitchEntry;
import com.bocloud.cmp.model.hmc.sdk.module.VolumeGroupEntry;

import java.util.List;
import java.util.Map;

@Deprecated
public class SyncModel {
    private String uuid;
    private ManagedSystemEntry systemEntry;
    private AssociatedIPLConfiguration iplConfiguration;
    private AssociatedSystemCapabilities systemCapabilities;
    private AssociatedSystemMemoryConfiguration systemMemoryConfiguration;
    private AssociatedSystemProcessorConfiguration systemProcessorConfiguration;
    private AssociatedSystemIOConfiguration systemIOConfiguration;
    private List<VirtualIOServerEntry> viosEntries;
    private List<LogicalPartitionEntry> lparEntries;
    private Map<String, List<LogicalPartitionProfileEntry>> profileEntries;
    private List<VirtualSwitchEntry> vswitchEntries;
    private List<VirtualNetworkBridgeEntry> networkBridgeEntries;
    private List<HostEthernetAdapterEntry> hostEthernetAdapterEntries;
    private Map<String, String> rmcStatus;
    private List<SharedProcessorPoolEntry> sharedProcessorPoolEntries;
    /**
     * key: vios uuid
     * <p>
     * value: this vios's volume group info
     */
    private Map<String, List<VolumeGroupEntry>> volumeGroupEntries;

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public ManagedSystemEntry getSystemEntry() {
        return systemEntry;
    }

    public void setSystemEntry(ManagedSystemEntry systemEntry) {
        this.systemEntry = systemEntry;
    }

    public AssociatedIPLConfiguration getIplConfiguration() {
        return iplConfiguration;
    }

    public void setIplConfiguration(AssociatedIPLConfiguration iplConfiguration) {
        this.iplConfiguration = iplConfiguration;
    }

    public AssociatedSystemCapabilities getSystemCapabilities() {
        return systemCapabilities;
    }

    public void setSystemCapabilities(AssociatedSystemCapabilities systemCapabilities) {
        this.systemCapabilities = systemCapabilities;
    }

    public AssociatedSystemMemoryConfiguration getSystemMemoryConfiguration() {
        return systemMemoryConfiguration;
    }

    public void setSystemMemoryConfiguration(AssociatedSystemMemoryConfiguration systemMemoryConfiguration) {
        this.systemMemoryConfiguration = systemMemoryConfiguration;
    }

    public AssociatedSystemProcessorConfiguration getSystemProcessorConfiguration() {
        return systemProcessorConfiguration;
    }

    public void setSystemProcessorConfiguration(AssociatedSystemProcessorConfiguration systemProcessorConfiguration) {
        this.systemProcessorConfiguration = systemProcessorConfiguration;
    }

    public AssociatedSystemIOConfiguration getSystemIOConfiguration() {
        return systemIOConfiguration;
    }

    public void setSystemIOConfiguration(AssociatedSystemIOConfiguration systemIOConfiguration) {
        this.systemIOConfiguration = systemIOConfiguration;
    }

    public List<VirtualIOServerEntry> getViosEntries() {
        return viosEntries;
    }

    public void setViosEntries(List<VirtualIOServerEntry> viosEntries) {
        this.viosEntries = viosEntries;
    }

    public List<LogicalPartitionEntry> getLparEntries() {
        return lparEntries;
    }

    public void setLparEntries(List<LogicalPartitionEntry> lparEntries) {
        this.lparEntries = lparEntries;
    }

    public Map<String, List<LogicalPartitionProfileEntry>> getProfileEntries() {
        return profileEntries;
    }

    public void setProfileEntries(Map<String, List<LogicalPartitionProfileEntry>> profileEntries) {
        this.profileEntries = profileEntries;
    }

    public List<VirtualSwitchEntry> getVswitchEntries() {
        return vswitchEntries;
    }

    public void setVswitchEntries(List<VirtualSwitchEntry> vswitchEntries) {
        this.vswitchEntries = vswitchEntries;
    }

    public List<HostEthernetAdapterEntry> getHostEthernetAdapterEntries() {
        return hostEthernetAdapterEntries;
    }

    public void setHostEthernetAdapterEntries(List<HostEthernetAdapterEntry> hostEthernetAdapterEntries) {
        this.hostEthernetAdapterEntries = hostEthernetAdapterEntries;
    }

    /**
     * @return the volumeGroupEntries
     */
    public Map<String, List<VolumeGroupEntry>> getVolumeGroupEntries() {
        return volumeGroupEntries;
    }

    /**
     * @param volumeGroupEntries the volumeGroupEntries to set
     */
    public void setVolumeGroupEntries(Map<String, List<VolumeGroupEntry>> volumeGroupEntries) {
        this.volumeGroupEntries = volumeGroupEntries;
    }

    /**
     * @return Map: key=lpar/vios uuid, value=rmcStatus
     */
    public Map<String, String> getRmcStatus() {
        return rmcStatus;
    }

    public void setRmcStatus(Map<String, String> rmcStatus) {
        this.rmcStatus = rmcStatus;
    }

    public List<VirtualNetworkBridgeEntry> getNetworkBridgeEntries() {
        return networkBridgeEntries;
    }

    public void setNetworkBridgeEntries(List<VirtualNetworkBridgeEntry> networkBridgeEntries) {
        this.networkBridgeEntries = networkBridgeEntries;
    }

    public List<SharedProcessorPoolEntry> getSharedProcessorPoolEntries() {
        return sharedProcessorPoolEntries;
    }

    public void setSharedProcessorPoolEntries(List<SharedProcessorPoolEntry> sharedProcessorPoolEntries) {
        this.sharedProcessorPoolEntries = sharedProcessorPoolEntries;
    }
}
