diff --git a/cache/expand_test.go b/cache/expand_test.go index 74f6c12..acc81c6 100644 --- a/cache/expand_test.go +++ b/cache/expand_test.go @@ -9,7 +9,7 @@ import ( "github.com/aserto-dev/azm/cache" "github.com/aserto-dev/azm/model" - v3 "github.com/aserto-dev/azm/v3" + v2 "github.com/aserto-dev/azm/v2" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -35,7 +35,7 @@ func loadFromManifest(t *testing.T, path string) *cache.Cache { // nolint:unused require.NoError(t, err) defer r.Close() - m, err := v3.Load(r) + m, err := v2.Load(r) require.NoError(t, err) cachefile := strings.TrimSuffix(path, filepath.Ext(path)) + ".json" diff --git a/cache/expand_test.json b/cache/expand_test.json index d365dc9..29fdc21 100644 --- a/cache/expand_test.json +++ b/cache/expand_test.json @@ -1,4470 +1,2233 @@ { "version": 2, "types": { - "application": { - "relations": { - "user": [] - } - }, - "group": { - "relations": { - "member": [] - } - }, - "identity": { - "relations": { - "identifier": [] - } - }, + "application": { "relations": { "user": {} } }, + "group": { "relations": { "member": {} } }, + "identity": { "relations": { "identifier": {} } }, "machine": {}, "resource": {}, "service": {}, "system": { "relations": { - "admin": [], - "directory-reader": [ - { - "subject": { - "object": "system", - "relation": "directory-writer" - } - } - ], - "directory-store-reader": [ - { - "subject": { - "object": "system", - "relation": "directory-store-writer" - } - } - ], - "directory-store-writer": [], - "directory-writer": [], - "task-handler": [], - "task-manager": [], - "user": [] - }, - "permissions": { - "aserto.authorizer.authorizer.v1.authorizer.decisiontree": { + "admin": {}, + "directory-reader": { "union": [ { - "rel_or_perm": "admin" + "subject": { "object": "system", "relation": "directory-writer" } } ] }, - "aserto.authorizer.authorizer.v1.authorizer.is": { + "directory-store-reader": { "union": [ { - "rel_or_perm": "admin" + "subject": { + "object": "system", + "relation": "directory-store-writer" + } } ] }, + "directory-store-writer": {}, + "directory-writer": {}, + "task-handler": {}, + "task-manager": {}, + "user": {} + }, + "permissions": { + "aserto.authorizer.authorizer.v1.authorizer.decisiontree": { + "union": [{ "rel_or_perm": "admin" }] + }, + "aserto.authorizer.authorizer.v1.authorizer.is": { + "union": [{ "rel_or_perm": "admin" }] + }, "aserto.authorizer.authorizer.v1.authorizer.query": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.directory.v1.directory.createtenant": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.createuser": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplpermission": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplproperty": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplrole": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteresource": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deletetenant": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuser": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserapplication": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserpermission": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserproperty": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserrole": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.getapplpermissions": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getapplproperties": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getapplroles": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getidentity": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getresource": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuser": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserpermissions": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserproperties": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserroles": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getvalue": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.listresources": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.listtenants": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.listuserapplications": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.listusers": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.loadusers": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplpermission": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplpermissions": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplproperties": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplproperty": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplrole": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplroles": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setresource": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserpermission": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserpermissions": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserproperties": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserproperty": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserrole": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserroles": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.updateuser": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "directory-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.policy.v1.policy.getmodule": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.policy.v1.policy.getpolicies": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.policy.v1.policy.listpolicies": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.getruntime": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.setloglevel": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.setupruntime": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.tenantconfig": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.unloadruntime": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.common.info.v1.config.get": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.common.info.v1.info.info": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.executequery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.getdecisionlog": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.getdecisions": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.getuser": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.listdecisionlogs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.listusers": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.executequery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.getdecisionlog": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.getdecisions": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.getuser": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.listdecisionlogs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.listusers": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.directory.exporter.v2.exporter.export": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.importer.v2.importer.import": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.reader.v2.reader.checkpermission": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.checkrelation": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getgraph": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobject": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobjectmany": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobjects": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobjecttype": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobjecttypes": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getpermission": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getpermissions": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getrelation": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getrelations": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getrelationtype": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getrelationtypes": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.store.v2.store.createtenant": { - "union": [ - { - "rel_or_perm": "directory-store-writer" - } - ] + "union": [{ "rel_or_perm": "directory-store-writer" }] }, "aserto.directory.store.v2.store.deletetenant": { - "union": [ - { - "rel_or_perm": "directory-store-writer" - } - ] + "union": [{ "rel_or_perm": "directory-store-writer" }] }, "aserto.directory.store.v2.store.gettenant": { - "union": [ - { - "rel_or_perm": "directory-store-reader" - } - ] + "union": [{ "rel_or_perm": "directory-store-reader" }] }, "aserto.directory.store.v2.store.info": { - "union": [ - { - "rel_or_perm": "directory-store-writer" - } - ] + "union": [{ "rel_or_perm": "directory-store-writer" }] }, "aserto.directory.store.v2.store.listtenants": { - "union": [ - { - "rel_or_perm": "directory-store-reader" - } - ] + "union": [{ "rel_or_perm": "directory-store-reader" }] }, "aserto.directory.store.v2.store.migrateschema": { - "union": [ - { - "rel_or_perm": "directory-store-writer" - } - ] + "union": [{ "rel_or_perm": "directory-store-writer" }] }, "aserto.directory.writer.v2.writer.deleteobject": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.deleteobjecttype": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.deletepermission": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.deleterelation": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.deleterelationtype": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setobject": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setobjecttype": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setpermission": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setrelation": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setrelationtype": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.discovery.policy.v1.discovery.opadiscovery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.discovery.policy.v2.discovery.opainstancediscovery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.funnel.v1.funnel.runworkflow": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.funnel.v1.funnel.startworkflow": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.funnel.v1.funnel.stopworkflow": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.system.aonadeleteorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.system.authorizerdeleteorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.system.harddeleteorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.system.tenantdeleteorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.user.getpolicystate": { - "union": [ - { - "rel_or_perm": "admin" - } - ] - }, - "aserto.maestro.user.policy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] - }, - "aserto.maestro.user.testwf": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, + "aserto.maestro.user.policy": { "union": [{ "rel_or_perm": "admin" }] }, + "aserto.maestro.user.testwf": { "union": [{ "rel_or_perm": "admin" }] }, "aserto.management.v2.controller.commandstream": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.management.v2.controlplane.execcommand": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.management.v2.controlplane.listinstanceregistrations": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.createimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.getreadaccesstoken": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.getwriteaccesstoken": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listdigests": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listimages": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listorgs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listpublicimages": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listpublicorgs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listtagswithdetails": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.removeimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.repoavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.setimagevisibility": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.createpolicyimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.deletepolicyimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.getpolicyimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.listpolicyimages": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.listpublicpolicyimages": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.updatepolicyimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.createpolicyrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.deletepolicyrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.getpolicyrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.listpolicyrepos": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.listpublicpolicyrepos": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.updatepolicyrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.tenant.listpublictenants": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.tenant.listtenants": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.system.v2.tenantcache.invalidatesecretskey": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.task.handler.v1.handler.handlejob": { - "union": [ - { - "rel_or_perm": "task-handler" - } - ] + "union": [{ "rel_or_perm": "task-handler" }] }, "aserto.task.handler.v1.handler.handletask": { - "union": [ - { - "rel_or_perm": "task-handler" - } - ] + "union": [{ "rel_or_perm": "task-handler" }] }, "aserto.task.manager.v1.manager.createjob": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.createtask": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.deletejob": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.deletetask": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.execjob": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.exectask": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.getjob": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.gettask": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.tenant.account.v1.account.getaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.account.v1.account.listinvites": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.account.v1.account.signupaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.account.v1.account.updateaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.connectionavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.createconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.deleteconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.getconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.listconnections": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.rotatesecret": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.updateconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.verifyconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.onboarding.v1.onboarding.claimtenant": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.onboarding.v1.onboarding.inviteuser": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.onboarding.v1.onboarding.tenantavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.createpolicyref": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.deletepolicyref": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.listpolicyrefs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.opadiscovery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.opainstancediscovery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.updatepolicyref": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy_builder.v1.policybuilder.createpolicybuilder": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy_builder.v1.policybuilder.deletepolicybuilder": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy_builder.v1.policybuilder.listpolicybuilders": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.getinvites": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.getprofile": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.inviteuser": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.removemember": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.respondtoinvite": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.provider.v1.provider.getprovider": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.provider.v1.provider.listproviderkinds": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.provider.v1.provider.listproviders": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.clonerepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.createregistryrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.deleteregistryrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.getregistryrepotag": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.listorgs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.listregistryrepodigests": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.listregistryrepos": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.listregistryrepotags": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.registryrepoavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, - "aserto.tenant.registry.v1.registry.validpolicyregistryrepotag": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "aserto.tenant.registry.v1.registry.validpolicyregistryrepotag": { + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.createrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.getprofile": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.getrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.isrepoconnected": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.listorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.listrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.listtemplates": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.deleteaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.deletetenant": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.getaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.getmachineaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.listaccounts": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.listdeletedtenants": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.listtenants": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.restoredeletedtenant": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.setaccountdeleted": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.setloglevel": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.settenantdeleted": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.account.deleteaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.createinstance": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.deleteinstance": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.listinstance": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.updateinstance": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.createpolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.deletepolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.getpolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.listpolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.policynameavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.updatepolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policystate.getpolicystate": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policystate.setpolicystate": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.repository.createrepository": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.repository.deleterepository": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.repository.getrepository": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.repository.updaterepository": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.source.createsource": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.source.deletesource": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.source.getsource": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.source.updatesource": { + "union": [{ "rel_or_perm": "admin" }] + }, + "aserto.tenant.v2.tenant.deletetenant": { + "union": [{ "rel_or_perm": "admin" }] + }, + "grpc.reflection.v1alpha.serverreflection.serverreflectioninfo": { + "union": [{ "rel_or_perm": "admin" }] + } + } + }, + "tenant": { + "relations": { + "account": {}, + "admin": { + "union": [{ "subject": { "object": "tenant", "relation": "owner" } }] + }, + "decision-log-reader": {}, + "directory-client-reader": { "union": [ { - "rel_or_perm": "admin" + "subject": { + "object": "tenant", + "relation": "directory-client-writer" + } } ] }, - "aserto.tenant.v2.tenant.deletetenant": { + "directory-client-writer": {}, + "discovery-client": {}, + "edge-authorizer": {}, + "member": { "union": [ - { - "rel_or_perm": "admin" - } + { "subject": { "object": "tenant", "relation": "owner" } }, + { "subject": { "object": "tenant", "relation": "admin" } } ] }, - "grpc.reflection.v1alpha.serverreflection.serverreflectioninfo": { + "owner": {}, + "viewer": { "union": [ - { - "rel_or_perm": "admin" - } + { "subject": { "object": "tenant", "relation": "member" } }, + { "subject": { "object": "tenant", "relation": "owner" } }, + { "subject": { "object": "tenant", "relation": "admin" } } ] } - } - }, - "tenant": { - "relations": { - "account": [], - "admin": [ - { - "subject": { - "object": "tenant", - "relation": "owner" - } - } - ], - "decision-log-reader": [], - "directory-client-reader": [ - { - "subject": { - "object": "tenant", - "relation": "directory-client-writer" - } - } - ], - "directory-client-writer": [], - "discovery-client": [], - "edge-authorizer": [], - "member": [ - { - "subject": { - "object": "tenant", - "relation": "owner" - } - }, - { - "subject": { - "object": "tenant", - "relation": "admin" - } - } - ], - "owner": [], - "viewer": [ - { - "subject": { - "object": "tenant", - "relation": "member" - } - }, - { - "subject": { - "object": "tenant", - "relation": "owner" - } - }, - { - "subject": { - "object": "tenant", - "relation": "admin" - } - } - ] }, "permissions": { "aserto.authorizer.authorizer.v1.authorizer.decisiontree": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.authorizer.v1.authorizer.is": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.authorizer.v1.authorizer.query": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.createtenant": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.createuser": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplpermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplproperty": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplrole": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteresource": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deletetenant": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuser": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserapplication": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserpermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserproperty": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserrole": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.getapplpermissions": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.getapplproperties": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, - "aserto.authorizer.directory.v1.directory.getapplroles": { - "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + "aserto.authorizer.directory.v1.directory.getapplroles": { + "union": [ + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.getidentity": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.getresource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuser": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserpermissions": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserproperties": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserroles": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.getvalue": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.listresources": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.listtenants": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.listuserapplications": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.listusers": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.authorizer.directory.v1.directory.loadusers": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplpermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplpermissions": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplproperties": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplproperty": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplrole": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplroles": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setresource": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserpermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserpermissions": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserproperties": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserproperty": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserrole": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserroles": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.updateuser": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.system.v1.system.unloadruntime": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.common.info.v1.info.info": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v1.decisionlogs.executequery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v1.decisionlogs.getdecisionlog": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v1.decisionlogs.getdecisions": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v1.decisionlogs.getuser": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v1.decisionlogs.listdecisionlogs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v1.decisionlogs.listusers": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v2.decisionlogs.executequery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v2.decisionlogs.getdecisionlog": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v2.decisionlogs.getdecisions": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v2.decisionlogs.getuser": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v2.decisionlogs.listdecisionlogs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.decision_logs.v2.decisionlogs.listusers": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.exporter.v2.exporter.export": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.importer.v2.importer.import": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.reader.v2.reader.checkpermission": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.checkrelation": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getgraph": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getobject": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getobjectmany": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getobjects": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getobjecttype": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getobjecttypes": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getpermission": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getpermissions": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getrelation": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getrelations": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getrelationtype": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.reader.v2.reader.getrelationtypes": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "directory-client-reader" } ] }, "aserto.directory.writer.v2.writer.deleteobject": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.deleteobjecttype": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.deletepermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.deleterelation": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.deleterelationtype": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.setobject": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.setobjecttype": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, - "aserto.directory.writer.v2.writer.setpermission": { - "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + "aserto.directory.writer.v2.writer.setpermission": { + "union": [ + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.setrelation": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.setrelationtype": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.discovery.policy.v1.discovery.opadiscovery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "discovery-client" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "discovery-client" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.discovery.policy.v2.discovery.opainstancediscovery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "discovery-client" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "discovery-client" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.funnel.v1.funnel.runworkflow": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.funnel.v1.funnel.startworkflow": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.funnel.v1.funnel.stopworkflow": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.maestro.user.getpolicystate": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.maestro.user.policy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.maestro.user.testwf": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.management.v2.controller.commandstream": { - "union": [ - { - "rel_or_perm": "edge-authorizer" - } - ] + "union": [{ "rel_or_perm": "edge-authorizer" }] }, "aserto.management.v2.controlplane.execcommand": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.management.v2.controlplane.listinstanceregistrations": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.createimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.getreadaccesstoken": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.getwriteaccesstoken": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.listdigests": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.listimages": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.listorgs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.listpublicimages": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.listpublicorgs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.listtagswithdetails": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.removeimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.repoavailable": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry.v1.registry.setimagevisibility": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.createpolicyimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policy.deletepolicyimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policy.getpolicyimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policy.listpolicyimages": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policy.listpublicpolicyimages": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policy.updatepolicyimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policyrepo.createpolicyrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policyrepo.deletepolicyrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policyrepo.getpolicyrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policyrepo.listpolicyrepos": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.policyrepo.updatepolicyrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.tenant.listpublictenants": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.registry_tenant.v1.tenant.listtenants": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.account.v1.account.getaccount": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.account.v1.account.listinvites": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.account.v1.account.signupaccount": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.account.v1.account.updateaccount": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.connection.v1.connection.connectionavailable": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.createconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.connection.v1.connection.deleteconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.connection.v1.connection.getconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.connection.v1.connection.listconnections": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.connection.v1.connection.rotatesecret": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.updateconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.connection.v1.connection.verifyconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.onboarding.v1.onboarding.claimtenant": { - "union": [ - { - "rel_or_perm": "owner" - } - ] + "union": [{ "rel_or_perm": "owner" }] }, "aserto.tenant.onboarding.v1.onboarding.inviteuser": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.onboarding.v1.onboarding.tenantavailable": { - "union": [ - { - "rel_or_perm": "owner" - } - ] + "union": [{ "rel_or_perm": "owner" }] }, "aserto.tenant.policy.v1.policy.createpolicyref": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.policy.v1.policy.deletepolicyref": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.policy.v1.policy.listpolicyrefs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.policy.v1.policy.opadiscovery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "discovery-client" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "discovery-client" }, + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.policy.v1.policy.opainstancediscovery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.policy.v1.policy.updatepolicyref": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.policy_builder.v1.policybuilder.createpolicybuilder": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.policy_builder.v1.policybuilder.deletepolicybuilder": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.policy_builder.v1.policybuilder.listpolicybuilders": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.profile.v1.profile.getinvites": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.profile.v1.profile.getprofile": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.profile.v1.profile.inviteuser": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.removemember": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.respondtoinvite": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.provider.v1.provider.getprovider": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.provider.v1.provider.listproviderkinds": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.provider.v1.provider.listproviders": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.clonerepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.createregistryrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.deleteregistryrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.getregistryrepotag": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.listorgs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.listregistryrepodigests": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.listregistryrepos": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.listregistryrepotags": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.registryrepoavailable": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.registry.v1.registry.validpolicyregistryrepotag": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.scc.v1.sourcecodectl.createrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.scc.v1.sourcecodectl.getprofile": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.scc.v1.sourcecodectl.getrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.scc.v1.sourcecodectl.isrepoconnected": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.scc.v1.sourcecodectl.listorg": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.scc.v1.sourcecodectl.listrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.scc.v1.sourcecodectl.listtemplates": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.account.deleteaccount": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.createinstance": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.instance.deleteinstance": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.instance.listinstance": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.instance.updateinstance": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.policy.createpolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.policy.deletepolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.policy.getpolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.policy.listpolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.policy.policynameavailable": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.policy.updatepolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.policystate.getpolicystate": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.policystate.setpolicystate": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.repository.createrepository": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.repository.deleterepository": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.repository.getrepository": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.repository.updaterepository": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.source.createsource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.source.deletesource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.source.getsource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.source.updatesource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.tenant.v2.tenant.deletetenant": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "grpc.reflection.v1alpha.serverreflection.serverreflectioninfo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "member" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" } ] } } }, - "tenant-name": { - "relations": { - "tenant": [] - } - }, - "user": { - "relations": { - "manager": [] - } - }, + "tenant-name": { "relations": { "tenant": {} } }, + "user": { "relations": { "manager": {} } }, "user-v1": {} }, "metadata": null diff --git a/cache/metadata_test.json b/cache/metadata_test.json index d365dc9..ec82a75 100644 --- a/cache/metadata_test.json +++ b/cache/metadata_test.json @@ -1,4470 +1,2233 @@ { "version": 2, "types": { - "application": { - "relations": { - "user": [] - } - }, - "group": { - "relations": { - "member": [] - } - }, - "identity": { - "relations": { - "identifier": [] - } - }, + "application": { "relations": { "user": {} } }, + "group": { "relations": { "member": {} } }, + "identity": { "relations": { "identifier": {} } }, "machine": {}, "resource": {}, "service": {}, "system": { "relations": { - "admin": [], - "directory-reader": [ - { - "subject": { - "object": "system", - "relation": "directory-writer" - } - } - ], - "directory-store-reader": [ - { - "subject": { - "object": "system", - "relation": "directory-store-writer" - } - } - ], - "directory-store-writer": [], - "directory-writer": [], - "task-handler": [], - "task-manager": [], - "user": [] - }, - "permissions": { - "aserto.authorizer.authorizer.v1.authorizer.decisiontree": { + "admin": {}, + "directory-reader": { "union": [ { - "rel_or_perm": "admin" + "subject": { "object": "system", "relation": "directory-writer" } } ] }, - "aserto.authorizer.authorizer.v1.authorizer.is": { + "directory-store-reader": { "union": [ { - "rel_or_perm": "admin" + "subject": { + "object": "system", + "relation": "directory-store-writer" + } } ] }, + "directory-store-writer": {}, + "directory-writer": {}, + "task-handler": {}, + "task-manager": {}, + "user": {} + }, + "permissions": { + "aserto.authorizer.authorizer.v1.authorizer.decisiontree": { + "union": [{ "rel_or_perm": "admin" }] + }, + "aserto.authorizer.authorizer.v1.authorizer.is": { + "union": [{ "rel_or_perm": "admin" }] + }, "aserto.authorizer.authorizer.v1.authorizer.query": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.directory.v1.directory.createtenant": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.createuser": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplpermission": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplproperty": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplrole": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteresource": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deletetenant": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteuser": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserapplication": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserpermission": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserproperty": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserrole": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.getapplpermissions": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getapplproperties": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getapplroles": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getidentity": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getresource": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuser": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserpermissions": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserproperties": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getuserroles": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.getvalue": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.listresources": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.listtenants": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.listuserapplications": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.listusers": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-reader" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-reader" } ] }, "aserto.authorizer.directory.v1.directory.loadusers": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setapplpermission": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setapplpermissions": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setapplproperties": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setapplproperty": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setapplrole": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setapplroles": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setresource": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setuserpermission": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setuserpermissions": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setuserproperties": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setuserproperty": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setuserrole": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.setuserroles": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.directory.v1.directory.updateuser": { "union": [ - { - "rel_or_perm": "admin" - }, - { - "rel_or_perm": "directory-writer" - } + { "rel_or_perm": "admin" }, + { "rel_or_perm": "directory-writer" } ] }, "aserto.authorizer.policy.v1.policy.getmodule": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.policy.v1.policy.getpolicies": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.policy.v1.policy.listpolicies": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.getruntime": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.setloglevel": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.setupruntime": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.tenantconfig": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.authorizer.system.v1.system.unloadruntime": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.common.info.v1.config.get": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.common.info.v1.info.info": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.executequery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.getdecisionlog": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.getdecisions": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.getuser": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.listdecisionlogs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v1.decisionlogs.listusers": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.executequery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.getdecisionlog": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.getdecisions": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.getuser": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.listdecisionlogs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.decision_logs.v2.decisionlogs.listusers": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.directory.exporter.v2.exporter.export": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.importer.v2.importer.import": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.reader.v2.reader.checkpermission": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.checkrelation": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getgraph": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobject": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobjectmany": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobjects": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobjecttype": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getobjecttypes": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getpermission": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getpermissions": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getrelation": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getrelations": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getrelationtype": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.reader.v2.reader.getrelationtypes": { - "union": [ - { - "rel_or_perm": "directory-reader" - } - ] + "union": [{ "rel_or_perm": "directory-reader" }] }, "aserto.directory.store.v2.store.createtenant": { - "union": [ - { - "rel_or_perm": "directory-store-writer" - } - ] + "union": [{ "rel_or_perm": "directory-store-writer" }] }, "aserto.directory.store.v2.store.deletetenant": { - "union": [ - { - "rel_or_perm": "directory-store-writer" - } - ] + "union": [{ "rel_or_perm": "directory-store-writer" }] }, "aserto.directory.store.v2.store.gettenant": { - "union": [ - { - "rel_or_perm": "directory-store-reader" - } - ] + "union": [{ "rel_or_perm": "directory-store-reader" }] }, "aserto.directory.store.v2.store.info": { - "union": [ - { - "rel_or_perm": "directory-store-writer" - } - ] + "union": [{ "rel_or_perm": "directory-store-writer" }] }, "aserto.directory.store.v2.store.listtenants": { - "union": [ - { - "rel_or_perm": "directory-store-reader" - } - ] + "union": [{ "rel_or_perm": "directory-store-reader" }] }, "aserto.directory.store.v2.store.migrateschema": { - "union": [ - { - "rel_or_perm": "directory-store-writer" - } - ] + "union": [{ "rel_or_perm": "directory-store-writer" }] }, "aserto.directory.writer.v2.writer.deleteobject": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.deleteobjecttype": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.deletepermission": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.deleterelation": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.deleterelationtype": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setobject": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setobjecttype": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setpermission": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setrelation": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.directory.writer.v2.writer.setrelationtype": { - "union": [ - { - "rel_or_perm": "directory-writer" - } - ] + "union": [{ "rel_or_perm": "directory-writer" }] }, "aserto.discovery.policy.v1.discovery.opadiscovery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.discovery.policy.v2.discovery.opainstancediscovery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.funnel.v1.funnel.runworkflow": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.funnel.v1.funnel.startworkflow": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.funnel.v1.funnel.stopworkflow": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.system.aonadeleteorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.system.authorizerdeleteorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.system.harddeleteorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.system.tenantdeleteorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.maestro.user.getpolicystate": { - "union": [ - { - "rel_or_perm": "admin" - } - ] - }, - "aserto.maestro.user.policy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] - }, - "aserto.maestro.user.testwf": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, + "aserto.maestro.user.policy": { "union": [{ "rel_or_perm": "admin" }] }, + "aserto.maestro.user.testwf": { "union": [{ "rel_or_perm": "admin" }] }, "aserto.management.v2.controller.commandstream": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.management.v2.controlplane.execcommand": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.management.v2.controlplane.listinstanceregistrations": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.createimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.getreadaccesstoken": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.getwriteaccesstoken": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listdigests": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listimages": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listorgs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listpublicimages": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listpublicorgs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.listtagswithdetails": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.removeimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.repoavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.setimagevisibility": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.createpolicyimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.deletepolicyimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.getpolicyimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.listpolicyimages": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.listpublicpolicyimages": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.updatepolicyimage": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.createpolicyrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.deletepolicyrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.getpolicyrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.listpolicyrepos": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.listpublicpolicyrepos": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policyrepo.updatepolicyrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.tenant.listpublictenants": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.tenant.listtenants": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.system.v2.tenantcache.invalidatesecretskey": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.task.handler.v1.handler.handlejob": { - "union": [ - { - "rel_or_perm": "task-handler" - } - ] + "union": [{ "rel_or_perm": "task-handler" }] }, "aserto.task.handler.v1.handler.handletask": { - "union": [ - { - "rel_or_perm": "task-handler" - } - ] + "union": [{ "rel_or_perm": "task-handler" }] }, "aserto.task.manager.v1.manager.createjob": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.createtask": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.deletejob": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.deletetask": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.execjob": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.exectask": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.getjob": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.task.manager.v1.manager.gettask": { - "union": [ - { - "rel_or_perm": "task-manager" - } - ] + "union": [{ "rel_or_perm": "task-manager" }] }, "aserto.tenant.account.v1.account.getaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.account.v1.account.listinvites": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.account.v1.account.signupaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.account.v1.account.updateaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.connectionavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.createconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.deleteconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.getconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.listconnections": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.rotatesecret": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.updateconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.verifyconnection": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.onboarding.v1.onboarding.claimtenant": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.onboarding.v1.onboarding.inviteuser": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.onboarding.v1.onboarding.tenantavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.createpolicyref": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.deletepolicyref": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.listpolicyrefs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.opadiscovery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.opainstancediscovery": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy.v1.policy.updatepolicyref": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy_builder.v1.policybuilder.createpolicybuilder": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy_builder.v1.policybuilder.deletepolicybuilder": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.policy_builder.v1.policybuilder.listpolicybuilders": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.getinvites": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.getprofile": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.inviteuser": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.removemember": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.respondtoinvite": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.provider.v1.provider.getprovider": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.provider.v1.provider.listproviderkinds": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.provider.v1.provider.listproviders": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.clonerepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.createregistryrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.deleteregistryrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.getregistryrepotag": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.listorgs": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.listregistryrepodigests": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.listregistryrepos": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.listregistryrepotags": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.registry.v1.registry.registryrepoavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, - "aserto.tenant.registry.v1.registry.validpolicyregistryrepotag": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "aserto.tenant.registry.v1.registry.validpolicyregistryrepotag": { + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.createrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.getprofile": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.getrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.isrepoconnected": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.listorg": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.listrepo": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.scc.v1.sourcecodectl.listtemplates": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.deleteaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.deletetenant": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.getaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.getmachineaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.listaccounts": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.listdeletedtenants": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.listtenants": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.restoredeletedtenant": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.setaccountdeleted": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.setloglevel": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.system.v1.system.settenantdeleted": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.account.deleteaccount": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.createinstance": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.deleteinstance": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.listinstance": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.updateinstance": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.createpolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.deletepolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.getpolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.listpolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.policynameavailable": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policy.updatepolicy": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policystate.getpolicystate": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.policystate.setpolicystate": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.repository.createrepository": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.repository.deleterepository": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.repository.getrepository": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.repository.updaterepository": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.source.createsource": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.source.deletesource": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.source.getsource": { - "union": [ - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "admin" }] }, "aserto.tenant.v2.source.updatesource": { + "union": [{ "rel_or_perm": "admin" }] + }, + "aserto.tenant.v2.tenant.deletetenant": { + "union": [{ "rel_or_perm": "admin" }] + }, + "grpc.reflection.v1alpha.serverreflection.serverreflectioninfo": { + "union": [{ "rel_or_perm": "admin" }] + } + } + }, + "tenant": { + "relations": { + "account": {}, + "admin": { + "union": [{ "subject": { "object": "tenant", "relation": "owner" } }] + }, + "decision-log-reader": {}, + "directory-client-reader": { "union": [ { - "rel_or_perm": "admin" + "subject": { + "object": "tenant", + "relation": "directory-client-writer" + } } ] }, - "aserto.tenant.v2.tenant.deletetenant": { + "directory-client-writer": {}, + "discovery-client": {}, + "edge-authorizer": {}, + "member": { "union": [ - { - "rel_or_perm": "admin" - } + { "subject": { "object": "tenant", "relation": "owner" } }, + { "subject": { "object": "tenant", "relation": "admin" } } ] }, - "grpc.reflection.v1alpha.serverreflection.serverreflectioninfo": { + "owner": {}, + "viewer": { "union": [ - { - "rel_or_perm": "admin" - } + { "subject": { "object": "tenant", "relation": "owner" } }, + { "subject": { "object": "tenant", "relation": "admin" } }, + { "subject": { "object": "tenant", "relation": "member" } } ] } - } - }, - "tenant": { - "relations": { - "account": [], - "admin": [ - { - "subject": { - "object": "tenant", - "relation": "owner" - } - } - ], - "decision-log-reader": [], - "directory-client-reader": [ - { - "subject": { - "object": "tenant", - "relation": "directory-client-writer" - } - } - ], - "directory-client-writer": [], - "discovery-client": [], - "edge-authorizer": [], - "member": [ - { - "subject": { - "object": "tenant", - "relation": "owner" - } - }, - { - "subject": { - "object": "tenant", - "relation": "admin" - } - } - ], - "owner": [], - "viewer": [ - { - "subject": { - "object": "tenant", - "relation": "member" - } - }, - { - "subject": { - "object": "tenant", - "relation": "owner" - } - }, - { - "subject": { - "object": "tenant", - "relation": "admin" - } - } - ] }, "permissions": { "aserto.authorizer.authorizer.v1.authorizer.decisiontree": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.authorizer.v1.authorizer.is": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.authorizer.v1.authorizer.query": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.createtenant": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.createuser": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplpermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplproperty": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteapplrole": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteresource": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.deletetenant": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuser": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserapplication": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserpermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserproperty": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.deleteuserrole": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.getapplpermissions": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.getapplproperties": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, - "aserto.authorizer.directory.v1.directory.getapplroles": { - "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + "aserto.authorizer.directory.v1.directory.getapplroles": { + "union": [ + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.getidentity": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.getresource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.getuser": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.getuserpermissions": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.getuserproperties": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.getuserroles": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.getvalue": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.authorizer.directory.v1.directory.listresources": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.listtenants": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.authorizer.directory.v1.directory.listuserapplications": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.listusers": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.authorizer.directory.v1.directory.loadusers": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplpermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplpermissions": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplproperties": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplproperty": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplrole": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setapplroles": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setresource": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.authorizer.directory.v1.directory.setuserpermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserpermissions": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserproperties": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserproperty": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserrole": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.setuserroles": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.directory.v1.directory.updateuser": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.authorizer.system.v1.system.unloadruntime": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.common.info.v1.info.info": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v1.decisionlogs.executequery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v1.decisionlogs.getdecisionlog": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v1.decisionlogs.getdecisions": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v1.decisionlogs.getuser": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v1.decisionlogs.listdecisionlogs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v1.decisionlogs.listusers": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v2.decisionlogs.executequery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v2.decisionlogs.getdecisionlog": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v2.decisionlogs.getdecisions": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v2.decisionlogs.getuser": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v2.decisionlogs.listdecisionlogs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.decision_logs.v2.decisionlogs.listusers": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "decision-log-reader" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "decision-log-reader" }, + { "rel_or_perm": "member" } ] }, "aserto.directory.exporter.v2.exporter.export": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.importer.v2.importer.import": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.reader.v2.reader.checkpermission": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.checkrelation": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getgraph": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getobject": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getobjectmany": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getobjects": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getobjecttype": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getobjecttypes": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getpermission": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getpermissions": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getrelation": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getrelations": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getrelationtype": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.reader.v2.reader.getrelationtypes": { "union": [ - { - "rel_or_perm": "directory-client-reader" - }, - { - "rel_or_perm": "viewer" - } + { "rel_or_perm": "directory-client-reader" }, + { "rel_or_perm": "viewer" } ] }, "aserto.directory.writer.v2.writer.deleteobject": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.deleteobjecttype": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.deletepermission": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.deleterelation": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.deleterelationtype": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.setobject": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.setobjecttype": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, - "aserto.directory.writer.v2.writer.setpermission": { - "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + "aserto.directory.writer.v2.writer.setpermission": { + "union": [ + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.setrelation": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.directory.writer.v2.writer.setrelationtype": { "union": [ - { - "rel_or_perm": "directory-client-writer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "directory-client-writer" }, + { "rel_or_perm": "admin" } ] }, "aserto.discovery.policy.v1.discovery.opadiscovery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "discovery-client" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "discovery-client" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.discovery.policy.v2.discovery.opainstancediscovery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "discovery-client" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "discovery-client" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.funnel.v1.funnel.runworkflow": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.funnel.v1.funnel.startworkflow": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.funnel.v1.funnel.stopworkflow": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.maestro.user.getpolicystate": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.maestro.user.policy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.maestro.user.testwf": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.management.v2.controller.commandstream": { - "union": [ - { - "rel_or_perm": "edge-authorizer" - } - ] + "union": [{ "rel_or_perm": "edge-authorizer" }] }, "aserto.management.v2.controlplane.execcommand": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.management.v2.controlplane.listinstanceregistrations": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.registry.v1.registry.createimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.getreadaccesstoken": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.getwriteaccesstoken": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.listdigests": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.listimages": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.listorgs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.listpublicimages": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.listpublicorgs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.listtagswithdetails": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.removeimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.repoavailable": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry.v1.registry.setimagevisibility": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.registry_tenant.v1.policy.createpolicyimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policy.deletepolicyimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policy.getpolicyimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policy.listpolicyimages": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policy.listpublicpolicyimages": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policy.updatepolicyimage": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policyrepo.createpolicyrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policyrepo.deletepolicyrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policyrepo.getpolicyrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policyrepo.listpolicyrepos": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.policyrepo.updatepolicyrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.tenant.listpublictenants": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.registry_tenant.v1.tenant.listtenants": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.account.v1.account.getaccount": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.account.v1.account.listinvites": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.account.v1.account.signupaccount": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.account.v1.account.updateaccount": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.connection.v1.connection.connectionavailable": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.createconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.connection.v1.connection.deleteconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.connection.v1.connection.getconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.connection.v1.connection.listconnections": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.connection.v1.connection.rotatesecret": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.connection.v1.connection.updateconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.connection.v1.connection.verifyconnection": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.onboarding.v1.onboarding.claimtenant": { - "union": [ - { - "rel_or_perm": "owner" - } - ] + "union": [{ "rel_or_perm": "owner" }] }, "aserto.tenant.onboarding.v1.onboarding.inviteuser": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.onboarding.v1.onboarding.tenantavailable": { - "union": [ - { - "rel_or_perm": "owner" - } - ] + "union": [{ "rel_or_perm": "owner" }] }, "aserto.tenant.policy.v1.policy.createpolicyref": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.policy.v1.policy.deletepolicyref": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.policy.v1.policy.listpolicyrefs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.policy.v1.policy.opadiscovery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "discovery-client" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "discovery-client" }, + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.policy.v1.policy.opainstancediscovery": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.policy.v1.policy.updatepolicyref": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.policy_builder.v1.policybuilder.createpolicybuilder": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.policy_builder.v1.policybuilder.deletepolicybuilder": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.policy_builder.v1.policybuilder.listpolicybuilders": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.profile.v1.profile.getinvites": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.profile.v1.profile.getprofile": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.profile.v1.profile.inviteuser": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.removemember": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.profile.v1.profile.respondtoinvite": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.provider.v1.provider.getprovider": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.provider.v1.provider.listproviderkinds": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.provider.v1.provider.listproviders": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.clonerepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.createregistryrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.deleteregistryrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.getregistryrepotag": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.listorgs": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.listregistryrepodigests": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.listregistryrepos": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.listregistryrepotags": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.registryrepoavailable": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.registry.v1.registry.validpolicyregistryrepotag": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.scc.v1.sourcecodectl.createrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.scc.v1.sourcecodectl.getprofile": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.scc.v1.sourcecodectl.getrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.scc.v1.sourcecodectl.isrepoconnected": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.scc.v1.sourcecodectl.listorg": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.scc.v1.sourcecodectl.listrepo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.scc.v1.sourcecodectl.listtemplates": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.account.deleteaccount": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "aserto.tenant.v2.instance.createinstance": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.instance.deleteinstance": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.instance.listinstance": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.instance.updateinstance": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.policy.createpolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.policy.deletepolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.policy.getpolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.policy.listpolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.policy.policynameavailable": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.policy.updatepolicy": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.policystate.getpolicystate": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.policystate.setpolicystate": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.repository.createrepository": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.repository.deleterepository": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.repository.getrepository": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.repository.updaterepository": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.source.createsource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.source.deletesource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.source.getsource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.source.updatesource": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] }, "aserto.tenant.v2.tenant.deletetenant": { - "union": [ - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "admin" - } - ] + "union": [{ "rel_or_perm": "owner" }, { "rel_or_perm": "admin" }] }, "grpc.reflection.v1alpha.serverreflection.serverreflectioninfo": { "union": [ - { - "rel_or_perm": "member" - }, - { - "rel_or_perm": "owner" - }, - { - "rel_or_perm": "viewer" - }, - { - "rel_or_perm": "admin" - } + { "rel_or_perm": "owner" }, + { "rel_or_perm": "viewer" }, + { "rel_or_perm": "admin" }, + { "rel_or_perm": "member" } ] } } }, - "tenant-name": { - "relations": { - "tenant": [] - } - }, - "user": { - "relations": { - "manager": [] - } - }, + "tenant-name": { "relations": { "tenant": {} } }, + "user": { "relations": { "manager": {} } }, "user-v1": {} }, "metadata": null diff --git a/cache/path_test.yaml b/cache/path_test.yaml index cb96d9f..286eda5 100644 --- a/cache/path_test.yaml +++ b/cache/path_test.yaml @@ -33,7 +33,7 @@ types: relations: owner: user parent: folder - viewer: user | user:* | group#member | owner | parent->viewer + viewer: user | user:* | group#member permissions: can_create_file: owner diff --git a/model/model.go b/model/model.go index 0f0474b..b761352 100644 --- a/model/model.go +++ b/model/model.go @@ -91,6 +91,22 @@ type Permission struct { Exclusion *ExclusionPermission `json:"exclusion,omitempty"` } +func (p *Permission) Refs() []*PermissionRef { + var refs []*PermissionRef + + switch { + case p.Union != nil: + refs = p.Union + case p.Intersection != nil: + refs = p.Intersection + case p.Exclusion != nil: + refs = []*PermissionRef{p.Exclusion.Include, p.Exclusion.Exclude} + } + + return refs + +} + type PermissionRef struct { Base RelationName `json:"base,omitempty"` RelOrPerm string `json:"rel_or_perm"` @@ -192,9 +208,9 @@ func (m *Model) Validate() error { return derr.ErrInvalidArgument.Err(err) } - // if err := m.resolvePermissions(); err != nil { - // return derr.ErrInvalidArgument.Err(err) - // } + if err := m.resolvePermissions(); err != nil { + return derr.ErrInvalidArgument.Err(err) + } return nil } @@ -273,6 +289,10 @@ func (m *Model) validateObjectRels(on ObjectName, o *Object) error { "relation '%s:%s' references undefined relation type '%s#%s'", on, rn, r.Subject.Object, r.Subject.Relation), ) } + default: + errs = multierror.Append(errs, derr.ErrInvalidRelation.Msgf( + "relation '%s:%s' has no definition", on, rn), + ) } } } @@ -283,27 +303,17 @@ func (m *Model) validateObjectRels(on ObjectName, o *Object) error { func (m *Model) validateObjectPerms(on ObjectName, o *Object) error { var errs error for pn, p := range o.Permissions { - var refs []*PermissionRef - - switch { - case p.Union != nil: - refs = p.Union - case p.Intersection != nil: - refs = p.Intersection - case p.Exclusion != nil: - refs = []*PermissionRef{p.Exclusion.Include, p.Exclusion.Exclude} + refs := p.Refs() + if len(refs) == 0 { + errs = multierror.Append(errs, derr.ErrInvalidPermission.Msgf( + "permission '%s:%s' has no definition", on, pn), + ) + continue } for _, ref := range refs { - switch ref.Base { - case "": - if !o.HasRelOrPerm(ref.RelOrPerm) { - errs = multierror.Append(errs, derr.ErrInvalidPermission.Msgf( - "permission '%s:%s' references undefined relation or permission '%s:%s'", on, pn, on, ref.RelOrPerm), - ) - } - default: - // validate that base relation exists on this object type. + if ref.Base != "" { + // validate that the base relation exists on this object type. // at this stage we don't yet resolve the relation to a set of subject types. if _, hasRelation := o.Relations[ref.Base]; !hasRelation { errs = multierror.Append(errs, derr.ErrInvalidPermission.Msgf( @@ -311,29 +321,6 @@ func (m *Model) validateObjectPerms(on ObjectName, o *Object) error { ) } } - - // for _, base := range bases { - // _, foundRelation := m.Objects[base].Relations[RelationName(ref.RelOrPerm)] - // _, foundPermission := m.Objects[base].Permissions[PermissionName(ref.RelOrPerm)] - // if !(foundRelation || foundPermission) { - // switch base { - // case on: - // errs = multierror.Append(errs, derr.ErrInvalidPermission.Msgf( - // "permission '%s:%s' references undefined relation or permission '%s:%s'", on, pn, base, ref.RelOrPerm), - // ) - // default: - // arrow := fmt.Sprintf("%s->%s", ref.Base, ref.RelOrPerm) - // errs = multierror.Append(errs, derr.ErrInvalidPermission.Msgf( - // "permission '%s:%s' references '%s', which can resolve to undefined relation or permission '%s:%s' ", - // on, pn, arrow, base, ref.RelOrPerm, - // )) - // } - - // continue - // } - // } - - // ref.BaseTypes = bases } } @@ -352,7 +339,7 @@ func (m *Model) resolveRelations() error { "relation '%s:%s' is circular and does not resolve to any object types", on, rn), ) default: - r.SubjectTypes = subs + r.SubjectTypes = lo.Uniq(subs) } } } @@ -389,6 +376,55 @@ func (m *Model) resolveRelation(r *Relation, seen RelSet) []ObjectName { return subjectTypes } +func (m *Model) resolvePermissions() error { + var errs error + + for on, o := range m.Objects { + for pn, p := range o.Permissions { + if err := m.resolvePermission(on, pn, p); err != nil { + errs = multierror.Append(errs, err) + } + } + } + + return errs +} + +func (m *Model) resolvePermission(on ObjectName, pn PermissionName, p *Permission) error { + var errs error + for _, ref := range p.Refs() { + bases := []ObjectName{} + switch ref.Base { + case "": + bases = append(bases, on) + default: + // relations are already resolved at this point. + bases = append(bases, m.Objects[on].Relations[ref.Base].SubjectTypes...) + } + + for _, base := range bases { + if !m.Objects[base].HasRelOrPerm(ref.RelOrPerm) { + switch base { + case on: + errs = multierror.Append(errs, derr.ErrInvalidPermission.Msgf( + "permission '%s:%s' references undefined relation or permission '%s:%s'", on, pn, base, ref.RelOrPerm), + ) + default: + arrow := fmt.Sprintf("%s->%s", ref.Base, ref.RelOrPerm) + errs = multierror.Append(errs, derr.ErrInvalidPermission.Msgf( + "permission '%s:%s' references '%s', which can resolve to undefined relation or permission '%s:%s' ", + on, pn, arrow, base, ref.RelOrPerm, + )) + } + + continue + } + } + } + + return errs +} + func (m *Model) subtract(newModel *Model) *diff.Changes { chgs := &diff.Changes{ Objects: make([]string, 0), diff --git a/model/model_test.go b/model/model_test.go index 6dba5a8..ba24b2f 100644 --- a/model/model_test.go +++ b/model/model_test.go @@ -28,9 +28,9 @@ var m1 = model.Model{ Object: model.ObjectName("group"), Relation: model.RelationName("member"), }, - SubjectTypes: []model.ObjectName{}, }}, }, + SubjectTypes: []model.ObjectName{"user"}, }, }, }, @@ -41,6 +41,7 @@ var m1 = model.Model{ Union: []*model.RelationTerm{ {Direct: model.ObjectName("user")}, }, + SubjectTypes: []model.ObjectName{"user"}, }, }, Permissions: map[model.PermissionName]*model.Permission{ @@ -52,16 +53,20 @@ var m1 = model.Model{ model.ObjectName("document"): { Relations: map[model.RelationName]*model.Relation{ model.RelationName("parent_folder"): { - Union: []*model.RelationTerm{{Direct: model.ObjectName("folder")}}, + Union: []*model.RelationTerm{{Direct: model.ObjectName("folder")}}, + SubjectTypes: []model.ObjectName{"folder"}, }, model.RelationName("writer"): { - Union: []*model.RelationTerm{{Direct: model.ObjectName("user")}}, + Union: []*model.RelationTerm{{Direct: model.ObjectName("user")}}, + SubjectTypes: []model.ObjectName{"user"}, }, model.RelationName("reader"): { Union: []*model.RelationTerm{ {Direct: model.ObjectName("user")}, {Wildcard: model.ObjectName("user")}, - }}, + }, + SubjectTypes: []model.ObjectName{"user"}, + }, }, Permissions: map[model.PermissionName]*model.Permission{ model.PermissionName("edit"): { @@ -345,18 +350,25 @@ func TestValidation(t *testing.T) { expectedErrors expectedErrors validate func(error, *stretch.Assertions) }{ + { + "valid manifest", + "./testdata/valid.yaml", + expectedErrors(0), + func(_ error, _ *stretch.Assertions) {}, + }, { "relation/permission collision", "./testdata/rel_perm_collision.yaml", - expectedErrors(1), + expectedErrors(2), func(err error, assert *stretch.Assertions) { assert.ErrorContains(err, "permission name 'file:writer' conflicts with 'file:writer' relation") + assert.ErrorContains(err, "relation 'file:bad' has no definition") }, }, { - "relation/permissions to undefined targets", + "relation to undefined targets", "./testdata/undefined_targets.yaml", - expectedErrors(8), + expectedErrors(6), func(err error, assert *stretch.Assertions) { // relations assert.ErrorContains(err, "relation 'file:owner' references undefined object type 'person'") @@ -364,17 +376,12 @@ func TestValidation(t *testing.T) { assert.ErrorContains(err, "relation 'file:reader' references undefined object type 'project'") assert.ErrorContains(err, "relation 'file:writer' references undefined object type 'team'") assert.ErrorContains(err, "relation 'file:admin' references undefined relation type 'group#admin'") - - // permissions - assert.ErrorContains(err, "permission 'folder:read' references undefined relation type 'folder:viewer'") - assert.ErrorContains(err, "permission 'folder:read' references undefined relation or permission 'folder:editor'") - assert.ErrorContains(err, "permission 'folder:write' references 'owner->write', which references undefined "+ - "relation or permission 'user:write'") + assert.ErrorContains(err, "permission name 'file:reader' conflicts with 'file:reader' relation") }, }, { "cyclic relation definitions", - "./testdata/cycles.yaml", + "./testdata/invalid_cycles.yaml", expectedErrors(3), func(err error, assert *stretch.Assertions) { assert.ErrorContains(err, "relation 'team:member' is circular and does not resolve to any object types") @@ -382,17 +389,15 @@ func TestValidation(t *testing.T) { assert.ErrorContains(err, "relation 'project:owner' is circular and does not resolve to any object types") }, }, - // { - // "permissions with invalid targets", - // "./testdata/invalid_perms.yaml", - // expectedErrors(3), - // func(err error, assert *stretch.Assertions) { - // assert.ErrorContains(err, "permission 'folder:read' references undefined relation type 'folder:viewer'") - // assert.ErrorContains(err, "permission 'folder:read' references undefined relation or permission 'folder:editor'") - // assert.ErrorContains(err, "permission 'folder:write' references 'owner->write', which can resolve to undefined "+ - // "relation or permission 'user:write'") - // }, - // }, + { + "permissions with invalid targets", + "./testdata/invalid_perms.yaml", + expectedErrors(2), + func(err error, assert *stretch.Assertions) { + assert.ErrorContains(err, "permission 'file:write' references 'owner->write', which can resolve to undefined relation or permission 'user:write'") + assert.ErrorContains(err, "permission 'file:write' references undefined relation or permission 'file:editor'") + }, + }, } for _, test := range tests { @@ -407,11 +412,12 @@ func TestValidation(t *testing.T) { assert.NoError(enc.Encode(m)) tt.Logf("model: %s", b.String()) - // verify that we got a load error. - if test.expectedErrors > 0 { - assert.Error(err) + if test.expectedErrors == 0 { + return } + // verify that we got a load error. + assert.Error(err) // verify that the error is of type ErrInvalidArgument aerr := derr.ErrInvalidArgument assert.ErrorAs(err, &aerr) diff --git a/model/testdata/cycles.yaml b/model/testdata/invalid_cycles.yaml similarity index 100% rename from model/testdata/cycles.yaml rename to model/testdata/invalid_cycles.yaml diff --git a/model/testdata/invalid_perms.yaml b/model/testdata/invalid_perms.yaml index 3980207..b2b5f06 100644 --- a/model/testdata/invalid_perms.yaml +++ b/model/testdata/invalid_perms.yaml @@ -7,15 +7,28 @@ model: types: user: {} - file: + folder: relations: owner: user + file: + relations: + parent: folder + owner: user | file writer: user reader: user permissions: - # invliad: viewer and editor are undefined - read: viewer->read | editor + # valid union: two relations + read: reader | writer + + # valid union: one relation and one permission + share: read | parent->owner + + # valid exclusion + delete: owner - share + + # invalid: + # 1. owner may resolve to 'user' which has no `write' relation of permission.` + # 2. no relation or permission called editor. + write: owner->write | editor - # invalid: owner has subject type 'user' which has no `write' relation of permission.` - write: owner->write diff --git a/model/testdata/model.json b/model/testdata/model.json index d9593e9..9411cb3 100644 --- a/model/testdata/model.json +++ b/model/testdata/model.json @@ -3,9 +3,15 @@ "types": { "document": { "relations": { - "parent_folder": [{ "direct": "folder" }], - "reader": [{ "direct": "user" }, { "wildcard": "user" }], - "writer": [{ "direct": "user" }] + "parent_folder": { + "union": [{ "direct": "folder" }], + "subject_types": ["folder"] + }, + "reader": { + "union": [{ "direct": "user" }, { "wildcard": "user" }], + "subject_types": ["user"] + }, + "writer": { "union": [{ "direct": "user" }], "subject_types": ["user"] } }, "permissions": { "can_only_read": { @@ -30,19 +36,23 @@ } }, "folder": { - "relations": { "owner": [{ "direct": "user" }] }, + "relations": { + "owner": { "union": [{ "direct": "user" }], "subject_types": ["user"] } + }, "permissions": { "read": { "union": [{ "rel_or_perm": "owner" }] } } }, "group": { "relations": { - "member": [ - { "direct": "user" }, - { "subject": { "object": "group", "relation": "member" } } - ] + "member": { + "union": [ + { "direct": "user" }, + { "subject": { "object": "group", "relation": "member" } } + ], + "subject_types": ["user"] + } } }, "user": {} }, "metadata": null } - diff --git a/model/testdata/rel_perm_collision.yaml b/model/testdata/rel_perm_collision.yaml index d10581f..29df538 100644 --- a/model/testdata/rel_perm_collision.yaml +++ b/model/testdata/rel_perm_collision.yaml @@ -13,9 +13,11 @@ types: writer: user reader: user + # invalid: no relation definition. + bad: + permissions: read: reader | writer # invalid: 'writer' is already defined as a relation. writer: owner - diff --git a/model/testdata/undefined_targets.yaml b/model/testdata/undefined_targets.yaml index 4ed16d3..790183c 100644 --- a/model/testdata/undefined_targets.yaml +++ b/model/testdata/undefined_targets.yaml @@ -25,16 +25,9 @@ types: # invalid: type 'group' has no 'admin' relation admin: group#admin - - folder: - relations: - owner: user - writer: user - reader: user + # valid + viewer: user permissions: - # invliad: viewer and editor are undefined - read: viewer->read | editor - - # invalid: owner has subject type 'user' which has no `write' relation of permission.` - write: owner->write + # invalid: viewer is a user and has no reader permission or relation + reader: viewer->reader diff --git a/model/testdata/valid.yaml b/model/testdata/valid.yaml new file mode 100644 index 0000000..dd6825a --- /dev/null +++ b/model/testdata/valid.yaml @@ -0,0 +1,27 @@ +# yaml-language-server: $schema=manifest.json +--- + +# model +model: + version: 3 + +types: + user: {} + + team: + relations: + # valid: mutually recursive relation that can resolve to "user" or "team:*" + member: team#member | group#member + owner: user + + group: + relations: + owner: team + parent: group + manager: user | group#member + member: user | group#member | team:* + + permissions: + manage: owner->member | manager + delete: manage - member + purge: owner & delete & parent->manage diff --git a/parser/permission_visitor.go b/parser/permission_visitor.go index c877feb..71833a9 100644 --- a/parser/permission_visitor.go +++ b/parser/permission_visitor.go @@ -14,6 +14,8 @@ func (v *PermissionVisitor) Visit(tree antlr.ParseTree) interface{} { switch t := tree.(type) { case *UnionPermContext, *IntersectionPermContext, *ExclusionPermContext: return t.Accept(v) + case *PermissionContext: + return &model.Permission{} default: panic("PermissionVisitor can only visit permissions") } diff --git a/parser/relation_visitor.go b/parser/relation_visitor.go index 19ac04f..aa57f3a 100644 --- a/parser/relation_visitor.go +++ b/parser/relation_visitor.go @@ -21,7 +21,11 @@ func (v *RelationVisitor) Visit(tree antlr.ParseTree) interface{} { func (v *RelationVisitor) VisitRelation(c *RelationContext) interface{} { return lo.Map(c.AllRel(), func(rel IRelContext, _ int) *model.RelationTerm { - return rel.Accept(v).(*model.RelationTerm) + if term, ok := rel.Accept(v).(*model.RelationTerm); ok { + return term + } + + return &model.RelationTerm{} }) }