in aws-lightsail-loadbalancer/src/main/java/software/amazon/lightsail/loadbalancer/helpers/resource/LoadBalancer.java [38:82]
public AwsResponse updateAttributes(AwsRequest request) {
AwsResponse awsResponse = null;
ResourceModel currentResourceModel = getCurrentResourceModelFromLightsail();
ResourceModel desiredResourceModel = resourceModelRequest.getDesiredResourceState();
// Updating the HealthCheckPath attribute.
if (desiredResourceModel.getHealthCheckPath() != null &&
!desiredResourceModel.getHealthCheckPath().equals(currentResourceModel.getHealthCheckPath())) {
logger.log("Updating LoadBalancer attribute: HealthCheckPath");
proxyClient.injectCredentialsAndInvokeV2(UpdateLoadBalancerAttributeRequest.builder()
.loadBalancerName(desiredResourceModel.getLoadBalancerName()).attributeName("HealthCheckPath")
.attributeValue(desiredResourceModel.getHealthCheckPath()).build(), proxyClient.client()::updateLoadBalancerAttribute);
}
// Updating the SessionStickinessEnabled attribute.
if (desiredResourceModel.getSessionStickinessEnabled() == null) {
if (currentResourceModel.getSessionStickinessEnabled()) {
logger.log("Updating LoadBalancer attribute: SessionStickinessEnabled");
proxyClient.injectCredentialsAndInvokeV2(UpdateLoadBalancerAttributeRequest.builder()
.loadBalancerName(desiredResourceModel.getLoadBalancerName()).attributeName("SessionStickinessEnabled")
.attributeValue("false").build(), proxyClient.client()::updateLoadBalancerAttribute);
}
} else {
if (currentResourceModel.getSessionStickinessEnabled() != desiredResourceModel.getSessionStickinessEnabled()) {
logger.log("Updating LoadBalancer attribute: SessionStickinessEnabled");
proxyClient.injectCredentialsAndInvokeV2(UpdateLoadBalancerAttributeRequest.builder()
.loadBalancerName(desiredResourceModel.getLoadBalancerName()).attributeName("SessionStickinessEnabled")
.attributeValue(String.valueOf(desiredResourceModel.getSessionStickinessEnabled()))
.build(), proxyClient.client()::updateLoadBalancerAttribute);
}
}
// Updating the SessionStickiness_LB_CookieDurationSeconds attribute.
if (desiredResourceModel.getSessionStickinessLBCookieDurationSeconds() != null) {
if (!desiredResourceModel.getSessionStickinessLBCookieDurationSeconds().equals(currentResourceModel.getSessionStickinessLBCookieDurationSeconds())) {
logger.log("Updating LoadBalancer attribute: SessionStickiness_LB_CookieDurationSeconds");
proxyClient.injectCredentialsAndInvokeV2(UpdateLoadBalancerAttributeRequest.builder()
.loadBalancerName(desiredResourceModel.getLoadBalancerName()).attributeName("SessionStickiness_LB_CookieDurationSeconds")
.attributeValue(desiredResourceModel.getSessionStickinessLBCookieDurationSeconds())
.build(), proxyClient.client()::updateLoadBalancerAttribute);
}
}
return awsResponse;
}