syntax = "proto3"; package metacrypt.v1; option go_package = "git.wntrmute.dev/mc/metacrypt/gen/metacrypt/v1;metacryptv1"; service PolicyService { rpc CreatePolicy(CreatePolicyRequest) returns (CreatePolicyResponse); rpc ListPolicies(ListPoliciesRequest) returns (ListPoliciesResponse); rpc GetPolicy(GetPolicyRequest) returns (GetPolicyResponse); rpc DeletePolicy(DeletePolicyRequest) returns (DeletePolicyResponse); } message PolicyRule { string id = 1; int32 priority = 2; string effect = 3; repeated string usernames = 4; repeated string roles = 5; repeated string resources = 6; repeated string actions = 7; } message CreatePolicyRequest { PolicyRule rule = 1; } message CreatePolicyResponse { PolicyRule rule = 1; } message GetPolicyResponse { PolicyRule rule = 1; } message ListPoliciesRequest {} message ListPoliciesResponse { repeated PolicyRule rules = 1; } message GetPolicyRequest { string id = 1; } message DeletePolicyRequest { string id = 1; } message DeletePolicyResponse {}