in common/src/main/java/org/opensearch/ml/common/parameter/MLInput.java [133:168]
public static MLInput parse(XContentParser parser, String inputAlgoName) throws IOException {
String algorithmName = inputAlgoName.toUpperCase(Locale.ROOT);
FunctionName algorithm = FunctionName.valueOf(algorithmName);
MLAlgoParams mlParameters = null;
SearchSourceBuilder searchSourceBuilder = null;
List<String> sourceIndices = new ArrayList<>();
DataFrame dataFrame = null;
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser);
while (parser.nextToken() != XContentParser.Token.END_OBJECT) {
String fieldName = parser.currentName();
parser.nextToken();
switch (fieldName) {
case ML_PARAMETERS_FIELD:
mlParameters = parser.namedObject(MLAlgoParams.class, algorithmName, null);
break;
case INPUT_INDEX_FIELD:
ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.currentToken(), parser);
while (parser.nextToken() != XContentParser.Token.END_ARRAY) {
sourceIndices.add(parser.text());
}
break;
case INPUT_QUERY_FIELD:
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser);
searchSourceBuilder = SearchSourceBuilder.fromXContent(parser, false);
break;
case INPUT_DATA_FIELD:
dataFrame = DefaultDataFrame.parse(parser);
default:
parser.skipChildren();
break;
}
}
return new MLInput(algorithm, mlParameters, searchSourceBuilder, sourceIndices, dataFrame, null);
}