(* Options:
Date: 2025-04-14 00:20:34
Version: 8.22
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://data.regent-college.edu

//GlobalNamespace: 
//MakeDataContractsExtensible: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//ExportValueTypes: False
IncludeTypes: SectionsAvailableForStudentRequest.*
//ExcludeTypes: 
//InitializeCollections: True
//AddNamespaces: 
*)

namespace regis.ClassLibrary.Requests

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<DataContract>]
    [<AllowNullLiteral>]
    type ResponseStatus() = 
        [<DataMember(Order=1)>]
        member val ErrorCode:String = null with get,set

        [<DataMember(Order=2)>]
        member val Message:String = null with get,set

        [<DataMember(Order=3)>]
        member val StackTrace:String = null with get,set

        [<DataMember(Order=4)>]
        member val Errors:ResizeArray<ResponseError> = new ResizeArray<ResponseError>() with get,set

        [<DataMember(Order=5)>]
        member val Meta:Dictionary<String, String> = new Dictionary<String, String>() with get,set

    [<AllowNullLiteral>]
    type SectionAvailableForStudentResponse() = 
        inherit SectionResponse()
        member val uuid:String = null with get,set
        member val studentSectionUUID:String = null with get,set
        member val registered_amount:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val is_full:Boolean = new Boolean() with get,set
        member val is_too_late:Boolean = new Boolean() with get,set
        member val is_too_early:Boolean = new Boolean() with get,set
        member val is_audit:Boolean = new Boolean() with get,set
        member val is_selected:Boolean = new Boolean() with get,set
        member val is_registered:Boolean = new Boolean() with get,set
        member val is_provisional:Boolean = new Boolean() with get,set
        member val is_missing_requisites:Boolean = new Boolean() with get,set
        member val is_completed:Boolean = new Boolean() with get,set
        member val maximum_credit_hours:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val maximum_audit_hours:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val can_retake:Boolean = new Boolean() with get,set
        member val is_credit_restricted:Boolean = new Boolean() with get,set
        member val is_audit_restricted:Boolean = new Boolean() with get,set
        member val is_oncampus_restricted_for_change:Boolean = new Boolean() with get,set
        member val is_online_restricted_for_change:Boolean = new Boolean() with get,set
        member val can_be_provisional:Boolean = new Boolean() with get,set
        member val can_be_dropped:Boolean = new Boolean() with get,set
        member val ruleMessages:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type SectionsAvailableForStudentResponse() = 
        member val ResponseStatus:ResponseStatus = null with get,set
        member val regent_id:Int32 = new Int32() with get,set
        member val uuid:String = null with get,set
        member val reporting_term:String = null with get,set
        member val notifyOfAcademicProbation:Boolean = new Boolean() with get,set
        member val sectionsAvailable:ResizeArray<SectionAvailableForStudentResponse> = new ResizeArray<SectionAvailableForStudentResponse>() with get,set
        member val messages:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<Route("/Sections/Available/{uuid}/Term/{reporting_term}", "POST")>]
    [<AllowNullLiteral>]
    type SectionsAvailableForStudentRequest() = 
        interface IReturn<SectionsAvailableForStudentResponse>
        member val uuid:String = null with get,set
        member val transaction_uuid:String = null with get,set
        member val reporting_term:String = null with get,set
        member val online_only:Boolean = new Boolean() with get,set
        member val oncampus_only:Boolean = new Boolean() with get,set
        member val is_admin:Boolean = new Boolean() with get,set