package org.wfc.omada.api.account.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Objects;

/**
 * Role privilege
 */
@ApiModel(description = "Role privilege")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")

public class ControllerRoleVo   {
  @JsonProperty("license")
  private Integer license;

  @JsonProperty("globalDashboard")
  private Integer globalDashboard;

  @JsonProperty("dashboard")
  private Integer dashboard;

  @JsonProperty("devices")
  private Integer devices;

  @JsonProperty("adopt")
  private Integer adopt;

  @JsonProperty("addDevices")
  private Integer addDevices;

  @JsonProperty("addAdoptDevice")
  private Integer addAdoptDevice;

  @JsonProperty("manualUpgrade")
  private Integer manualUpgrade;

  @JsonProperty("globalLog")
  private Integer globalLog;

  @JsonProperty("log")
  private Integer log;

  @JsonProperty("licenseBind")
  private Integer licenseBind;

  @JsonProperty("users")
  private Integer users;

  @JsonProperty("roles")
  private Integer roles;

  @JsonProperty("samlUsers")
  private Integer samlUsers;

  @JsonProperty("samlRoles")
  private Integer samlRoles;

  @JsonProperty("samlSsos")
  private Integer samlSsos;

  @JsonProperty("globalSetting")
  private Integer globalSetting;

  @JsonProperty("exportData")
  private Integer exportData;

  @JsonProperty("globalExportData")
  private Integer globalExportData;

  @JsonProperty("exportGlobalLog")
  private Integer exportGlobalLog;

  @JsonProperty("hotspot")
  private Integer hotspot;

  @JsonProperty("statics")
  private Integer statics;

  @JsonProperty("map")
  private Integer map;

  @JsonProperty("clients")
  private Integer clients;

  @JsonProperty("insight")
  private Integer insight;

  @JsonProperty("report")
  private Integer report;

  @JsonProperty("network")
  private Integer network;

  @JsonProperty("deviceAccount")
  private Integer deviceAccount;

  @JsonProperty("anomaly")
  private Integer anomaly;

  @JsonProperty("analyze")
  private Integer analyze;

  @JsonProperty("siteAnalyze")
  private Integer siteAnalyze;

  @JsonProperty("globalSecurity")
  private Integer globalSecurity;

  @JsonProperty("globalWebhook")
  private Integer globalWebhook;

  @JsonProperty("globalMapToken")
  private Integer globalMapToken;

  @JsonProperty("siteTemplate")
  private Integer siteTemplate;

  @JsonProperty("firmwareManager")
  private Integer firmwareManager;

  public ControllerRoleVo license(Integer license) {
    this.license = license;
    return this;
  }

  /**
   * License permission, it should be a value as follows: 0:block; 1:view only; 2:modify
   * @return license
  */
  @ApiModelProperty(value = "License permission, it should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getLicense() {
    return license;
  }

  public void setLicense(Integer license) {
    this.license = license;
  }

  public ControllerRoleVo globalDashboard(Integer globalDashboard) {
    this.globalDashboard = globalDashboard;
    return this;
  }

  /**
   * Dashboard permission in global view. It should be a value as follows: 0:block; 1:view only; 2:modify
   * @return globalDashboard
  */
  @ApiModelProperty(value = "Dashboard permission in global view. It should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getGlobalDashboard() {
    return globalDashboard;
  }

  public void setGlobalDashboard(Integer globalDashboard) {
    this.globalDashboard = globalDashboard;
  }

  public ControllerRoleVo dashboard(Integer dashboard) {
    this.dashboard = dashboard;
    return this;
  }

  /**
   * Dashboard permission in site view. It should be a value as follows: 0:block; 1:view only; 2:modify
   * @return dashboard
  */
  @ApiModelProperty(value = "Dashboard permission in site view. It should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getDashboard() {
    return dashboard;
  }

  public void setDashboard(Integer dashboard) {
    this.dashboard = dashboard;
  }

  public ControllerRoleVo devices(Integer devices) {
    this.devices = devices;
    return this;
  }

