Skip to content

Latest commit

 

History

History
4370 lines (4196 loc) · 110 KB

hl.md

File metadata and controls

4370 lines (4196 loc) · 110 KB

High-level AST module

Interface

Core

org.mulesoft.high.level.Core class is the entry point to the high-level AST.

init() method returning void/unit future must be called before starting the work with the system.

After that one of the following methods should be used to build AST:

buildModel(unit:BaseUnit,platform:Platform):Future[IProject]

or

buildModel(unit:BaseUnit,fsResolver:IFSProvider):Future[IProject]

The first method accepts AMF Platform, the second requires a version of file system provider instead.

File system provider contains a number of self-explanatory methods, which are called by the builders to find files and directories:

trait IFSProvider {

    def content(fullPath: String): Future[String]

    def dirName(fullPath: String): String

    def existsAsync(path: String): Future[Boolean]

    def resolve(contextPath: String, relativePath: String): Option[String]

    def isDirectory(fullPath: String): Boolean

    def readDirAsync(path: String): Future[Seq[String]]

    def isDirectoryAsync(path: String): Future[Boolean]
}

Essentially, both buildModel methods require an access to the file system, the only difference is the interface, which represents it.

The result of both methods is an instance of IProject:

trait IProject {

    def rootASTUnit: IASTUnit

    def rootPath: String

    def units: Map[String, ASTUnit]

    def types: ITypeCollectionBundle

    def language: Vendor

    def fsProvider: IFSProvider

    def resolve(absBasePath: String, path: String): Option[IASTUnit]

    def resolvePath(path: String, p: String): Option[String]
}

Here the most interesting properties are the root AST unit, and the map of all units.

trait IASTUnit {

    def universe:IUniverse

    def baseUnit:BaseUnit

    def dependencies: Map[String,DependencyEntry[_ <: IASTUnit]]

    def dependants: Map[String,DependencyEntry[_ <: IASTUnit]]

    def types: ITypeCollection

    def project:IProject

    def rootNode:IHighLevelNode

    def path:String

    def positionsMapper:IPositionsMapper

    def text:String

    def resolve(path:String): Option[IASTUnit]
}

For each unit, the root of the AST tree is represented by the rootNode property of IHighLevelNode, the nodes are described in the next section.

universe property points to the global collection of types, types property reflects types being used in the unit. Types are described further below.

Nodes

Nodes are represented by the IParseResult general nodes and the descendants of IHighLevelNode and IAttribute. The difference between those two is that attributes have name and value, while general nodes are more complex.

trait IParseResult extends IHasExtra {

    def amfNode: AmfObject

    def amfBaseUnit: BaseUnit

    def root: Option[IHighLevelNode]

    def parent: Option[IHighLevelNode]

    def setParent(node: IHighLevelNode): Unit

    def children: Seq[IParseResult]

    def isAttr: Boolean

    def asAttr: Option[IAttribute]

    def isElement: Boolean

    def asElement: Option[IHighLevelNode]

    def isUnknown: Boolean

    def property: Option[IProperty]

    def printDetails(indent: String=""): String

    def printDetails: String = printDetails()

    def astUnit: IASTUnit

    def sourceInfo:ISourceInfo
}

The most interesting properties of general node is its link to amd nodes, an ability to check its children, convert it to element (IHighLevelNode) or attribute (IAttribute), and to check its property pointing to the type system.

It is also possible to check node source by using sourceInfo

trait IHighLevelNode extends IParseResult {
    
    def amfNode: AmfObject

    def localType: Option[ITypeDefinition]

    def definition: ITypeDefinition

    def attribute(n: String): Option[IAttribute]

    def attributeValue(n: String): Option[Any]

    def attributes: Seq[IAttribute]

    def attributes(n: String): Seq[IAttribute]

    def elements: Seq[IHighLevelNode]

    def element(n: String): Option[IHighLevelNode]

    def elements(n: String): Seq[IHighLevelNode]
...

High-level nodes can be checked for child elements and attributes. Also each node has definition property pointing to the node definition in terms of type system, and potentially localType, which is this node's interpreted type (mostly used for user-defined types, annotations etc)

trait IAttribute extends IParseResult {

    def name: String

    def definition: Option[ITypeDefinition]

    def value: Option[Any]
...

For attributes name and value are the most important properties.

Types

Types are represented by ITypeDefinition trait.

trait ITypeDefinition extends INamedEntity with IHasExtra {
    def key: Option[NamedId]

    def superTypes: Seq[ITypeDefinition]

    def subTypes: Seq[ITypeDefinition]

    def allSubTypes: Seq[ITypeDefinition]

    def allSuperTypes: Seq[ITypeDefinition]

    def properties: Seq[IProperty]

