Namespace concerto.metamodel@1.0.0

Compatible with Concerto versions ^3.0.0. Has 61 declarations.

Concerto JSON AST PlantUML XML Schema Typescript C# OData JSON Schema GraphQL Java Go Avro Markdown OpenAPI Protobuf Mermaid

Declared Types

      
      import concerto.metamodel@1.0.0.Position from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.Range from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.TypeIdentifier from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DecoratorLiteral from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DecoratorString from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DecoratorNumber from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DecoratorBoolean from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DecoratorTypeReference from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.Decorator from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.Identified from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.IdentifiedBy from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.Declaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.MapKeyType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.MapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.MapDeclaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.StringMapKeyType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DateTimeMapKeyType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ObjectMapKeyType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.BooleanMapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DateTimeMapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.StringMapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.IntegerMapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.LongMapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DoubleMapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ObjectMapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.RelationshipMapValueType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.EnumDeclaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.EnumProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ConceptDeclaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.AssetDeclaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ParticipantDeclaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.TransactionDeclaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.EventDeclaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.Property from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.RelationshipProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ObjectProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.BooleanProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DateTimeProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.StringProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.StringRegexValidator from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.StringLengthValidator from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DoubleProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DoubleDomainValidator from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.IntegerProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.IntegerDomainValidator from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.LongProperty from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.LongDomainValidator from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.AliasedType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.Import from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ImportAll from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ImportType from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ImportTypes from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.Model from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.Models from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.ScalarDeclaration from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.BooleanScalar from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.IntegerScalar from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.LongScalar from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DoubleScalar from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.StringScalar from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      import concerto.metamodel@1.0.0.DateTimeScalar from https://models.accordproject.org/concerto/metamodel@1.0.0.cto
      
      

Dependencies

  • None

Source

    /*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
concerto version "^3.0.0"

@DotNetNamespace("AccordProject.Concerto.Metamodel")
namespace concerto.metamodel@1.0.0

concept Position {
  o Integer line
  o Integer column
  o Integer offset
}

concept Range {
  o Position start
  o Position end
  o String source optional
}

concept TypeIdentifier {
  o String name
  o String namespace optional
}

abstract concept DecoratorLiteral {
  o Range location optional
}

concept DecoratorString extends DecoratorLiteral {
  o String value
}

concept DecoratorNumber extends DecoratorLiteral {
  o Double value
}

concept DecoratorBoolean extends DecoratorLiteral {
  o Boolean value
}

concept DecoratorTypeReference extends DecoratorLiteral {
  o TypeIdentifier type
  o Boolean isArray default=false
}

concept Decorator {
  o String name
  o DecoratorLiteral[] arguments optional
  o Range location optional
}

concept Identified {
}

concept IdentifiedBy extends Identified {
  o String name
}

abstract concept Declaration {
  o String name regex=/^(\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4})(?:\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\u200C|\u200D)*$/u
  o Decorator[] decorators optional
  o Range location optional
}

abstract concept MapKeyType {
  o Decorator[] decorators optional
  o Range location optional
}

abstract concept MapValueType {
  o Decorator[] decorators optional
  o Range location optional
}

concept MapDeclaration extends Declaration {
  o MapKeyType key
  o MapValueType value
}

concept StringMapKeyType extends MapKeyType {}
concept DateTimeMapKeyType extends MapKeyType {}

concept ObjectMapKeyType extends MapKeyType {
  o TypeIdentifier type
}

concept BooleanMapValueType extends MapValueType {}
concept DateTimeMapValueType extends MapValueType {}
concept StringMapValueType extends MapValueType {}
concept IntegerMapValueType extends MapValueType {}
concept LongMapValueType extends MapValueType {}
concept DoubleMapValueType extends MapValueType {}

concept ObjectMapValueType extends MapValueType {
  o TypeIdentifier type
}

concept RelationshipMapValueType extends MapValueType {
  o TypeIdentifier type
}

concept EnumDeclaration extends Declaration {
  o EnumProperty[] properties
}

concept EnumProperty {
  o String name regex=/^(\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4})(?:\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\u200C|\u200D)*$/u
  o Decorator[] decorators optional
  o Range location optional
}

concept ConceptDeclaration extends Declaration {
  o Boolean isAbstract default=false
  o Identified identified optional
  o TypeIdentifier superType optional
  o Property[] properties
}

concept AssetDeclaration extends ConceptDeclaration {
}

concept ParticipantDeclaration extends ConceptDeclaration {
}

concept TransactionDeclaration extends ConceptDeclaration {
}

concept EventDeclaration extends ConceptDeclaration {
}

abstract concept Property {
  o String name regex=/^(\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4})(?:\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\u200C|\u200D)*$/u
  o Boolean isArray default=false
  o Boolean isOptional default=false
  o Decorator[] decorators optional
  o Range location optional
}

concept RelationshipProperty extends Property {
  o TypeIdentifier type
}

concept ObjectProperty extends Property {
  o String defaultValue optional
  o TypeIdentifier type
}

concept BooleanProperty extends Property {
  o Boolean defaultValue optional
}

concept DateTimeProperty extends Property {
}

concept StringProperty extends Property {
  o String defaultValue optional
  o StringRegexValidator validator optional
  o StringLengthValidator lengthValidator optional
}

concept StringRegexValidator {
  o String pattern
  o String flags
}

concept StringLengthValidator {
  o Integer minLength optional
  o Integer maxLength optional
}

concept DoubleProperty extends Property {
  o Double defaultValue optional
  o DoubleDomainValidator validator optional
}

concept DoubleDomainValidator {
  o Double lower optional
  o Double upper optional
}

concept IntegerProperty extends Property {
  o Integer defaultValue optional
  o IntegerDomainValidator validator optional
}

concept IntegerDomainValidator {
  o Integer lower optional
  o Integer upper optional
}

concept LongProperty extends Property {
  o Long defaultValue optional
  o LongDomainValidator validator optional
}

concept LongDomainValidator {
  o Long lower optional
  o Long upper optional
}

concept AliasedType{
  o String name
  o String aliasedName
}
abstract concept Import {
  o String namespace
  o String uri optional
}

concept ImportAll extends Import {
}

concept ImportType extends Import {
  o String name
}

concept ImportTypes extends Import {
  o String[] types
  o AliasedType[] aliasedTypes optional
}

concept Model {
  o String namespace
  o String sourceUri optional
  o String concertoVersion optional
  o Import[] imports optional
  o Declaration[] declarations optional
  o Decorator[] decorators optional
}

concept Models {
  o Model[] models
}

abstract concept ScalarDeclaration extends Declaration {
}

concept BooleanScalar extends ScalarDeclaration {
  o Boolean defaultValue optional
}

concept IntegerScalar extends ScalarDeclaration {
  o Integer defaultValue optional
  o IntegerDomainValidator validator optional
}

concept LongScalar extends ScalarDeclaration {
  o Long defaultValue optional
  o LongDomainValidator validator optional
}

concept DoubleScalar extends ScalarDeclaration {
  o Double defaultValue optional
  o DoubleDomainValidator validator optional
}

concept StringScalar extends ScalarDeclaration {
  o String defaultValue optional
  o StringRegexValidator validator optional
  o StringLengthValidator lengthValidator optional
}

concept DateTimeScalar extends ScalarDeclaration {
  o String defaultValue optional
}