diff --git a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/dao/LabelApplicationRuleRequestConverter.java b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/dao/LabelApplicationRuleRequestConverter.java index bc05ea3d..69a2eb7b 100644 --- a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/dao/LabelApplicationRuleRequestConverter.java +++ b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/dao/LabelApplicationRuleRequestConverter.java @@ -1,6 +1,7 @@ package org.hypertrace.graphql.label.application.rules.dao; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import org.hypertrace.graphql.label.application.rules.request.LabelApplicationRuleCreateRequest; import org.hypertrace.graphql.label.application.rules.request.LabelApplicationRuleDeleteRequest; @@ -47,11 +48,14 @@ public DeleteLabelApplicationRuleRequest convertDeleteRequest( private LabelApplicationRuleData convertLabelApplicationRuleData( org.hypertrace.graphql.label.application.rules.schema.shared.LabelApplicationRuleData data) { - return LabelApplicationRuleData.newBuilder() - .setName(data.name()) - .setMatchingCondition(convertConditionList(data.conditionList())) - .setLabelAction(convertLabelAction(data.action())) - .build(); + LabelApplicationRuleData.Builder convertedDataBuilder = + LabelApplicationRuleData.newBuilder() + .setName(data.name()) + .setMatchingCondition(convertConditionList(data.conditionList())) + .setLabelAction(convertLabelAction(data.action())) + .setEnabled(data.enabled()); + Optional.ofNullable(data.description()).ifPresent(convertedDataBuilder::setDescription); + return convertedDataBuilder.build(); } private Action.Operation getOperationFromAction( diff --git a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/dao/LabelApplicationRuleResponseConverter.java b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/dao/LabelApplicationRuleResponseConverter.java index 35ef25ee..80470aac 100644 --- a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/dao/LabelApplicationRuleResponseConverter.java +++ b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/dao/LabelApplicationRuleResponseConverter.java @@ -74,7 +74,12 @@ private Optional convertLabelApplicationRuleData( } return action.map( labelAction -> - new ConvertedLabelApplicationRuleData(data.getName(), conditionList, labelAction)); + new ConvertedLabelApplicationRuleData( + data.getName(), + conditionList, + labelAction, + data.getEnabled(), + data.hasDescription() ? data.getDescription() : null)); } private Optional convertOperationInAction( @@ -259,6 +264,8 @@ private static class ConvertedLabelApplicationRuleData implements LabelApplicati String name; List conditionList; Action action; + boolean enabled; + String description; } @Value diff --git a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/deserialization/LabelApplicationRuleDataDeserializationConfig.java b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/deserialization/LabelApplicationRuleDataDeserializationConfig.java index 7d7fc531..e8dab3c7 100644 --- a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/deserialization/LabelApplicationRuleDataDeserializationConfig.java +++ b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/deserialization/LabelApplicationRuleDataDeserializationConfig.java @@ -56,6 +56,12 @@ private static class LabelApplicationRuleDataArgument implements LabelApplicatio @JsonProperty(ACTION_KEY) Action action; + + @JsonProperty(ENABLED_KEY) + boolean enabled; + + @JsonProperty(DESCRIPTION_KEY) + String description; } @Value diff --git a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/deserialization/LabelApplicationRuleDeserializationConfig.java b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/deserialization/LabelApplicationRuleDeserializationConfig.java index 1eecc2aa..8c3a9151 100644 --- a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/deserialization/LabelApplicationRuleDeserializationConfig.java +++ b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/deserialization/LabelApplicationRuleDeserializationConfig.java @@ -68,6 +68,12 @@ private static class LabelApplicationRuleDataArgument implements LabelApplicatio @JsonProperty(ACTION_KEY) Action action; + + @JsonProperty(ENABLED_KEY) + boolean enabled; + + @JsonProperty(DESCRIPTION_KEY) + String description; } @Value diff --git a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/schema/shared/LabelApplicationRuleData.java b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/schema/shared/LabelApplicationRuleData.java index 42b7f744..3bd900e0 100644 --- a/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/schema/shared/LabelApplicationRuleData.java +++ b/hypertrace-graphql-label-application-rules-schema/src/main/java/org/hypertrace/graphql/label/application/rules/schema/shared/LabelApplicationRuleData.java @@ -4,6 +4,7 @@ import graphql.annotations.annotationTypes.GraphQLName; import graphql.annotations.annotationTypes.GraphQLNonNull; import java.util.List; +import javax.annotation.Nullable; @GraphQLName(LabelApplicationRuleData.TYPE_NAME) public interface LabelApplicationRuleData { @@ -13,6 +14,8 @@ public interface LabelApplicationRuleData { String NAME_KEY = "name"; String CONDITION_LIST_KEY = "conditionList"; String ACTION_KEY = "action"; + String ENABLED_KEY = "enabled"; + String DESCRIPTION_KEY = "description"; @GraphQLField @GraphQLNonNull @@ -28,4 +31,14 @@ public interface LabelApplicationRuleData { @GraphQLNonNull @GraphQLName(ACTION_KEY) Action action(); + + @GraphQLField + @GraphQLNonNull + @GraphQLName(ENABLED_KEY) + boolean enabled(); + + @GraphQLField + @Nullable + @GraphQLName(DESCRIPTION_KEY) + String description(); } diff --git a/hypertrace-graphql-platform/build.gradle.kts b/hypertrace-graphql-platform/build.gradle.kts index ecc55be6..cfd18881 100644 --- a/hypertrace-graphql-platform/build.gradle.kts +++ b/hypertrace-graphql-platform/build.gradle.kts @@ -12,6 +12,6 @@ dependencies { api("org.hypertrace.entity.service:entity-type-service-rx-client:0.5.6") api("org.hypertrace.config.service:spaces-config-service-api:0.1.1") api("org.hypertrace.config.service:labels-config-service-api:0.1.15") - api("org.hypertrace.config.service:label-application-rule-config-service-api:0.1.15") + api("org.hypertrace.config.service:label-application-rule-config-service-api:0.1.16") } }