// This file is generated by kconfig_compiler_kf6 from ewsresource.kcfg.
// All changes you do to this file will be lost.
#ifndef EWSSETTINGSBASE_H
#define EWSSETTINGSBASE_H

#include <qglobal.h>
#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

class EwsSettingsBase : public KConfigSkeleton
{
  public:

    EwsSettingsBase( QObject *parent = nullptr );
    ~EwsSettingsBase() override;

    /**
      Set Server URL
    */
    void setBaseUrl( const QString & v )
    {
      if (!isBaseUrlImmutable())
        mBaseUrl = v;
    }

    /**
      Get Server URL
    */
    QString baseUrl() const
    {
      return mBaseUrl;
    }

    /**
      Is Server URL Immutable
    */
    bool isBaseUrlImmutable() const
    {
      return isImmutable( QStringLiteral( "BaseUrl" ) );
    }

    /**
      Get Item object corresponding to BaseUrl()
    */
    ItemString *baseUrlItem()
    {
      return mBaseUrlItem;
    }

    /**
      Set Username
    */
    void setUsername( const QString & v )
    {
      if (!isUsernameImmutable())
        mUsername = v;
    }

    /**
      Get Username
    */
    QString username() const
    {
      return mUsername;
    }

    /**
      Is Username Immutable
    */
    bool isUsernameImmutable() const
    {
      return isImmutable( QStringLiteral( "Username" ) );
    }

    /**
      Get Item object corresponding to Username()
    */
    ItemString *usernameItem()
    {
      return mUsernameItem;
    }

    /**
      Set Domain
    */
    void setDomain( const QString & v )
    {
      if (!isDomainImmutable())
        mDomain = v;
    }

    /**
      Get Domain
    */
    QString domain() const
    {
      return mDomain;
    }

    /**
      Is Domain Immutable
    */
    bool isDomainImmutable() const
    {
      return isImmutable( QStringLiteral( "Domain" ) );
    }

    /**
      Get Item object corresponding to Domain()
    */
    ItemString *domainItem()
    {
      return mDomainItem;
    }

    /**
      Set Use a domain name during authentication
    */
    void setHasDomain( bool v )
    {
      if (!isHasDomainImmutable())
        mHasDomain = v;
    }

    /**
      Get Use a domain name during authentication
    */
    bool hasDomain() const
    {
      return mHasDomain;
    }

    /**
      Is Use a domain name during authentication Immutable
    */
    bool isHasDomainImmutable() const
    {
      return isImmutable( QStringLiteral( "HasDomain" ) );
    }

    /**
      Get Item object corresponding to HasDomain()
    */
    ItemBool *hasDomainItem()
    {
      return mHasDomainItem;
    }

    /**
      Set E-mail
    */
    void setEmail( const QString & v )
    {
      if (!isEmailImmutable())
        mEmail = v;
    }

    /**
      Get E-mail
    */
    QString email() const
    {
      return mEmail;
    }

    /**
      Is E-mail Immutable
    */
    bool isEmailImmutable() const
    {
      return isImmutable( QStringLiteral( "Email" ) );
    }

    /**
      Get Item object corresponding to Email()
    */
    ItemString *emailItem()
    {
      return mEmailItem;
    }

    /**
      Set Server Autodiscovery
    */
    void setAutoDiscovery( bool v )
    {
      if (!isAutoDiscoveryImmutable())
        mAutoDiscovery = v;
    }

    /**
      Get Server Autodiscovery
    */
    bool autoDiscovery() const
    {
      return mAutoDiscovery;
    }

    /**
      Is Server Autodiscovery Immutable
    */
    bool isAutoDiscoveryImmutable() const
    {
      return isImmutable( QStringLiteral( "AutoDiscovery" ) );
    }

    /**
      Get Item object corresponding to AutoDiscovery()
    */
    ItemBool *autoDiscoveryItem()
    {
      return mAutoDiscoveryItem;
    }

    /**
      Set Poll Interval
    */
    void setPollInterval( double v )
    {
      if (!isPollIntervalImmutable())
        mPollInterval = v;
    }

    /**
      Get Poll Interval
    */
    double pollInterval() const
    {
      return mPollInterval;
    }

    /**
      Is Poll Interval Immutable
    */
    bool isPollIntervalImmutable() const
    {
      return isImmutable( QStringLiteral( "PollInterval" ) );
    }

    /**
      Get Item object corresponding to PollInterval()
    */
    ItemDouble *pollIntervalItem()
    {
      return mPollIntervalItem;
    }

    /**
      Set Retrieval
    */
    void setRetrievalMethod( int v )
    {
      if (!isRetrievalMethodImmutable())
        mRetrievalMethod = v;
    }

    /**
      Get Retrieval
    */
    int retrievalMethod() const
    {
      return mRetrievalMethod;
    }

    /**
      Is Retrieval Immutable
    */
    bool isRetrievalMethodImmutable() const
    {
      return isImmutable( QStringLiteral( "RetrievalMethod" ) );
    }

    /**
      Get Item object corresponding to RetrievalMethod()
    */
    ItemInt *retrievalMethodItem()
    {
      return mRetrievalMethodItem;
    }

