(* Options:
Date: 2025-04-11 10:31:46
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: TermRequest.*
//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 TermResponse() = 
        member val ResponseStatus:ResponseStatus = null with get,set
        member val term:String = null with get,set
        member val reporting_term:String = null with get,set
        member val reporting_year:Int32 = new Int32() with get,set
        member val description:String = null with get,set
        member val start_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val end_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val registration_start_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val registration_end_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val drop_start_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val drop_end_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val add_start_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val add_end_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val grading_end_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val number_of_sections:Int32 = new Int32() with get,set
        member val number_of_rates:Int32 = new Int32() with get,set

    [<Route("/Terms/{term}", "POST")>]
    [<AllowNullLiteral>]
    type TermRequest() = 
        interface IReturn<TermResponse>
        member val term:String = null with get,set