From 73e7f67d7d17e5e0340a8c42a29cc07b3327ccd8 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Fri, 30 Sep 2022 17:28:30 +0200 Subject: [PATCH] Improving documentation --- src/main/java/org/gcube/gcat/rest/Item.java | 239 ++-- .../java/org/gcube/gcat/rest/License.java | 14 +- .../java/org/gcube/gcat/rest/Namespace.java | 12 +- .../java/org/gcube/gcat/rest/Profile.java | 22 +- .../java/org/gcube/gcat/rest/Resource.java | 66 +- src/main/java/org/gcube/gcat/rest/Trash.java | 63 +- .../rest/administration/Configuration.java | 176 +-- .../gcube/gcat/rest/administration/Group.java | 2 + .../rest/administration/Organization.java | 2 + .../gcube/gcat/rest/administration/User.java | 2 + .../license/list-license-response.json | 1268 +++++++++++++++++ .../namespace/list-namespace-response.json | 32 + 12 files changed, 1646 insertions(+), 252 deletions(-) create mode 100644 src/main/resources/api-docs-examples/license/list-license-response.json create mode 100644 src/main/resources/api-docs-examples/namespace/list-namespace-response.json diff --git a/src/main/java/org/gcube/gcat/rest/Item.java b/src/main/java/org/gcube/gcat/rest/Item.java index 45d8a1d..c1d8425 100644 --- a/src/main/java/org/gcube/gcat/rest/Item.java +++ b/src/main/java/org/gcube/gcat/rest/Item.java @@ -33,125 +33,9 @@ import com.webcohesion.enunciate.metadata.rs.ResponseCode; import com.webcohesion.enunciate.metadata.rs.StatusCodes; /** - * An Item is mainly described by the following attributes (* indicate mandatory attributes): - * - *
- *
name* (string)
- *
- * the name of the new item, must be between 2 and 100 characters long - * and contain only lowercase alphanumeric characters, '-' and '_'; - *
+ * Item is a set of metadata to describe a concept. + * An Item can has one or more Resource attached. * - * - *
title (string)
- *
- * If not specified it assumes the same value of name attribute. - * The title of the item; - *
- * - *
maintainer (string)
- *
the name of the item’s maintainer;
- * - *
maintainer_email (string)
- *
the email address of the item’s maintainer;
- * - *
license_id* (string)
- *
the id of the item’s license, use License listing API to get available values;
- * - *
notes (string)
- *
a description of the item;
- * - *
url (string)
- *
a URL for the item’s source;
- * - *
version (string)
- *
must be between no longer than 100 characters
- * - *
state (string, default='active')
- *
- * the current state of the item, e.g. 'active' or 'deleted', only active items show up in search results and other lists of items, - * this parameter will be ignored if you are not authorized to change the state of the item; - *
- * - *
groups (list of dictionaries)
- *
- * the groups to which the item belongs, each group dictionary should have one or more of the - * following keys which identify an existing group: - * 'id' (the id of the group, string), or 'name' (the name of the group, string). - * To see which groups exist use Group listing API.
- * - * - *
tags (list of tag dictionaries)
- *
- * the item’s tags. The tag is a dictionary in the format: - * name : the name for the tag, i.e. a string between 2 and 100 characters long containing only alphanumeric characters and '-', '_' and '.'. - *
- * - * - *
resources (list of resource dictionaries)
- *
the item’s resources, see Resource collection for the format of resource dictionaries;
- * - * - *
extras (list of item extra dictionaries)
- *
the item’s extras, extras are arbitrary (key: value) metadata items that can be added to items, each extra dictionary should have keys 'key' (a string), 'value' (a string);
- * - *
owner_org (string)
- *
- * the id of the item’s owning organization, see supportedOrganizations property in - * Read Configuration. - * The defaultOrganization is used if the author does not specify the organization. - *
- * - *
- * - * - *

Parameter automatically managed:

- *
- * - *
author (string)
- *
the name of the item’s author (the owner of the gcube-token);
- * - *
author_email (string)
- *
the email address of the item’s author (the email of the owner of gcube-token);
- * - *
- * - * - *

Geo-Indexing your datasets:

- *

- * In order to make an Item searchable by location, it must have a special extra, with its key named ‘spatial’. - * The value must be a valid GeoJSON geometry, for example: - *

- *
- * 	{
- * 		"type":"Polygon",
- * 		"coordinates":[[[2.05827, 49.8625],[2.05827, 55.7447], [-6.41736, 55.7447], [-6.41736, 49.8625], [2.05827, 49.8625]]]
- * 	}
- * 
- * - * or - * - *
- * 	{
- * 		"type": "Point",
- * 		"coordinates": [-3.145,53.078]
- * 	}
- * 
- * - * - *

Profile

- *

- * If at least one profile has been defined within this context, then you need to specify the profile's - * type when creating the item. - * You need to insert, among the extras of the JSON object describing the item, a system:type - * property with one of the available profile, see List Profiles API. - * The validation of the submitted request will be performed against the profile whose type has been specified. - * The profile's properties need to be specified within the extras field as well. - *

- *

- * If no profile has been defined, then no validation will be performed. - * Thus you do not need to set any system:type property. - *

* @author Luca Frosini (ISTI - CNR) */ @Path(Item.ITEMS) @@ -367,6 +251,125 @@ public class Item extends REST implements org.gcube.gcat.api.interf /** * * The create API allows to create an item. + * An Item is mainly described by the following attributes (* indicate mandatory attributes): + * + *
+ *
name* (string)
+ *
+ * the name of the new item, must be between 2 and 100 characters long + * and contain only lowercase alphanumeric characters, '-' and '_'; + *
+ * + * + *
title (string)
+ *
+ * If not specified it assumes the same value of name attribute. + * The title of the item; + *
+ * + *
maintainer (string)
+ *
the name of the item’s maintainer;
+ * + *
maintainer_email (string)
+ *
the email address of the item’s maintainer;
+ * + *
license_id* (string)
+ *
the id of the item’s license, use License listing API to get available values;
+ * + *
notes (string)
+ *
a description of the item;
+ * + *
url (string)
+ *
a URL for the item’s source;
+ * + *
version (string)
+ *
must be between no longer than 100 characters
+ * + *
state (string, default='active')
+ *
+ * the current state of the item, e.g. 'active' or 'deleted', only active items show up in search results and other lists of items, + * this parameter will be ignored if you are not authorized to change the state of the item; + *
+ * + *
groups (list of dictionaries)
+ *
+ * the groups to which the item belongs, each group dictionary should have one or more of the + * following keys which identify an existing group: + * 'id' (the id of the group, string), or 'name' (the name of the group, string). + * To see which groups exist use Group listing API.
+ * + * + *
tags (list of tag dictionaries)
+ *
+ * the item’s tags. The tag is a dictionary in the format: + * name : the name for the tag, i.e. a string between 2 and 100 characters long containing only alphanumeric characters and '-', '_' and '.'. + *
+ * + * + *
resources (list of resource dictionaries)
+ *
the item’s resources, see Resource collection for the format of resource dictionaries;
+ * + * + *
extras (list of item extra dictionaries)
+ *
the item’s extras, extras are arbitrary (key: value) metadata items that can be added to items, each extra dictionary should have keys 'key' (a string), 'value' (a string);
+ * + *
owner_org (string)
+ *
+ * the id of the item’s owning organization, see supportedOrganizations property in + * Read Configuration. + * The defaultOrganization is used if the author does not specify the organization. + *
+ * + *
+ * + * + *

Parameter automatically managed:

+ *
+ * + *
author (string)
+ *
the name of the item’s author (the owner of the gcube-token);
+ * + *
author_email (string)
+ *
the email address of the item’s author (the email of the owner of gcube-token);
+ * + *
+ * + * + *

Geo-Indexing your datasets:

+ *

+ * In order to make an Item searchable by location, it must have a special extra, with its key named ‘spatial’. + * The value must be a valid GeoJSON geometry, for example: + *

+ *
+	 * 	{
+	 * 		"type":"Polygon",
+	 * 		"coordinates":[[[2.05827, 49.8625],[2.05827, 55.7447], [-6.41736, 55.7447], [-6.41736, 49.8625], [2.05827, 49.8625]]]
+	 * 	}
+	 * 
+ * + * or + * + *
+	 * 	{
+	 * 		"type": "Point",
+	 * 		"coordinates": [-3.145,53.078]
+	 * 	}
+	 * 
+ * + * + *

Profile

+ *

+ * If at least one profile has been defined within this context, then you need to specify the profile's + * type when creating the item. + * You need to insert, among the extras of the JSON object describing the item, a system:type + * property with one of the available profile, see List Profiles API. + * The validation of the submitted request will be performed against the profile whose type has been specified. + * The profile's properties need to be specified within the extras field as well. + *

+ *

+ * If no profile has been defined, then no validation will be performed. + * Thus you do not need to set any system:type property. + *

* *

Social Post

*

diff --git a/src/main/java/org/gcube/gcat/rest/License.java b/src/main/java/org/gcube/gcat/rest/License.java index 4270848..e1da502 100644 --- a/src/main/java/org/gcube/gcat/rest/License.java +++ b/src/main/java/org/gcube/gcat/rest/License.java @@ -3,14 +3,18 @@ package org.gcube.gcat.rest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; -import org.gcube.gcat.api.GCatConstants; import org.gcube.gcat.persistence.ckan.CKANLicense; import com.webcohesion.enunciate.metadata.rs.ResourceGroup; import com.webcohesion.enunciate.metadata.rs.ResourceLabel; /** + * A collection to interact with licenses that are available in the catalogue. + * A license is associated with items to define the legal right + * to use such an item. + * * @author Luca Frosini (ISTI - CNR) */ @Path(License.LICENSES) @@ -22,8 +26,14 @@ public class License extends REST implements org.gcube.gcat.api.int super(LICENSES, null, CKANLicense.class); } + /** + * @return the json array containing the licenses available in the catalogue + * + * @pathExample /licenses + * @responseExample application/json classpath:/api-docs-examples/license/list-license-response.json + */ @GET - @Produces(GCatConstants.APPLICATION_JSON_CHARSET_UTF_8) + @Produces(MediaType.APPLICATION_JSON) public String list() { return super.list(-1, -1); } diff --git a/src/main/java/org/gcube/gcat/rest/Namespace.java b/src/main/java/org/gcube/gcat/rest/Namespace.java index 283e67c..84ae299 100644 --- a/src/main/java/org/gcube/gcat/rest/Namespace.java +++ b/src/main/java/org/gcube/gcat/rest/Namespace.java @@ -6,18 +6,20 @@ import javax.ws.rs.GET; import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode; import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode; import org.gcube.datacatalogue.metadatadiscovery.bean.jaxb.NamespaceCategory; -import org.gcube.gcat.api.GCatConstants; import org.gcube.gcat.profile.MetadataUtility; import com.webcohesion.enunciate.metadata.rs.ResourceGroup; import com.webcohesion.enunciate.metadata.rs.ResourceLabel; /** + * A namespace defines a logical grouping for metadata contained in items. + * * @author Luca Frosini (ISTI - CNR) */ @Path(Namespace.NAMESPACES) @@ -25,8 +27,14 @@ import com.webcohesion.enunciate.metadata.rs.ResourceLabel; @ResourceLabel("Namespace APIs") public class Namespace extends BaseREST implements org.gcube.gcat.api.interfaces.Namespace { + /** + * @return the json array containing the licenses available in the catalogue + * + * @pathExample /namespaces + * @responseExample application/json classpath:/api-docs-examples/namespace/list-namespace-response.json + */ @GET - @Produces(GCatConstants.APPLICATION_JSON_CHARSET_UTF_8) + @Produces(MediaType.APPLICATION_JSON) public String list() { setCalledMethod("GET /" + NAMESPACES); diff --git a/src/main/java/org/gcube/gcat/rest/Profile.java b/src/main/java/org/gcube/gcat/rest/Profile.java index 9469b30..819888c 100644 --- a/src/main/java/org/gcube/gcat/rest/Profile.java +++ b/src/main/java/org/gcube/gcat/rest/Profile.java @@ -34,11 +34,8 @@ import com.webcohesion.enunciate.metadata.rs.ResponseCode; import com.webcohesion.enunciate.metadata.rs.StatusCodes; /** - * A Profile must comply with the defined XSD schema . - * - * Please find the documentation of profile schema at: - * at Metadata Profile - * + * A profile defines a type and the schema any item of such a type must comply with. + * * @author Luca Frosini (ISTI - CNR) */ @Path(Profile.PROFILES) @@ -87,10 +84,7 @@ public class Profile extends BaseREST implements org.gcube.gcat.api.interfaces.P * @return a JSON Array. * * @pathExample /profiles - * @responseExample application/json;charset=UTF-8 ["EmptyProfile","TestProfile",...,"ComplexProfile"] - * - * @pathExample /profiles?count=true - * @responseExample application/json;charset=UTF-8 {"count":5} + * @responseExample application/json ["EmptyProfile","TestProfile","ComplexProfile"] * */ @GET @@ -178,6 +172,16 @@ public class Profile extends BaseREST implements org.gcube.gcat.api.interfaces.P } } + /** + * A profile must comply with the defined XSD schema . + * + * Please find the documentation of profile schema at: + * at Metadata Profile + * + * @param name + * @param xml + * @return + */ @PUT @Path("/{" + PROFILE_NAME_PARAMETER + "}") @Consumes(MediaType.APPLICATION_XML) diff --git a/src/main/java/org/gcube/gcat/rest/Resource.java b/src/main/java/org/gcube/gcat/rest/Resource.java index 82dc6c8..0078679 100644 --- a/src/main/java/org/gcube/gcat/rest/Resource.java +++ b/src/main/java/org/gcube/gcat/rest/Resource.java @@ -23,37 +23,8 @@ import com.webcohesion.enunciate.metadata.rs.ResourceGroup; import com.webcohesion.enunciate.metadata.rs.ResourceLabel; /** - * An Resource is mainly described by the following attributes (* indicate mandatory attributes): - * - *

- *
name* (string)
- *
the name of the resource;
- * - *
url* (string)
- *
url of resource;
- * - *
package_id* (string)
- *
id of the item that the resource should be added to;
- * - *
revision_id (string)
- *
- * - *
description (string)
- *
a description for the resource;
- * - *
format (string)
- *
- * - *
mimetype (string)
- *
resource mimetype;
- * - *
created (iso date string)
- *
resource creation time;
- * - *
last_modified (iso date string)
- *
resource last update time;
- * - *
+ * An Item's Resource is an URL (e.g. URL pointing to a file) + * and can exists only attached to an item. * * @author Luca Frosini (ISTI - CNR) */ @@ -79,6 +50,39 @@ public class Resource extends BaseREST implements org.gcube.gcat.api.interfaces. return ckanResource.list(); } + /** + * An Resource is mainly described by the following attributes (* indicate mandatory attributes): + * + *
+ *
name* (string)
+ *
the name of the resource;
+ * + *
url* (string)
+ *
url of resource;
+ * + *
package_id* (string)
+ *
id of the item that the resource should be added to;
+ * + *
revision_id (string)
+ *
+ * + *
description (string)
+ *
a description for the resource;
+ * + *
format (string)
+ *
+ * + *
mimetype (string)
+ *
resource mimetype;
+ * + *
created (iso date string)
+ *
resource creation time;
+ * + *
last_modified (iso date string)
+ *
resource last update time;
+ * + *
+ */ @POST @Consumes(GCatConstants.APPLICATION_JSON_CHARSET_UTF_8) @Produces(GCatConstants.APPLICATION_JSON_CHARSET_UTF_8) diff --git a/src/main/java/org/gcube/gcat/rest/Trash.java b/src/main/java/org/gcube/gcat/rest/Trash.java index c65d14d..b38393d 100644 --- a/src/main/java/org/gcube/gcat/rest/Trash.java +++ b/src/main/java/org/gcube/gcat/rest/Trash.java @@ -7,6 +7,7 @@ import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.xml.ws.WebServiceException; @@ -19,8 +20,12 @@ import org.gcube.gcat.persistence.ckan.CKANPackageTrash; import com.webcohesion.enunciate.metadata.rs.ResourceGroup; import com.webcohesion.enunciate.metadata.rs.ResourceLabel; +import com.webcohesion.enunciate.metadata.rs.ResponseCode; +import com.webcohesion.enunciate.metadata.rs.StatusCodes; /** + * This collection allow to interact with thrashed items + * * @author Luca Frosini (ISTI - CNR) */ @Path(Trash.TRASH) @@ -28,9 +33,29 @@ import com.webcohesion.enunciate.metadata.rs.ResourceLabel; @ResourceLabel("Trash APIs") public class Trash extends BaseREST implements org.gcube.gcat.api.interfaces.Trash { - + + /** + * List the thrashed items.
+ * By default, it lists only the trashed items of the requesting user.
+ * + * The listed items belong to the supported organizations for the + * context of the request (i.e. the context where the token has been generated).
+ * + * See supportedOrganizations parameter in + * Configuration. + * + * If the user specifies own_only=false and the user is + * Catalogue-Admin or above it return the thrashed items of all the + * users for all the supported organizations. + * + * @param ownOnly indicates that the user is interested only in its own items or the items of all the users. + * @return the json array containing the items in the trash + * + * @pathExample /trash + * @responseExample application/json ["item1","item54"] + */ @GET - @Produces(GCatConstants.APPLICATION_JSON_CHARSET_UTF_8) + @Produces(MediaType.APPLICATION_JSON) @Override // @AuthorizationControl(allowedRoles={Role.CATALOGUE_EDITOR, Role.CATALOGUE_ADMIN, Role.CATALOGUE_MANAGER}, exception=NotAuthorizedException.class) public String list(@QueryParam(GCatConstants.OWN_ONLY_QUERY_PARAMETER) @DefaultValue("true") Boolean ownOnly) throws WebServiceException { @@ -39,7 +64,34 @@ public class Trash extends BaseREST implements org.gcube.gcat.api.interfaces.Tra return ckanPackageTrash.list(); } + /** + * Delete in background all items in the trash.
+ * The operation returns immediately to the client and continues in background.
+ * There is no way to monitor or stop the running operation.
+ * The thrashed items cannot be recovered.
+ * + * By default, it empty only the trashed items of the requesting user.
+ * + * The listed items belong to the supported organizations for the + * context of the request (i.e. the context where the token has been generated).
+ * + * See supportedOrganizations parameter in + * Configuration. + * + * If the user specifies own_only=false and the user is + * Catalogue-Admin or above it empty the thrash of all the + * users for all the supported organizations. + * + * @param ownOnly indicates that the user is interested only in its own items or the items of all the users. + * @return 202 Accepted if the request has been accepted successfully + * @throws WebServiceException + * + * @pathExample /trash + */ @DELETE + @StatusCodes ({ + @ResponseCode ( code = 202, condition = "The empty trash operation has been accepted successfully.") + }) @Override // @AuthorizationControl(allowedRoles={Role.CATALOGUE_EDITOR, Role.CATALOGUE_ADMIN, Role.CATALOGUE_MANAGER}, exception=NotAuthorizedException.class) public Response empty(@QueryParam(GCatConstants.OWN_ONLY_QUERY_PARAMETER) @DefaultValue("true") Boolean ownOnly) throws WebServiceException { @@ -55,7 +107,14 @@ public class Trash extends BaseREST implements org.gcube.gcat.api.interfaces.Tra return Response.status(Status.ACCEPTED).build(); } + /** + * It is the same of + * DELETE operation + */ @PURGE + @StatusCodes ({ + @ResponseCode ( code = 202, condition = "The empty trash operation has been accepted successfully.") + }) // @AuthorizationControl(allowedRoles={Role.CATALOGUE_EDITOR, Role.CATALOGUE_ADMIN, Role.CATALOGUE_MANAGER}, exception=NotAuthorizedException.class) public Response emptyViaPurge(@QueryParam(GCatConstants.OWN_ONLY_QUERY_PARAMETER) @DefaultValue("true") Boolean ownOnly) throws WebServiceException { return empty(ownOnly); diff --git a/src/main/java/org/gcube/gcat/rest/administration/Configuration.java b/src/main/java/org/gcube/gcat/rest/administration/Configuration.java index d961da3..7896de2 100644 --- a/src/main/java/org/gcube/gcat/rest/administration/Configuration.java +++ b/src/main/java/org/gcube/gcat/rest/administration/Configuration.java @@ -45,94 +45,8 @@ import com.webcohesion.enunciate.metadata.rs.StatusCodes; import com.webcohesion.enunciate.metadata.swagger.OperationId; /** - * - * A Configuration is described by the following attributes: - * - *
- * - *
context (string)
- *
it must contains the same value of requesting context;
- * - *
defaultOrganization (string)
- *
- * the default ckan organization where an item is created for - * the context of the request; - *
- * - *
supportedOrganizations (array of string)
- *
- * it defines the list of organization where an item can be created. - * All the organizations must be present in the catalogue of the VRE. - * It must contains at least the defaultOrganization value; - *
- * - *
sysAdminToken (string)
- *
- * the token can be provided encrypted with the context key as well as plain. - * It any case it is persisted encrypted in IS; - *
- * - *
ckanURL (string)
- *
- * the Ckan URL used for the catalogue of the VRE. - *
- * - *
solrURL (string)
- *
- * the Solr URL used by the Ckan instance. - * This is normally, but not necessary, the same URL of Ckan plus the path /solr - *
- * - *
socialPostEnabled (bool)
- *
- * it indicates if the social posts are enabled in the context of the request. - * The creation of a social post can be requested by a user when he/she creates - * an item; - *
- * - *
notificationToUsersEnabled (bool)
- *
- * it indicates if a notification must be created when a social post - * is created. It is ignored if socialPostEnabled=false; - *
- * - *
moderationEnabled (bool)
- *
- * it indicates if the catalogue is moderated. - * See Moderated Catalogues - *
- * - *
ckanDB (object)
- *
- * it contains the url, username and password to contact the db used by the - * Ckan instance used for the catalogue of the VRE. - * The password can be provided encrypted with the context key as well as plain. - * It any case it is persisted encrypted in IS. - *
- * - *
- * - * Here is an example - * - *
- * {
- *	"context": "/gcube/devsec/devVRE",
- *	"defaultOrganization": "devvre",
- *	"supportedOrganizations": [ "devvre" "nextnext" ],
- *	"sysAdminToken": "SYS_ADMIN_TOKEN_HERE",
- *	"ckanURL": "https://ckan-d-d4s.d4science.org",
- *	"solrURL": "https://ckan-d-d4s.d4science.org/solr/",
- *	"socialPostEnabled": false,
- *	"notificationToUsersEnabled": true,
- *	"moderationEnabled": true,
- *	"ckanDB": {
- *		"url": "jdbc:postgresql://ckan-d-d4s.d4science.org:5432/ckan_dev",
- *		"username": "ckan",
- *		"password": "PWD_HERE"
- *	}
- * }
- * 
- * + * The catalogue configuration for the context of the request + * (i.e. the context where the token has been generated). * * @author Luca Frosini (ISTI - CNR) */ @@ -199,6 +113,92 @@ public class Configuration extends BaseREST implements org.gcube.gcat.api.interf * * The configuration will be persisted in the infrastructure * Information System (IS) in the context of the request.
+ * * A Configuration is described by the following attributes: + * + *
+ * + *
context (string)
+ *
it must contains the same value of requesting context;
+ * + *
defaultOrganization (string)
+ *
+ * the default ckan organization where an item is created for + * the context of the request; + *
+ * + *
supportedOrganizations (array of string)
+ *
+ * it defines the list of organization where an item can be created. + * All the organizations must be present in the catalogue of the VRE. + * It must contains at least the defaultOrganization value; + *
+ * + *
sysAdminToken (string)
+ *
+ * the token can be provided encrypted with the context key as well as plain. + * It any case it is persisted encrypted in IS; + *
+ * + *
ckanURL (string)
+ *
+ * the Ckan URL used for the catalogue of the VRE. + *
+ * + *
solrURL (string)
+ *
+ * the Solr URL used by the Ckan instance. + * This is normally, but not necessary, the same URL of Ckan plus the path /solr + *
+ * + *
socialPostEnabled (bool)
+ *
+ * it indicates if the social posts are enabled in the context of the request. + * The creation of a social post can be requested by a user when he/she creates + * an item; + *
+ * + *
notificationToUsersEnabled (bool)
+ *
+ * it indicates if a notification must be created when a social post + * is created. It is ignored if socialPostEnabled=false; + *
+ * + *
moderationEnabled (bool)
+ *
+ * it indicates if the catalogue is moderated. + * See Moderated Catalogues + *
+ * + *
ckanDB (object)
+ *
+ * it contains the url, username and password to contact the db used by the + * Ckan instance used for the catalogue of the VRE. + * The password can be provided encrypted with the context key as well as plain. + * It any case it is persisted encrypted in IS. + *
+ * + *
+ * + * Here is an example + * + *
+	 * {
+	 *	"context": "/gcube/devsec/devVRE",
+	 *	"defaultOrganization": "devvre",
+	 *	"supportedOrganizations": [ "devvre" "nextnext" ],
+	 *	"sysAdminToken": "SYS_ADMIN_TOKEN_HERE",
+	 *	"ckanURL": "https://ckan-d-d4s.d4science.org",
+	 *	"solrURL": "https://ckan-d-d4s.d4science.org/solr/",
+	 *	"socialPostEnabled": false,
+	 *	"notificationToUsersEnabled": true,
+	 *	"moderationEnabled": true,
+	 *	"ckanDB": {
+	 *		"url": "jdbc:postgresql://ckan-d-d4s.d4science.org:5432/ckan_dev",
+	 *		"username": "ckan",
+	 *		"password": "PWD_HERE"
+	 *	}
+	 * }
+	 * 
* * * @param json the configuration representation diff --git a/src/main/java/org/gcube/gcat/rest/administration/Group.java b/src/main/java/org/gcube/gcat/rest/administration/Group.java index da355e3..eb1e17b 100644 --- a/src/main/java/org/gcube/gcat/rest/administration/Group.java +++ b/src/main/java/org/gcube/gcat/rest/administration/Group.java @@ -26,6 +26,8 @@ import com.webcohesion.enunciate.metadata.rs.ResourceGroup; import com.webcohesion.enunciate.metadata.rs.ResourceLabel; /** + * This concept is mutated by Ckan which is used as underling technology to persist items. + * * @author Luca Frosini (ISTI - CNR) */ @Path(Group.GROUPS) diff --git a/src/main/java/org/gcube/gcat/rest/administration/Organization.java b/src/main/java/org/gcube/gcat/rest/administration/Organization.java index 321a170..9727a42 100644 --- a/src/main/java/org/gcube/gcat/rest/administration/Organization.java +++ b/src/main/java/org/gcube/gcat/rest/administration/Organization.java @@ -26,6 +26,8 @@ import com.webcohesion.enunciate.metadata.rs.ResourceGroup; import com.webcohesion.enunciate.metadata.rs.ResourceLabel; /** + * This concept is mutated by Ckan which is used as underling technology to persist items. + * * @author Luca Frosini (ISTI - CNR) */ @Path(Organization.ORGANIZATIONS) diff --git a/src/main/java/org/gcube/gcat/rest/administration/User.java b/src/main/java/org/gcube/gcat/rest/administration/User.java index ca331e3..0fb9bd3 100644 --- a/src/main/java/org/gcube/gcat/rest/administration/User.java +++ b/src/main/java/org/gcube/gcat/rest/administration/User.java @@ -28,6 +28,8 @@ import com.webcohesion.enunciate.metadata.rs.ResourceGroup; import com.webcohesion.enunciate.metadata.rs.ResourceLabel; /** + * This collection allows to interact with the catalogue users. + * * @author Luca Frosini (ISTI - CNR) */ @Path(User.USERS) diff --git a/src/main/resources/api-docs-examples/license/list-license-response.json b/src/main/resources/api-docs-examples/license/list-license-response.json new file mode 100644 index 0000000..5770876 --- /dev/null +++ b/src/main/resources/api-docs-examples/license/list-license-response.json @@ -0,0 +1,1268 @@ +[ + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": false, + "title": "License Not Specified", + "url": "", + "is_generic": true, + "is_okd_compliant": false, + "is_osi_compliant": false, + "domain_content": false, + "domain_software": false, + "id": "notspecified" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": false, + "title": "Other (Open)", + "url": "", + "is_generic": true, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_content": true, + "domain_software": false, + "id": "other-open" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Open Data Commons Public Domain Dedication and Licence 1.0", + "url": "http://www.opendefinition.org/licenses/odc-pddl", + "domain_content": false, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_software": false, + "id": "ODC-PDDL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Open Data Commons Open Database License 1.0", + "url": "http://www.opendefinition.org/licenses/odc-odbl", + "domain_content": false, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_software": false, + "id": "ODbL-1.0" + }, + { + "status": "active", + "maintainer": "Open Data Commons", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Open Data Commons Attribution License 1.0", + "url": "http://www.opendefinition.org/licenses/odc-by", + "domain_content": false, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_software": false, + "id": "ODC-BY-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": false, + "title": "Other (Public Domain)", + "url": "", + "is_generic": true, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_content": true, + "domain_software": false, + "id": "other-pd" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": false, + "title": "Other (Attribution)", + "url": "", + "is_generic": true, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_content": true, + "domain_software": false, + "id": "other-at" + }, + { + "status": "active", + "maintainer": "UK Government", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Open Government Licence 2.0 (United Kingdom)", + "url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/2/", + "is_generic": false, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_content": true, + "domain_software": true, + "id": "OGL-UK-2.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": false, + "title": "Other (Non-Commercial)", + "url": "", + "is_generic": true, + "is_okd_compliant": false, + "is_osi_compliant": false, + "domain_content": false, + "domain_software": false, + "id": "other-nc" + }, + { + "status": "active", + "maintainer": "Free Software Foundation", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": false, + "title": "GNU Free Documentation License 1.3 with no cover texts and no invariant sections", + "url": "http://www.opendefinition.org/licenses/gfdl", + "domain_content": true, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_software": false, + "id": "GFDL-1.3-no-cover-texts-no-invariant-sections" + }, + { + "status": "active", + "maintainer": "Creative Commons", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "CC0 1.0", + "url": "https://creativecommons.org/publicdomain/zero/1.0/", + "domain_content": true, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_software": true, + "id": "CC0-1.0" + }, + { + "status": "active", + "maintainer": "Creative Commons", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Creative Commons Attribution 4.0", + "url": "https://creativecommons.org/licenses/by/4.0/", + "domain_content": true, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_software": false, + "id": "CC-BY-4.0" + }, + { + "status": "active", + "maintainer": "Creative Commons", + "od_conformance": "approved", + "family": "", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Creative Commons Attribution Share-Alike 4.0", + "url": "https://creativecommons.org/licenses/by-sa/4.0/", + "domain_content": true, + "is_okd_compliant": true, + "is_osi_compliant": false, + "domain_software": false, + "id": "CC-BY-SA-4.0" + }, + { + "status": "active", + "maintainer": "Creative Commons", + "od_conformance": "rejected", + "family": "Creative Commons", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Creative Commons Attribution-NonCommercial 4.0", + "url": "https://creativecommons.org/licenses/by-nc/4.0/", + "domain_content": true, + "is_okd_compliant": false, + "is_osi_compliant": false, + "domain_software": false, + "id": "CC-BY-NC-4.0" + }, + { + "status": "active", + "maintainer": "Creative Commons", + "od_conformance": "rejected", + "family": "Creative Commons", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Creative Commons Attribution-NoDerivs 4.0", + "url": "https://creativecommons.org/licenses/by-nd/4.0/", + "domain_content": true, + "is_okd_compliant": false, + "is_osi_compliant": false, + "domain_software": false, + "id": "CC-BY-ND-4.0" + }, + { + "status": "active", + "maintainer": "Creative Commons", + "od_conformance": "rejected", + "family": "Creative Commons", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0", + "url": "https://creativecommons.org/licenses/by-nc-sa/4.0/", + "domain_content": true, + "is_okd_compliant": false, + "is_osi_compliant": false, + "domain_software": false, + "id": "CC-BY-NC-SA-4.0" + }, + { + "status": "active", + "maintainer": "Creative Commons", + "od_conformance": "rejected", + "family": "Creative Commons", + "osd_conformance": "not reviewed", + "domain_data": true, + "title": "Creative Commons Attribution-NonCommercial-NoDerivatives 4.0", + "url": "https://creativecommons.org/licenses/by-nc-nd/4.0/", + "domain_content": true, + "is_okd_compliant": false, + "is_osi_compliant": false, + "domain_software": false, + "id": "CC-BY-NC-ND-4.0" + }, + { + "status": "active", + "maintainer": "Lawrence Rosen", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Academic Free License 3.0", + "url": "http://www.opensource.org/licenses/AFL-3.0", + "domain_content": true, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "AFL-3.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Adaptive Public License 1.0", + "url": "http://www.opensource.org/licenses/APL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "APL-1.0" + }, + { + "status": "active", + "maintainer": "Free Software Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "GNU Affero General Public License v3", + "url": "http://www.opensource.org/licenses/AGPL-3.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "AGPL-3.0" + }, + { + "status": "retired", + "maintainer": "Apache Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Apache Software License 1.1", + "url": "http://www.opensource.org/licenses/Apache-1.1", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Apache-1.1" + }, + { + "status": "active", + "maintainer": "Apache Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Apache Software License 2.0", + "url": "http://www.opensource.org/licenses/Apache-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Apache-2.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Apple Public Source License 2.0", + "url": "http://www.opensource.org/licenses/APSL-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "APSL-2.0" + }, + { + "status": "active", + "maintainer": "Perl Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Artistic License 2.0", + "url": "http://www.opensource.org/licenses/Artistic-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Artistic-2.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Attribution Assurance Licenses", + "url": "http://www.opensource.org/licenses/AAL", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "AAL" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Boost Software License 1.0", + "url": "http://www.opensource.org/licenses/BSL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "BSL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "BSD 3-Clause \"New\" or \"Revised\" License (BSD-3-Clause)", + "url": "http://www.opensource.org/licenses/BSD-3-Clause", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "BSD-3-Clause" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Computer Associates Trusted Open Source License 1.1 (CATOSL-1.1)", + "url": "http://www.opensource.org/licenses/CATOSL-1.1", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "CATOSL-1.1" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Common Development and Distribution License 1.0", + "url": "http://www.opensource.org/licenses/CDDL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "CDDL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Common Public Attribution License 1.0", + "url": "http://www.opensource.org/licenses/CPAL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "CPAL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "CUA Office Public License 1.0", + "url": "http://www.opensource.org/licenses/CUA-OPL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "CUA-OPL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "CeCILL License 2.1", + "url": "http://www.opensource.org/licenses/CECILL-2.1", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "CECILL-2.1" + }, + { + "status": "active", + "maintainer": "Eclipse Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Eclipse Public License 1.0", + "url": "http://www.opensource.org/licenses/EPL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "EPL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Educational Community License 2.0", + "url": "http://www.opensource.org/licenses/ECL-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "ECL-2.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Eiffel Forum License 2.0", + "url": "http://www.opensource.org/licenses/EFL-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "EFL-2.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Entessa Public License", + "url": "http://www.opensource.org/licenses/Entessa", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Entessa" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "EU DataGrid Software License", + "url": "http://www.opensource.org/licenses/EUDatagrid", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "EUDatagrid" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "European Union Public License 1.1", + "url": "http://www.opensource.org/licenses/EUPL-1.1", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "EUPL-1.1" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Fair License", + "url": "http://www.opensource.org/licenses/Fair", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Fair" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Frameworx License 1.0", + "url": "http://www.opensource.org/licenses/Frameworx-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Frameworx-1.0" + }, + { + "status": "active", + "maintainer": "Free Software Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "GNU Affero General Public License v3", + "url": "http://www.opensource.org/licenses/AGPL-3.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "AGPL-3.0" + }, + { + "status": "active", + "maintainer": "Free Software Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "GNU General Public License 2.0", + "url": "http://www.opensource.org/licenses/GPL-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "GPL-2.0" + }, + { + "status": "active", + "maintainer": "Free Software Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "GNU General Public License 3.0", + "url": "http://www.opensource.org/licenses/GPL-3.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "GPL-3.0" + }, + { + "status": "active", + "maintainer": "Free Software Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "GNU Lesser General Public License 2.1", + "url": "http://www.opensource.org/licenses/LGPL-2.1", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "LGPL-2.1" + }, + { + "status": "active", + "maintainer": "Free Software Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "GNU Lesser General Public License 3.0", + "url": "http://www.opensource.org/licenses/LGPL-3.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "LGPL-3.0" + }, + { + "status": "active", + "maintainer": "IBM Corporation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "IBM Public License 1.0", + "url": "http://www.opensource.org/licenses/IPL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "IPL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "IPA Font License", + "url": "http://www.opensource.org/licenses/IPA", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "IPA" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "ISC License", + "url": "http://www.opensource.org/licenses/ISC", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "ISC" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "LaTeX Project Public License 1.3c", + "url": "http://www.opensource.org/licenses/LPPL-1.3c", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "LPPL-1.3c" + }, + { + "status": "retired", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Lucent Public License (\"Plan9\") 1.0", + "url": "http://www.opensource.org/licenses/LPL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "LPL-1.0" + }, + { + "status": "active", + "maintainer": "Microsoft Corporation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Microsoft Public License", + "url": "http://www.opensource.org/licenses/MS-PL", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "MS-PL" + }, + { + "status": "active", + "maintainer": "Microsoft Corporation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Microsoft Reciprocal License", + "url": "http://www.opensource.org/licenses/MS-RL", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "MS-RL" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "approved", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "MirOS Licence", + "url": "http://www.opensource.org/licenses/MirOS", + "domain_content": true, + "is_okd_compliant": true, + "is_osi_compliant": true, + "domain_software": true, + "id": "MirOS" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "MIT License", + "url": "http://www.opensource.org/licenses/MIT", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "MIT" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Motosoto License", + "url": "http://www.opensource.org/licenses/Motosoto", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Motosoto" + }, + { + "status": "retired", + "maintainer": "Mozilla Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Mozilla Public License 1.1", + "url": "http://www.opensource.org/licenses/MPL-1.1", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "MPL-1.1" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Multics License", + "url": "http://www.opensource.org/licenses/Multics", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Multics" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "NASA Open Source Agreement 1.3", + "url": "http://www.opensource.org/licenses/NASA-1.3", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "NASA-1.3" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "NTP License", + "url": "http://www.opensource.org/licenses/NTP", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "NTP" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Naumen Public License", + "url": "http://www.opensource.org/licenses/Naumen", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Naumen" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Nethack General Public License", + "url": "http://www.opensource.org/licenses/NGPL", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "NGPL" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Nokia Open Source License", + "url": "http://www.opensource.org/licenses/Nokia", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Nokia" + }, + { + "status": "active", + "maintainer": "Lawrence Rosen", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Non-Profit Open Software License 3.0", + "url": "http://www.opensource.org/licenses/NPOSL-3.0", + "domain_content": true, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "NPOSL-3.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "OCLC Research Public License 2.0", + "url": "http://www.opensource.org/licenses/OCLC-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "OCLC-2.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Open Font License 1.1", + "url": "http://www.opensource.org/licenses/OFL-1.1", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "OFL-1.1" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Open Group Test Suite License", + "url": "http://www.opensource.org/licenses/OGTSL", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "OGTSL" + }, + { + "status": "active", + "maintainer": "Lawrence Rosen", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Open Software License 3.0", + "url": "http://www.opensource.org/licenses/OSL-3.0", + "domain_content": true, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "OSL-3.0" + }, + { + "status": "active", + "maintainer": "PHP Group", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "PHP License 3.0", + "url": "http://www.opensource.org/licenses/PHP-3.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "PHP-3.0" + }, + { + "status": "active", + "maintainer": "PostgreSQL Global Development Group", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "PostgreSQL License", + "url": "http://www.opensource.org/licenses/PostgreSQL", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "PostgreSQL" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Python License 2.0", + "url": "http://www.opensource.org/licenses/Python-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Python-2.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Q Public License 1.0", + "url": "http://www.opensource.org/licenses/QPL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "QPL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "RealNetworks Public Source License 1.0", + "url": "http://www.opensource.org/licenses/RPSL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "RPSL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Reciprocal Public License 1.5", + "url": "http://www.opensource.org/licenses/RPL-1.5", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "RPL-1.5" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Ricoh Source Code Public License", + "url": "http://www.opensource.org/licenses/RSCPL", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "RSCPL" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Simple Public License 2.0", + "url": "http://www.opensource.org/licenses/SimPL-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "SimPL-2.0" + }, + { + "status": "active", + "maintainer": "Oracle Corporation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Sleepycat License", + "url": "http://www.opensource.org/licenses/Sleepycat", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Sleepycat" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Sun Public License 1.0", + "url": "http://www.opensource.org/licenses/SPL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "SPL-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Sybase Open Watcom Public License 1.0", + "url": "http://www.opensource.org/licenses/Watcom-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Watcom-1.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "University of Illinois/NCSA Open Source License", + "url": "http://www.opensource.org/licenses/NCSA", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "NCSA" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Vovida Software License 1.0", + "url": "http://www.opensource.org/licenses/VSL-1.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "VSL-1.0" + }, + { + "status": "active", + "maintainer": "World Wide Web Consortium", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "W3C License", + "url": "http://www.opensource.org/licenses/W3C", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "W3C" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "X.Net License", + "url": "http://www.opensource.org/licenses/Xnet", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Xnet" + }, + { + "status": "active", + "maintainer": "Zope Foundation", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "Zope Public License 2.0", + "url": "http://www.opensource.org/licenses/ZPL-2.0", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "ZPL-2.0" + }, + { + "status": "active", + "maintainer": "", + "od_conformance": "not reviewed", + "family": "", + "osd_conformance": "approved", + "domain_data": false, + "title": "zlib/libpng license", + "url": "http://www.opensource.org/licenses/Zlib", + "domain_content": false, + "is_okd_compliant": false, + "is_osi_compliant": true, + "domain_software": true, + "id": "Zlib" + } +] diff --git a/src/main/resources/api-docs-examples/namespace/list-namespace-response.json b/src/main/resources/api-docs-examples/namespace/list-namespace-response.json new file mode 100644 index 0000000..7238978 --- /dev/null +++ b/src/main/resources/api-docs-examples/namespace/list-namespace-response.json @@ -0,0 +1,32 @@ +[ + { + "id": "ClassificationInformation", + "title": "Classification Information", + "name": "ClassificationInformation", + "description": "Classification Information" + }, + { + "id": "LocationInformation", + "title": "Location Information", + "name": "LocationInformation", + "description": "Location Information" + }, + { + "id": "ContactInformation", + "title": "Contact Information", + "name": "ContactInformation", + "description": "Contact Information" + }, + { + "id": "OtherInformation", + "title": "Other Information", + "name": "OtherInformation", + "description": "Other Information" + }, + { + "id": "AvailabilityInformation", + "title": "Availability Information", + "name": "AvailabilityInformation", + "description": "Availability Information" + } +] \ No newline at end of file