in aws-nimblestudio-studiocomponent/src/main/java/software/amazon/nimblestudio/studiocomponent/UpdateHandler.java [122:228]
private UpdateStudioComponentRequest fromResourceModel(final ResourceModel model, final String requestClientToken) {
// Only StudioId and StudioComponentId are required
final UpdateStudioComponentRequest.Builder updateStudioComponentRequestBuilder = UpdateStudioComponentRequest.builder()
.clientToken(requestClientToken)
.studioComponentId(model.getStudioComponentId())
.studioId(model.getStudioId());
final StudioComponentConfiguration.Builder studioComponentConfigurationBuilder = StudioComponentConfiguration.builder();
if (model.getConfiguration() != null && model.getConfiguration().getActiveDirectoryConfiguration() != null) {
final ActiveDirectoryConfiguration.Builder adConfig = ActiveDirectoryConfiguration.builder();
if (model.getConfiguration().getActiveDirectoryConfiguration().getComputerAttributes() != null) {
final List<ActiveDirectoryComputerAttribute> modelComputerAttribute =
model.getConfiguration().getActiveDirectoryConfiguration().getComputerAttributes();
adConfig.computerAttributes(
modelComputerAttribute.stream()
.map(ca -> software.amazon.awssdk.services.nimble.model.ActiveDirectoryComputerAttribute.builder()
.name(ca.getName())
.value(ca.getValue())
.build())
.collect(toList()));
}
studioComponentConfigurationBuilder.activeDirectoryConfiguration(
adConfig
.directoryId(model.getConfiguration().getActiveDirectoryConfiguration().getDirectoryId())
.organizationalUnitDistinguishedName(model.getConfiguration().getActiveDirectoryConfiguration().getOrganizationalUnitDistinguishedName())
.build()
);
}
if (model.getConfiguration() != null && model.getConfiguration().getComputeFarmConfiguration() != null) {
studioComponentConfigurationBuilder.computeFarmConfiguration(
ComputeFarmConfiguration.builder()
.activeDirectoryUser(model.getConfiguration().getComputeFarmConfiguration().getActiveDirectoryUser())
.endpoint(model.getConfiguration().getComputeFarmConfiguration().getEndpoint())
.build()
);
}
if (model.getConfiguration() != null && model.getConfiguration().getLicenseServiceConfiguration() != null) {
studioComponentConfigurationBuilder.licenseServiceConfiguration(
LicenseServiceConfiguration.builder()
.endpoint(model.getConfiguration().getLicenseServiceConfiguration().getEndpoint())
.build());
}
if (model.getConfiguration() != null && model.getConfiguration().getSharedFileSystemConfiguration() != null) {
studioComponentConfigurationBuilder.sharedFileSystemConfiguration(
SharedFileSystemConfiguration.builder()
.endpoint(model.getConfiguration().getSharedFileSystemConfiguration().getEndpoint())
.fileSystemId(model.getConfiguration().getSharedFileSystemConfiguration().getFileSystemId())
.linuxMountPoint(model.getConfiguration().getSharedFileSystemConfiguration().getLinuxMountPoint())
.shareName(model.getConfiguration().getSharedFileSystemConfiguration().getShareName())
.windowsMountDrive(model.getConfiguration().getSharedFileSystemConfiguration().getWindowsMountDrive())
.build()
);
}
if (!StringUtils.isEmpty(model.getDescription())) {
updateStudioComponentRequestBuilder.description(model.getDescription());
}
if (model.getInitializationScripts() != null) {
updateStudioComponentRequestBuilder.initializationScripts(
model.getInitializationScripts().stream()
.map(is -> StudioComponentInitializationScript.builder()
.launchProfileProtocolVersion(is.getLaunchProfileProtocolVersion())
.platform(is.getPlatform())
.runContext(is.getRunContext())
.script(is.getScript())
.build())
.collect(toList())
);
}
if (!StringUtils.isEmpty(model.getName())) {
updateStudioComponentRequestBuilder.name(model.getName());
}
if (model.getScriptParameters() != null) {
updateStudioComponentRequestBuilder.scriptParameters(
model.getScriptParameters().stream()
.map(sp -> software.amazon.awssdk.services.nimble.model.ScriptParameterKeyValue.builder()
.key(sp.getKey())
.value(sp.getValue())
.build())
.collect(toList())
);
}
if (model.getEc2SecurityGroupIds() != null) {
updateStudioComponentRequestBuilder.ec2SecurityGroupIds(model.getEc2SecurityGroupIds());
}
if (!StringUtils.isEmpty(model.getType())) {
updateStudioComponentRequestBuilder.type(model.getType());
}
if (!StringUtils.isEmpty(model.getSubtype())) {
updateStudioComponentRequestBuilder.subtype(model.getSubtype());
}
updateStudioComponentRequestBuilder.configuration(studioComponentConfigurationBuilder.build());
return updateStudioComponentRequestBuilder.build();
}