public static ModifyDbInstanceRequest modifyDbInstanceRequest()

in aws-rds-dbinstance/src/main/java/software/amazon/rds/dbinstance/Translator.java [183:256]


    public static ModifyDbInstanceRequest modifyDbInstanceRequest(
            final ResourceModel previousModel,
            final ResourceModel desiredModel,
            final Boolean isRollback
    ) {
        ModifyDbInstanceRequest.Builder builder = ModifyDbInstanceRequest.builder()
                .allowMajorVersionUpgrade(desiredModel.getAllowMajorVersionUpgrade())
                .applyImmediately(Boolean.TRUE)
                .autoMinorVersionUpgrade(desiredModel.getAutoMinorVersionUpgrade())
                .backupRetentionPeriod(desiredModel.getBackupRetentionPeriod())
                .caCertificateIdentifier(desiredModel.getCACertificateIdentifier())
                .copyTagsToSnapshot(desiredModel.getCopyTagsToSnapshot())
                .dbInstanceClass(desiredModel.getDBInstanceClass())
                .dbInstanceIdentifier(desiredModel.getDBInstanceIdentifier())
                .dbParameterGroupName(desiredModel.getDBParameterGroupName())
                .dbPortNumber(desiredModel.getPort())
                .deletionProtection(desiredModel.getDeletionProtection())
                .domain(desiredModel.getDomain())
                .domainIAMRoleName(desiredModel.getDomainIAMRoleName())
                .enableIAMDatabaseAuthentication(desiredModel.getEnableIAMDatabaseAuthentication())
                .enablePerformanceInsights(desiredModel.getEnablePerformanceInsights())
                .engineVersion(desiredModel.getEngineVersion())
                .licenseModel(desiredModel.getLicenseModel())
                .masterUserPassword(desiredModel.getMasterUserPassword())
                .maxAllocatedStorage(desiredModel.getMaxAllocatedStorage())
                .monitoringInterval(desiredModel.getMonitoringInterval())
                .monitoringRoleArn(desiredModel.getMonitoringRoleArn())
                .multiAZ(desiredModel.getMultiAZ())
                .newDBInstanceIdentifier(desiredModel.getDBInstanceIdentifier())
                .optionGroupName(desiredModel.getOptionGroupName())
                .performanceInsightsKMSKeyId(desiredModel.getPerformanceInsightsKMSKeyId())
                .performanceInsightsRetentionPeriod(desiredModel.getPerformanceInsightsRetentionPeriod())
                .preferredBackupWindow(desiredModel.getPreferredBackupWindow())
                .preferredMaintenanceWindow(desiredModel.getPreferredMaintenanceWindow())
                .promotionTier(desiredModel.getPromotionTier())
                .storageType(desiredModel.getStorageType())
                .tdeCredentialArn(desiredModel.getTdeCredentialArn())
                .tdeCredentialPassword(desiredModel.getTdeCredentialPassword())
                .vpcSecurityGroupIds(desiredModel.getVPCSecurityGroups());

        // An attempt to "move" an instance to the same db subnet will cause a
        // 400: "The specified DB instance is already in the target DB subnet group."
        if (!StringUtils.equals(
                Optional.ofNullable(previousModel).map(ResourceModel::getDBSubnetGroupName).orElse(""),
                desiredModel.getDBSubnetGroupName())
        ) {
            builder.dbSubnetGroupName(desiredModel.getDBSubnetGroupName());
        }

        final CloudwatchLogsExportConfiguration cloudwatchLogsExportConfiguration = buildTranslateCloudwatchLogsExportConfiguration(
                Optional.ofNullable(previousModel).map(ResourceModel::getEnableCloudwatchLogsExports).orElse(Collections.emptyList()),
                desiredModel.getEnableCloudwatchLogsExports()
        );
        builder.cloudwatchLogsExportConfiguration(cloudwatchLogsExportConfiguration);

        if (previousModel != null && BooleanUtils.isTrue(isRollback)) {
            builder.allocatedStorage(
                    canUpdateAllocatedStorage(previousModel.getAllocatedStorage(), desiredModel.getAllocatedStorage()) ? getAllocatedStorage(desiredModel) : getAllocatedStorage(previousModel)
            );
            builder.iops(
                    canUpdateIops(previousModel.getIops(), desiredModel.getIops()) ? desiredModel.getIops() : previousModel.getIops()
            );
        } else {
            builder.allocatedStorage(getAllocatedStorage(desiredModel));
            builder.iops(desiredModel.getIops());
        }

        if (shouldSetProcessorFeatures(previousModel, desiredModel)) {
            builder.processorFeatures(translateProcessorFeaturesToSdk(desiredModel.getProcessorFeatures()));
            builder.useDefaultProcessorFeatures(desiredModel.getUseDefaultProcessorFeatures());
        }

        return builder.build();
    }