public UpdateAssociationStatus updateServiceActionAssociation()

in aws-servicecatalog-serviceactionassociation/src/main/java/software/amazon/servicecatalog/serviceactionassociation/ActionAssociationController.java [107:147]


    public UpdateAssociationStatus updateServiceActionAssociation(final ResourceModel previousModel, final ResourceModel desiredModel) {
        try {
            disassociateServiceAction(previousModel.getProductId(), previousModel.getProvisioningArtifactId(), previousModel.getServiceActionId());
        } catch (ResourceNotFoundException e) {
            logger.log(String.format(DISASSOCIATE_EXCEPTION, e.getMessage()));
        } catch (SdkException e) {
            logger.log(String.format(DISASSOCIATE_EXCEPTION, e.getMessage()));
            return UpdateAssociationStatus
                    .builder()
                    .resourceModel(previousModel)
                    .errorMessage(e.getMessage())
                    .status(OperationStatus.FAILED)
                    .errorCode(HandlerErrorCode.NotStabilized)
                    .build();
        }
        try {
            associateServiceAction(desiredModel.getProductId(), desiredModel.getProvisioningArtifactId(), desiredModel.getServiceActionId());
            return UpdateAssociationStatus
                    .builder()
                    .resourceModel(desiredModel)
                    .status(OperationStatus.SUCCESS)
                    .build();
        }  catch (SdkException e) {
            logger.log(String.format(ASSOCIATE_EXCEPTION, e.getMessage()));
            HandlerErrorCode handlerErrorCode = HandlerErrorCode.NotStabilized;
            if (e instanceof ResourceNotFoundException) {
                handlerErrorCode = HandlerErrorCode.NotFound;
            } else if (e instanceof  DuplicateResourceException) {
                handlerErrorCode = HandlerErrorCode.AlreadyExists;
            } else if (e instanceof LimitExceededException) {
                handlerErrorCode = HandlerErrorCode.ServiceLimitExceeded;
            }
            return UpdateAssociationStatus
                    .builder()
                    .resourceModel(ResourceModel.builder().build())
                    .errorMessage(e.getMessage())
                    .status(OperationStatus.FAILED)
                    .errorCode(handlerErrorCode)
                    .build();
        }
    }