swagger: '2.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.0'
    title: Competencies and Academic Standards Exchange (CASE) Service OpenAPI (YAML) Definition
    termsOfService: Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals. The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns. THIS API DEFINITION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE  CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER,  DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS API DEFINITION.
    contact: 
        name: Lisa Mattson (COO), IMS Global
        url: http://www.imsglobal.org
        email: lmattson@imsglobal.org
    license: 
        name: IMS Global
        url: https://www.imsglobal.org/license.html

#####################################################################################
#                   Host, Base Path, Schemes and Content Types                      #
#####################################################################################
host: www.imsglobal.org
basePath: /ims/case/v1p0
schemes: 
    - http
    - https
consumes: 
    - application/json
produces: 
    - application/json

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AssociationsManager
      description: |
        The set of service operations that manage access to the Competency Framework Associations. Associations are to establish relationships between definitions from different sources. This interface manages the associations between CFDocuments and between CFItems.
    - name: DefinitionsManager
      description: |
        The set of service operations that manage access to the Competency Framework Definitions. This interface manages the definitions of the: Competency Framework Concepts, Competency Framework Subjects, Competency Framework Licenses, Competency Framework Item Types and Competency Framework Association Groupings.
    - name: DocumentsManager
      description: |
        The set of service operations that manage access to the Competency Framework Documents. Documents are the root entry point for the definition of an academic standard/competency. This interface manages the document descriptions only i.e. it does not support the management of Items, Associations, etc.
    - name: ItemsManager
      description: |
        The set of service operations that manage access to the Competency Framework Items. Items are the containers for the definitions in an academic standard/competency. This interface manages the Item descriptions only i.e. it does not support the management of Associations, etc.
    - name: PackagesManager
      description: |
        The set of service operations that manage access to the Competency Framework Packages as a whole. A Competency Framework Package is a package that contains all of the arefacts that are used for the definition of a Competency Framework Document.
    - name: RubricsManager
      description: |
        The set of service operations that manage access to the Competency Framework Rubrics. Rubrics associate the set of rubric criteria being defined for a specific academic standard/competency (defined as either a CFItem or a CFDocument).