    def facet(n: String): Option[IProperty]

    def allProperties(visited: scala.collection.Map[String,ITypeDefinition]): Seq[IProperty]

    def allProperties: Seq[IProperty]

    def allFacets: Seq[IProperty]

    def allFacets(visited: scala.collection.Map[String,ITypeDefinition]): Seq[IProperty]

    def facets: Seq[IProperty]

    def isValueType: Boolean

    def hasValueTypeInHierarchy: Boolean

    def isArray: Boolean

    def isObject: Boolean

    def hasArrayInHierarchy: Boolean

    def array: Option[IArrayType]

    def arrayInHierarchy: Option[IArrayType]

    def isUnion: Boolean

    def hasUnionInHierarchy: Boolean

    def union: Option[IUnionType]

    def unionInHierarchy: Option[IUnionType]

    def isAnnotationType: Boolean

    def annotationType: Option[IAnnotationType]

    def hasStructure: Boolean

    def isExternal: Boolean

    def hasExternalInHierarchy: Boolean

    def external: Option[IExternalType]

    def externalInHierarchy: Option[IExternalType]

    def isBuiltIn: Boolean

    def universe: IUniverse

    def isAssignableFrom(typeName: String): Boolean

    def property(name: String): Option[IProperty]

    def requiredProperties: Seq[IProperty]

    def getFixedFacets: scala.collection.Map[String,Any]

    def fixedFacets: scala.collection.Map[String,Any]

    def allFixedFacets: scala.collection.Map[String,Any]

    def fixedBuiltInFacets: scala.collection.Map[String,Any]

    def allFixedBuiltInFacets: scala.collection.Map[String,Any]

    def printDetails(indent: String, settings: IPrintDetailsSettings): String

    def printDetails(indent: String): String

    def printDetails: String

    def isGenuineUserDefinedType: Boolean

    def hasGenuineUserDefinedTypeInHierarchy: Boolean

    def genuineUserDefinedTypeInHierarchy: Option[ITypeDefinition]

    def kind: Seq[String]

    def isTopLevel: Boolean

    def isUserDefined: Boolean
}

Note that this entity represents not only types declared in types section of RAML. Type is a more general abstract. Any annotation is a type. Any type property also has its own type, often anonymous.

Types can be checked for its hierarchy using superTypes and subTypes properties.

Types has lots of is... properties to determine the type's kind.

Types can be requested for facets using fixedFacets, facet and similar properties.

Types can be checked for being user defined.

RAML Node tables

This links list RAML 1.0 and RAML 0.8 node type tables:

RAML 1.0

RAML 0.8

AnnotationRef

Annotations allow you to attach information to your API

Instantiation of TypeDeclaration extends Annotable

Description:Not described yet

Property Description Value type
annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
key? (key) Name prefix (without dot) used to refer imported declarations StringType
value? Content of the schema StringType

AnyType

MarkdownString

GitHub Flavored Markdown

extends Annotable

Description:Not described yet

Property Description Value type
annotations? Annotations to be applied to this example. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
value String representation of example * Valid value for this type
* String representing the serialized version of a valid value
strict? By default, examples are validated against any type declaration. Set this to false to allow examples that need not validate. BooleanType
displayName? An alternate, human-friendly name for the example StringType
description? A longer, human-friendly description of the example markdown string
extends Annotable

Description:Not described yet

Property Description Value type
annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
attribute? If attribute is set to true, a type instance should be serialized as an XML attribute. It can only be true for scalar types. BooleanType
wrapped? If wrapped is set to true, a type instance should be wrapped in its own XML element. It can not be true for scalar types and it can not be true at the same moment when attribute is true. BooleanType
name? Allows to override the name of the XML element or XML attribute in it's XML representation. StringType
namespace? Allows to configure the name of the XML namespace. StringType
prefix? Allows to configure the prefix which will be used during serialization to XML. StringType

AnnotationTarget

Elements to which this Annotation can be applied (enum)

extends Annotable

Description:Not described yet

Property Description Value type
annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
* String representing the serialized version of a valid value
examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
* String representing the serialized version of a valid value
description? A longer, human-friendly description of the type markdown string
xml? XMLFacetInfo
allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
isAnnotation? Whether the type represents annotation BooleanType
requires type=array extends TypeDeclarationGlobally declarates referencable instance of ArrayTypeDeclaration

Description:Not described yet

Property Description Value type
annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
* String representing the serialized version of a valid value
examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
* String representing the serialized version of a valid value
description? A longer, human-friendly description of the type markdown string
xml? XMLFacetInfo
allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
isAnnotation? Whether the type represents annotation BooleanType
uniqueItems? Should items in array be unique BooleanType
items? Array component type. Inline type declaration or type name.
minItems? Minimum amount of items in array integer ( >= 0 ). Defaults to 0
maxItems? Maximum amount of items in array integer ( >= 0 ). Defaults to undefined.
requires type=union extends TypeDeclarationGlobally declarates referencable instance of UnionTypeDeclaration

Context requirements:

