Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
UML class diagram for TOSCA Simple Profile in YAML v1.0
Signed-off-by: kleinech <kleinech.github@gmail.com>
- Loading branch information
Showing
2 changed files
with
342 additions
and
0 deletions.
There are no files selected for viewing
Binary file added
BIN
+98.5 KB
docs/TOSCA specification/TOSCA-Simple-Profile-in-YAML-v1.0-os-class-diagram.pdf
Binary file not shown.
342 changes: 342 additions & 0 deletions
342
docs/TOSCA specification/TOSCA-Simple-Profile-in-YAML-v1.0-os-class-diagram.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,342 @@ | ||
/******************************************************************************* | ||
* Copyright (c) 2017 University of Stuttgart. | ||
* All rights reserved. This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License v1.0 | ||
* and the Apache License 2.0 which both accompany this distribution, | ||
* and are available at http://www.eclipse.org/legal/epl-v10.html | ||
* and http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Contributors: | ||
* Christoph Kleine - initial API and implementation | ||
*******************************************************************************/ | ||
This model describes the data model specified for TOSCA Simple Profile in | ||
YAML version 1.0. | ||
Specififcation: http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/TOSCA-Simple-Profile-YAML-v1.0.html | ||
|
||
@startuml | ||
|
||
skinparam class { | ||
BackgroundColor White | ||
ArrowColor Black | ||
BorderColor Black | ||
LegendBackgroundColor White | ||
} | ||
|
||
skinparam stereotypeCBackgroundColor LightGray | ||
|
||
skinparam noteBackgroundColor White | ||
skinparam noteBorderColor Black | ||
|
||
|
||
'required for SVG | ||
skinparam defaultFontName sans-serif | ||
|
||
Title <size:33>TOSCA Simple Profile in YAML Version 1.0 as UML class diagram. This is not an official OASIS document. No warranty. (c) University of Stuttgart. Dual-licensed under EPL and ASLv2. Version 2017-05-02. | ||
|
||
'************************************************************* | ||
' Specification classes | ||
'************************************************************* | ||
class tServiceTemplate { | ||
+String tosca_definition_version | ||
String description | ||
Map<String,String> metadata | ||
Map<String,ObjectValue> dsl_definition | ||
} | ||
tServiceTemplate *-- "*" tRepositoryDefinition | ||
tServiceTemplate *-- "*" tImportDefinition | ||
tServiceTemplate *-- "*" tArtifactType | ||
tServiceTemplate *-- "*" tDataType | ||
tServiceTemplate *-- "*" tCapabilityType | ||
tServiceTemplate *-- "*" tInterfaceType | ||
tServiceTemplate *-- "*" tRelationshipType | ||
tServiceTemplate *-- "*" tNodeType | ||
tServiceTemplate *-- "*" tGroupType | ||
tServiceTemplate *-- "*" tPolicyType | ||
tServiceTemplate *-- "0..1" tTopologyTemplateDefinition | ||
|
||
'************************************************************* | ||
' Definition classes | ||
'************************************************************* | ||
class tRepositoryDefinition { | ||
String description | ||
+String url | ||
} | ||
tRepositoryDefinition *-- "0..1" toscaDatatypesCredential | ||
|
||
class tImportDefinition { | ||
String file | ||
String namespace_uri | ||
String namespace_prefix | ||
} | ||
tImportDefinition *-- "0..1" tRepositoryDefinition : repository | ||
|
||
class tPropertyDefinition { | ||
String description | ||
Boolean required | ||
ObjectValue default | ||
StatusValue status | ||
} | ||
tPropertyDefinition --> tDataType : type | ||
tPropertyDefinition *-- "*" tConstraintClause : constraints | ||
tPropertyDefinition *-- "0..1" tEntrySchema : entry_schema | ||
|
||
class tAttributeDefinition { | ||
String description | ||
ANY default | ||
StatusValue status | ||
} | ||
tAttributeDefinition --> tDataType : type | ||
tAttributeDefinition *-- "0..1" tEntrySchema : entry_schema | ||
|
||
class tOperationDefinition { | ||
String description | ||
} | ||
tOperationDefinition *-- "*" tPropertyDefinition : inputs | ||
tOperationDefinition *-- "*" tPropertyAssignment : inputs | ||
tOperationDefinition *-- "0..1" toscaArtifactImplementation : implementation | ||
tOperationDefinition *-- "0..1" toscaArtifactImplementation : implementation.primary | ||
tOperationDefinition *-- "*" tArtifactDefinition : implementation.dependencies | ||
|
||
class tInterfaceDefinition { | ||
|
||
} | ||
tInterfaceDefinition --> tInterfaceType : type | ||
tInterfaceDefinition *-- "*" tPropertyAssignment : inputs | ||
tInterfaceDefinition *-- "*" tPropertyDefinition : inputs | ||
tInterfaceDefinition *-- "*" tOperationDefinition | ||
|
||
class tRequirementDefinition { | ||
String Description | ||
List<String> occurrences | ||
} | ||
tRequirementDefinition *-- "1" tCapabilityType : capability | ||
tRequirementDefinition *-- "0..1" tNodeType : node | ||
tRequirementDefinition *-- "0..1" tRelationshipType : relationship | ||
tRequirementDefinition *-- "0..1" tRelationshipType : relationship.type | ||
tRequirementDefinition *-- "*" tRelationshipType : relationship.interfaces | ||
|
||
class tCapabilityDefinition { | ||
String description | ||
List<String> occurrences | ||
List<String> valid_source_types | ||
} | ||
tCapabilityDefinition --> tCapabilityType : type | ||
tCapabilityDefinition *-- tPropertyDefinition : properties | ||
tCapabilityDefinition *-- tAttributeDefinition : attributes | ||
|
||
class tArtifactDefinition { | ||
String description | ||
+String file | ||
String deploy_path | ||
} | ||
tArtifactDefinition --> tArtifactType : type | ||
tArtifactDefinition *-- "0..1" tRepositoryDefinition : repository | ||
|
||
class tGroupDefinition { | ||
String description | ||
List<String> members | ||
} | ||
tGroupDefinition --> tGroupType : type | ||
tGroupDefinition *-- "*" tPropertyAssignment : properties | ||
tGroupDefinition *-- "*" tInterfaceDefinition : interfaces | ||
|
||
class tPolicyDefinition { | ||
String description | ||
} | ||
tPolicyDefinition --> tPolicyType : type | ||
tPolicyDefinition *-- "*" tPropertyAssignment : properties | ||
tPolicyDefinition *-- "*" tNodeTemplate : targets | ||
tPolicyDefinition *-- "*" tGroupDefinition : targets | ||
|
||
tPropertyDefinition <|-- tParameterDefinition : extends | ||
class tParameterDefinition { | ||
ObjectValue value | ||
} | ||
tParameterDefinition --> tDataType : type | ||
|
||
'************************************************************* | ||
' Type classes | ||
'************************************************************* | ||
class tEntityType { | ||
String description | ||
Version version | ||
} | ||
tEntityType --> "0..1" tEntityType : derived_from | ||
tEntityType *-- "*" tPropertyDefinition | ||
|
||
tEntityType <|-- tArtifactType | ||
class tArtifactType { | ||
String mime_type | ||
List<String> file_ext | ||
} | ||
|
||
tEntityType <|-- tDataType | ||
class tDataType { | ||
} | ||
tDataType *-- "*" tConstraintClause : constraints | ||
|
||
tEntityType <|-- tCapabilityType | ||
class tCapabilityType { | ||
List<String> valid_source_types | ||
} | ||
tCapabilityType *-- "*" tAttributeDefinition : attributes | ||
|
||
tEntityType <|-- tInterfaceType | ||
class tInterfaceType { | ||
} | ||
tInterfaceType *-- "*" tOperationDefinition | ||
|
||
tEntityType <|-- tRelationshipType | ||
class tRelationshipType { | ||
List<String> valid_target_types | ||
} | ||
tRelationshipType *-- "*" tAttributeDefinition : attributes | ||
tRelationshipType *-- "*" tInterfaceDefinition : interfaces | ||
|
||
tEntityType <|-- tNodeType | ||
class tNodeType { | ||
} | ||
tNodeType *-- "*" tAttributeDefinition : attributes | ||
tNodeType *-- "*" tRequirementDefinition : requirements | ||
tNodeType *-- "*" tCapabilityDefinition : capabilities | ||
tNodeType *-- "*" tInterfaceDefinition : interfaces | ||
tNodeType *-- "*" tArtifactDefinition : artifacts | ||
|
||
tEntityType <|-- tGroupType | ||
class tGroupType { | ||
} | ||
tGroupType *-- "*" tNodeType : members | ||
tGroupType *-- "*" tInterfaceDefinition : interfaces | ||
|
||
tEntityType <|-- tPolicyType | ||
class tPolicyType { | ||
} | ||
tPolicyType *-- "*" tNodeType : targets | ||
tPolicyType *-- "*" tGroupType : targets | ||
|
||
'************************************************************* | ||
' Template classes | ||
'************************************************************* | ||
|
||
class tTopologyTemplateDefinition { | ||
String description | ||
} | ||
tTopologyTemplateDefinition *-- "*" tParameterDefinition : inputs | ||
tTopologyTemplateDefinition *-- "*" tNodeTemplate : node_templates | ||
tTopologyTemplateDefinition *-- "*" tRelationshipTemplate : relationship_templates | ||
tTopologyTemplateDefinition *-- "*" tGroupDefinition : groups | ||
tTopologyTemplateDefinition *-- "*" tPolicyDefinition : policies | ||
tTopologyTemplateDefinition *-- "*" tParameterDefinition : outputs | ||
tTopologyTemplateDefinition *-- "*" tSubstitutionMapping : substitution_mappings | ||
|
||
class tNodeTemplate { | ||
String description | ||
String directives | ||
String copy | ||
} | ||
tNodeTemplate --> tNodeType : type | ||
tNodeTemplate *-- "*" tPropertyAssignment : properties | ||
tNodeTemplate *-- "*" tAttributeAssignment : attributes | ||
tNodeTemplate *-- "*" tRequirementAssignment : requirements | ||
tNodeTemplate *-- "*" tCapabilityAssignment : capabilities | ||
tNodeTemplate *-- "*" tInterfaceDefinition : interfaces | ||
tNodeTemplate *-- "*" tArtifactDefinition : artifacts | ||
tNodeTemplate *-- "0..1" tNodeFilterDefinition : node_filter | ||
|
||
class tRelationshipTemplate { | ||
String description | ||
String copy | ||
} | ||
tRelationshipTemplate --> tRelationshipType : type | ||
tRelationshipTemplate *-- "*" tPropertyAssignment : properties | ||
tRelationshipTemplate *-- "*" tAttributeAssignment : attributes | ||
tRelationshipTemplate *-- "*" tInterfaceDefinition : interfaces | ||
|
||
'************************************************************* | ||
' Assignment classes | ||
'************************************************************* | ||
class tPropertyAssignment { | ||
ObjectValue value | ||
} | ||
|
||
class tAttributeAssignment { | ||
String description | ||
ObjectValue value | ||
} | ||
|
||
class tRequirementAssignment { | ||
List<String> occurrences | ||
} | ||
tRequirementAssignment *-- "0..1" tCapabilityDefinition : capability | ||
tRequirementAssignment *-- "0..1" tCapabilityType : capability | ||
tRequirementAssignment *-- "0..1" tNodeTemplate : node | ||
tRequirementAssignment *-- "0..1" tNodeType : node | ||
tRequirementAssignment *-- "0..1" tRelationshipTemplate : relationship | ||
tRequirementAssignment *-- "0..1" tRelationshipType : relationship | ||
tRequirementAssignment *-- "0..1" tNodeFilterDefinition : node_filter | ||
tRequirementAssignment --> tRelationshipType : type | ||
tRequirementAssignment *-- "*" tInterfaceDefinition : properties | ||
|
||
|
||
class tCapabilityAssignment { | ||
|
||
} | ||
tCapabilityAssignment *-- "*" tPropertyAssignment : properties | ||
tCapabilityAssignment *-- "*" tAttributeAssignment : attributes | ||
|
||
'************************************************************* | ||
' Other classes | ||
'************************************************************* | ||
class tConstraintClause { | ||
ObjectValue equal | ||
ObjectValue greater_or_equal | ||
ObjectValue less_than | ||
List<ObjectValue> in_range | ||
List<ObjectValue> valid_values | ||
ObjectValue length | ||
ObjectValue min_length | ||
ObjectValue max_length | ||
ObjectValue pattern | ||
} | ||
|
||
class tNodeFilterDefinition { | ||
|
||
} | ||
tNodeFilterDefinition *-- "*" tPropertyFilterDefinition : properties | ||
tNodeFilterDefinition *-- "*" tCapabilityDefinition : capabilities | ||
tNodeFilterDefinition *-- "*" tCapabilityType : capabilities | ||
|
||
class tPropertyFilterDefinition { | ||
|
||
} | ||
tPropertyFilterDefinition *-- "*" tConstraintClause | ||
|
||
class tSubstitutionMapping { | ||
} | ||
tSubstitutionMapping --> tNodeType : node_type | ||
tSubstitutionMapping *-- "*" tCapabilityDefinition : capabilities | ||
tSubstitutionMapping *-- "*" tRequirementDefinition : requirements | ||
|
||
class tEntrySchema { | ||
String description | ||
} | ||
tEntrySchema --> tDataType : type | ||
tEntrySchema *-- "*" tConstraintClause : constraints | ||
|
||
'************************************************************* | ||
' Default data types | ||
'************************************************************* | ||
class toscaDatatypesCredential { | ||
String protocol | ||
String token_type | ||
String token | ||
MapOfStrings keys | ||
String user | ||
} | ||
|
||
class toscaArtifactImplementation { | ||
|
||
} | ||
|
||
@enduml |