  /**
   * Devices permission in site view and global view. It should be a value as follows: 0:block; 1:view only; 2:modify
   * @return devices
  */
  @ApiModelProperty(value = "Devices permission in site view and global view. It should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getDevices() {
    return devices;
  }

  public void setDevices(Integer devices) {
    this.devices = devices;
  }

  public ControllerRoleVo adopt(Integer adopt) {
    this.adopt = adopt;
    return this;
  }

  /**
   * Adopt permission should be a value as follows: 0:block; 2:access
   * @return adopt
  */
  @ApiModelProperty(value = "Adopt permission should be a value as follows: 0:block; 2:access")


  public Integer getAdopt() {
    return adopt;
  }

  public void setAdopt(Integer adopt) {
    this.adopt = adopt;
  }

  public ControllerRoleVo addDevices(Integer addDevices) {
    this.addDevices = addDevices;
    return this;
  }

  /**
   * Add devices permission should be a value as follows: 0:block; 2:access
   * @return addDevices
  */
  @ApiModelProperty(value = "Add devices permission should be a value as follows: 0:block; 2:access")


  public Integer getAddDevices() {
    return addDevices;
  }

  public void setAddDevices(Integer addDevices) {
    this.addDevices = addDevices;
  }

  public ControllerRoleVo addAdoptDevice(Integer addAdoptDevice) {
    this.addAdoptDevice = addAdoptDevice;
    return this;
  }

  /**
   * Add and adopt devices permission should be a value as follows: 0:block; 2:access
   * @return addAdoptDevice
  */
  @ApiModelProperty(value = "Add and adopt devices permission should be a value as follows: 0:block; 2:access")


  public Integer getAddAdoptDevice() {
    return addAdoptDevice;
  }

  public void setAddAdoptDevice(Integer addAdoptDevice) {
    this.addAdoptDevice = addAdoptDevice;
  }

  public ControllerRoleVo manualUpgrade(Integer manualUpgrade) {
    this.manualUpgrade = manualUpgrade;
    return this;
  }

  /**
   * Manual Upgrade permission should be a value as follows: 0:block; 2:access
   * @return manualUpgrade
  */
  @ApiModelProperty(value = "Manual Upgrade permission should be a value as follows: 0:block; 2:access")


  public Integer getManualUpgrade() {
    return manualUpgrade;
  }

  public void setManualUpgrade(Integer manualUpgrade) {
    this.manualUpgrade = manualUpgrade;
  }

  public ControllerRoleVo globalLog(Integer globalLog) {
    this.globalLog = globalLog;
    return this;
  }

  /**
   * Log permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return globalLog
  */
  @ApiModelProperty(value = "Log permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getGlobalLog() {
    return globalLog;
  }

  public void setGlobalLog(Integer globalLog) {
    this.globalLog = globalLog;
  }

  public ControllerRoleVo log(Integer log) {
    this.log = log;
    return this;
  }

  /**
   * Log permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return log
  */
  @ApiModelProperty(value = "Log permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getLog() {
    return log;
  }

  public void setLog(Integer log) {
    this.log = log;
  }

  public ControllerRoleVo licenseBind(Integer licenseBind) {
    this.licenseBind = licenseBind;
    return this;
  }

  /**
   * License bind permission should be a value as follows: 0:block; 1:view only; 2:modify
   * @return licenseBind
  */
  @ApiModelProperty(value = "License bind permission should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getLicenseBind() {
    return licenseBind;
  }

  public void setLicenseBind(Integer licenseBind) {
    this.licenseBind = licenseBind;
  }

  public ControllerRoleVo users(Integer users) {
    this.users = users;
    return this;
  }

  /**
   * Users permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return users
  */
  @ApiModelProperty(value = "Users permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getUsers() {
    return users;
  }

  public void setUsers(Integer users) {
    this.users = users;
  }

  public ControllerRoleVo roles(Integer roles) {
    this.roles = roles;
    return this;
  }

  /**
   * Roles permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return roles
  */
  @ApiModelProperty(value = "Roles permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getRoles() {
    return roles;
  }

  public void setRoles(Integer roles) {
    this.roles = roles;
  }

