' Options:
'Date: 2025-03-15 15:47:12
'Version: 8.30
'Tip: To override a DTO option, remove "''" prefix before updating
'BaseUrl: https://api.sanctionssearch.com/v2
'
'''GlobalNamespace: 
'''MakePartial: True
'''MakeVirtual: True
'''MakeDataContractsExtensible: False
'''AddReturnMarker: True
'''AddDescriptionAsComments: True
'''AddDataContractAttributes: False
'''AddIndexesToDataMembers: False
'''AddGeneratedCodeAttributes: False
'''AddResponseStatus: False
'''AddImplicitVersion: 
'''InitializeCollections: True
'''ExportValueTypes: False
'IncludeTypes: GetPepSearches.*
'''ExcludeTypes: 
'''AddNamespaces: 
'''AddDefaultXmlNamespace: http://schemas.servicestack.net/types

Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports SanctionsSearch.Api2.ServiceModel.Types
Imports SanctionsSearch.Api2.ServiceModel.Operations.Base
Imports SanctionsSearch.Api2.ServiceModel.Operations.PepSearches

Namespace Global

    Namespace SanctionsSearch.Api2.ServiceModel.Operations.Base

        Public Partial Class ArrayOfResponseError
            Inherits List(Of ResponseError)
        End Class

        <DataContract>
        Public Partial Class BaseRequest
            Implements IBaseRequest
            '''<Summary>
            '''The authentication credentials
            '''</Summary>
            <DataMember>
            <ApiMember(Description:="The authentication credentials", IsRequired:=true, ParameterType:="header, body")>
            Public Overridable Property Authentication As Authentication
        End Class

        Public Partial Class BaseResponse
            Implements IBaseDataResponse
            Implements IHasResponseStatus
            '''<Summary>
            '''The status of the response
            '''</Summary>
            <ApiMember(Description:="The status of the response")>
            Public Overridable Property ResponseStatus As ResponseStatus
        End Class

        Public Interface IBaseDataResponse
            Property ResponseStatus As ResponseStatus
        End Interface

        Public Interface IBaseRequest
            Property Authentication As Authentication
        End Interface

        Public Interface IHasResponseStatus
            Property ResponseStatus As ResponseStatus
        End Interface

        <DataContract>
        Public Partial Class ResponseError
            Public Sub New()
                Meta = New Dictionary(Of String, String)
            End Sub

            <DataMember(Order:=1)>
            Public Overridable Property ErrorCode As String

            <DataMember(Order:=2)>
            Public Overridable Property FieldName As String

            <DataMember(Order:=3)>
            Public Overridable Property Message As String

            <DataMember(Order:=4)>
            Public Overridable Property Meta As Dictionary(Of String, String)
        End Class

        <DataContract>
        Public Partial Class ResponseStatus
            Public Sub New()
                Meta = New Dictionary(Of String, String)
            End Sub

            <DataMember(Order:=1)>
            Public Overridable Property ErrorCode As String

            <DataMember(Order:=2)>
            Public Overridable Property Message As String

            <DataMember(Order:=3)>
            Public Overridable Property StackTrace As String

            <DataMember(Order:=4)>
            Public Overridable Property Errors As ArrayOfResponseError

            <DataMember(Order:=5)>
            Public Overridable Property Meta As Dictionary(Of String, String)
        End Class
    End Namespace

    Namespace SanctionsSearch.Api2.ServiceModel.Operations.PepSearches

        <Route("/peps/list", "POST")>
        <DataContract>
        Public Partial Class GetPepSearches
            Inherits BaseRequest
            Implements IReturn(Of GetPepSearchesResponse)
            <DataMember>
            Public Overridable Property Request As GetPepSearchesRequest
        End Class

        Public Partial Class GetPepSearchesData
            Inherits BaseResponse
            Public Overridable Property TotalSearchRecords As Integer
            Public Overridable Property CurrentPageNum As Integer
            Public Overridable Property MaxPageNum As Integer
            Public Overridable Property SearchRecords As ArrayOfPepSearchListItem
        End Class

        Public Partial Class GetPepSearchesRequest
            '''<Summary>
            '''If the searches are being accessed by a sub user, specify their username here to only return searches they have permissions to view
            '''</Summary>
            <ApiMember(Description:="If the searches are being accessed by a sub user, specify their username here to only return searches they have permissions to view")>
            Public Overridable Property SubUserName As String

            Public Overridable Property ListUnresolvedSearches As Nullable(Of Boolean)
            Public Overridable Property ListUpdatedSearches As Nullable(Of Boolean)
            Public Overridable Property ListArchivedSearches As Boolean
            Public Overridable Property Page As Integer
            Public Overridable Property SortOrder As String
            Public Overridable Property NameSearch As String
            Public Overridable Property NameSearchExact As Boolean
            Public Overridable Property FilterReference As String
            Public Overridable Property FilterPepType As String
            Public Overridable Property FilterType As String
            Public Overridable Property FilterDateFrom As Nullable(Of Date)
            Public Overridable Property FilterDateTo As Nullable(Of Date)
            '''<Summary>
            '''If set, will only return searches created by the user
            '''</Summary>
            <ApiMember(Description:="If set, will only return searches created by the user")>
            Public Overridable Property FilterUserName As String
        End Class

        <DataContract>
        Public Partial Class GetPepSearchesResponse
            <DataMember>
            Public Overridable Property Data As GetPepSearchesData
        End Class
    End Namespace

    Namespace SanctionsSearch.Api2.ServiceModel.Types

        Public Partial Class ArrayOfPepSearchListItem
            Inherits List(Of PepSearchListItem)
        End Class

        <DataContract>
        Public Partial Class 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")>
            Public Overridable Property ApiUserId As String

            '''<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")>
            Public Overridable Property ApiUserKey As String
        End Class

        Public Partial Class PepSearchListItem
            Public Overridable Property Id As Long
            Public Overridable Property SearchType As String
            Public Overridable Property DateSearched As Date
            Public Overridable Property DateUpdated As Date
            Public Overridable Property DateRenewal As Nullable(Of Date)
            Public Overridable Property DateArchived As Nullable(Of Date)
            Public Overridable Property IsArchived As Boolean
            Public Overridable Property NumOfResults As Integer
            Public Overridable Property ClientInResults As Boolean
            Public Overridable Property ClientNotInResults As Boolean
            Public Overridable Property AffectedByUpdate As Boolean
            Public Overridable Property IsDayOneSearch As Boolean
            Public Overridable Property SearchCriteria As SearchCriteria
        End Class

        Public Partial Class SearchCriteria
            Public Overridable Property Name As String
            Public Overridable Property Address As String
            Public Overridable Property Country As String
            Public Overridable Property DateOfBirth As String
            Public Overridable Property Nationality As String
            Public Overridable Property Reference As String
        End Class
    End Namespace
End Namespace