(* Options:
Date: 2025-03-15 20:57:47
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: SaveCompanyLookUp.*
//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 SaveCompanyLookUpRequest() = 
        ///<summary>
        ///If the saved document should be kept within a single Sub User account, specify their username here
        ///</summary>
        [<ApiMember(Description="If the saved document should be kept within a single Sub User account, specify their username here")>]
        member val SubUserName:String = null with get,set

        ///<summary>
        ///The ID of the search that is being saved
        ///</summary>
        [<ApiMember(Description="The ID of the search that is being saved")>]
        member val Id:Int32 = new Int32() 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 SaveCompanyLookUpData() = 
        inherit BaseResponse()
        ///<summary>
        ///Did the request succeed
        ///</summary>
        [<ApiMember(Description="Did the request succeed")>]
        member val Success:Boolean = new Boolean() with get,set

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

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

    [<DataContract>]
    [<AllowNullLiteral>]
    type SaveCompanyLookUpResponse() = 
        ///<summary>
        ///The response data
        ///</summary>
        [<DataMember>]
        [<ApiMember(Description="The response data")>]
        member val Data:SaveCompanyLookUpData = null with get,set

    [<Route("/companylookups/save", "POST")>]
    [<DataContract>]
    [<AllowNullLiteral>]
    type SaveCompanyLookUp() = 
        inherit BaseRequest()
        interface IReturn<SaveCompanyLookUpResponse>
        ///<summary>
        ///The request data
        ///</summary>
        [<DataMember>]
        [<ApiMember(Description="The request data", ParameterType="body")>]
        member val Request:SaveCompanyLookUpRequest = null with get,set