/* Options:
Date: 2025-06-10 10:32:52
Version: 8.30
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://api.sanctionssearch.com/v2

//Package: 
//GlobalNamespace: dtos
//AddPropertyAccessors: True
//SettersReturnThis: True
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddDescriptionAsComments: True
//AddImplicitVersion: 
IncludeTypes: SaveCompanyLookUp.*
//ExcludeTypes: 
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,net.servicestack.client.*
*/

import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    @Route(Path="/companylookups/save", Verbs="POST")
    @DataContract
    public static class SaveCompanyLookUp extends BaseRequest implements IReturn<SaveCompanyLookUpResponse>
    {
        /**
        * The request data
        */
        @DataMember
        @ApiMember(Description="The request data", ParameterType="body")
        public SaveCompanyLookUpRequest request = null;
        
        public SaveCompanyLookUpRequest getRequest() { return request; }
        public SaveCompanyLookUp setRequest(SaveCompanyLookUpRequest value) { this.request = value; return this; }
        private static Object responseType = SaveCompanyLookUpResponse.class;
        public Object getResponseType() { return responseType; }
    }

    @DataContract
    public static class SaveCompanyLookUpResponse
    {
        /**
        * The response data
        */
        @DataMember
        @ApiMember(Description="The response data")
        public SaveCompanyLookUpData data = null;
        
        public SaveCompanyLookUpData getData() { return data; }
        public SaveCompanyLookUpResponse setData(SaveCompanyLookUpData value) { this.data = value; return this; }
    }

    @DataContract
    public static class Authentication
    {
        /**
        * 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 String apiUserId = null;

        /**
        * 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 String apiUserKey = null;

        /**
        * 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 String userId = null;
        
        public String getApiUserId() { return apiUserId; }
        public Authentication setApiUserId(String value) { this.apiUserId = value; return this; }
        public String getApiUserKey() { return apiUserKey; }
        public Authentication setApiUserKey(String value) { this.apiUserKey = value; return this; }
        public String getUserId() { return userId; }
        public Authentication setUserId(String value) { this.userId = value; return this; }
    }

    @DataContract
    public static class BaseRequest implements IBaseRequest
    {
        /**
        * The authentication credentials
        */
        @DataMember
        @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body")
        public Authentication authentication = null;
        
        public Authentication getAuthentication() { return authentication; }
        public BaseRequest setAuthentication(Authentication value) { this.authentication = value; return this; }
    }

    public static interface IBaseRequest
    {
        public Authentication authentication = null;
    }

    public static class SaveCompanyLookUpRequest
    {
        /**
        * If the saved document should be kept within a single Sub User account, specify their username here
        */
        @ApiMember(Description="If the saved document should be kept within a single Sub User account, specify their username here")
        public String subUserName = null;

        /**
        * The ID of the search that is being saved
        */
        @ApiMember(Description="The ID of the search that is being saved")
        public Integer id = null;
        
        public String getSubUserName() { return subUserName; }
        public SaveCompanyLookUpRequest setSubUserName(String value) { this.subUserName = value; return this; }
        public Integer getId() { return id; }
        public SaveCompanyLookUpRequest setId(Integer value) { this.id = value; return this; }
    }

    public static class SaveCompanyLookUpData extends BaseResponse
    {
        /**
        * Did the request succeed
        */
        @ApiMember(Description="Did the request succeed")
        public Boolean success = null;
        
        public Boolean isSuccess() { return success; }
        public SaveCompanyLookUpData setSuccess(Boolean value) { this.success = value; return this; }
    }

    public static class BaseResponse implements IBaseDataResponse, IHasResponseStatus
    {
        /**
        * The status of the response
        */
        @ApiMember(Description="The status of the response")
        public ResponseStatus responseStatus = null;
        
        public ResponseStatus getResponseStatus() { return responseStatus; }
        public BaseResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
    }

    public static interface IBaseDataResponse
    {
        public ResponseStatus responseStatus = null;
    }

    public static interface IHasResponseStatus
    {
        public ResponseStatus responseStatus = null;
    }

    public static class ArrayOfResponseError extends ArrayList<ResponseError>
    {
        
    }

}