(* Options:
Date: 2025-03-15 20:30:23
Version: 8.30
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://api.sanctionssearch.com/v2

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

namespace SanctionsSearch.Api2.ServiceModel.Operations.Base

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

    [<DataContract>]
    [<AllowNullLiteral>]
    type Authentication() = 
        ///<summary>
        ///The API User ID provided by us when you signed up to use our API
        ///</summary>
        [<DataMember>]
        [<ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")>]
        member val ApiUserId:String = null with get,set

        ///<summary>
        ///The API User Key provided by us when you signed up to use our API
        ///</summary>
        [<DataMember>]
        [<ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")>]
        member val ApiUserKey:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type BaseRequest() = 
        ///<summary>
        ///The authentication credentials
        ///</summary>
        [<DataMember>]
        [<ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body")>]
        member val Authentication:Authentication = null with get,set

    [<AllowNullLiteral>]
    type IBaseRequest = 
        abstract Authentication:Authentication with get,set

    [<AllowNullLiteral>]
    type AddPepSearchNoteRequest() = 
        member val Id:Int64 = new Int64() with get,set
        member val Note:String = null with get,set
        member val SubUserName:String = null with get,set

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

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

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

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

    [<AllowNullLiteral>]
    type ArrayOfResponseError() = 
        inherit ResizeArray<ResponseError>()

    [<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:ArrayOfResponseError = null with get,set

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

    [<AllowNullLiteral>]
    type BaseResponse() = 
        ///<summary>
        ///The status of the response
        ///</summary>
        [<ApiMember(Description="The status of the response")>]
        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type SearchNote() = 
        member val Name:String = null with get,set
        member val Date:DateTime = new DateTime() with get,set
        member val Content:String = null with get,set

    [<AllowNullLiteral>]
    type ArrayOfSearchNote() = 
        inherit ResizeArray<SearchNote>()

    [<AllowNullLiteral>]
    type AddPepSearchNoteData() = 
        inherit BaseResponse()
        member val Success:Boolean = new Boolean() with get,set
        member val Notes:ArrayOfSearchNote = null with get,set
        member val Id:Int64 = new Int64() with get,set

    [<AllowNullLiteral>]
    type ISearchNoteRequest = 
        abstract Id:Int64 with get,set
        abstract SubUserName:String with get,set

    [<AllowNullLiteral>]
    type IBaseDataResponse = 
        abstract ResponseStatus:ResponseStatus with get,set

    [<AllowNullLiteral>]
    type IHasResponseStatus = 
        abstract ResponseStatus:ResponseStatus with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type AddPepSearchNoteResponse() = 
        [<DataMember>]
        member val Data:AddPepSearchNoteData = null with get,set

    [<Route("/peps/notes/add", "POST")>]
    [<DataContract>]
    [<AllowNullLiteral>]
    type AddPepSearchNote() = 
        inherit BaseRequest()
        interface IReturn<AddPepSearchNoteResponse>
        [<DataMember>]
        member val Request:AddPepSearchNoteRequest = null with get,set