tosca_definitions_version: tosca_simple_yaml_1_3 description: Definition of the custom types of Micro TOSCA model group_types: micro.groups.Root: derived_from: tosca.groups.Root # group type for partitioning the nodes of an applications over Team(s) micro.groups.Team: derived_from: micro.groups.Root members: [ micro.nodes.Root ] # group type for defining the Edge of an architecture micro.groups.Edge: derived_from: micro.groups.Root members: [ micro.nodes.Service, micro.nodes.CommunicationPattern ] # data stores cannot be in edge relationship_types: micro.relationships.Root: derived_from: tosca.relationships.Root # relationship type for modelling interactions micro.relationships.InteractsWith: derived_from: micro.relationships.Root valid_target_types: [ micro.capabilities.Node ] properties: circuit_breaker: # is a circuit breaker used? type: boolean default: false dynamic_discovery: # is the endpoint dynamically discovered (e.g., with a service discovery) type: boolean default: false timeout: # is a timeout set? type: boolean default: false capability_types: micro.capabilities.Node: derived_from: tosca.capabilities.Node node_types: micro.nodes.Root: derived_from: tosca.nodes.Root capabilities: feature: type: micro.capabilities.Node valid_source_types: [ micro.nodes.Root ] # node type for representing services micro.nodes.Service: derived_from: micro.nodes.Root requirements: - interaction: capability: micro.capabilities.Node occurrences: [ 0, UNBOUNDED ] node: micro.nodes.Root relationship: micro.relationships.InteractsWith # node type for representing communication patterns micro.nodes.CommunicationPattern: derived_from: micro.nodes.Root # node type for representing data stores micro.nodes.DataStore: derived_from: micro.nodes.Root capabilities: feature: type: micro.capabilities.Node valid_source_types: [ micro.nodes.Service, micro.nodes.CommunicationPattern ] # Type of CommunicationPatterns micro.nodes.MessageBroker: derived_from: micro.nodes.CommunicationPattern micro.nodes.MessageRouter: derived_from: micro.nodes.CommunicationPattern requirements: - interaction: capability: micro.capabilities.Node occurrences: [ 1, UNBOUNDED ] # at least one (outgoing) interaction node: micro.nodes.Root relationship: micro.relationships.InteractsWith