  public ControllerRoleVo samlUsers(Integer samlUsers) {
    this.samlUsers = samlUsers;
    return this;
  }

  /**
   * Saml users permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return samlUsers
  */
  @ApiModelProperty(value = "Saml users permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getSamlUsers() {
    return samlUsers;
  }

  public void setSamlUsers(Integer samlUsers) {
    this.samlUsers = samlUsers;
  }

  public ControllerRoleVo samlRoles(Integer samlRoles) {
    this.samlRoles = samlRoles;
    return this;
  }

  /**
   * Saml roles permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return samlRoles
  */
  @ApiModelProperty(value = "Saml roles permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getSamlRoles() {
    return samlRoles;
  }

  public void setSamlRoles(Integer samlRoles) {
    this.samlRoles = samlRoles;
  }

  public ControllerRoleVo samlSsos(Integer samlSsos) {
    this.samlSsos = samlSsos;
    return this;
  }

  /**
   * Saml ssos permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return samlSsos
  */
  @ApiModelProperty(value = "Saml ssos permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getSamlSsos() {
    return samlSsos;
  }

  public void setSamlSsos(Integer samlSsos) {
    this.samlSsos = samlSsos;
  }

  public ControllerRoleVo globalSetting(Integer globalSetting) {
    this.globalSetting = globalSetting;
    return this;
  }

  /**
   * Settings permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return globalSetting
  */
  @ApiModelProperty(value = "Settings permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getGlobalSetting() {
    return globalSetting;
  }

  public void setGlobalSetting(Integer globalSetting) {
    this.globalSetting = globalSetting;
  }

  public ControllerRoleVo exportData(Integer exportData) {
    this.exportData = exportData;
    return this;
  }

  /**
   * Export data permission in site view should be a value as follows: 0:block; 2:access
   * @return exportData
  */
  @ApiModelProperty(value = "Export data permission in site view should be a value as follows: 0:block; 2:access")


  public Integer getExportData() {
    return exportData;
  }

  public void setExportData(Integer exportData) {
    this.exportData = exportData;
  }

  public ControllerRoleVo globalExportData(Integer globalExportData) {
    this.globalExportData = globalExportData;
    return this;
  }

  /**
   * Export data permission in global view should be a value as follows: 0:block; 2:access
   * @return globalExportData
  */
  @ApiModelProperty(value = "Export data permission in global view should be a value as follows: 0:block; 2:access")


  public Integer getGlobalExportData() {
    return globalExportData;
  }

  public void setGlobalExportData(Integer globalExportData) {
    this.globalExportData = globalExportData;
  }

  public ControllerRoleVo exportGlobalLog(Integer exportGlobalLog) {
    this.exportGlobalLog = exportGlobalLog;
    return this;
  }

  /**
   * Export global log data permission in global view should be a value as follows: 0:block; 2:access
   * @return exportGlobalLog
  */
  @ApiModelProperty(value = "Export global log data permission in global view should be a value as follows: 0:block; 2:access")


  public Integer getExportGlobalLog() {
    return exportGlobalLog;
  }

  public void setExportGlobalLog(Integer exportGlobalLog) {
    this.exportGlobalLog = exportGlobalLog;
  }

  public ControllerRoleVo hotspot(Integer hotspot) {
    this.hotspot = hotspot;
    return this;
  }

  /**
   * Hotspot permission should be a value as follows: 0:block; 1:view only; 2:modify
   * @return hotspot
  */
  @ApiModelProperty(value = "Hotspot permission should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getHotspot() {
    return hotspot;
  }

  public void setHotspot(Integer hotspot) {
    this.hotspot = hotspot;
  }

  public ControllerRoleVo statics(Integer statics) {
    this.statics = statics;
    return this;
  }

  /**
   * Statics permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return statics
  */
  @ApiModelProperty(value = "Statics permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getStatics() {
    return statics;
  }

  public void setStatics(Integer statics) {
    this.statics = statics;
  }

  public ControllerRoleVo map(Integer map) {
    this.map = map;
    return this;
  }

  /**
   * Map permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return map
  */
  @ApiModelProperty(value = "Map permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getMap() {
    return map;
  }

