public AwsResponse updateAttributes()

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;
    }