Public Class Options

    Public MustInherit Class BaseOptions
        ''' <summary>
        ''' Windows username of the user responsible for the request. Defaults to the currently logged in user.
        ''' </summary>
        Public Property Username As String = Environment.UserName

        ''' <summary>
        ''' Language code of the client responsible for the request. Defaults to the language of the current client.
        ''' </summary>
        ''' <returns></returns>
        Public Property Language As String = Threading.Thread.CurrentThread.CurrentUICulture.Name
    End Class

    ''' <summary>
    ''' Import options for NewFileAsync.
    ''' </summary>
    Public Class NewFileOptions
        Inherits BaseOptions

        ''' <summary>
        ''' Date when the file was imported. Can be in the past. Defaults to now.
        ''' </summary>
        Public Property DateImported As Date = Date.Now
    End Class

    ''' <summary>
    ''' Import options for NewFileAsync.
    ''' </summary>
    Public Class CheckOutInOptions
        Inherits BaseOptions
    End Class

    Public Class UpdateFileOptions
        Inherits BaseOptions

        ''' <summary>
        ''' Should the changes in the file result in a new version? Otherwise the old file will be overridden.
        ''' </summary>
        Public Property CreateNewFileVersion As Boolean = False
    End Class

    Public Class ImportFileOptions
        Inherits BaseOptions

        ''' <summary>
        ''' Date when the file was imported. Can be in the past. Defaults to now.
        ''' </summary>
        Public Property DateImported As Date = Date.Now
    End Class

    Public Class SetObjectStateOptions
        Inherits BaseOptions

        ''' <summary>
        ''' Date when the file was imported. Can be in the past. Defaults to now.
        ''' </summary>
        Public Property DateImported As Date = Date.Now
    End Class

    Public Class SetAttributeValueOptions
        Inherits BaseOptions
    End Class


    Public Class GetVariableValueOptions
        Inherits BaseOptions
    End Class

    Public Class SetVariableValueOptions
        Inherits BaseOptions
    End Class

    Public Class NewObjectOptions
        Inherits BaseOptions
    End Class
End Class