NIM

schema

The connector's schema object defines all resources and CRUD calls supported by the system.

The schema object contains the crud_objects child object. In turn, crud_objects contains a child object for each external object type in the system (e.g., users or groups). The child objects of crud_objects thus correspond to the system's Data tables in NIM.

Each child object of crud_objects must contain resources and operations properties. Optionally, they may also contain key and groupmembership properties.

resources

The attributes available for this type of system object. These correspond both to columns in NIM data tables, and to REST resources. Required.

operations

The CRUD operations available for this type of system object. Uses the resources that you define in the resources property. Required.

key

The name of the table's key. If specified, should correspond to a resource in the resources property. Optional.

groupmembership

A property to support NIM Role models (optional; advanced)

For example, in a groups system object, you would likely specify get, create, delete, and update calls, and attributes such as unique identifier and group email address.

Example JSON:

"schema": {
	"crud_objects": {
		"groups": {
			"operations": {
				"groups_get": {
					"method": "get"
				},
				"group_create": {…},
				"group_delete": {
					"method": "delete",
					"call": {
						"mode": "normal",
						"path": "/groups/{id}"
					},
					"semantics": "delete",
					"resource_allowance_default": "prohibited",
					"resource_mandatory": [
						"id"
					]
				},
				"group_update": {…}
			},
			"key": "id",
			"resources": {
				"id": "string*",
				"email": "string*",