// Path: src/main/java/org/rapid7/nexpose/api/APISession.java
// public enum APISupportedVersion
// {
//    V1_0("1.0"), V1_1("1.1"), V1_2("1.2");
//    private String m_version;
// 
//    APISupportedVersion(String value)
//    {
//       m_version = value;
//    }
//    String getVersion()
//    {
//       return m_version;
//    }
// }
// 
// Path: src/main/java/org/rapid7/nexpose/api/domain/SiloConfigStorage.java
// public class SiloConfigStorage
// {
// 
//    /////////////////////////////////////////////////////////////////////////
//    // Public methods
//    /////////////////////////////////////////////////////////////////////////
// 
//    /**
//     * Retrieves the storage's user id.
//     *
//     * @return The the storage's host value.
//     */
//    public String getUserID()
//    {
//       return m_userID;
//    }
// 
//    /**
//     * Sets the storage's user id.
//     *
//     * @param userID The new value of the storage's user id to set.
//     */
//    public void setUserID(String userID)
//    {
//       m_userID = userID;
//    }
// 
//    /**
//     * Retrieves the storage's DBMS value.
//     *
//     * @return The value of the storage's DBMS.
//     */
//    public String getDBMS()
//    {
//       return m_DBMS;
//    }
// 
//    /**
//     * Sets the storage's DBMS value.
//     *
//     * @param dbms The value of the storage's DBMS to set.
//     */
//    public void setDBMS(String dbms)
//    {
//       m_DBMS = dbms;
//    }
// 
//    /**
//     * Retrieves the storage's realm.
//     *
//     * @return The value of the storage's realm.
//     */
//    public String getUserRealm()
//    {
//       return m_userRealm;
//    }
// 
//    /**
//     * Sets the storage's realm.
//     *
//     * @param username The value of the storage's realm to set
//     */
//    public void setUserRealm(String realm)
//    {
//       m_userRealm = realm;
//    }
// 
//    /**
//     * Retrieves the storage's password.
//     *
//     * @return The value of the storage's passsword.
//     */
//    public String getPassword()
//    {
//       return m_password;
//    }
// 
//    /**
//     * Sets the storage's password.
//     *
//     * @param port The value of the storage's password to set.
//     */
//    public void setPassword(String password)
//    {
//       m_password = password;
//    }
// 
//    /**
//     * Retrieves the storage's URL.
//     *
//     * @return The value of the storage's URL.
//     */
//    public String getURL()
//    {
//       return m_url;
//    }
// 
//    /**
//     * Sets the storage's URL.
//     *
//     * @param url The value of the storage's URL to set.
//     */
//    public void setURL(String url)
//    {
//       m_url = url;
//    }
// 
//    /**
//     * Retrieves the storage's  properties generator.
//     *
//     * @return The storage's properties Generator.
//     */
//    public IContentGenerator getPropertiesGenerator()
//    {
//       return m_propertiesGenerator;
//    }
// 
//    /**
//     * Sets the storage's properties content generator.
//     *
//     * @param generator The storage's properties content generator to set.
//     */
//    public void setPropertiesGenerator(IContentGenerator generator)
//    {
//       m_propertiesGenerator = generator;
//    }
// 
//    /**
//     * Tells whether all the attributes are null or not.
//     */
//    public boolean areAllNull()
//    {
//       return (m_userID== null &&
//               m_DBMS== null &&
//               m_password == null &&
//               m_url == null &&
//               m_userRealm== null &&
//               m_propertiesGenerator == null);
//    }
//    /////////////////////////////////////////////////////////////////////////
//    // non-Public fields
//    /////////////////////////////////////////////////////////////////////////
// 
//    /** Represents the host of the storage. */
//    private String m_userID;
//    /** Represents the dbms of the storage. */
//    private String m_DBMS;
//    /** Represents the name of the storage. */
//    private String m_userRealm;
//    /** Represents the port of the storage. */
//    private String m_password;
//    /**Represents the url of the storage. */
//    private String m_url;
//    /** Represents the content generator for the properties of the storage. */
//    private IContentGenerator m_propertiesGenerator;
// }
// 
// Path: src/main/java/org/rapid7/nexpose/api/generators/IContentGenerator.java
// public interface IContentGenerator
// {
//    /**
//     * Knows how to generate content for a request.
//     * @return the generated content
//     */
//    String toString();
//    /**
//     * Sets the contents of the generator that come as a parameter
//     */
//    void setContents(Element contents);
// }


