// automatically generated by Xtext and the refined grammar org.xtext.Composegrammars.YML with org.eclipse.xtext.common.Terminals import "http://www.example.org/gcompose" import "http://www.eclipse.org/emf/2002/Ecore" as ecore Compose returns Compose: {Compose} 'Compose' name=EString '{' ('version' version=EString)? ('description' description=EString)? ('services' '{' services+=Service ( "," services+=Service)* '}' )? ('volumes' '{' volumes+=Volume ( "," volumes+=Volume)* '}' )? ('networks' '{' networks+=Network ( "," networks+=Network)* '}' )? '}'; EString returns ecore::EString: STRING | ID; Service returns Service: 'Service' name=EString '{' 'deploy' deploy=[Container|EString] 'image' image=[Image|EString] ('ports' '{' ports+=Port ( "," ports+=Port)* '}' )? ('properties' '{' properties+=Property ( "," properties+=Property)* '}' )? ('volumes' '{' volumes+=Volume ( "," volumes+=Volume)* '}' )? ('networks' '{' networks+=Network ( "," networks+=Network)* '}' )? '}'; Volume returns Volume: {Volume} 'Volume' name=EString '{' ('path' path=EString)? '}'; Network returns Network: {Network} 'Network' name=EString; Port returns Port: {Port} 'Port' '{' ('port' port=EString)? ('value' value=EString)? '}'; Property returns Property: {Property} 'Property' '{' ('name' name=Propertyname)? ('value' value=EString)? '}'; Container returns Container: 'Container' name=EString '{' ('replicas' replicas=EInt)? 'update_config' update_config=[Updateconfig|EString] 'restart_policy' restart_policy=[Restartpolicy|EString] ('resources' '{' resources+=Resource ( "," resources+=Resource)* '}' )? '}'; Image returns Image: {Image} 'Image' name=EString '{' ('version' version=EString)? ('registry' registry=[Registry|EString])? '}'; enum Propertyname returns Propertyname: LITERAL1 = 'LITERAL1'; EInt returns ecore::EInt: '-'? INT; Resource returns Resource: {Resource} 'Resource' '{' ('limits' '{' limits+=Limit ( "," limits+=Limit)* '}' )? ('reservations' '{' reservations+=Reservation ( "," reservations+=Reservation)* '}' )? '}'; Updateconfig returns Updateconfig: {Updateconfig} 'Updateconfig' '{' ('parallelism' parallelism=EInt)? ('delay' delay=EString)? '}'; Restartpolicy returns Restartpolicy: {Restartpolicy} 'Restartpolicy' '{' ('condition' condition=EString)? ('delay' delay=EString)? ('max_attempts' max_attempts=EInt)? ('window' window=EString)? '}'; Limit returns Limit: {Limit} 'Limit' '{' ('cpus' cpus=EString)? ('memory' memory=EString)? '}'; Reservation returns Reservation: {Reservation} 'Reservation' '{' ('cpus' cpus=EString)? ('memory' memory=EString)? '}'; Registry returns Registry: {Registry} 'Registry' name=EString '{' ('url' url=EString)? '}';