diff --git a/docs/grpc/index.html b/docs/grpc/index.html index 95050135b..017fef95b 100644 --- a/docs/grpc/index.html +++ b/docs/grpc/index.html @@ -3754,7 +3754,7 @@

AssignKeyAcce attribute_key_access_server AttributeKeyAccessServer -

+

Required

@@ -3802,7 +3802,7 @@

AssignKeyAccessSe value_key_access_server ValueKeyAccessServer -

+

Required

@@ -3850,14 +3850,14 @@

AttributeKeyAccessServer

attribute_id string -

+

Required

key_access_server_id string -

+

Required

@@ -3888,21 +3888,22 @@

CreateAttributeRequest

name string -

+

Required

rule policy.AttributeRuleTypeEnum -

+

Required

values string repeated -

Optional attribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character. +

Optional +Attribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character. The stored attribute value will be normalized to lower case.

@@ -3965,14 +3966,15 @@

CreateAttributeValueReque value string -

+

Required

metadata common.MetadataMutable -

Common metadata

+

Optional +Common metadata

@@ -4020,7 +4022,7 @@

DeactivateAttributeRequest id string -

+

Required

@@ -4068,7 +4070,7 @@

DeactivateAttributeVa id string -

+

Required

@@ -4116,7 +4118,7 @@

GetAttributeRequest

id string -

+

Required

@@ -4164,7 +4166,7 @@

GetAttributeValueRequest

id string -

+

Required

@@ -4212,8 +4214,7 @@

GetAttributeValuesByF fqns string repeated -

