diff --git a/raystack/frontier/v1beta1/admin.proto b/raystack/frontier/v1beta1/admin.proto index 2f255472..7f34c246 100644 --- a/raystack/frontier/v1beta1/admin.proto +++ b/raystack/frontier/v1beta1/admin.proto @@ -355,20 +355,18 @@ message DeleteRoleResponse {} message PermissionRequestBody { string name = 1 [ deprecated = true, - (validate.rules).string = { - min_len: 3, - pattern: "^[A-Za-z0-9]+$" - }, (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "The name of the permission. It should be unique across a Frontier instance and can contain only alphanumeric characters."} ]; // namespace should be in service/resource format string namespace = 2 [ deprecated = true, - (validate.rules).string.min_len = 3, - (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "The namespace of the permission.The namespace should be in service/resource format.
*Example:*`app/guardian`"} + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "The namespace of the permission. The namespace should be in service/resource format.
*Example:*`app/guardian`"} ]; google.protobuf.Struct metadata = 3 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "The metadata object for permissions that can hold key value pairs."}]; string title = 4 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "The title can contain any UTF-8 character, used to provide a human-readable name for the permissions. Can also be left empty."}]; + + // key is composed of three parts, 'service.resource.verb'. Where 'service.resource' works as a namespace for the 'verb'. + // Use this instead of using name and namespace fields string key = 5 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { description: "Permission path key is composed of three parts, 'service.resource.verb'. Where 'service.resource' works as a namespace for the 'verb'.", example: "\"compute.instance.get\""