    /**
      Set Enable Server-Side Subscriptions
    */
    void setServerSubscription( bool v )
    {
      if (!isServerSubscriptionImmutable())
        mServerSubscription = v;
    }

    /**
      Get Enable Server-Side Subscriptions
    */
    bool serverSubscription() const
    {
      return mServerSubscription;
    }

    /**
      Is Enable Server-Side Subscriptions Immutable
    */
    bool isServerSubscriptionImmutable() const
    {
      return isImmutable( QStringLiteral( "ServerSubscription" ) );
    }

    /**
      Get Item object corresponding to ServerSubscription()
    */
    ItemBool *serverSubscriptionItem()
    {
      return mServerSubscriptionItem;
    }

    /**
      Set List of folders to subscribe to
    */
    void setServerSubscriptionList( const QStringList & v )
    {
      if (!isServerSubscriptionListImmutable())
        mServerSubscriptionList = v;
    }

    /**
      Get List of folders to subscribe to
    */
    QStringList serverSubscriptionList() const
    {
      return mServerSubscriptionList;
    }

    /**
      Is List of folders to subscribe to Immutable
    */
    bool isServerSubscriptionListImmutable() const
    {
      return isImmutable( QStringLiteral( "ServerSubscriptionList" ) );
    }

    /**
      Get Item object corresponding to ServerSubscriptionList()
    */
    ItemStringList *serverSubscriptionListItem()
    {
      return mServerSubscriptionListItem;
    }

    /**
      Set Enable NTLMv2 authentication
    */
    void setEnableNTLMv2( bool v )
    {
      if (!isEnableNTLMv2Immutable())
        mEnableNTLMv2 = v;
    }

    /**
      Get Enable NTLMv2 authentication
    */
    bool enableNTLMv2() const
    {
      return mEnableNTLMv2;
    }

    /**
      Is Enable NTLMv2 authentication Immutable
    */
    bool isEnableNTLMv2Immutable() const
    {
      return isImmutable( QStringLiteral( "EnableNTLMv2" ) );
    }

    /**
      Get Item object corresponding to EnableNTLMv2()
    */
    ItemBool *enableNTLMv2Item()
    {
      return mEnableNTLMv2Item;
    }

    /**
      Set Forces a non-default User-Agent string
    */
    void setUserAgent( const QString & v )
    {
      if (!isUserAgentImmutable())
        mUserAgent = v;
    }

    /**
      Get Forces a non-default User-Agent string
    */
    QString userAgent() const
    {
      return mUserAgent;
    }

    /**
      Is Forces a non-default User-Agent string Immutable
    */
    bool isUserAgentImmutable() const
    {
      return isImmutable( QStringLiteral( "UserAgent" ) );
    }

    /**
      Get Item object corresponding to UserAgent()
    */
    ItemString *userAgentItem()
    {
      return mUserAgentItem;
    }

    /**
      Set AuthMode
    */
    void setAuthMode( const QString & v )
    {
      if (!isAuthModeImmutable())
        mAuthMode = v;
    }

    /**
      Get AuthMode
    */
    QString authMode() const
    {
      return mAuthMode;
    }

    /**
      Is AuthMode Immutable
    */
    bool isAuthModeImmutable() const
    {
      return isImmutable( QStringLiteral( "AuthMode" ) );
    }

    /**
      Get Item object corresponding to AuthMode()
    */
    ItemString *authModeItem()
    {
      return mAuthModeItem;
    }

    /**
      Set OAuth2 application identifier
    */
    void setOAuth2AppId( const QString & v )
    {
      if (!isOAuth2AppIdImmutable())
        mOAuth2AppId = v;
    }

    /**
      Get OAuth2 application identifier
    */
    QString oAuth2AppId() const
    {
      return mOAuth2AppId;
    }

    /**
      Is OAuth2 application identifier Immutable
    */
    bool isOAuth2AppIdImmutable() const
    {
      return isImmutable( QStringLiteral( "OAuth2AppId" ) );
    }

    /**
      Get Item object corresponding to OAuth2AppId()
    */
    ItemString *oAuth2AppIdItem()
    {
      return mOAuth2AppIdItem;
    }

    /**
      Set OAuth2 return URI
    */
    void setOAuth2ReturnUri( const QString & v )
    {
      if (!isOAuth2ReturnUriImmutable())
        mOAuth2ReturnUri = v;
    }

    /**
      Get OAuth2 return URI
    */
    QString oAuth2ReturnUri() const
    {
      return mOAuth2ReturnUri;
    }

    /**
      Is OAuth2 return URI Immutable
    */
    bool isOAuth2ReturnUriImmutable() const
    {
      return isImmutable( QStringLiteral( "OAuth2ReturnUri" ) );
    }

    /**
      Get Item object corresponding to OAuth2ReturnUri()
    */
    ItemString *oAuth2ReturnUriItem()
    {
      return mOAuth2ReturnUriItem;
    }

    /**
      Set Path to PKey authentication PEM certificate
    */
    void setPKeyCert( const QString & v )
    {
      if (!isPKeyCertImmutable())
        mPKeyCert = v;
    }