#####################################################################################
#                                 Security                                          #
#####################################################################################

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /CFAssociationGroupings/{sourcedId}:
        get:
            operationId: getCFAssociationGrouping
            summary: The REST read request message for the getCFAssociationGrouping() API call.
            tags: 
                - DefinitionsManager
            description: |
                This is a request to the Service Provider to provide the specified Competency Framework Association Grouping.  If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework AssociationGrouping that is to be read from the service provider.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFAssociationGrouping from the service provider.
                    schema: 
                        $ref: "#/definitions/CFAssociationGrouping.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFAssociations/{sourcedId}:
        get:
            operationId: getCFAssociation
            summary: The REST read request message for the getCFAssociation() API call.
            tags: 
                - AssociationsManager
            description: |
                This is a request to the service provider to provide the information for the specific Competency Framework Association. If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the CFAssociation to be supplied.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFAssociation from the service provider.
                    schema: 
                        $ref: "#/definitions/CFAssociation.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFConcepts/{sourcedId}:
        get:
            operationId: getCFConcept
            summary: The REST read request message for the getCFConcept() API call.
            tags: 
                - DefinitionsManager
            description: |
                This is a request to the Service Provider to provide the specified Competency Framework Concept and the set of children CFConcepts as identified by the hierarchy codes.  If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework Concept that is to be read from the service provider.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFConcept and child CFSConcepts from the service provider.
                    schema: 
                        $ref: "#/definitions/CFConceptSet.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFDocuments:
        get:
            operationId: getAllCFDocuments
            summary: The REST read request message for the getAllCFDocuments() API call.
            tags: 
                - DocumentsManager
            description: |
                This is a request to the Service Provider to provide all of the Competency Framework Documents. 
            parameters: 
                - name: limit
                  in: query
                  description: |
                      This is used as part of the data pagination mechanism to control the download rate of data. The 'limit' defines the download segmentation value i.e. the maximum number of records to be contained in the response. The form of implementation is described in the corresponding binding document(s).
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      This is used as part of the data pagination mechanism to control the download rate of data. The 'offset' is the number of the first record to be supplied in the segmented response message. The form of implementation is described in the corresponding binding document(s).
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      This is used as part of the sorting mechanism to be use by the service provider. The 'sort' identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The form of implementation is described in the corresponding binding document(s).
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      This is used as part of the sorting mechanism to be use by the service provider. This defines the form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The form of implementation is described in the corresponding binding document(s).
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      This is used for the data filtering mechanism to be applied by the service provider. It defines the filtering rules to be applied when identifying the records to be supplied in the response message. The form of implementation is described in the corresponding binding document(s).
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      This is used as part of the field selection mechanism to be applied by the service provider. This identifies the range of fields that should be supplied in the response message. The form of implementation is described in the corresponding binding document(s).
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the set of CFDocuments from the service provider.
                    schema: 
                        $ref: "#/definitions/CFDocumentSet.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFDocuments/{sourcedId}:
        get:
            operationId: getCFDocument
            summary: The REST read request message for the getCFDocument() API call.
            tags: 
                - DocumentsManager
            description: |
                This is a request to the service provider to provide the information for the specific Competency Framework Document. If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework Document that is to be read from the service provider.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFDocument from the service provider.
                    schema: 
                        $ref: "#/definitions/CFDocument.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFItemAssociations/{sourcedId}:
        get:
            operationId: getCFItemAssociations
            summary: The REST read request message for the getCFItemAssociations() API call.
            tags: 
                - AssociationsManager
            description: |
                This is a request to the Service Provider to provide the all of the Competency Associations for the specified CFItem and the information about the CFItem itself.  If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the CFItem for which ALL associations are to be supplied.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFItem and set of CFAssociations from the service provider.
                    schema: 
                        $ref: "#/definitions/CFAssociationSet.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFItemTypes/{sourcedId}:
        get:
            operationId: getCFItemType
            summary: The REST read request message for the getCFItemType() API call.
            tags: 
                - DefinitionsManager
            description: |
                This is a request to the Service Provider to provide the specified Competency Framework Item Type and the set of children CFItemTypes as identified by the hierarchy codes.  If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework ItemType that is to be read from the service provider.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFItemType and child CFItemTypes from the service provider.
                    schema: 
                        $ref: "#/definitions/CFItemTypeSet.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFItems/{sourcedId}:
        get:
            operationId: getCFItem
            summary: The REST read request message for the getCFItem() API call.
            tags: 
                - ItemsManager
            description: |
                This is a request to the Service Provider to provide the specified Competency Framework Item.  If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework Item that is to be read from the service provider.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFItem from the service provider.
                    schema: 
                        $ref: "#/definitions/CFItem.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFLicenses/{sourcedId}:
        get:
            operationId: getCFLicense
            summary: The REST read request message for the getCFLicense() API call.
            tags: 
                - DefinitionsManager
            description: |
                This is a request to the Service Provider to provide the specified Competency Framework License.  If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework License that is to be read from the service provider.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFLicense from the service provider.
                    schema: 
                        $ref: "#/definitions/CFLicense.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFPackages/{sourcedId}:
        get:
            operationId: getCFPackage
            summary: The REST read request message for the getCFPackage() API call.
            tags: 
                - PackagesManager
            description: |
                This is a request to the service provider to provide the information for the specific Competency Framework Package. If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework Document that is to be read from the service provider and supplied with all of its component artefacts.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFPackage from the service provider.
                    schema: 
                        $ref: "#/definitions/CFPackage.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFRubrics/{sourcedId}:
        get:
            operationId: getCFRubric
            summary: The REST read request message for the getCFRubric() API call.
            tags: 
                - RubricsManager
            description: |
                This is a request to the service provider to provide the information for the specific Competency Framework Rubric. If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework Rubric that is to be read from the service provider.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFRubric from the service provider.
                    schema: 
                        $ref: "#/definitions/CFRubric.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"

    /CFSubjects/{sourcedId}:
        get:
            operationId: getCFSubject
            summary: The REST read request message for the getCFSubject() API call.
            tags: 
                - DefinitionsManager
            description: |
                This is a request to the Service Provider to provide the specified Competency Framework Subject and the set of children CFSubjects as identified by the hierarchy codes.  If the identified record cannot be found then the 'unknownobject' status code must be reported.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The UUID that identifies the Competency Framework Subject that is to be read from the service provider.
                  required: true
                  type: string
            responses: 
                200 : 
                    description: |
                        This is the response when the request has been completed successfully. It is the CFSubject and child CFSubjects from the service provider.
                    schema: 
                        $ref: "#/definitions/CFSubjectSet.Type"
                400 : 
                    description: |
                        An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                401 : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                403 : 
                    description: |
                        This is used to indicate that the server can be reached and process the request but refuses to take any further action i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                404 : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                429 : 
                    description: |
                        The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                500 : 
                    description: |
                        This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"
                default : 
                    description: |
                        This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfo.Type"


