diff --git a/examples/src/main/java/io/opentdf/platform/CreateAttribute.java b/examples/src/main/java/io/opentdf/platform/CreateAttribute.java index bd38a02f..7a5ddc6d 100644 --- a/examples/src/main/java/io/opentdf/platform/CreateAttribute.java +++ b/examples/src/main/java/io/opentdf/platform/CreateAttribute.java @@ -1,12 +1,12 @@ package io.opentdf.platform; import com.connectrpc.ResponseMessageKt; -import io.opentdf.platform.policy.AttributeRuleTypeEnum; import io.opentdf.platform.policy.Namespace; import io.opentdf.platform.policy.attributes.CreateAttributeRequest; import io.opentdf.platform.policy.attributes.CreateAttributeResponse; import io.opentdf.platform.policy.namespaces.GetNamespaceRequest; import io.opentdf.platform.sdk.*; +import static io.opentdf.platform.sdk.PolicyEnums.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -51,9 +51,7 @@ public static void main(String[] args) { CreateAttributeRequest.newBuilder() .setNamespaceId(namespace.getId()) .setName("test-attribute") - .setRule( - AttributeRuleTypeEnum.forNumber( - AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF_VALUE)) + .setRule(RULE_ALL_OF) .addAllValues(Arrays.asList("test1", "test2")) .build(); diff --git a/examples/src/main/java/io/opentdf/platform/CreateSubjectConditionSet.java b/examples/src/main/java/io/opentdf/platform/CreateSubjectConditionSet.java index 8d7241ea..1f1db5f1 100644 --- a/examples/src/main/java/io/opentdf/platform/CreateSubjectConditionSet.java +++ b/examples/src/main/java/io/opentdf/platform/CreateSubjectConditionSet.java @@ -2,11 +2,10 @@ import com.connectrpc.ResponseMessageKt; import io.opentdf.platform.policy.Condition; -import io.opentdf.platform.policy.ConditionBooleanTypeEnum; import io.opentdf.platform.policy.ConditionGroup; import io.opentdf.platform.policy.SubjectConditionSet; -import io.opentdf.platform.policy.SubjectMappingOperatorEnum; import io.opentdf.platform.policy.SubjectSet; +import static io.opentdf.platform.sdk.PolicyEnums.*; import io.opentdf.platform.policy.subjectmapping.CreateSubjectConditionSetRequest; import io.opentdf.platform.policy.subjectmapping.CreateSubjectConditionSetResponse; import io.opentdf.platform.policy.subjectmapping.SubjectConditionSetCreate; @@ -39,12 +38,11 @@ public static void main(String[] args) { SubjectSet.newBuilder() .addConditionGroups( ConditionGroup.newBuilder() - .setBooleanOperator(ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND) + .setBooleanOperator(BOOLEAN_AND) .addConditions( Condition.newBuilder() .setSubjectExternalSelectorValue(".myfield") - .setOperator( - SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN) + .setOperator(OPERATOR_IN) .addSubjectExternalValues("myvalue"))); CreateSubjectConditionSetRequest createSubjectConditionSetRequest = diff --git a/examples/src/main/java/io/opentdf/platform/CreateSubjectMapping.java b/examples/src/main/java/io/opentdf/platform/CreateSubjectMapping.java index 9a1b6657..3f00f352 100644 --- a/examples/src/main/java/io/opentdf/platform/CreateSubjectMapping.java +++ b/examples/src/main/java/io/opentdf/platform/CreateSubjectMapping.java @@ -4,13 +4,12 @@ import io.opentdf.platform.policy.Action; import io.opentdf.platform.policy.Attribute; import io.opentdf.platform.policy.Condition; -import io.opentdf.platform.policy.ConditionBooleanTypeEnum; import io.opentdf.platform.policy.ConditionGroup; import io.opentdf.platform.policy.Namespace; import io.opentdf.platform.policy.SubjectConditionSet; import io.opentdf.platform.policy.SubjectMapping; -import io.opentdf.platform.policy.SubjectMappingOperatorEnum; import io.opentdf.platform.policy.SubjectSet; +import static io.opentdf.platform.sdk.PolicyEnums.*; import io.opentdf.platform.policy.attributes.GetAttributeRequest; import io.opentdf.platform.policy.namespaces.GetNamespaceRequest; import io.opentdf.platform.policy.subjectmapping.CreateSubjectConditionSetRequest; @@ -100,14 +99,11 @@ public static void main(String[] args) { SubjectSet.newBuilder() .addConditionGroups( ConditionGroup.newBuilder() - .setBooleanOperator( - ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND) + .setBooleanOperator(BOOLEAN_AND) .addConditions( Condition.newBuilder() .setSubjectExternalSelectorValue(".myfield") - .setOperator( - SubjectMappingOperatorEnum - .SUBJECT_MAPPING_OPERATOR_ENUM_IN) + .setOperator(OPERATOR_IN) .addSubjectExternalValues("myvalue"))))) .build(); diff --git a/sdk/src/main/java/io/opentdf/platform/sdk/PolicyEnums.java b/sdk/src/main/java/io/opentdf/platform/sdk/PolicyEnums.java new file mode 100644 index 00000000..5c426cf8 --- /dev/null +++ b/sdk/src/main/java/io/opentdf/platform/sdk/PolicyEnums.java @@ -0,0 +1,69 @@ +package io.opentdf.platform.sdk; + +import io.opentdf.platform.common.ActiveStateEnum; +import io.opentdf.platform.policy.AttributeRuleTypeEnum; +import io.opentdf.platform.policy.ConditionBooleanTypeEnum; +import io.opentdf.platform.policy.SubjectMappingOperatorEnum; + +/** + * Shorthand constants for commonly used policy enum values. + * + *
These aliases provide a more readable alternative to the verbose protobuf + * enum names. Use them anywhere the corresponding enum type is accepted. + * + *
{@code
+ * // Before
+ * Condition.newBuilder()
+ * .setOperator(SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN);
+ *
+ * // After (with static import)
+ * import static io.opentdf.platform.sdk.PolicyEnums.*;
+ * Condition.newBuilder()
+ * .setOperator(OPERATOR_IN);
+ * }
+ */
+public final class PolicyEnums {
+
+ private PolicyEnums() {}
+
+ // --- Subject Mapping Operators ---
+
+ public static final SubjectMappingOperatorEnum OPERATOR_IN =
+ SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN;
+
+ public static final SubjectMappingOperatorEnum OPERATOR_NOT_IN =
+ SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN;
+
+ public static final SubjectMappingOperatorEnum OPERATOR_IN_CONTAINS =
+ SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS;
+
+ // --- Condition Boolean Types ---
+
+ public static final ConditionBooleanTypeEnum BOOLEAN_AND =
+ ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND;
+
+ public static final ConditionBooleanTypeEnum BOOLEAN_OR =
+ ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_OR;
+
+ // --- Attribute Rule Types ---
+
+ public static final AttributeRuleTypeEnum RULE_ALL_OF =
+ AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF;
+
+ public static final AttributeRuleTypeEnum RULE_ANY_OF =
+ AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF;
+
+ public static final AttributeRuleTypeEnum RULE_HIERARCHY =
+ AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY;
+
+ // --- Active States ---
+
+ public static final ActiveStateEnum STATE_ACTIVE =
+ ActiveStateEnum.ACTIVE_STATE_ENUM_ACTIVE;
+
+ public static final ActiveStateEnum STATE_INACTIVE =
+ ActiveStateEnum.ACTIVE_STATE_ENUM_INACTIVE;
+
+ public static final ActiveStateEnum STATE_ANY =
+ ActiveStateEnum.ACTIVE_STATE_ENUM_ANY;
+}
diff --git a/sdk/src/test/java/io/opentdf/platform/sdk/PolicyEnumsTest.java b/sdk/src/test/java/io/opentdf/platform/sdk/PolicyEnumsTest.java
new file mode 100644
index 00000000..4136ff9b
--- /dev/null
+++ b/sdk/src/test/java/io/opentdf/platform/sdk/PolicyEnumsTest.java
@@ -0,0 +1,61 @@
+package io.opentdf.platform.sdk;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import io.opentdf.platform.common.ActiveStateEnum;
+import io.opentdf.platform.policy.AttributeRuleTypeEnum;
+import io.opentdf.platform.policy.ConditionBooleanTypeEnum;
+import io.opentdf.platform.policy.SubjectMappingOperatorEnum;
+import org.junit.jupiter.api.Test;
+
+class PolicyEnumsTest {
+
+ @Test
+ void operatorConstants() {
+ assertEquals(
+ SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN,
+ PolicyEnums.OPERATOR_IN);
+ assertEquals(
+ SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN,
+ PolicyEnums.OPERATOR_NOT_IN);
+ assertEquals(
+ SubjectMappingOperatorEnum.SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS,
+ PolicyEnums.OPERATOR_IN_CONTAINS);
+ }
+
+ @Test
+ void booleanConstants() {
+ assertEquals(
+ ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_AND,
+ PolicyEnums.BOOLEAN_AND);
+ assertEquals(
+ ConditionBooleanTypeEnum.CONDITION_BOOLEAN_TYPE_ENUM_OR,
+ PolicyEnums.BOOLEAN_OR);
+ }
+
+ @Test
+ void ruleConstants() {
+ assertEquals(
+ AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF,
+ PolicyEnums.RULE_ALL_OF);
+ assertEquals(
+ AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF,
+ PolicyEnums.RULE_ANY_OF);
+ assertEquals(
+ AttributeRuleTypeEnum.ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY,
+ PolicyEnums.RULE_HIERARCHY);
+ }
+
+ @Test
+ void stateConstants() {
+ assertEquals(
+ ActiveStateEnum.ACTIVE_STATE_ENUM_ACTIVE,
+ PolicyEnums.STATE_ACTIVE);
+ assertEquals(
+ ActiveStateEnum.ACTIVE_STATE_ENUM_INACTIVE,
+ PolicyEnums.STATE_INACTIVE);
+ assertEquals(
+ ActiveStateEnum.ACTIVE_STATE_ENUM_ANY,
+ PolicyEnums.STATE_ANY);
+ }
+}