  public void setMap(Integer map) {
    this.map = map;
  }

  public ControllerRoleVo clients(Integer clients) {
    this.clients = clients;
    return this;
  }

  /**
   * Clients permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return clients
  */
  @ApiModelProperty(value = "Clients permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getClients() {
    return clients;
  }

  public void setClients(Integer clients) {
    this.clients = clients;
  }

  public ControllerRoleVo insight(Integer insight) {
    this.insight = insight;
    return this;
  }

  /**
   * Insight permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return insight
  */
  @ApiModelProperty(value = "Insight permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getInsight() {
    return insight;
  }

  public void setInsight(Integer insight) {
    this.insight = insight;
  }

  public ControllerRoleVo report(Integer report) {
    this.report = report;
    return this;
  }

  /**
   * Network report permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return report
  */
  @ApiModelProperty(value = "Network report permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getReport() {
    return report;
  }

  public void setReport(Integer report) {
    this.report = report;
  }

  public ControllerRoleVo network(Integer network) {
    this.network = network;
    return this;
  }

  /**
   * Site network settings permission in site view -> settings should be a value as follows: 0:block; 1:view only; 2:modify
   * @return network
  */
  @ApiModelProperty(value = "Site network settings permission in site view -> settings should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getNetwork() {
    return network;
  }

  public void setNetwork(Integer network) {
    this.network = network;
  }

  public ControllerRoleVo deviceAccount(Integer deviceAccount) {
    this.deviceAccount = deviceAccount;
    return this;
  }

  /**
   * Device account permission in site view -> site settings should be a value as follows: 0:block; 1:view only; 2:modify
   * @return deviceAccount
  */
  @ApiModelProperty(value = "Device account permission in site view -> site settings should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getDeviceAccount() {
    return deviceAccount;
  }

  public void setDeviceAccount(Integer deviceAccount) {
    this.deviceAccount = deviceAccount;
  }

  public ControllerRoleVo anomaly(Integer anomaly) {
    this.anomaly = anomaly;
    return this;
  }

  /**
   * Anomaly permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return anomaly
  */
  @ApiModelProperty(value = "Anomaly permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getAnomaly() {
    return anomaly;
  }

  public void setAnomaly(Integer anomaly) {
    this.anomaly = anomaly;
  }

  public ControllerRoleVo analyze(Integer analyze) {
    this.analyze = analyze;
    return this;
  }

  /**
   * Tools permission in global view. Only for hardware controller should be a value as follows: 0:block; 1:view only; 2:modify
   * @return analyze
  */
  @ApiModelProperty(value = "Tools permission in global view. Only for hardware controller should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getAnalyze() {
    return analyze;
  }

  public void setAnalyze(Integer analyze) {
    this.analyze = analyze;
  }

  public ControllerRoleVo siteAnalyze(Integer siteAnalyze) {
    this.siteAnalyze = siteAnalyze;
    return this;
  }

  /**
   * Tools in site view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return siteAnalyze
  */
  @ApiModelProperty(value = "Tools in site view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getSiteAnalyze() {
    return siteAnalyze;
  }

  public void setSiteAnalyze(Integer siteAnalyze) {
    this.siteAnalyze = siteAnalyze;
  }

  public ControllerRoleVo globalSecurity(Integer globalSecurity) {
    this.globalSecurity = globalSecurity;
    return this;
  }

  /**
   * Security permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
   * @return globalSecurity
  */
  @ApiModelProperty(value = "Security permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")


  public Integer getGlobalSecurity() {
    return globalSecurity;
  }

  public void setGlobalSecurity(Integer globalSecurity) {
    this.globalSecurity = globalSecurity;
  }

  public ControllerRoleVo globalWebhook(Integer globalWebhook) {
    this.globalWebhook = globalWebhook;
    return this;
  }

  /**
   * Webhook in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller
   * @return globalWebhook
  */
  @ApiModelProperty(value = "Webhook in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller")


  public Integer getGlobalWebhook() {
    return globalWebhook;
  }

  public void setGlobalWebhook(Integer globalWebhook) {
    this.globalWebhook = globalWebhook;
  }

  public ControllerRoleVo globalMapToken(Integer globalMapToken) {
    this.globalMapToken = globalMapToken;
    return this;
  }

  /**
   * MapToken in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller
   * @return globalMapToken
  */
  @ApiModelProperty(value = "MapToken in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller")


  public Integer getGlobalMapToken() {
    return globalMapToken;
  }

  public void setGlobalMapToken(Integer globalMapToken) {
    this.globalMapToken = globalMapToken;
  }

  public ControllerRoleVo siteTemplate(Integer siteTemplate) {
    this.siteTemplate = siteTemplate;
    return this;
  }

  /**
   * SiteTemplate in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller
   * @return siteTemplate
  */
  @ApiModelProperty(value = "SiteTemplate in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller")


  public Integer getSiteTemplate() {
    return siteTemplate;
  }

  public void setSiteTemplate(Integer siteTemplate) {
    this.siteTemplate = siteTemplate;
  }

  public ControllerRoleVo firmwareManager(Integer firmwareManager) {
    this.firmwareManager = firmwareManager;
    return this;
  }

  /**
   * FirmwareManager in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller
   * @return firmwareManager
  */
  @ApiModelProperty(value = "FirmwareManager in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller")


  public Integer getFirmwareManager() {
    return firmwareManager;
  }

  public void setFirmwareManager(Integer firmwareManager) {
    this.firmwareManager = firmwareManager;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ControllerRoleVo controllerRoleVo = (ControllerRoleVo) o;
    return Objects.equals(this.license, controllerRoleVo.license) &&
        Objects.equals(this.globalDashboard, controllerRoleVo.globalDashboard) &&
        Objects.equals(this.dashboard, controllerRoleVo.dashboard) &&
        Objects.equals(this.devices, controllerRoleVo.devices) &&
        Objects.equals(this.adopt, controllerRoleVo.adopt) &&
        Objects.equals(this.addDevices, controllerRoleVo.addDevices) &&
        Objects.equals(this.addAdoptDevice, controllerRoleVo.addAdoptDevice) &&
        Objects.equals(this.manualUpgrade, controllerRoleVo.manualUpgrade) &&
        Objects.equals(this.globalLog, controllerRoleVo.globalLog) &&
        Objects.equals(this.log, controllerRoleVo.log) &&
        Objects.equals(this.licenseBind, controllerRoleVo.licenseBind) &&
        Objects.equals(this.users, controllerRoleVo.users) &&
        Objects.equals(this.roles, controllerRoleVo.roles) &&
        Objects.equals(this.samlUsers, controllerRoleVo.samlUsers) &&
        Objects.equals(this.samlRoles, controllerRoleVo.samlRoles) &&
        Objects.equals(this.samlSsos, controllerRoleVo.samlSsos) &&
        Objects.equals(this.globalSetting, controllerRoleVo.globalSetting) &&
        Objects.equals(this.exportData, controllerRoleVo.exportData) &&
        Objects.equals(this.globalExportData, controllerRoleVo.globalExportData) &&
        Objects.equals(this.exportGlobalLog, controllerRoleVo.exportGlobalLog) &&
        Objects.equals(this.hotspot, controllerRoleVo.hotspot) &&
        Objects.equals(this.statics, controllerRoleVo.statics) &&
        Objects.equals(this.map, controllerRoleVo.map) &&
        Objects.equals(this.clients, controllerRoleVo.clients) &&
        Objects.equals(this.insight, controllerRoleVo.insight) &&
        Objects.equals(this.report, controllerRoleVo.report) &&
        Objects.equals(this.network, controllerRoleVo.network) &&
        Objects.equals(this.deviceAccount, controllerRoleVo.deviceAccount) &&
        Objects.equals(this.anomaly, controllerRoleVo.anomaly) &&
        Objects.equals(this.analyze, controllerRoleVo.analyze) &&
        Objects.equals(this.siteAnalyze, controllerRoleVo.siteAnalyze) &&
        Objects.equals(this.globalSecurity, controllerRoleVo.globalSecurity) &&
        Objects.equals(this.globalWebhook, controllerRoleVo.globalWebhook) &&
        Objects.equals(this.globalMapToken, controllerRoleVo.globalMapToken) &&
        Objects.equals(this.siteTemplate, controllerRoleVo.siteTemplate) &&
        Objects.equals(this.firmwareManager, controllerRoleVo.firmwareManager);
  }

