/* Options:
Date: 2025-07-27 09:46:17
Version: 8.30
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://api.sanctionssearch.com/v2

//GlobalNamespace: 
//MakePropertiesOptional: False
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: UpdatePepSearch.*
//ExcludeTypes: 
//DefaultImports: 
*/


export interface IReturn<T>
{
    createResponse(): T;
}

// @DataContract
export class Authentication
{
    /** @description The API User ID provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-User) */
    // @DataMember
    // @ApiMember(Description="The API User ID provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-User)", IsRequired=true, ParameterType="header, body")
    public apiUserId: string;

    /** @description The API User Key provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-Key) */
    // @DataMember
    // @ApiMember(Description="The API User Key provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-Key)", IsRequired=true, ParameterType="header, body")
    public apiUserKey: string;

    /** @description The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id). */
    // @DataMember
    // @ApiMember(Description="The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id).", ParameterType="header, body")
    public userId: string;

    public constructor(init?: Partial<Authentication>) { (Object as any).assign(this, init); }
}

// @DataContract
export class BaseRequest implements IBaseRequest
{
    /** @description The authentication credentials */
    // @DataMember
    // @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body")
    public authentication: Authentication;

    public constructor(init?: Partial<BaseRequest>) { (Object as any).assign(this, init); }
}

export interface IBaseRequest
{
    authentication: Authentication;
}

export class ArrayOfSearchResultId extends Array<number>
{

    public constructor(init?: Partial<ArrayOfSearchResultId>) { super(); (Object as any).assign(this, init); }
}

export class UpdatePepSearchRequest
{
    public id: number;
    public clientInResults: boolean;
    public clientNotInResults: boolean;
    public searchResultIds: ArrayOfSearchResultId;

    public constructor(init?: Partial<UpdatePepSearchRequest>) { (Object as any).assign(this, init); }
}

// @DataContract
export class ResponseError
{
    // @DataMember(Order=1)
    public errorCode: string;

    // @DataMember(Order=2)
    public fieldName: string;

    // @DataMember(Order=3)
    public message: string;

    // @DataMember(Order=4)
    public meta: { [index: string]: string; };

    public constructor(init?: Partial<ResponseError>) { (Object as any).assign(this, init); }
}

export class ArrayOfResponseError extends Array<ResponseError>
{

    public constructor(init?: Partial<ArrayOfResponseError>) { super(); (Object as any).assign(this, init); }
}

// @DataContract
export class ResponseStatus
{
    // @DataMember(Order=1)
    public errorCode: string;

    // @DataMember(Order=2)
    public message: string;

    // @DataMember(Order=3)
    public stackTrace: string;

    // @DataMember(Order=4)
    public errors: ArrayOfResponseError;

    // @DataMember(Order=5)
    public meta: { [index: string]: string; };

    public constructor(init?: Partial<ResponseStatus>) { (Object as any).assign(this, init); }
}

export class BaseResponse implements IBaseDataResponse, IHasResponseStatus
{
    /** @description The status of the response */
    // @ApiMember(Description="The status of the response")
    public responseStatus: ResponseStatus;

    public constructor(init?: Partial<BaseResponse>) { (Object as any).assign(this, init); }
}

export class UpdatePepSearchData extends BaseResponse
{
    public success: boolean;

    public constructor(init?: Partial<UpdatePepSearchData>) { super(init); (Object as any).assign(this, init); }
}

export interface IBaseDataResponse
{
    responseStatus: ResponseStatus;
}

export interface IHasResponseStatus
{
    responseStatus: ResponseStatus;
}

// @DataContract
export class UpdatePepSearchResponse
{
    // @DataMember
    public data: UpdatePepSearchData;

    public constructor(init?: Partial<UpdatePepSearchResponse>) { (Object as any).assign(this, init); }
}

// @Route("/peps/update", "PUT")
// @DataContract
export class UpdatePepSearch extends BaseRequest implements IReturn<UpdatePepSearchResponse>
{
    // @DataMember
    public request: UpdatePepSearchRequest;

    public constructor(init?: Partial<UpdatePepSearch>) { super(init); (Object as any).assign(this, init); }
    public getTypeName() { return 'UpdatePepSearch'; }
    public getMethod() { return 'PUT'; }
    public createResponse() { return new UpdatePepSearchResponse(); }
}