package com.bocloud.cmp.model;

import java.util.List;

public class AzureParams {
    private HardwareProfile hardwareProfile;
    private StorageProfile storageProfile;
    private OsProfile osProfile;
    private NetworkProfile networkProfile;

    /**
     * HardwareProfile
     */
    public class HardwareProfile {
        public HardwareProfile() {
        }

        private String vmSize;

        public String getVmSize() {
            return vmSize;
        }

        public void setVmSize(String vmSize) {
            this.vmSize = vmSize;
        }
    }

    /**
     * storageProfile
     */
    public class StorageProfile {
        private ImageReference imageReference;
        private OsDisk osDisk;

        /*imageReference*/
        public class ImageReference {
            private String id;

            public String getId() {
                return id;
            }

            public void setId(String id) {
                this.id = id;
            }
        }

        /*osDisk*/
        public class OsDisk {
            private String caching;
            private String name;
            private String createOption;
            private ManagedDisk managedDisk;

            public class ManagedDisk {
                private String storageAccountType;

                public String getStorageAccountType() {
                    return storageAccountType;
                }

                public void setStorageAccountType(String storageAccountType) {
                    this.storageAccountType = storageAccountType;
                }
            }

            public String getCaching() {
                return caching;
            }

            public void setCaching(String caching) {
                this.caching = caching;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public String getCreateOption() {
                return createOption;
            }

            public void setCreateOption(String createOption) {
                this.createOption = createOption;
            }

            public ManagedDisk getManagedDisk() {
                return managedDisk;
            }

            public void setManagedDisk(ManagedDisk managedDisk) {
                this.managedDisk = managedDisk;
            }
        }

        public ImageReference getImageReference() {
            return imageReference;
        }

        public void setImageReference(ImageReference imageReference) {
            this.imageReference = imageReference;
        }

        public OsDisk getOsDisk() {
            return osDisk;
        }

        public void setOsDisk(OsDisk osDisk) {
            this.osDisk = osDisk;
        }
    }

    /**
     * osProfile
     */
    public class OsProfile {
        private String adminUsername;
        private String adminPassword;
        private String computerName;

        public String getAdminUsername() {
            return adminUsername;
        }

        public void setAdminUsername(String adminUsername) {
            this.adminUsername = adminUsername;
        }

        public String getAdminPassword() {
            return adminPassword;
        }

        public void setAdminPassword(String adminPassword) {
            this.adminPassword = adminPassword;
        }

        public String getComputerName() {
            return computerName;
        }

        public void setComputerName(String computerName) {
            this.computerName = computerName;
        }
    }

    /**
     * networkProfile
     */
    public class NetworkProfile {
        private List<NetworkInterfaces> networkInterfaces;

        public List<NetworkInterfaces> getNetworkInterfaces() {
            return networkInterfaces;
        }

        public void setNetworkInterfaces(List<NetworkInterfaces> networkInterfaces) {
            this.networkInterfaces = networkInterfaces;
        }

        public class NetworkInterfaces {
            private String id;
            private Properties properties;

            public class Properties {
                private boolean primary;

                public boolean isPrimary() {
                    return primary;
                }

                public void setPrimary(boolean primary) {
                    this.primary = primary;
                }
            }

            public Properties getProperties() {
                return properties;
            }

            public void setProperties(Properties properties) {
                this.properties = properties;
            }

            public String getId() {
                return id;
            }

            public void setId(String id) {
                this.id = id;
            }
        }
    }

    public HardwareProfile getHardwareProfile() {
        return hardwareProfile;
    }

    public void setHardwareProfile(HardwareProfile hardwareProfile) {
        this.hardwareProfile = hardwareProfile;
    }

    public StorageProfile getStorageProfile() {
        return storageProfile;
    }

    public void setStorageProfile(StorageProfile storageProfile) {
        this.storageProfile = storageProfile;
    }

    public OsProfile getOsProfile() {
        return osProfile;
    }

    public void setOsProfile(OsProfile osProfile) {
        this.osProfile = osProfile;
    }

    public NetworkProfile getNetworkProfile() {
        return networkProfile;
    }

    public void setNetworkProfile(NetworkProfile networkProfile) {
        this.networkProfile = networkProfile;
    }
}