Required -Fully Qualified Names of attribute values (i.e. https://<namespace>/attr/<attribute_name>/value/<value_name>), normalized to lower case.

+

Fully Qualified Names of attribute values (i.e. https://<namespace>/attr/<attribute_name>/value/<value_name>), normalized to lower case.

@@ -4330,14 +4331,15 @@

ListAttributeValuesRequest attribute_id string -

+

Required

state common.ActiveStateEnum -

ACTIVE by default when not specified

+

Optional +ACTIVE by default when not specified

@@ -4385,14 +4387,16 @@

ListAttributesRequest

state common.ActiveStateEnum -

ACTIVE by default when not specified

+

Optional +ACTIVE by default when not specified

namespace string -

can be id or name

+

Optional +Namespace ID or name

@@ -4440,7 +4444,7 @@

RemoveKeyAc attribute_key_access_server AttributeKeyAccessServer -

+

Required

@@ -4488,7 +4492,7 @@

RemoveKeyAccess value_key_access_server ValueKeyAccessServer -

+

Required

@@ -4598,14 +4602,15 @@

UpdateAttributeValueReque id string -

+

Required

metadata common.MetadataMutable -

Common metadata

+

Optional +Common metadata

@@ -4660,14 +4665,14 @@

ValueKeyAccessServer

value_id string -

+

Required

key_access_server_id string -

+

Required

@@ -5003,14 +5008,15 @@

CreateKeyAccessServerRe public_key policy.PublicKey -

+

Required

metadata common.MetadataMutable -

Common metadata

+

Optional +Common metadata

@@ -5058,7 +5064,7 @@

DeleteKeyAccessServerRe id string -

+

Required

@@ -5106,7 +5112,7 @@

GetKeyAccessServerRequest< id string -

+

Required

@@ -5231,7 +5237,7 @@

ListKeyAccessServer string

Optional -Filter LIST by either ID or URI of a registered Key Access Server. +Filter LIST by either ID of a registered Key Access Server. If neither is provided, grants from all registered KASs to policy attribute objects are returned.

@@ -5239,7 +5245,9 @@

ListKeyAccessServer kas_uri string -

+

Optional +Filter LIST by URI of a registered Key Access Server. +If neither is provided, grants from all registered KASs to policy attribute objects are returned.

@@ -5325,21 +5333,22 @@

UpdateKeyAccessServerRe uri string -

+

Required

public_key policy.PublicKey -

+

Required

metadata common.MetadataMutable -

Common metadata

+

Optional +Common metadata

@@ -5643,7 +5652,7 @@

DeactivateNamespaceRequest id string -

+

Required

@@ -5674,7 +5683,7 @@

GetNamespaceRequest

id string -

+

Required

@@ -5722,7 +5731,8 @@

ListNamespacesRequest

state common.ActiveStateEnum -

ACTIVE by default when not specified

+

Optional +ACTIVE by default when not specified

@@ -5770,14 +5780,14 @@

NamespaceKeyAccessServer

namespace_id string -

+

Required

key_access_server_id string -

+

Required

@@ -6083,7 +6093,7 @@

CreateResource name string -

+

Required

@@ -6145,7 +6155,7 @@

CreateResourceMappi terms string repeated -

+

Required

@@ -6159,7 +6169,7 @@

CreateResourceMappi metadata common.MetadataMutable -

+

Optional

@@ -6620,7 +6630,7 @@

UpdateResource name string -

+

Optional

@@ -6696,21 +6706,22 @@

UpdateResourceMappi terms string repeated -

+

Optional

group_id string -

+

Optional

metadata common.MetadataMutable -

Common Metadata

+

Optional +Common Metadata

@@ -7052,7 +7063,8 @@

CreateSubjectMappingR actions policy.Action repeated -

The actions permitted by subjects in this mapping

+

Required +The actions permitted by subjects in this mapping

@@ -7122,7 +7134,7 @@

DeleteSubjectCon id string -

+

Required

@@ -7170,7 +7182,7 @@

DeleteSubjectMappingR id string -

+

Required

@@ -7218,7 +7230,7 @@

GetSubjectCondition id string -

+

Required

@@ -7273,7 +7285,7 @@

GetSubjectMappingRequest id string -

+

Required

@@ -7548,7 +7560,8 @@

UpdateSubjectMappingR actions policy.Action repeated -

Replaces entire list of actions permitted by subjects

+

Optional +Replaces entire list of actions permitted by subjects

@@ -7849,7 +7862,8 @@

UnsafeDeleteAttributeRequest fqn string -

Fully Qualified Name (FQN) of Attribute Definition (i.e. https://<namespace>/attr/<attribute name>), normalized to lower case.

+

Required +Fully Qualified Name (FQN) of Attribute Definition (i.e. https://<namespace>/attr/<attribute name>), normalized to lower case.

@@ -7905,7 +7919,8 @@

UnsafeDeleteAttributeVa fqn string -

Fully Qualified Name (FQN) of Attribute Value (i.e. https://<namespace>/attr/<attribute name>/value/<value>), normalized to lower case.

+

Required +Fully Qualified Name (FQN) of Attribute Value (i.e. https://<namespace>/attr/<attribute name>/value/<value>), normalized to lower case.

@@ -7961,7 +7976,8 @@

UnsafeDeleteNamespaceRequest fqn string -

Fully Qualified Name (FQN) of Namespace (i.e. https://<namespace>), normalized to lower case.

+

Required +Fully Qualified Name (FQN) of Namespace (i.e. https://<namespace>), normalized to lower case.

@@ -8009,7 +8025,7 @@

UnsafeReactivateAttribut id string -

+

Required

@@ -8057,7 +8073,7 @@

UnsafeReactivateAtt id string -

+

Required

@@ -8105,7 +8121,7 @@

UnsafeReactivateNamespac id string -

+

Required

@@ -8169,7 +8185,8 @@

UnsafeUpdateAttributeRequest rule policy.AttributeRuleTypeEnum -

WARNING!! +

Optional +WARNING!! Updating the rule of an Attribute will retroactively alter access to existing TDFs of the Attribute name.

@@ -8177,7 +8194,8 @@

UnsafeUpdateAttributeRequest values_order string repeated -

WARNING!! +

Optional +WARNING!! Unsafe reordering requires the full list of values in the new order they should be stored. Updating the order of values in a HIERARCHY-rule Attribute Definition will retroactively alter access to existing TDFs containing those values. Replacing values on an attribute in place is not supported; values can be unsafely deleted deleted, created, and unsafely re-ordered as necessary.

@@ -8228,14 +8246,14 @@

UnsafeUpdateAttributeVa id string -

+

Required

value string -

+

Required

@@ -8290,7 +8308,7 @@

UnsafeUpdateNamespaceRequest name string -

+

Required

diff --git a/docs/openapi/policy/attributes/attributes.swagger.json b/docs/openapi/policy/attributes/attributes.swagger.json index 17e5248ca..3f036f797 100644 --- a/docs/openapi/policy/attributes/attributes.swagger.json +++ b/docs/openapi/policy/attributes/attributes.swagger.json @@ -37,7 +37,7 @@ "parameters": [ { "name": "state", - "description": "ACTIVE by default when not specified", + "description": "Optional\nACTIVE by default when not specified", "in": "query", "required": false, "type": "string", @@ -51,7 +51,7 @@ }, { "name": "namespace", - "description": "can be id or name", + "description": "Optional\nNamespace ID or name", "in": "query", "required": false, "type": "string" @@ -112,7 +112,7 @@ "parameters": [ { "name": "fqns", - "description": "Required\nFully Qualified Names of attribute values (i.e. https://\u003cnamespace\u003e/attr/\u003cattribute_name\u003e/value/\u003cvalue_name\u003e), normalized to lower case.", + "description": "Fully Qualified Names of attribute values (i.e. https://\u003cnamespace\u003e/attr/\u003cattribute_name\u003e/value/\u003cvalue_name\u003e), normalized to lower case.", "in": "query", "required": false, "type": "array", @@ -171,13 +171,14 @@ "parameters": [ { "name": "attributeId", + "description": "Required", "in": "query", "required": false, "type": "string" }, { "name": "state", - "description": "ACTIVE by default when not specified", + "description": "Optional\nACTIVE by default when not specified", "in": "query", "required": false, "type": "string", @@ -216,6 +217,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -244,6 +246,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -272,6 +275,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -285,7 +289,7 @@ "properties": { "metadata": { "$ref": "#/definitions/commonMetadataMutable", - "title": "Common metadata" + "title": "Optional\nCommon metadata" }, "metadataUpdateBehavior": { "$ref": "#/definitions/commonMetadataUpdateEnum" @@ -319,12 +323,14 @@ "parameters": [ { "name": "attributeKeyAccessServer.attributeId", + "description": "Required", "in": "query", "required": false, "type": "string" }, { "name": "attributeKeyAccessServer.keyAccessServerId", + "description": "Required", "in": "query", "required": false, "type": "string" @@ -354,6 +360,7 @@ "parameters": [ { "name": "attributeKeyAccessServer", + "description": "Required", "in": "body", "required": true, "schema": { @@ -386,12 +393,14 @@ "parameters": [ { "name": "valueKeyAccessServer.valueId", + "description": "Required", "in": "query", "required": false, "type": "string" }, { "name": "valueKeyAccessServer.keyAccessServerId", + "description": "Required", "in": "query", "required": false, "type": "string" @@ -420,6 +429,7 @@ "parameters": [ { "name": "valueKeyAccessServer", + "description": "Required", "in": "body", "required": true, "schema": { @@ -465,11 +475,12 @@ "type": "object", "properties": { "value": { - "type": "string" + "type": "string", + "title": "Required" }, "metadata": { "$ref": "#/definitions/commonMetadataMutable", - "title": "Common metadata" + "title": "Optional\nCommon metadata" } } } @@ -500,6 +511,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -528,6 +540,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -630,10 +643,12 @@ "type": "object", "properties": { "attributeId": { - "type": "string" + "type": "string", + "title": "Required" }, "keyAccessServerId": { - "type": "string" + "type": "string", + "title": "Required" } } }, @@ -645,17 +660,19 @@ "title": "Required" }, "name": { - "type": "string" + "type": "string", + "title": "Required" }, "rule": { - "$ref": "#/definitions/policyAttributeRuleTypeEnum" + "$ref": "#/definitions/policyAttributeRuleTypeEnum", + "title": "Required" }, "values": { "type": "array", "items": { "type": "string" }, - "description": "Optional attribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character.\nThe stored attribute value will be normalized to lower case." + "description": "Optional \nAttribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character.\nThe stored attribute value will be normalized to lower case." }, "metadata": { "$ref": "#/definitions/commonMetadataMutable", @@ -783,10 +800,12 @@ "type": "object", "properties": { "valueId": { - "type": "string" + "type": "string", + "title": "Required" }, "keyAccessServerId": { - "type": "string" + "type": "string", + "title": "Required" } } }, diff --git a/docs/openapi/policy/kasregistry/key_access_server_registry.swagger.json b/docs/openapi/policy/kasregistry/key_access_server_registry.swagger.json index bbd287d1a..ea332c31e 100644 --- a/docs/openapi/policy/kasregistry/key_access_server_registry.swagger.json +++ b/docs/openapi/policy/kasregistry/key_access_server_registry.swagger.json @@ -88,13 +88,14 @@ "parameters": [ { "name": "kasId", - "description": "Optional\nFilter LIST by either ID or URI of a registered Key Access Server.\nIf neither is provided, grants from all registered KASs to policy attribute objects are returned.", + "description": "Optional\nFilter LIST by either ID of a registered Key Access Server.\nIf neither is provided, grants from all registered KASs to policy attribute objects are returned.", "in": "query", "required": false, "type": "string" }, { "name": "kasUri", + "description": "Optional\nFilter LIST by URI of a registered Key Access Server.\nIf neither is provided, grants from all registered KASs to policy attribute objects are returned.", "in": "query", "required": false, "type": "string" @@ -125,6 +126,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -153,6 +155,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -194,14 +197,16 @@ "type": "object", "properties": { "uri": { - "type": "string" + "type": "string", + "title": "Required" }, "publicKey": { - "$ref": "#/definitions/policyPublicKey" + "$ref": "#/definitions/policyPublicKey", + "title": "Required" }, "metadata": { "$ref": "#/definitions/commonMetadataMutable", - "title": "Common metadata" + "title": "Optional\nCommon metadata" }, "metadataUpdateBehavior": { "$ref": "#/definitions/commonMetadataUpdateEnum" @@ -270,11 +275,12 @@ "title": "Required" }, "publicKey": { - "$ref": "#/definitions/policyPublicKey" + "$ref": "#/definitions/policyPublicKey", + "title": "Required" }, "metadata": { "$ref": "#/definitions/commonMetadataMutable", - "title": "Common metadata" + "title": "Optional\nCommon metadata" } } }, diff --git a/docs/openapi/policy/namespaces/namespaces.swagger.json b/docs/openapi/policy/namespaces/namespaces.swagger.json index 265549220..f64b0092d 100644 --- a/docs/openapi/policy/namespaces/namespaces.swagger.json +++ b/docs/openapi/policy/namespaces/namespaces.swagger.json @@ -36,7 +36,7 @@ "parameters": [ { "name": "state", - "description": "ACTIVE by default when not specified", + "description": "Optional\nACTIVE by default when not specified", "in": "query", "required": false, "type": "string", @@ -104,12 +104,14 @@ "parameters": [ { "name": "namespaceKeyAccessServer.namespaceId", + "description": "Required", "in": "query", "required": false, "type": "string" }, { "name": "namespaceKeyAccessServer.keyAccessServerId", + "description": "Required", "in": "query", "required": false, "type": "string" @@ -171,6 +173,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -199,6 +202,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -369,10 +373,12 @@ "type": "object", "properties": { "namespaceId": { - "type": "string" + "type": "string", + "title": "Required" }, "keyAccessServerId": { - "type": "string" + "type": "string", + "title": "Required" } } }, diff --git a/docs/openapi/policy/resourcemapping/resource_mapping.swagger.json b/docs/openapi/policy/resourcemapping/resource_mapping.swagger.json index d637263e4..5140dd735 100644 --- a/docs/openapi/policy/resourcemapping/resource_mapping.swagger.json +++ b/docs/openapi/policy/resourcemapping/resource_mapping.swagger.json @@ -172,7 +172,8 @@ "title": "Optional" }, "name": { - "type": "string" + "type": "string", + "title": "Optional" }, "metadata": { "$ref": "#/definitions/commonMetadataMutable", @@ -384,14 +385,16 @@ "type": "array", "items": { "type": "string" - } + }, + "title": "Optional" }, "groupId": { - "type": "string" + "type": "string", + "title": "Optional" }, "metadata": { "$ref": "#/definitions/commonMetadataMutable", - "title": "Common Metadata" + "title": "Optional\nCommon Metadata" }, "metadataUpdateBehavior": { "$ref": "#/definitions/commonMetadataUpdateEnum" @@ -863,7 +866,8 @@ "title": "Required" }, "name": { - "type": "string" + "type": "string", + "title": "Required" }, "metadata": { "$ref": "#/definitions/commonMetadataMutable", @@ -890,14 +894,16 @@ "type": "array", "items": { "type": "string" - } + }, + "title": "Required" }, "groupId": { "type": "string", "title": "Optional" }, "metadata": { - "$ref": "#/definitions/commonMetadataMutable" + "$ref": "#/definitions/commonMetadataMutable", + "title": "Optional" } } }, diff --git a/docs/openapi/policy/subjectmapping/subject_mapping.swagger.json b/docs/openapi/policy/subjectmapping/subject_mapping.swagger.json index 6afccc032..43a326320 100644 --- a/docs/openapi/policy/subjectmapping/subject_mapping.swagger.json +++ b/docs/openapi/policy/subjectmapping/subject_mapping.swagger.json @@ -88,6 +88,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -116,6 +117,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -289,6 +291,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -317,6 +320,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -367,7 +371,7 @@ "type": "object", "$ref": "#/definitions/policyAction" }, - "title": "Replaces entire list of actions permitted by subjects" + "title": "Optional\nReplaces entire list of actions permitted by subjects" }, "metadata": { "$ref": "#/definitions/commonMetadataMutable", @@ -850,7 +854,7 @@ "type": "object", "$ref": "#/definitions/policyAction" }, - "title": "The actions permitted by subjects in this mapping" + "title": "Required\nThe actions permitted by subjects in this mapping" }, "existingSubjectConditionSetId": { "type": "string", diff --git a/docs/openapi/policy/unsafe/unsafe.swagger.json b/docs/openapi/policy/unsafe/unsafe.swagger.json index 977e1a582..8049ef8cb 100644 --- a/docs/openapi/policy/unsafe/unsafe.swagger.json +++ b/docs/openapi/policy/unsafe/unsafe.swagger.json @@ -43,7 +43,7 @@ }, { "name": "fqn", - "description": "Fully Qualified Name (FQN) of Attribute Value (i.e. https://\u003cnamespace\u003e/attr/\u003cattribute name\u003e/value/\u003cvalue\u003e), normalized to lower case.", + "description": "Required\nFully Qualified Name (FQN) of Attribute Value (i.e. https://\u003cnamespace\u003e/attr/\u003cattribute name\u003e/value/\u003cvalue\u003e), normalized to lower case.", "in": "query", "required": false, "type": "string" @@ -73,12 +73,14 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" }, { "name": "value", + "description": "Required", "in": "query", "required": false, "type": "string" @@ -109,6 +111,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -146,7 +149,7 @@ }, { "name": "fqn", - "description": "Fully Qualified Name (FQN) of Attribute Definition (i.e. https://\u003cnamespace\u003e/attr/\u003cattribute name\u003e), normalized to lower case.", + "description": "Required\nFully Qualified Name (FQN) of Attribute Definition (i.e. https://\u003cnamespace\u003e/attr/\u003cattribute name\u003e), normalized to lower case.", "in": "query", "required": false, "type": "string" @@ -190,7 +193,7 @@ }, { "name": "rule", - "description": "WARNING!! \nUpdating the rule of an Attribute will retroactively alter access to existing TDFs of the Attribute name.", + "description": "Optional\nWARNING!! \nUpdating the rule of an Attribute will retroactively alter access to existing TDFs of the Attribute name.", "in": "query", "required": false, "type": "string", @@ -204,7 +207,7 @@ }, { "name": "valuesOrder", - "description": "WARNING!!\nUnsafe reordering requires the full list of values in the new order they should be stored. Updating the order of values in a HIERARCHY-rule Attribute Definition\nwill retroactively alter access to existing TDFs containing those values. Replacing values on an attribute in place is not supported; values can be unsafely deleted\ndeleted, created, and unsafely re-ordered as necessary.", + "description": "Optional\nWARNING!!\nUnsafe reordering requires the full list of values in the new order they should be stored. Updating the order of values in a HIERARCHY-rule Attribute Definition\nwill retroactively alter access to existing TDFs containing those values. Replacing values on an attribute in place is not supported; values can be unsafely deleted\ndeleted, created, and unsafely re-ordered as necessary.", "in": "query", "required": false, "type": "array", @@ -239,6 +242,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" @@ -276,7 +280,7 @@ }, { "name": "fqn", - "description": "Fully Qualified Name (FQN) of Namespace (i.e. https://\u003cnamespace\u003e), normalized to lower case.", + "description": "Required\nFully Qualified Name (FQN) of Namespace (i.e. https://\u003cnamespace\u003e), normalized to lower case.", "in": "query", "required": false, "type": "string" @@ -313,6 +317,7 @@ }, { "name": "name", + "description": "Required", "in": "query", "required": false, "type": "string" @@ -343,6 +348,7 @@ "parameters": [ { "name": "id", + "description": "Required", "in": "path", "required": true, "type": "string" diff --git a/protocol/go/policy/attributes/attributes.pb.go b/protocol/go/policy/attributes/attributes.pb.go index e6a724a20..ab957cc3f 100644 --- a/protocol/go/policy/attributes/attributes.pb.go +++ b/protocol/go/policy/attributes/attributes.pb.go @@ -29,7 +29,9 @@ type AttributeKeyAccessServer struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AttributeId string `protobuf:"bytes,1,opt,name=attribute_id,json=attributeId,proto3" json:"attribute_id,omitempty"` + // Required + AttributeId string `protobuf:"bytes,1,opt,name=attribute_id,json=attributeId,proto3" json:"attribute_id,omitempty"` + // Required KeyAccessServerId string `protobuf:"bytes,2,opt,name=key_access_server_id,json=keyAccessServerId,proto3" json:"key_access_server_id,omitempty"` } @@ -84,7 +86,9 @@ type ValueKeyAccessServer struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ValueId string `protobuf:"bytes,1,opt,name=value_id,json=valueId,proto3" json:"value_id,omitempty"` + // Required + ValueId string `protobuf:"bytes,1,opt,name=value_id,json=valueId,proto3" json:"value_id,omitempty"` + // Required KeyAccessServerId string `protobuf:"bytes,2,opt,name=key_access_server_id,json=keyAccessServerId,proto3" json:"key_access_server_id,omitempty"` } @@ -139,9 +143,11 @@ type ListAttributesRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Optional // ACTIVE by default when not specified State common.ActiveStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=common.ActiveStateEnum" json:"state,omitempty"` - // can be id or name + // Optional + // Namespace ID or name Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` } @@ -243,6 +249,7 @@ type GetAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -338,10 +345,13 @@ type CreateAttributeRequest struct { unknownFields protoimpl.UnknownFields // Required - NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Rule policy.AttributeRuleTypeEnum `protobuf:"varint,3,opt,name=rule,proto3,enum=policy.AttributeRuleTypeEnum" json:"rule,omitempty"` - // Optional attribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character. + NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` + // Required + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Required + Rule policy.AttributeRuleTypeEnum `protobuf:"varint,3,opt,name=rule,proto3,enum=policy.AttributeRuleTypeEnum" json:"rule,omitempty"` + // Optional + // Attribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character. // The stored attribute value will be normalized to lower case. Values []string `protobuf:"bytes,4,rep,name=values,proto3" json:"values,omitempty"` // Optional @@ -579,6 +589,7 @@ type DeactivateAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -676,6 +687,7 @@ type GetAttributeValueRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -770,7 +782,9 @@ type ListAttributeValuesRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required AttributeId string `protobuf:"bytes,1,opt,name=attribute_id,json=attributeId,proto3" json:"attribute_id,omitempty"` + // Optional // ACTIVE by default when not specified State common.ActiveStateEnum `protobuf:"varint,2,opt,name=state,proto3,enum=common.ActiveStateEnum" json:"state,omitempty"` } @@ -875,7 +889,9 @@ type CreateAttributeValueRequest struct { // Required AttributeId string `protobuf:"bytes,1,opt,name=attribute_id,json=attributeId,proto3" json:"attribute_id,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // Required + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // Optional // Common metadata Metadata *common.MetadataMutable `protobuf:"bytes,100,opt,name=metadata,proto3" json:"metadata,omitempty"` } @@ -985,7 +1001,9 @@ type UpdateAttributeValueRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Optional // Common metadata Metadata *common.MetadataMutable `protobuf:"bytes,100,opt,name=metadata,proto3" json:"metadata,omitempty"` MetadataUpdateBehavior common.MetadataUpdateEnum `protobuf:"varint,101,opt,name=metadata_update_behavior,json=metadataUpdateBehavior,proto3,enum=common.MetadataUpdateEnum" json:"metadata_update_behavior,omitempty"` @@ -1096,6 +1114,7 @@ type DeactivateAttributeValueRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -1190,7 +1209,6 @@ type GetAttributeValuesByFqnsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required // Fully Qualified Names of attribute values (i.e. https:///attr//value/), normalized to lower case. Fqns []string `protobuf:"bytes,1,rep,name=fqns,proto3" json:"fqns,omitempty"` WithValue *policy.AttributeValueSelector `protobuf:"bytes,2,opt,name=with_value,json=withValue,proto3" json:"with_value,omitempty"` @@ -1295,6 +1313,7 @@ type AssignKeyAccessServerToAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required AttributeKeyAccessServer *AttributeKeyAccessServer `protobuf:"bytes,1,opt,name=attribute_key_access_server,json=attributeKeyAccessServer,proto3" json:"attribute_key_access_server,omitempty"` } @@ -1389,6 +1408,7 @@ type RemoveKeyAccessServerFromAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required AttributeKeyAccessServer *AttributeKeyAccessServer `protobuf:"bytes,1,opt,name=attribute_key_access_server,json=attributeKeyAccessServer,proto3" json:"attribute_key_access_server,omitempty"` } @@ -1483,6 +1503,7 @@ type AssignKeyAccessServerToValueRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required ValueKeyAccessServer *ValueKeyAccessServer `protobuf:"bytes,1,opt,name=value_key_access_server,json=valueKeyAccessServer,proto3" json:"value_key_access_server,omitempty"` } @@ -1577,6 +1598,7 @@ type RemoveKeyAccessServerFromValueRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required ValueKeyAccessServer *ValueKeyAccessServer `protobuf:"bytes,1,opt,name=value_key_access_server,json=valueKeyAccessServer,proto3" json:"value_key_access_server,omitempty"` } diff --git a/protocol/go/policy/kasregistry/key_access_server_registry.pb.go b/protocol/go/policy/kasregistry/key_access_server_registry.pb.go index dcf4efa9f..72df8f131 100644 --- a/protocol/go/policy/kasregistry/key_access_server_registry.pb.go +++ b/protocol/go/policy/kasregistry/key_access_server_registry.pb.go @@ -29,6 +29,7 @@ type GetKeyAccessServerRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -209,8 +210,10 @@ type CreateKeyAccessServerRequest struct { unknownFields protoimpl.UnknownFields // Required - Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // Required PublicKey *policy.PublicKey `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // Optional // Common metadata Metadata *common.MetadataMutable `protobuf:"bytes,100,opt,name=metadata,proto3" json:"metadata,omitempty"` } @@ -321,9 +324,12 @@ type UpdateKeyAccessServerRequest struct { unknownFields protoimpl.UnknownFields // Required - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Required + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` + // Required PublicKey *policy.PublicKey `protobuf:"bytes,3,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // Optional // Common metadata Metadata *common.MetadataMutable `protobuf:"bytes,100,opt,name=metadata,proto3" json:"metadata,omitempty"` MetadataUpdateBehavior common.MetadataUpdateEnum `protobuf:"varint,101,opt,name=metadata_update_behavior,json=metadataUpdateBehavior,proto3,enum=common.MetadataUpdateEnum" json:"metadata_update_behavior,omitempty"` @@ -448,6 +454,7 @@ type DeleteKeyAccessServerRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -674,9 +681,12 @@ type ListKeyAccessServerGrantsRequest struct { unknownFields protoimpl.UnknownFields // Optional - // Filter LIST by either ID or URI of a registered Key Access Server. + // Filter LIST by either ID of a registered Key Access Server. + // If neither is provided, grants from all registered KASs to policy attribute objects are returned. + KasId string `protobuf:"bytes,1,opt,name=kas_id,json=kasId,proto3" json:"kas_id,omitempty"` + // Optional + // Filter LIST by URI of a registered Key Access Server. // If neither is provided, grants from all registered KASs to policy attribute objects are returned. - KasId string `protobuf:"bytes,1,opt,name=kas_id,json=kasId,proto3" json:"kas_id,omitempty"` KasUri string `protobuf:"bytes,2,opt,name=kas_uri,json=kasUri,proto3" json:"kas_uri,omitempty"` } diff --git a/protocol/go/policy/namespaces/namespaces.pb.go b/protocol/go/policy/namespaces/namespaces.pb.go index ed5fbba3f..cd3d1480c 100644 --- a/protocol/go/policy/namespaces/namespaces.pb.go +++ b/protocol/go/policy/namespaces/namespaces.pb.go @@ -29,7 +29,9 @@ type NamespaceKeyAccessServer struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` + // Required + NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` + // Required KeyAccessServerId string `protobuf:"bytes,2,opt,name=key_access_server_id,json=keyAccessServerId,proto3" json:"key_access_server_id,omitempty"` } @@ -84,6 +86,7 @@ type GetNamespaceRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -178,6 +181,7 @@ type ListNamespacesRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Optional // ACTIVE by default when not specified State common.ActiveStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=common.ActiveStateEnum" json:"state,omitempty"` } @@ -489,6 +493,7 @@ type DeactivateNamespaceRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } diff --git a/protocol/go/policy/resourcemapping/resource_mapping.pb.go b/protocol/go/policy/resourcemapping/resource_mapping.pb.go index 570f2d2a2..131662669 100644 --- a/protocol/go/policy/resourcemapping/resource_mapping.pb.go +++ b/protocol/go/policy/resourcemapping/resource_mapping.pb.go @@ -221,7 +221,8 @@ type CreateResourceMappingGroupRequest struct { // Required NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Required + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // Common metadata Metadata *common.MetadataMutable `protobuf:"bytes,100,opt,name=metadata,proto3" json:"metadata,omitempty"` } @@ -335,7 +336,8 @@ type UpdateResourceMappingGroupRequest struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Optional NamespaceId string `protobuf:"bytes,2,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Optional + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // Common metadata Metadata *common.MetadataMutable `protobuf:"bytes,100,opt,name=metadata,proto3" json:"metadata,omitempty"` MetadataUpdateBehavior common.MetadataUpdateEnum `protobuf:"varint,101,opt,name=metadata_update_behavior,json=metadataUpdateBehavior,proto3,enum=common.MetadataUpdateEnum" json:"metadata_update_behavior,omitempty"` @@ -897,10 +899,12 @@ type CreateResourceMappingRequest struct { unknownFields protoimpl.UnknownFields // Required - AttributeValueId string `protobuf:"bytes,1,opt,name=attribute_value_id,json=attributeValueId,proto3" json:"attribute_value_id,omitempty"` - Terms []string `protobuf:"bytes,2,rep,name=terms,proto3" json:"terms,omitempty"` + AttributeValueId string `protobuf:"bytes,1,opt,name=attribute_value_id,json=attributeValueId,proto3" json:"attribute_value_id,omitempty"` + // Required + Terms []string `protobuf:"bytes,2,rep,name=terms,proto3" json:"terms,omitempty"` + // Optional + GroupId string `protobuf:"bytes,3,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // Optional - GroupId string `protobuf:"bytes,3,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` Metadata *common.MetadataMutable `protobuf:"bytes,100,opt,name=metadata,proto3" json:"metadata,omitempty"` } @@ -1019,9 +1023,12 @@ type UpdateResourceMappingRequest struct { // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Optional - AttributeValueId string `protobuf:"bytes,4,opt,name=attribute_value_id,json=attributeValueId,proto3" json:"attribute_value_id,omitempty"` - Terms []string `protobuf:"bytes,5,rep,name=terms,proto3" json:"terms,omitempty"` - GroupId string `protobuf:"bytes,6,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + AttributeValueId string `protobuf:"bytes,4,opt,name=attribute_value_id,json=attributeValueId,proto3" json:"attribute_value_id,omitempty"` + // Optional + Terms []string `protobuf:"bytes,5,rep,name=terms,proto3" json:"terms,omitempty"` + // Optional + GroupId string `protobuf:"bytes,6,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + // Optional // Common Metadata Metadata *common.MetadataMutable `protobuf:"bytes,100,opt,name=metadata,proto3" json:"metadata,omitempty"` MetadataUpdateBehavior common.MetadataUpdateEnum `protobuf:"varint,101,opt,name=metadata_update_behavior,json=metadataUpdateBehavior,proto3,enum=common.MetadataUpdateEnum" json:"metadata_update_behavior,omitempty"` diff --git a/protocol/go/policy/subjectmapping/subject_mapping.pb.go b/protocol/go/policy/subjectmapping/subject_mapping.pb.go index 58c9355fc..079dd1a8b 100644 --- a/protocol/go/policy/subjectmapping/subject_mapping.pb.go +++ b/protocol/go/policy/subjectmapping/subject_mapping.pb.go @@ -134,6 +134,7 @@ type GetSubjectMappingRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -316,6 +317,7 @@ type CreateSubjectMappingRequest struct { // Required // Attribute Value to be mapped to AttributeValueId string `protobuf:"bytes,1,opt,name=attribute_value_id,json=attributeValueId,proto3" json:"attribute_value_id,omitempty"` + // Required // The actions permitted by subjects in this mapping Actions []*policy.Action `protobuf:"bytes,2,rep,name=actions,proto3" json:"actions,omitempty"` // Either of the following: @@ -451,6 +453,7 @@ type UpdateSubjectMappingRequest struct { // Optional // Replaces the existing SubjectConditionSet id with a new one SubjectConditionSetId string `protobuf:"bytes,2,opt,name=subject_condition_set_id,json=subjectConditionSetId,proto3" json:"subject_condition_set_id,omitempty"` + // Optional // Replaces entire list of actions permitted by subjects Actions []*policy.Action `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"` // Common metadata @@ -578,6 +581,7 @@ type DeleteSubjectMappingRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -673,6 +677,7 @@ type GetSubjectConditionSetRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -1136,6 +1141,7 @@ type DeleteSubjectConditionSetRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } diff --git a/protocol/go/policy/unsafe/unsafe.pb.go b/protocol/go/policy/unsafe/unsafe.pb.go index 8ab2cb46e..1d1a305b5 100644 --- a/protocol/go/policy/unsafe/unsafe.pb.go +++ b/protocol/go/policy/unsafe/unsafe.pb.go @@ -32,7 +32,8 @@ type UnsafeUpdateNamespaceRequest struct { unknownFields protoimpl.UnknownFields // Required - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Required Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } @@ -137,6 +138,7 @@ type UnsafeReactivateNamespaceRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -237,6 +239,7 @@ type UnsafeDeleteNamespaceRequest struct { // Required // UUID of the Namespace Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Required // Fully Qualified Name (FQN) of Namespace (i.e. https://), normalized to lower case. Fqn string `protobuf:"bytes,2,opt,name=fqn,proto3" json:"fqn,omitempty"` } @@ -347,9 +350,11 @@ type UnsafeUpdateAttributeRequest struct { // WARNING!! // Updating the name of an Attribute will retroactively alter access to existing TDFs of the old and new Attribute name. Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Optional // WARNING!! // Updating the rule of an Attribute will retroactively alter access to existing TDFs of the Attribute name. Rule policy.AttributeRuleTypeEnum `protobuf:"varint,3,opt,name=rule,proto3,enum=policy.AttributeRuleTypeEnum" json:"rule,omitempty"` + // Optional // WARNING!! // Unsafe reordering requires the full list of values in the new order they should be stored. Updating the order of values in a HIERARCHY-rule Attribute Definition // will retroactively alter access to existing TDFs containing those values. Replacing values on an attribute in place is not supported; values can be unsafely deleted @@ -472,6 +477,7 @@ type UnsafeReactivateAttributeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -573,6 +579,7 @@ type UnsafeDeleteAttributeRequest struct { // Required // UUID of the Attribute Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Required // Fully Qualified Name (FQN) of Attribute Definition (i.e. https:///attr/), normalized to lower case. Fqn string `protobuf:"bytes,2,opt,name=fqn,proto3" json:"fqn,omitempty"` } @@ -677,7 +684,9 @@ type UnsafeUpdateAttributeValueRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Required + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Required Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } @@ -781,6 +790,7 @@ type UnsafeReactivateAttributeValueRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -881,6 +891,7 @@ type UnsafeDeleteAttributeValueRequest struct { // Required // UUID of the Attribute Value Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Required // Fully Qualified Name (FQN) of Attribute Value (i.e. https:///attr//value/), normalized to lower case. Fqn string `protobuf:"bytes,2,opt,name=fqn,proto3" json:"fqn,omitempty"` } diff --git a/service/policy/attributes/attributes.proto b/service/policy/attributes/attributes.proto index 11c688506..ebbbf5a61 100644 --- a/service/policy/attributes/attributes.proto +++ b/service/policy/attributes/attributes.proto @@ -13,18 +13,22 @@ import "policy/selectors.proto"; */ message AttributeKeyAccessServer { + // Required string attribute_id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required string key_access_server_id = 2 [ (buf.validate.field).string.uuid = true ]; } message ValueKeyAccessServer { + // Required string value_id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required string key_access_server_id = 2 [ (buf.validate.field).string.uuid = true ]; @@ -35,9 +39,11 @@ message ValueKeyAccessServer { */ message ListAttributesRequest { + // Optional // ACTIVE by default when not specified common.ActiveStateEnum state = 1; - // can be id or name + // Optional + // Namespace ID or name string namespace = 2; } message ListAttributesResponse { @@ -45,6 +51,7 @@ message ListAttributesResponse { } message GetAttributeRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -58,6 +65,7 @@ message CreateAttributeRequest { string namespace_id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required string name = 2 [ (buf.validate.field).required = true, (buf.validate.field).string.max_len = 253, @@ -67,11 +75,13 @@ message CreateAttributeRequest { expression: "this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$')" } ]; + // Required AttributeRuleTypeEnum rule = 3 [ (buf.validate.field).enum.defined_only = true, (buf.validate.field).required = true ]; - // Optional attribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character. + // Optional + // Attribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character. // The stored attribute value will be normalized to lower case. repeated string values = 4 [ (buf.validate.field).repeated = { @@ -109,6 +119,7 @@ message UpdateAttributeResponse { } message DeactivateAttributeRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -121,6 +132,7 @@ message DeactivateAttributeResponse { /// Value RPC messages /// message GetAttributeValueRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -130,9 +142,11 @@ message GetAttributeValueResponse { } message ListAttributeValuesRequest { + // Required string attribute_id = 1 [ (buf.validate.field).string.uuid = true ]; + // Optional // ACTIVE by default when not specified common.ActiveStateEnum state = 2; } @@ -145,6 +159,7 @@ message CreateAttributeValueRequest { string attribute_id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required string value = 2 [ (buf.validate.field).required = true, (buf.validate.field).string.max_len = 253, @@ -159,6 +174,7 @@ message CreateAttributeValueRequest { reserved "members"; reserved 3; + // Optional // Common metadata common.MetadataMutable metadata = 100; } @@ -167,6 +183,7 @@ message CreateAttributeValueResponse { } message UpdateAttributeValueRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -175,6 +192,7 @@ message UpdateAttributeValueRequest { reserved "members"; reserved 4; + // Optional // Common metadata common.MetadataMutable metadata = 100; common.MetadataUpdateEnum metadata_update_behavior = 101; @@ -184,6 +202,7 @@ message UpdateAttributeValueResponse { } message DeactivateAttributeValueRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -212,6 +231,7 @@ message GetAttributeValuesByFqnsResponse { */ message AssignKeyAccessServerToAttributeRequest { + // Required AttributeKeyAccessServer attribute_key_access_server = 1; } @@ -220,6 +240,7 @@ message AssignKeyAccessServerToAttributeResponse { } message RemoveKeyAccessServerFromAttributeRequest { + // Required AttributeKeyAccessServer attribute_key_access_server = 1; } @@ -228,6 +249,7 @@ message RemoveKeyAccessServerFromAttributeResponse { } message AssignKeyAccessServerToValueRequest { + // Required ValueKeyAccessServer value_key_access_server = 1; } @@ -236,6 +258,7 @@ message AssignKeyAccessServerToValueResponse { } message RemoveKeyAccessServerFromValueRequest { + // Required ValueKeyAccessServer value_key_access_server = 1; } diff --git a/service/policy/kasregistry/key_access_server_registry.proto b/service/policy/kasregistry/key_access_server_registry.proto index e4542b44c..62b93ea69 100644 --- a/service/policy/kasregistry/key_access_server_registry.proto +++ b/service/policy/kasregistry/key_access_server_registry.proto @@ -8,6 +8,7 @@ import "google/api/annotations.proto"; import "policy/objects.proto"; message GetKeyAccessServerRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -30,8 +31,10 @@ message CreateKeyAccessServerRequest { message: "URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.", expression: "this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?(\\\\.[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$')" }]; + // Required PublicKey public_key = 2 [(buf.validate.field).required = true]; + // Optional // Common metadata common.MetadataMutable metadata = 100; } @@ -44,13 +47,16 @@ message UpdateKeyAccessServerRequest { string id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required string uri = 2 [(buf.validate.field).cel = { id: "optional_uri_format", message: "Optional URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.", expression: "size(this) == 0 || this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?(\\\\.[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$')" }]; + // Required PublicKey public_key = 3; + // Optional // Common metadata common.MetadataMutable metadata = 100; common.MetadataUpdateEnum metadata_update_behavior = 101; @@ -60,6 +66,7 @@ message UpdateKeyAccessServerResponse { } message DeleteKeyAccessServerRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -89,13 +96,16 @@ message KeyAccessServerGrants { // GET request to the specific policy object. message ListKeyAccessServerGrantsRequest { // Optional - // Filter LIST by either ID or URI of a registered Key Access Server. + // Filter LIST by either ID of a registered Key Access Server. // If neither is provided, grants from all registered KASs to policy attribute objects are returned. string kas_id = 1 [(buf.validate.field).cel = { id: "optional_uuid_format", message: "Optional field must be a valid UUID", expression: "size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')" }]; + // Optional + // Filter LIST by URI of a registered Key Access Server. + // If neither is provided, grants from all registered KASs to policy attribute objects are returned. string kas_uri = 2 [(buf.validate.field).cel = { id: "optional_uri_format", message: "Optional URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.", diff --git a/service/policy/namespaces/namespaces.proto b/service/policy/namespaces/namespaces.proto index dc42fec9a..6b66701be 100644 --- a/service/policy/namespaces/namespaces.proto +++ b/service/policy/namespaces/namespaces.proto @@ -13,9 +13,11 @@ import "policy/objects.proto"; */ message NamespaceKeyAccessServer { + // Required string namespace_id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required string key_access_server_id = 2 [ (buf.validate.field).string.uuid = true ]; @@ -28,6 +30,7 @@ message NamespaceKeyAccessServer { */ message GetNamespaceRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -37,6 +40,7 @@ message GetNamespaceResponse { } message ListNamespacesRequest { + // Optional // ACTIVE by default when not specified common.ActiveStateEnum state = 1; } @@ -78,6 +82,7 @@ message UpdateNamespaceResponse { } message DeactivateNamespaceRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; diff --git a/service/policy/resourcemapping/resource_mapping.proto b/service/policy/resourcemapping/resource_mapping.proto index 03cd88928..1bbe86429 100644 --- a/service/policy/resourcemapping/resource_mapping.proto +++ b/service/policy/resourcemapping/resource_mapping.proto @@ -44,6 +44,7 @@ message CreateResourceMappingGroupRequest { (buf.validate.field).string.uuid = true ]; + // Required string name = 2 [(buf.validate.field).required = true]; // Common metadata @@ -67,6 +68,7 @@ message UpdateResourceMappingGroupRequest { expression: "size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')" }]; + // Optional string name = 3 [ (buf.validate.field).string.max_len = 253, (buf.validate.field).cel = { @@ -157,6 +159,7 @@ message CreateResourceMappingRequest { (buf.validate.field).string.uuid = true ]; + // Required repeated string terms = 2 [(buf.validate.field).repeated = { min_items: 1, max_items: 1000, @@ -169,6 +172,7 @@ message CreateResourceMappingRequest { expression: "size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')" }]; + // Optional common.MetadataMutable metadata = 100; } message CreateResourceMappingResponse { @@ -188,16 +192,19 @@ message UpdateResourceMappingRequest { expression: "size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')" }]; + // Optional repeated string terms = 5 [(buf.validate.field).repeated = { max_items: 1000, }]; + // Optional string group_id = 6 [(buf.validate.field).cel = { id: "optional_uuid_format", message: "Optional field must be a valid UUID", expression: "size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')" }]; + // Optional // Common Metadata common.MetadataMutable metadata = 100; common.MetadataUpdateEnum metadata_update_behavior = 101; diff --git a/service/policy/subjectmapping/subject_mapping.proto b/service/policy/subjectmapping/subject_mapping.proto index cbb1e894e..c742ee453 100644 --- a/service/policy/subjectmapping/subject_mapping.proto +++ b/service/policy/subjectmapping/subject_mapping.proto @@ -34,6 +34,7 @@ message MatchSubjectMappingsResponse { */ message GetSubjectMappingRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -53,6 +54,7 @@ message CreateSubjectMappingRequest{ string attribute_value_id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required // The actions permitted by subjects in this mapping repeated policy.Action actions = 2 [(buf.validate.field).repeated.min_items = 1]; @@ -86,6 +88,7 @@ message UpdateSubjectMappingRequest { message: "Optional field must be a valid UUID", expression: "size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')" }]; + // Optional // Replaces entire list of actions permitted by subjects repeated policy.Action actions = 3; @@ -99,6 +102,7 @@ message UpdateSubjectMappingResponse { } message DeleteSubjectMappingRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -113,6 +117,7 @@ message DeleteSubjectMappingResponse { */ message GetSubjectConditionSetRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -163,6 +168,7 @@ message UpdateSubjectConditionSetResponse { } message DeleteSubjectConditionSetRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; diff --git a/service/policy/unsafe/unsafe.proto b/service/policy/unsafe/unsafe.proto index 566058bf2..dbbbb7896 100644 --- a/service/policy/unsafe/unsafe.proto +++ b/service/policy/unsafe/unsafe.proto @@ -17,6 +17,7 @@ message UnsafeUpdateNamespaceRequest { (buf.validate.field).string.uuid = true ]; + // Required string name = 2 [ (buf.validate.field).string.max_len = 253, (buf.validate.field).cel = { @@ -34,6 +35,7 @@ message UnsafeUpdateNamespaceResponse { // Reactivating a Namespace can potentially open up an access path to existing TDFs containing any Attributes under the Namespace. // Active state of any Definitions and their Values under this Namespace will NOT be changed. message UnsafeReactivateNamespaceRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -51,6 +53,7 @@ message UnsafeDeleteNamespaceRequest { string id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required // Fully Qualified Name (FQN) of Namespace (i.e. https://), normalized to lower case. string fqn = 2 [(buf.validate.field).required = true]; } @@ -80,11 +83,13 @@ message UnsafeUpdateAttributeRequest { expression: "size(this) > 0 ? this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') : true" } ]; + // Optional // WARNING!! // Updating the rule of an Attribute will retroactively alter access to existing TDFs of the Attribute name. AttributeRuleTypeEnum rule = 3 [ (buf.validate.field).enum.defined_only = true ]; + // Optional // WARNING!! // Unsafe reordering requires the full list of values in the new order they should be stored. Updating the order of values in a HIERARCHY-rule Attribute Definition // will retroactively alter access to existing TDFs containing those values. Replacing values on an attribute in place is not supported; values can be unsafely deleted @@ -99,6 +104,7 @@ message UnsafeUpdateAttributeResponse { // Reactivating an Attribute can potentially open up an access path to existing TDFs containing the Attribute name. // Active state of any Values under this Attribute Definition will NOT be changed. message UnsafeReactivateAttributeRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -117,6 +123,7 @@ message UnsafeDeleteAttributeRequest { string id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required // Fully Qualified Name (FQN) of Attribute Definition (i.e. https:///attr/), normalized to lower case. string fqn = 2 [(buf.validate.field).required = true]; } @@ -131,10 +138,12 @@ message UnsafeDeleteAttributeResponse { // WARNING!! // Updating an Attribute Value will retroactively alter access to existing TDFs containing the old and new Attribute Value. message UnsafeUpdateAttributeValueRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required string value = 2 [ (buf.validate.field).string.max_len = 253, (buf.validate.field).cel = { @@ -151,6 +160,7 @@ message UnsafeUpdateAttributeValueResponse { // WARNING!! // Reactivating an Attribute Value can potentially open up an access path to existing TDFs containing the Attribute Value. message UnsafeReactivateAttributeValueRequest { + // Required string id = 1 [ (buf.validate.field).string.uuid = true ]; @@ -168,6 +178,7 @@ message UnsafeDeleteAttributeValueRequest { string id = 1 [ (buf.validate.field).string.uuid = true ]; + // Required // Fully Qualified Name (FQN) of Attribute Value (i.e. https:///attr//value/), normalized to lower case. string fqn = 2 [(buf.validate.field).required = true]; }