consumed_interfaces_mapping

datastore grammar version 85

'imported interfaces': [ imported-interfaces ] dictionary {
	'interface': [ = ] reference
	'context keys': dictionary { [ (, ) ]
		'value': [ : text = . ] reference
	}
	'mapping': component 'node type mapping'
}
'node type mapping' { [ (, ) ]
	'attributes': dictionary {
		'type': [ : ] stategroup (
			'command' { [ command ]
				'type': stategroup (
					'internal' {
						'mapping': component 'event mapping'
					}
					'external' {
						'mapping': component 'command mapping'
					}
				)
			}
			'property' {
				'type': stategroup (
					'group' { [ group ]
						'group': [ = . ] reference
						'mapping': component 'node type mapping'
					}
					'collection' { [ collection = ]
						'collection': [ map . ] reference
						'mapping': component 'node type mapping'
					}
					'number' { [ number ]
						'number': [ = . ] reference
					}
					'text' { [ text ]
						'text': [ = . ] reference
					}
					'file' { [ file ]
						'file': [ = . ] reference
					}
					'state group' { [ stategroup = switch ]
						'state group': [ . ] reference
						'states': [ (, ) ] dictionary { [ | ]
							'state': [ = ] reference
							'mapping': component 'node type mapping'
						}
					}
				)
			}
		)
	}
}
'parameter mapping' { [ (, ) ]
	'conditional': stategroup (
		'yes' { [ switch ]
			'state group': [ @ . ] reference
			'states': [ (, ) ] dictionary { [ | ]
				'arguments': component 'parameter mapping'
			}
		}
		'no' {
			'properties': dictionary {
				'type': [ : ] stategroup (
					'group' { [ group = ]
						'group': [ @ . ] reference
						'arguments': component 'parameter mapping'
					}
					'collection' { [ collection = ]
						'collection': [ map @ . ] reference
						'arguments': component 'parameter mapping'
					}
					'number' { [ number ]
						'number': [ = @ . ] reference
					}
					'text' { [ text ]
						'text': [ = @ . ] reference
					}
					'file' { [ file ]
						'file': [ = @ . ] reference
					}
					'state group' { [ stategroup = ]
						'type': stategroup (
							'fixed' {
								'state': reference
								'arguments': component 'parameter mapping'
							}
							'mapped' { [ switch ]
								'state group': [ @ . ] reference
								'mapping': [ (, ) ] dictionary { [ | ]
									'mapped state': [ = ] reference
									'arguments': component 'parameter mapping'
								}
							}
						)
					}
				)
			}
		}
	)
}
'event node type mapping' { [ (, ) ]
	'properties': dictionary {
		'type': [ : ] stategroup (
			'group' { [ group = ]
				'group': [ . ] reference
				'arguments': component 'event node type mapping'
			}
			'collection' { [ collection = ]
				'collection': [ map . ] reference
				'arguments': component 'event node type mapping'
			}
			'number' { [ number ]
				'number': [ = . ] reference
			}
			'text' { [ text ]
				'text': [ = . ] reference
			}
			'file' { [ file ]
				'file': [ = . ] reference
			}
			'state group' { [ stategroup = ]
				'state group': [ switch . ] reference
				'mapping': [ (, ) ] dictionary { [ | ]
					'mapped state': [ = ] reference
					'arguments': component 'event node type mapping'
				}
			}
		)
	}
}
'command mapping' { [ execute ]
	'command': [ . ] reference
	'parameter mapping': component 'parameter mapping'
}
'event mapping' { [ handle ]
	'event': [ . ] reference
	'parameter mapping': component 'event node type mapping'
}