(* Options:
Date: 2025-05-17 10:25:25
Version: 8.40
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://active-ewebservice.biz/aeservices30/api

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

namespace AIM

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

    [<DataContract>]
    [<AllowNullLiteral>]
    type BaseRequest() = 
        ///<summary>
        ///This is your AIM API Key provided by Tri-Tech
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header")>]
        member val ApiKey:String = null with get,set

        [<DataMember>]
        [<ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")>]
        member val OAuthToken:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type CourseGeneric() = 
        [<DataMember>]
        member val Course:String = null with get,set

        [<DataMember>]
        member val CourseTopic:String = null with get,set

        [<DataMember>]
        member val Location:String = null with get,set

        [<DataMember>]
        member val Has18Holes:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val OnlineBuffer:Int32 = new Int32() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type BaseResponse() = 
        ///<summary>
        ///
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")>]
        member val Status:BaseResponseResult = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type GetCoursesResponse() = 
        inherit BaseResponse()
        [<DataMember>]
        member val Courses:ResizeArray<CourseGeneric> = new ResizeArray<CourseGeneric>() with get,set

    ///<summary>
    ///GetCoursesRequires active-e Tee-Sheet Service
    ///</summary>
    [<Route("/GetCourses", "GET")>]
    [<DataContract>]
    [<AllowNullLiteral>]
    type GetCoursesRequest() = 
        inherit BaseRequest()
        interface IReturn<GetCoursesResponse>