#####################################################################################
#                               Definitions                                         #
#####################################################################################
definitions: 
    CFAssociation.Type:
        description: |
            This is the container for the data about the relationship between two CFDocuments or between two CFItems outside of the context of a CFPackage or CFItem.
        type: object
        allOf: 
            - $ref: "#/definitions/CFPckgAssociation.Type"
            - type: object
              properties: 
                CFDocumentURI: 
                    $ref: "#/definitions/LinkURI.Type"
              additionalProperties: false
    CFAssociationGrouping.Type:
        description: |
            This is the container for information about a set of associations that have been labelled as a group (the nature of the group being defined by this container).
        type: object
        required: 
            - identifier
            - uri
            - title
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            description: 
                description: Model Primitive Datatype = String
                type: string
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
        additionalProperties: false
    CFAssociationSet.Type:
        description: |
            This is the container for a collection of CFAssociations. There must be at least one CFAssociation. Note that the association can be between CFDocuments or between CFItems.
        type: object
        required: 
            - CFItem
            - CFAssociations
        properties: 
            CFItem: 
                $ref: "#/definitions/CFItem.Type"
            CFAssociations: 
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/CFPckgAssociation.Type"
        additionalProperties: false
    CFConcept.Type:
        description: |
            The container for the definition of a concept which is addressed by the competency framework.
        type: object
        required: 
            - identifier
            - uri
            - title
            - hierarchyCode
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            keywords: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            hierarchyCode: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            description: 
                description: Model Primitive Datatype = String
                type: string
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
        additionalProperties: false
    CFConceptSet.Type:
        description: |
            The container for the set of CFConcepts supplied in the response payload. The relationship between the CFConcepts is determined by the 'hierarchyCode'. The first CFConcept is that which has been specified in the call. The other CFConcepts are the set of children as determined by their place in the 'hierarchyCode' of the CFConcept.
        type: object
        required: 
            - CFConcepts
        properties: 
            CFConcepts: 
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/CFConcept.Type"
        additionalProperties: false
    CFDefinition.Type:
        description: |
            The container for the set of definitions used for the competency framework i.e. the set of CFSubjects, CFConcepts, CFItemTypes, CFAssociationGroupings and CFLicenses.
        type: object
        properties: 
            CFConcepts: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFConcept.Type"
            CFSubjects: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFSubject.Type"
            CFLicenses: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFLicense.Type"
            CFItemTypes: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFItemType.Type"
            CFAssociationGroupings: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFAssociationGrouping.Type"
        additionalProperties: false
    CFDocument.Type:
        description: |
            The container for the data about a competency framework document (CFDocument) when exchanged outside of the context of a CFPackage. A CFDocument is the root for the creation of a learning standard/competency.
        type: object
        allOf: 
            - $ref: "#/definitions/CFPckgDocument.Type"
            - type: object
              properties: 
                CFPackageURI: 
                    $ref: "#/definitions/LinkURI.Type"
              required: 
                - CFPackageURI
              additionalProperties: false
    CFDocumentSet.Type:
        description: |
            This is the container for a collection of CFDocuments. There must be at least one CFDocument.
        type: object
        required: 
            - CFDocuments
        properties: 
            CFDocuments: 
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/CFDocument.Type"
        additionalProperties: false
    CFItem.Type:
        description: |
            This is the container for the CFItem data outside of the context of a CFPackage. This is the content that either describes a specific competency (learning objective) or describes a grouping of competencies within the taxonomy of a Competency Framework Document. 
        type: object
        allOf: 
            - $ref: "#/definitions/CFPckgItem.Type"
            - type: object
              properties: 
                CFDocumentURI: 
                    $ref: "#/definitions/LinkURI.Type"
              required: 
                - CFDocumentURI
              additionalProperties: false
    CFItemType.Type:
        description: |
            The container for the ItemType information use within the competency framework.
        type: object
        required: 
            - identifier
            - uri
            - title
            - description
            - hierarchyCode
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            description: 
                description: Model Primitive Datatype = String
                type: string
            hierarchyCode: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            typeCode: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
        additionalProperties: false
    CFItemTypeSet.Type:
        description: |
            The container for the set of CFItemTypes supplied in the response payload. The relationship between the CFItemTypes is determined by the 'hierarchyCode'. The first CFItemType is that which has been specified in the call. The other CFItemTypes are the set of children as determined by their place in the 'hierarchyCode' of the CFItemType.
        type: object
        required: 
            - CFItemTypes
        properties: 
            CFItemTypes: 
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/CFItemType.Type"
        additionalProperties: false
    CFLicense.Type:
        description: |
            The container for the information about a license used within the competency framework.
        type: object
        required: 
            - identifier
            - uri
            - title
            - licenseText
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            description: 
                description: Model Primitive Datatype = String
                type: string
            licenseText: 
                description: Model Primitive Datatype = String
                type: string
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
        additionalProperties: false
    CFPackage.Type:
        description: |
            This is the container for all of the data for a Competency Framework Package i.e. the root CFDocument and ALL of the corresponding components i.e. the CFItems, CFAssociations and CFDefinitions.
        type: object
        required: 
            - CFDocument
        properties: 
            CFDocument: 
                $ref: "#/definitions/CFPckgDocument.Type"
            CFItems: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFPckgItem.Type"
            CFAssociations: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFPckgAssociation.Type"
            CFDefinitions: 
                $ref: "#/definitions/CFDefinition.Type"
            CFRubrics: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFRubric.Type"
        additionalProperties: false
    CFPckgAssociation.Type:
        description: |
            This is the container for the data about the relationship between two CFDocuments or between two CFItems within the context of a CFPackage.
        type: object
        required: 
            - identifier
            - associationType
            - uri
            - originNodeURI
            - destinationNodeURI
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            associationType: 
                type: string
                enum: 
                    - isChildOf
                    - isPeerOf
                    - isPartOf
                    - exactMatchOf
                    - precedes
                    - isRelatedTo
                    - replacedBy
                    - exemplar
                    - hasSkillLevel
            sequenceNumber: 
                description: Model Primitive Datatype = Integer
                type: integer
                format: int32
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            originNodeURI: 
                $ref: "#/definitions/LinkGenURI.Type"
            destinationNodeURI: 
                $ref: "#/definitions/LinkGenURI.Type"
            CFAssociationGroupingURI: 
                $ref: "#/definitions/LinkURI.Type"
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
        additionalProperties: false
    CFPckgDocument.Type:
        description: |
            The container for the data about a competency framework document (CFDocument) within a CFPackage. A CFDocument is the root for the creation of a learning standard/competency.
        type: object
        required: 
            - identifier
            - uri
            - creator
            - title
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            creator: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
            officialSourceURL: 
                $ref: "#/definitions/URL.Type"
            publisher: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            description: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            subject: 
                description: Model Primitive Datatype = NormalizedString
                type: array
                minItems: 0
                items: 
                    type: string
            subjectURI: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LinkURI.Type"
            language: 
                description: Model Primitive Datatype = Language
                type: string
            version: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            adoptionStatus: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            statusStartDate: 
                description: Model Primitive Datatype = Date
                type: string
                format: date
            statusEndDate: 
                description: Model Primitive Datatype = Date
                type: string
                format: date
            licenseURI: 
                $ref: "#/definitions/LinkURI.Type"
            notes: 
                description: Model Primitive Datatype = String
                type: string
        additionalProperties: false
    CFPckgItem.Type:
        description: |
            This is the container for the CFItem data within the context of a CFPackage. This is the content that either describes a specific competency (learning objective) or describes a grouping of competencies within the taxonomy of a Competency Framework Document. 
        type: object
        required: 
            - identifier
            - fullStatement
            - uri
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            fullStatement: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            alternativeLabel: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            CFItemType: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            humanCodingScheme: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            listEnumeration: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            abbreviatedStatement: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            conceptKeywords: 
                description: Model Primitive Datatype = NormalizedString
                type: array
                minItems: 0
                items: 
                    type: string
            conceptKeywordsURI: 
                $ref: "#/definitions/LinkURI.Type"
            notes: 
                description: Model Primitive Datatype = String
                type: string
            language: 
                description: Model Primitive Datatype = Language
                type: string
            educationLevel: 
                description: Model Primitive Datatype = NormalizedString
                type: array
                minItems: 0
                items: 
                    type: string
            CFItemTypeURI: 
                $ref: "#/definitions/LinkURI.Type"
            licenseURI: 
                $ref: "#/definitions/LinkURI.Type"
            statusStartDate: 
                description: Model Primitive Datatype = Date
                type: string
                format: date
            statusEndDate: 
                description: Model Primitive Datatype = Date
                type: string
                format: date
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
        additionalProperties: false
    CFRubric.Type:
        description: |
            The container for the definition of a rubric which is addressed by the competency framework. This includes the set of associated CFRubricCriteria and CFRubricCriterionLevels.
        type: object
        required: 
            - identifier
            - uri
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            description: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
            CFRubricCriteria: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFRubricCriterion.Type"
        additionalProperties: false
    CFRubricCriterion.Type:
        description: |
            The container for the definition of a rubric criterion which is addressed by the competency framework.
        type: object
        required: 
            - identifier
            - uri
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            category: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            description: 
                description: Model Primitive Datatype = String
                type: string
            CFItemURI: 
                $ref: "#/definitions/LinkURI.Type"
            weight: 
                description: Model Primitive Datatype = Float
                type: number
                format: float
            position: 
                description: Model Primitive Datatype = Integer
                type: integer
                format: int32
            rubricId: 
                $ref: "#/definitions/UUID.Type"
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
            CFRubricCriterionLevels: 
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CFRubricCriterionLevel.Type"
        additionalProperties: false
    CFRubricCriterionLevel.Type:
        description: |
            The container for the definition of a criterion level which is addressed by the competency framework.
        type: object
        required: 
            - identifier
            - uri
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            description: 
                description: Model Primitive Datatype = String
                type: string
            quality: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            score: 
                description: Model Primitive Datatype = Float
                type: number
                format: float
            feedback: 
                description: Model Primitive Datatype = String
                type: string
            position: 
                description: Model Primitive Datatype = Integer
                type: integer
                format: int32
            rubricCriterionId: 
                $ref: "#/definitions/UUID.Type"
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
        additionalProperties: false
    CFSubject.Type:
        description: |
            The container for the definition of a topic or academic subject which is addressed by the competency framework.
        type: object
        required: 
            - identifier
            - uri
            - title
            - hierarchyCode
            - lastChangeDateTime
        properties: 
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            hierarchyCode: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            description: 
                description: Model Primitive Datatype = String
                type: string
            lastChangeDateTime: 
                description: Model Primitive Datatype = DateTime
                type: string
                format: date-time
        additionalProperties: false
    CFSubjectSet.Type:
        description: |
            The container for the set of CFSubjects supplied in the response payload. The relationship between the CFSubjects is determined by the 'hierarchyCode'. The first CFSubject is that which has been specified in the call. The other CFSubjects are the set of children as determined by their place in the 'hierarchyCode' of the CFSubject.
        type: object
        required: 
            - CFSubjects
        properties: 
            CFSubjects: 
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/CFSubject.Type"
        additionalProperties: false
    LinkGenURI.Type:
        description: |
            A container for the information that is used to achieve the link data reference.
        type: object
        required: 
            - title
            - identifier
            - uri
        properties: 
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            identifier: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
        additionalProperties: false
    LinkURI.Type:
        description: |
            A container for the information that is used to achieve the link data reference.
        type: object
        required: 
            - title
            - identifier
            - uri
        properties: 
            title: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            identifier: 
                $ref: "#/definitions/UUID.Type"
            uri: 
                description: Model Primitive Datatype = AnyURI
                type: string
                format: uri
        additionalProperties: false
    URL.Type:
        description: |
            The data-type for establishing a Uniform Resource Locator (URL) as defined by W3C.
        type: string
        format: uri

    UUID.Type:
        description: |
            The data-type for establishing a Globally Unique Identifier (GUID). The form of the GUID is a Universally Unique Identifier (UUID) of 16 hexadecimal characters (lower case) in the format 8-4-4-4-12. All permitted versions (1-5) and variants (1-2) are supported.
        type: string

    imsx_CodeMinor.Type:
        description: |
            This is the container for the set of code minor status codes reported in the responses from the Service Provider.
        type: object
        required: 
            - imsx_codeMinorField
        properties: 
            imsx_codeMinorField: 
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/imsx_CodeMinorField.Type"
        additionalProperties: false
    imsx_CodeMinorField.Type:
        description: |
            This is the container for a single code minor status code.
        type: object
        required: 
            - imsx_codeMinorFieldName
            - imsx_codeMinorFieldValue
        properties: 
            imsx_codeMinorFieldName: 
                description: Model Primitive Datatype = NormalizedString
                type: string
            imsx_codeMinorFieldValue: 
                type: string
                enum: 
                    - fullsuccess
                    - invalid_sort_field
                    - invalid_selection_field
                    - forbidden
                    - unauthorisedrequest
                    - internal_server_error
                    - unknownobject
                    - server_busy
                    - invaliduuid
        additionalProperties: false
    imsx_StatusInfo.Type:
        description: |
            This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the CASE service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class
        type: object
        required: 
            - imsx_codeMajor
            - imsx_severity
        properties: 
            imsx_codeMajor: 
                type: string
                enum: 
                    - success
                    - processing
                    - failure
                    - unsupported
            imsx_severity: 
                type: string
                enum: 
                    - status
                    - warning
                    - error
            imsx_description: 
                description: Model Primitive Datatype = String
                type: string
            imsx_codeMinor: 
                $ref: "#/definitions/imsx_CodeMinor.Type"
        additionalProperties: false