  • locationKind=LocationKind.MODELS
  • Description:Not described yet

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    requires type=object extends TypeDeclarationGlobally declarates referencable instance of ObjectTypeDeclaration

    Description:Not described yet

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    properties? The properties that instances of this type may or must have. An object whose keys are the properties' names and whose values are property declarations.
    minProperties? The minimum number of properties allowed for instances of this type. NumberType
    maxProperties? The maximum number of properties allowed for instances of this type. NumberType
    additionalProperties? A Boolean that indicates if an object instance has additional properties. BooleanType
    discriminator? Type property name to be used as discriminator, or boolean StringType
    discriminatorValue? The value of discriminator for the type. StringType
    enum? AnyType[]
    requires type=string extends TypeDeclarationGlobally declarates referencable instance of StringTypeDeclaration

    Description:Value must be a string

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    pattern? Regular expression that this string should path regexp
    minLength? Minimum length of the string NumberType
    maxLength? Maximum length of the string NumberType
    requires type=boolean extends TypeDeclarationGlobally declarates referencable instance of BooleanTypeDeclaration

    Description:Value must be a boolean

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    enum? BooleanType[]
    requires type=number extends TypeDeclarationGlobally declarates referencable instance of NumberTypeDeclaration

    Description:Value MUST be a number. Indicate floating point numbers as defined by YAML.

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    minimum? (Optional, applicable only for parameters of type number or integer) The minimum attribute specifies the parameter's minimum value. NumberType
    maximum? (Optional, applicable only for parameters of type number or integer) The maximum attribute specifies the parameter's maximum value. NumberType
    format? Value format StringType
    one of: int32, int64, int, long, float, double, int16, int8
    multipleOf? A numeric instance is valid against "multipleOf" if the result of the division of the instance by this keyword's value is an integer. NumberType
    requires type=integer extends NumberTypeDeclarationGlobally declarates referencable instance of IntegerTypeDeclaration

    Description:Value MUST be a integer.

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    minimum? (Optional, applicable only for parameters of type number or integer) The minimum attribute specifies the parameter's minimum value. NumberType
    maximum? (Optional, applicable only for parameters of type number or integer) The maximum attribute specifies the parameter's maximum value. NumberType
    format? Value format StringType
    one of: int32, int64, int, long, int16, int8
    multipleOf? A numeric instance is valid against "multipleOf" if the result of the division of the instance by this keyword's value is an integer. NumberType
    requires type=date-only extends TypeDeclarationGlobally declarates referencable instance of DateOnlyTypeDeclaration

    Description:the "full-date" notation of RFC3339, namely yyyy-mm-dd (no implications about time or timezone-offset)

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    requires type=time-only extends TypeDeclarationGlobally declarates referencable instance of TimeOnlyTypeDeclaration

    Description:the "partial-time" notation of RFC3339, namely hh:mm:ss[.ff...] (no implications about date or timezone-offset)

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    requires type=datetime-only extends TypeDeclarationGlobally declarates referencable instance of DateTimeOnlyTypeDeclaration

    Description:combined date-only and time-only with a separator of "T", namely yyyy-mm-ddThh:mm:ss[.ff...] (no implications about timezone-offset)

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    requires type=datetime extends TypeDeclarationGlobally declarates referencable instance of DateTimeTypeDeclaration

    Description:a timestamp, either in the "date-time" notation of RFC3339, if format is omitted or is set to rfc3339, or in the format defined in RFC2616, if format is set to rfc2616.

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    format? Format used for this date time rfc3339 or rfc2616 StringType
    one of: rfc3339, rfc2616

    ContentType

    requires type=file extends TypeDeclaration

    Description:(Applicable only to Form properties) Value is a file. Client generators SHOULD use this type to handle file uploads correctly.

