<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmlns:uml="http://www.omg.org/spec/UML/20161101"
         xmlns:xmi="http://www.omg.org/spec/XMI/20161101">
   <uml:Model xmi:type="uml:Model" xmi:id="_api" name="SystemsModelingAPI"
              URI="https://www.omg.org/spec/SystemsModelingAPI/20230201">
      <packagedElement xmi:type="uml:Package" xmi:id="API_Model" name="API_Model">
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.0"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-Commit-change"/>
            <memberEnd xmi:idref="API_Model-DataVersion-commit"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-Commit" name="Commit">
            <ownedComment xmi:type="uml:Comment" xmi:id="API_Model-Commit-_ownedComment.0"
                          body="A record of changes made to ElementRecord's within a particular Branch of a Resource&#xA;">
               <annotatedElement xmi:idref="API_Model-Commit"/>
            </ownedComment>
            <generalization xmi:type="uml:Generalization" xmi:id="API_Model-Commit-_generalization.0"
                            general="API_Model-Record"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Commit-change" name="change"
                            visibility="public"
                            type="API_Model-DataVersion"
                            association="API_Model-_packagedElement.0">
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Commit-change-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Commit-created" name="created"
                            visibility="public"
                            type="API_Model-ISO8601DateTime"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Commit-previousCommits"
                            name="previousCommits"
                            visibility="public"
                            type="API_Model-Commit"
                            association="API_Model-_packagedElement.5">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-Commit-previousCommits-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Commit-previousCommits-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Commit-owningProject"
                            name="owningProject"
                            visibility="public"
                            type="API_Model-Project"
                            association="API_Model-_packagedElement.11"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Commit-versionedData"
                            name="versionedData"
                            visibility="public"
                            isDerived="true"
                            type="API_Model-DataVersion"
                            association="API_Model-_packagedElement.36">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-Commit-versionedData-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Commit-versionedData-_upperValue"
                           value="*"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.2"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-DataIdentity-version"/>
            <memberEnd xmi:idref="API_Model-DataVersion-identity"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-DataVersion" name="DataVersion">
            <generalization xmi:type="uml:Generalization" xmi:id="API_Model-DataVersion-_generalization.0"
                            general="API_Model-Record"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-DataVersion-commit" name="commit"
                            visibility="public"
                            type="API_Model-Commit"
                            association="API_Model-_packagedElement.0"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-DataVersion-identity" name="identity"
                            visibility="public"
                            type="API_Model-DataIdentity"
                            association="API_Model-_packagedElement.2"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-DataVersion-payload" name="payload"
                            visibility="public"
                            aggregation="composite"
                            type="API_Model-Data"
                            association="API_Model-_packagedElement.9"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-DataVersion-project" name="project"
                            visibility="public"
                            isDerived="true"
                            type="API_Model-Project"
                            association="API_Model-_packagedElement.7"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-Project" name="Project">
            <ownedComment xmi:type="uml:Comment" xmi:id="API_Model-Project-_ownedComment.0"
                          body="A ServerRecord object representing a single project within a Workspace. Can contain, Branch's, Revision's, and Tag's ">
               <annotatedElement xmi:idref="API_Model-Project"/>
            </ownedComment>
            <generalization xmi:type="uml:Generalization" xmi:id="API_Model-Project-_generalization.0"
                            general="API_Model-Record"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Project-commits" name="commits"
                            visibility="public"
                            aggregation="composite"
                            type="API_Model-Commit"
                            association="API_Model-_packagedElement.11">
               <lowerValue xmi:type="uml:LiteralInteger" xmi:id="API_Model-Project-commits-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Project-commits-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Project-queries" name="queries"
                            visibility="public"
                            type="API_Model-Query"
                            association="API_Model-_packagedElement.25">
               <lowerValue xmi:type="uml:LiteralInteger" xmi:id="API_Model-Project-queries-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Project-queries-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Project-branches" name="branches"
                            visibility="public"
                            aggregation="composite"
                            type="API_Model-Branch"
                            association="API_Model-_packagedElement.27">
               <subsettedProperty xmi:idref="API_Model-Project-commitReferences"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Project-branches-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Project-defaultBranch"
                            name="defaultBranch"
                            visibility="public"
                            aggregation="composite"
                            type="API_Model-Branch"
                            association="API_Model-_packagedElement.26">
               <subsettedProperty xmi:idref="API_Model-Project-branches"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Project-commitReferences"
                            name="commitReferences"
                            visibility="public"
                            aggregation="composite"
                            type="API_Model-CommitReference"
                            association="API_Model-_packagedElement.32">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-Project-commitReferences-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Project-commitReferences-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Project-tags" name="tags"
                            visibility="public"
                            aggregation="composite"
                            type="API_Model-Tag"
                            association="API_Model-_packagedElement.40">
               <subsettedProperty xmi:idref="API_Model-Project-commitReferences"/>
               <lowerValue xmi:type="uml:LiteralInteger" xmi:id="API_Model-Project-tags-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Project-tags-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Project-name" name="name"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.5"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.5-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-Commit-previousCommits"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.5-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-Commit"
                      association="API_Model-_packagedElement.5">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-_packagedElement.5-_ownedEnd.0-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-_packagedElement.5-_ownedEnd.0-_upperValue"
                           value="*"/>
            </ownedEnd>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-DataIdentity" name="DataIdentity">
            <ownedComment xmi:type="uml:Comment" xmi:id="API_Model-DataIdentity-_ownedComment.0"
                          body="An object representing the entire timeline for a modeled thing. This functions similarly to &#34;Configuration Item&#34; in PLM.">
               <annotatedElement xmi:idref="API_Model-DataIdentity"/>
            </ownedComment>
            <generalization xmi:type="uml:Generalization" xmi:id="API_Model-DataIdentity-_generalization.0"
                            general="API_Model-Record"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-DataIdentity-version" name="version"
                            visibility="public"
                            type="API_Model-DataVersion"
                            association="API_Model-_packagedElement.2">
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-DataIdentity-version-_upperValue"
                           value="*"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.7"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.7-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-DataVersion-project"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.7-_ownedEnd.0"
                      visibility="private"
                      type="API_Model-DataVersion"
                      association="API_Model-_packagedElement.7">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-_packagedElement.7-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-Record" name="Record" isAbstract="true">
            <ownedComment xmi:type="uml:Comment" xmi:id="API_Model-Record-_ownedComment.0"
                          body="The most common form of data in the Semantic Web">
               <annotatedElement xmi:idref="API_Model-Record"/>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Record-id" name="id"
                            visibility="public"
                            isReadOnly="true"
                            type="API_Model-UUID">
               <ownedComment xmi:type="uml:Comment" xmi:id="API_Model-Record-id-_ownedComment.0"
                             body="Every Record shall have a calculated globally unique identifier. This identifier shall conform to RFC 4122.">
                  <annotatedElement xmi:idref="API_Model-Record-id"/>
               </ownedComment>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Record-resourceIdentifier"
                            name="resourceIdentifier"
                            visibility="public"
                            type="API_Model-IRI">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="API_Model-Record-resourceIdentifier-_ownedComment.0"
                             body="The context specific URI from which the data represented in LinkedDataRecord's can be retrieved">
                  <annotatedElement xmi:idref="API_Model-Record-resourceIdentifier"/>
               </ownedComment>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-Record-resourceIdentifier-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Record-alias" name="alias"
                            visibility="public"
                            isReadOnly="true">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <ownedComment xmi:type="uml:Comment" xmi:id="API_Model-Record-alias-_ownedComment.0"
                             body="Set of ID's that are assigned using legacy or tool specific implementations that don't conform to Kernel Object Lifecycle (KOL) or RFC 4122. For example git's SHA1 hashing id mechanism or historical SysML 1.X ID's">
                  <annotatedElement xmi:idref="API_Model-Record-alias"/>
               </ownedComment>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Record-alias-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Record-humanIdentifier"
                            name="humanIdentifier"
                            visibility="public"
                            isReadOnly="true">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <subsettedProperty xmi:idref="API_Model-Record-alias"/>
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="API_Model-Record-humanIdentifier-_ownedComment.0"
                             body="Uniqueness constraints?">
                  <annotatedElement xmi:idref="API_Model-Record-humanIdentifier"/>
               </ownedComment>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Record-description"
                            name="description"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.9"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.9-version"/>
            <memberEnd xmi:idref="API_Model-DataVersion-payload"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.9-version"
                      name="version"
                      visibility="public"
                      type="API_Model-DataVersion"
                      association="API_Model-_packagedElement.9"/>
         </packagedElement>
         <packagedElement xmi:type="uml:DataType" xmi:id="API_Model-ISO8601DateTime"
                          name="ISO8601DateTime">
            <ownedComment xmi:type="uml:Comment" xmi:id="API_Model-ISO8601DateTime-_ownedComment.0"
                          body="ISO 8601 representation of Date and Time. See https://en.wikipedia.org/wiki/ISO_8601.&#xA;&#xA;Further, time should be allowed to be represented in milliseconds.">
               <annotatedElement xmi:idref="API_Model-ISO8601DateTime"/>
            </ownedComment>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.11"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-Project-commits"/>
            <memberEnd xmi:idref="API_Model-Commit-owningProject"/>
         </packagedElement>
         <packagedElement xmi:type="uml:DataType" xmi:id="API_Model-IRI" name="IRI"/>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-ExternalRelationship"
                          name="ExternalRelationship">
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-ExternalRelationship-specification"
                            name="specification"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-ExternalRelationship-specification-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-ExternalRelationship-elementEnd"
                            name="elementEnd"
                            visibility="public"
                            association="API_Model-_packagedElement.45">
               <type href="https://www.omg.org/spec/KerML/20230201/KerML.xmi#Root-Elements-Element"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
                            xmi:id="API_Model-ExternalRelationship-_20externalDataEnd"
                            name=" externalDataEnd"
                            visibility="public"
                            type="API_Model-ExternalData"
                            association="API_Model-_packagedElement.46"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-ExternalRelationship-language"
                            name="language"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-ExternalRelationship-language-_lowerValue"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-ExternalData" name="ExternalData">
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-ExternalData-resourceIdentifier"
                            name="resourceIdentifier"
                            visibility="public"
                            type="API_Model-IRI"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-Query" name="Query">
            <generalization xmi:type="uml:Generalization" xmi:id="API_Model-Query-_generalization.0"
                            general="API_Model-Record"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Query-name" name="name"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Query-select" name="select"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger" xmi:id="API_Model-Query-select-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Query-select-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Query-scope" name="scope"
                            visibility="public"
                            type="API_Model-Data">
               <lowerValue xmi:type="uml:LiteralInteger" xmi:id="API_Model-Query-scope-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Query-scope-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Query-where" name="where"
                            visibility="public"
                            type="API_Model-Constraint"
                            association="API_Model-_packagedElement.21"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Query-orderBy" name="orderBy"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger" xmi:id="API_Model-Query-orderBy-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-Query-orderBy-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Query-project" name="project"
                            visibility="public"
                            type="API_Model-Project"
                            association="API_Model-_packagedElement.25"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-PrimitiveConstraint"
                          name="PrimitiveConstraint">
            <generalization xmi:type="uml:Generalization"
                            xmi:id="API_Model-PrimitiveConstraint-_generalization.0"
                            general="API_Model-Constraint"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-PrimitiveConstraint-inverse"
                            name="inverse"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-PrimitiveConstraint-property"
                            name="property"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-PrimitiveConstraint-operator"
                            name="operator"
                            visibility="public"
                            type="API_Model-Operator"
                            association="API_Model-_packagedElement.24"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-PrimitiveConstraint-value"
                            name="value"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-PrimitiveConstraint-value-_upperValue"
                           value="*"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-CompositeConstraint"
                          name="CompositeConstraint">
            <generalization xmi:type="uml:Generalization"
                            xmi:id="API_Model-CompositeConstraint-_generalization.0"
                            general="API_Model-Constraint"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-CompositeConstraint-constraint"
                            name="constraint"
                            visibility="public"
                            aggregation="composite"
                            type="API_Model-Constraint"
                            association="API_Model-_packagedElement.19">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-CompositeConstraint-constraint-_lowerValue"
                           value="2"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-CompositeConstraint-constraint-_upperValue"
                           value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-CompositeConstraint-operator"
                            name="operator"
                            visibility="public"
                            type="API_Model-JoinOperator"
                            association="API_Model-_packagedElement.23"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-Constraint" name="Constraint"
                          isAbstract="true"/>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.19"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.19-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-CompositeConstraint-constraint"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.19-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-CompositeConstraint"
                      association="API_Model-_packagedElement.19"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Enumeration" xmi:id="API_Model-JoinOperator" name="JoinOperator">
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="API_Model-JoinOperator-and"
                          name="and"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="API_Model-JoinOperator-or" name="or"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.21"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.21-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-Query-where"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.21-_ownedEnd.0"
                      visibility="private"
                      type="API_Model-Query"
                      association="API_Model-_packagedElement.21"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Enumeration" xmi:id="API_Model-Operator" name="Operator">
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="API_Model-Operator-instanceOf"
                          name="instanceOf"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="API_Model-Operator-_" name="="/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
                          xmi:id="API_Model-Operator-_3CEnumerationLiteral_SystemsModelingAPI__API_Model__Operator___"
                          name="&lt;"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
                          xmi:id="API_Model-Operator-_3CEnumerationLiteral_SystemsModelingAPI__API_Model__Operator____"
                          name="&lt;="/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
                          xmi:id="API_Model-Operator-_3EEnumerationLiteral_SystemsModelingAPI__API_Model__Operator___"
                          name="&gt;"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
                          xmi:id="API_Model-Operator-_3EEnumerationLiteral_SystemsModelingAPI__API_Model__Operator____"
                          name="&gt;="/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="API_Model-Operator-in" name="in"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.23"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.23-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-CompositeConstraint-operator"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.23-_ownedEnd.0"
                      visibility="private"
                      type="API_Model-CompositeConstraint"
                      association="API_Model-_packagedElement.23"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.24"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.24-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-PrimitiveConstraint-operator"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.24-_ownedEnd.0"
                      visibility="private"
                      type="API_Model-PrimitiveConstraint"
                      association="API_Model-_packagedElement.24"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.25"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-Project-queries"/>
            <memberEnd xmi:idref="API_Model-Query-project"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.26"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.26-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-Project-defaultBranch"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.26-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-Project"
                      association="API_Model-_packagedElement.26"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.27"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-Project-branches"/>
            <memberEnd xmi:idref="API_Model-Branch-owningProject"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.28"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.28-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-Branch-head"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.28-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-Branch"
                      association="API_Model-_packagedElement.28"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-Branch" name="Branch">
            <generalization xmi:type="uml:Generalization" xmi:id="API_Model-Branch-_generalization.0"
                            general="API_Model-CommitReference"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Branch-owningProject"
                            name="owningProject"
                            visibility="public"
                            type="API_Model-Project"
                            association="API_Model-_packagedElement.27">
               <redefinedProperty xmi:idref="API_Model-CommitReference-owningProject"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Branch-head" name="head"
                            visibility="public"
                            type="API_Model-Commit"
                            association="API_Model-_packagedElement.28">
               <redefinedProperty xmi:idref="API_Model-CommitReference-referencedCommit"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-Tag" name="Tag">
            <generalization xmi:type="uml:Generalization" xmi:id="API_Model-Tag-_generalization.0"
                            general="API_Model-CommitReference"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Tag-taggedCommit" name="taggedCommit"
                            visibility="public"
                            type="API_Model-Commit"
                            association="API_Model-_packagedElement.35">
               <redefinedProperty xmi:idref="API_Model-CommitReference-referencedCommit"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-Tag-owningProject"
                            name="owningProject"
                            visibility="public"
                            type="API_Model-Project"
                            association="API_Model-_packagedElement.40">
               <redefinedProperty xmi:idref="API_Model-CommitReference-owningProject"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Realization" xmi:id="API_Model-_packagedElement.31">
            <client href="https://www.omg.org/spec/KerML/20230201/KerML.xmi#Root-Elements-Element"/>
            <supplier xmi:idref="API_Model-Data"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.32"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-Project-commitReferences"/>
            <memberEnd xmi:idref="API_Model-CommitReference-owningProject"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Realization" xmi:id="API_Model-_packagedElement.33">
            <client xmi:idref="API_Model-ProjectUsage"/>
            <supplier xmi:idref="API_Model-Data"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Realization" xmi:id="API_Model-_packagedElement.34">
            <client xmi:idref="API_Model-ExternalRelationship"/>
            <supplier xmi:idref="API_Model-Data"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.35"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.35-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-Tag-taggedCommit"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.35-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-Tag"
                      association="API_Model-_packagedElement.35"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.36"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.36-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-Commit-versionedData"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.36-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-Commit"
                      association="API_Model-_packagedElement.36"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.37"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.37-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-CommitReference-referencedCommit"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.37-_ownedEnd.0"
                      visibility="private"
                      type="API_Model-CommitReference"
                      association="API_Model-_packagedElement.37"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-CommitReference" name="CommitReference"
                          isAbstract="true">
            <ownedRule xmi:type="uml:Constraint"
                       xmi:id="API_Model-CommitReference-referencedCommit20Constraint"
                       name="referencedCommit Constraint">
               <constrainedElement xmi:idref="API_Model-CommitReference"/>
               <specification xmi:type="uml:OpaqueExpression"
                              xmi:id="API_Model-CommitReference-referencedCommit20Constraint-_specification">
                  <body>referencedCommit.owningProject = owningProject</body>
                  <language>English</language>
               </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
                            xmi:id="API_Model-CommitReference-_generalization.0"
                            general="API_Model-Record"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-CommitReference-referencedCommit"
                            name="referencedCommit"
                            visibility="public"
                            type="API_Model-Commit"
                            association="API_Model-_packagedElement.37"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-CommitReference-created"
                            name="created"
                            visibility="public"
                            type="API_Model-ISO8601DateTime"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-CommitReference-owningProject"
                            name="owningProject"
                            visibility="public"
                            type="API_Model-Project"
                            association="API_Model-_packagedElement.32"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-CommitReference-name" name="name"
                            visibility="public">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-ProjectUsage" name="ProjectUsage">
            <ownedRule xmi:type="uml:Constraint"
                       xmi:id="API_Model-ProjectUsage-usedProject20Constraint"
                       name="usedProject Constraint">
               <constrainedElement xmi:idref="API_Model-ProjectUsage"/>
               <specification xmi:type="uml:OpaqueExpression"
                              xmi:id="API_Model-ProjectUsage-usedProject20Constraint-_specification">
                  <body>usedProject = usedProjectCommit.owningProject</body>
                  <language>English</language>
               </specification>
            </ownedRule>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-ProjectUsage-usedProjectCommit"
                            name="usedProjectCommit"
                            visibility="public"
                            type="API_Model-Commit"
                            association="API_Model-_packagedElement.41"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.40"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-Project-tags"/>
            <memberEnd xmi:idref="API_Model-Tag-owningProject"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.41"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.41-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-ProjectUsage-usedProjectCommit"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.41-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-ProjectUsage"
                      association="API_Model-_packagedElement.41"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Interface" xmi:id="API_Model-Data" name="Data"
                          visibility="private">
            <ownedOperation xmi:type="uml:Operation" xmi:id="API_Model-Data-getId" name="getId"
                            visibility="public">
               <ownedParameter xmi:type="uml:Parameter" xmi:id="API_Model-Data-getId-_ownedParameter.0"
                               visibility="public"
                               direction="return"
                               effect="create"
                               type="API_Model-UUID"/>
            </ownedOperation>
         </packagedElement>
         <packagedElement xmi:type="uml:Realization" xmi:id="API_Model-_packagedElement.43">
            <client xmi:idref="API_Model-ExternalData"/>
            <supplier xmi:idref="API_Model-Data"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Enumeration" xmi:id="API_Model-Direction" name="Direction">
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="API_Model-Direction-in" name="in"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="API_Model-Direction-out" name="out"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="API_Model-Direction-both" name="both"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.45"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.45-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-ExternalRelationship-elementEnd"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.45-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-ExternalRelationship"
                      association="API_Model-_packagedElement.45"/>
         </packagedElement>
         <packagedElement xmi:type="uml:Association" xmi:id="API_Model-_packagedElement.46"
                          visibility="private">
            <memberEnd xmi:idref="API_Model-_packagedElement.46-_ownedEnd.0"/>
            <memberEnd xmi:idref="API_Model-ExternalRelationship-_20externalDataEnd"/>
            <ownedEnd xmi:type="uml:Property" xmi:id="API_Model-_packagedElement.46-_ownedEnd.0"
                      visibility="public"
                      type="API_Model-ExternalRelationship"
                      association="API_Model-_packagedElement.46"/>
         </packagedElement>
         <packagedElement xmi:type="uml:DataType" xmi:id="API_Model-UUID" name="UUID"/>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-DataDifference" name="DataDifference">
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-DataDifference-baseData"
                            name="baseData"
                            visibility="public"
                            type="API_Model-DataVersion">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-DataDifference-baseData-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-DataDifference-compareData"
                            name="compareData"
                            visibility="public"
                            type="API_Model-DataVersion">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-DataDifference-compareData-_lowerValue"/>
            </ownedAttribute>
         </packagedElement>
         <packagedElement xmi:type="uml:Class" xmi:id="API_Model-MergeResult" name="MergeResult">
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-MergeResult-mergeCommit"
                            name="mergeCommit"
                            visibility="public"
                            type="API_Model-Commit">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-MergeResult-mergeCommit-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="API_Model-MergeResult-conflict" name="conflict"
                            visibility="public"
                            type="API_Model-DataIdentity">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="API_Model-MergeResult-conflict-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="API_Model-MergeResult-conflict-_upperValue"
                           value="*"/>
            </ownedAttribute>
         </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="ElementNavigationService"
                       name="ElementNavigationService">
         <ownedComment xmi:type="uml:Comment" xmi:id="ElementNavigationService-_ownedComment.0"
                       body="Service for working with element navigating in projects.">
            <annotatedElement xmi:idref="ElementNavigationService"/>
         </ownedComment>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ElementNavigationService-getElements"
                         name="getElements"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ElementNavigationService-getElements-_ownedComment.0"
                          body="Get all the elements in a given project at the given commit.">
               <annotatedElement xmi:idref="ElementNavigationService-getElements"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ElementNavigationService-getElements-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ElementNavigationService-getElements-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ElementNavigationService-getElements-elements"
                            name="elements"
                            visibility="public"
                            direction="return"
                            effect="create">
               <type href="https://www.omg.org/spec/KerML/20230201/KerML.xmi#Root-Elements-Element"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ElementNavigationService-getElements-elements-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ElementNavigationService-getElements-elements-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ElementNavigationService-getElementById"
                         name="getElementById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ElementNavigationService-getElementById-_ownedComment.0"
                          body="Get element with the given id (elementId) in the given project at the given commit.">
               <annotatedElement xmi:idref="ElementNavigationService-getElementById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getElementById-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getElementById-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getElementById-elementId"
                            name="elementId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getElementById-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create">
               <type href="https://www.omg.org/spec/KerML/20230201/KerML.xmi#Root-Elements-Element"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ElementNavigationService-getElementById-result-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation"
                         xmi:id="ElementNavigationService-getRelationshipsByRelatedElement"
                         name="getRelationshipsByRelatedElement"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ElementNavigationService-getRelationshipsByRelatedElement-_ownedComment.0"
                          body="Get relationships that are incoming, outgoing, or both relative to the given related element.">
               <annotatedElement xmi:idref="ElementNavigationService-getRelationshipsByRelatedElement"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getRelationshipsByRelatedElement-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getRelationshipsByRelatedElement-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getRelationshipsByRelatedElement-elementId"
                            name="elementId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getRelationshipsByRelatedElement-direction"
                            name="direction"
                            visibility="public"
                            effect="create"
                            type="API_Model-Direction"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getRelationshipsByRelatedElement-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create">
               <type href="https://www.omg.org/spec/KerML/20230201/KerML.xmi#Root-Elements-Relationship"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ElementNavigationService-getRelationshipsByRelatedElement-result-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ElementNavigationService-getRelationshipsByRelatedElement-result-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ElementNavigationService-getRootElements"
                         name="getRootElements"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ElementNavigationService-getRootElements-_ownedComment.0"
                          body="Get all the root elements in the given project at the given commit.">
               <annotatedElement xmi:idref="ElementNavigationService-getRootElements"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getRootElements-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getRootElements-root_elements"
                            name="root_elements"
                            visibility="public"
                            direction="return"
                            effect="create">
               <type href="https://www.omg.org/spec/KerML/20230201/KerML.xmi#Root-Elements-Element"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ElementNavigationService-getRootElements-root_elements-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ElementNavigationService-getRootElements-root_elements-_upperValue"
                           value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ElementNavigationService-getRootElements-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
         </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="ProjectService" name="ProjectService">
         <ownedComment xmi:type="uml:Comment" xmi:id="ProjectService-_ownedComment.0"
                       body="Service for working with projects.">
            <annotatedElement xmi:idref="ProjectService"/>
         </ownedComment>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectService-getProjects" name="getProjects"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="ProjectService-getProjects-_ownedComment.0"
                          body="Get all projects.">
               <annotatedElement xmi:idref="ProjectService-getProjects"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-getProjects-projects"
                            name="projects"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Project">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectService-getProjects-projects-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectService-getProjects-projects-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectService-getProjectById"
                         name="getProjectById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="ProjectService-getProjectById-_ownedComment.0"
                          body="Get project with the given id (projectId).">
               <annotatedElement xmi:idref="ProjectService-getProjectById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-getProjectById-projectId"
                            name="projectId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-getProjectById-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Project">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectService-getProjectById-result-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectService-createProject"
                         name="createProject"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="ProjectService-createProject-_ownedComment.0"
                          body="Create a new project with the given name and description (optional).">
               <annotatedElement xmi:idref="ProjectService-createProject"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-createProject-name" name="name"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-createProject-description"
                            name="description"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectService-createProject-description-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-createProject-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Project"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectService-updateProject"
                         name="updateProject"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="ProjectService-updateProject-_ownedComment.0"
                          body="Update the project with the given id (projectId).">
               <annotatedElement xmi:idref="ProjectService-updateProject"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-updateProject-projectId"
                            name="projectId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-updateProject-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-updateProject-name" name="name"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectService-updateProject-name-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-updateProject-description"
                            name="description"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectService-updateProject-description-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-updateProject-defaultBranch"
                            name="defaultBranch"
                            visibility="public"
                            effect="create"
                            type="API_Model-Branch">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectService-updateProject-defaultBranch-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectService-deleteProject"
                         name="deleteProject"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="ProjectService-deleteProject-_ownedComment.0"
                          body="Delete the project with the given id (projectId).">
               <annotatedElement xmi:idref="ProjectService-deleteProject"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-deleteProject-projectId"
                            name="projectId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectService-deleteProject-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Project"/>
         </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="ProjectDataVersioningService"
                       name="ProjectDataVersioningService">
         <ownedComment xmi:type="uml:Comment" xmi:id="ProjectDataVersioningService-_ownedComment.0"
                       body="Service for working with data versioning, such as commits, branches, and tags, in projects.">
            <annotatedElement xmi:idref="ProjectDataVersioningService"/>
         </ownedComment>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getCommits"
                         name="getCommits"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getCommits-_ownedComment.0"
                          body="Get all the commits in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getCommits"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommits-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommits-commits"
                            name="commits"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Commit">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-getCommits-commits-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-getCommits-commits-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getHeadCommit"
                         name="getHeadCommit"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getHeadCommit-_ownedComment.0"
                          body="Get the head commit of the given branch in the given project. If the branch is not specified, the default branch of the project is used.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getHeadCommit"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getHeadCommit-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getHeadCommit-branch"
                            name="branch"
                            visibility="public"
                            effect="create"
                            type="API_Model-Branch">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-getHeadCommit-branch-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getHeadCommit-commit"
                            name="commit"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Commit"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getCommitById"
                         name="getCommitById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getCommitById-_ownedComment.0"
                          body="Get the commit with the given id (commitId) in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getCommitById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitById-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitById-commitId"
                            name="commitId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitById-commit"
                            name="commit"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Commit">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-getCommitById-commit-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-createCommit"
                         name="createCommit"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-createCommit-_ownedComment.0"
                          body="Create a new commit with the given change (collection of DataVersion records) in the given branch of the project. If the branch is not specified, the default branch of the project is used. Commit.change should include the following for each Data object that needs to be created, updated, or deleted in the new commit.&#xA;&#xA;(1) Creating Data - Commit.change should include a DataVersion record with DataVersion.payload populated with the Data being created. DataVersion.identity is not provided, thereby indicating that a new DataIdentity needs to be created in the new commit.&#xA;&#xA;(2) Updating Data - Commit.change should include a DataVersion record with DataVersion.payload populated with the updated Data. DataVersion.identity should be populated with the DataIdentity for which a new DataVersion record will be created in the new commit.&#xA;&#xA;(3) Deleting Data - Commit.change should include a DataVersion record with DataVersion.payload not provided, thereby indicating deletion of DataIdentity in the new commit. DataVersion.identity should be populated with the DataIdentity that will be deleted in the new commit.&#xA;&#xA;When a DataIdentity is deleted in a commit, all its versions (DataVersion) are also deleted, and any references from other DataIdentity are also removed to maintain data integrity. In addition, for Element Data (KerML), deletion of an Element must also result in deletion of incoming Relationships.&#xA;&#xA;When Element Data (KerML) is created or updated, derived properties must be computed or verified if the API provider claims Derived Property Conformance.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-createCommit"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createCommit-change"
                            name="change"
                            visibility="public"
                            effect="create"
                            type="API_Model-DataVersion">
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-createCommit-change-_upperValue"
                           value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createCommit-branch"
                            name="branch"
                            visibility="public"
                            effect="create"
                            type="API_Model-Branch">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-createCommit-branch-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createCommit-previousCommits"
                            name="previousCommits"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-createCommit-previousCommits-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-createCommit-previousCommits-_upperValue"
                           value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createCommit-commit"
                            isOrdered="true"
                            name="commit"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createCommit-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getCommitChange"
                         name="getCommitChange"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getCommitChange-_ownedComment.0"
                          body="Get the change in the given commit of the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getCommitChange"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitChange-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitChange-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitChange-change"
                            name="change"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-DataVersion">
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-getCommitChange-change-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation"
                         xmi:id="ProjectDataVersioningService-getCommitChangeById"
                         name="getCommitChangeById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getCommitChangeById-_ownedComment.0"
                          body="Get the change with the given id (changeId) in the given commit of the given project. The changeId is the id of the DataVersion that changed in the commit.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getCommitChangeById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitChangeById-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitChangeById-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitChangeById-changeId"
                            name="changeId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getCommitChangeById-change"
                            name="change"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-DataVersion"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getBranches"
                         name="getBranches"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getBranches-_ownedComment.0"
                          body="Get all the branches in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getBranches"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getBranches-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getBranches-branches"
                            name="branches"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Branch">
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-getBranches-branches-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getBranchById"
                         name="getBranchById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getBranchById-_ownedComment.0"
                          body="Get the branch with the given id (branchId) in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getBranchById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getBranchById-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getBranchById-branchId"
                            name="branchId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getBranchById-branch"
                            name="branch"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Branch">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-getBranchById-branch-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getDefaultBranch"
                         name="getDefaultBranch"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getDefaultBranch-_ownedComment.0"
                          body="Get the default branch of the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getDefaultBranch"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getDefaultBranch-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getDefaultBranch-defaultBranch"
                            name="defaultBranch"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Branch"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-setDefaultBranch"
                         name="setDefaultBranch"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-setDefaultBranch-_ownedComment.0"
                          body="Set the branch with the given branchId as the default branch of the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-setDefaultBranch"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-setDefaultBranch-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-setDefaultBranch-branchId"
                            name="branchId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-setDefaultBranch-defaultBranch"
                            name="defaultBranch"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Project"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-createBranch"
                         name="createBranch"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-createBranch-_ownedComment.0"
                          body="Create a new branch with the given name (branchName) in the given project, and set the head of the new branch as the given commit (head).">
               <annotatedElement xmi:idref="ProjectDataVersioningService-createBranch"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createBranch-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createBranch-branchName"
                            name="branchName"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createBranch-head"
                            name="head"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createBranch-branch"
                            name="branch"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Branch"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-deleteBranch"
                         name="deleteBranch"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-deleteBranch-_ownedComment.0"
                          body="Delete the branch with the given id (branchId) in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-deleteBranch"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-deleteBranch-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-deleteBranch-branchId"
                            name="branchId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-deleteBranch-deletedBranch"
                            name="deletedBranch"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Branch">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-deleteBranch-deletedBranch-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getTags"
                         name="getTags"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getTags-_ownedComment.0"
                          body="Get all the tags in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getTags"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectDataVersioningService-getTags-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectDataVersioningService-getTags-tags"
                            name="tags"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Tag">
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-getTags-tags-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getTagById"
                         name="getTagById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getTagById-_ownedComment.0"
                          body="Get the tag with the given id (tagId) in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getTagById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getTagById-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectDataVersioningService-getTagById-tagId"
                            name="tagId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectDataVersioningService-getTagById-tag"
                            name="tag"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Tag"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-getTaggedCommit"
                         name="getTaggedCommit"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-getTaggedCommit-_ownedComment.0"
                          body="Get the tagged commit of the given tag in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-getTaggedCommit"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getTaggedCommit-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getTaggedCommit-tag"
                            name="tag"
                            visibility="public"
                            effect="create"
                            type="API_Model-Tag"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-getTaggedCommit-commit"
                            name="commit"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Commit"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-createTag"
                         name="createTag"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-createTag-_ownedComment.0"
                          body="Create a new tag with the given name (tagName) in the given project, and set the taggedCommit of the new tag as the given commit (taggedCommit).">
               <annotatedElement xmi:idref="ProjectDataVersioningService-createTag"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createTag-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createTag-tagName"
                            name="tagName"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-createTag-taggedCommit"
                            name="taggedCommit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectDataVersioningService-createTag-tag"
                            name="tag"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Tag"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-deleteTag"
                         name="deleteTag"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-deleteTag-_ownedComment.0"
                          body="Delete the tag with the given id (tadId) in the given project.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-deleteTag"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-deleteTag-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectDataVersioningService-deleteTag-tagId"
                            name="tagId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-deleteTag-deletedTag"
                            name="deletedTag"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Tag">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-deleteTag-deletedTag-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-mergeIntoBranch"
                         name="mergeIntoBranch"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-mergeIntoBranch-_ownedComment.0"
                          body="Merge the given commits (commitsToMerge) in the given branch (baseBranch). &#xA;The commits included in commitsToMerge may be commits referenced by a CommitReference, such as Branch.head or Tag.taggedCommit, or any other commit in the owning project (Project.commits).&#xA;This operation returns a MergeResult which will include either of the following: (1) commit after the merge operation if successful, or (2) a set of DataIdentity records representing the merge conflicts if the merge operation is unsuccessful.&#xA;Two optional inputs may be provided: (1) resolution as a set of Data that will resolve the merge conflicts, and (2) description of the merged commit if this operation is successful.">
               <annotatedElement xmi:idref="ProjectDataVersioningService-mergeIntoBranch"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-mergeIntoBranch-baseBranch"
                            name="baseBranch"
                            visibility="public"
                            effect="create"
                            type="API_Model-Branch"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-mergeIntoBranch-commitsToMerge"
                            name="commitsToMerge"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit">
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-mergeIntoBranch-commitsToMerge-_upperValue"
                           value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-mergeIntoBranch-resolution"
                            name="resolution"
                            visibility="public"
                            effect="create"
                            type="API_Model-Data">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-mergeIntoBranch-resolution-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-mergeIntoBranch-resolution-_upperValue"
                           value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-mergeIntoBranch-description"
                            name="description"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-mergeIntoBranch-description-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-mergeIntoBranch-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-MergeResult"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectDataVersioningService-diffCommits"
                         name="diffCommits"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectDataVersioningService-diffCommits-_ownedComment.0"
                          body="&lt;p&gt;Get the difference between two commits - compareCommit and baseCommit. The set of all DataVersion records in a project at a given commit is accessible as Commit.versionedData. From a set theoretic perspective, this operation gets&amp;nbsp;compareCommit.versionedData - baseCommit.versionedData and returns a DataDifference object with baseData and compareData for each difference. If any data is present in the compareCommit but absent in the baseCommit, DataDifference.compareData will include the corresponding DataVersion and DataDifference.baseData will be empty. If any data is absent in the compareCommit but present in the baseCommit, DataDifference.compareData will be empty and DataDifference.baseData will include the corresponding DataVersion. If any data is present in both but different in the compareCommit and baseCommit, DataDifference.compareData and DataDifference.baseData will include the corresponding DataVersion records.&lt;/p&gt;&#xA;">
               <annotatedElement xmi:idref="ProjectDataVersioningService-diffCommits"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-diffCommits-baseCommit"
                            name="baseCommit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-diffCommits-compareCommit"
                            name="compareCommit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectDataVersioningService-diffCommits-difference"
                            name="difference"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-DataDifference">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectDataVersioningService-diffCommits-difference-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectDataVersioningService-diffCommits-difference-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="ProjectUsageService" name="ProjectUsageService">
         <ownedComment xmi:type="uml:Comment" xmi:id="ProjectUsageService-_ownedComment.0"
                       body="Service for working with project usages.">
            <annotatedElement xmi:idref="ProjectUsageService"/>
         </ownedComment>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectUsageService-getProjectUsages"
                         name="getProjectUsages"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectUsageService-getProjectUsages-_ownedComment.0"
                          body="Get all the project usages in the given project at the given commit.">
               <annotatedElement xmi:idref="ProjectUsageService-getProjectUsages"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectUsageService-getProjectUsages-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectUsageService-getProjectUsages-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectUsageService-getProjectUsages-projectUsages"
                            name="projectUsages"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-ProjectUsage">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectUsageService-getProjectUsages-projectUsages-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ProjectUsageService-getProjectUsages-projectUsages-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectUsageService-createProjectUsage"
                         name="createProjectUsage"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectUsageService-createProjectUsage-_ownedComment.0"
                          body="Create a new project usage in the given project at the head commit of the given branch. This operation returns a new commit that includes the new project usage, and sets the head of the given branch to the new commit. If a project branch is not given, then the default branch of the project will be used.">
               <annotatedElement xmi:idref="ProjectUsageService-createProjectUsage"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectUsageService-createProjectUsage-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectUsageService-createProjectUsage-branch"
                            name="branch"
                            visibility="public"
                            effect="create"
                            type="API_Model-Branch">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectUsageService-createProjectUsage-branch-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectUsageService-createProjectUsage-projectUsage"
                            name="projectUsage"
                            visibility="public"
                            effect="create"
                            type="API_Model-ProjectUsage"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectUsageService-createProjectUsage-newCommit"
                            isOrdered="true"
                            name="newCommit"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Commit"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="ProjectUsageService-deleteProjectUsage"
                         name="deleteProjectUsage"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ProjectUsageService-deleteProjectUsage-_ownedComment.0"
                          body="Deletes the project usage with the given id (projectUsageId) from the given project at the head commit of the given branch. This operation returns a new commit where the given project usage does not exist, and sets the head of the given branch to the new commit. If a project branch is not given, then the default branch of the project will be used.">
               <annotatedElement xmi:idref="ProjectUsageService-deleteProjectUsage"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectUsageService-deleteProjectUsage-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="ProjectUsageService-deleteProjectUsage-branch"
                            name="branch"
                            visibility="public"
                            effect="create"
                            type="API_Model-Branch">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ProjectUsageService-deleteProjectUsage-branch-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectUsageService-deleteProjectUsage-projectUsageId"
                            name="projectUsageId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ProjectUsageService-deleteProjectUsage-newCommit"
                            isOrdered="true"
                            name="newCommit"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Commit"/>
         </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="ExternalRelationshipService"
                       name="ExternalRelationshipService">
         <ownedComment xmi:type="uml:Comment" xmi:id="ExternalRelationshipService-_ownedComment.0"
                       body="Service for working with external data and external relationships in projects.">
            <annotatedElement xmi:idref="ExternalRelationshipService"/>
         </ownedComment>
         <ownedOperation xmi:type="uml:Operation"
                         xmi:id="ExternalRelationshipService-getExternalRelationships"
                         name="getExternalRelationships"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ExternalRelationshipService-getExternalRelationships-_ownedComment.0"
                          body="Get all the external relationships in a given project at a given commit.">
               <annotatedElement xmi:idref="ExternalRelationshipService-getExternalRelationships"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationships-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationships-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationships-externalRelationships"
                            name="externalRelationships"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-ExternalRelationship">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ExternalRelationshipService-getExternalRelationships-externalRelationships-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ExternalRelationshipService-getExternalRelationships-externalRelationships-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation"
                         xmi:id="ExternalRelationshipService-getExternalRelationshipsByElement"
                         name="getExternalRelationshipsByElement"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ExternalRelationshipService-getExternalRelationshipsByElement-_ownedComment.0"
                          body="Get all the external relationships in the given project at the given commit, where the id of elementEnd of the external relationship is the given elementId.">
               <annotatedElement xmi:idref="ExternalRelationshipService-getExternalRelationshipsByElement"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationshipsByElement-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationshipsByElement-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationshipsByElement-elementId"
                            name="elementId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationshipsByElement-externalRelationships"
                            name="externalRelationships"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-ExternalRelationship">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ExternalRelationshipService-getExternalRelationshipsByElement-externalRelationships-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="ExternalRelationshipService-getExternalRelationshipsByElement-externalRelationships-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation"
                         xmi:id="ExternalRelationshipService-getExternalRelationshipById"
                         name="getExternalRelationshipById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment"
                          xmi:id="ExternalRelationshipService-getExternalRelationshipById-_ownedComment.0"
                          body="Get the external relationship with the given id (externalRelationshipId). ">
               <annotatedElement xmi:idref="ExternalRelationshipService-getExternalRelationshipById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationshipById-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationshipById-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationshipById-externalRelationshipId"
                            name="externalRelationshipId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter"
                            xmi:id="ExternalRelationshipService-getExternalRelationshipById-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-ExternalRelationship">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="ExternalRelationshipService-getExternalRelationshipById-result-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="QueryService" name="QueryService">
         <ownedComment xmi:type="uml:Comment" xmi:id="QueryService-_ownedComment.0"
                       body="Service for working with queries.">
            <annotatedElement xmi:idref="QueryService"/>
         </ownedComment>
         <ownedOperation xmi:type="uml:Operation" xmi:id="QueryService-getQueries" name="getQueries"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="QueryService-getQueries-_ownedComment.0"
                          body="Get all the queries in the given project.">
               <annotatedElement xmi:idref="QueryService-getQueries"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-getQueries-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-getQueries-queries"
                            name="queries"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Query">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-getQueries-queries-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="QueryService-getQueries-queries-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="QueryService-getQueryById" name="getQueryById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="QueryService-getQueryById-_ownedComment.0"
                          body="Get the query with the given id (queryId) in the given project.">
               <annotatedElement xmi:idref="QueryService-getQueryById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-getQueryById-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-getQueryById-queryId"
                            name="queryId"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-getQueryById-query" name="query"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Query">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-getQueryById-query-_lowerValue"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="QueryService-createQuery" name="createQuery"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="QueryService-createQuery-_ownedComment.0"
                          body="Create a query in the given project with the given inputs.">
               <annotatedElement xmi:idref="QueryService-createQuery"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-createQuery-name" name="name"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-createQuery-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-createQuery-select" name="select"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-createQuery-select-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="QueryService-createQuery-select-_upperValue"
                           value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-createQuery-scope" name="scope"
                            visibility="public"
                            effect="create"
                            type="API_Model-Data">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-createQuery-scope-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="QueryService-createQuery-scope-_upperValue"
                           value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-createQuery-where" name="where"
                            visibility="public"
                            effect="create"
                            type="API_Model-Constraint"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-createQuery-orderBy"
                            name="orderBy"
                            visibility="public"
                            effect="create">
               <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-createQuery-orderBy-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="QueryService-createQuery-orderBy-_upperValue"
                           value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-createQuery-query" name="query"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Query"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="QueryService-updateQuery" name="updateQuery"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="QueryService-updateQuery-_ownedComment.0"
                          body="Update the given query (updateQuery) in the given project.">
               <annotatedElement xmi:idref="QueryService-updateQuery"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-updateQuery-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-updateQuery-updateQuery"
                            name="updateQuery"
                            visibility="public"
                            effect="create"
                            type="API_Model-Query"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-updateQuery-query" name="query"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Query"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="QueryService-deleteQuery" name="deleteQuery"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="QueryService-deleteQuery-_ownedComment.0"
                          body="Delete the query with the given id (queryId) in the given project.">
               <annotatedElement xmi:idref="QueryService-deleteQuery"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-deleteQuery-project"
                            name="project"
                            visibility="public"
                            effect="create"
                            type="API_Model-Project"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-deleteQuery-queryId"
                            name="queryId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-deleteQuery-query" name="query"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Query"/>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="QueryService-executeQueryById"
                         name="executeQueryById"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="QueryService-executeQueryById-_ownedComment.0"
                          body="Execute the query with the given id in the owning project (Query.project) at the given commit. If the commit is not specified, then the head commit of the default branch of the project will be used.">
               <annotatedElement xmi:idref="QueryService-executeQueryById"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-executeQueryById-queryId"
                            name="queryId"
                            visibility="public"
                            effect="create"
                            type="API_Model-UUID"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-executeQueryById-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-executeQueryById-commit-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-executeQueryById-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Data">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-executeQueryById-result-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="QueryService-executeQueryById-result-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
         <ownedOperation xmi:type="uml:Operation" xmi:id="QueryService-executeQuery" name="executeQuery"
                         visibility="public">
            <ownedComment xmi:type="uml:Comment" xmi:id="QueryService-executeQuery-_ownedComment.0"
                          body="Execute the given query in the owning project (Query.project) at the given commit. If the commit is not specified, then the head commit of the default branch of the project will be used.">
               <annotatedElement xmi:idref="QueryService-executeQuery"/>
            </ownedComment>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-executeQuery-query" name="query"
                            visibility="public"
                            effect="create"
                            type="API_Model-Query"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-executeQuery-commit"
                            name="commit"
                            visibility="public"
                            effect="create"
                            type="API_Model-Commit">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-executeQuery-commit-_lowerValue"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="QueryService-executeQuery-result"
                            name="result"
                            visibility="public"
                            direction="return"
                            effect="create"
                            type="API_Model-Data">
               <lowerValue xmi:type="uml:LiteralInteger"
                           xmi:id="QueryService-executeQuery-result-_lowerValue"/>
               <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                           xmi:id="QueryService-executeQuery-result-_upperValue"
                           value="*"/>
            </ownedParameter>
         </ownedOperation>
      </packagedElement>
   </uml:Model>
</xmi:XMI>