001package com.box.sdkgen.schemas.aillmendpointparams; 002 003import com.box.sdkgen.internal.OneOfFour; 004import com.box.sdkgen.schemas.aillmendpointparamsaws.AiLlmEndpointParamsAws; 005import com.box.sdkgen.schemas.aillmendpointparamsgoogle.AiLlmEndpointParamsGoogle; 006import com.box.sdkgen.schemas.aillmendpointparamsibm.AiLlmEndpointParamsIbm; 007import com.box.sdkgen.schemas.aillmendpointparamsopenai.AiLlmEndpointParamsOpenAi; 008import com.box.sdkgen.serialization.json.EnumWrapper; 009import com.box.sdkgen.serialization.json.JsonManager; 010import com.fasterxml.jackson.core.JsonParser; 011import com.fasterxml.jackson.databind.DeserializationContext; 012import com.fasterxml.jackson.databind.JsonDeserializer; 013import com.fasterxml.jackson.databind.JsonMappingException; 014import com.fasterxml.jackson.databind.JsonNode; 015import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 016import com.fasterxml.jackson.databind.annotation.JsonSerialize; 017import java.io.IOException; 018 019@JsonDeserialize(using = AiLlmEndpointParams.AiLlmEndpointParamsDeserializer.class) 020@JsonSerialize(using = OneOfFour.OneOfFourSerializer.class) 021public class AiLlmEndpointParams 022 extends OneOfFour< 023 AiLlmEndpointParamsOpenAi, 024 AiLlmEndpointParamsGoogle, 025 AiLlmEndpointParamsAws, 026 AiLlmEndpointParamsIbm> { 027 028 protected final String type; 029 030 protected final Double temperature; 031 032 protected final Double topP; 033 034 public AiLlmEndpointParams(AiLlmEndpointParamsOpenAi aiLlmEndpointParamsOpenAi) { 035 super(aiLlmEndpointParamsOpenAi, null, null, null); 036 this.type = EnumWrapper.convertToString(aiLlmEndpointParamsOpenAi.getType()); 037 this.temperature = aiLlmEndpointParamsOpenAi.getTemperature(); 038 this.topP = aiLlmEndpointParamsOpenAi.getTopP(); 039 } 040 041 public AiLlmEndpointParams(AiLlmEndpointParamsGoogle aiLlmEndpointParamsGoogle) { 042 super(null, aiLlmEndpointParamsGoogle, null, null); 043 this.type = EnumWrapper.convertToString(aiLlmEndpointParamsGoogle.getType()); 044 this.temperature = aiLlmEndpointParamsGoogle.getTemperature(); 045 this.topP = aiLlmEndpointParamsGoogle.getTopP(); 046 } 047 048 public AiLlmEndpointParams(AiLlmEndpointParamsAws aiLlmEndpointParamsAws) { 049 super(null, null, aiLlmEndpointParamsAws, null); 050 this.type = EnumWrapper.convertToString(aiLlmEndpointParamsAws.getType()); 051 this.temperature = aiLlmEndpointParamsAws.getTemperature(); 052 this.topP = aiLlmEndpointParamsAws.getTopP(); 053 } 054 055 public AiLlmEndpointParams(AiLlmEndpointParamsIbm aiLlmEndpointParamsIbm) { 056 super(null, null, null, aiLlmEndpointParamsIbm); 057 this.type = EnumWrapper.convertToString(aiLlmEndpointParamsIbm.getType()); 058 this.temperature = aiLlmEndpointParamsIbm.getTemperature(); 059 this.topP = aiLlmEndpointParamsIbm.getTopP(); 060 } 061 062 public boolean isAiLlmEndpointParamsOpenAi() { 063 return value0 != null; 064 } 065 066 public AiLlmEndpointParamsOpenAi getAiLlmEndpointParamsOpenAi() { 067 return value0; 068 } 069 070 public boolean isAiLlmEndpointParamsGoogle() { 071 return value1 != null; 072 } 073 074 public AiLlmEndpointParamsGoogle getAiLlmEndpointParamsGoogle() { 075 return value1; 076 } 077 078 public boolean isAiLlmEndpointParamsAws() { 079 return value2 != null; 080 } 081 082 public AiLlmEndpointParamsAws getAiLlmEndpointParamsAws() { 083 return value2; 084 } 085 086 public boolean isAiLlmEndpointParamsIbm() { 087 return value3 != null; 088 } 089 090 public AiLlmEndpointParamsIbm getAiLlmEndpointParamsIbm() { 091 return value3; 092 } 093 094 public String getType() { 095 return type; 096 } 097 098 public double getTemperature() { 099 return temperature; 100 } 101 102 public double getTopP() { 103 return topP; 104 } 105 106 static class AiLlmEndpointParamsDeserializer extends JsonDeserializer<AiLlmEndpointParams> { 107 108 public AiLlmEndpointParamsDeserializer() { 109 super(); 110 } 111 112 @Override 113 public AiLlmEndpointParams deserialize(JsonParser jp, DeserializationContext ctxt) 114 throws IOException { 115 JsonNode node = JsonManager.jsonToSerializedData(jp); 116 JsonNode discriminant0 = node.get("type"); 117 if (!(discriminant0 == null)) { 118 switch (discriminant0.asText()) { 119 case "openai_params": 120 return new AiLlmEndpointParams( 121 JsonManager.deserialize(node, AiLlmEndpointParamsOpenAi.class)); 122 case "google_params": 123 return new AiLlmEndpointParams( 124 JsonManager.deserialize(node, AiLlmEndpointParamsGoogle.class)); 125 case "aws_params": 126 return new AiLlmEndpointParams( 127 JsonManager.deserialize(node, AiLlmEndpointParamsAws.class)); 128 case "ibm_params": 129 return new AiLlmEndpointParams( 130 JsonManager.deserialize(node, AiLlmEndpointParamsIbm.class)); 131 } 132 } 133 throw new JsonMappingException(jp, "Unable to deserialize AiLlmEndpointParams"); 134 } 135 } 136}