    /**
      Get Path to PKey authentication PEM certificate
    */
    QString pKeyCert() const
    {
      return mPKeyCert;
    }

    /**
      Is Path to PKey authentication PEM certificate Immutable
    */
    bool isPKeyCertImmutable() const
    {
      return isImmutable( QStringLiteral( "PKeyCert" ) );
    }

    /**
      Get Item object corresponding to PKeyCert()
    */
    ItemString *pKeyCertItem()
    {
      return mPKeyCertItem;
    }

    /**
      Set Path to PKey authentication PEM private key
    */
    void setPKeyKey( const QString & v )
    {
      if (!isPKeyKeyImmutable())
        mPKeyKey = v;
    }

    /**
      Get Path to PKey authentication PEM private key
    */
    QString pKeyKey() const
    {
      return mPKeyKey;
    }

    /**
      Is Path to PKey authentication PEM private key Immutable
    */
    bool isPKeyKeyImmutable() const
    {
      return isImmutable( QStringLiteral( "PKeyKey" ) );
    }

    /**
      Get Item object corresponding to PKeyKey()
    */
    ItemString *pKeyKeyItem()
    {
      return mPKeyKeyItem;
    }

    /**
      Set FolderSyncState
    */
    void setFolderSyncState( const QString & v )
    {
      if (!isFolderSyncStateImmutable())
        mFolderSyncState = v;
    }

    /**
      Get FolderSyncState
    */
    QString folderSyncState() const
    {
      return mFolderSyncState;
    }

    /**
      Is FolderSyncState Immutable
    */
    bool isFolderSyncStateImmutable() const
    {
      return isImmutable( QStringLiteral( "FolderSyncState" ) );
    }

    /**
      Get Item object corresponding to FolderSyncState()
    */
    ItemString *folderSyncStateItem()
    {
      return mFolderSyncStateItem;
    }

    /**
      Set EventSubscriptionId
    */
    void setEventSubscriptionId( const QString & v )
    {
      if (!isEventSubscriptionIdImmutable())
        mEventSubscriptionId = v;
    }

    /**
      Get EventSubscriptionId
    */
    QString eventSubscriptionId() const
    {
      return mEventSubscriptionId;
    }

    /**
      Is EventSubscriptionId Immutable
    */
    bool isEventSubscriptionIdImmutable() const
    {
      return isImmutable( QStringLiteral( "EventSubscriptionId" ) );
    }

    /**
      Get Item object corresponding to EventSubscriptionId()
    */
    ItemString *eventSubscriptionIdItem()
    {
      return mEventSubscriptionIdItem;
    }

    /**
      Set EventSubscriptionWatermark
    */
    void setEventSubscriptionWatermark( const QString & v )
    {
      if (!isEventSubscriptionWatermarkImmutable())
        mEventSubscriptionWatermark = v;
    }

    /**
      Get EventSubscriptionWatermark
    */
    QString eventSubscriptionWatermark() const
    {
      return mEventSubscriptionWatermark;
    }

    /**
      Is EventSubscriptionWatermark Immutable
    */
    bool isEventSubscriptionWatermarkImmutable() const
    {
      return isImmutable( QStringLiteral( "EventSubscriptionWatermark" ) );
    }

    /**
      Get Item object corresponding to EventSubscriptionWatermark()
    */
    ItemString *eventSubscriptionWatermarkItem()
    {
      return mEventSubscriptionWatermarkItem;
    }

  protected:

    // General
    QString mBaseUrl;
    QString mUsername;
    QString mDomain;
    bool mHasDomain;
    QString mEmail;
    bool mAutoDiscovery;
    double mPollInterval;
    int mRetrievalMethod;
    bool mServerSubscription;
    QStringList mServerSubscriptionList;
    bool mEnableNTLMv2;
    QString mUserAgent;
    QString mAuthMode;
    QString mOAuth2AppId;
    QString mOAuth2ReturnUri;
    QString mPKeyCert;
    QString mPKeyKey;
    QString mFolderSyncState;
    QString mEventSubscriptionId;
    QString mEventSubscriptionWatermark;

  private:
    ItemString *mBaseUrlItem;
    ItemString *mUsernameItem;
    ItemString *mDomainItem;
    ItemBool *mHasDomainItem;
    ItemString *mEmailItem;
    ItemBool *mAutoDiscoveryItem;
    ItemDouble *mPollIntervalItem;
    ItemInt *mRetrievalMethodItem;
    ItemBool *mServerSubscriptionItem;
    ItemStringList *mServerSubscriptionListItem;
    ItemBool *mEnableNTLMv2Item;
    ItemString *mUserAgentItem;
    ItemString *mAuthModeItem;
    ItemString *mOAuth2AppIdItem;
    ItemString *mOAuth2ReturnUriItem;
    ItemString *mPKeyCertItem;
    ItemString *mPKeyKeyItem;
    ItemString *mFolderSyncStateItem;
    ItemString *mEventSubscriptionIdItem;
    ItemString *mEventSubscriptionWatermarkItem;
};

#endif

