Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agree on how to extend the basic (core) schema #14

Open
dersenv opened this issue Jul 12, 2019 · 0 comments
Open

Agree on how to extend the basic (core) schema #14

dersenv opened this issue Jul 12, 2019 · 0 comments
Labels
Governance Items related to governance and maintenance
Projects

Comments

@dersenv
Copy link

dersenv commented Jul 12, 2019

Once the basic schema is agreed... here a proposal with FAKE extensions (soon to be also in the wiki):

{
"$schema":"http://json-schema.org/draft-07/schema#",
"type":"object",
"required":[
"Project"
],
"properties":{
"Project":{
"$id":"#/properties/Project",
"$comment": "Definition as text to be replaced with a URL once available, can we use format:URL?",
"definition": "An explanation about the purpose of this instance.",
"type":"object",
"required":[
"projectCore"
],
"properties":{
"projectCore":{
"$id":"#/properties/Project/properties/projectCore",
"type":"object",
"required":[
"projectGUID"
,"projectName"
,"projectDescription"
,"projectWebPage"
,"projectStartDate"
,"projectEndDate"
,"projectDuration"
,"projectStatus"
],
"properties":{
"projectGUID":{
"$id":"#/properties/Project/properties/projectCore/properties/projectGUID"
,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
,"type":"string"
},
"projectName":{
"$id":"#/properties/Project/properties/projectCore/properties/projectName"
,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
,"type":"string"
},
"projectDescription":{
"$id":"#/properties/Project/properties/projectCore/properties/projectDescription"
,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
,"type":"string"
},
"projectWebPage":{
"$id":"#/properties/Project/properties/projectCore/properties/projectWebPage"
,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
,"type":"string"
,"examples":["http://.../csp/topics/..."]
},
"projectStartDate":{
"$id":"#/properties/Project/properties/projectCore/properties/projectStartDate"
,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
,"type":"string"
,"format": "date"
},
"projectEndDate":{
"$id":"#/properties/Project/properties/projectCore/properties/projectEndDate"
,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
,"type":["null","string"]
,"default":null
},
"projectDuration":{
"$id":"#/properties/Project/properties/projectCore/properties/projectDuration"
,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
,"type":"number"
,"minimum":0
,"default":0
},
"projectStatus":{
"$id":"#/properties/Project/properties/projectCore/properties/projectStatus"
,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
,"type":"string"
,"enum": ["Ongoing", "Ended"]

              }
           }
        },
           "projectExtensions":{
			  "$id":"#/properties/Project/properties/projectExtensions"
			  ,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
              ,"type":"object"
              ,"properties":{
                 "projectDetailedInformation":{
                    "$id":"#/properties/Project/properties/projectExtensions/properties/projectDetailedInformation"
					,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
					,"type":"string"
                 },
                 "projectAffiliation":{
                    "$id":"#/properties/Project/properties/projectExtensions/properties/projectAffiliation"
					,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
					,"type":"string"
                 },
                 "projectFunding":{
					"$id":"#/properties/Project/properties/projectExtensions/properties/projectFunding"
					,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
					,"type":"object"
                    ,"required":[
                       "fundingProgramName"
                       ,"fundingProgramDescription"
                       ,"fundingProgramWebPage"
                    ],
                    "properties":{
                       "fundingProgramName":{
						  "$id":"#/properties/Project/properties/projectExtensions/properties/projectFunding/properties/fundingProgramName"
						  ,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
						  ,"type":"string"
                       },
                       "fundingProgramDescription":{
						  "$id":"#/properties/Project/properties/projectExtensions/properties/projectFunding/properties/fundingProgramDescription"
						  ,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
						  ,"type":"string"
                       },
                       "fundingProgramWebPage":{
							"$id":"#/properties/Project/properties/projectExtensions/properties/projectFunding/properties/fundingProgramWebPage"
							,"definition": "An explanation about the purpose of this instance. Definition as text to be replaced with a URL once available."
						    ,"type":"string"
                       }
                    }
                 }
              }
           }
     }
  }

}
}

@pbrenton pbrenton added this to New Issues and Tasks in PPSR-Core Dec 13, 2019
@pbrenton pbrenton added the Governance Items related to governance and maintenance label Aug 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Governance Items related to governance and maintenance
Projects
PPSR-Core
  
New Issues and Tasks
Development

No branches or pull requests

2 participants