import org.rapid7.nexpose.api.APISession.APISupportedVersion;
import org.rapid7.nexpose.api.domain.SiloConfigStorage;
import org.rapid7.nexpose.api.generators.IContentGenerator;
   public SiloUpdateRequest(
         String sessionId,
         String syncId,
         String id,
         String name,
         String description,
         String siloProfileId,
         String maxAssets,
         String maxUsers,
         String dbID,
         IContentGenerator merchantGenerator,
         IContentGenerator organizationURLGenerator,
         SiloConfigStorage storage)
   {
      super(sessionId, syncId);
      set("maxAssets", maxAssets);
      set("maxUsers", maxUsers);
      set("description", description);
      set("name", name);
      set("id", id);
      set("silo-profile-id", siloProfileId);
      set("db-id", dbID);
      set("merchantGenerator", merchantGenerator);
      set("organizationGenerator", organizationURLGenerator);
      set("storageUserID", storage != null? storage.getUserID() : null);
      set("storageDBMS", storage != null? storage.getDBMS() : null);
      set("storageRealm", storage != null? storage.getUserRealm() : null);
      set("storagePassword", storage != null? storage.getPassword() : null);
      set("storageURL", storage != null? storage.getURL() : null);
      set("storagePropertiesGenerator", storage != null? storage.getPropertiesGenerator() : null);
// Path: src/main/java/org/rapid7/nexpose/api/APISession.java
// public enum APISupportedVersion
// {
//    V1_0("1.0"), V1_1("1.1"), V1_2("1.2");
//    private String m_version;
// 
//    APISupportedVersion(String value)
//    {
//       m_version = value;
//    }
//    String getVersion()
//    {
//       return m_version;
//    }
// }
// 
// Path: src/main/java/org/rapid7/nexpose/api/domain/SiloConfigStorage.java
// public class SiloConfigStorage
// {
// 
//    /////////////////////////////////////////////////////////////////////////
//    // Public methods
//    /////////////////////////////////////////////////////////////////////////
// 
//    /**
//     * Retrieves the storage's user id.
//     *
//     * @return The the storage's host value.
//     */
//    public String getUserID()
//    {
//       return m_userID;
//    }
// 
//    /**
//     * Sets the storage's user id.
//     *
//     * @param userID The new value of the storage's user id to set.
//     */
//    public void setUserID(String userID)
//    {
//       m_userID = userID;
//    }
// 
//    /**
//     * Retrieves the storage's DBMS value.
//     *
//     * @return The value of the storage's DBMS.
//     */
//    public String getDBMS()
//    {
//       return m_DBMS;
//    }
// 
//    /**
//     * Sets the storage's DBMS value.
//     *
//     * @param dbms The value of the storage's DBMS to set.
//     */
//    public void setDBMS(String dbms)
//    {
//       m_DBMS = dbms;
//    }
// 
//    /**
//     * Retrieves the storage's realm.
//     *
//     * @return The value of the storage's realm.
//     */
//    public String getUserRealm()
//    {
//       return m_userRealm;
//    }
// 
//    /**
//     * Sets the storage's realm.
//     *
//     * @param username The value of the storage's realm to set
//     */
//    public void setUserRealm(String realm)
//    {
//       m_userRealm = realm;
//    }
// 
//    /**
//     * Retrieves the storage's password.
//     *
//     * @return The value of the storage's passsword.
//     */
//    public String getPassword()
//    {
//       return m_password;
//    }
// 
//    /**
//     * Sets the storage's password.
//     *
//     * @param port The value of the storage's password to set.
//     */
//    public void setPassword(String password)
//    {
//       m_password = password;
//    }
// 
//    /**
//     * Retrieves the storage's URL.
//     *
//     * @return The value of the storage's URL.
//     */
//    public String getURL()
//    {
//       return m_url;
//    }
// 
//    /**
//     * Sets the storage's URL.
//     *
//     * @param url The value of the storage's URL to set.
//     */
//    public void setURL(String url)
//    {
//       m_url = url;
//    }
// 
//    /**
//     * Retrieves the storage's  properties generator.
//     *
//     * @return The storage's properties Generator.
//     */
//    public IContentGenerator getPropertiesGenerator()
//    {
//       return m_propertiesGenerator;
//    }
// 
//    /**
//     * Sets the storage's properties content generator.
//     *
//     * @param generator The storage's properties content generator to set.
//     */
//    public void setPropertiesGenerator(IContentGenerator generator)
//    {
//       m_propertiesGenerator = generator;
//    }
// 
//    /**
//     * Tells whether all the attributes are null or not.
//     */
//    public boolean areAllNull()
//    {
//       return (m_userID== null &&
//               m_DBMS== null &&
//               m_password == null &&
//               m_url == null &&
//               m_userRealm== null &&
//               m_propertiesGenerator == null);
//    }
//    /////////////////////////////////////////////////////////////////////////
//    // non-Public fields
//    /////////////////////////////////////////////////////////////////////////
// 
//    /** Represents the host of the storage. */
//    private String m_userID;
//    /** Represents the dbms of the storage. */
//    private String m_DBMS;
//    /** Represents the name of the storage. */
//    private String m_userRealm;
//    /** Represents the port of the storage. */
//    private String m_password;
//    /**Represents the url of the storage. */
//    private String m_url;
//    /** Represents the content generator for the properties of the storage. */
//    private IContentGenerator m_propertiesGenerator;
// }
// 
// Path: src/main/java/org/rapid7/nexpose/api/generators/IContentGenerator.java
// public interface IContentGenerator
// {
//    /**
//     * Knows how to generate content for a request.
//     * @return the generated content
//     */
//    String toString();
//    /**
//     * Sets the contents of the generator that come as a parameter
//     */
//    void setContents(Element contents);
// }


// Path: src/main/java/org/rapid7/nexpose/api/SiloUpdateRequest.java
import org.rapid7.nexpose.api.APISession.APISupportedVersion;
import org.rapid7.nexpose.api.domain.SiloConfigStorage;
import org.rapid7.nexpose.api.generators.IContentGenerator;

   public SiloUpdateRequest(
         String sessionId,
         String syncId,
         String id,
         String name,
         String description,
         String siloProfileId,
         String maxAssets,
         String maxUsers,
         String dbID,
         IContentGenerator merchantGenerator,
         IContentGenerator organizationURLGenerator,
         SiloConfigStorage storage)
   {
      super(sessionId, syncId);
      set("maxAssets", maxAssets);
      set("maxUsers", maxUsers);
      set("description", description);
      set("name", name);
      set("id", id);
      set("silo-profile-id", siloProfileId);
      set("db-id", dbID);
      set("merchantGenerator", merchantGenerator);
      set("organizationGenerator", organizationURLGenerator);
      set("storageUserID", storage != null? storage.getUserID() : null);
      set("storageDBMS", storage != null? storage.getDBMS() : null);
      set("storageRealm", storage != null? storage.getUserRealm() : null);
      set("storagePassword", storage != null? storage.getPassword() : null);
      set("storageURL", storage != null? storage.getURL() : null);
      set("storagePropertiesGenerator", storage != null? storage.getPropertiesGenerator() : null);
      m_firstSupportedVersion = APISupportedVersion.V1_2;