  @Override
  public int hashCode() {
    return Objects.hash(license, globalDashboard, dashboard, devices, adopt, addDevices, addAdoptDevice, manualUpgrade, globalLog, log, licenseBind, users, roles, samlUsers, samlRoles, samlSsos, globalSetting, exportData, globalExportData, exportGlobalLog, hotspot, statics, map, clients, insight, report, network, deviceAccount, anomaly, analyze, siteAnalyze, globalSecurity, globalWebhook, globalMapToken, siteTemplate, firmwareManager);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ControllerRoleVo {\n");
    
    sb.append("    license: ").append(toIndentedString(license)).append("\n");
    sb.append("    globalDashboard: ").append(toIndentedString(globalDashboard)).append("\n");
    sb.append("    dashboard: ").append(toIndentedString(dashboard)).append("\n");
    sb.append("    devices: ").append(toIndentedString(devices)).append("\n");
    sb.append("    adopt: ").append(toIndentedString(adopt)).append("\n");
    sb.append("    addDevices: ").append(toIndentedString(addDevices)).append("\n");
    sb.append("    addAdoptDevice: ").append(toIndentedString(addAdoptDevice)).append("\n");
    sb.append("    manualUpgrade: ").append(toIndentedString(manualUpgrade)).append("\n");
    sb.append("    globalLog: ").append(toIndentedString(globalLog)).append("\n");
    sb.append("    log: ").append(toIndentedString(log)).append("\n");
    sb.append("    licenseBind: ").append(toIndentedString(licenseBind)).append("\n");
    sb.append("    users: ").append(toIndentedString(users)).append("\n");
    sb.append("    roles: ").append(toIndentedString(roles)).append("\n");
    sb.append("    samlUsers: ").append(toIndentedString(samlUsers)).append("\n");
    sb.append("    samlRoles: ").append(toIndentedString(samlRoles)).append("\n");
    sb.append("    samlSsos: ").append(toIndentedString(samlSsos)).append("\n");
    sb.append("    globalSetting: ").append(toIndentedString(globalSetting)).append("\n");
    sb.append("    exportData: ").append(toIndentedString(exportData)).append("\n");
    sb.append("    globalExportData: ").append(toIndentedString(globalExportData)).append("\n");
    sb.append("    exportGlobalLog: ").append(toIndentedString(exportGlobalLog)).append("\n");
    sb.append("    hotspot: ").append(toIndentedString(hotspot)).append("\n");
    sb.append("    statics: ").append(toIndentedString(statics)).append("\n");
    sb.append("    map: ").append(toIndentedString(map)).append("\n");
    sb.append("    clients: ").append(toIndentedString(clients)).append("\n");
    sb.append("    insight: ").append(toIndentedString(insight)).append("\n");
    sb.append("    report: ").append(toIndentedString(report)).append("\n");
    sb.append("    network: ").append(toIndentedString(network)).append("\n");
    sb.append("    deviceAccount: ").append(toIndentedString(deviceAccount)).append("\n");
    sb.append("    anomaly: ").append(toIndentedString(anomaly)).append("\n");
    sb.append("    analyze: ").append(toIndentedString(analyze)).append("\n");
    sb.append("    siteAnalyze: ").append(toIndentedString(siteAnalyze)).append("\n");
    sb.append("    globalSecurity: ").append(toIndentedString(globalSecurity)).append("\n");
    sb.append("    globalWebhook: ").append(toIndentedString(globalWebhook)).append("\n");
    sb.append("    globalMapToken: ").append(toIndentedString(globalMapToken)).append("\n");
    sb.append("    siteTemplate: ").append(toIndentedString(siteTemplate)).append("\n");
    sb.append("    firmwareManager: ").append(toIndentedString(firmwareManager)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

