in codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules2/RuleRuntimeTypeMirror.java [118:201]
static List<RuleFunctionMirror> builtInFunctions(Map<String, RuleType> types) {
RuleType containingType = types.get(RULES_FUNCTIONS_TYPE_NAME);
return Arrays.asList(
RuleFunctionMirror
.builder("not")
.returns(BOOLEAN)
.addArgument("value", BOOLEAN)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("substring")
.returns(STRING)
.addArgument("index", STRING)
.addArgument("startIdx", INTEGER)
.addArgument("endIdx", INTEGER)
.addArgument("reverse", BOOLEAN)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("stringEquals")
.returns(BOOLEAN)
.addArgument("left", STRING)
.addArgument("right", STRING)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("booleanEquals")
.returns(BOOLEAN)
.addArgument("left", BOOLEAN)
.addArgument("right", BOOLEAN)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("uriEncode")
.returns(STRING)
.addArgument("value", STRING)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("parseURL")
.returns(types.get(URL_TYPE_NAME))
.addArgument("value", STRING)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("isValidHostLabel")
.returns(BOOLEAN)
.addArgument("value", STRING)
.addArgument("allowSubDomains", BOOLEAN)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("aws.partition")
.javaName("awsPartition")
.returns(types.get(PARTITION_TYPE_NAME))
.addArgument("value", STRING)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("aws.parseArn")
.javaName("awsParseArn")
.returns(types.get(ARN_TYPE_NAME))
.addArgument("value", STRING)
.containingType(containingType)
.build(),
RuleFunctionMirror
.builder("aws.isVirtualHostableS3Bucket")
.javaName("awsIsVirtualHostableS3Bucket")
.returns(BOOLEAN)
.addArgument("value", STRING)
.addArgument("allowSubDomains", BOOLEAN)
.containingType(containingType)
.build(),
// Not well-defined, should take List<T> and return T
// still does the trick for codegen.
RuleFunctionMirror
.builder("listAccess")
.returns(BOOLEAN)
.addArgument("value", LIST_OF_STRING)
.addArgument("index", INTEGER)
.containingType(containingType)
.build()
);
}