    Property Description Value type
    annotations? Annotations to be applied to this type. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    displayName? The displayName attribute specifies the type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    schema? Alias for the equivalent "type" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "type" property, as the "schema" alias for that property name may be removed in a future RAML version. The "type" property allows for XML and JSON schemas. Single string denoting the base type or type expression
    type? A base type which the current type extends, or more generally a type expression. string denoting the base type or type expression
    example? An example of this type instance represented as string or yaml map/sequence. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the examples property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    examples? An example of this type instance represented as string. This can be used, e.g., by documentation generators to generate sample values for an object of this type. Cannot be present if the example property is present. * Valid value for this type
    * String representing the serialized version of a valid value
    description? A longer, human-friendly description of the type markdown string
    xml? XMLFacetInfo
    allowedTargets? Restrictions on where annotations of this type can be applied. If this property is specified, annotations of this type may only be applied on a property corresponding to one of the target names specified as the value of this property. An array, or single, of names allowed target nodes.
    isAnnotation? Whether the type represents annotation BooleanType
    fileTypes? A list of valid content-type strings for the file. The file type */* should be a valid value. ContentType[]
    minLength? The minLength attribute specifies the parameter value's minimum number of bytes. NumberType
    maxLength? The maxLength attribute specifies the parameter value's maximum number of bytes. NumberType
    extends Annotable

    Description:Not described yet

    Property Description Value type
    annotations? Annotations to be applied to this response. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    headers? Detailed information about any response headers returned by this method Object whose property names are the response header names and whose values describe the values.
    body? The body of the response: a body declaration Object whose properties are either
    * Media types and whose values are type objects describing the request body for that media type, or
    * a type object describing the request body for the default media type specified in the root mediaType property.
    description? A longer, human-friendly description of the response Markdown string

    TraitRef

    Instantiation of Trait

    SecuritySchemeRef

    Instantiation of AbstractSecurityScheme extends MethodBaseGlobally declarates referencable instance of Trait

    Description:Not described yet

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    queryParameters? An APIs resources MAY be filtered (to return a subset of results) or altered (such as transforming a response body from JSON to XML format) by the use of query strings. If the resource or its method supports a query string, the query string MUST be defined by the queryParameters property TypeDeclaration[]
    headers? Headers that allowed at this position TypeDeclaration[]
    queryString? Specifies the query string needed by this method. Mutually exclusive with queryParameters. TypeDeclaration
    responses? Information about the expected responses to a request An object whose keys are the HTTP status codes of the responses and whose values describe the responses.
    body? Some method verbs expect the resource to be sent as a request body. For example, to create a resource, the request must include the details of the resource to create. Resources CAN have alternate representations. For example, an API might support both JSON and XML representations. A method's body is defined in the body property as a hashmap, in which the key MUST be a valid media type. TypeDeclaration[]
    protocols? A method can override the protocols specified in the resource or at the API root, by employing this property. array of strings of value HTTP or HTTPS, or a single string of such kind, case-insensitive
    is? Instantiation of applyed traits TraitRef[]
    securedBy? securityScheme may also be applied to a resource by using the securedBy key, which is equivalent to applying the securityScheme to all methods that may be declared, explicitly or implicitly, by defining the resourceTypes or traits property for that resource. To indicate that the method may be called without applying any securityScheme, the method may be annotated with the null securityScheme. SecuritySchemeRef[]
    description? MarkdownString
    displayName? The displayName attribute specifies the trait display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    name? (key) Name of the trait StringType
    usage? Instructions on how and when the trait should be used. StringType
    extends MethodBase

    Description:Not described yet

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    queryParameters? An APIs resources MAY be filtered (to return a subset of results) or altered (such as transforming a response body from JSON to XML format) by the use of query strings. If the resource or its method supports a query string, the query string MUST be defined by the queryParameters property TypeDeclaration[]
    headers? Headers that allowed at this position TypeDeclaration[]
    queryString? Specifies the query string needed by this method. Mutually exclusive with queryParameters. TypeDeclaration
    responses? Information about the expected responses to a request An object whose keys are the HTTP status codes of the responses and whose values describe the responses.
    body? Some method verbs expect the resource to be sent as a request body. For example, to create a resource, the request must include the details of the resource to create. Resources CAN have alternate representations. For example, an API might support both JSON and XML representations. A method's body is defined in the body property as a hashmap, in which the key MUST be a valid media type. TypeDeclaration[]
    protocols? A method can override the protocols specified in the resource or at the API root, by employing this property. array of strings of value HTTP or HTTPS, or a single string of such kind, case-insensitive
    is? Instantiation of applyed traits TraitRef[]
    securedBy? securityScheme may also be applied to a resource by using the securedBy key, which is equivalent to applying the securityScheme to all methods that may be declared, explicitly or implicitly, by defining the resourceTypes or traits property for that resource. To indicate that the method may be called without applying any securityScheme, the method may be annotated with the null securityScheme. SecuritySchemeRef[]
    description? MarkdownString
    displayName? The displayName attribute specifies the method display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType

    ResourceTypeRef

    Instantiation of ResourceType extends ResourceBaseGlobally declarates referencable instance of ResourceType

    Description:Not described yet

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    methods? The methods available on this resource. Object describing the method
    is? A list of the traits to apply to all methods declared (implicitly or explicitly) for this resource. Individual methods may override this declaration array, which can contain each of the following elements:
    * name of unparametrized trait
    * a key-value pair with trait name as key and a map of trait parameters as value
    * inline trait declaration

    (or a single element of any above kind)
    type? The resource type which this resource inherits. one of the following elements:
    * name of unparametrized resource type
    * a key-value pair with resource type name as key and a map of its parameters as value
    * inline resource type declaration
    description? MarkdownString
    securedBy? The security schemes that apply to all methods declared (implicitly or explicitly) for this resource. array of security scheme names or a single security scheme name
    uriParameters? Detailed information about any URI parameters of this resource object whose property names are the URI parameter names and whose values describe the values
    displayName? The displayName attribute specifies the resource type display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    name? (key) Name of the resource type StringType
    usage? Instructions on how and when the resource type should be used. StringType
    extends Operation

    Description:Not described yet

    Property Description Value type
    annotations? Annotations to be applied to this security scheme part. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    queryParameters? An APIs resources MAY be filtered (to return a subset of results) or altered (such as transforming a response body from JSON to XML format) by the use of query strings. If the resource or its method supports a query string, the query string MUST be defined by the queryParameters property TypeDeclaration[]
    headers? Headers that allowed at this position TypeDeclaration[]
    queryString? Specifies the query string needed by this method. Mutually exclusive with queryParameters. TypeDeclaration
    responses? Information about the expected responses to a request An object whose keys are the HTTP status codes of the responses and whose values describe the responses.
    extends Annotable

    This node allows any children

    Description:Not described yet

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.

    FixedUriString

    This type describes fixed uris

    extends SecuritySchemeSettings

    This node allows any children

    Description:Not described yet

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    requestTokenUri The URI of the Temporary Credential Request endpoint as defined in RFC5849 Section 2.1 FixedUriString
    authorizationUri The URI of the Resource Owner Authorization endpoint as defined in RFC5849 Section 2.2 FixedUriString
    tokenCredentialsUri The URI of the Token Request endpoint as defined in RFC5849 Section 2.3 FixedUriString
    extends SecuritySchemeSettings

    This node allows any children

    Description:Not described yet

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    accessTokenUri The URI of the Token Endpoint as defined in RFC6749 Section 3.2. Not required forby implicit grant type. FixedUriString
    authorizationUri? The URI of the Authorization Endpoint as defined in RFC6749 Section 3.1. Required forby authorization_code and implicit grant types. FixedUriString
    authorizationGrants A list of the Authorization grants supported by the API as defined in RFC6749 Sections 4.1, 4.2, 4.3 and 4.4, can be any of:
    * authorization_code
    * password
    * client_credentials
    * implicit
    * or any absolute url.
    StringType[]
    scopes? A list of scopes supported by the security scheme as defined in RFC6749 Section 3.3 StringType[]
    extends AnnotableGlobally declarates referencable instance of AbstractSecurityScheme

    Description:Declares globally referable security scheme definition

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    type The securitySchemes property MUST be used to specify an API's security mechanisms, including the required settings and the authentication methods that the API supports. one authentication method is allowed if the API supports them. string

    The value MUST be one of
    * OAuth 1.0,
    * OAuth 2.0,
    * BasicSecurityScheme Authentication
    * DigestSecurityScheme Authentication
    * Pass Through
    * x-<other>
    description? The description MAY be used to describe a securityScheme. MarkdownString
    describedBy? A description of the request components related to Security that are determined by the scheme: the headers, query parameters or responses. As a best practice, even for standard security schemes, API designers SHOULD describe these properties of security schemes. Including the security scheme description completes an API documentation. SecuritySchemePart
    displayName? The displayName attribute specifies the security scheme display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    settings? The settings attribute MAY be used to provide security scheme-specific information. The required attributes vary depending on the type of security scheme is being declared. It describes the minimum set of properties which any processing application MUST provide and validate if it chooses to implement the security scheme. Processing applications MAY choose to recognize other properties for things such as token lifetime, preferred cryptographic algorithms, and more. SecuritySchemeSettings
    requires type=OAuth 2.0 extends AbstractSecuritySchemeGlobally declarates referencable instance of OAuth2SecurityScheme

    Description:Declares globally referable security scheme definition

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    type The securitySchemes property MUST be used to specify an API's security mechanisms, including the required settings and the authentication methods that the API supports. one authentication method is allowed if the API supports them. string

    The value MUST be one of
    * OAuth 1.0,
    * OAuth 2.0,
    * BasicSecurityScheme Authentication
    * DigestSecurityScheme Authentication
    * Pass Through
    * x-<other>
    description? The description MAY be used to describe a securityScheme. MarkdownString
    describedBy? A description of the request components related to Security that are determined by the scheme: the headers, query parameters or responses. As a best practice, even for standard security schemes, API designers SHOULD describe these properties of security schemes. Including the security scheme description completes an API documentation. SecuritySchemePart
    displayName? The displayName attribute specifies the security scheme display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    settings? OAuth2SecuritySchemeSettings
    requires type=OAuth 1.0 extends AbstractSecuritySchemeGlobally declarates referencable instance of OAuth1SecurityScheme

    Description:Declares globally referable security scheme definition

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    type The securitySchemes property MUST be used to specify an API's security mechanisms, including the required settings and the authentication methods that the API supports. one authentication method is allowed if the API supports them. string

    The value MUST be one of
    * OAuth 1.0,
    * OAuth 2.0,
    * BasicSecurityScheme Authentication
    * DigestSecurityScheme Authentication
    * Pass Through
    * x-<other>
    description? The description MAY be used to describe a securityScheme. MarkdownString
    describedBy? A description of the request components related to Security that are determined by the scheme: the headers, query parameters or responses. As a best practice, even for standard security schemes, API designers SHOULD describe these properties of security schemes. Including the security scheme description completes an API documentation. SecuritySchemePart
    displayName? The displayName attribute specifies the security scheme display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    settings? OAuth1SecuritySchemeSettings
    requires type=Pass Through extends AbstractSecuritySchemeGlobally declarates referencable instance of PassThroughSecurityScheme

    Description:Declares globally referable security scheme definition

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    type The securitySchemes property MUST be used to specify an API's security mechanisms, including the required settings and the authentication methods that the API supports. one authentication method is allowed if the API supports them. string

    The value MUST be one of
    * OAuth 1.0,
    * OAuth 2.0,
    * BasicSecurityScheme Authentication
    * DigestSecurityScheme Authentication
    * Pass Through
    * x-<other>
    description? The description MAY be used to describe a securityScheme. MarkdownString
    describedBy? A description of the request components related to Security that are determined by the scheme: the headers, query parameters or responses. As a best practice, even for standard security schemes, API designers SHOULD describe these properties of security schemes. Including the security scheme description completes an API documentation. SecuritySchemePart
    displayName? The displayName attribute specifies the security scheme display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    settings? SecuritySchemeSettings
    requires type=Basic Authentication extends AbstractSecuritySchemeGlobally declarates referencable instance of BasicSecurityScheme

    Description:Declares globally referable security scheme definition

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    type The securitySchemes property MUST be used to specify an API's security mechanisms, including the required settings and the authentication methods that the API supports. one authentication method is allowed if the API supports them. string

    The value MUST be one of
    * OAuth 1.0,
    * OAuth 2.0,
    * BasicSecurityScheme Authentication
    * DigestSecurityScheme Authentication
    * Pass Through
    * x-<other>
    description? The description MAY be used to describe a securityScheme. MarkdownString
    describedBy? A description of the request components related to Security that are determined by the scheme: the headers, query parameters or responses. As a best practice, even for standard security schemes, API designers SHOULD describe these properties of security schemes. Including the security scheme description completes an API documentation. SecuritySchemePart
    displayName? The displayName attribute specifies the security scheme display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    settings? The settings attribute MAY be used to provide security scheme-specific information. The required attributes vary depending on the type of security scheme is being declared. It describes the minimum set of properties which any processing application MUST provide and validate if it chooses to implement the security scheme. Processing applications MAY choose to recognize other properties for things such as token lifetime, preferred cryptographic algorithms, and more. SecuritySchemeSettings
    requires type=Digest Authentication extends AbstractSecuritySchemeGlobally declarates referencable instance of DigestSecurityScheme

    Description:Declares globally referable security scheme definition

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    type The securitySchemes property MUST be used to specify an API's security mechanisms, including the required settings and the authentication methods that the API supports. one authentication method is allowed if the API supports them. string

    The value MUST be one of
    * OAuth 1.0,
    * OAuth 2.0,
    * BasicSecurityScheme Authentication
    * DigestSecurityScheme Authentication
    * Pass Through
    * x-<other>
    description? The description MAY be used to describe a securityScheme. MarkdownString
    describedBy? A description of the request components related to Security that are determined by the scheme: the headers, query parameters or responses. As a best practice, even for standard security schemes, API designers SHOULD describe these properties of security schemes. Including the security scheme description completes an API documentation. SecuritySchemePart
    displayName? The displayName attribute specifies the security scheme display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    settings? The settings attribute MAY be used to provide security scheme-specific information. The required attributes vary depending on the type of security scheme is being declared. It describes the minimum set of properties which any processing application MUST provide and validate if it chooses to implement the security scheme. Processing applications MAY choose to recognize other properties for things such as token lifetime, preferred cryptographic algorithms, and more. SecuritySchemeSettings
    requires type=x-{other} extends AbstractSecuritySchemeGlobally declarates referencable instance of CustomSecurityScheme

    Description:Declares globally referable security scheme definition

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    type The securitySchemes property MUST be used to specify an API's security mechanisms, including the required settings and the authentication methods that the API supports. one authentication method is allowed if the API supports them. string

    The value MUST be one of
    * OAuth 1.0,
    * OAuth 2.0,
    * BasicSecurityScheme Authentication
    * DigestSecurityScheme Authentication
    * Pass Through
    * x-<other>
    description? The description MAY be used to describe a securityScheme. MarkdownString
    describedBy? A description of the request components related to Security that are determined by the scheme: the headers, query parameters or responses. As a best practice, even for standard security schemes, API designers SHOULD describe these properties of security schemes. Including the security scheme description completes an API documentation. SecuritySchemePart
    displayName? The displayName attribute specifies the security scheme display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    settings? The settings attribute MAY be used to provide security scheme-specific information. The required attributes vary depending on the type of security scheme is being declared. It describes the minimum set of properties which any processing application MUST provide and validate if it chooses to implement the security scheme. Processing applications MAY choose to recognize other properties for things such as token lifetime, preferred cryptographic algorithms, and more. SecuritySchemeSettings

    FullUriTemplateString

    This type describes absolute uri templates

    MimeType

    This sub type of the string represents mime types

    extends ResourceBase

    Description:Not described yet

    Property Description Value type
    annotations? Annotations to be applied to this resource. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    methods? The methods available on this resource. Object describing the method
    is? A list of the traits to apply to all methods declared (implicitly or explicitly) for this resource. Individual methods may override this declaration array, which can contain each of the following elements:
    * name of unparametrized trait
    * a key-value pair with trait name as key and a map of trait parameters as value
    * inline trait declaration

    (or a single element of any above kind)
    type? The resource type which this resource inherits. one of the following elements:
    * name of unparametrized resource type
    * a key-value pair with resource type name as key and a map of its parameters as value
    * inline resource type declaration
    description? A longer, human-friendly description of the resource. Markdown string
    securedBy? The security schemes that apply to all methods declared (implicitly or explicitly) for this resource. array of security scheme names or a single security scheme name
    uriParameters? Detailed information about any URI parameters of this resource object whose property names are the URI parameter names and whose values describe the values
    displayName? The displayName attribute specifies the resource display name. It is a friendly name used only for display or documentation purposes. If displayName is not specified, it defaults to the element's key (the name of the property itself). StringType
    resources? A nested resource is identified as any property whose name begins with a slash ("/") and is therefore treated as a relative URI. object describing the nested resource
    extends Annotable

    Description:Not described yet

    Property Description Value type
    annotations? Most of RAML model elements may have attached annotations decribing additional meta data about this element A value corresponding to the declared type of this annotation.
    title Title of documentation section StringType
    content Content of documentation section MarkdownString
    extends LibraryBase

    Description:Not described yet

    Property Description Value type
    annotations? Annotations to be applied to this API. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    uses? UsesDeclaration[]
    schemas? Alias for the equivalent "types" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "types" property, as the "schemas" alias for that property name may be removed in a future RAML version. The "types" property allows for XML and JSON schemas. TypeDeclaration[]
    types? Declarations of (data) types for use within this API. An object whose properties map type names to type declarations; or an array of such objects
    traits? Declarations of traits for use within this API. An object whose properties map trait names to trait declarations; or an array of such objects
    resourceTypes? Declarations of resource types for use within this API. An object whose properties map resource type names to resource type declarations; or an array of such objects
    annotationTypes? Declarations of annotation types for use by annotations. An object whose properties map annotation type names to annotation type declarations; or an array of such objects
    securitySchemes? Declarations of security schemes for use within this API. An object whose properties map security scheme names to security scheme declarations; or an array of such objects
    title Short plain-text label for the API StringType
    description? A longer, human-friendly description of the API MarkdownString
    version? The version of the API, e.g. 'v1' StringType
    baseUri? A URI that's to be used as the base of all the resources' URIs. Often used as the base of the URL of each resource, containing the location of the API. Can be a template URI. FullUriTemplateString
    baseUriParameters? Named parameters used in the baseUri (template) TypeDeclaration[]
    protocols? The protocols supported by the API Array of strings, with each being "HTTP" or "HTTPS", case-insensitive
    mediaType? The default media type to use for request and response bodies (payloads), e.g. "application/json" Media type string
    securedBy? The security schemes that apply to every resource and method in the API SecuritySchemeRef[]
    resources? The resources of the API, identified as relative URIs that begin with a slash (/). Every property whose key begins with a slash (/), and is either at the root of the API definition or is the child property of a resource property, is a resource property, e.g.: /users, /{groupId}, etc Resource[]
    documentation? Additional overall documentation for the API DocumentationItem[]
    extends Api

    Description:Not described yet

    Property Description Value type
    annotations? Annotations to be applied to this API. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    uses? UsesDeclaration[]
    schemas? Alias for the equivalent "types" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "types" property, as the "schemas" alias for that property name may be removed in a future RAML version. The "types" property allows for XML and JSON schemas. TypeDeclaration[]
    types? Declarations of (data) types for use within this API. An object whose properties map type names to type declarations; or an array of such objects
    traits? Declarations of traits for use within this API. An object whose properties map trait names to trait declarations; or an array of such objects
    resourceTypes? Declarations of resource types for use within this API. An object whose properties map resource type names to resource type declarations; or an array of such objects
    annotationTypes? Declarations of annotation types for use by annotations. An object whose properties map annotation type names to annotation type declarations; or an array of such objects
    securitySchemes? Declarations of security schemes for use within this API. An object whose properties map security scheme names to security scheme declarations; or an array of such objects
    title? Short plain-text label for the API StringType
    description? A longer, human-friendly description of the API MarkdownString
    version? The version of the API, e.g. 'v1' StringType
    baseUri? A URI that's to be used as the base of all the resources' URIs. Often used as the base of the URL of each resource, containing the location of the API. Can be a template URI. FullUriTemplateString
    baseUriParameters? Named parameters used in the baseUri (template) TypeDeclaration[]
    protocols? The protocols supported by the API Array of strings, with each being "HTTP" or "HTTPS", case-insensitive
    mediaType? The default media type to use for request and response bodies (payloads), e.g. "application/json" Media type string
    securedBy? The security schemes that apply to every resource and method in the API SecuritySchemeRef[]
    resources? The resources of the API, identified as relative URIs that begin with a slash (/). Every property whose key begins with a slash (/), and is either at the root of the API definition or is the child property of a resource property, is a resource property, e.g.: /users, /{groupId}, etc Resource[]
    documentation? Additional overall documentation for the API DocumentationItem[]
    usage? contains description of why overlay exist StringType
    extends Location of a valid RAML API definition (or overlay or extension), the overlay is applied to. StringType
    extends Api

    Description:Not described yet

    Property Description Value type
    annotations? Annotations to be applied to this API. Annotations are any property whose key begins with "(" and ends with ")" and whose name (the part between the beginning and ending parentheses) is a declared annotation name. A value corresponding to the declared type of this annotation.
    uses? UsesDeclaration[]
    schemas? Alias for the equivalent "types" property, for compatibility with RAML 0.8. Deprecated - API definitions should use the "types" property, as the "schemas" alias for that property name may be removed in a future RAML version. The "types" property allows for XML and JSON schemas. TypeDeclaration[]
    types? Declarations of (data) types for use within this API. An object whose properties map type names to type declarations; or an array of such objects
    traits? Declarations of traits for use within this API. An object whose properties map trait names to trait declarations; or an array of such objects
    resourceTypes? Declarations of resource types for use within this API. An object whose properties map resource type names to resource type declarations; or an array of such objects
    annotationTypes? Declarations of annotation types for use by annotations. An object whose properties map annotation type names to annotation type declarations; or an array of such objects
    securitySchemes? Declarations of security schemes for use within this API. An object whose properties map security scheme names to security scheme declarations; or an array of such objects
    title? Short plain-text label for the API StringType
    description? A longer, human-friendly description of the API MarkdownString
    version? The version of the API, e.g. 'v1' StringType
    baseUri? A URI that's to be used as the base of all the resources' URIs. Often used as the base of the URL of each resource, containing the location of the API. Can be a template URI. FullUriTemplateString
    baseUriParameters? Named parameters used in the baseUri (template) TypeDeclaration[]
    protocols? The protocols supported by the API Array of strings, with each being "HTTP" or "HTTPS", case-insensitive
    mediaType? The default media type to use for request and response bodies (payloads), e.g. "application/json" Media type string
    securedBy? The security schemes that apply to every resource and method in the API SecuritySchemeRef[]
    resources? The resources of the API, identified as relative URIs that begin with a slash (/). Every property whose key begins with a slash (/), and is either at the root of the API definition or is the child property of a resource property, is a resource property, e.g.: /users, /{groupId}, etc Resource[]
    documentation? Additional overall documentation for the API DocumentationItem[]
    usage? contains description of why extension exist StringType
    extends Location of a valid RAML API definition (or overlay or extension), the extension is applied to StringType