Skip to content

Instantly share code, notes, and snippets.

@umbreak
Created July 24, 2018 14:42
Show Gist options
  • Save umbreak/bb5b4432258b095ae65cfb43bc53d15f to your computer and use it in GitHub Desktop.
Save umbreak/bb5b4432258b095ae65cfb43bc53d15f to your computer and use it in GitHub Desktop.
Resolver schema
{
"@context": {
"nxv": "https://bluebrain.github.io/nexus/vocabulary/",
"distribution": {
"@id": "http://schema.org/distribution"
},
"id": "@id",
"type": "@type",
"links": {
"@id": "nxv:links"
},
"dcterms": "http://purl.org/dc/terms/",
"owl": "http://www.w3.org/2002/07/owl#",
"prov": "http://www.w3.org/ns/prov#",
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"schema": "http://schema.org/",
"sh": "http://www.w3.org/ns/shacl#",
"shsh": "http://www.w3.org/ns/shacl-shacl#",
"skos": "http://www.w3.org/2004/02/skos/core#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"shext": "http://www.w3.org/ns/shacl/ext#",
"class": {
"@id": "sh:class",
"@type": "@id"
},
"rootClass": {
"@id": "shext:rootClass",
"@type": "@id"
},
"path": {
"@id": "sh:path",
"@type": "@id"
},
"qualifiedValueShape": {
"@id": "sh:qualifiedValueShape",
"@type": "@id"
},
"qualifiedValueShapesDisjoint": {
"@id": "sh:qualifiedValueShapesDisjoint",
"@type": "xsd:boolean"
},
"qualifiedMinCount": {
"@id": "sh:qualifiedMinCount",
"@type": "xsd:integer"
},
"qualifiedMaxCount": {
"@id": "sh:qualifiedMaxCount",
"@type": "xsd:integer"
},
"maxCount": {
"@id": "sh:maxCount",
"@type": "xsd:integer"
},
"minCount": {
"@id": "sh:minCount",
"@type": "xsd:integer"
},
"minInclusive": {
"@id": "sh:minInclusive"
},
"maxInclusive": {
"@id": "sh:maxInclusive"
},
"maxExclusive": {
"@id": "sh:maxExclusive"
},
"minExclusive": {
"@id": "sh:minExclusive"
},
"in": {
"@id": "sh:in",
"@container": "@list"
},
"imports": {
"@id": "owl:imports",
"@type": "@id",
"@container": "@set"
},
"datatype": {
"@id": "sh:datatype",
"@type": "@id"
},
"description": {
"@id": "sh:description"
},
"name": {
"@id": "sh:name"
},
"severity": {
"@id": "sh:severity"
},
"nodeKind": {
"@id": "sh:nodeKind",
"@type": "@id"
},
"BlankNode": {
"@id": "sh:BlankNode"
},
"BlankNodeOrIRI": {
"@id": "sh:BlankNodeOrIRI"
},
"BlankNodeOrLiteral": {
"@id": "sh:BlankNodeOrLiteral"
},
"IRI": {
"@id": "sh:IRI"
},
"IRIOrLiteral": {
"@id": "sh:IRIOrLiteral"
},
"Literal": {
"@id": "sh:Literal"
},
"prefix": {
"@id": "sh:prefix",
"@type": "xsd:string"
},
"declare": {
"@id": "sh:declare"
},
"namespace": {
"@id": "sh:namespace",
"@type": "xsd:anyURI"
},
"Violation": {
"@id": "sh:Violation"
},
"suggestedShapesGraph": {
"@id": "sh:suggestedShapesGraph",
"@type": "@id"
},
"shapesGraph": {
"@id": "sh:shapesGraph",
"@type": "@id"
},
"node": {
"@id": "sh:node",
"@type": "@id"
},
"property": {
"@id": "sh:property",
"@type": "@id",
"@container": "@set"
},
"targetClass": {
"@id": "sh:targetClass",
"@type": "@id"
},
"targetObjectsOf": {
"@id": "sh:targetObjectsOf",
"@type": "@id"
},
"targetSubjectsOf": {
"@id": "sh:targetSubjectsOf",
"@type": "@id"
},
"targetNode": {
"@id": "sh:targetNode",
"@type": "@id"
},
"target": {
"@id": "sh:target",
"@type": "@id"
},
"isDefinedBy": {
"@id": "http://www.w3.org/2000/01/rdf-schema#isDefinedBy",
"@type": "@id"
},
"shapes": {
"@reverse": "http://www.w3.org/2000/01/rdf-schema#isDefinedBy",
"@type": "@id",
"@container": "@set"
},
"Shape": {
"@id": "sh:Shape"
},
"NodeShape": {
"@id": "sh:NodeShape"
},
"PropertyShape": {
"@id": "sh:PropertyShape"
},
"or": {
"@id": "sh:or",
"@type": "@id",
"@container": "@list"
},
"and": {
"@id": "sh:and",
"@type": "@id",
"@container": "@list"
},
"xone": {
"@id": "sh:xone",
"@type": "@id",
"@container": "@list"
},
"not": {
"@id": "sh:not",
"@type": "@id",
"@container": "@list"
},
"lessThan": {
"@id": "sh:lessThan",
"@type": "@id"
},
"hasValue": {
"@id": "sh:hasValue"
},
"resultMessage": {
"@id": "sh:message"
},
"deactivated": {
"@id": "sh:deactivated"
},
"pattern": {
"@id": "sh:pattern"
},
"label": {
"@id": "rdfs:label",
"@type": "xsd:string"
},
"comment": {
"@id": "rdfs:comment",
"@type": "xsd:string"
},
"editorialNote": {
"@id": "skos:editorialNote",
"@type": "xsd:string"
},
"seeAlso": {
"@id": "rdfs:seeAlso",
"@type": "@id"
},
"this": "https://bluebrain.github.io/nexus/schemas/resolver/shapes/"
},
"@id": "https://bluebrain.github.io/nexus/schemas/resolver",
"@type": "nxv:Schema",
"shapes": [
{
"@id": "this:ResolverShape",
"@type": "sh:NodeShape",
"nodeKind": "sh:BlankNodeOrIRI",
"targetClass": [
"nxv:Resolver",
"nxv:CrossProject",
"nxv:InAccount"
],
"or": [
{
"node": "this:CrossProjectResolverShape"
},
{
"node": "this:InAccountResolverShape"
}
]
},
{
"@id": "this:CrossProjectResolverShape",
"nodeKind": "sh:BlankNodeOrIRI",
"sh:closed": true,
"property": [
{
"path": "rdf:type",
"name": "RDF types",
"description": "The rdf types.",
"nodeKind": "sh:IRI",
"sh:hasValue": {
"@id": "nxv:CrossProject"
},
"minCount": 2,
"maxCount": 2
},
{
"path": "nxv:priority",
"name": "Priority",
"description": "The priority of the resolver.",
"datatype": "xsd:integer",
"minInclusive": 0,
"maxInclusive": 1000,
"minCount": 1,
"maxCount": 1
},
{
"path": "nxv:resourceTypes",
"name": "Resource types",
"description": "The resource types that are to be applied for this resolver.",
"nodeKind": "sh:IRI",
"minCount": 0
},
{
"path": "nxv:projects",
"name": "Project UID",
"description": "The project UUID",
"datatype": "xsd:string",
"minCount": 1
},
{
"path": "nxv:identities",
"name": "UserRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:UserRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:UserRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "GroupRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:GroupRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:GroupRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "AuthenticatedRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:AuthenticatedRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:AuthenticatedRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "Anonymous identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:Anonymous"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:AnonymousIdentityShape"
}
]
},
{
"@id": "this:InAccountResolverShape",
"@type": "sh:NodeShape",
"nodeKind": "sh:BlankNodeOrIRI",
"sh:closed": true,
"property": [
{
"path": "rdf:type",
"name": "RDF types",
"description": "The rdf types.",
"nodeKind": "sh:IRI",
"minCount": 2,
"maxCount": 2,
"sh:hasValue": {
"@id": "nxv:InAccount"
}
},
{
"path": "nxv:priority",
"name": "Priority",
"description": "The priority of the resolver.",
"datatype": "xsd:integer",
"minInclusive": 0,
"maxInclusive": 1000,
"minCount": 1,
"maxCount": 1
},
{
"path": "nxv:resourceTypes",
"name": "Resource types",
"description": "The resource types that are to be applied for this resolver.",
"nodeKind": "sh:IRI",
"minCount": 0
},
{
"path": "nxv:identities",
"name": "UserRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:UserRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:UserRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "GroupRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:GroupRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:GroupRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "AuthenticatedRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:AuthenticatedRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:AuthenticatedRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "Anonymous identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:Anonymous"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:AnonymousIdentityShape"
}
]
},
{
"@id": "this:InProjetResolverShape",
"@type": "sh:NodeShape",
"nodeKind": "sh:BlankNodeOrIRI",
"sh:closed": true,
"property": [
{
"path": "rdf:type",
"name": "RDF types",
"description": "The rdf types.",
"nodeKind": "sh:IRI",
"minCount": 2,
"maxCount": 2,
"sh:hasValue": {
"@id": "nxv:InProject"
}
},
{
"path": "nxv:priority",
"name": "Priority",
"description": "The priority of the resolver.",
"datatype": "xsd:integer",
"minInclusive": 0,
"maxInclusive": 1000,
"minCount": 1,
"maxCount": 1
},
{
"path": "nxv:resourceTypes",
"name": "Resource types",
"description": "The resource types that are to be applied for this resolver.",
"nodeKind": "sh:IRI",
"minCount": 0
},
{
"path": "nxv:identities",
"name": "UserRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:UserRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:UserRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "GroupRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:GroupRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:GroupRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "AuthenticatedRef identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:AuthenticatedRef"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:AuthenticatedRefIdentityShape"
},
{
"path": "nxv:identities",
"name": "Anonymous identities",
"description": "The identities used to enforce security into this resolver.",
"sh:qualifiedValueShape": {
"class": "nxv:Anonymous"
},
"qualifiedValueShapesDisjoint": true,
"seeAlso": "this:AnonymousIdentityShape"
}
]
},
{
"@id": "this:UserRefIdentityShape",
"@type": "sh:NodeShape",
"nodeKind": "sh:BlankNode",
"sh:closed": true,
"property": [
{
"path": "rdf:type",
"name": "RDF types",
"description": "The rdf types.",
"nodeKind": "sh:IRI",
"minCount": 1,
"maxCount": 1,
"sh:hasValue": {
"@id": "nxv:UserRef"
}
},
{
"path": "nxv:realm",
"name": "Realm",
"description": "The OIDC Provider realm.",
"datatype": "xsd:string",
"minCount": 1,
"maxCount": 1
},
{
"path": "nxv:sub",
"name": "Subject",
"description": "The OIDC Provider subject.",
"datatype": "xsd:string",
"minCount": 1,
"maxCount": 1
}
]
},
{
"@id": "this:GroupRefIdentityShape",
"@type": "sh:NodeShape",
"nodeKind": "sh:BlankNode",
"sh:closed": true,
"property": [
{
"path": "rdf:type",
"name": "RDF types",
"description": "The rdf types.",
"nodeKind": "sh:IRI",
"minCount": 1,
"maxCount": 1,
"sh:hasValue": {
"@id": "nxv:GroupRef"
}
},
{
"path": "nxv:realm",
"name": "Realm",
"description": "The OIDC Provider realm.",
"datatype": "xsd:string",
"minCount": 1,
"maxCount": 1
},
{
"path": "nxv:group",
"name": "Group",
"description": "The OIDC Provider group.",
"datatype": "xsd:string",
"minCount": 1,
"maxCount": 1
}
]
},
{
"@id": "this:AuthenticatedRefIdentityShape",
"@type": "sh:NodeShape",
"nodeKind": "sh:BlankNode",
"sh:closed": true,
"property": [
{
"path": "rdf:type",
"name": "RDF types",
"description": "The rdf types.",
"nodeKind": "sh:IRI",
"minCount": 1,
"maxCount": 1,
"sh:hasValue": {
"@id": "nxv:AuthenticatedRef"
}
},
{
"path": "nxv:realm",
"name": "Realm",
"description": "The OIDC Provider realm.",
"datatype": "xsd:string",
"minCount": 0,
"maxCount": 1
}
]
},
{
"@id": "this:AnonymousIdentityShape",
"@type": "sh:NodeShape",
"nodeKind": "sh:BlankNode",
"sh:closed": true,
"property": [
{
"path": "rdf:type",
"name": "RDF types",
"description": "The rdf types.",
"nodeKind": "sh:IRI",
"minCount": 1,
"maxCount": 1,
"sh:hasValue": {
"@id": "nxv:Anonymous"
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment