in codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointResolverInterceptorSpec.java [295:362]
private MethodSpec ruleParams() {
MethodSpec.Builder b = MethodSpec.methodBuilder("ruleParams")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.returns(endpointRulesSpecUtils.parametersClassName())
.addParameter(SdkRequest.class, "request")
.addParameter(ExecutionAttributes.class, "executionAttributes");
b.addStatement("$T builder = $T.builder()", paramsBuilderClass(), endpointRulesSpecUtils.parametersClassName());
Map<String, ParameterModel> parameters = model.getEndpointRuleSetModel().getParameters();
parameters.forEach((n, m) -> {
if (m.getBuiltInEnum() == null) {
return;
}
String setter = Utils.unCapitalize(CodegenNamingUtils.pascalCase(n));
switch (m.getBuiltInEnum()) {
case AWS_REGION:
b.addStatement(endpointProviderUtilsSetter("regionBuiltIn", setter));
break;
case AWS_USE_DUAL_STACK:
b.addStatement(endpointProviderUtilsSetter("dualStackEnabledBuiltIn", setter));
break;
case AWS_USE_FIPS:
b.addStatement(endpointProviderUtilsSetter("fipsEnabledBuiltIn", setter));
break;
case SDK_ENDPOINT:
b.addStatement(endpointProviderUtilsSetter("endpointBuiltIn", setter));
break;
case AWS_AUTH_ACCOUNT_ID:
b.addStatement("builder.$N(resolveAndRecordAccountIdFromIdentity(executionAttributes))", setter);
break;
case AWS_AUTH_ACCOUNT_ID_ENDPOINT_MODE:
b.addStatement("builder.$N(recordAccountIdEndpointMode(executionAttributes))", setter);
break;
case AWS_S3_USE_GLOBAL_ENDPOINT:
b.addStatement("builder.$N(executionAttributes.getAttribute($T.$N))",
setter, AwsExecutionAttribute.class, model.getNamingStrategy().getEnumValueName(n));
break;
// The S3 specific built-ins are set through the existing S3Configuration and set through client context params
case AWS_S3_ACCELERATE:
case AWS_S3_DISABLE_MULTI_REGION_ACCESS_POINTS:
case AWS_S3_FORCE_PATH_STYLE:
case AWS_S3_USE_ARN_REGION:
case AWS_S3_CONTROL_USE_ARN_REGION:
// end of S3 specific builtins
// V2 doesn't support this, only regional endpoints
case AWS_STS_USE_GLOBAL_ENDPOINT:
return;
default:
throw new RuntimeException("Don't know how to set built-in " + m.getBuiltInEnum());
}
});
if (hasClientContextParams()) {
b.addStatement("setClientContextParams(builder, executionAttributes)");
}
b.addStatement("setContextParams(builder, executionAttributes.getAttribute($T.OPERATION_NAME), request)",
AwsExecutionAttribute.class);
b.addStatement("setStaticContextParams(builder, executionAttributes.getAttribute($T.OPERATION_NAME))",
AwsExecutionAttribute.class);
b.addStatement("setOperationContextParams(builder, executionAttributes.getAttribute($T.OPERATION_NAME), request)",
AwsExecutionAttribute.class);
b.addStatement("return builder.build()");
return b.build();
}